| name | forge |
| description | Persistent Roblox Studio execution loop that carries an approved creator plan to verified completion |
| surface-class | canonical |
| domain | roblox-studio |
| audience | creator |
| artifact-type | skill |
Forge
Forge is the canonical creator execution workflow in RCS.
Use $forge when an approved Roblox creator plan needs one owner who keeps pushing until the work is actually complete, verified, and internally consistent.
Purpose
Forge exists to finish Roblox Studio work without drifting back into generic web-enterprise habits:
- keep the implementation grounded in Roblox services, Instance hierarchies, Luau constraints, and client/server trust boundaries
- keep naming aligned with Roblox concepts such as
RemoteEvent, RemoteFunction, ModuleScript, Attribute, DataStore, CollectionService, and Humanoid
- keep verification real: play the exact changed flow, run the relevant tests/tools, and confirm the experience behavior rather than stopping at prose confidence
Use When
- A
$blueprint plan is approved and now needs implementation.
- The task crosses multiple Roblox scripts/services and should not stop at partial completion.
- The work needs repeated fix/verify loops: remotes, persistence, replication, economy, combat, UI state, or gameplay systems.
- The user is effectively saying “ship this fully” or “keep going until it’s actually done.”
Do Not Use When
- The task is still ambiguous. Use
$brief or $blueprint first.
- The user only wants design artifacts, loop specs, or monetization frameworks rather than code changes.
- The task needs coordinated parallel staffing. Use
$crew, then return to $forge only if a persistent single-owner closeout loop is still useful.
Roblox-Native Guardrails
- Default to Luau/Studio concepts before generic backend/web abstractions.
- Name systems by gameplay or engine behavior, not enterprise platform jargon.
- Respect server authority:
- clients request
- servers validate
- servers mutate canonical state
- Prefer concrete Roblox touchpoints in reasoning:
ServerScriptService
ReplicatedStorage
StarterPlayer
StarterGui
Workspace
CollectionService
MarketplaceService
TeleportService
DataStoreService
- Do not invent fake type systems or DTO-heavy ceremony when normal Luau tables, typed Luau annotations, and ModuleScripts are enough.
- Do not import enterprise “service/repository/controller” structure by reflex when the codebase or experience model does not need it.
Execution Loop
Pre-context intake
Before execution begins, create or load a context snapshot at .rcs/context/{task-slug}-{timestamp}.md.
Minimum snapshot fields:
- task statement
- desired outcome
- known facts/evidence
- constraints
- unknowns/open questions
- likely codebase touchpoints
If the request is still ambiguous, run $deep-interview --quick <task> before the implementation loop and reuse the resulting context instead of improvising from memory.
Do not begin Forge execution work until that grounding context exists.
- Re-read the approved blueprint and extract the exact Roblox services, scripts, remotes, data tables, UI objects, and replication edges involved.
- Confirm the ownership split:
- server scripts
- client scripts
- shared ModuleScripts
- assets/instances/config data
- Implement the smallest complete vertical slice first.
- Re-run the most relevant proof immediately:
- targeted unit/test harness
- build/lint/typecheck where present
- exact gameplay/runtime path affected
- Continue iterating until the changed flow is green and consistent across touched files.
- End only after verification evidence is fresh and the touched surfaces use one coherent Roblox-native vocabulary.
MCP/state fallback guidance
If an MCP state call fails, do not retry the same MCP call blindly. Use the CLI parity path instead:
rcs state write --input '<json>' --json
When falling back, do so while preserving workingDirectory and session_id so state stays scoped to the current Forge run.
Verification Standard
At minimum, capture the smallest evidence that proves the change:
- remote validation path works
- replicated state updates correctly
- DataStore/economy logic preserves server authority
- UI logic reflects authoritative state rather than stale client guesses
- changed scripts/modules still pass repo checks where applicable
Do not claim completion from static inspection alone when the behavior depends on runtime replication, remotes, or Studio-side state.
Roblox Unsafe Script Corpus
This repo also carries a quarantined unsafe corpus under corpora/security/roblox-unsafe-script-corpus/.
Treat that corpus as a security-only anti-pattern lane:
- use it to recognize exploit idioms, unsafe legacy patterns, and remote-code-loading smells
- never assume the scripts are production-safe, trustworthy, or architecture-safe
- never paste raw scripts into shipped code
- prefer first-party repo patterns, typed Luau, ModuleScripts, and approved creator architecture over any raw corpus material
- if a useful idea appears there, rewrite it from scratch into Roblox-native, server-authoritative, repo-consistent structures
Visual iteration gate
When screenshot or reference-image work is in scope:
- run
$visual-verdict before every next edit
- require structured JSON with
score, verdict, category_match, differences[], suggestions[], and reasoning
- persist numeric + qualitative feedback to
.rcs/state/{scope}/forge-progress.json
- default pass threshold:
score >= 90
Forge accepts repeatable image inputs:
-i <image-path>
--images-dir <directory>
Pre-Action Dependency
For creator-domain work, Forge expects the pre-action groundwork to exist:
- clear creator goal
- normalized Roblox terminology
- agreed file/module layout
- explicit risk notes for unsafe assumptions
If that groundwork is missing, produce it first through the creator planning lane instead of improvising a code pass from memory.
Do not generate implementation code until that creator planning groundwork is present.
PRD mode
When Forge is launched in PRD mode, run deep-interview in quick mode before creating PRD artifacts.
- Run deep-interview in quick mode before creating PRD artifacts
- Invoke
$deep-interview --quick <task>
- Persist the interview to
.rcs/interviews/{slug}-{timestamp}.md
--no-deslop is supported; when present, skip the deslop pass for that Forge run
skills/forge-init remains aligned with the current startup compatibility contract while .rcs/prd.json is still the machine-readable validation source.
Final deslop contract
Step 7.5: Mandatory Deslop Pass
- run
roblox-ai-os-creator-skills:ai-slop-cleaner
- changed files only
- standard mode
- not
--review
Step 7.6: Regression Re-verification
- re-run all tests/build/lint
- roll back cleaner changes or fix and retry if regression fails
Forge completion checklist
Follow-On Creator Design Lanes
Forge can hand off or cross-check with the creator design skills when the implementation depends on product logic clarity:
Follow with:
$forge:reward-loop
$forge:daily-loop
$forge:event-loop
$forge:progression
$forge:status
$forge:fomo
$forge:mastery
$forge:community
Example
$forge "Implement the approved trading system:
- server validates every trade offer and acceptance
- inventory replication stays authoritative
- StarterGui trade UI only mirrors server-confirmed state
- verify duplicate acceptance cannot double-grant items"