Fix release for 1.1.1: the minimal path end to end, engine commands that run on Godot, Unity and Unreal, hook warnings you can see, and verdicts that say when they could not check. Details in CHANGELOG.md; upgrade steps in UPGRADING.md (v1.1.1 → v1.1.2). Fixes #67 Fixes #131 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WuJn2FdynEybfL5KC697nJ
64 KiB
Changelog
What's new in Claude Code Game Studios, written for the people using it.
See UPGRADING.md for step-by-step upgrade instructions, and docs/migration-guide-v1.1.md if you have an existing project on the older config files.
[1.1.2] — 2026-09-29
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.
The default path (rigor: minimal)
/help,/story-doneand the status line follow the path you're on. Nothing at minimal runs/gate-check, so the stage never moves./helpread that as the Concept phase and asked a project with a brief and three stories for a concept doc, an art bible and a systems map. It now follows the minimal route: engine →design/game-brief.md→ stories →/dev-story↔/story-done./story-donenames the next story instead of printing the sprint close-out, and the status line showsMinimal · 1/3 stories.- No more dead ends into sprints.
/sprint-statusreports progress through the brief's build order instead of refusing./create-stories,/dev-story,/qa-plan,/smoke-check,/team-qa,/retrospective,/test-evidence-reviewand others offer a minimal route instead of "run/sprint-plan". The production gate at minimal asks for the brief and stories, not a sprint plan. - The defaults are stated correctly. About 25 places named the
standardvalues as the defaults. The default isminimal, which givescoarsestories,tersedocs andsoloreview./startrecommendsminimalwhen nothing points either way. - Skills that read the concept doc also read the brief. Ten skills and four director gates warned "no game concept" or failed on a minimal project that had a brief.
/story-donestill checks screenshots atqa.level: minimal. Tests are waived there; the Visual/UI screenshot is not, but the skip covered both. A UI story now closes on its retained screenshot, and a Visual/Feel story on the screenshot plus sign-off, ascoding-standards.mdsays — every UI story used to need an evidence doc and sign-off as well. The stories/create-storieswrites no longer say their visual evidence is waived at minimal.- Your place is saved.
/dev-storyand/story-doneupdate the checkpoint inproduction/session-state/active.md, which the next session shows you, instead of appending notes nothing read. The checkpoint carries/dev-story's run result, which/story-donechecks. - The status line counts the right stories. An explicit
workflow: minimalunder another rigor showed Concept; "Not Done" counted as done; bold and bulleted Status lines were skipped; and after acdit looked forproject.yamlin the wrong folder. It also finds Python once per render rather than once for every setting it reads. - Every story status is handled.
/help,/story-doneand/sprint-statusrouteIn ReviewandNot Startedstories, and/sprint-statussays when the build order is done. All three agree on the order: anIn Reviewstory is closed first, then anIn Progressone continues, then the nextReadyorNot Startedstory in the build order. The new.claude/scripts/story-status.shlists the stories in that order before/helpand/sprint-statusrun, and onlyCompleteandDonestories count as done./project-stage-detectno longer asks a minimal project for a sprint plan, and/retrospectiveno longer counts a story closed without tests against you atqa.level: minimal./create-storiesadds to a finished build order instead of starting again atstory-001, and stops if there is no brief./brainstormasks for the player goal and fail state that stories' acceptance criteria come from, and the production gate says which of its quality checks apply at minimal. - The guides (WORKFLOW-GUIDE, quick-start, skill-flow diagrams) describe the minimal path, and the review-mode default: no director reviews at minimal.
Engines
- Godot tests run. The test command
/setup-enginewrote loaded a runner gdUnit4 never shipped, so every run failed, passing or not. It is now gdUnit4's own runner, with the flag that stops a script error from hanging the run at adebug>prompt. A run that finds no tests is NOT ASSESSED, not a pass./dev-story's parse check exited 0 on a parse error; it now loads each changed script with.claude/scripts/godot-parse-check.gd, which also accepts code that uses an autoload./smoke-checkimports the project before the tests: on a fresh clone, with no class cache, gdUnit4's runner did not load and the run exited 1 without a verdict. - Unity tests compile. They went under
tests/, which Unity never compiles, so a run reported "0 tests, Passed". They now go underAssets/Tests/. The build command builds a player, and the smoke command no longer calls aSmokeCheck.Runnothing creates. The commands name the editor by its full path: bareUnitycan be Unity's separate CLI, which fails with the exit code of a failed test. A compile error is a FAIL, and the last run's results file is no longer read as this run's. The project coherence check finds the editor fromcommands.testand reads6000.3and6.3as the same Unity, so a correctly set up project no longer reports its version as different. - Unreal tests compile and are found. The
qa-testertemplate used a flag that does not exist, and tests went inSource/Tests/, which is never built. CI and/smoke-checkbuild the editor target first: a fresh checkout has no compiled game module, and the editor quit before running a test. The CI template asks for a Windows self-hosted runner; it asked for any self-hosted runner, so a repository with a Linux one could send the job there. Its steps also run when the runner's folder has a space in it, which failed every step before. The test command prints its results — run from a shell, the editor printed nothing, so "no tests matched" could not be told from a failure. Every Unreal command names the editor by its full path and gives the project as an absolute path: UE 5.7 does not find a relative.uproject, so the test, run and smoke commands exited 1 before doing anything. A failing test and a run that matched nothing both exit 255, so/smoke-checknow reads the output to tell them apart. /smoke-checkruns your tests first, and reports NOT ASSESSED when nothing ran instead of passing. Atqa.level: minimal, where tests are waived, a project with no game tests is checked by its build, launch and critical paths instead, so the Polish and Release gates can pass at the default rigor. The build check runscommands.smoke(elsecommands.build) when set, and a build nobody launched this session is NOT ASSESSED — it could pass with nothing run.- Godot commands name the editor.
/setup-enginewrote baregodotintocommands.*even where it says Godot is not onPATH(Windows, macOS); it now writes the editor's full path, quoted, and records it asengine.path./smoke-checkand/dev-story's parse check find the editor fromcommands.test, thenengine.path, thenPATH, and say when none is found. A flag or path/smoke-checkneeds is added for that run and reported, never written intocommands.test. The project coherence check finds the Godot editor the same way — it reported "no Godot binary" on a correct project — and looks for Unity Hub's editors on macOS and Linux as well as Windows. UPGRADING.md says how to update a 1.1.x project. - Engine skills read each engine's own output.
/test-flakinesslooked forResult: Success, which Unreal never prints, and read Unity results with a JUnit pattern, so every test read as consistent; it now reads Unreal'sResult={…}, Unity's NUnit<test-case>results and gdUnit4'sreports/folder./test-helpers' Godot signal asserts could never see a signal; they now record it in a Dictionary./content-auditscansAssets/on Unity, where it found no content at all. The Godot and Unity references gain sourced command-line sections (runner flags and exit codes); the Unity reference saysRecordRenderGraphis URP's and documents HDRP'sCustomPass, andunity-shader-specialistno longer applies the URP one to HDRP.godot-csharp-specialistuses[Export(PropertyHint.Range, …)]— there is no[ExportRange]— andue-gas-specialistand the GAS reference name the base-value clamp hooks. Unreal test names follow the rootcommands.testfilters on. - Unity and Unreal get the rules and checks Godot gets. The coding rules for
gameplay, engine, AI, network, UI, shader, data and test code now load in
Assets/andSource/projects. Broken data JSON inAssets/**/Data/andContent/**/Data/is caught, PascalCase assets are no longer flagged, the data-file rule applies to JSON only (not C# or C++ in aData/folder), the test rule names tests the way each engine's language does,/tech-debt,/launch-checklistand/release-checkliststop reporting "nosrc/", the status line reaches Production, and session start no longer reads every texture looking for TODOs. The Unity and Unreal code rules load on code files only, and the shader, gameplay and engine rules give examples for all three engines. Skill examples, templates and the rules reference name each engine's code folder instead of only Godot'ssrc/, and the guide's/localizeand/reverse-documentexamples are ones that run. - Test results mean what they say. Each gdUnit4 exit code maps to a verdict —
101 (every test passed, a node leaked) is a warning, not a failure. The Godot
CI template runs the gdUnit4 in your repo instead of replacing it with the
latest release, and asks for a full Godot version. The Unity guidance covers
the package references and
Editor/folders an assembly definition needs, theqa-testerUnity template compiles, and test output is gitignored. The Godot CI template asks forchecks: write: without it the job failed on every new repository, even with every test passing. If you protectmain, require the job's check, nottest-results, which passes even when a test fails. Theqa-testerUnreal template compiles as filled in and gives each test its own class — two tests that shared one failed to link — and the Godot one frees its subject. - Engine reference corrections. Godot's
@abstractexample gave an abstract method a body, which does not parse; the 4.4Texture2D→Texturenote now names theShaderdefault-texture methods it applies to, not the shading language. Unreal's server RPC sample declaresWithValidation, which its_Validatefunction needs. The Unity Addressables migration example keeps its handle and releases it.godot-gdextension-specialisthad the compatibility direction backwards: an extension built for an older Godot loads in a newer one, not the reverse. - Unreal on Linux and macOS. The Unreal commands named only Windows paths.
/setup-enginenow writes Linux commands on Linux (RunUAT.sh,Engine/Binaries/Linux/UnrealEditor), and/smoke-check,/dev-storyand/test-setupbuild the editor target there withBuild.sh; on macOS it writes the build command and leaves test, run and smoke for you to set, because Epic documents no command-line editor insideUnrealEditor.app./smoke-checkpicks the commands for the machine it runs on and reports NOT ASSESSED for Unreal tests on macOS untilcommands.testis set. The sources are indocs/engine-reference/unreal/current-best-practices.md.
Checks and hooks
- Warnings you can see. The commit, push, asset and skill-edit checks printed their warnings where neither you nor Claude saw them. They now show in your terminal and reach Claude. They never approve anything on your behalf.
- The commit check covers chained commands.
git add -A && git commit,git -C . commit,git -C "a path with spaces" commit,if git commit,{ git commit; },/usr/bin/git,git.exe,env X=y git commit, a commit on a second line and commits through the PowerShell tool all skipped it, and on macOS every chained form did. So didbash -c "git commit",sudoandxargs git commit,git --git-dir .git commit, and git named by a quoted or Windows path (& "C:\Program Files\Git\cmd\git.exe" commit), and any command with an emoji in it whenjqis not installed. With data files staged and no Python to check them — including the Windows Storepythonplaceholder, which the check used to mistake for Python — it now blocks and says why. The asset check no longer calls valid JSON invalid when that placeholder is first onPATH. - Here-doc text isn't a command. A commit message written through a here-doc
that mentions
git pushno longer triggers the push warning, and writing a document through a here-doc that mentionsgit commitno longer runs the commit check, which could block it. Other quoted text (echo "git commit") is still checked. A tab-indented<<-EOF, a CRLF here-doc and/bin/bash <<EOFare now read correctly too. - The commit check reads what you commit. It validates the staged copy of
each data file, not the one on disk; checks the files
git commit <path>takes, whatever the pathspec (., a folder, a glob,:/), and no longer mistakes a-Fmessage file for one; checks.JSONas well as.json; no longer skips data files with non-ASCII names; and judges a UTF-8 BOM the same way the asset check does. The push warning also fires on a refspec that targets a protected branch (HEAD:main,+main,refs/heads/main). On a command that does not mention git, the commit and push checks now exit at once (~116 ms instead of ~350). - Dangerous commands are denied in PowerShell too. The deny rules for
force-push,
reset --hard,clean -f, recursive delete and reading.envcovered only the Bash tool. They now cover the PowerShell tool, andgit push origin main --forceas well asgit push --force— andrm -fr,git clean -df, a+mainrefspec,git -C . push --forceandRemove-Item -r, which were only prompted before. - Session start keeps what matters on screen. A long checkpoint is cut to
25 lines with a note, and warnings print before it, since hook output over
10,000 characters reaches Claude only as a 2,000-character preview. At
minimal it no longer tells you to run
/gate-check, and it reads the stage fromproject.yaml, which it had never done. It no longer warns of an engine reference mismatch on a correct project whoseproject.nameis one word: it read that line as the engine. - Counts print cleanly on macOS. BSD
wcpads its numbers, so session start showedCode health: 2 TODOsand the compaction hook( 35 lines). - A section review never skips an edited section. The change check behind
/design-reviewand/architecture-reviewhashed withgitorsha1sumonly. It now also usesshasum, which every Mac has; and with no hash tool at all it reports every section as changed and says why on stderr, where it used to report an edited section as unchanged. - The compaction hooks no longer claim their output reaches Claude; session
start is what restores your place after a compaction. The agent log no longer
records Claude Code's own internal agents (prompt suggestions,
/btw) as unknown agents. - Fewer ways of calling git skip the commit check. Quoted option
values (
git -c user.name="A B" commit,--git-dir=".git",-C "$(pwd)"),timeoutandnicein front of git,-aafter the message (-m "x" -a,--all) and a relative path aftercd(cd assets && git commit -m x data/item.json) each let a commit through unchecked. A-Cdirectory the hook cannot resolve ("$CLAUDE_PROJECT_DIR",~/x) is now checked rather than skipped; only a commit in a different repository is left alone. A commit limited to named paths (git commit -m x src/player.gd) is no longer blocked by an unrelated broken file staged for later, and a redirection (2>&1,> out.log) is not read as a path.GitorGITin any case, a quoted"git",stdbuf,winptyorcommand -pin front of it, and a commit on a backslash-continued line are checked now too; agit -C <other repo> commitearlier in a chain no longer lets a later commit of this repository through; and text inside a PowerShell@'…'@here-string is not read as a command. - The push warning names the branches you protect. It warns on
main,masterandrelease/*— a short-lived release branch is where a release is stabilised — and no longer ondevelop, which trunk-based development doesn't have. It checks every push in a chain, not only the first, and reads a quoted branch name or refspec. - Python 2 on
PATHno longer fails valid data files, and with no Python 3 the GDD section check says it did not run instead of passing silently. - More spellings of dangerous commands are denied:
rmwith--recursiveand--force, and force-push,clean -fandreset --hardwith git options before the subcommand. Thegitrules match anywhere aftergit, so a git command whose text fits one is denied even when nothing dangerous runs — a commit message that mentions one, or prose such asgit commit -m "push + pull"; reword the message.git clean -fnis denied too; write a dry run asgit clean -n. - Smaller fixes. The status line counts a story whose status reads
Done.orComplete, verifiedas done, as/sprint-statusdoes. The skill-edit reminder no longer fires for skills outside the project, such as your own~/.claude/skills/./helpfinds an engine set only intechnical-preferences.md. On Windows and macOS a Godot project withsrc/andassets/gets its code root found — Godot'sassets/was read as Unity'sAssets/. Session start showssoloas the review mode when there is noproject.yaml, which is what the skills use.
Skills and docs
- Skills read the whole argument.
/scope-check inventory crafting systemcheckedinventory, and/gate-check --review fulltook--reviewas the phase. Seven skills read only the first word; they read all of it now. /design-review --depthworks again — it was renamed--reviewin 1.1.0 and old calls were silently ignored.- The brief has a Reference game line — the shipped game yours is closest
to, and the part of it your MVP keeps.
/brainstormasks for it. /startspots a clone still wired to this repo and suggests renamingorigin, so your pushes and pull requests go to your game — on every path, a returning user's included, and not for your own fork.- Skills pre-approve only the commands they run.
/help,/scope-check,/asset-audit,/project-stage-detectand/reverse-documentallowed any shell command while active; each now names its commands./prototypeand/vertical-sliceno longer claim a worktree isolation skills cannot have, and/design-reviewsays which flag wins when given both--depthand--review./helpaccepts the quoted form of its one script, which it was denied about half the time, and that script no longer fails whenMSYS_NO_PATHCONVis set. - Skill model pins are documented as they behave. A skill you type as
/skill-nameruns on the model it declares, except that auto mode ignores a Haiku pin. A skill Claude starts on its own runs on your session's model. So/gate-check,/architecture-reviewand/review-all-gdds, which declare Opus, cost more when typed in a Sonnet session. The docs had said pins were never applied. - Agent models are documented as they run, with the one-line setting that fixes a pinned agent overflowing a large-context session (#67).
- Agent specs can be run, and they match the agents.
/skill-test specand/skill-test categorylooked only in.claude/skills/, so every agent spec in the testing framework was refused as not found; both now take an agent name. The specs stated models no agent declares (36 of 49 — the three directors andlead-programmernamed the right tier, but as a full model ID) and checkedallowed-tools:, a skill field agents don't have. Each now asserts its agent's ownmodel:andtools:. Tiers are written as the aliasesmodel:takes —opus,sonnet,haiku,inherit— never as model IDs, so a new model release leaves them correct; the agent roster and gate index no longer repeat them (#131). devops-engineerandcommunity-managerrun on Sonnet. They were the only agents pinned to Haiku, the tiermodel-tiers.mdkeeps for read-only lookups and formatting. One builds your CI pipelines and the other writes what your players read — the judgement/patch-notesis on Sonnet for.- Every behavioral spec describes the skill or agent as it is. A full
/skill-test specrun failed all 121 specs in the testing framework. Most had been written against older versions and expected verdict words, paths and features the skills and agents don't have —/help's spec expected "HELP COMPLETE", a word the skill has never used. Each spec is rewritten against its current skill or agent, and each case still tests a specific behavior./skill-testnow judges an agent by what it actually sees: its own file,CLAUDE.mdand the files it imports, the gate definition for a gate case, and any skills it preloads. A rule every agent receives, such as escalating a conflict to the shared parent, is no longer reported missing from each one. - Directors answer each gate in its own words. The four directors were told
to answer every gate APPROVE / CONCERNS / REJECT (the producer REALISTIC /
CONCERNS / UNREALISTIC), but eight gates define their own —
PR-MILESTONEis ON TRACK / AT RISK / OFF TRACK,TD-FEASIBILITYVIABLE / CONCERNS / HIGH RISK,PR-SCOPEREALISTIC / OPTIMISTIC / UNREALISTIC,AD-CONCEPT-VISUALCONCEPTS / STRONG / CONCERNS, every phase gate READY / CONCERNS / NOT READY — and the skills act on those words, so/milestone-reviewcould never see OFF TRACK and refuse a GO. Each director now reads the verdict words from the gate's definition file./map-systemsand/brainstormhandle PR-SCOPE's OPTIMISTIC, which they had never expected. - Agents preload only skills they can run.
game-designerandcreative-directorpreloaded/design-reviewand/brainstorm, which need tools those agents don't have, andproducerpreloaded the skills that spawn it for a gate. Those preloads are gone. - Unity and Unreal agents check their engine reference before suggesting an
API, as the Godot agents already did, and every engine agent asks which
editor is installed when the pin says
NOT DETERMINED.godot-specialistno longer tells itself to use WebSearch, a tool it doesn't have. - Agents that don't write code no longer follow a programmer's workflow.
qa-lead,sound-designer,writer,performance-analyst,community-manager,release-manager,analytics-engineerandlocalization-leadasked "static utility class or scene node?" and offered to write tests; each now drafts, proposes and asks before writing. security-engineerrates findings on/security-audit's scale — CRITICAL / HIGH / MEDIUM / LOW, HIGH counting as CRITICAL in multiplayer — when you ask it directly, not only inside the audit.- Agents name each other where their work meets:
network-programmerandsecurity-engineer,writerandworld-builder,art-directorandaudio-director,ux-designerandaccessibility-specialist, and others.live-ops-designerleaves prices toeconomy-designer, as/team-live-opsalready did; agents with a built-in budget (latency, bandwidth) use the project's figure when it gives one. devops-engineerfollows trunk-based development. It prescribed GitFlow — a long-liveddevelopbranch with feature branches cut from it — while CLAUDE.md sets trunk-based. It now describes the trunk flow/team-releaseand/hotfixnow use too: short-lived branches offmain, releases tagged onmain, a release branch only to stabilise one.release-managerand/hotfixmerge fixes back tomainrather than a "development branch", and two hook samples inhooks-reference/no longer assumedevelop.- Director memory stays in the project.
creative-director,producerandtechnical-directorkept their memory in your home folder, shared by every project on the machine. Like the other 14 agents, they now keep it in the project's gitignored.claude/agent-memory/. Notes already in the home folder are not moved — UPGRADING.md says how to keep them. - Python 3 and Bash are listed as required — every skill reads
project.yamlthrough Python, and every hook runs in Bash. Install steps lead with Claude Code's native installer, and the VS Code extension's own permission setting is named; counts, links and examples that had drifted are corrected. - Engine commands say how to run on a Mac.
/smoke-checkwraps each engine run intimeout, which macOS does not have; it now namesgtimeout(Homebrewcoreutils) and aperlform that needs nothing installed./setup-enginesays no engine is onPATHon macOS either, and names the Godot binary inside its app bundle, socommands.*gets a path that runs. - The reference docs match Claude Code 2.1.282: hook schemas (the 10,000-
character output cap, SessionStart's
forksource, every exit-2 event), the effects map, context windows, director-gate model tiers, and the bundled review command (/review). - A Proposed ADR blocks a story again. In 1.1.0
/dev-storystopped reading an ADR's status, so a story built on an unaccepted decision went ahead. It now stops and tells you to accept the ADR with/architecture-decision accept./create-storiesreads the status it marks stories Blocked on, and stops when the epic you name doesn't exist;/story-readinessreports a Proposed or missing ADR as BLOCKED at everyworkflowtier, as/dev-storystops on it. Accepting an ADR keeps its## Date: rewriting it made every story drafted against the Proposed ADR look out of date to/dev-story. /architecture-reviewwrites the traceability index where the gate reads it,docs/architecture/requirements-traceability.md. It had named no path, so the Pre-Production gate could not find the file outsidertmmode.- One evidence rule, everywhere.
/test-evidence-review,/qa-plan, the evidence template and the effects map now agree with/story-done: a UI story closes on its retained screenshots, a Visual/Feel story on screenshots and sign-off, and noqa.levelwaives either./test-evidence-reviewchecks the evidence path the story names before guessing, looks in each engine's test folder, and no longer asks UI stories for three sign-offs and a walkthrough./test-setupcreatesproduction/qa/evidence/, and/smoke-checkcounts only files your engine's test runner can run. - One bug severity scale.
/bug-reportfiled S2-Major, S3-Minor and S4-Trivial, which/bug-triagedoesn't read, and/hotfixcalled a bug with a workaround S2, which triage calls S3./bug-report,/hotfix,qa-lead, the release and launch checklists and the incident template now use S1 Critical / S2 High / S3 Medium / S4 Low./bug-reportnumbers a new bug one past the highest existing ID, and/team-qafiles bugs the same way —BUG-0001.md, where it wroteBUG-001-[slug].md— so/bug-report verifyandclosefind any bug by its number, older ones included. - Director reviews go to the director the gate names, and only in the modes
that run them.
/art-biblesent its review tocreative-directorinstead ofart-director, and/create-architecturereviewed its own architecture in every mode instead of spawningtechnical-director. A rejected architecture can no longer be accepted./create-control-manifestand/propagate-design-changeread the review mode they branch on;/architecture-decisionnames the reviewers it actually spawns; and/team-narrativeruns its narrative consistency review in every review mode whennarrative-directoris on the team, and says so when it is not. /gate-checkcan pass atstandard. It required "all four directors" READY after narrowing the panel, and on entering Systems Design it recommended/create-architectureinstead of/map-systems./map-systemsno longer skips its verdict and session save when a review is skipped.- Every verdict has a word for "could not check".
/release-checklist,/regression-suite,/consistency-check(with an empty registry, a name the registry doesn't have, or no GDDs in scope),/content-audit,/story-readinessand/tech-debt(with no register) report NOT ASSESSED instead of passing, and/prototyperecommends NOT ASSESSED for a prototype nobody has played. In/team-qaan open S1 or S2 bug means NOT APPROVED even when other evidence is missing; it read as NOT ASSESSED./security-audit's FIX CRITICALS FIRST is now FIX BEFORE SHIPPING — open HIGH findings, no CRITICAL — with a rule for choosing each verdict./qa-plan,/bug-triage,/perf-profileand/story-done(for a deferred criterion) always end with a verdict, and/code-review,/asset-auditand/review-all-gddsuse one verdict scale each. - Team skills spawn every agent they use. Each
team.sizeset in/team-audio,/team-level,/team-releaseand/team-live-opsnow includes the agents its own steps call, which were otherwise never spawned./team-narrativedrafts inproduction/narrative/and asks once before writing the finals todesign/narrative/./team-combatsays when no engine is set, and/team-leveland/team-uishow usage when given no argument. Atteam.size: studio, the "adversarial review pass" in/team-combat,/team-uiand/team-polishis now defined — that phase's reviewers are told to find how the work breaks, and the report says the pass ran — and extras that no step defined were removed from/team-audio,/team-polish,/team-narrativeand/team-live-ops./team-narrativeatsmalladds its lore and localization agents only atreview_mode: full. - Skills ask before they write, and write what they say.
/dev-story,/sprint-plan,/patch-notes,/localizeand/adoptwrote files without asking, or wrote files the question didn't name./create-architecturewrites once, at the end./perf-profilecan save the report it offers,/tech-debtno longer appends a debt item that's already in the register, and/consistency-checkno longer offers to save a report it has no path for. /skill-improveno longer discards your uncommitted edits. It reverted a rejected change withgit checkout, dropping every edit to the skill since your last commit; it now restores the copy it saved.- Test helpers compile on Unity and Unreal.
/test-helpersput them undertests/helpers/, which neither engine builds; they now go in each engine's test folder, and the Godot scene helper no longer extends a test suite./test-flakinessnames quarantine mechanisms from each test framework's own documentation, and says Unreal's is not covered. - Templates match what the skills write. The reverse-documentation GDD
template has all eight standard sections. The art bible template had a
different set of sections from the nine
/art-biblewrites; it now has those nine, and/art-biblecreates the file from it./ux-design's HUD spec has the sections/ux-reviewchecks, so a HUD spec can now be approved, plus the Information Hierarchy and Acceptance Criteria its template always had; a UX spec gains the input-method checklist and the Platform Target line/ux-reviewasks for. Templates and skills use the same section names, and/art-bibleand/ux-designlist an existing document's sections by them. /create-epicsworks atminimal, building epics from the brief instead of stopping for GDDs./setup-engineasks whether an Unreal project's gameplay lives mostly in C++ or in Blueprints, and other skills fix smaller dead ends:/onboardwithout a role,/playtest-reportwithout an argument, a failed smoke test in/hotfix, and/retrospectivepointing at the read-only/sprint-status.- Directors can say they could not judge. A director gate can now answer NOT ASSESSED, naming the input it did not get, instead of picking a confident word; every skill that spawns one treats it as "not approved" and says what was missing. "Revise flagged items" now means the specialist re-drafts the section and you approve it again before it is written.
/sprint-planno longer sets your review mode. On the firstnewsprint of a project it asked for a review depth and wrote it intoproject.yamlandproduction/review-mode.txt, overridingmodes.rigorfor good. It now uses the resolved mode;/settingschanges it when you mean to. It also numbers the new sprint after the last one and carries unfinished stories over.- Checks that could pass on nothing now say so.
/asset-auditsaid COMPLIANT with zero assets scanned — and on every Unreal project, whose assets live inContent/;/balance-checksaid HEALTHY with no targets to compare;/code-reviewsaid APPROVED when the engine review never ran. Each now reports NOT ASSESSED, as do/launch-checklist,/team-polish,/localize qaand/project-stage-detectwhere they could not check./security-audit's FIX BEFORE SHIPPING now outranks NOT ASSESSED, so an open HIGH finding is never hidden behind a category it could not scan. - The release gate checks security and localisation.
/gate-check releasereads the newest/security-audit(atstandardandfull, an open CRITICAL or HIGH blocks it) and each locale's/localize qaresult (required atfull), and names the bug severities that block per tier (S1–S3 atfull, S1 below). It is a readiness gate, run before shipping: the release checklist, changelog, security audit and localization checks now sit in the Polish phase in/helpand the workflow guide, and/team-releaseexpects the stage to readReleasealready. - Releases and hotfixes are trunk-based everywhere.
/team-releasetagsmainand cuts a release branch only to stabilise one;/hotfixstarts from the release tag and merges back tomain./team-releasehasrelease-managerwrite the patch notes —community-managerhas no shell to run/patch-notes— andcommunity-managerwrites the announcement from them. - The guides name the right gate. The workflow guide named every phase gate
one phase late and showed a
/gate-check conceptthat does not exist;/design-system,/map-systemsand the systems-index template sent you to the wrong gate once your GDDs were done./gate-check's argument is the phase you are entering, everywhere. - More asking before writing.
/startasks before writingproject.yaml;/dev-storyasks before marking a story In Progress;/team-combatwrites the GDD itself after asking; nine design agents ask before creating a skeleton file;/create-architectureno longer overwrites an existing architecture document, and its focus runs now save their section. - The default path, more of it.
/helpreads your checkpoint atminimal, so it recommends/story-doneafter/dev-storyinstead of/dev-storyagain;/quick-designworks on a system with no GDD from the brief and the story;/qa-plan,/story-readiness,/dev-storyand/team-qano longer waive a UI story's screenshot atqa.level: minimal. - Agents.
accessibility-specialistdrafts findings instead of following a programmer's workflow;security-engineerreports in/security-audit's format;godot-specialist,unity-specialistandunreal-specialistsay when a request is for another engine; and dozens of agents state rules their specs expected but their files left implied. A.gdextensionexample commented with#swallowed its[libraries]section — ConfigFile comments start with;. - Verdicts and records that could mislead.
/security-auditlet a category it could not scan replace FIX BEFORE SHIPPING with NOT ASSESSED; a known HIGH now decides. It also says whensecurity-engineerwas not spawned./team-qano longer records a manual-QA result the tester did not give, and its qa-lead drafts the sign-off for you to approve instead of writing it first./bug-report verifysays CANNOT VERIFY when the related test did not run, and never puts an email address in a bug./consistency-checkatstandardcompares only the required sections./create-architectureruns its director review after a one-section update too./dev-storyand/create-storiesread an ADR's status in one step even with a blank line under each heading. The shipped.gitignoreno longer drops gdUnit4's test runner (addons/gdUnit4/bin/), and/team-narrativereads the project's canon before any agent drafts. - Team skills ask before agents write code.
/team-combat,/team-audio,/team-uiand/team-polishlet their agents write code, shaders and audio files as if they were drafts, without asking; each agent now lists the files it will create or change, and the skill asks once for the set.security-engineerrates its own findings in/security-audit, and a category the audit could not scan is never reported as reviewed. In/gate-check, answering "no" to a manual check fails that item instead of leaving it unchecked./skill-test's category mode says which verdict it gives when,/patch-notesmaps its categories onto your template's sections, and/create-control-manifestnames the source of each naming and budget rule. - Handoffs name every step the next gate reads.
/create-architecture's handoff now lists/architecture-review, which/gate-check pre-productionrequires, and/create-control-manifest./team-combatsizes its design document bymodes.workflow, as/design-systemdoes — all eight sections only atfull, optional atminimal— and starts it from the GDD template,## Summaryincluded./brainstormasks before changing a scope the producer calls unrealistic, and a blocked agent's report names what was missing and where it was expected./create-architectureasks you to approve its API boundaries like every other section,/review-all-gddsreports how many of the GDDs present it reviewed and names any it could not read,/team-live-opsno longer starts economy design before you approve the theme and says what to do when an ethics flag blocks the plan, and/team-releasekeeps its 48-hour watch in the post-release phase. /gate-checkpasses a project that is ready. Directors were told "none" for work a later phase does — the architecture before Pre-Production, the sprint plan before Production — and read it as missing; it is now passed as "not expected before [phase]". The four phase-gate reviews judge readiness for the phase being entered, against that gate's required artifacts at your tier. On CONCERNS you can advance by accepting the listed risks, which the gate report records under Accepted Risks; a FAIL or NOT ASSESSED never moves the stage. Atworkflow: minimalthe production gate no longer asks for a Vertical Slice — two checks on the current build replace it (the core loop is fun, it runs end to end) — and the technical-setup gate passes with its "not applicable" note. An unplayed Vertical Slice reads NOT ASSESSED, not FAIL, and atleanandsoloa skipped art-bible sign-off is not counted missing. The release gate no longer asks for a localisation QA report for the source language, reads the newest full-scope security audit so a narrower later one can't clear an open HIGH, and names only/release-checklistas the release checklist.technical-directorandcreative-directorask before writing a decision down, asproducerdid.- A release waits for the release gate.
/team-releasecould tag and deploy while the project was still in Polish, recommending/gate-check releaseafterwards. It now stops before spawning anyone unless the stage readsRelease; proceeding anyway takes an explicit override, written into the go/no-go record. Its QA step uses the release gate's bug thresholds (S1; S1–S3 atworkflow: full), and its agents each write their own sign-off file — two wrote to one and could overwrite each other./release-checklistread open bugs from the milestone file, which lists none; it readsproduction/qa/bugs/and says NOT ASSESSED when there are no bug records./launch-checklistnever asked about what only a person can confirm (on-call, EULA, press keys), so it could only end NOT ASSESSED; it now asks once per section (yes / no / not yet / N/A), so READY and CONDITIONAL are reachable, and no longer createsproduction/releases/before you approve the write./day-one-patchasks once beforelead-programmerchanges code and runs tests withcommands.test./hotfixdefines S1 as/bug-triagedoes and recordsTests: NOT RUNwhencommands.testis unset./localizerequires a QA PASS or PASS WITH CONDITIONS for each translated locale atworkflow: fullonly (recommended atstandard), as the gate does.release-managerruns/patch-notesitself,community-managerfollows your project's voice guide over its defaults, anddevops-engineerno longer asks game-code architecture questions. - QA works at every
qa.level./team-qaatminimalcovers a Logic story with no test by walking its acceptance criteria, where every sign-off ended NOT ASSESSED; it reads the bugs already on file before QA starts, so an open S1 or S2 is known up front, handles a smoke report that says NOT ASSESSED, and findssprint-003.mdfor/team-qa sprint-3./test-evidence-reviewfollowsqa.level(a missing test is WAIVED atminimal) and takes each story type's gate level fromtesting.strict./bug-report verifyruns yourcommands.test, and can verify a bug no test covers by asking whether you played the reproduction steps;closeshows the closure record and asks before changing the bug file — it wrote first.qa-testerwrites bugs in/bug-report's format, so/bug-triageand/milestone-reviewcount them./bug-triagewith no bug files ends with a verdict, and/milestone-reviewcalls an overridden OFF TRACK a CONDITIONAL GO. - Stories, ADRs and sprints agree.
/dev-storywrotein_progresstosprint-status.yaml, which nothing else reads; it now writesin-progress, and after an unfinished run the checkpoint says to resume/dev-storyinstead of "Next step: /story-done". Atworkflow: fulla story withADR: N/Ano longer stops/dev-story; a Deprecated or Superseded ADR now blocks a story, naming its successor./architecture-decision acceptfinds the blocked stories it should unblock — it searched for a status form/create-storiesnever writes./story-donepicks the next story from the same list as/help, and asks you about behaviour criteria instead of reading them off the code./code-reviewcould approve code whose ADR it could not read; that is now NOT ASSESSED./scope-checkand/sprint-statusread the three-digit sprint names/sprint-planwrites, and/propagate-design-changesays how it finds Foundation-layer ADRs. - Team skills say what they did.
/team-polishhadperformance-analystfix code its own agent file forbids it to write; its report is now the optimisation list with an owner per item,engine-programmer(added to thesmallandstudiosets) andtools-programmerimplement it after one ask for the whole set, and atindividualthe list is handed to/dev-story. The team skills said directors "still spawn at phase gates", which none did; a phase gate is now a decision point the pipeline lists, in every automation mode./team-audio,/team-level,/team-live-opsand/team-uiname a working file per agent where they said[path]./team-audiokeeps the sound bible atdesign/audio/sound-bible.md, out of the GDD checks./team-combat,/team-audio,/team-narrativeand/team-uino longer end a plain COMPLETE when a check could not run: the verdict names it (COMPLETE — engine validation NOT ASSESSED (…)). An "ADR is Proposed" blocker points at/architecture-decision accept. /security-auditreports keep their findings. Reports are named by scope (security-audit-[date]-[scope].md), so a same-dayquickrun no longer overwrites the full audit.security-engineergets a fixed brief that says every finding is rated from its table — it could arrive with findings already rated — and a category the audit had no source for (the usual case on Unity and Unreal) is named with how to fix it. The credential scan also catchesApiKey,sk_live_…and each engine's log call.- Design skills finish on the path you're on.
/art-biblerecords a skipped sign-off in the art bible's header (SKIPPED [date] — [mode] mode), so the production gate finds it; asks you whenart-directorandtechnical-artistdisagree on an asset standard, as it already did for UX; and atworkflow: minimalhands off to/create-storiesand/dev-storyinstead of GDDs and architecture./prototypenames the minimal route and reports NOT ASSESSED for a build nobody has played./adoptaudits the brief against its template atminimaland says Concept has no gate to run./tech-debt addchecks the register for a matching entry before appending./ux-reviewmarks Pattern Library N/A for a HUD spec instead of NOT ASSESSED, and the UX templates carry theTemplateline it picks its checklist by./ux-design,ux-designerand the accessibility template agree on who sets the accessibility tier. /skill-testjudges the same way in every mode. Category mode ranked NOT ASSESSED differently from static and spec mode, and dropped a skill missing from the catalog fromcategory all; unparseable frontmatter is now NON-COMPLIANT, and agents are listed from.claude/agents/. The spec templates use the headings the specs do.- The skill-flow diagram shows each step in its phase. Release preparation
(
/security-audit,/localize qa,/release-checklist,/changelog,/patch-notes) sits in Polish, before the release gate that checks it, and the test framework and accessibility specs sit in Technical Setup, before the gate that requires them atfull. Five output paths now match what the skills write, and the effects map names the skills that readproject.stage,commands.test,testing.strictandqa.level, and those that write the stage. - Team skills say plainly that they run no director gate. The
review_modenote in all nine still saidleanruns the four director phase gates, though no team pipeline has one. - A team pipeline that skipped an agent ends BLOCKED. Choosing "skip this agent and note the gap" lets the other phases run, but the verdict names the gap instead of reading COMPLETE.
/code-reviewno longer reads as rankingNO ADRS FOUNDabove an approval. The ranking sentence belonged to NOT ASSESSED.- Accepting an ADR unblocks only the stories waiting on it. A story still on
a superseded ADR, which names the new one as its successor, stays Blocked. The
advice for that story now says to edit its ADR field —
/create-storiesnever rewrites an existing story — and the effects map listsDeprecatedandSupersededADRs as blocking, as the skills do. - Smaller gaps closed.
/setup-engineasks before writing a new engineVERSION.md;/release-checklist's report says how many files its TODO/FIXME/HACK counts cover;/team-combatdefines NEEDS WORK;/team-live-opswaits for both parallel phases before writing content;/map-systemsshows the revised map after a rejected boundary review;/review-all-gddsflags both GDDs of a contradiction and names a GDD that is present but empty on itsNot read:line; declining/architecture-decision's retrofit writes nothing. - Agents state what they used to leave implied. performance-analyst escalates code-quality trade-offs to technical-director; release-manager schedules from the dates you give it; sound-designer specs list attenuation detail; the Godot GDExtension specialist redirects GDScript and shader work and lists the rebuild steps for an upgrade; the GDScript specialist wants profiler evidence before moving code to GDExtension; network-programmer answers hosting questions with the network-side contract only; technical-artist names particle-specific reductions.
Every engine command on Windows 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, and the Godot and
Unreal CI templates ran on GitHub Actions. The Unreal commands for Linux and
macOS, the Unity CI template and the Unity assembly-definition guidance were
checked against their documentation, not run. Checked on Claude
Code 2.1.281 to 2.1.284, on Windows, Linux (bash 5 and 3.2) and macOS. If you ran /setup-engine on 1.1.0 or 1.1.1, your
project.yaml still holds the old test and build commands —
UPGRADING.md lists what to change.
[1.1.1] — 2026-09-24
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, not nothing. /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. See .claude/docs/config-resolution.md
for the form every skill's config line must take, if you write your own.
[1.1.0] — 2026-09-23
One config file, and a process weight you choose — one you can see and adjust, not a question you answer once at setup and forget. A solo game jam and a studio production no longer have to carry the same overhead.
Added
-
Ask-before-write now holds, whatever your personal settings say. CCGS sets Claude Code's permission mode to
defaultin the project settings, so every approval gate in the framework actually fires. If your own Claude Code config runs in an auto-accept mode, that used to switch the whole collaboration protocol off silently and agents would write files you never approved. Override it in.claude/settings.local.jsonif you really want to, but read.claude/docs/setup-requirements.mdfirst. -
project.yaml— one place for your project's configuration. Engine, naming conventions, specialists and process settings all live here. It replaces three separate files that used to hold this between them. -
project.local.yaml— your personal settings, not your team's. Git ignores it, so you can run leaner reviews or fewer confirmations on your own machine without changing anything for anyone else. -
modes.rigor— one question instead of six. Setminimal,standardorfulland it configures six underlying settings at once. You can still override any single one; the rest stay where rigor put them.minimal— no design documents required, terse writing, light test evidence. The fastest route from setup to running code.standard— 5 required design sections, balanced depth.full— all 8 design sections, thorough docs, full test evidence on every story.
-
Per-system exceptions. One system can be held to a higher standard than the rest of the project — your combat system can require the full treatment while everything else stays light. Exceptions can only make requirements stricter, never looser.
-
A real jam path, not the full pipeline with switches turned off.
minimalnow rests on a one-page game brief with six fields, replacing the 30-section concept document, the systems breakdown and the per-system design docs. Four steps to running code: pick your engine → write the brief →/create-stories→/dev-story. On Godot,/setup-enginenow also creates theproject.godotthe engine needs to open what those steps produce — until it did, the path delivered real source files with no project to load them, and the claim above was not true. Unity and Unreal projects must still be created in their own editor first; CCGS will not fabricate one, because it cannot source what those files should contain. -
modes.review_mode— how many director agents review your work. On theteam-*orchestrators,fullandleancurrently behave the same. Those nine skills only ever call phase-gate reviewers, andleanis defined as "skip the director gates that aren't phase gates" — so it has nothing to skip.solodoes differ: it turns director gates off entirely. Elsewhere (design and architecture review) all three levels differ as described. -
modes.automation— how often you're asked to confirm before something happens. Inautonomousmode, decisions are written to a log instead of interrupting you. You can always list categories that must ask regardless. Four skills ignore this setting on purpose and always ask:/setup-engine,/gate-check,/hotfixand/day-one-patch— engine choice is a one-time irreversible decision, a gate verdict nobody reads defeats the gate, and the two release skills need explicit sign-off. See.claude/docs/automation-modes.mdfor the full list and reasons. -
qa.level— how much test evidence is required before a story is done. -
docs.density— how deeply written sections go. -
team.size— which agents take part by default. Affects review depth only; it never changes what a story has to deliver. -
testing.strictper test type — a logic story can block on a failing test while a visual story stays advisory. -
/settings— see your effective configuration, check one value, or change it./settings --localwrites to your personal file. It warns you when a change would be overridden by something else. -
/startrework — asks everything it needs up front and writes a complete config in one pass, instead of scattering questions across later steps. -
Migration tooling for existing projects. A converter moves a v1.0 project onto
project.yaml. It previews by default, only deletes old files once it has proved every value survived, and deletes nothing if anything is missing./adoptspots an older project and runs it for you, and you'll get a reminder at session start if you have old config files and noproject.yaml. -
Recommendations for how much process your project needs. Describe the game you're making and CCGS suggests a level, instead of asking you to guess what "standard" means for a weekend jam versus a two-year production.
Changed
-
Claude no longer starts the four risky commands by itself.
/hotfix,/day-one-patch,/dev-storyand/story-donenow run only when you type them. They bypass the sprint process, patch shipped builds, write game code and close out stories — none of that should begin because a conversation drifted near the topic. Everything else still gets suggested as before. -
Engine specialists can only hand work to their own sub-specialists. The Godot, Unity and Unreal specialists are now limited to the four sub-specialists under each of them. Previously any of them could call any agent in the studio. This was already the documented rule; now it is enforced rather than trusted.
-
Fifteen agents that never delegated no longer can. They were carrying the ability to spawn other agents and never using it.
-
Light is now the default, not just the recommendation.
modes.rigordefaults tominimalinstead ofstandard, so a project that never opens/settingsgets the fast path: a one-page brief instead of a full design pipeline, terse writing, light test evidence, no director review panels. We changed this because we measured the old default. Built both ways, the heavier tier cost several times more to reach working code, did not produce a better result, and gave nothing back when someone else picked the project up. It was not buying more; it was buying nothing we could detect. If your project outgrows the light path,/helpand/gate-checkwill say so, and/settings modes.rigor=standardis one command. Projects that already setrigorexplicitly are completely unaffected. -
Setup steers light by default.
/startnow recommends the minimal, guided path for new projects, so you land somewhere light and step up if you need to. -
Setup asks about your game, not about the framework. The question is "what best describes what you're building?" — a game jam, a focused project, something systems-heavy — rather than "how much process do you want?"
-
Your process level is always visible. The status line shows it next to your project stage, e.g.
Concept · minimal. -
Advice goes both ways.
/helpcan suggest tightening up as a project grows, not just lightening up when you sound overwhelmed. -
Moving into Production offers a check-in on whether the level you chose at the start still fits. It's a suggestion — it never changes the verdict.
-
team.size: solois nowteam.size: individual, so it isn't confused withreview_mode: solo, which means something different. -
Less of your session is spent on the framework itself. Roughly 40% of the per-turn overhead was removed, leaving more room for your actual game.
-
Picking up after a
/clearor/compactis more reliable. Your session checkpoint is now a defined part of your session notes rather than an ever-growing file, so what comes back is the same every time and leaves far more room for actual work. Older notes can be archived without losing anything.
Fixed
-
Unity and Unreal projects were silently skipping three commit and session checks. The hooks that look for hardcoded gameplay values, unowned TODOs, undocumented gameplay systems and missing architecture docs all searched
src/— which is where Godot keeps code. Unity keeps it inAssets/and Unreal inSource/, so on those engines the searches matched nothing, every check quietly did nothing, and the result was indistinguishable from a clean pass. They now resolve the code root from your engine, and if they cannot work out where your code lives they say so instead of reporting nothing found. -
Godot C# projects can now hand C# work to the C# specialist. The Godot specialist listed only three of its four sub-specialists, leaving
godot-csharp-specialistunreachable — even though setup routes every.csfile to it. If you chose C# or Both, your game code had no specialist path. -
The rules badge in the README said 11. There are 13.
-
/hotfixnow gets your approval before touching code. It used to implement the fix first and collect approvals afterwards. -
/sprint-planno longer promises a review step that your settings skip. It now says which reviews run at which levels. -
/story-donecan no longer close a story with failing acceptance criteria in autonomous mode. The safeguard existed but couldn't be reached. -
/settingsno longer shows rigor-derived values as "locked", which read as "you can't change this" when you can. -
/design-systemno longer insists on 8 design sections at levels that require fewer. -
/localizepointed at a command that doesn't exist. -
/team-narrativeran two phases together with no checkpoint between them. -
Upgrade instructions no longer suggest a merge that conflicts on every file for projects that don't share history with the template.
-
Upgrade instructions now tell you to check for your own customisations first. Replacing the framework overwrites your edits to any file it also ships — agent definitions and hook registrations especially. The steps show you how to find those before you start, and how to keep the ones you want.
-
Re-running a review on unchanged work now offers to skip it instead of repeating the whole thing at full cost.
-
Several documented settings quietly did nothing. They looked correct and matched nothing.
-
Jam and prototype projects are no longer warned about design-document sections they were never meant to write. The check now respects the level you picked.
-
Two file checks were silently doing nothing on Windows. They ran, found nothing, and reported success. They now work.
-
Passing a phase gate can actually advance your project stage.
/gate-checkreached the right verdict but couldn't record it. -
/bug-reportcan now run tests, which it always said it would. -
Committing gameplay code no longer prints a wall of raw search output alongside the warning.
-
The status line can show what you're working on — the epic, feature and task breadcrumb was described in the docs but never actually appeared.
-
Fixed broken links in the Unity reference documentation.
Removed
- The bundled example game and the sample session transcripts. They described a project that didn't match the current workflow. Both are recoverable from git history if you want them.
Deprecated
production/stage.txt,production/review-mode.txtand.claude/docs/technical-preferences.mdare superseded byproject.yaml. Nothing breaks if you keep them — they're still read whenproject.yamldoesn't have a value. Run the migration script with--finalizewhen you're ready to retire the first two. The third is kept on purpose: it still holds your Forbidden Patterns and Allowed Libraries, which have noproject.yamlequivalent yet.
Known limitations
- Windows is the verified platform. Everything was checked on Windows. macOS and Linux should work but haven't been confirmed.
- No Unity or Unreal project was compiled. Configuration, routing and documentation were verified for both engines, but nothing here builds or launches a real project in either.
- Some engine reference details are marked unverified rather than guessed. Where a version number or API detail couldn't be confirmed from a real source, it's flagged in place instead of filled in with something plausible. You'll see the flag where it matters.
Settings that don't do anything yet
These six are documented and accepted, but nothing reads them. Setting one
today has no effect. /settings says so when you view or change one, so you
won't configure something expecting a result:
accessibility.target · cadence.sprint_length · cadence.milestone_length ·
strict_gate_checks · project.kind · features.token_budget_warn_at
Earlier releases
For v1.0 and earlier, see the version history in UPGRADING.md — each release has its own "What Changed" section written at the time it shipped.