nccgs 2.0.0-rc.3 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (76) hide show
  1. package/.claude/nccgs/MEMORY.md +7 -2
  2. package/.claude/nccgs/VERSION +1 -1
  3. package/.claude/nccgs/packages/ponytail/README.md +2 -2
  4. package/.claude/nccgs/protocols/agent-contract.md +15 -2
  5. package/.claude/nccgs/protocols/bounded-repair.md +135 -7
  6. package/.claude/nccgs/protocols/editor-session-evidence.md +52 -0
  7. package/.claude/nccgs/protocols/orchestration.md +7 -5
  8. package/.claude/nccgs/protocols/review-handoff.md +17 -1
  9. package/.claude/nccgs/protocols/standalone-gates.md +64 -8
  10. package/.claude/nccgs/protocols/standalone.md +33 -13
  11. package/.claude/nccgs/protocols/task-gates.md +13 -1
  12. package/.claude/nccgs/protocols/task-slices.md +106 -0
  13. package/.claude/nccgs/routing.generated.md +20 -0
  14. package/.claude/nccgs/tools/command-process.mjs +10 -4
  15. package/.claude/nccgs/tools/compile-policy.mjs +8 -0
  16. package/.claude/nccgs/tools/configure-models.mjs +4 -0
  17. package/.claude/nccgs/tools/editor-session-evidence.mjs +66 -0
  18. package/.claude/nccgs/tools/gates.mjs +7 -4
  19. package/.claude/nccgs/tools/handoff.mjs +51 -0
  20. package/.claude/nccgs/tools/inputs.mjs +36 -1
  21. package/.claude/nccgs/tools/installation-guard.mjs +55 -0
  22. package/.claude/nccgs/tools/lifecycle.mjs +21 -0
  23. package/.claude/nccgs/tools/orchestration.mjs +264 -14
  24. package/.claude/nccgs/tools/repair-packet.mjs +29 -10
  25. package/.claude/nccgs/tools/returned-handoff.mjs +38 -0
  26. package/.claude/nccgs/tools/review-budget.mjs +171 -0
  27. package/.claude/nccgs/tools/review-handoff.mjs +42 -8
  28. package/.claude/nccgs/tools/runtime.mjs +7 -2
  29. package/.claude/nccgs/tools/session-budget.mjs +67 -0
  30. package/.claude/nccgs/tools/task-slices.mjs +147 -0
  31. package/.claude/nccgs/tools/task.mjs +39 -2
  32. package/.claude/nccgs/tools/tool-guard.mjs +19 -5
  33. package/.claude/nccgs/tools/unity-repair.mjs +128 -0
  34. package/.claude/nccgs/tools/verification-jobs.mjs +13 -3
  35. package/.claude/nccgs/tools/windows-compiler-server.cs +163 -0
  36. package/.claude/nccgs/tools/windows-job.cs +8 -1
  37. package/CHANGELOG.md +142 -0
  38. package/MEMORY.md +7 -2
  39. package/README.md +57 -27
  40. package/UPGRADING.md +27 -18
  41. package/VERSION +1 -1
  42. package/docs/ARCHITECTURE.md +45 -18
  43. package/docs/BOUNDED-REPAIR.md +76 -7
  44. package/docs/EDITOR-SESSION-EVIDENCE.md +52 -0
  45. package/docs/HANDOFF-AUTOMATION.md +144 -0
  46. package/docs/HUONG-DAN-MIGRATE-VA-SU-DUNG.md +68 -11
  47. package/docs/PHASE-1-OPERATIONS.md +142 -1
  48. package/docs/PHASE-2-OPERATIONS.md +1 -1
  49. package/docs/RELEASE-STATUS.md +102 -4
  50. package/docs/TASK-SLICING.md +57 -0
  51. package/docs/UNINSTALL.md +134 -0
  52. package/docs/UPGRADE-QUALIFICATION.md +1 -1
  53. package/docs/WORKFLOWS.md +1 -1
  54. package/package.json +2 -2
  55. package/scaffold/.nccgs/templates/repair-unity-code.json +18 -0
  56. package/scaffold/.nccgs/templates/repair-unity-editor.json +21 -0
  57. package/scaffold/.nccgs/templates/task-slices.json +28 -0
  58. package/scripts/cli.mjs +15 -2
  59. package/scripts/install.mjs +14 -0
  60. package/scripts/recover-session.mjs +89 -0
  61. package/scripts/run.mjs +21 -8
  62. package/scripts/supervise.mjs +30 -6
  63. package/scripts/uninstall.mjs +292 -0
  64. package/scripts/validate.mjs +6 -0
  65. package/scripts/work-handoff.mjs +38 -0
  66. package/tests/editor-session-evidence.test.mjs +45 -0
  67. package/tests/fixtures/compiler-shutdown.cs +64 -0
  68. package/tests/orchestration-v15.test.mjs +52 -1
  69. package/tests/phase1.test.mjs +92 -0
  70. package/tests/policy-v15.test.mjs +14 -0
  71. package/tests/review-budget.test.mjs +177 -0
  72. package/tests/runtime-v15.test.mjs +572 -4
  73. package/tests/session-budget.test.mjs +34 -0
  74. package/tests/task-slices.test.mjs +285 -0
  75. package/tests/uninstall.test.mjs +477 -0
  76. package/tests/unity-generated.test.mjs +140 -0
