nccgs 2.0.0 → 2.1.1
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/agents/nccgs-adversarial-reviewer.md +1 -1
- package/.claude/agents/nccgs-engine-programmer.md +1 -1
- package/.claude/agents/nccgs-fast-implementer.md +1 -1
- package/.claude/agents/nccgs-game-designer.md +1 -1
- package/.claude/agents/nccgs-gameplay-programmer.md +1 -1
- package/.claude/agents/nccgs-qa-engineer.md +1 -1
- package/.claude/agents/nccgs-task-scout.md +1 -1
- package/.claude/agents/nccgs-ui-programmer.md +1 -1
- package/.claude/agents/nccgs-unity-build-specialist.md +1 -1
- package/.claude/agents/nccgs-unity-implementer.md +1 -1
- package/.claude/agents/nccgs-unity-systems-specialist.md +1 -1
- package/.claude/agents/nccgs-unity-ui-specialist.md +1 -1
- package/.claude/agents/nccgs-verification-engineer.md +1 -1
- package/.claude/nccgs/MEMORY.md +9 -3
- package/.claude/nccgs/VERSION +1 -1
- package/.claude/nccgs/constitution.md +187 -176
- package/.claude/nccgs/hooks/closure-guard.mjs +2 -0
- package/.claude/nccgs/hooks/unity-transport-guard.mjs +11 -0
- package/.claude/nccgs/pipeline.json +260 -260
- package/.claude/nccgs/protocols/context-packets.md +5 -0
- package/.claude/nccgs/protocols/model-routing.md +46 -46
- package/.claude/nccgs/protocols/review-handoff.md +21 -1
- package/.claude/nccgs/protocols/shared-workflow-context.md +33 -0
- package/.claude/nccgs/protocols/unity-boundary.md +20 -0
- package/.claude/nccgs/routing.generated.md +4 -4
- package/.claude/nccgs/settings.fragment.json +84 -24
- package/.claude/nccgs/studio.json +53 -53
- package/.claude/nccgs/tools/autonomy.mjs +13 -0
- package/.claude/nccgs/tools/command-tokens.mjs +22 -0
- package/.claude/nccgs/tools/compile-policy.mjs +4 -0
- package/.claude/nccgs/tools/configure-models.mjs +4 -0
- package/.claude/nccgs/tools/hook-transport.mjs +34 -0
- package/.claude/nccgs/tools/installation-guard.mjs +55 -0
- package/.claude/nccgs/tools/native-completion.mjs +10 -1
- package/.claude/nccgs/tools/returned-handoff.mjs +11 -2
- package/.claude/nccgs/tools/shared-context-guard.mjs +60 -0
- package/.claude/nccgs/tools/shared-context.mjs +25 -0
- package/.claude/nccgs/tools/tool-guard.mjs +120 -131
- package/.claude/nccgs/tools/unity-transport.mjs +170 -0
- package/.claude/nccgs/workflow-catalog.json +4 -4
- package/CHANGELOG.md +235 -165
- package/CLAUDE.md +10 -8
- package/MEMORY.md +109 -56
- package/README.md +206 -168
- package/UPGRADING.md +130 -112
- package/VERSION +1 -1
- package/docs/ARCHITECTURE.md +131 -131
- package/docs/ASSET-PRODUCTION-GRAPHIFY-PLAN.md +230 -0
- package/docs/HUONG-DAN-MIGRATE-VA-SU-DUNG.md +117 -87
- package/docs/NCCGS-1.5.md +237 -237
- package/docs/PROJECT-POLICY.md +94 -94
- package/docs/RELEASE-STATUS.md +32 -7
- package/docs/UNINSTALL.md +134 -0
- package/docs/WFK17-HOOK-REPAIR.md +71 -0
- package/docs/WORKFLOWS.md +85 -85
- package/package.json +1 -1
- package/scaffold/.nccgs/project.yaml +109 -108
- package/scripts/benchmark-v15.mjs +173 -173
- package/scripts/cli.mjs +11 -2
- package/scripts/doctor.mjs +261 -261
- package/scripts/install.mjs +530 -515
- package/scripts/recover-session.mjs +89 -0
- package/scripts/run.mjs +22 -9
- package/scripts/supervise.mjs +4 -0
- package/scripts/uninstall.mjs +292 -0
- package/scripts/validate.mjs +285 -278
- package/tests/autonomy.test.mjs +126 -113
- package/tests/design-readiness.test.mjs +199 -199
- package/tests/fixtures/compiler-shutdown.cs +67 -64
- package/tests/fixtures/native-provider.mjs +61 -0
- package/tests/framework.test.mjs +740 -740
- package/tests/hook-repair.test.mjs +106 -0
- package/tests/lifecycle-v15.test.mjs +346 -300
- package/tests/native-completion-notices.test.mjs +181 -0
- package/tests/phase1.test.mjs +427 -416
- package/tests/phase2.test.mjs +250 -250
- package/tests/policy-v15.test.mjs +234 -234
- package/tests/returned-handoff-notices.test.mjs +170 -0
- package/tests/runtime-v15.test.mjs +1197 -1191
- package/tests/task-slices.test.mjs +285 -285
- package/tests/uninstall.test.mjs +477 -0
- package/tests/unity-transport.test.mjs +348 -0
package/docs/PROJECT-POLICY.md
CHANGED
|
@@ -1,94 +1,94 @@
|
|
|
1
|
-
# Project policy
|
|
2
|
-
|
|
3
|
-
`.nccgs/project.yaml` adapts NCCGS to one project. Keep generic framework behavior out
|
|
4
|
-
of this file; record only choices that change routing, authority, ownership, context,
|
|
5
|
-
verification, closure, or Unity execution for the project.
|
|
6
|
-
|
|
7
|
-
## Required decisions
|
|
8
|
-
|
|
9
|
-
- project stage and platforms;
|
|
10
|
-
- enabled departments and bounded orchestration;
|
|
11
|
-
- execution policy and external/manual acceptance obligations;
|
|
12
|
-
- `claude-standalone`, `astra-claude`, `quality`, `balanced`, or `inherit` model profile and fallback policy;
|
|
13
|
-
- canonical sources for product, design, architecture, planning, art, narrative,
|
|
14
|
-
audio, and release;
|
|
15
|
-
- protected/user-owned/generated paths and hand-tuned settings;
|
|
16
|
-
- architecture constraints, packages and services;
|
|
17
|
-
- Unity version, render/UI/input systems and CLI/Pipeline preference;
|
|
18
|
-
- test/build/runtime baselines and recurring Product Owner gates;
|
|
19
|
-
- closure mode, linked artifacts, completion rules and waiver policy.
|
|
20
|
-
|
|
21
|
-
## Model policy
|
|
22
|
-
|
|
23
|
-
New installations use standalone execution with `claude-standalone`: Sonnet/
|
|
24
|
-
for FAST, Opus/
|
|
25
|
-
independent review. These are requested aliases and effort, not runtime observations.
|
|
26
|
-
Execution policy lives separately in `.nccgs/execution.json`; changing a model
|
|
27
|
-
profile does not remove task gates or migrate compatibility execution.
|
|
28
|
-
|
|
29
|
-
Existing compatibility projects selecting `astra-claude` retain Astra planning,
|
|
30
|
-
Fable review and their configured approval chain. See the
|
|
31
|
-
[compatibility protocol](../.claude/nccgs/protocols/astra-claude.md). Ordinary
|
|
32
|
-
updates preserve existing selections and obligations.
|
|
33
|
-
|
|
34
|
-
Use `quality` when result quality is primary and all model tiers are available. Use
|
|
35
|
-
`balanced` when leadership coordination does not need Opus by default. Use `inherit`
|
|
36
|
-
when subscription/context compatibility or explicit user control is more important
|
|
37
|
-
than automatic routing.
|
|
38
|
-
|
|
39
|
-
The `models.overrides` field is reserved; the configurator does not apply it. Routing
|
|
40
|
-
is compiled from `.claude/nccgs/pipeline.json`. The astra-claude profile intentionally
|
|
41
|
-
pins task routes through `contract.taskTiers`; changing required stage models or risk policy is a Product Owner decision.
|
|
42
|
-
|
|
43
|
-
For the Astra profile, map the checks, artifacts and manual gates below into
|
|
44
|
-
`.nccgs/gates.json` and pin its `policySha256` to this project policy. Task-specific
|
|
45
|
-
requirements may add obligations. The executable manifest does not automatically
|
|
46
|
-
translate YAML conditions: Astra must preserve and map all existing safeguards.
|
|
47
|
-
See [task gates](../.claude/nccgs/protocols/task-gates.md) for evidence formats.
|
|
48
|
-
|
|
49
|
-
`contract.taskTiers` selects each task's implementation class and review limit.
|
|
50
|
-
Compatibility `task init --risk` defaults to STANDARD; standalone intake uses its
|
|
51
|
-
classifier and explicit risk evidence. FAST allows two recorded reviews and
|
|
52
|
-
STANDARD/CONTROLLED allow three. Re-recording implementation does not reset the
|
|
53
|
-
counter. Only an explicit external `task extend-review` decision adds rounds.
|
|
54
|
-
An exhausted budget is not acceptance. Planning estimates do not extend configured
|
|
55
|
-
dispatch/session/check limits. Read the active execution policy and actual ledger.
|
|
56
|
-
|
|
57
|
-
## Canonical sources and context
|
|
58
|
-
|
|
59
|
-
Map existing documents where they live. Workflows address semantic roles, not fixed
|
|
60
|
-
folder names. Context packets refer to exact sections and source revisions; they do
|
|
61
|
-
not replace canonical documents.
|
|
62
|
-
|
|
63
|
-
## Closure example
|
|
64
|
-
|
|
65
|
-
```yaml
|
|
66
|
-
closure:
|
|
67
|
-
mode: strict
|
|
68
|
-
canonical_record: ".nccgs/closures/{feature_id}.md"
|
|
69
|
-
required_artifacts:
|
|
70
|
-
- id: implementation-report
|
|
71
|
-
type: report
|
|
72
|
-
path_pattern: "project-docs/reports/{feature_id}*.md"
|
|
73
|
-
required: true
|
|
74
|
-
completion_rule: exists
|
|
75
|
-
- id: implementation-register
|
|
76
|
-
type: register_entry
|
|
77
|
-
path_pattern: "project-docs/implementation-register.md"
|
|
78
|
-
required: true
|
|
79
|
-
completion_rule: entry_present
|
|
80
|
-
- id: deletion-gate
|
|
81
|
-
type: checklist
|
|
82
|
-
path_pattern: "project-docs/gates/{feature_id}*.md"
|
|
83
|
-
required: true
|
|
84
|
-
completion_rule: all_conditions
|
|
85
|
-
expected_conditions: 7
|
|
86
|
-
done_requires:
|
|
87
|
-
- implementation
|
|
88
|
-
- objective_verification
|
|
89
|
-
- required_artifacts
|
|
90
|
-
- applicable_manual_gates
|
|
91
|
-
```
|
|
92
|
-
|
|
93
|
-
Start migration with the strongest live safeguard and weaken it only through an
|
|
94
|
-
explicit Product Owner decision after the replacement has proven its purpose.
|
|
1
|
+
# Project policy
|
|
2
|
+
|
|
3
|
+
`.nccgs/project.yaml` adapts NCCGS to one project. Keep generic framework behavior out
|
|
4
|
+
of this file; record only choices that change routing, authority, ownership, context,
|
|
5
|
+
verification, closure, or Unity execution for the project.
|
|
6
|
+
|
|
7
|
+
## Required decisions
|
|
8
|
+
|
|
9
|
+
- project stage and platforms;
|
|
10
|
+
- enabled departments and bounded orchestration;
|
|
11
|
+
- execution policy and external/manual acceptance obligations;
|
|
12
|
+
- `claude-standalone`, `astra-claude`, `quality`, `balanced`, or `inherit` model profile and fallback policy;
|
|
13
|
+
- canonical sources for product, design, architecture, planning, art, narrative,
|
|
14
|
+
audio, and release;
|
|
15
|
+
- protected/user-owned/generated paths and hand-tuned settings;
|
|
16
|
+
- architecture constraints, packages and services;
|
|
17
|
+
- Unity version, render/UI/input systems and CLI/Pipeline preference;
|
|
18
|
+
- test/build/runtime baselines and recurring Product Owner gates;
|
|
19
|
+
- closure mode, linked artifacts, completion rules and waiver policy.
|
|
20
|
+
|
|
21
|
+
## Model policy
|
|
22
|
+
|
|
23
|
+
New installations use standalone execution with `claude-standalone`: Sonnet/high
|
|
24
|
+
for FAST, Opus/high for STANDARD, Opus/xhigh for CONTROLLED/leadership and Fable/high for
|
|
25
|
+
independent review. These are requested aliases and effort, not runtime observations.
|
|
26
|
+
Execution policy lives separately in `.nccgs/execution.json`; changing a model
|
|
27
|
+
profile does not remove task gates or migrate compatibility execution.
|
|
28
|
+
|
|
29
|
+
Existing compatibility projects selecting `astra-claude` retain Astra planning,
|
|
30
|
+
Fable review and their configured approval chain. See the
|
|
31
|
+
[compatibility protocol](../.claude/nccgs/protocols/astra-claude.md). Ordinary
|
|
32
|
+
updates preserve existing selections and obligations.
|
|
33
|
+
|
|
34
|
+
Use `quality` when result quality is primary and all model tiers are available. Use
|
|
35
|
+
`balanced` when leadership coordination does not need Opus by default. Use `inherit`
|
|
36
|
+
when subscription/context compatibility or explicit user control is more important
|
|
37
|
+
than automatic routing.
|
|
38
|
+
|
|
39
|
+
The `models.overrides` field is reserved; the configurator does not apply it. Routing
|
|
40
|
+
is compiled from `.claude/nccgs/pipeline.json`. The astra-claude profile intentionally
|
|
41
|
+
pins task routes through `contract.taskTiers`; changing required stage models or risk policy is a Product Owner decision.
|
|
42
|
+
|
|
43
|
+
For the Astra profile, map the checks, artifacts and manual gates below into
|
|
44
|
+
`.nccgs/gates.json` and pin its `policySha256` to this project policy. Task-specific
|
|
45
|
+
requirements may add obligations. The executable manifest does not automatically
|
|
46
|
+
translate YAML conditions: Astra must preserve and map all existing safeguards.
|
|
47
|
+
See [task gates](../.claude/nccgs/protocols/task-gates.md) for evidence formats.
|
|
48
|
+
|
|
49
|
+
`contract.taskTiers` selects each task's implementation class and review limit.
|
|
50
|
+
Compatibility `task init --risk` defaults to STANDARD; standalone intake uses its
|
|
51
|
+
classifier and explicit risk evidence. FAST allows two recorded reviews and
|
|
52
|
+
STANDARD/CONTROLLED allow three. Re-recording implementation does not reset the
|
|
53
|
+
counter. Only an explicit external `task extend-review` decision adds rounds.
|
|
54
|
+
An exhausted budget is not acceptance. Planning estimates do not extend configured
|
|
55
|
+
dispatch/session/check limits. Read the active execution policy and actual ledger.
|
|
56
|
+
|
|
57
|
+
## Canonical sources and context
|
|
58
|
+
|
|
59
|
+
Map existing documents where they live. Workflows address semantic roles, not fixed
|
|
60
|
+
folder names. Context packets refer to exact sections and source revisions; they do
|
|
61
|
+
not replace canonical documents.
|
|
62
|
+
|
|
63
|
+
## Closure example
|
|
64
|
+
|
|
65
|
+
```yaml
|
|
66
|
+
closure:
|
|
67
|
+
mode: strict
|
|
68
|
+
canonical_record: ".nccgs/closures/{feature_id}.md"
|
|
69
|
+
required_artifacts:
|
|
70
|
+
- id: implementation-report
|
|
71
|
+
type: report
|
|
72
|
+
path_pattern: "project-docs/reports/{feature_id}*.md"
|
|
73
|
+
required: true
|
|
74
|
+
completion_rule: exists
|
|
75
|
+
- id: implementation-register
|
|
76
|
+
type: register_entry
|
|
77
|
+
path_pattern: "project-docs/implementation-register.md"
|
|
78
|
+
required: true
|
|
79
|
+
completion_rule: entry_present
|
|
80
|
+
- id: deletion-gate
|
|
81
|
+
type: checklist
|
|
82
|
+
path_pattern: "project-docs/gates/{feature_id}*.md"
|
|
83
|
+
required: true
|
|
84
|
+
completion_rule: all_conditions
|
|
85
|
+
expected_conditions: 7
|
|
86
|
+
done_requires:
|
|
87
|
+
- implementation
|
|
88
|
+
- objective_verification
|
|
89
|
+
- required_artifacts
|
|
90
|
+
- applicable_manual_gates
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
Start migration with the strongest live safeguard and weaken it only through an
|
|
94
|
+
explicit Product Owner decision after the replacement has proven its purpose.
|
package/docs/RELEASE-STATUS.md
CHANGED
|
@@ -1,10 +1,35 @@
|
|
|
1
|
-
# NCCGS
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
1
|
+
# NCCGS release status
|
|
2
|
+
|
|
3
|
+
Current local source: **2.1.1**, prepared and unpublished. The registry already
|
|
4
|
+
contains a different 2.1.0 artifact; the accepted local R11 r05 source is retained
|
|
5
|
+
unchanged as the qualification baseline. This release variant changes package
|
|
6
|
+
identity and current documentation, with no runtime, policy, model-route, role,
|
|
7
|
+
gate, quota or budget changes. Exact artifact checks and the subsequent release
|
|
8
|
+
review are recorded in separate receipts. No registry publication or tag update
|
|
9
|
+
is performed by preparation.
|
|
10
|
+
|
|
11
|
+
The accepted baseline accounts for 353 passing top-level cases; one top-level
|
|
12
|
+
and 12 nested link/junction cases remain host-skipped, not PASS. Its independent
|
|
13
|
+
Fable static review returned PASS with no conditions. New version-sensitive
|
|
14
|
+
framework/policy and packaged-install checks qualify the separate patch artifact;
|
|
15
|
+
the receipts identify fresh executions versus inherited unchanged scopes.
|
|
16
|
+
Effective native effort remains UNKNOWN. The earlier guarded headless managed
|
|
17
|
+
smoke was blocked before dispatch and remains unclosed; no new Unity run is claimed.
|
|
18
|
+
Earlier negative verdicts and consumed allowances are preserved.
|
|
19
|
+
|
|
20
|
+
Version **2.0.0** was published on 2026-10-28 after exact-archive qualification.
|
|
21
|
+
The frozen publication receipt verified npm metadata and downloaded bytes,
|
|
22
|
+
fresh consumer installation and all 472 packaged files. Its archive SHA-256 is
|
|
23
|
+
`008df044b2486b273dbd0716782823b60da9750a676fa41cd4651a0e2f149cf3`.
|
|
24
|
+
Its maintenance audit and native Unity case completed with independent PASS;
|
|
25
|
+
the Unity case retained all 28 criteria/385 assertions, handoff, repair and the
|
|
26
|
+
unsaved-scene guard. Detailed private task/provider/cost receipts stay outside
|
|
27
|
+
the public package. That evidence does not transfer to this 2.1.1 artifact automatically.
|
|
28
|
+
|
|
29
|
+
## Historical 2.0.0 preparation evidence
|
|
30
|
+
|
|
31
|
+
The preparation-time notes below are retained for context. Their pending stable
|
|
32
|
+
run/publication statements were superseded by the exact 2.0.0 completion above.
|
|
8
33
|
|
|
9
34
|
- Exact RC4 archive SHA-256: a1db9783f3f4077c742cbc346d0fa935c438fdd783e13c058e13b0bd0521bbf6.
|
|
10
35
|
The 2026-10-28 native Claude Code case qualified dirty-scene refusal, subsequent
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
# Remove NCCGS from a project
|
|
2
|
+
|
|
3
|
+
`uninstall` is available in the **unpublished 2.1.1 package**. The published
|
|
4
|
+
2.0.0 CLI does not have this command. Use the local 2.1.1 archive (or its source
|
|
5
|
+
CLI) to remove an existing 2.0.0 installation; no preliminary update is needed.
|
|
6
|
+
|
|
7
|
+
Close Claude Code sessions and let managed workers/verification finish first.
|
|
8
|
+
Run from an external terminal. The command checks recorded process ownership,
|
|
9
|
+
dispatches, runs and jobs; it never kills processes, settles jobs or closes tasks.
|
|
10
|
+
Sessions launched directly with `claude`, or with older launchers, may have no
|
|
11
|
+
session record, so they must also be closed by the operator.
|
|
12
|
+
|
|
13
|
+
## Preview and remove
|
|
14
|
+
|
|
15
|
+
```powershell
|
|
16
|
+
$NccgsArchive = "D:\path\to\nccgs-2.1.1.tgz"
|
|
17
|
+
npx --yes --package "$NccgsArchive" nccgs uninstall --project "D:\path\to\UnityProject" --dry-run
|
|
18
|
+
npx --yes --package "$NccgsArchive" nccgs uninstall --project "D:\path\to\UnityProject"
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
From this source checkout, use `node scripts/cli.mjs uninstall --project DIR`
|
|
22
|
+
with the same options. Always name the intended project. The package refuses
|
|
23
|
+
to uninstall its own source directory.
|
|
24
|
+
|
|
25
|
+
The preview writes nothing and lists files to remove, shared files to edit and
|
|
26
|
+
modified/unknown inventoried files to preserve. There is no `--force` or history
|
|
27
|
+
purge option. A repeated uninstall reports `NOT_INSTALLED` after successful removal.
|
|
28
|
+
|
|
29
|
+
| Item | Result |
|
|
30
|
+
|---|---|
|
|
31
|
+
| Unchanged inventoried NCCGS/Unity skills, agents, protocols and tools | Removed after fingerprint checks |
|
|
32
|
+
| Optional generated NCCGS agents | Removed only if their recorded fingerprints still match |
|
|
33
|
+
| Customized or unknown managed files; unrelated files in `.claude` | Kept in place |
|
|
34
|
+
| Exact NCCGS hooks and canonical import in `CLAUDE.md` | Removed; unrelated hooks and owner text kept |
|
|
35
|
+
| Unchanged NCCGS bootstrap `CLAUDE.md` | Removed |
|
|
36
|
+
| Game source, scenes, prefabs, packages and project settings | Unchanged |
|
|
37
|
+
| `.nccgs` policy, task history, reviews, evidence, budgets and prior backups | Kept byte for byte |
|
|
38
|
+
| Generic Claude permission/model preferences | Kept; older installers did not track their ownership |
|
|
39
|
+
|
|
40
|
+
A retained custom NCCGS skill or agent may still be discoverable by Claude and
|
|
41
|
+
may refer to removed tools. The output identifies those files for manual review;
|
|
42
|
+
they are not silently deleted. Unknown non-inventoried owner files are never
|
|
43
|
+
claimed as NCCGS-owned. Customized compound hooks/imports must be separated by
|
|
44
|
+
the owner before removal, because automatically editing them could lose behavior.
|
|
45
|
+
|
|
46
|
+
## Backup and recovery
|
|
47
|
+
|
|
48
|
+
Removal prints an `id` and saves a manifest plus original file bytes beneath
|
|
49
|
+
`.nccgs/uninstall/<id>/`. Keep that directory if you may need recovery.
|
|
50
|
+
|
|
51
|
+
```powershell
|
|
52
|
+
npx --yes --package "$NccgsArchive" nccgs uninstall --project "D:\path\to\UnityProject" --rollback "PRINTED-UUID" --dry-run
|
|
53
|
+
npx --yes --package "$NccgsArchive" nccgs uninstall --project "D:\path\to\UnityProject" --rollback "PRINTED-UUID"
|
|
54
|
+
npx --yes --package "$NccgsArchive" nccgs doctor --project "D:\path\to\UnityProject"
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
Use the same package for recovery. All backup hashes and destination files are
|
|
58
|
+
checked before restoration; a later edit or damaged backup causes refusal. The
|
|
59
|
+
receipt and history remain after restoration. A write failure attempts automatic
|
|
60
|
+
restoration; an interrupted operation requires inspection and explicit rollback.
|
|
61
|
+
New launch/install/update operations refuse an incomplete uninstall receipt.
|
|
62
|
+
Do not delete locks or receipts merely to bypass this check.
|
|
63
|
+
|
|
64
|
+
Agent reconfiguration, execution migration and policy regeneration also participate
|
|
65
|
+
in the uninstall admission lock. New cooperating operations cannot register a
|
|
66
|
+
session while removal/rollback holds this lock. A refusal before any managed file
|
|
67
|
+
is changed leaves a `cancelled` receipt with its diagnostic and backups; it does
|
|
68
|
+
not require rollback. After changes begin, normal ownership checks still apply to
|
|
69
|
+
restoration. Unrecorded/older concurrent operations require operator inspection.
|
|
70
|
+
Failure to remove an empty directory is a warning after successful removal; the
|
|
71
|
+
result still returns the backup path and rollback ID.
|
|
72
|
+
|
|
73
|
+
Two launches/configuration commands can briefly contend for the admission lock.
|
|
74
|
+
This reports `installation admission is busy or unverified`, rather than claiming
|
|
75
|
+
an uninstall is running. Retry once the other operation finishes; the command
|
|
76
|
+
does not retry automatically or take over a live/unverified lock.
|
|
77
|
+
Empty, incomplete, unreadable or disappearing lock records also produce the
|
|
78
|
+
busy/unverified diagnostic, retaining the original cause for inspection. They
|
|
79
|
+
never authorize admission or automatic recovery. A holder that releases before
|
|
80
|
+
the error recheck still results in refusal; retry explicitly once work settles.
|
|
81
|
+
|
|
82
|
+
## Recover a crashed launcher lease
|
|
83
|
+
|
|
84
|
+
Closing a terminal forcibly or a crash can leave a `nccgs run` lease in
|
|
85
|
+
`.nccgs/sessions/<UUID>.lock`. An unmanaged child's descendants cannot be proven
|
|
86
|
+
stopped merely because its launcher and child PIDs are dead. Uninstall therefore
|
|
87
|
+
continues to refuse this unknown state automatically.
|
|
88
|
+
|
|
89
|
+
The external operator can explicitly reconcile **only that launcher lease**:
|
|
90
|
+
|
|
91
|
+
```powershell
|
|
92
|
+
npx --yes --package "$NccgsArchive" nccgs recover-session --project "D:\path\to\UnityProject" --id "SESSION-UUID" --dry-run
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
Independently inspect and stop the entire session process tree first, including
|
|
96
|
+
any child that spawned before its PID was recorded. Rebooting the host and checking
|
|
97
|
+
that the session has not restarted is one way to establish that boundary. Only
|
|
98
|
+
when this is true, use the preview's SHA-256 and record how it was confirmed:
|
|
99
|
+
|
|
100
|
+
```powershell
|
|
101
|
+
npx --yes --package "$NccgsArchive" nccgs recover-session --project "D:\path\to\UnityProject" --id "SESSION-UUID" --sha256 "HASH-FROM-PREVIEW" --confirm-process-tree-stopped --reason "Describe how the full session tree was confirmed stopped"
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
This is a human/operator attestation, **not automatic descendant proof**. The
|
|
105
|
+
command refuses live/unverified recorded PIDs, a foreign host, changed hashes,
|
|
106
|
+
wrong operation, unsafe IDs and invocation inside Claude Code. It archives the
|
|
107
|
+
exact original lease and a receipt with the operator's reason under
|
|
108
|
+
`.nccgs/session-recoveries/<id>/`. It never kills a process or edits task/job/run
|
|
109
|
+
locks, verdicts, history or budgets. Other active/unknown work still blocks
|
|
110
|
+
uninstall. A missing child PID during `spawning` explicitly remains unobserved
|
|
111
|
+
in the receipt; the operator must establish shutdown independently before confirming.
|
|
112
|
+
Keep the receipts and retry the original uninstall/rollback only after all work
|
|
113
|
+
has settled. There is no age-based or automatic eviction of unknown leases.
|
|
114
|
+
|
|
115
|
+
Each recovery writes an immutable `receipt.json` with status `pending` before
|
|
116
|
+
moving the lease, then a separate `outcome.json` with status `completed` or
|
|
117
|
+
`failed`. The outcome identifies the pending receipt by SHA-256. A rename failure
|
|
118
|
+
leaves the original lease in place and records the error; it is not a successful
|
|
119
|
+
recovery. If a crash or write failure leaves no valid outcome, completion remains
|
|
120
|
+
unconfirmed: inspect both the original lease and the archive, retaining every
|
|
121
|
+
record. The lease may already have moved if recording completion failed. A pending
|
|
122
|
+
receipt alone never proves success, and the command does not report success when
|
|
123
|
+
it cannot record completion. Retrying a failed move creates a new receipt; it
|
|
124
|
+
does not overwrite the earlier attempt.
|
|
125
|
+
|
|
126
|
+
Reinstalling later reuses retained policy and task records. It does not replenish
|
|
127
|
+
spent money, turns, reviews or time. Restoring an old uninstall must not overwrite
|
|
128
|
+
a subsequent installation. Removal/rollback is a maintenance action, not a task
|
|
129
|
+
PASS, independent review, acceptance decision or a new allowance.
|
|
130
|
+
|
|
131
|
+
The command removes the project integration only. It does not uninstall Claude
|
|
132
|
+
Code, Unity, Node.js, global npm packages or npm's cache, and makes no provider
|
|
133
|
+
calls. Symlinks/junctions, malformed records and uncertain process ownership fail
|
|
134
|
+
closed rather than permitting deletion outside the checked project.
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
# WFK17 R04 local hook/context repair
|
|
2
|
+
|
|
3
|
+
This is an unpublished local candidate based on NCCGS 2.1.0. Its archive SHA-256
|
|
4
|
+
and the outer R04 identity distinguish it from the original package. It is not an
|
|
5
|
+
npm release, rollout or acceptance of full NCCGS orchestration. The common
|
|
6
|
+
workflow R03 remains frozen and unchanged.
|
|
7
|
+
|
|
8
|
+
## Runtime scope
|
|
9
|
+
|
|
10
|
+
The qualification target is Claude Code 2.1.316 on the named Windows host.
|
|
11
|
+
Earlier CLI versions are not qualified for this candidate. Direct executable
|
|
12
|
+
hook arguments and `onFailure: block` must be supported; do not use this fragment
|
|
13
|
+
on an older CLI that silently ignores those settings. The local runner checks
|
|
14
|
+
the tested version before calling the native launcher.
|
|
15
|
+
|
|
16
|
+
All twelve managed command hooks invoke Node directly through `command`/`args`.
|
|
17
|
+
They retain their existing scripts, matchers, arguments and timeouts. PreToolUse
|
|
18
|
+
and subagent integrity hooks block when their transport/runtime fails. No native
|
|
19
|
+
model, design, dispatch, review or closure obligation is removed. Hook identity
|
|
20
|
+
includes its script and phase; unrelated custom Node hooks remain owner-owned.
|
|
21
|
+
The installer migrates exact legacy hooks, doctor checks argv and failure policy,
|
|
22
|
+
and uninstall removes only recognized managed hooks.
|
|
23
|
+
|
|
24
|
+
## Optional shared context reads
|
|
25
|
+
|
|
26
|
+
The external operator can bind a session to an already accepted common workflow:
|
|
27
|
+
|
|
28
|
+
- `NCCGS_SHARED_WORKFLOW_ROOT`: its absolute tools root;
|
|
29
|
+
- `NCCGS_SHARED_WORKFLOW_MANIFEST_SHA256`: SHA-256 of its exact
|
|
30
|
+
`implementation/ARTIFACT_MANIFEST.json`.
|
|
31
|
+
|
|
32
|
+
These are process-local trust anchors, not a second project configuration or
|
|
33
|
+
graph. The common project configuration remains
|
|
34
|
+
`docs/workflow/workflow.config.json`. Native read admission verifies the installed
|
|
35
|
+
bridge fingerprint and all pinned workflow-manifest files before accepting only:
|
|
36
|
+
|
|
37
|
+
```text
|
|
38
|
+
node .claude/nccgs/tools/shared-context.mjs --project PROJECT --workflow-root ROOT --action status
|
|
39
|
+
node .claude/nccgs/tools/shared-context.mjs --project PROJECT --workflow-root ROOT --action query --text Restore
|
|
40
|
+
node ROOT/tools/workflow.mjs status --config PROJECT/docs/workflow/workflow.config.json
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
The exact current project/root are mandatory. Queries allow only bounded plain
|
|
44
|
+
text. This coordinator admission denies setup, refresh, update, hold secrets,
|
|
45
|
+
duplicate/unknown options, foreign roots, modified readers and shell composition.
|
|
46
|
+
An absent binding grants no shell permission. Worker reservations and native task
|
|
47
|
+
obligations are unchanged. Arbitrary audit shell execution remains denied; do not
|
|
48
|
+
change task mode or create a worker just to obtain context-read permission.
|
|
49
|
+
|
|
50
|
+
Use PowerShell natively on this Windows fixture because its Git Bash/MSYS host
|
|
51
|
+
cannot create the required named object. This changes the tool transport and
|
|
52
|
+
keeps the same Bash|PowerShell integrity matcher. It is not a way around a
|
|
53
|
+
native denial. Semantic Graphify coverage remains unavailable without an approved
|
|
54
|
+
backend, and original documents still require direct reads.
|
|
55
|
+
|
|
56
|
+
For the tested foreground Windows session, set the process-local variables
|
|
57
|
+
`CLAUDE_CODE_USE_POWERSHELL_TOOL=1` and
|
|
58
|
+
`CLAUDE_CODE_DISABLE_WINDOWS_SHELL_LAUNCHER=1`. The second uses direct PowerShell
|
|
59
|
+
instead of the cmd.exe lifecycle launcher; background tasks remain disabled by
|
|
60
|
+
NCCGS. The default launcher returned tool error 5 after producing correct JSON
|
|
61
|
+
on this restricted host. A diagnostic suppressing experimental warnings did not
|
|
62
|
+
fix it and is not part of the final profile. Do not translate that error into a
|
|
63
|
+
successful semantic or process exit status.
|
|
64
|
+
|
|
65
|
+
The user's optional mcpmarket-me plugin has its own Bash startup hook. The
|
|
66
|
+
qualification fixture disables only that plugin at local scope, using Claude's
|
|
67
|
+
plugin CLI. Global plugins/settings remain unchanged. The candidate package does
|
|
68
|
+
not automatically disable user plugins in other projects.
|
|
69
|
+
|
|
70
|
+
References: https://code.claude.com/docs/en/hooks#exec-form-and-shell-form and
|
|
71
|
+
https://code.claude.com/docs/en/env-vars .
|
package/docs/WORKFLOWS.md
CHANGED
|
@@ -1,85 +1,85 @@
|
|
|
1
|
-
# NCCGS workflows — 2.0.0
|
|
2
|
-
|
|
3
|
-
New installations use standalone Claude Code execution with the claude-standalone
|
|
4
|
-
model profile. The coordinator owns intake, planning, dispatch, verification and
|
|
5
|
-
reporting; a separate Claude Code reviewer owns the verdict. External/manual
|
|
6
|
-
acceptance is required only by the configured policy and approved contract.
|
|
7
|
-
See [standalone execution](../.claude/nccgs/protocols/standalone.md) and
|
|
8
|
-
[standalone gates](../.claude/nccgs/protocols/standalone-gates.md).
|
|
9
|
-
|
|
10
|
-
Existing compatibility projects retain their Astra/Fable or legacy chain; select
|
|
11
|
-
obligations from execution.json before model routing. Updates do not silently
|
|
12
|
-
convert those projects. See [upgrading](../UPGRADING.md).
|
|
13
|
-
|
|
14
|
-
## Risk tiers
|
|
15
|
-
|
|
16
|
-
| Tier | Typical work | Required structure |
|
|
17
|
-
|---|---|---|
|
|
18
|
-
| FAST | Local, unambiguous, easy rollback | One lightweight implementer; concise plan/report; targeted evidence; 2 review rounds |
|
|
19
|
-
| STANDARD | Ordinary feature or coordinated change | Contract, context packet, one standard implementer, independent verification, closure; 3 review rounds |
|
|
20
|
-
| CONTROLLED | Architecture, compatibility, dependency, migration, security, release | One deep implementation lead, impact/decision record, relevant specialists, rollback, full gates; 3 review rounds |
|
|
21
|
-
|
|
22
|
-
Standalone intake is classified conservatively; ready local fixes may use FAST,
|
|
23
|
-
ordinary features STANDARD, and cross-system/high-risk work CONTROLLED. Compatibility
|
|
24
|
-
tasks also support explicit risk. FAST uses nccgs-fast-implementer; CONTROLLED uses
|
|
25
|
-
nccgs-unity-implementer as its deep lead. Use the read-only task scout only for a
|
|
26
|
-
specific missing fact. All tiers retain independent review and applicable contract
|
|
27
|
-
gates; standalone review requests
|
|
28
|
-
|
|
29
|
-
Stop when criteria and relevant checks pass without actionable blockers. Avoid
|
|
30
|
-
speculative scope expansion, duplicate reviewers, and repeated green checks.
|
|
31
|
-
Rerun only for changed inputs, failures, or new evidence. Subjective questions go
|
|
32
|
-
to a playable test. Exhausted review rounds require an evidence-backed stop or an
|
|
33
|
-
explicit external `task extend-review`; re-recording implementation does not reset
|
|
34
|
-
them. Configured dispatch, supervised session and verification limits remain effective;
|
|
35
|
-
advisory planning estimates never extend them or waive a gate.
|
|
36
|
-
|
|
37
|
-
## End-to-end work
|
|
38
|
-
|
|
39
|
-
```text
|
|
40
|
-
request -> approved contract, mode, risk and design readiness
|
|
41
|
-
-> reserved Claude Code worker with bounded ownership
|
|
42
|
-
-> verification tied to current source and contract
|
|
43
|
-
-> independent reviewer verdict
|
|
44
|
-
-> report and configured external/manual acceptance
|
|
45
|
-
-> task close after all executable gates pass
|
|
46
|
-
```
|
|
47
|
-
|
|
48
|
-
The primary session composes modules automatically. Explicit specialized commands are
|
|
49
|
-
available when a user wants a bounded workflow or output.
|
|
50
|
-
|
|
51
|
-
## Workflow families
|
|
52
|
-
|
|
53
|
-
- **Planning/context**: `project-stage`, `context-pack`, `story-readiness`,
|
|
54
|
-
`plan-feature`, `sprint-plan`, `milestone-review`, `retrospective`.
|
|
55
|
-
- **Design**: `design`, `design-review`, `balance-review`, `accessibility-review`,
|
|
56
|
-
`ui-review`, `prototype-feature`, `playtest`.
|
|
57
|
-
- **Technical**: `architecture-decision`, `dependency-review`,
|
|
58
|
-
`compatibility-review`, `nccgs-code-review`, `performance-audit`, `security-audit`.
|
|
59
|
-
- **Implementation/quality**: `work`, `qa-plan`, `test`, `bug-triage`,
|
|
60
|
-
`evidence-review`, `review`, `asset-audit`, `closure`.
|
|
61
|
-
- **Delivery/recovery**: `release-readiness`, `release`, `hotfix`,
|
|
62
|
-
`incident-recovery`, `localize-game`, `migrate-project`.
|
|
63
|
-
- **Visibility**: `audit`, `status`.
|
|
64
|
-
|
|
65
|
-
## Role composition examples
|
|
66
|
-
|
|
67
|
-
The standalone coordinator routes feature design to the game designer and obtains
|
|
68
|
-
independent design review before dependent implementation when required.
|
|
69
|
-
One gameplay programmer owns implementation; a Unity systems specialist may support
|
|
70
|
-
a separate bounded concern where needed, followed by verification. A UI feature
|
|
71
|
-
has one UI implementation owner; UX, accessibility, or Unity UI specialists join only
|
|
72
|
-
for a concrete question or distinct deliverable, followed by independent verification.
|
|
73
|
-
|
|
74
|
-
CONTROLLED network-save work can enable optional technical architect, network
|
|
75
|
-
programmer and security engineer roles. The standalone reviewer reviews all three
|
|
76
|
-
risk tiers. Optional roles are activated explicitly; the default loads 13 of 47 roles.
|
|
77
|
-
|
|
78
|
-
## Evidence states
|
|
79
|
-
|
|
80
|
-
- IMPLEMENTED: change exists.
|
|
81
|
-
- VERIFIED: objective evidence proves approved criteria.
|
|
82
|
-
- VALIDATED: applicable subjective gate accepted.
|
|
83
|
-
- DONE: all configured objective, artifact and subjective gates closed.
|
|
84
|
-
|
|
85
|
-
Status labels are evidence claims, not progress decoration.
|
|
1
|
+
# NCCGS workflows — 2.0.0
|
|
2
|
+
|
|
3
|
+
New installations use standalone Claude Code execution with the claude-standalone
|
|
4
|
+
model profile. The coordinator owns intake, planning, dispatch, verification and
|
|
5
|
+
reporting; a separate Claude Code reviewer owns the verdict. External/manual
|
|
6
|
+
acceptance is required only by the configured policy and approved contract.
|
|
7
|
+
See [standalone execution](../.claude/nccgs/protocols/standalone.md) and
|
|
8
|
+
[standalone gates](../.claude/nccgs/protocols/standalone-gates.md).
|
|
9
|
+
|
|
10
|
+
Existing compatibility projects retain their Astra/Fable or legacy chain; select
|
|
11
|
+
obligations from execution.json before model routing. Updates do not silently
|
|
12
|
+
convert those projects. See [upgrading](../UPGRADING.md).
|
|
13
|
+
|
|
14
|
+
## Risk tiers
|
|
15
|
+
|
|
16
|
+
| Tier | Typical work | Required structure |
|
|
17
|
+
|---|---|---|
|
|
18
|
+
| FAST | Local, unambiguous, easy rollback | One lightweight implementer; concise plan/report; targeted evidence; 2 review rounds |
|
|
19
|
+
| STANDARD | Ordinary feature or coordinated change | Contract, context packet, one standard implementer, independent verification, closure; 3 review rounds |
|
|
20
|
+
| CONTROLLED | Architecture, compatibility, dependency, migration, security, release | One deep implementation lead, impact/decision record, relevant specialists, rollback, full gates; 3 review rounds |
|
|
21
|
+
|
|
22
|
+
Standalone intake is classified conservatively; ready local fixes may use FAST,
|
|
23
|
+
ordinary features STANDARD, and cross-system/high-risk work CONTROLLED. Compatibility
|
|
24
|
+
tasks also support explicit risk. FAST uses nccgs-fast-implementer; CONTROLLED uses
|
|
25
|
+
nccgs-unity-implementer as its deep lead. Use the read-only task scout only for a
|
|
26
|
+
specific missing fact. All tiers retain independent review and applicable contract
|
|
27
|
+
gates; standalone review requests Fable/high.
|
|
28
|
+
|
|
29
|
+
Stop when criteria and relevant checks pass without actionable blockers. Avoid
|
|
30
|
+
speculative scope expansion, duplicate reviewers, and repeated green checks.
|
|
31
|
+
Rerun only for changed inputs, failures, or new evidence. Subjective questions go
|
|
32
|
+
to a playable test. Exhausted review rounds require an evidence-backed stop or an
|
|
33
|
+
explicit external `task extend-review`; re-recording implementation does not reset
|
|
34
|
+
them. Configured dispatch, supervised session and verification limits remain effective;
|
|
35
|
+
advisory planning estimates never extend them or waive a gate.
|
|
36
|
+
|
|
37
|
+
## End-to-end work
|
|
38
|
+
|
|
39
|
+
```text
|
|
40
|
+
request -> approved contract, mode, risk and design readiness
|
|
41
|
+
-> reserved Claude Code worker with bounded ownership
|
|
42
|
+
-> verification tied to current source and contract
|
|
43
|
+
-> independent reviewer verdict
|
|
44
|
+
-> report and configured external/manual acceptance
|
|
45
|
+
-> task close after all executable gates pass
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
The primary session composes modules automatically. Explicit specialized commands are
|
|
49
|
+
available when a user wants a bounded workflow or output.
|
|
50
|
+
|
|
51
|
+
## Workflow families
|
|
52
|
+
|
|
53
|
+
- **Planning/context**: `project-stage`, `context-pack`, `story-readiness`,
|
|
54
|
+
`plan-feature`, `sprint-plan`, `milestone-review`, `retrospective`.
|
|
55
|
+
- **Design**: `design`, `design-review`, `balance-review`, `accessibility-review`,
|
|
56
|
+
`ui-review`, `prototype-feature`, `playtest`.
|
|
57
|
+
- **Technical**: `architecture-decision`, `dependency-review`,
|
|
58
|
+
`compatibility-review`, `nccgs-code-review`, `performance-audit`, `security-audit`.
|
|
59
|
+
- **Implementation/quality**: `work`, `qa-plan`, `test`, `bug-triage`,
|
|
60
|
+
`evidence-review`, `review`, `asset-audit`, `closure`.
|
|
61
|
+
- **Delivery/recovery**: `release-readiness`, `release`, `hotfix`,
|
|
62
|
+
`incident-recovery`, `localize-game`, `migrate-project`.
|
|
63
|
+
- **Visibility**: `audit`, `status`.
|
|
64
|
+
|
|
65
|
+
## Role composition examples
|
|
66
|
+
|
|
67
|
+
The standalone coordinator routes feature design to the game designer and obtains
|
|
68
|
+
independent design review before dependent implementation when required.
|
|
69
|
+
One gameplay programmer owns implementation; a Unity systems specialist may support
|
|
70
|
+
a separate bounded concern where needed, followed by verification. A UI feature
|
|
71
|
+
has one UI implementation owner; UX, accessibility, or Unity UI specialists join only
|
|
72
|
+
for a concrete question or distinct deliverable, followed by independent verification.
|
|
73
|
+
|
|
74
|
+
CONTROLLED network-save work can enable optional technical architect, network
|
|
75
|
+
programmer and security engineer roles. The standalone reviewer reviews all three
|
|
76
|
+
risk tiers. Optional roles are activated explicitly; the default loads 13 of 47 roles.
|
|
77
|
+
|
|
78
|
+
## Evidence states
|
|
79
|
+
|
|
80
|
+
- IMPLEMENTED: change exists.
|
|
81
|
+
- VERIFIED: objective evidence proves approved criteria.
|
|
82
|
+
- VALIDATED: applicable subjective gate accepted.
|
|
83
|
+
- DONE: all configured objective, artifact and subjective gates closed.
|
|
84
|
+
|
|
85
|
+
Status labels are evidence claims, not progress decoration.
|