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.
- package/.claude/nccgs/MEMORY.md +7 -2
- package/.claude/nccgs/VERSION +1 -1
- package/.claude/nccgs/packages/ponytail/README.md +2 -2
- package/.claude/nccgs/protocols/agent-contract.md +15 -2
- package/.claude/nccgs/protocols/bounded-repair.md +135 -7
- package/.claude/nccgs/protocols/editor-session-evidence.md +52 -0
- package/.claude/nccgs/protocols/orchestration.md +7 -5
- package/.claude/nccgs/protocols/review-handoff.md +17 -1
- package/.claude/nccgs/protocols/standalone-gates.md +64 -8
- package/.claude/nccgs/protocols/standalone.md +33 -13
- package/.claude/nccgs/protocols/task-gates.md +13 -1
- package/.claude/nccgs/protocols/task-slices.md +106 -0
- package/.claude/nccgs/routing.generated.md +20 -0
- package/.claude/nccgs/tools/command-process.mjs +10 -4
- package/.claude/nccgs/tools/compile-policy.mjs +8 -0
- package/.claude/nccgs/tools/configure-models.mjs +4 -0
- package/.claude/nccgs/tools/editor-session-evidence.mjs +66 -0
- package/.claude/nccgs/tools/gates.mjs +7 -4
- package/.claude/nccgs/tools/handoff.mjs +51 -0
- package/.claude/nccgs/tools/inputs.mjs +36 -1
- package/.claude/nccgs/tools/installation-guard.mjs +55 -0
- package/.claude/nccgs/tools/lifecycle.mjs +21 -0
- package/.claude/nccgs/tools/orchestration.mjs +264 -14
- package/.claude/nccgs/tools/repair-packet.mjs +29 -10
- package/.claude/nccgs/tools/returned-handoff.mjs +38 -0
- package/.claude/nccgs/tools/review-budget.mjs +171 -0
- package/.claude/nccgs/tools/review-handoff.mjs +42 -8
- package/.claude/nccgs/tools/runtime.mjs +7 -2
- package/.claude/nccgs/tools/session-budget.mjs +67 -0
- package/.claude/nccgs/tools/task-slices.mjs +147 -0
- package/.claude/nccgs/tools/task.mjs +39 -2
- package/.claude/nccgs/tools/tool-guard.mjs +19 -5
- package/.claude/nccgs/tools/unity-repair.mjs +128 -0
- package/.claude/nccgs/tools/verification-jobs.mjs +13 -3
- package/.claude/nccgs/tools/windows-compiler-server.cs +163 -0
- package/.claude/nccgs/tools/windows-job.cs +8 -1
- package/CHANGELOG.md +142 -0
- package/MEMORY.md +7 -2
- package/README.md +57 -27
- package/UPGRADING.md +27 -18
- package/VERSION +1 -1
- package/docs/ARCHITECTURE.md +45 -18
- package/docs/BOUNDED-REPAIR.md +76 -7
- package/docs/EDITOR-SESSION-EVIDENCE.md +52 -0
- package/docs/HANDOFF-AUTOMATION.md +144 -0
- package/docs/HUONG-DAN-MIGRATE-VA-SU-DUNG.md +68 -11
- package/docs/PHASE-1-OPERATIONS.md +142 -1
- package/docs/PHASE-2-OPERATIONS.md +1 -1
- package/docs/RELEASE-STATUS.md +102 -4
- package/docs/TASK-SLICING.md +57 -0
- package/docs/UNINSTALL.md +134 -0
- package/docs/UPGRADE-QUALIFICATION.md +1 -1
- package/docs/WORKFLOWS.md +1 -1
- package/package.json +2 -2
- package/scaffold/.nccgs/templates/repair-unity-code.json +18 -0
- package/scaffold/.nccgs/templates/repair-unity-editor.json +21 -0
- package/scaffold/.nccgs/templates/task-slices.json +28 -0
- package/scripts/cli.mjs +15 -2
- package/scripts/install.mjs +14 -0
- package/scripts/recover-session.mjs +89 -0
- package/scripts/run.mjs +21 -8
- package/scripts/supervise.mjs +30 -6
- package/scripts/uninstall.mjs +292 -0
- package/scripts/validate.mjs +6 -0
- package/scripts/work-handoff.mjs +38 -0
- package/tests/editor-session-evidence.test.mjs +45 -0
- package/tests/fixtures/compiler-shutdown.cs +64 -0
- package/tests/orchestration-v15.test.mjs +52 -1
- package/tests/phase1.test.mjs +92 -0
- package/tests/policy-v15.test.mjs +14 -0
- package/tests/review-budget.test.mjs +177 -0
- package/tests/runtime-v15.test.mjs +572 -4
- package/tests/session-budget.test.mjs +34 -0
- package/tests/task-slices.test.mjs +285 -0
- package/tests/uninstall.test.mjs +477 -0
- 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.
|
|
4
|
-
in **Claude Code
|
|
5
|
-
|
|
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
|
-
|
|
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
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
and
|
|
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
|
|
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
|
-
|
|
74
|
-
npx --yes nccgs
|
|
75
|
-
npx --yes nccgs
|
|
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
|
-
|
|
79
|
-
|
|
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
|
|
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
|
|
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
|
|
1
|
+
# Upgrading NCCGS 2.1.0
|
|
2
2
|
|
|
3
|
-
Current
|
|
4
|
-
|
|
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
|
-
**
|
|
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.
|
|
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
|
-
|
|
28
|
-
npx --yes nccgs
|
|
29
|
-
npx --yes nccgs
|
|
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
|
|
45
|
-
npx --yes nccgs
|
|
46
|
-
npx --yes nccgs
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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.
|
|
1
|
+
2.1.0
|
package/docs/ARCHITECTURE.md
CHANGED
|
@@ -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** —
|
|
15
|
-
|
|
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.
|
|
24
|
-
|
|
25
|
-
|
|
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.
|
|
31
|
-
|
|
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
|
-
|
|
49
|
-
|
|
50
|
-
|
|
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
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
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
|
-
|
|
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
|
|
85
|
-
|
|
86
|
-
|
|
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
|
package/docs/BOUNDED-REPAIR.md
CHANGED
|
@@ -1,11 +1,80 @@
|
|
|
1
|
-
# Bounded
|
|
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
|
|
6
|
-
|
|
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
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
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.
|