package/README.md CHANGED
@@ -1,31 +1,41 @@
1
1
  # NCCGS — New Claude Code Game Studio
2
2
 
3
- **2.0.0-rc.3** is a release candidate for standalone game-development orchestration
4
- in **Claude Code**, published on npm's **next** channel. The stable/latest channel
5
- is not promoted by this release.
3
+ **2.1.0** is the unpublished next package for standalone game-development
4
+ orchestration in **Claude Code**. It adds reversible project uninstallation;
5
+ the published **2.0.0** archive remains unchanged. Local preparation moves no npm tags.
6
+ It retains handoff automation, bounded task slicing and Unity repair, protected
7
+ final-review allocation, managed Unity settlement and exact first-import output
8
+ declarations. New repair steps block unsaved loaded scenes before execution.
9
+ See [handoff operations](docs/HANDOFF-AUTOMATION.md), [bounded repair](docs/BOUNDED-REPAIR.md),
10
+ [task slicing](docs/TASK-SLICING.md), [uninstallation](docs/UNINSTALL.md) and [release notes](CHANGELOG.md).
6
11
 
7
12
  Claude Code handles intake, planning, specialist dispatch, testing, independent
8
13
  review and reporting. External review can be configured separately. This major
9
- candidate introduces standalone defaults and explicit execution-policy migration
14
+ version introduces standalone defaults and explicit execution-policy migration
10
15
  from the older compatibility workflow; existing task obligations remain preserved.
11
16
 
12
17
  ## Validation and limits
13
18
 
14
- Framework regression: 183 passed, 0 failed, 6 Windows symlink-fixture skips (189
15
- tests). A scoped delivery V2 case reached 24/24 criteria, 137 EditMode tests,
16
- 52 PlayMode tests and an independent Claude Code PASS with no remaining conditions.
17
- That case included operator intervention; it is not a clean autonomous benchmark,
18
- a human acceptance decision or a claim about all games. Its earlier failed attempts
19
- and negative findings remain preserved in the development evidence.
20
-
21
- The release source includes the reviewed fixes to reviewer capacity, handoff schema
22
- guidance and standalone command syntax. The game case used a frozen framework with
23
- a session-only reviewer capacity override. This exact RC has not yet completed a
24
- fresh full game task. Published-1.3.0 upgrade scope is documented in
25
- [upgrade qualification](docs/UPGRADE-QUALIFICATION.md). Use a disposable
26
- project or backed-up copy while evaluating it. See [release status](docs/RELEASE-STATUS.md), [Vietnamese quick start](docs/HUONG-DAN-MIGRATE-VA-SU-DUNG.md), [release notes](CHANGELOG.md),
27
- [upgrading](UPGRADING.md), [delivery acceptance](.claude/nccgs/protocols/delivery-acceptance.md)
28
- and [portable framework decisions](MEMORY.md).
19
+ The frozen exact RC4 archive was exercised through actual Claude Code on a
20
+ controlled Unity scene repair: dirty-scene refusal preserved unsaved content,
21
+ a fresh worker repaired the target, deterministic PARTIAL handoff required no
22
+ continuation, all five checks and 28 criteria/385 assertions passed, and a fresh
23
+ independent reviewer returned unconditional PASS before normal task closure.
24
+ This is scoped workflow evidence, not broad game-quality or productivity proof.
25
+
26
+ Version 2.0.0 keeps those runtime guards and adds a receipt publisher so external
27
+ Editor stop evidence is available inside the reviewer's project. It does not
28
+ operate processes or alter acceptance. See [Editor evidence](docs/EDITOR-SESSION-EVIDENCE.md).
29
+ The exact 2.0.0 archive subsequently passed its scoped native Unity qualification
30
+ and was published on 2026-10-28. Frozen release receipts retain its tests and
31
+ independent reviews. The new 2.1.0 uninstaller receives local filesystem/CLI tests;
32
+ that does not claim another Claude Code/Unity run. The first independent maintenance
33
+ review required four fixes; this candidate adds those fixes and awaits qualification
34
+ of its exact archive, including a fresh independent review. Earlier verdicts remain
35
+ unchanged in their separate receipts.
36
+ Frozen history remains intact.
37
+ See [release status](docs/RELEASE-STATUS.md), [upgrading](UPGRADING.md),
38
+ [Vietnamese quick start](docs/HUONG-DAN-MIGRATE-VA-SU-DUNG.md) and [decisions](MEMORY.md).
29
39
 
30
40
  ## What changed
31
41
 
