Map RFC features to skill compositions and dispatch implementation phases. Use when starting work on an RFC, planning implementation order, or deciding which skills to compose for a feature. Acts as the production lead that translates game design into agent-executable plans.
This skill maps the project's 8 MVP RFCs to concrete skill compositions. Use it to determine which skills to load, in what order, and what packages to create when implementing an RFC feature.
@context-discovery pre-flight first@validation-guardMaps RFC features to the skills that implement them. Load all listed skills before starting work.
Package: com.giantcroissant.game.grid → UltimaMagic.Grid
| Skill | Why |
|---|---|
@unity-package-setup |
| Scaffold the package structure |
@unity-scriptableobject-data | TileDefinition, TerrainType data |
@unity-configurable-data | Grid dimensions, tile sizes — never hardcode |
@unity-vcontainer | Register GridService, IGridQuery |
@unity-messagepipe | Publish GridLoadedMessage, TileChangedMessage |
@unity-unitask | Async grid loading |
@unity-mcp | Create scenes, GameObjects, test in editor |
Package: com.giantcroissant.game.statemachine → UltimaMagic.StateMachine
| Skill | Why |
|---|---|
@unity-package-setup | Scaffold the package |
@unity-vcontainer | Register GameStateManager, child scopes per state |
@unity-messagepipe | StateTransitionMessage, RequestStateChangeMessage |
@unity-r3-reactive | ReactiveProperty<GameState> for UI binding |
@unity-unitask | Async state transitions with cancellation |
@unity-configurable-data | Transition rules, allowed state paths |
Package: com.giantcroissant.game.traverse → UltimaMagic.Traverse
| Skill | Why |
|---|---|
@unity-package-setup | Scaffold the package |
@unity-input-system | Traverse action map (Move cardinal, Interact, Menu) |
@unity-unitask | Tween movement (~0.15s per tile) |
@unity-vcontainer | Register TraverseController, CameraController |
@unity-messagepipe | PlayerMovedMessage, EncounterTriggeredMessage |
@unity-configurable-data | Move speed, encounter rates per terrain |
@unity-mcp | Scene setup, orthographic camera, test |
Package: com.giantcroissant.game.explore → UltimaMagic.Explore
| Skill | Why |
|---|---|
@unity-package-setup | Scaffold the package |
@unity-input-system | Explore action map (Move, Strafe, Turn, Interact) |
@unity-unitask | Tween movement (~0.2s per step) |
@unity-vcontainer | Register ExploreController, ExploreRenderer |
@unity-messagepipe | PlayerSteppedMessage, ExploreEnteredMessage |
@unity-configurable-data | Step duration, FOV, render distance |
@unity-mcp | 3D geometry setup (cubes/planes for walls/floors) |
Package: com.giantcroissant.game.combat → UltimaMagic.Combat
| Skill | Why |
|---|---|
@unity-package-setup | Scaffold the package |
@unity-scriptableobject-data | EnemyDefinition, SpellDefinition, ActionDefinition |
@unity-configurable-data | Damage formulas, initiative calc, XP tables |
@unity-vcontainer | Register CombatManager, TurnResolver, DamageCalculator |
@unity-messagepipe | ActionSelectedMessage, DamageDealtMessage, CombatEndedMessage |
@unity-r3-reactive | HP/MP as ReactiveProperty for live UI updates |
@unity-unitask | Async turn resolution, action animations |
@unity-uitoolkit | Combat action selection UI |
Package: com.giantcroissant.game.party → UltimaMagic.Party
| Skill | Why |
|---|---|
@unity-package-setup | Scaffold the package |
@unity-scriptableobject-data | CharacterClassDefinition, StatDefinition, ItemDefinition |
@unity-configurable-data | Level-up tables, stat growth curves |
@unity-vcontainer | Register PartyManager, InventoryService |
@unity-messagepipe | PartyChangedMessage, ItemAcquiredMessage |
@unity-r3-reactive | Character stats as ReactiveProperty for UI |
Package: com.giantcroissant.game.ui → UltimaMagic.UI
| Skill | Why |
|---|---|
@unity-package-setup | Scaffold the package |
@unity-uitoolkit | All screens: HUD, Combat, Dialogue, Menu, Title |
@unity-r3-reactive | Data binding to game state |
@unity-vcontainer | Register UIManager, inject into screen controllers |
@unity-messagepipe | Subscribe to state changes for screen swapping |
@unity-unitask | Async screen transitions (ShowAsync/HideAsync) |
@unity-mcp | Create UXML/USS assets, preview in editor |
Role: Integration plan — not a package itself, but defines the implementation order.
From RFC-008, the build order is:
RFC-001 Core Grid SystemRFC-002 Game State MachineRFC-006 Party & Character System (data layer only)RFC-007 UI System (UIManager skeleton + Title screen)RFC-003 Overworld MovementRFC-007 UI: TraverseHUDRFC-005 Combat SystemRFC-007 UI: CombatUIRFC-004 First-Person DungeonRFC-007 UI: ExploreHUDRFC-006 Party: full inventory, equipmentRFC-007 UI: GameMenuUI, DialogueOverlayWhen implementing any RFC, the agent loop is:
1. @context-discovery → produce ContextReport
2. @rfc-orchestrator → look up skill matrix for the RFC
3. Load required skills → read SKILL.md for each
4. @unity-package-setup → scaffold package (if new)
5. Implement feature → using loaded skill patterns
6. @validation-guard → verify compliance
7. @unity-mcp → test in editor
When the user signals autonomous mode (e.g., "implement RFC-001", "build the grid system"), engage the @autoloop protocol for hands-free implementation:
1. Create branch: autoloop/rfc<NNN>-<name> from main
2. Run @context-discovery → produce ContextReport
3. Look up skill matrix for the target RFC
4. Decompose the RFC into ordered implementation tasks
5. Establish baseline: clean compile, zero tests, no package yet
6. Initialize results.tsv
FOR EACH task in the RFC decomposition:
1. Plan — pick the next task (one focused change)
2. Code — implement using loaded skill patterns
3. Commit — git add + commit with descriptive message
4. Compile — read_console(filter_type="Error") > compile.log
grep for errors only (protect context window)
5. Validate — run @validation-guard (inline, not full report)
6. Decide:
- COMPILES + VALIDATES → KEEP (advance branch)
- COMPILE ERROR → attempt fix (max 3 tries), then DISCARD
- VALIDATION FAIL (BLOCK) → attempt fix, then DISCARD
- VALIDATION FAIL (WARN) → KEEP but log the warning
7. Log — append to results.tsv
8. Continue to next task
1. Scaffold package structure (com.giantcroissant.grid)
2. Define GridPosition, TileType enums, TerrainType
3. Define TileDefinition ScriptableObject
4. Implement GridMap data structure (2D array)
5. Implement GridService with IGridQuery interface
6. Register in LifetimeScope
7. Add MessagePipe messages (GridLoadedMessage, TileChangedMessage)
8. Create test scene with sample grid
9. Write EditMode tests for GridMap
Each step is one autoloop iteration: implement → commit → compile → validate → keep/discard.
read_console(filter_type="Error") onlypage_size=50 and stop earlyWhen all tasks are done:
@validation-guard report@unity-mcp@autoloop (00-meta) — autonomous loop infrastructure (keep/discard cycle, git branching, context management)@context-discovery (00-meta) — mandatory pre-flight before implementation@validation-guard (00-meta) — mandatory post-flight after implementation@skill-creator (00-meta) — create new skills if gaps are found during implementation