必须在含 CLAUDE.md 和 project.yaml 的项目根目录启动 Claude Code,在 src/ 等子目录启动会跳过钩子和权限规则;缺少 Python 3 时所有设置会静默回退默认值,且暂存数据 JSON 的提交会被阻止;jq 为可选依赖,缺失时钩子校验能力会失效。
Claude-Code-Game-Studios
DonchitosMIT活跃维护把 Claude Code 改造成一支完整的游戏开发团队,内置 49 个 AI 角色和 72 个工作流技能,按真实工作室层级分工协作,帮独立开发者从设计到实现跑通全流程。
Turn Claude Code into a full game dev studio — 49 AI agents, 72 workflow skills, and a complete coordination system mirroring real studio hierarchy.
git clone https://github.com/Donchitos/Claude-Code-Game-Studios.git my-game
cd my-game
claudeREADME 未说明硬件要求,仅依赖 Git、Claude Code、Python 3 与 Bash,未提及 GPU 或显存。
把单次 Claude Code 会话变成有层级、有评审流程的完整游戏开发工作室
把 Claude Code 改造成一支完整的游戏开发团队,内置 49 个 AI 角色和 72 个工作流技能,按真实工作室层级分工协作,帮独立开发者从设计到实现跑通全流程。
核心能力
- 49 个分工明确的子代理按导演、主管、专员三层组织
- 74 个斜杠命令覆盖从头脑风暴到发布的各工作流阶段
- 15 个钩子在提交、推送、资产变更时自动校验
- 14 条按路径生效的编码规范约束玩法、引擎、UI 等代码
- 内置 Godot 4、Unity、UE5 三套引擎专用代理组
容易踩的坑
- v1.3.0v1.3.0 — make me a game最新正式版2026-11-09 · 2026-11-09 15:24 UTC
"Make me a game" is the main road:
/prototypeasks a few questions, writes a one-page brief, builds a browser game from it, checks it against the brief, and fixes what the check finds before you get it. After you play it, you change it by asking, and when you like it you grow it into a real web project and build on it one feature at a time. A minor release after 1.2.0.Highlights
- Make me a game. One round of at most about eight questions drawn from the genre, with the usual answer shown so "you pick" works. A vague idea gets two or three one-line pitches first. The answers become
design/game-brief.md: your words kept exactly, how it looks, its first minute, its challenge, your systems, and Keep, Avoid and Out of scope lines. - The build and its check. The game is built in your session as a browser game in
prototypes/<name>/that opens with a double-click: no emoji art, no copy of another game, and not trivially easy. A short scripted check runs before you get it: a headless browser presses a few keys, a screenshot is compared with the brief, and every line of the brief is marked pass, missing, broken or not assessed. The handover card shows what is still broken and what was guessed, and ends "Not yet played by a person". - Change it after play. Each change is checked against the brief's Keep, Avoid and Out of scope lines, gets a light check, and is one commit you can go back to. "Too easy" adds a new rule before any number moves.
- The tweak panel, added when you ask to tune: a slider for each value in
config.js, opened with the backquote key or?tune. Paste the saved block back and/prototypewrites it intoconfig.js. - Share it, or bring your own game in.
one-shot-share.shmakes a copy without the working files;/prototype --from <path>copies in a browser game you already have so it can be changed and grown. - Grow it. On PROCEED, a one-shot grows into a Vite and TypeScript web project with data files, tests and a same-seed run, then takes one feature a sitting. Stories, epics and gates only when you ask for them.
/cut, a new skill: cuts and a polish list to finish the game from its brief, and you pick each cut.- Web is an engine.
engine.name: Web, with three.js, Phaser and PixiJS starters and a pinned web reference. Every engine's folders and commands come from one table,.claude/engines/engines.tsv. Genre sheets for 69 genres live in.claude/genres/. - Studio mode. The agents, the
team-*pipelines and the design-document ladder are now called studio mode, and/startand/next-stepsay when it fits. - Renamed skills:
/helpis/next-step,/settingsis/project-settings,/changelogis/write-changelog. The old names still work. - Fixes, among them: rotating the session state can no longer lose its notes (#158);
git commit -m "message" -ais checked on a machine without Python (#155); the Godot reference says Vulkan is the Windows default and Compositor is a resource (#143); five skills that change a file in place can now edit it (#156). The full list is in the CHANGELOG.
What is shown, and what is not yet
In a blind comparison, the brief written from these questions was picked over a hand-written brief for all three game ideas tried. Growing was shown on one game, grown through six stories. The engine route and deepening one system in a design document are built but not yet shown in a test like these.
Upgrading from 1.2.0
Take
.claude/scripts/,.claude/hooks/,.claude/genres/and.claude/engines/whole. If you editedsettings.json, every hook command has a new form, and there are 28 new allow rules for the read-only scripts: UPGRADING.md → v1.2.0 → v1.3.0 lists every merge and the three renamed skill specs to delete. AskillOverridesentry or permission rule naming an old skill needs the new name.Tested
- Make me a game. One round of at most about eight questions drawn from the genre, with the usual answer shown so "you pick" works. A vague idea gets two or three one-line pitches first. The answers become
- v1.2.0v1.2.0 — the main path, rebuilt and tested2026-10-19 · 2026-10-19 02:44 UTC
查看更新说明
The story skills are rebuilt around shared helper scripts, a read guard stops whole-file reads of large design docs, the engine references move to Godot 4.7 and Unreal Engine 5.8, and no skill pre-approves every shell command any more. A minor release after 1.1.3.
Highlights
- The main path is rebuilt.
/start,/create-stories,/story-readiness,/create-epics,/dev-storyand/story-donefollow Anthropic's skill-authoring guidance: shorter, with rarely used branches inreferences/and fixed steps handed to helper scripts, so the same question gets the same answer each time./startworks out the rigor from what you describe and shows it on one card./create-storiesproposes anS,MorLestimate for each story. - Stories list their files, and evidence knows when its code changed. The new story template has a
## Filessection:/create-storiesplans it,/dev-storyfills it and/story-donechecks scope against it./dev-storystamps a story's screenshots with the files they prove, and/story-donenames any that changed since (#135, proposed by @jiangshoujie). - A read guard for large design docs. A whole-file read of a doc over 40 KB under
design/,docs/architecture/orproduction/session-state/is refused with the doc's headings, so the retry reads one section (#136, #140, suggested by @mamonbleau). It also ends the failed whole-ADR reads reported in #64 by @Shtruk.features.read_guard: offturns it off. - Session start says when a newer release is out. One line, from at most one GitHub request a day made in the background; nothing about your project is sent.
updates.check: falseturns it off, and it is always off under CI. - Engine references for Godot 4.7 and Unreal Engine 5.8. Unity stays on 6.3 LTS and lists 6.4 to 6.6 and the 6.7 beta.
/test-setupwrites current CI actions. Unreal 5.8 support was first proposed in #121 by @spirit986. Staying on Godot 4.6 or Unreal 5.7? Keep your current engine folder. - Helper scripts and registry checks. New scripts in
.claude/scripts/read story facts, ADR status, a Markdown section, the stage and the session checkpoint for the skills. More ship for you to run (bug counts, sprint arithmetic, tech-debt scores, flaky-test rates and others), each with--help.registry.shvalidates the three registries and hands out IDs that are never reused. - Warnings for writes the skills never make, such as replacing an existing
EPIC.mdorproject.godot, crossing the prototype boundary or renumbering a registry entry. They warn and never block. /sprint-planchecks that the sprint goal can be shown and lists anything it needs that no story builds (based on an idea in #58 and #76 by @FreedomPortal).- Fixes, among them: the commit check skips GDD copies in
design/gdd/subfolders such asarchive/(#133, reported by @mamonbleau); a repeatedmodes:key inproject.yamlis merged and named instead of wiping the first; a multi-line value inproject.yamlis read as text, never as settings; a stage never advances past a gate check that could not run;/architecture-reviewreuses a saved review only when nothing it read has changed, andsingle-gddwrites only that system; playtest records count as evidence fromproduction/qa/playtests/;/sprint-plannever takes your answer to its QA-plan question as approval to write; in a Godot project, evidence screenshots underproduction/are no longer imported or packed into an export. The full list is in the CHANGELOG.
Security
- Skills pre-approve only the commands they run. 34 skills had a bare
Bashentry inallowed-tools, which let them run any shell command without asking in the default permission mode. Each now names its framework scripts and read-only commands. Anything else, including yourcommands.test, asks first: approve it once, or addBash(<your command> *)to.claude/settings.local.json. - **Tagging, merging and deploying a
- The main path is rebuilt.
- v1.1.3v1.1.3 — long skills keep their later steps2026-10-08 · 2026-10-08 08:22 UTC
查看更新说明
Long skills keep their later steps through a long session, a question nobody answered is never taken as an answer, and the shipped permissions approve less. A fix release for 1.1.2.
Highlights
- The 14 longest skills keep their later phases after a compaction. Claude Code re-attaches only the first part of a skill after a compaction, so the later phases of a long skill could drop out mid-session.
/adopt,/architecture-decision,/architecture-review,/create-architecture,/design-system,/dev-story,/gate-check,/prototype,/review-all-gdds,/setup-engine,/smoke-check,/story-done,/test-setupand/ux-designnow keep each phase in its own file underreferences/. The steps themselves are unchanged, and/skill-testand/skill-improveread those files too. - A skipped, dismissed or empty question is not an answer, in any mode: nothing is written, set or picked on it, and it is asked again. Agents return their options as a list for the skill to ask, and
CLAUDE.mdnames the three writes that need no "May I write?". - Settings read the same from a subfolder. Started in
src/, the settings reader missed per-system overrides, the notes about invalid or locked values, and the olderreview-mode.txtandstage.txt./settingsand/perf-profilework from a subfolder too. A localplatform.cert_tiercan no longer override the lock. - Hooks and checks. The commit check works for a project in a subfolder of a larger repository, checks a JSON data file stored with Git LFS through its working copy instead of blocking it, sees files a
git addin the same command stages, and stops asking non-system files indesign/gdd/for GDD sections (#133)./smoke-checkno longer waits forever on Unreal. - Every skill opens with a title (#83, thanks @specterslient95-lgtm), and
/startwrites a singlemodes:block. - Smaller fixes: registry lookups no longer match
combat-aiwhen asked forcombat; thirteen skills name the minimal route as a next step;team-polishandteam-uikeep their core members atlean;/scope-check's verdict bands no longer overlap.
Security
- The shipped allow rules no longer approve deleting a branch or writing files without asking. Four rules matched any text after the command name, so
git branch -D,git log/git diff --output=<file>andpython -m json.tool <in> <out>ran without a prompt. Those rules are removed; read-only git commands still run without one. - Start Claude Code at the project root. It loads
.claude/settings.jsononly from the folder it starts in, so a session started in a subfolder runs without the project's hooks, deny rules and ask-first mode. Claude now warns when it was started somewhere else. .envfiles are denied to Edit.
Upgrading from 1.1.2
No setting changes meaning and nothing is migrated automatically. If you merged
settings.jsonor copied its allow rules intosettings.local.json, remove the rules listed in UPGRADING.md → v1.1.2 → v1.1.3; a copy keeps approving them. If you edited one of the 14 long skills, take the shipped skill and make your change again in the phase file that now holds that text. If yourproject.yamlhas twomodes:blocks, merge them into one.Tested on
- Platforms: Windows, Linux (bash 5 and 3.2) and macOS (bash 3.2 with BSD tools), with and without
jq. - Claude Code: live skill checks on 2.1.292 and 2.1.293.
Full changelog: https://github.com/Donchitos/Claude-Code-Game-Studios/compare/v1.1.2...v1.1.3
- The 14 longest skills keep their later phases after a compaction. Claude Code re-attaches only the first part of a skill after a compaction, so the later phases of a long skill could drop out mid-session.
- v1.1.2v1.1.2 — the default path works end to end2026-09-29 · 2026-09-29 12:55 UTC
查看更新说明
The default path works end to end, Unity and Unreal get the same care as Godot, and the checks tell you what they found. A fix release for bugs in 1.1.1, each reproduced before it was fixed.
Highlights
- The minimal path works start to finish.
/help,/story-done,/sprint-statusand the status line follow it. Skills that expect a concept doc readdesign/game-brief.mdinstead, and there are no more dead ends into sprints. - Engine commands that actually run. Godot tests run, Unity tests compile, and Unreal tests compile and are found.
/smoke-checkruns your tests first. - Unity and Unreal get what Godot gets. Rules, hooks, checklists and agents know
Assets/,Source/andContent/, and check their own engine reference. - Warnings you can see. Hook warnings now reach you. The commit and push checks find
githowever it's written, ignore here-doc text, and run in PowerShell too. The push warning names the branches it protects:main,masterandrelease/*. - Gates you can pass, and verdicts that don't overclaim.
/gate-checkpasses a project that is ready. Every verdict has a word for "could not check" (NOT ASSESSED). A release waits for the release gate, which now checks security and localisation. QA works at everyqa.level. - Skills ask before they write, including team skills before their agents write code.
- One evidence rule, one bug severity scale. Stories, ADRs and sprints agree, and a Proposed ADR blocks a story again.
- Agents. Directors answer each gate in its own words.
devops-engineerfollows trunk-based development. Director memory stays in your project. - Skills read the whole argument.
/scope-check inventory crafting systemno longer checks justinventory. - Agent test specs run and match their agents (#131), and agent models are documented as they actually run (#67).
- Two small additions ride along: the brief's Reference game line, and
/startspotting a clone still wired to this repo.devops-engineerandcommunity-managernow run on Sonnet instead of Haiku, so they cost a little more per call.
Upgrading from 1.1.1
Nearly every skill, hook and agent changed. No setting changes meaning and nothing is migrated automatically. If you ran
/setup-engineon 1.1.0 or 1.1.1, yourproject.yamlstill holds the old test and build commands. UPGRADING.md → v1.1.1 → v1.1.2 lists what to overwrite, what to merge by hand (settings.json, rules,.gitignore) and the exact command changes. Python 3 and Bash are now listed as requirements.Tested on
- Platforms: Windows, Linux (bash 5 and 3.2) and macOS, on Claude Code 2.1.281–2.1.284.
- Engines: every Windows engine command was run on Godot 4.6.1 (gdUnit4 6.1.3), Unity 6000.3.23f1 and Unreal Engine 5.7 before it was written down.
- Checked against documentation only, not run: the Unreal Linux and macOS commands, the Unity CI template, and the Unity assembly-definition guidance.
Full changelog: https://github.com/Donchitos/Claude-Code-Game-Studios/compare/v1.1.1...v1.1.2
- The minimal path works start to finish.
- v1.1.1v1.1.1 — skills and agents work again outside auto mode2026-09-24 · 2026-09-24 02:40 UTC
查看更新说明
Skills and agents work again outside auto mode. A fix release for #128.
Fixed
- Skills no longer abort before they start. In 1.1.0, every skill that reads your config began with a shell command Claude Code refuses to run unless it is explicitly approved. In the permission mode CCGS ships with (
default), 66 of the 74 skills stopped before doing anything — from any subdirectory of your project, and whenever Claude invoked a skill on its own, in auto mode too. Each skill now runs the config lookup as one plain command and pre-approves exactly that command in its own frontmatter. Nothing else is approved. game-designerandcreative-directorlaunch again. Both preload skills, so the aborting command stopped them at startup withShell command permission check failed … Contains expansion. They keep their preloaded skills and still have no shell access.- Config is found from any folder. Starting Claude Code inside
src/ordesign/now reads the project'sproject.yaml. /changelogworks in a repository with no commits yet.
Checked on Claude Code 2.1.277 and 2.1.281, in every permission mode, from the project root and from subdirectories.
Upgrading from 1.1.0
Overwrite
.claude/skills/,.claude/hooks/yaml-helper.shand.claude/docs/config-resolution.md. No settings or config changes. If you customised a skill or wrote your own that copied the 1.1.0 config line, update two lines in it — see UPGRADING.md → v1.1.0 → v1.1.1.Thanks @mamonbleau for the report and the follow-up that narrowed it down.
Full changelog: https://github.com/Donchitos/Claude-Code-Game-Studios/compare/v1.1.0...v1.1.1
- Skills no longer abort before they start. In 1.1.0, every skill that reads your config began with a shell command Claude Code refuses to run unless it is explicitly approved. In the permission mode CCGS ships with (
用户点评
登录用户的真实使用记录,可按版本和硬件筛选还没有人点评。第一个说出真实体验的人最有价值。
Why This Exists
Building a game solo with AI is powerful — but a single chat session has no structure. No one stops you from hardcoding magic numbers, skipping design docs, or writing spaghetti code. There's no QA pass, no design review, no one asking "does this actually fit the game's vision?"
Claude Code Game Studios solves this by giving your AI session the structure of a real studio. Instead of one general-purpose assistant, you get 49 specialized agents organized into a studio hierarchy — directors who guard the vision, department leads who own their domains, and specialists who do the hands-on work. Each agent has defined responsibilities, escalation paths, and quality gates.
The result: you still make every decision, but now you have a team that asks the right questions, catches mistakes early, and keeps your project organized from first brainstorm to launch.
Table of Contents
- What's Included
- Studio Hierarchy
- Slash Commands
- Does it produce games, or documents?
- Getting Started
- Configuration
- Upgrading
- Project Structure
- How It Works
- Design Philosophy
- Customization
- Platform Support
- Community
- Supporting This Project
- License
What's Included
| Category | Count | Description |
|---|---|---|
| Agents | 49 | Specialized subagents across design, programming, art, audio, narrative, QA, and production |
| Skills | 74 | Slash commands for every workflow phase (/start, /design-system, /create-epics, /create-stories, /dev-story, /story-done, etc.) |
| Hooks | 15 | Automated validation on commits, pushes, asset changes, design-doc reads, writes and registries, session lifecycle, agent audit trail, and gap detection |
| Rules | 14 | Path-scoped coding standards enforced when editing gameplay, engine, AI, UI, network code, scene and asset files, and more |
| Templates | 62 | Document templates for GDDs, UX specs, ADRs, sprint plans, HUD design, accessibility, and more |
Studio Hierarchy
Agents are organized into three tiers, matching how real studios operate:
Tier 1 — Directors
creative-director technical-director producer
Tier 2 — Department Leads
game-designer lead-programmer art-director
audio-director narrative-director qa-lead
release-manager localization-lead
Tier 3 — Specialists
gameplay-programmer engine-programmer ai-programmer
network-programmer tools-programmer ui-programmer
systems-designer level-designer economy-designer
technical-artist sound-designer writer
world-builder ux-designer prototyper
performance-analyst devops-engineer analytics-engineer
security-engineer qa-tester accessibility-specialist
live-ops-designer community-manager
Each agent declares a model in its frontmatter: the three directors ask for
Opus, lead-programmer and fifteen specialists name Sonnet, and the remaining thirty
inherit your session's model. Treat the tiers as seniority of role, not as
a billing plan — most of the studio runs on whatever model you are already using.
Engine Specialists
The template includes agent sets for all three major engines. Use the set that matches your project:
| Engine | Lead Agent | Sub-Specialists |
|---|---|---|
| Godot 4 | godot-specialist | GDScript, Shaders, GDExtension |
| Unity | unity-specialist | DOTS/ECS, Shaders/VFX, Addressables, UI Toolkit |
| Unreal Engine 5 | unreal-specialist | GAS, Blueprints, Replication, UMG/CommonUI |
Slash Commands
Type / in Claude Code to access all 74 skills:
Onboarding & Navigation
/start /help /project-stage-detect /setup-engine /adopt /settings
Game Design
/brainstorm /map-systems /design-system /quick-design /review-all-gdds /propagate-design-change
Art & Assets
/art-bible /asset-spec /asset-audit
UX & Interface Design
/ux-design /ux-review
Architecture
/create-architecture /architecture-decision /architecture-review /create-control-manifest
Stories & Sprints
/create-epics /create-stories /dev-story /sprint-plan /sprint-status /story-readiness /story-done /estimate
Reviews & Analysis
/design-review /code-review /balance-check /content-audit /scope-check /perf-profile /tech-debt /gate-check /consistency-check /security-audit
QA & Testing
/qa-plan /smoke-check /soak-test /regression-suite /test-setup /test-helpers /test-evidence-review /test-flakiness /skill-test /skill-improve
Production
/milestone-review /retrospective /bug-report /bug-triage /reverse-document /playtest-report
Release
/release-checklist /launch-checklist /changelog /patch-notes /hotfix /day-one-patch
Creative & Content
/prototype /vertical-slice /onboard /localize
Team Orchestration (coordinate multiple agents on a single feature)
/team-combat /team-narrative /team-ui /team-release /team-polish /team-audio /team-level /team-live-ops /team-qa
Does it produce games, or documents?
A fair question, and the answer is a measurement rather than a sample project.
Four games were built from one brief at different modes.rigor levels and the
documents each wrote before its first line of game code were counted:
modes.rigor | Docs before first line of game code | Time |
|---|---|---|
minimal | 1 (the one-page brief) | 0 min |
standard | 30 | 58 min |
All of them produced a running, tested game. Two blind reviewers and a human
playtest then ranked the standard build last — the extra 29 documents
bought traceability, not a better game.
It runs the game and looks at it
The measurement above is about cost. The other half is whether the thing works,
and for a game that means someone has to look at it — a passing test says
nothing about a menu drawn off-screen. So a story that changes anything the
player sees is not closed until the game has been launched, observed, and a
screenshot retained in production/qa/evidence/. A parse check is not a run.
This holds at every rigor level, including minimal, where automated tests are
waived but the look is not.
The games themselves are deliberately not shipped here: this is a template you clone to start your own project, and somebody else's game in your repo is clutter, not evidence.
Getting Started
Prerequisites
- Git
- Claude Code — the native installer is recommended (
npm install -g @anthropic-ai/claude-codealso works, on Node.js 22+) - Python 3 — reads
project.yamlfor every skill and hook; without it every setting silently falls back to its default - Bash — runs every hook; built into macOS and Linux, and on Windows it comes with Git for Windows
- Recommended: jq (for hook validation)
Hooks fail gracefully if optional tools are missing — you just lose validation — with one deliberate exception: a commit that stages data JSON is blocked when there is no Python to validate it.
Setup
-
Clone or use as template:
git clone https://github.com/Donchitos/Claude-Code-Game-Studios.git my-game cd my-game -
Open Claude Code in the project's root folder (the one holding
CLAUDE.mdandproject.yaml) and start a session:claudeStarting it in a subfolder such as
src/skips the project's hooks, deny rules and ask-first permission mode. -
Run
/start— the system asks where you are (no idea, vague concept, clear design, existing work) and guides you to the right workflow. No assumptions.Or jump directly to a specific skill if you already know what you need:
/brainstorm— explore game ideas from scratch/setup-engine godot 4.7— configure your engine if you already know/project-stage-detect— analyze an existing project
Configuration
project.yaml at the repo root is the single source of truth for how the
studio behaves on your project — engine, naming conventions, and a modes
block that controls how much process every skill enforces. /start writes it
for you; you rarely need to hand-edit it.
The one question that matters most is modes.rigor — minimal, standard,
or full. It's a single front door over six separate knobs (workflow —
which GDD sections are required, docs.density, qa.level,
story_granularity, review_mode — how many director agents review your work,
and team.size), so /start asks it once instead of six times:
minimal(default) — jam-game speed. No GDDs required, terse docs, minimal QA evidence, solo review./start→/setup-engine→/brainstorm(a one-page brief) →/create-stories→/dev-story↔/story-done.standard— 5 required GDD sections, balanced doc depth, standard QA evidence, lean review.full— all 8 GDD sections, thorough docs, full QA evidence on every story type, full director review.
minimal is the default because the heavier tier costs more to reach working
code without producing a better result, and gives nothing back when someone new
picks the project up. Raise it in one /settings call when your project grows
— /help and /gate-check will suggest it when they see the signs.
Two escape hatches keep one setting from being a blunt instrument.
system_overrides holds a single system to a higher standard than the rest
of the project — your combat system gets the full treatment while everything
else stays light. testing.strict sets, per test type (logic, integration,
visual, UI, config), whether missing evidence blocks a story or merely warns.
Any of the six underlying knobs can still be set individually if you want a mix
(e.g. workflow: full with docs.density: terse — comprehensive but compact).
Two of them — review_mode (full / lean / solo) and team.size — are
also personal: rigor sets the team-wide default, but you can override them
per-developer in a gitignored project.local.yaml without touching the shared
config. modes.automation (how often the AI pauses to ask before it acts) sits
outside rigor and is likewise personally overridable.
View or change any setting with the /settings skill:
/settings # view effective config
/settings modes.review_mode # view one setting
/settings modes.rigor=full # write to project.yaml (team-wide)
/settings --local modes.review_mode=solo # write to project.local.yaml (just you)
Full schema and per-setting behavior: .claude/docs/effects-map.md.
Upgrading
Already using an older version of this template? See UPGRADING.md for step-by-step migration instructions, a breakdown of what changed between versions, and which files are safe to overwrite vs. which need a manual merge.
Project Structure
CLAUDE.md # Master configuration
.claude/
settings.json # Hooks, permissions, safety rules
agents/ # 49 agent definitions (markdown + YAML frontmatter)
skills/ # 74 slash commands (subdirectory per skill)
hooks/ # 18 scripts (bash) — 15 event hooks, two helpers they
# source (yaml-helper.sh, update-check.sh), and one
# opt-in diagnostic you wire yourself
rules/ # 14 path-scoped coding standards
statusline.sh # Status line script (context%, model, stage, epic breadcrumb)
docs/
workflow-catalog.yaml # 7-phase pipeline definition (read by /help)
templates/ # 62 document templates (+ per-section guidance)
src/ # Game source code (Godot). The code root is
# ENGINE-SPECIFIC: Unity compiles only
# Assets/, Unreal builds from Source/<Module>/
assets/ # Art, audio, VFX, shaders, data files
design/ # GDDs, narrative docs, level designs
docs/ # Technical documentation and ADRs
tests/ # Test suites (unit, integration, performance, playtest)
tools/ # Build and pipeline tools
prototypes/ # Throwaway prototypes (isolated from src/)
production/ # Sprint plans, milestones, release tracking
studio-tests/ # QA for the skills and agents themselves — see below
Testing your customizations
CCGS is a template you are meant to edit. studio-tests/ is how
you check that an edited or newly written skill still holds up — a catalog of all
74 skills and 49 agents, per-category quality rubrics, behavioral specs, and
templates for writing specs of your own.
/skill-test static [name] # structural linter — 7 compliance checks
/skill-test category [name] # category-specific quality rubric
/skill-test spec [name] # behavioral spec assertions
/skill-test audit # coverage report across skills and agents
/skill-improve [name] # test-fix-retest loop; keeps or reverts on score change
It tests the framework, never your game — game tests live in tests/.
How It Works
Agent Coordination
Agents follow a structured delegation model:
- Vertical delegation — directors delegate to leads, leads delegate to specialists
- Horizontal consultation — same-tier agents can consult each other but can't make binding cross-domain decisions
- Conflict resolution — disagreements escalate up to the shared parent (
creative-directorfor design,technical-directorfor technical) - Change propagation — cross-department changes are coordinated by
producer - Domain boundaries — agents don't modify files outside their domain without explicit delegation
Collaborative, Not Autonomous
This is not an auto-pilot system. Every agent follows a strict collaboration protocol:
- Ask — agents ask questions before proposing solutions
- Present options — agents show 2-4 options with pros/cons
- You decide — the user always makes the call
- Draft — agents show work before finalizing
- Approve — nothing gets written without your sign-off
You stay in control. The agents provide structure and expertise, not autonomy.
That is how a terminal session started at the project root behaves out of the
box. The guided and autonomous automation settings, and Claude Code's own
auto mode, trade some of these prompts for speed; see
setup-requirements.md for the routes into
auto mode.
Automated Safety
Hooks run automatically on every session:
| Hook | Trigger | What It Does |
|---|---|---|
validate-commit.sh | PreToolUse (Bash, PowerShell) | Checks for hardcoded values, TODO format, JSON validity, design doc sections — exits early if the command is not git commit |
validate-push.sh | PreToolUse (Bash, PowerShell) | Warns on pushes to protected branches, and on git tag, git merge, gh release, butler push and steamcmd +run_app_build — exits early for any other command |
validate-read.sh | PreToolUse (Read) | Refuses a whole-file read of a design doc over 40 KB and answers with its headings, so the retry reads one section (features.read_guard) |
validate-write.sh | PreToolUse (Write/Edit) | Warns, never blocks, when a write would break a rule the skills state: a file they never overwrite, the config guard, the prototype boundary, a localization freeze |
validate-registry.sh | PreToolUse (Write/Edit) | Warns when a write to the entity or TR-ID registry would delete or renumber an entry, or set a status its header does not list |
validate-assets.sh | PostToolUse (Write/Edit) | Checks data-file JSON under assets/, Assets/ or Content/, and asset naming in Godot's assets/ only — exits early if the file is under none of them |
session-start.sh | Session open | Shows current branch and recent commits for orientation |
detect-gaps.sh | Session open | Detects fresh projects (suggests /start) and missing design docs when code or prototypes exist |
pre-compact.sh | Before compaction | Logs the compaction (its output does not reach Claude — session-start.sh restores context afterwards) |
notify.sh | Permission prompt, or idle about a minute | Shows Windows toast notification via PowerShell |
session-stop.sh | Every response end, in the background | Archives active.md to session log and records git activity |
log-agent.sh | Agent spawned | Audit trail start — logs subagent invocation |
log-agent-stop.sh | Agent stops | Audit trail stop — completes subagent record |
validate-agent-artifact.sh | Agent stops | Warns when a subagent stops without writing the file its brief named |
validate-skill-change.sh | PostToolUse (Write/Edit) | Advises running /skill-test after any .claude/skills/ change |
Note:
validate-commit.sh,validate-push.sh,validate-read.sh,validate-write.sh,validate-registry.sh,validate-assets.shandvalidate-skill-change.shfire on every Bash, PowerShell, Read, Write or Edit tool call and exit immediately (exit 0) when the command or file path is not relevant. This is normal hook behavior — not a performance concern.
Permission rules in settings.json auto-allow test runs and block dangerous operations (force push, rm -rf, reading .env files) in both the Bash and PowerShell tools. Read-only commands such as git status, git log and ls need no rule: Claude Code runs them without asking. The git rules match anywhere after git, so a git command whose text only mentions push followed later by + or -f, clean followed by -f, or reset followed by --hard — a commit message such as git commit -m "push + pull" included — is denied too: reword the message.
Path-Scoped Rules
Coding standards are automatically enforced based on file location. The paths
below are Godot's. Each rule also matches the Unity and Unreal layouts: the code
rules match C# under Assets/**/Gameplay/ and C++ under Source/**/Gameplay/ (and Core,
AI, Networking, UI), data matches JSON under Assets/**/Data/ and
Content/**/Data/, shaders match by file type, and tests match
C# under Assets/Tests/ and C++ under Source/**/Tests/.
| Path | Enforces |
|---|---|
src/gameplay/** | Data-driven values, delta time usage, no UI references |
src/core/** | Zero allocations in hot paths, thread safety, API stability |
src/ai/** | Performance budgets, debuggability, data-driven parameters |
src/networking/** | Server-authoritative, versioned messages, security |
src/ui/** | No game state ownership, localization-ready, accessibility |
design/gdd/** | Required sections per modes.workflow, formula format, edge cases |
design/narrative/** | Lore consistency, character voice, canon levels |
assets/data/**/*.json | JSON validity, naming conventions, schema rules |
assets/shaders/** | Naming conventions, performance targets, cross-platform rules |
**/*.tscn, **/*.tres | Scene and resource files changed in the editor where possible; safe hand-edit rules |
tests/** | Test naming, coverage requirements, fixture patterns |
prototypes/** | Relaxed standards, README required, hypothesis documented |
Design Philosophy
This template is grounded in professional game development practices:
- MDA Framework — Mechanics, Dynamics, Aesthetics analysis for game design
- Self-Determination Theory — Autonomy, Competence, Relatedness for player motivation
- Flow State Design — Challenge-skill balance for player engagement
- Bartle Player Types — Audience targeting and validation
- Verification-Driven Development — Tests first, then implementation
Customization
This is a template, not a locked framework. Everything is meant to be customized:
- Add/remove agents — delete agent files you don't need, add new ones for your domains
- Edit agent prompts — tune agent behavior, add project-specific knowledge
- Modify skills — adjust workflows to match your team's process
- Add rules — create new path-scoped rules for your project's directory structure
- Tune hooks — adjust validation strictness, add new checks
- Pick your engine — use the Godot, Unity, or Unreal agent set (or none)
- Tune process weight —
modes.rigorand its underlying knobs inproject.yaml(see Configuration). Override per-run with--review soloon any skill.
Platform Support
Primary development on Windows 10 with Git Bash. The hooks and scripts are also tested on macOS — its stock bash 3.2 and BSD tools, with and without jq — and on Linux. All hooks use POSIX-compatible patterns (grep -E, not grep -P) and include fallbacks for missing tools. The notify.sh hook uses PowerShell for Windows toast notifications and is a no-op elsewhere — desktop notifications on macOS/Linux are not yet wired. Please file issues for any platform-specific breakage.
Community
- Discussions — GitHub Discussions for questions, ideas, and showcasing what you've built
- Issues — Bug reports and feature requests
Supporting This Project
Claude Code Game Studios is free and open source. If it saves you time or helps you ship your game, consider supporting continued development:
- Buy Me a Coffee — one-time support
- GitHub Sponsors — recurring support through GitHub
Sponsorships help fund time spent maintaining skills, adding new agents, keeping up with Claude Code and engine API changes, and responding to community issues.
Built for Claude Code. Maintained and extended — contributions welcome via GitHub Discussions.
License
MIT License. See LICENSE for details.