@@ -64,19 +74,22 @@ The studio retains 47 roles (13 active by default, including Game Designer), 36
64
74
  rules, lifecycle hooks and unmodified official Unity Skills. Enable specialists
65
75
  when their expertise resolves a concrete problem; do not dispatch the whole studio.
66
76
 
67
- ## Try the release candidate
77
+ ## Try the local 2.1.0 package
68
78
 
69
79
  Requirements: Claude Code and Node.js 18+. Unity CLI/Pipeline is needed for live
70
80
  Unity operations. Run against a disposable Unity project first:
71
81
 
82
+ Use the locally prepared archive and its accompanying SHA-256 manifest:
83
+
72
84
  ```powershell
73
- npx --yes nccgs@2.0.0-rc.3 install --project "D:\path\to\UnityProject" --dry-run
74
- npx --yes nccgs@2.0.0-rc.3 install --project "D:\path\to\UnityProject"
75
- npx --yes nccgs@2.0.0-rc.3 doctor --project "D:\path\to\UnityProject"
85
+ $NccgsArchive = "D:\path\to\nccgs-2.1.0.tgz"
86
+ npx --yes --package "$NccgsArchive" nccgs install --project "D:\path\to\UnityProject" --dry-run
87
+ npx --yes --package "$NccgsArchive" nccgs install --project "D:\path\to\UnityProject"
88
+ npx --yes --package "$NccgsArchive" nccgs doctor --project "D:\path\to\UnityProject"
76
89
  ```
77
90
 
78
- Use nccgs@next to follow candidate releases, or pin the exact version above for
79
- repeatability. Use update for an existing installation only after reviewing its
91
+ Before 2.1.0 publication, use this local archive. Published nccgs@2.0.0 does not
92
+ include the uninstall command. Use update for an existing installation only after reviewing its
80
93
  dry run and backup. See [the tested upgrade matrix](docs/UPGRADE-QUALIFICATION.md) and its limits.
81
94
  The installer preserves customized files and unrelated Claude settings, records
82
95
  overrides and backs up replacements. Do not use --force as an ordinary update path.
@@ -85,7 +98,7 @@ New installs default to standalone with `claude-standalone`. Existing installati
85
98
  without execution.json remain compatibility. To migrate explicitly:
86
99
 
87
100
  ```powershell
88
- npx --yes nccgs@2.0.0-rc.3 migrate-execution --project "D:\path\to\UnityProject" --to standalone --model-profile claude-standalone --dry-run
101
+ npx --yes --package "$NccgsArchive" nccgs migrate-execution --project "D:\path\to\UnityProject" --to standalone --model-profile claude-standalone --dry-run
89
102
  ```
90
103
 
91
104
  Inspect the dry run, then remove `--dry-run`. Omitting `--model-profile` preserves
@@ -97,7 +110,7 @@ task handling. Updating files never converts an old approval into a new one.
97
110
  Start a task session with native permissions already selected:
98
111
 
99
112
  ```powershell
100
- npx --yes nccgs@2.0.0-rc.3 run --project "D:\path\to\UnityProject"
113
+ npx --yes --package "$NccgsArchive" nccgs run --project "D:\path\to\UnityProject"
101
114
  ```
102
115
 
103
116
  New installations default to task autonomy `full`. Existing installations keep
@@ -132,6 +145,23 @@ Independent review uses Opus/high. These aliases are requested routes. Real Clau
132
145
  model resolution and provider access must be verified in the target session.
133
146
  Historical `astra-claude` routes remain available under compatibility execution.
134
147
 
148
+ ## Remove NCCGS when it is no longer needed
149
+
150
+ Close Claude Code sessions, then preview and apply from an external terminal:
151
+
152
+ ```powershell
153
+ npx --yes --package "$NccgsArchive" nccgs uninstall --project "D:\path\to\UnityProject" --dry-run
154
+ npx --yes --package "$NccgsArchive" nccgs uninstall --project "D:\path\to\UnityProject"
155
+ ```
156
+
157
+ This also supports an existing 2.0.0 installation without updating it first.
158
+ Game source, customized files and `.nccgs` history/budgets remain. The command
159
+ removes unchanged managed files and exact framework hooks/imports, saves a backup
160
+ and refuses active or uncertain work. Use `uninstall --rollback ID` to restore
161
+ that backup when no later edits conflict. Shared permission/model settings stay
162
+ because their ownership was not recorded by earlier installers.
163
+ See [details and recovery](docs/UNINSTALL.md).
164
+
135
165
  ## Maintainer verification and limits
136
166
 
137
167
  These commands run from a source/package checkout. They are not extra steps for
package/UPGRADING.md CHANGED
@@ -1,7 +1,7 @@
1
- # Upgrading NCCGS 2.0 RC
1
+ # Upgrading NCCGS 2.1.0
2
2
 
