plugins/game-dev/infrastructure/claude-code-game-workflow/SKILL.md
Use when starting a game project, choosing which skill to read, or navigating the game-dev skill ecosystem. Entry point for AI agents working on game development. Triggers: workflow, which skill, how to start, game project setup.
npx skillsauth add fcsouza/agent-skills infrastructure-claude-code-game-workflowInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
How AI coding agents navigate this game development skill ecosystem — file conventions, which skills to read first, dependency order, and workflow patterns.
Trigger: game dev workflow, skill navigation, which skill to use, game dev setup, project structure, skill dependencies, agent workflow, how to start, game dev ecosystem
None — this is the entry point for the entire ecosystem.
quest-narrative-coherence firstpostgres-game-schema before writing game logicDedicated files for each Claude Code feature. Read the relevant one when setting up a new project or adding a capability.
| File | Feature | When to Use |
|------|---------|-------------|
| custom-agents.md | Custom Claude Code agents | Setting up game-engineer, narrative-writer, game-designer agents |
| worktrees.md | Git worktrees | Isolating a new game system or experimental change |
| mcp-setup.md | MCP servers (GitHub, Playwright, Context7) | Connecting external tools to Claude Code |
| plan-mode.md | Plan mode | Before implementing any new game system |
| todo-patterns.md | TodoWrite task tracking | Multi-step feature implementation |
| vision-multimodal.md | Screenshots + vision | Debugging UI, reviewing level design, game state |
| settings-full.md | Full .claude/settings.json | Permissions, hooks, and env vars for a game project |
| templates/game-agents/ | Agent definition files | Copy to .claude/agents/ in your project |
| templates/.mcp.json | MCP config | Copy to project root as .mcp.json |
| templates/claude-hooks-config.json | Hooks config | Copy hooks section into .claude/settings.json |
| templates/game-project-claude.md | Project CLAUDE.md | Copy to game project root |
[claude-code-game-workflow] (YOU ARE HERE)
|
┌───────────────┼───────────────┐
▼ ▼ ▼
[postgres-game-schema] [game-design-fundamentals] [quest-narrative-coherence]
| | | |
▼ ▼ ▼ ▼
[redis] [bullmq] [level-design] [worldbuilding]
| | [game-economy] [story-structure]
▼ ▼ [ui-ux-game] [character-design]
[game-backend-architecture] | [quest-mission-design]
| |
▼ ▼
[game-state-sync] [stripe-game-payments]
[betterauth] [elevenlabs-sound-music]
claude-code-game-workflow (this skill)game-design-fundamentals — define core loop, player motivationpostgres-game-schema — set up databasegame-backend-architecture — set up Elysia serverquest-narrative-coherence firstworldbuilding — load current world state| Need | Skill | Domain |
|------|-------|--------|
| Database schemas | postgres-game-schema | Engineering |
| Job queues | bullmq-game-queues | Engineering |
| Game server + WebSocket | game-backend-architecture | Engineering |
| Caching + leaderboards | redis-game-patterns | Engineering |
| Authentication | betterauth-integration | Engineering |
| Payments / IAP | stripe-game-payments | Engineering |
| Sound / Music | elevenlabs-sound-music | Engineering |
| Netcode / State sync | game-state-sync | Engineering |
| Core game design | game-design-fundamentals | Design |
| Level / Area design | level-design | Design |
| Quests / Missions | quest-mission-design | Design |
| Economy / Currency | game-economy-design | Design |
| UI / UX | ui-ux-game | Design |
| World lore | worldbuilding | Narrative |
| Story / Plot | story-structure-game | Narrative |
| Characters / NPCs | character-design-narrative | Narrative |
| Narrative consistency | quest-narrative-coherence | Narrative |
| CI/CD | ci-cd-game | Infrastructure |
| Monitoring | monitoring-game-ops | Infrastructure |
| Cursor/Codex setup | cursor-codex-integration | Infrastructure |
SKILL.md — knowledge document, read firstboilerplate/ — copy as starting codetemplates/ — configuration and document templatesARCHITECTURE.md — diagrams for infrastructure skillsQuick setup for a new game project (4 steps):
templates/game-project-claude.md → project root as CLAUDE.md. Fill in Core Loop, Genre, Platforms, Multiplayer.templates/claude-hooks-config.json into .claude/settings.json. See settings-full.md for the complete settings structure with permissions.templates/.mcp.json → project root. Set GITHUB_TOKEN in shell env.templates/game-agents/ → .claude/agents/ in your project.For detailed configuration of each Claude Code feature, see the Feature Guides table above.
In any prompt, reference skill files directly to inject their context:
@skills/game-dev/engineering/postgres-game-schema/SKILL.md — add inventory table
@skills/game-dev/narrative/quest-narrative-coherence/SKILL.md — create merchant quest
@skills/game-dev/engineering/matchmaking-system/SKILL.md — implement ELO queue
Copy the full hooks config from templates/claude-hooks-config.json. Four patterns:
Detects keywords in the user's prompt and prints the relevant skill path before Claude responds. Runs on every prompt — zero false-negative cost.
UserPromptSubmitquest / character / NPC / story / lore / narrative → quest-narrative-coherence/SKILL.mdschema / database / inventory / drizzle / migration → postgres-game-schema/SKILL.mdmatchmaking / lobby / ELO / rank / queue → matchmaking-system/SKILL.mdanalytics / retention / funnel / D1 / D7 / cohort → gameplay-analytics/SKILL.mdredis / leaderboard / pubsub / cache / presence → redis-game-patterns/SKILL.mdstate / sync / netcode / delta / rollback / prediction → game-state-sync/SKILL.md.claude/settings.json.{
"hooks": {
"UserPromptSubmit": [
{
"matcher": "",
"hooks": [
{
"type": "command",
"command": "PROMPT=$(echo \"$CLAUDE_HOOK_INPUT\" | jq -r '.prompt // \"\"'); for kw in quest character NPC story lore narrative; do echo \"$PROMPT\" | grep -qi \"$kw\" && echo \"📚 Narrative skill: Read narrative/quest-narrative-coherence/SKILL.md first\" && break; done; for kw in schema database inventory drizzle migration; do echo \"$PROMPT\" | grep -qi \"$kw\" && echo \"📚 Engineering skill: Read engineering/postgres-game-schema/SKILL.md\" && break; done; for kw in matchmaking lobby elo rank queue; do echo \"$PROMPT\" | grep -qi \"$kw\" && echo \"📚 Engineering skill: Read engineering/matchmaking-system/SKILL.md\" && break; done; for kw in analytics retention funnel D1 D7 D30 cohort; do echo \"$PROMPT\" | grep -qi \"$kw\" && echo \"📚 Engineering skill: Read engineering/gameplay-analytics/SKILL.md\" && break; done; for kw in redis leaderboard pubsub cache presence; do echo \"$PROMPT\" | grep -qi \"$kw\" && echo \"📚 Engineering skill: Read engineering/redis-game-patterns/SKILL.md\" && break; done; exit 0"
}
]
}
]
}
}
Blocks careless writes to narrative files by injecting a reminder before Claude touches them.
PreToolUseWrite|Editquest|character|story|narrative|lore|npc — if yes, prints a reminder{
"matcher": "Write|Edit",
"hooks": [
{
"type": "command",
"command": "FILE=$(echo \"$CLAUDE_HOOK_INPUT\" | jq -r '.tool_input.file_path // .tool_input.path // \"\"'); echo \"$FILE\" | grep -qiE '(quest|character|story|narrative|lore|npc)' && echo \"[game-dev] ⚠️ Narrative file: ensure quest-narrative-coherence check is complete.\"; exit 0"
}
]
}
Auto-formats TypeScript after every file write. Game projects accumulate debt fast when formatting is skipped.
PostToolUseWrite|Editbiome.json or biome.jsonc exists in the project root, runs bunx biome check --write on the written file{
"matcher": "Write|Edit",
"hooks": [
{
"type": "command",
"command": "cd \"$CLAUDE_PROJECT_DIR\" && [ -f biome.json ] || [ -f biome.jsonc ] && bunx biome check --write . 2>/dev/null || true"
}
]
}
After every session, reminds the developer to update the narrative registry files.
Stopquest-registry.md and world-lore.md{
"hooks": {
"Stop": [
{
"matcher": "",
"hooks": [
{
"type": "command",
"command": "echo \"[game-dev] Session ended. If you created narrative content, update quest-registry.md and world-lore.md.\""
}
]
}
]
}
}
Use parallel Claude Code agents when a feature spans multiple domains. Each agent reads its own skills, works in isolation, and produces a concrete output you merge at the end.
When adding a major feature, split into two agents running simultaneously:
They work on separate concerns with no shared state. Use "worktree" isolation to give each agent its own git branch. Merge when both complete.
Prompt:
Use the Agent tool to run 2 parallel agents:
- Agent 1: Read skills/game-dev/design/game-economy-design/SKILL.md and design the currency economy for our idle game. Output: economy-design.md
- Agent 2: Read skills/game-dev/engineering/postgres-game-schema/SKILL.md and create the initial player schema. Output: modify db/schema.ts
For a narrative-heavy session with multiple interconnected characters and quests:
quest-narrative-coherence + creates new quest (loads world-lore.md, checks consistency)character-design-narrative + creates NPCs for that questRun in parallel. Then have the coherence agent review both outputs before merging to catch conflicts.
Prompt:
Use the Agent tool to run 2 parallel agents:
- Agent 1: Read narrative/quest-narrative-coherence/SKILL.md and narrative/worldbuilding/SKILL.md. Create a new merchant guild quest. Check world-lore.md for faction alignment. Output: quests/merchant-guild-q1.md
- Agent 2: Read narrative/character-design-narrative/SKILL.md. Create 2 NPCs for a merchant guild quest — a quest giver and antagonist. Output: characters/merchant-npcs.md
Breaking down "add matchmaking" into parallel workstreams:
matchmaking-system + game-economy-design → produces matchmaking config docmatchmaking-system + bullmq-game-queues → implements server-side queue logicpostgres-game-schema + redis-game-patterns → creates tables + Redis key designAll three run in parallel. One integration agent (sequential, after all three complete) assembles the final feature.
When not to parallelize: When Agent B's output depends on Agent A's output. Keep those sequential.
What to persist across Claude Code sessions so agents never lose context.
Write to ~/.claude/projects/<project>/memory/MEMORY.md after making significant decisions:
attributes->>'class'"quest-registry.md~/.claude/projects/<your-project>/memory/
MEMORY.md # key decisions — loaded every session automatically
world-state.md # factions, geography, lore summary
economy-state.md # current balance parameters
schema-decisions.md # why each schema looks the way it does
Keep companion files (world-state.md, etc.) in the project repo under docs/memory/ and symlink or reference them from MEMORY.md so they travel with the codebase.
MEMORY.md under 150 lines (Claude truncates at ~200)tools
Use when implementing client-server state synchronization, delta compression, optimistic updates, rollback netcode, or real-time game state reconciliation. Triggers: state sync, netcode, delta, rollback, interpolation, prediction.
testing
Use when designing virtual economies, currencies, sink/faucet balance, loot tables, crafting systems, shops, or inflation control. Triggers: economy, currency, sinks, loot, inflation, crafting, shop.
development
Audits existing game code against design principles — checks server-authority, schema conventions, auth security, payment safety, narrative coherence, and MVP scope drift. Extract the optional component name or path from the user's message (defaults to entire src/). Use after building components or before committing.
testing
Designs a single quest end-to-end — coherence check, objective tree, quest brief, and registry entry. Extract the quest name from the user's message. Requires docs/world-lore.md and docs/quest-registry.md.