3
- Current candidate: **2.0.0-rc.3** on npm **next**. `latest` remains on the stable
4
- release line. Pin an exact version when reproducing an installation.
3
+ Current source: **2.1.0**, unpublished. Version 2.0.0 was published on 2026-10-28.
4
+ Preparation does not change npm tags. Use the local 2.1.0 archive for evaluation.
5
5
  Read [release status](docs/RELEASE-STATUS.md) for what has and has not been verified.
6
6
 
7
7
  ## Choose the operation
@@ -12,10 +12,14 @@ Read [release status](docs/RELEASE-STATUS.md) for what has and has not been veri
12
12
  | Existing NCCGS installation | `update` | Updates managed files; preserves project-owned policy and customizations |
13
13
  | Intentionally adopt standalone execution | `migrate-execution --to standalone` | Explicitly changes execution configuration; separate from updating files |
14
14
  | Resume work | `run` | Launches Claude Code with the project's configured obligations |
15
+ | Stop using NCCGS in this project | `uninstall` | Removes unchanged framework files/hooks; retains source, customizations and history |
16
+ | Undo removal | `uninstall --rollback ID` | Restores verified backup bytes, refusing later edits |
15
17
 
16
- **Published-1.3.0 upgrade qualification is covered for the tested fixture matrix.**
18
+ **Historical published-1.3.0 → RC3 upgrade qualification covers its tested fixture matrix.**
17
19
  See [upgrade qualification](docs/UPGRADE-QUALIFICATION.md) for scope and the RC2
18
- issue corrected in RC3. Try a complete copy before applying an RC to active work.
20
+ issue corrected in RC3. RC4 archive checks are recorded separately in its release
21
+ receipts; historical results do not certify a different archive. Try a complete
22
+ copy before applying this package to active work.
19
23
 
20
24
  ## New installation
21
25
 
@@ -24,9 +28,10 @@ Unity project with Assets, Packages and ProjectSettings. Live Unity operations
24
28
  also require the appropriate Unity Editor/CLI integration.
25
29
 
26
30
  ```powershell
27
- npx --yes nccgs@2.0.0-rc.3 install --project "D:\path\to\UnityProject" --dry-run
28
- npx --yes nccgs@2.0.0-rc.3 install --project "D:\path\to\UnityProject"
29
- npx --yes nccgs@2.0.0-rc.3 doctor --project "D:\path\to\UnityProject"
31
+ $NccgsArchive = "D:\path\to\nccgs-2.1.0.tgz"
32
+ npx --yes --package "$NccgsArchive" nccgs install --project "D:\path\to\UnityProject" --dry-run
33
+ npx --yes --package "$NccgsArchive" nccgs install --project "D:\path\to\UnityProject"
34
+ npx --yes --package "$NccgsArchive" nccgs doctor --project "D:\path\to\UnityProject"
30
35
  ```
31
36
 
32
37
  New installations select standalone execution and the claude-standalone model
@@ -41,9 +46,9 @@ open task records and evidence. Stop active NCCGS sessions before applying an
41
46
  update. Do not update a frozen evaluation in place.
42
47
 
43
48
  ```powershell
44
- npx --yes nccgs@2.0.0-rc.3 update --project "D:\path\to\ProjectCopy" --dry-run
45
- npx --yes nccgs@2.0.0-rc.3 update --project "D:\path\to\ProjectCopy"
46
- npx --yes nccgs@2.0.0-rc.3 doctor --project "D:\path\to\ProjectCopy"
49
+ npx --yes --package "$NccgsArchive" nccgs update --project "D:\path\to\ProjectCopy" --dry-run
50
+ npx --yes --package "$NccgsArchive" nccgs update --project "D:\path\to\ProjectCopy"
51
+ npx --yes --package "$NccgsArchive" nccgs doctor --project "D:\path\to\ProjectCopy"
47
52
  ```
48
53
 
49
54
  Inspect the dry-run changes before the second command. Ordinary updates preserve
@@ -57,17 +62,21 @@ reviewed migration workflow; do not use `--force` just to make doctor green. Kee
57
62
  the project's canonical requirements and applicable gates. Reopen Claude Code
58
63
  after changing hooks, settings or managed agents.
59
64
 
60
- If update reports that NCCGS is not installed, use the exact RC `install` command
65
+ If update reports that NCCGS is not installed, use the exact local-archive `install` command
61
66
  above after checking the target. Some legacy CLI messages mention `@latest`;
62
- that selects the stable channel and does not select this RC.
67
+ that selects the published stable channel, not this unpublished local archive.
63
68
 
64
69
  ## Optional execution-policy migration
65
70
 
71
+ For removal instead of migration, use [uninstall and recovery](docs/UNINSTALL.md).
72
+ The 2.1.0 CLI can remove an existing 2.0.0 installation directly. Removing or
73
+ reinstalling never resets prior task, review, acceptance or budget obligations.
74
+
66
75
  After installing/updating, migrate only when the owner intends to adopt standalone.
67
76
  Review any active task's pinned obligations before changing policy.
68
77
 
69
78
  ```powershell
70
- npx --yes nccgs@2.0.0-rc.3 migrate-execution --project "D:\path\to\ProjectCopy" --to standalone --model-profile claude-standalone --dry-run
79
+ npx --yes --package "$NccgsArchive" nccgs migrate-execution --project "D:\path\to\ProjectCopy" --to standalone --model-profile claude-standalone --dry-run
71
80
  ```
72
81
 
73
82
  Inspect the result, then repeat without `--dry-run` to apply. Omit
@@ -81,21 +90,21 @@ The command archives configuration under `.nccgs/backups/execution/<ID>`. To
81
90
  preview restoration of that execution migration:
82
91
 
83
92
  ```powershell
84
- npx --yes nccgs@2.0.0-rc.3 migrate-execution --project "D:\path\to\ProjectCopy" --rollback "MIGRATION_UUID" --dry-run
93
+ npx --yes --package "$NccgsArchive" nccgs migrate-execution --project "D:\path\to\ProjectCopy" --rollback "MIGRATION_UUID" --dry-run
85
94
  ```
86
95
 
87
96
  Use the actual printed UUID; remove `--dry-run` only after reviewing the preview.
88
97
  Rollback refuses changed current configuration or altered backup hashes and
89
98
  requires a compatible framework version. It restores execution configuration,
90
99
  **not a complete package downgrade**. A full recovery uses the complete project
91
- backup. Do not install 1.3.0 over an RC project and assume task-schema downgrade
100
+ backup. Do not install 1.3.0 over a 2.0 project and assume task-schema downgrade
92
101
  is safe. Caught migration failures restore captured configuration; an OS kill is
93
102
  not an atomic transaction and may require manual recovery.
94
103
 
95
104
  ## Start and review work
96
105
 
97
106
  ```powershell
98
- npx --yes nccgs@2.0.0-rc.3 run --project "D:\path\to\UnityProject"
107
+ npx --yes --package "$NccgsArchive" nccgs run --project "D:\path\to\UnityProject"
99
108
  ```
100
109
 
101
110
  Use `/status` in Claude Code to inspect obligations. Use `/migrate-project` when
@@ -105,5 +114,5 @@ game quality, completion of a task or human acceptance.
105
114
 
106
115
  Existing projects that intentionally use Astra/Fable keep their configured chain.
107
116
  See [compatibility gates](.claude/nccgs/protocols/task-gates.md). Historical 1.4/1.5
108
- guides describe their original versions; this document governs the current RC's
117
+ guides describe their original versions; this document governs the current 2.1.0 package's
109
118
  installation commands and release status.
package/VERSION CHANGED
@@ -1 +1 @@
1
- 2.0.0-rc.3
1
+ 2.1.0
@@ -11,8 +11,9 @@ distinct decision surface, failure mode, artifact, or verification lens.
11
11
  1. **Kernel** — constitution, authority, project policy, ownership, state, closure.
12
12
  2. **Router** — domain/risk classification, model profile, context packet, execution
13
13
  graph and write ownership.
14
- 3. **Studio roles** — twelve active core agents, with 35 optional roles in a 47-agent
15
- library. Activation choices survive updates; customized files are preserved.
14
+ 3. **Studio roles** — a focused active set plus optional specialists. Counts, model
15
+ routes and native turn ceilings come from the [generated routing reference](../.claude/nccgs/routing.generated.md).
16
+ Activation choices survive updates; customized files are preserved.
16
17
  4. **Workflow modules** — 36 composable skills with eight user-facing entrypoints.
17
18
  5. **Unity operations** — unmodified official Unity Skills and Unity CLI/Pipeline.
18
19
  6. **Automation** — Node hooks for recovery, audit and safety.
@@ -20,18 +21,32 @@ distinct decision surface, failure mode, artifact, or verification lens.
20
21
 
21
22
  ## Bounded orchestration
22
23
 
23
- The primary Claude Code session is the sole Claude subagent orchestrator. Under the
24
- default astra-claude profile, Astra owns planning/documents outside that session;
25
- Claude executes within Astra's plan. It constructs an implementation DAG,
24
+ The primary Claude Code session is the sole Claude subagent orchestrator. New
25
+ installations use standalone execution: Claude Code owns intake, planning,
26
+ documents, dispatch and reporting. It constructs an implementation DAG,
26
27
  selects the smallest complete role set, passes a context packet, assigns one writer
27
28
  per path, and merges handoffs. Studio agents do not recursively delegate.
28
29
 
29
30
  This preserves domain decomposition while preventing context-amplifying chains such
30
- as director → lead → engine lead → specialist. Read-only agents may run concurrently;
31
- overlapping writes are serialized.
31
+ as director → lead → engine lead → specialist. The 2.0.0 operating protocol launches
32
+ one foreground Agent call at a time and waits for its final result. The configured
33
+ worker ceiling is not a promise of parallel dispatch. Review/analysis reserves a
34
+ stable snapshot and cannot overlap source writers in the same project.
35
+
36
+ Execution obligations are selected before models. Missing execution.json means
37
+ compatibility; existing Astra/Fable/Product Owner gates survive updates. Explicit
38
+ execution migration and model-profile selection are separate operations.
32
39
 
33
40
  ## Context architecture
34
41
 
42
+ Large standalone implementation tasks can use a pinned [slice plan](TASK-SLICING.md)
43
+ within the same task. Exact file ownership, original criterion IDs and dependency
44
+ dispatches bound each assignment. One final integration receives the full contract;
45
+ intermediate handoffs cannot satisfy implementation or acceptance. Independent
46
+ review excludes every implementation contributor in the task subtree. Plans and
47
+ revisions retain attempts and reserve capacity inside existing ancestor limits;
48
+ they create no child task, review round or session budget.
49
+
35
50
  The feature contract stores approved scope. The context packet stores the current
36
51
  working-set map: source anchors and revisions, decision summaries, ownership,
37
52
  dependencies, verification, and reasons for any full-source read. Agents receive the
@@ -45,9 +60,11 @@ require reconstructing truth from chat history.
45
60
  Each catalog role has a capability class: lightweight, standard, deep, leadership,
46
61
  or review. `pipeline.json` is the routing source; the compiler generates catalog
47
62
  routes and agent frontmatter, and validation rejects drift. The default
48
- astra-claude profile uses Sonnet/medium for lightweight work, Opus 5.5/medium for standard work, Opus 5.5/high for deep/leadership work, and Fable/high for
49
- independent review. It also configures the main project session. Legacy quality,
50
- balanced, and inherit profiles remain available without duplicating agent prompts.
63
+ claude-standalone profile requests Sonnet/medium for FAST, Opus/medium for STANDARD,
64
+ Opus/high for CONTROLLED and Opus/high for independent review. Requested routes
65
+ do not establish actual provider execution. The generated reference includes
66
+ compatibility routes; quality, balanced and inherit profiles remain available
67
+ without duplicating agent prompts.
51
68
 
52
69
  Legacy profiles support policy-directed fallback. The astra-claude profile instead
53
70
  blocks a required stage when its model/effort cannot be confirmed; it never labels
@@ -61,10 +78,12 @@ SHA-256 manifest makes upstream modifications visible.
61
78
 
62
79
  ## Evidence and closure
63
80
 
64
- For astra-claude, every code change follows risk-selected implementation -> Fable review ->
65
- report to Astra -> Astra check -> explicit Product Owner acceptance. The accountable implementer fixes
66
- findings and Fable re-reviews each changed snapshot. These gates apply to FAST and
67
- lean work as well. `task.mjs` enforces this sequence using snapshot hashes, immutable
81
+ Standalone work follows scoped intake and reviewed design where required ->
82
+ risk-selected implementation -> measured verification -> independent review ->
83
+ report -> configured external/manual/acceptance gates. The accountable implementer
84
+ fixes findings and an independent reviewer re-reviews changed work. Compatibility
85
+ with astra-claude retains Fable review, Astra checking and explicit Product Owner
86
+ acceptance. `task.mjs` enforces the selected sequence using snapshot hashes, immutable
68
87
  artifact references, runtime observations and explicit external decisions. A changed
69
88
  snapshot invalidates previous review/acceptance. Re-recording an earlier stage clears
70
89
  downstream stages while retaining history. Hooks supplement the task gate; they are
@@ -75,15 +94,23 @@ Task risk selects a frozen implementation route and a review budget from
75
94
  CONTROLLED/deep/3. Valid review records consume rounds even for negative verdicts.
76
95
  Re-recording implementation preserves the counter. A PASS at the limit can proceed;
77
96
  otherwise exhaustion stops the task until an explicit external, reasoned extension.
78
- Context and elapsed-time budgets are advisory rather than executable runtime caps.
97
+ Planning estimates are advisory. Standalone dispatch and configured worker
98
+ time/cost limits govern admission using observed telemetry; they do not measure
99
+ account-wide usage or interrupt a provider request already running.
79
100
 
80
101
  Requested model settings and observed runtime values are separate fields. Native
81
102
  events can report the resolved model and fallback history; absent observed effort
82
103
  stays unknown until supporting runtime evidence is imported.
83
104
 
84
- Every workflow dispatcher loads exactly one `references/astra.md` or
85
- `references/legacy.md`. Risk affects the extent of verification, never the mandatory
86
- Fable gate in the Astra profile. Legacy profiles retain their risk-based review.
105
+ Every workflow dispatcher selects execution policy first. Standalone loads the
106
+ shared standalone protocol; design entrypoints also load the design lifecycle.
107
+ Compatibility loads exactly one Astra or legacy reference. Risk selects scope and
108
+ model routing; all standalone tiers retain independent review.
109
+
110
+ Handoff helpers generate bounded prompts and PARTIAL drafts, validate structure
111
+ before completion, and import a completed reviewer's pinned result through the
112
+ existing record gate. They never supply provider evidence, change a verdict,
113
+ close the task, or reset budgets. See [handoff operations](HANDOFF-AUTOMATION.md).
87
114
 
88
115
  One implementer remains accountable for the task. The scout closes a named factual
89
116
  gap; specialist reviewers add distinct risk coverage. Neither is a compulsory
@@ -1,11 +1,80 @@
1
- # Bounded source repair — 2.0 RC
1
+ # Bounded repair — NCCGS 2.0.0
2
2
 
3
3
  Read the [complete bounded repair protocol](../.claude/nccgs/protocols/bounded-repair.md).
4
4
  It is installed in every project at `.claude/nccgs/protocols/bounded-repair.md`,
5
- alongside the guards that enforce it. The packet template is installed at
6
- `.nccgs/templates/repair-packet.json`.
5
+ alongside the guards that enforce it. The stable package is prepared but unpublished; existing
6
+ reservations keep their pinned policy. New Editor steps use a single `eval` body
7
+ with fully qualified C# types. The runner checks all loaded scenes immediately
8
+ before the body in the same Editor call. Dirty named, additive or untitled scenes
9
+ block execution without saving/discarding user work. The failed attempt remains
10
+ recorded; resolving the scene does not replay or refund it. The owner resolves
11
+ unsaved work before a new authorized repair packet.
7
12
 
8
- The repair worker receives an already-chosen correction for 1–4 exact source files,
9
- with durable work/read limits and a separate handoff allowance. The coordinator
10
- owns verification after return. Local fixtures establish framework behavior;
11
- fresh real Claude Code/Unity acceptance is still required.
13
+ Choose one template after diagnosing the recorded failure:
14
+
15
+ | Template under `.nccgs/templates/` | Use |
16
+ |---|---|
17
+ | `repair-packet.json` | Unchanged small source edit: 1–4 existing files, 12 work calls. |
18
+ | `repair-unity-code.json` | 1–8 exact code files including new regression tests; 24 work calls. Import new metadata through a pinned Editor step before returning. |
19
+ | `repair-unity-editor.json` | 1–8 exact scenes/prefabs/assets through pinned Editor commands; 20 work calls. No raw serialized-file or metadata edits. |
20
+
21
+ Each profile has a separate handoff allowance. Unity packets bind file operations,
22
+ Editor commands, timeouts and original GUIDs; they detect changes outside scope.
23
+ An uncertain Editor call retains exclusive ownership until external reconciliation.
24
+ Attempts and original receipts remain in history; no automatic retry or refund.
25
+
26
+ Flow: recorded failure → chosen packet → reserve/dispatch-prompt → bounded edits
27
+ and import/save → native completion → coordinator checks → independent re-review
28
+ → existing acceptance gates. An Editor receipt never substitutes for compile,
29
+ EditMode, PlayMode, runtime, build or manual checks required by the contract.
30
+
31
+ Local fixtures establish framework behavior only. On 2026-10-27, an actual
32
+ Claude Code/Unity regression case exercised a schema-2 `unity-code` repair of one
33
+ existing file after a disclosed post-review fault caused a real PlayMode failure.
34
+ Fresh checks and a second independent unconditional PASS allowed normal closure,
35
+ with the original criteria, history, GUID and total budgets retained. See
36
+ [qualification scope](RELEASE-STATUS.md). This known-component case does not qualify
37
+ new-file imports, `unity-editor` operations or scene/prefab repair; those still
38
+ need fresh native qualification against the installed Unity CLI command catalog.
39
+
40
+ A subsequent new-script/scene/prefab attempt on 2026-10-27 stopped before independent
41
+ design review: the native coordinator pinned a per-worker `maxCostUsd` ceiling,
42
+ but the completed designer's cost was unknown. The reservation guard correctly
43
+ refused the reviewer. The attempt spent USD 2.3247276 of its shared USD 12 envelope;
44
+ no native repair or Unity acceptance was performed. Its original cap, partial
45
+ report and history remain intact. Session cost cannot replace missing worker cost
46
+ telemetry. The subsequent source fix admits a separately recorded, exclusive
47
+ supervised-session ceiling only when prior native costs plus its allowance fit
48
+ the unchanged cap and cover all started worker sessions;
49
+ see [telemetry and pinned limits](../.claude/nccgs/protocols/standalone-gates.md).
50
+ The preserved attempt was then continued under that unchanged aggregate cap. Actual
51
+ Claude workers created the script, imported Unity-generated metadata, and repaired
52
+ the existing prefab and connected scene through three pinned Editor operations.
53
+ The initial 16 PASS/3 FAIL and intermediate 17 PASS/2 FAIL EditMode runs remain;
54
+ the intermediate run proves the script worked before asset repair. All five final
55
+ checks passed: 19/19 EditMode, 8/8 PlayMode, and 28 criteria/385 measured assertions.
56
+ The final delivery review did not run: aggregate native list-cost reached
57
+ USD 11.589259/12 and the coordinator stopped with insufficient review allowance.
58
+ The task remains PARTIAL and unclosed, with no recorded implementation approval
59
+ or invented reviewer verdict. This establishes observed repair/test execution,
60
+ not full qualification of the new-script/scene/prefab delivery lifecycle.
61
+
62
+ A separately authorized case on 2026-10-28 pinned a USD4/15-minute final-review
63
+ reserve inside a new USD12/75-minute total before any native work. The same
64
+ new-script/import and prefab/scene repair path then reached a fresh independent
65
+ unconditional PASS and normal closure: all five final checks, 19/19 EditMode,
66
+ 8/8 PlayMode and the unchanged 28 criteria/385 assertions passed. It spent
67
+ USD9.816888 in 22 min 35 s, with 5 dispatches and 2 independent reviewers. The
68
+ single allowed automatic continuation and its work-phase handoff stop remain
69
+ recorded; no failed attempt or consumed allowance was erased. The old PARTIAL
70
+ case remains unchanged; combined old/new cost is USD21.406147. This is scoped
71
+ qualification of the disclosed warmed fixture and exact pinned operations,
72
+ not arbitrary scene editing or cold-start behavior. See the findings and limits
73
+ in [release status](RELEASE-STATUS.md) and the
74
+ [protected allocation procedure](PHASE-1-OPERATIONS.md#protect-the-final-independent-review-before-starting-work).
75
+
76
+ ## External Editor stop handoff
77
+
78
+ Publish the original operator start/shutdown/stop receipts into reviewer-readable
79
+ project evidence before handing off. Preserve sealed cases through a separate
80
+ addendum; never recreate or overwrite historical process facts. See [Editor lifecycle evidence](EDITOR-SESSION-EVIDENCE.md).
@@ -0,0 +1,52 @@
1
+ # Editor lifecycle evidence visible to the reviewer
2
+
3
+ An external operator may own a Unity Editor while native workers run bounded
4
+ operations. Keep ownership with that operator. Before handing the task to review,
5
+ publish the operator's existing start, graceful shutdown command and settled stop
6
+ receipts under the project's `.nccgs/evidence/editor-control/` directory.
7
+ An external artifact directory alone is insufficient when the reviewer can only
8
+ read the project tree.
9
+
10
+ Use the installed helper from the external operator's existing harness:
11
+
12
+ ```js
13
+ import { publishEditorSessionEvidence } from './.claude/nccgs/tools/editor-session-evidence.mjs';
14
+ const reference = publishEditorSessionEvidence(project, {
15
+ sourceProject: project,
16
+ startFile: absoluteStartReceipt,
17
+ stopFile: absoluteStopReceipt,
18
+ shutdownFile: absoluteShutdownCommandReceipt
19
+ });
20
+ ```
21
+
22
+ The supported receipt format is the Windows owned-Editor harness format: start
23
+ has `at`, `project`, and `identity` (`pid`, `windowsJob`, `groupName`); stop has the
24
+ same identity, `state: "dead"`, `forced: false`, and `result: {code: 0, signal: null}`.
25
+ The shutdown command receipt has `at`, fixed Unity `args` with the exact
26
+ `--project-path` and `UnityEditor.EditorApplication.Exit(0)`, its own owned CLI
27
+ identity, `treeState: "dead"`, `code: 0`, and `signal: null`.
28
+
29
+ The helper checks ownership/project consistency, event order and reported normal
30
+ settlement. It copies the three original files byte for byte, adds SHA-256
31
+ references, and returns the reference to an immutable receipt bundle. Existing
32
+ bundle IDs cannot be overwritten. Include that reference in the coordinator's
33
+ review handoff alongside the ordinary managed-check receipts.
34
+
35
+ This publisher performs no process operation or live process probe. The operator
36
+ must still verify its owned group is dead using the existing process manager.
37
+ Forced, failed, live or uncertain stops retain their original evidence and cannot
38
+ be published as a normal stop by this helper. A copied receipt is not a new stop,
39
+ native worker execution, a reviewer verdict, or acceptance evidence for gameplay.
40
+ Untrusted receipt contents never authorize commands. Other producer formats need
41
+ an explicit adapter and qualification; do not invent observations to fit this one.
42
+
43
+ When the original case is already sealed, publish to a separate addendum project
44
+ and pass the original absolute `sourceProject`. The bundle marks itself as a
45
+ historical import. Keep the original task, findings, costs and hashes untouched;
46
+ a fresh independent reviewer assesses the addendum without rewriting the old
47
+ verdict. Do not restart the Editor merely to manufacture a replacement receipt.
48
+
49
+ For future runs, publish after every externally controlled normal stop, including
50
+ the stop after resolving an unsaved-scene refusal, before the next native handoff.
51
+ This evidence step does not grant save/discard authority, expand worker scope,
52
+ waive any check, or enlarge the original total budget.