nccgs 2.0.0-rc.1 → 2.0.0-rc.3

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.
@@ -1,7 +1,7 @@
1
1
  # NCCGS — portable framework decisions
2
2
 
3
3
  NCCGS means **New Claude Code Game Studio** and targets **Claude Code**.
4
- This is the public 2.0.0-rc.1 release candidate, distributed through npm's next tag.
4
+ This is the public 2.0.0-rc.3 release candidate, distributed through npm's next tag.
5
5
  It is not stable promotion. The package README and changelog describe release scope.
6
6
  Project-specific authorizations, provider sessions, budgets and internal development
7
7
  history are retained separately, outside the public package. Nothing in this file
@@ -1 +1 @@
1
- 2.0.0-rc.1
1
+ 2.0.0-rc.3
@@ -38,7 +38,7 @@ Explicit migration archives configuration and does not rewrite task history.
38
38
 
39
39
  Task records under `.nccgs/tasks/` are authoritative and `task close` enforces all
40
40
  stages. Markdown DONE labels cannot replace them. Read routes from `pipeline.json`;
41
- load only the selected execution workflow. Twelve core roles are active; enable
41
+ load only the selected execution workflow. Thirteen roles are active by default; enable
42
42
  optional specialists when their expertise changes the next action.
43
43
 
44
44
  For meaningful project work:
@@ -1,4 +1,4 @@
1
- # Bounded source repair — unreleased preview
1
+ # Bounded source repair — 2.0 RC
2
2
 
3
3
  The Unity phase-2 retest exhausted a repair worker's 22 native turns while exploring
4
4
  parameters in a scratch harness. It made no gameplay change and left a PARTIAL
@@ -2,8 +2,8 @@
2
2
 
3
3
  NCCGS runs in Claude Code. Resolve execution obligations independently of models.
4
4
  `pipeline.json` is the routing source; generated catalog/frontmatter and
5
- [routing.generated.md](../routing.generated.md) must match it. Twelve core roles
6
- load by default; 35 optional specialists remain in `agent-library/` until needed.
5
+ [routing.generated.md](../routing.generated.md) must match it. Thirteen roles
6
+ load by default; 34 optional specialists remain in `agent-library/` until needed.
7
7
 
8
8
  ## Standalone default
9
9
 
@@ -1,8 +1,8 @@
1
- # NCCGS 1.5 preview — implementation and operation
1
+ # NCCGS 2.0 RC — implementation and operation
2
2
 
3
- Version: **2.0.0-rc.1**. Target executor: **Claude Code**.
4
- This is framework functionality with synthetic regression tests, pending real-runtime
5
- pilot validation. Read [MEMORY.md](../MEMORY.md) before interpreting evaluation results.
3
+ Version: **2.0.0-rc.3**. Target executor: **Claude Code**.
4
+ Framework tests and scoped native delivery evidence exist. Fresh end-to-end
5
+ qualification of this exact RC and published-1.3 upgrade qualification are pending. Read [MEMORY.md](../MEMORY.md) before interpreting evaluation results.
6
6
 
7
7
  ## Policies and migration
8
8
 
@@ -1,4 +1,7 @@
1
- <!-- Historical 1.5 development document. Current release scope and limitations are in the package README.md and CHANGELOG.md. -->
1
+ > Historical development/reference document. Version, status, commands and plans
2
+ > below describe their original scope, not the current package defaults. Read
3
+ > [current release guidance](../MEMORY.md) before use. Research/benchmark proposals
4
+ > do not automatically add requirements to a delivery contract.
2
5
 
3
6
  # Claude Code pilot and benchmark protocol
4
7
 
@@ -1,4 +1,4 @@
1
- # Standalone Claude Code execution — v1.5 preview
1
+ # Standalone Claude Code execution — 2.0 RC
2
2
 
3
3
  Read `.claude/nccgs/MEMORY.md`. NCCGS means New Claude Code Game Studio. Only
4
4
  real Claude Code execution supplies NCCGS orchestration evidence. Codex maintenance,
@@ -1,7 +1,7 @@
1
1
  # Executable task gates
2
2
 
3
3
  This document specifies compatibility/schema-1 gates. For standalone/schema-2
4
- contracts and payloads use [the v1.5 guide](standalone-gates.md) and
4
+ contracts and payloads use [the standalone gate guide](standalone-gates.md) and
5
5
  [standalone execution](standalone.md). Existing tasks retain their original gates.
6
6
 
7
7
  Run the installed tool as `node .claude/nccgs/tools/task.mjs COMMAND ...`, or use
package/CHANGELOG.md CHANGED
@@ -1,5 +1,33 @@
1
1
  # Changelog
2
2
 
3
+ ## 2.0.0-rc.3 — 2026-10-07
4
+
5
+ Published-1.3.0 upgrade correction on next; latest remains unchanged.
6
+
7
+ - Fixed false overrides when a role generated by a 1.3.0 profile becomes a managed
8
+ file in 2.0. Existing generated fingerprints now identify unchanged agent files;
9
+ later user edits and explicit overrides still require review.
10
+ - RC2 qualification exposed the issue in quality, balanced and inherit profiles.
11
+ The astra-claude path was unaffected. Original failed results are retained.
12
+ - Release qualification uses the published 1.3.0 archive and the exact candidate
13
+ archive across four model profiles, owner settings and open task history,
14
+ override preservation, dry runs, explicit execution migration, rollback and
15
+ refusal of changed configuration/backups. See docs/UPGRADE-QUALIFICATION.md.
16
+ - A new task executed by Claude Code through this exact release remains pending;
17
+ this correction does not promote stable or change the frozen game evaluation.
18
+
19
+ ## 2.0.0-rc.2 — 2026-10-07
20
+
21
+ Release documentation follow-up on next; latest remains unchanged.
22
+
23
+ - Unified current version labels and exact-version npm install, doctor, run and migration commands.
24
+ - Replaced the obsolete Vietnamese Astra/Fable-default guide with standalone RC instructions.
25
+ - Separated file update, explicit execution migration and guarded rollback; documented that rollback is not a full package downgrade.
26
+ - Corrected active role counts and current workflow/project-policy guidance.
27
+ - Added a release-status matrix and visible historical labels instead of hidden comments.
28
+ - Retained RC1, frozen evaluation evidence and internal history. No runtime JavaScript, game source, model routing or acceptance threshold changed.
29
+ - Packaging validation covers public contents, local documentation links, version consistency and fresh install/doctor. Published-1.3.0 upgrade qualification and a fresh exact-RC task remain pending.
30
+
3
31
  ## 2.0.0-rc.1 — 2026-10-07
4
32
 
5
33
  Release channel: next. This candidate does not replace the stable/latest tag.
package/MEMORY.md CHANGED
@@ -1,7 +1,7 @@
1
1
  # NCCGS — portable framework decisions
2
2
 
3
3
  NCCGS means **New Claude Code Game Studio** and targets **Claude Code**.
4
- This is the public 2.0.0-rc.1 release candidate, distributed through npm's next tag.
4
+ This is the public 2.0.0-rc.3 release candidate, distributed through npm's next tag.
5
5
  It is not stable promotion. See README.md and CHANGELOG.md for release scope.
6
6
  Project-specific authorizations, provider sessions, budgets and internal development
7
7
  history are retained separately, outside the public package. Nothing in this file
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # NCCGS — New Claude Code Game Studio
2
2
 
3
- **2.0.0-rc.1** is a release candidate for standalone game-development orchestration
3
+ **2.0.0-rc.3** is a release candidate for standalone game-development orchestration
4
4
  in **Claude Code**, published on npm's **next** channel. The stable/latest channel
5
5
  is not promoted by this release.
6
6
 
@@ -21,8 +21,9 @@ and negative findings remain preserved in the development evidence.
21
21
  The release source includes the reviewed fixes to reviewer capacity, handoff schema
22
22
  guidance and standalone command syntax. The game case used a frozen framework with
23
23
  a session-only reviewer capacity override. This exact RC has not yet completed a
24
- fresh full game task or a published-1.3.0 upgrade qualification. Use a disposable
25
- project or backed-up copy while evaluating it. See [release notes](CHANGELOG.md),
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),
26
27
  [upgrading](UPGRADING.md), [delivery acceptance](.claude/nccgs/protocols/delivery-acceptance.md)
27
28
  and [portable framework decisions](MEMORY.md).
28
29
 
@@ -69,14 +70,14 @@ Requirements: Claude Code and Node.js 18+. Unity CLI/Pipeline is needed for live
69
70
  Unity operations. Run against a disposable Unity project first:
70
71
 
71
72
  ```powershell
72
- npx --yes nccgs@2.0.0-rc.1 install --project "D:\path\to\UnityProject" --dry-run
73
- npx --yes nccgs@2.0.0-rc.1 install --project "D:\path\to\UnityProject"
74
- npx --yes nccgs@2.0.0-rc.1 doctor --project "D:\path\to\UnityProject"
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"
75
76
  ```
76
77
 
77
78
  Use nccgs@next to follow candidate releases, or pin the exact version above for
78
79
  repeatability. Use update for an existing installation only after reviewing its
79
- dry run and backup. Published-1.3.0 upgrade qualification is still pending for this RC.
80
+ dry run and backup. See [the tested upgrade matrix](docs/UPGRADE-QUALIFICATION.md) and its limits.
80
81
  The installer preserves customized files and unrelated Claude settings, records
81
82
  overrides and backs up replacements. Do not use --force as an ordinary update path.
82
83
 
@@ -84,7 +85,7 @@ New installs default to standalone with `claude-standalone`. Existing installati
84
85
  without execution.json remain compatibility. To migrate explicitly:
85
86
 
86
87
  ```powershell
87
- node "D:\path\to\NCCGS\scripts\cli.mjs" migrate-execution --project "D:\path\to\UnityProject" --to standalone --model-profile claude-standalone --dry-run
88
+ npx --yes nccgs@2.0.0-rc.3 migrate-execution --project "D:\path\to\UnityProject" --to standalone --model-profile claude-standalone --dry-run
88
89
  ```
89
90
 
90
91
  Inspect the dry run, then remove `--dry-run`. Omitting `--model-profile` preserves
@@ -96,7 +97,7 @@ task handling. Updating files never converts an old approval into a new one.
96
97
  Start a task session with native permissions already selected:
97
98
 
98
99
  ```powershell
99
- node "D:\path\to\NCCGS\scripts\cli.mjs" run --project "D:\path\to\UnityProject"
100
+ npx --yes nccgs@2.0.0-rc.3 run --project "D:\path\to\UnityProject"
100
101
  ```
101
102
 
102
103
  New installations default to task autonomy `full`. Existing installations keep
@@ -131,7 +132,10 @@ Independent review uses Opus/high. These aliases are requested routes. Real Clau
131
132
  model resolution and provider access must be verified in the target session.
132
133
  Historical `astra-claude` routes remain available under compatibility execution.
133
134
 
134
- ## Verification and limits
135
+ ## Maintainer verification and limits
136
+
137
+ These commands run from a source/package checkout. They are not extra steps for
138
+ users installing with npx, and do not initiate a Claude Code game run.
135
139
 
136
140
  ```text
137
141
  npm run policy:build
package/UPGRADING.md CHANGED
@@ -1,197 +1,109 @@
1
- # Upgrading NCCGS
2
-
3
- ## 2.0.0-rc.1 on the next channel
4
-
5
- This is an opt-in release candidate. Keep a complete project backup and evaluate
6
- on a copy. The stable/latest channel remains separate. Read CHANGELOG.md first.
7
- A fresh packaged install/doctor check is part of RC packaging; qualification of
8
- an upgrade from the published 1.3.0 package and a fresh end-to-end RC task remain
9
- pending. Do not treat the accepted delivery V2 case as proof of those two checks.
10
-
11
- New installations use standalone execution. Existing execution policies and
12
- legacy tasks retain their original obligations; an update does not silently
13
- migrate or reset them. Follow the explicit migration procedure below only when
14
- that policy change is intended. Earlier sections describe historical source releases.
15
-
16
- Always inspect a dry run and preserve project policy.
17
-
18
- ## Bounded repair (unreleased source change)
19
-
20
- Fresh standalone `purpose: repair` reservations require `workPacket` and one fresh
21
- handoff. See [the packet schema and limits](docs/BOUNDED-REPAIR.md). The source CLI
22
- installs `.nccgs/templates/repair-packet.json` for new projects. Existing reserved
23
- dispatches remain legacy, with their original evidence and budgets; no retroactive
24
- packet enforcement or quota reset occurs. Reopen Claude Code after managed hooks
25
- are updated. Preserve the frozen failed game cases and test in a fresh copy.
26
-
27
- ## Task autonomy (unreleased source change)
28
-
29
- New installs select `.nccgs/autonomy.json` mode `full`; updates preserve existing
30
- policy, including `guarded` for older projects without that file. Use
31
- `nccgs update --autonomy full` for the owner's requested change, then launch/resume
32
- with `nccgs run`. Native permission selection is session scoped; global settings
33
- are unchanged. Existing deny rules, destructive-action guards and evidence gates
34
- remain in force. Hook commands now resolve from the project root even after
35
- outside-directory work; updates replace their legacy relative form once.
36
-
37
- Autonomy policy is a canonical task input. Existing open tasks need input refresh
38
- and fresh affected evidence after this update; their history and spent quotas
39
- are not reset. Preserve frozen benchmark installations/results separately.
40
-
41
- ## 1.5.0-preview.1: explicit standalone migration
42
-
43
- Read [the v1.5 guide](docs/NCCGS-1.5.md). Use this checkout's CLI or a locally packed
44
- archive; this preview has not been published to npm. New installs use standalone
45
- Claude Code execution. Existing installs without execution.json remain compatibility;
46
- ordinary update preserves model profile, execution obligations, tasks and evidence.
47
-
48
- After updating managed files, preview `migrate-execution --to standalone --dry-run`.
49
- It changes execution policy only. Add `--model-profile claude-standalone` when also
50
- changing model routes. Apply by removing `--dry-run`. Review the reported archive
51
- under `.nccgs/backups/execution/<ID>` and reopen Claude Code after settings changes.
52
-
53
- `migrate-execution --rollback ID --dry-run` previews restoration; removing
54
- `--dry-run` restores only when current configuration and backup hashes still match.
55
- Later user edits or altered archives block rollback. Caught migration failures
56
- restore captured configuration. An OS kill can leave a prepared archive requiring
57
- manual recovery; this is not a crash-atomic multi-file transaction.
58
-
59
- Schema-1 tasks keep their original gates/history. Do not reinterpret them as schema-2
60
- or clone them to reset consumed budgets. Finish them under compatibility configuration,
61
- or retain them as blocked/history and open explicitly scoped new work with recorded
62
- lineage. Fresh benchmarks must not reuse contaminated CP0 solutions.
63
-
64
- The sections below describe historical versions and their original defaults.
65
-
66
- ## 1.4.1: input freshness, durable evidence and installation safety
67
-
68
- Follow the [1.4.1 guide](docs/NCCGS-1.4.1.md). Map governing inputs and generated
69
- build destinations in `.nccgs/inputs.json`. Runtime observations and raw sources
70
- now live under `.nccgs/evidence/runtime/`; temporary bindings remain local.
71
-
72
- For an open 1.4 task, run `task migrate-evidence --id ID`, then
73
- `task refresh-inputs --id ID --reason TEXT` and record fresh stage evidence.
74
- History, risk and consumed review rounds are preserved. A refresh cannot waive
75
- review or acceptance. Closed old records remain historical and doctor reports
76
- missing evidence. Keep original task/evidence files for rollback.
77
-
78
- This patch keeps the existing Astra/Fable/Product Owner chain. The proposed
79
- standalone architecture belongs to 1.5.
80
-
81
- ## 1.4.0: risk-based implementation and bounded review
82
-
83
- Read the [1.4 guide](docs/NCCGS-1.4.md). Routing now comes from
84
- `.claude/nccgs/pipeline.json`; generated files are checked for drift. Twelve core
85
- agents are active by default; 35 additional roles are available through `agents
86
- --enable`. Project customizations are preserved for explicit migration review.
87
-
88
- Astra must map existing checks, closure artifacts and manual decisions into
89
- `.nccgs/gates.json`, referencing the current project policy hash. A 1.2 policy with
90
- embedded `profile_contracts` needs migration to the canonical `pipeline_policy`
91
- reference. Do not discard project requirements during this migration.
92
-
93
- Task records now enforce implementation -> independent review -> report -> Astra
94
- check -> Product Owner acceptance. Missing observed effort blocks the gate; requested
95
- settings alone do not prove runtime behavior. Each workflow loads only its selected
96
- Astra or legacy branch. The legacy instructions later in this document apply only
97
- to explicitly selected legacy profiles.
98
-
99
- Version 1.4 adds FAST/STANDARD/CONTROLLED implementation routes and two core roles:
100
- `nccgs-fast-implementer` and the read-only `nccgs-task-scout`. The existing Unity
101
- implementer becomes the deep CONTROLLED lead. The library now has 47 roles.
102
- Review limits are enforced at 2/3/3 rounds; re-recording implementation preserves
103
- the counter. An explicit external `task extend-review --id ID --reason TEXT
104
- --rounds N` can add rounds without waiving review or acceptance. Context/time
105
- budgets are advisory; they are not automatic stop timers.
106
-
107
- Old task records without `risk`, `implementationRoute`, or `reviewBudget` cannot
108
- continue through the new gates. Keep them as history, initialize a new task with
109
- the appropriate `--risk` (default STANDARD), and record fresh stage evidence.
110
- Do not copy prior approvals into the new task or recreate a current task to reset
111
- an exhausted budget. Reopen Claude Code after updating model settings and verify
112
- the actual selected implementation model/effort.
113
-
114
- ## Astra / Opus / Fable routing
115
-
116
- New installations default to `astra-claude`: Astra plans and owns documents;
117
- Sonnet/medium handles FAST, Opus 5.5/medium handles STANDARD, and Opus 5.5/high handles CONTROLLED; Fable/high reviews; Claude hands the reviewed report to
118
- Astra; Astra checks it; the Product Owner accepts before DONE. See the
119
- [handoff protocol](.claude/nccgs/protocols/astra-claude.md).
120
-
121
- Existing projects keep their profile unless explicitly changed. In each Unity
122
- project, run `npx nccgs@latest update --model-profile astra-claude --dry-run`, inspect
123
- it, then remove `--dry-run`. Source checkouts can use `node <NCCGS>/scripts/cli.mjs`
124
- instead of `npx nccgs@latest`. Publishing alone does not update installed projects.
125
- Use `install` instead of `update` for a new installation. Require Claude Code
126
- 2.1.280+ and access to Sonnet, Opus 5.5, and Fable. Review any
127
- preserved agent/settings overrides so the observed model and effort match policy.
128
- The configurator preserves unrelated shared settings and backs up replacements;
129
- existing sessions and local/environment overrides still require a runtime check.
130
-
131
- ## Earlier update behavior
1
+ # Upgrading NCCGS 2.0 RC
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.
5
+ Read [release status](docs/RELEASE-STATUS.md) for what has and has not been verified.
6
+
7
+ ## Choose the operation
8
+
9
+ | Situation | Operation | Effect |
10
+ |---|---|---|
11
+ | No NCCGS installation | `install` | Adds framework and initial project policy |
12
+ | Existing NCCGS installation | `update` | Updates managed files; preserves project-owned policy and customizations |
13
+ | Intentionally adopt standalone execution | `migrate-execution --to standalone` | Explicitly changes execution configuration; separate from updating files |
14
+ | Resume work | `run` | Launches Claude Code with the project's configured obligations |
15
+
16
+ **Published-1.3.0 upgrade qualification is covered for the tested fixture matrix.**
17
+ 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.
19
+
20
+ ## New installation
21
+
22
+ Requirements: Node.js 18+, Claude Code with access to the selected models, and a
23
+ Unity project with Assets, Packages and ProjectSettings. Live Unity operations
24
+ also require the appropriate Unity Editor/CLI integration.
132
25
 
133
26
  ```powershell
134
- cd "D:\path\to\UnityProject"
135
- npx nccgs@latest update --dry-run
136
- npx nccgs@latest update
137
- npx nccgs@latest doctor
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"
138
30
  ```
139
31
 
140
- Version 1.1.1 makes updates hash-aware, line-ending-aware, and override-aware.
141
- Managed files that still match the previous install state update automatically;
142
- CRLF/LF conversion alone is accepted as the same text. Genuine project-modified or
143
- intentionally missing framework files are preserved and recorded in
144
- `.nccgs/framework-overrides.json` as `pending_review`. The rest of the framework is
145
- updated normally, so `--force` is no longer required to get past intentional local
146
- customizations. Existing `.nccgs/project.yaml` remains project-owned and is never
147
- blindly overwritten.
148
-
149
- When pending overrides are reported, open a fresh Claude Code session and run
150
- `/migrate-project` once. The workflow reviews and rebases each override, migrates the
151
- project policy when needed, and records approval of the final hashes. A direct
152
- `doctor` remains red until pending override review is complete. Use `--force` only
153
- when you intentionally want to back up and discard every detected customization.
154
-
155
- NCCGS 1.1.1 also names its specialized review command `/nccgs-code-review` to avoid
156
- colliding with Claude Code's built-in `/code-review` command.
157
-
158
- When the installer reports that project migration is required, open a new Claude
159
- Code session and run one command:
160
-
161
- ```text
162
- /migrate-project
163
- /status full
32
+ New installations select standalone execution and the claude-standalone model
33
+ profile. External review is off by default; manual/project acceptance obligations
34
+ still apply when required. New task autonomy defaults to full, activated by `run`;
35
+ OS restrictions, explicit deny rules and evidence/destructive-action guards remain.
36
+
37
+ ## Update an existing installation
38
+
39
+ Back up the complete project first, including .claude, .nccgs, source, settings,
40
+ open task records and evidence. Stop active NCCGS sessions before applying an
41
+ update. Do not update a frozen evaluation in place.
42
+
43
+ ```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"
164
47
  ```
165
48
 
166
- The workflow retains review, plan, apply, and verify internally. Do not run it after
167
- an ordinary update when the installer reports `No project migration required`.
168
-
169
- The migration plan must move schema 1 policy to schema 2, choose a model profile,
170
- enable departments, configure context packets and orchestration, preserve closure
171
- artifacts, verify hooks, and resolve obsolete global skills. Keep
172
- `.claude/settings.local.json` local. Commit shared `.claude/` and `.nccgs/`; nested
173
- `.nccgs/.gitignore` excludes backups and runtime audit events.
174
-
175
- Use `--model-profile inherit` during installation if pinned models are unavailable.
176
- All replaced shared framework/settings files are backed up under
177
- `.nccgs/backups/<timestamp>/`.
178
-
179
- ## Reviewed design handoffs (2026-10-04 source preview)
180
-
181
- New standalone installs enable `designReviewRequired: true` in
182
- `.nccgs/execution.json`. Existing files and frozen tasks retain their pinned
183
- policy; an update does not manufacture design approval. To adopt this gate in an
184
- existing project, finish/archive active work, explicitly enable that field, and
185
- initialize fresh tasks. Do not alter historical policy or reset spent quotas.
186
- See [the design lifecycle](.claude/nccgs/protocols/design-lifecycle.md).
187
-
188
- The gate requires an independently reviewed, closed design task before dependent
189
- feature implementation. Ready local fixes with explicit acceptance have a narrow
190
- exemption. It checks traceability/current evidence, not whether the design is fun
191
- or whether all semantics are correct. Human judgement and independent review remain.
192
-
193
- Game Designer is now active by default. Design-review findings must include
194
- `acceptanceImpact` (`none`, `false-pass`, `missing-coverage`, `authority-gap`).
195
- Unresolved non-none impacts block PASS even when labelled MEDIUM/LOW or ACCEPTED.
196
- Use fresh review records after updating; never relabel old findings to manufacture
197
- approval. See the source-preview acceptance report for the remaining document gaps.
49
+ Inspect the dry-run changes before the second command. Ordinary updates preserve
50
+ model profile, execution policy and project customizations. A project with no
51
+ execution.json retains compatibility obligations; selecting a model profile alone
52
+ does not migrate its execution policy. Existing autonomy settings are preserved.
53
+
54
+ Changed or intentionally missing managed files are recorded in
55
+ `.nccgs/framework-overrides.json`. Resolve pending overrides through the project's
56
+ reviewed migration workflow; do not use `--force` just to make doctor green. Keep
57
+ the project's canonical requirements and applicable gates. Reopen Claude Code
58
+ after changing hooks, settings or managed agents.
59
+
60
+ If update reports that NCCGS is not installed, use the exact RC `install` command
61
+ above after checking the target. Some legacy CLI messages mention `@latest`;
62
+ that selects the stable channel and does not select this RC.
63
+
64
+ ## Optional execution-policy migration
65
+
66
+ After installing/updating, migrate only when the owner intends to adopt standalone.
67
+ Review any active task's pinned obligations before changing policy.
68
+
69
+ ```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
71
+ ```
72
+
73
+ Inspect the result, then repeat without `--dry-run` to apply. Omit
74
+ `--model-profile` to preserve model routes. An update alone does not perform this
75
+ migration. Schema-1 tasks retain their original gates/history; do not relabel them
76
+ as schema-2, reuse stale approvals or reset consumed attempts. A changed pipeline can block resuming an old task. Finish it before upgrading,
77
+ or explicitly scope subsequent work with retained lineage/evidence; updating or
78
+ rolling back execution settings does not re-approve an old task.
79
+
80
+ The command archives configuration under `.nccgs/backups/execution/<ID>`. To
81
+ preview restoration of that execution migration:
82
+
83
+ ```powershell
84
+ npx --yes nccgs@2.0.0-rc.3 migrate-execution --project "D:\path\to\ProjectCopy" --rollback "MIGRATION_UUID" --dry-run
85
+ ```
86
+
87
+ Use the actual printed UUID; remove `--dry-run` only after reviewing the preview.
88
+ Rollback refuses changed current configuration or altered backup hashes and
89
+ requires a compatible framework version. It restores execution configuration,
90
+ **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
92
+ is safe. Caught migration failures restore captured configuration; an OS kill is
93
+ not an atomic transaction and may require manual recovery.
94
+
95
+ ## Start and review work
96
+
97
+ ```powershell
98
+ npx --yes nccgs@2.0.0-rc.3 run --project "D:\path\to\UnityProject"
99
+ ```
100
+
101
+ Use `/status` in Claude Code to inspect obligations. Use `/migrate-project` when
102
+ the installer/doctor reports project migration or override review is required.
103
+ Installation and doctor checks prove package/setup integrity, not Claude execution,
104
+ game quality, completion of a task or human acceptance.
105
+
106
+ Existing projects that intentionally use Astra/Fable keep their configured chain.
107
+ 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
109
+ installation commands and release status.
package/VERSION CHANGED
@@ -1 +1 @@
1
- 2.0.0-rc.1
1
+ 2.0.0-rc.3
@@ -1,4 +1,4 @@
1
- # Bounded source repair — unreleased preview
1
+ # Bounded source repair — 2.0 RC
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`,
@@ -1,60 +1,59 @@
1
- # Hướng dẫn migrate và sử dụng NCCGS 1.4
1
+ # Hướng dẫn cài đặt và sử dụng NCCGS 2.0 RC
2
2
 
3
- Đọc [hướng dẫn vận hành 1.4](NCCGS-1.4.md) trước khi bắt đầu task. Luồng mặc định:
4
- Astra lập kế hoạch/tài liệu → Sonnet/medium (FAST) hoặc Opus 5.5/medium (STANDARD), high (CONTROLLED) triển khai → Fable/high review →
5
- report cho Astra → Astra kiểm tra → bạn nghiệm thu.
3
+ Bản hiện tại: **2.0.0-rc.3**, kênh npm **next**. `latest` là kênh stable riêng.
4
+ Đây là ứng viên phát hành. Nâng cấp từ npm 1.3.0 đã được kiểm chứng trong phạm vi
5
+ [các tình huống thử](UPGRADE-QUALIFICATION.md); chạy trọn một đầu việc mới bằng
6
+ chính RC này vẫn là bước riêng chưa hoàn tất. Xem [trạng thái phát hành](RELEASE-STATUS.md).
6
7
 
7
- ## Cài hoặc nâng cấp
8
+ ## Cài mới vào bản sao dự án
8
9
 
9
- Trong từng Unity project, chạy `npx nccgs@latest update --model-profile astra-claude
10
- --dry-run`. Đọc kết quả, bỏ `--dry-run` để áp dụng, rồi chạy `npx nccgs@latest doctor`.
11
- Dùng CLI `scripts/cli.mjs` với `--project <UnityProject>` nếu cài từ mã nguồn.
12
- Dùng `install` thay `update` nếu chưa cài. Update giữ profile hiện tại nếu không
13
- truyền `--model-profile`. Cần Node.js 18+ và Claude Code tương thích các model.
10
+ Cần Node.js 18+, Claude Code và Unity project có Assets, Packages, ProjectSettings.
11
+ Chức năng điều khiển Unity cần thêm Editor/CLI phù hợp. Thay đường dẫn ví dụ bằng
12
+ dự án của bạn; đọc kết quả xem trước rồi mới áp dụng:
14
13
 
15
- ## Astra chuẩn bị migration
14
+ ```powershell
15
+ npx --yes nccgs@2.0.0-rc.3 install --project "D:\path\to\UnityProject" --dry-run
16
+ npx --yes nccgs@2.0.0-rc.3 install --project "D:\path\to\UnityProject"
17
+ npx --yes nccgs@2.0.0-rc.3 doctor --project "D:\path\to\UnityProject"
18
+ ```
16
19
 
17
- Astra kiểm tra tài liệu chuẩn, `.nccgs/project.yaml`, yêu cầu kiểm chứng, artifact
18
- và manual gate đang có. Giữ nguyên các bảo đảm hiện hành; chỉ giảm gate khi bạn đã
19
- quyết định rõ ràng.
20
+ Có thể dùng `nccgs@next` để theo RC mới nhất; dùng số phiên bản cụ thể để tái lập.
21
+ Cài mới mặc định dùng Claude Code standalone, không yêu cầu Astra/Fable. Dự án cũ
22
+ vẫn giữ nghĩa vụ đã cấu hình; không tự bỏ một bước duyệt chỉ vì cài RC.
20
23
 
21
- Với policy cũ chứa `profile_contracts`, chuyển sang tham chiếu
22
- `pipeline_policy: .claude/nccgs/pipeline.json`. Map đầy đủ nghĩa vụ của dự án vào
23
- `.nccgs/gates.json` và điền hash project policy đã kiểm tra. Sau đó cung cấp plan
24
- migration cho Claude. Không tự thay model/effort của route đã chọn hoặc Fable trong profile này.
24
+ ## Dự án đã cài NCCGS
25
25
 
26
- Claude chạy `/migrate-project` theo plan của Astra, xử lý override đã được phân tích,
27
- kiểm chứng, rồi qua Fable review. Tùy chỉnh local được bảo toàn để review; không dùng
28
- `--force` chỉ để làm biến mất cảnh báo. Mở phiên Claude mới sau khi đổi cấu hình.
26
+ Sao lưu toàn bộ dự án và dừng phiên đang chạy. Dùng `update` thay `install`, luôn
27
+ xem `--dry-run` trên bản sao trước. Update giữ cấu hình dự án và các tùy chỉnh;
28
+ không dùng `--force` chỉ để xóa cảnh báo. Đọc [hướng dẫn nâng cấp](../UPGRADING.md)
29
+ để xử lý override, task đang mở, chuyển execution policy và khôi phục.
29
30
 
30
- ## Vận hành hằng ngày
31
+ Nâng cấp file và chuyển sang standalone là hai thao tác riêng. Nếu muốn chuyển
32
+ execution policy, dùng `migrate-execution --to standalone --dry-run` theo hướng dẫn.
33
+ Không tự đổi task cũ, xóa lịch sử hay đặt lại số lượt đã dùng. Sau thay hook/cấu hình,
34
+ mở lại phiên Claude Code.
31
35
 
32
- Có 12 agent lõi hoạt động mặc định, 35 vai trò tùy chọn trong thư viện. Bật/tắt vai
33
- trò bổ sung bằng `agents --enable/--disable`; lựa chọn được giữ qua update. 36 workflow
34
- chỉ nạp nhánh Astra hoặc legacy tương ứng với profile hiện tại.
36
+ ## Bắt đầu một đầu việc rõ ràng
35
37
 
36
- Astra cung cấp plan và gate; Claude khởi tạo/bind task, triển khai và ghi bằng chứng.
37
- Fable review độc lập trên cùng snapshot. Chỉ sau PASS mới ghi report; Astra và bạn
38
- quyết định các bước cuối ngoài phiên Claude. `task close` kiểm tra toàn bộ chuỗi.
39
- Schema và lệnh chi tiết có trong [hướng dẫn 1.4](NCCGS-1.4.md).
38
+ ```powershell
39
+ npx --yes nccgs@2.0.0-rc.3 run --project "D:\path\to\UnityProject"
40
+ ```
40
41
 
41
- Khởi tạo với `task init --risk FAST|STANDARD|CONTROLLED`; mặc định STANDARD. Giới
42
- hạn review tương ứng là 2/3/3, không xóa khi ghi lại implementation. Hết vòng mà
43
- chưa có PASS dùng được thì dừng và báo bằng chứng; chỉ quyết định gia hạn rõ ràng
44
- từ ngoài phiên Claude qua `task extend-review` mới cho phép review thêm. Các mốc
45
- context/thời gian là hướng dẫn, không phải giới hạn được tool tự thực thi.
42
+ Trong Claude Code, cung cấp mục tiêu, phạm vi, yêu cầu cố định, phần được phép sửa
43
+ và điều kiện nghiệm thu. NCCGS lập hợp đồng công việc, phân loại mức rủi ro, gọi
44
+ worker phù hợp, thu bằng chứng kiểm tra và yêu cầu review độc lập trước khi đóng.
46
45
 
47
- Chỉ gọi task scout khi thiếu thông tin; giữ một đầu mối triển khai. Đủ tiêu chí,
48
- test qua và không còn blocker thì bàn giao, không thêm phạm vi suy đoán. Chỉ chạy
49
- lại kiểm tra khi input đổi, có lỗi hoặc có bằng chứng mới. Câu hỏi chủ quan cần
50
- chuyển thành bản chơi thử để bạn đánh giá.
46
+ - `/work`: triển khai thay đổi.
47
+ - `/design`: làm rõ thiết kế/yêu cầu; tính năng có design gate phải được review trước.
48
+ - `/audit`: kiểm tra mà không sửa source.
49
+ - `/test`, `/review`: kiểm chứng và review theo hợp đồng.
50
+ - `/status`: xem trạng thái, bằng chứng và việc còn chặn.
51
51
 
52
- Sau nâng cấp, task cũ thiếu risk/route/review budget phải tạo lại dưới ID mới và
53
- ghi bằng chứng mới; giữ bản cũ làm lịch sử, không tái sử dụng approval cũ.
52
+ Có 47 vai trò trong thư viện, 13 vai trò bật mặc định. FAST yêu cầu Sonnet/medium;
53
+ STANDARD Opus/medium; CONTROLLED Opus/high; reviewer Opus/high. Đây là cấu hình
54
+ mong muốn, không phải bằng chứng model thực chạy. Chỉ gọi chuyên gia khi cần.
54
55
 
55
- `/status` đọc trạng thái và gate còn thiếu. Cấu hình model/effort yêu cầu được phân
56
- biệt với quan sát runtime. Thiếu bằng chứng effort thực chạy thì task chưa đủ điều
57
- kiện bàn giao. Report là file; NCCGS chưa tự gửi giữa ứng dụng.
58
-
59
- Các profile `quality`, `balanced`, `inherit` giữ quy trình cũ trong từng
60
- `references/legacy.md`. Chọn chúng là chủ động dùng luồng legacy.
56
+ Đạt test chưa tự động nghĩa là DONE. Phải có bằng chứng đúng source/contract,
57
+ review hợp lệ và mọi gate áp dụng đều đạt. Nghiệm thu kỹ thuật và quyết định nghiệm
58
+ thu của người dùng được ghi riêng. Một lượt thất bại phải được giữ cùng chi phí,
59
+ nguyên nhân và kết quả sửa lại.
package/docs/NCCGS-1.3.md CHANGED
@@ -1,3 +1,8 @@
1
+ > Historical development/reference document. Version, status, commands and plans
2
+ > below describe their original scope, not the current package defaults. Read
3
+ > [current release guidance](RELEASE-STATUS.md) before use. Research/benchmark proposals
4
+ > do not automatically add requirements to a delivery contract.
5
+
1
6
  # NCCGS 1.3 — tài liệu phiên bản trước
2
7
 
3
8
  Hướng dẫn đang dùng đã chuyển sang [NCCGS 1.4](NCCGS-1.4.md). Đường dẫn này được
@@ -1,3 +1,8 @@
1
+ > Historical development/reference document. Version, status, commands and plans
2
+ > below describe their original scope, not the current package defaults. Read
3
+ > [current release guidance](RELEASE-STATUS.md) before use. Research/benchmark proposals
4
+ > do not automatically add requirements to a delivery contract.
5
+
1
6
  # NCCGS 1.4.1 — reliable inputs and evidence
2
7
 
3
8
  This patch strengthens installation, verification and historical evidence. It keeps
package/docs/NCCGS-1.4.md CHANGED
@@ -1,3 +1,8 @@
1
+ > Historical development/reference document. Version, status, commands and plans
2
+ > below describe their original scope, not the current package defaults. Read
3
+ > [current release guidance](RELEASE-STATUS.md) before use. Research/benchmark proposals
4
+ > do not automatically add requirements to a delivery contract.
5
+
1
6
  # NCCGS 1.4 — chọn model theo rủi ro và giới hạn vòng review
2
7
 
3
8
  NCCGS dùng một nguồn cấu hình tại `.claude/nccgs/pipeline.json`:
@@ -1,4 +1,7 @@
1
- <!-- Historical 1.5 development document. Current release scope and limitations are in the package README.md and CHANGELOG.md. -->
1
+ > Historical development/reference document. Version, status, commands and plans
2
+ > below describe their original scope, not the current package defaults. Read
3
+ > [current release guidance](RELEASE-STATUS.md) before use. Research/benchmark proposals
4
+ > do not automatically add requirements to a delivery contract.
2
5
 
3
6
  # Kế hoạch triển khai NCCGS 1.5 và đánh giá điều kiện phát hành 2.0
4
7
 
@@ -1,4 +1,7 @@
1
- <!-- Historical 1.5 development document. Current release scope and limitations are in the package README.md and CHANGELOG.md. -->
1
+ > Historical development/reference document. Version, status, commands and plans
2
+ > below describe their original scope, not the current package defaults. Read
3
+ > [current release guidance](RELEASE-STATUS.md) before use. Research/benchmark proposals
4
+ > do not automatically add requirements to a delivery contract.
2
5
 
3
6
  # Claude Code pilot and benchmark protocol
4
7
 
package/docs/NCCGS-1.5.md CHANGED
@@ -1,4 +1,7 @@
1
- <!-- Historical 1.5 development document. Current release scope and limitations are in the package README.md and CHANGELOG.md. -->
1
+ > Historical development/reference document. Version, status, commands and plans
2
+ > below describe their original scope, not the current package defaults. Read
3
+ > [current release guidance](RELEASE-STATUS.md) before use. Research/benchmark proposals
4
+ > do not automatically add requirements to a delivery contract.
2
5
 
3
6
  # NCCGS 1.5 preview — implementation and operation
4
7
 
@@ -1,8 +1,8 @@
1
1
  # Phase 1: durable verification and bounded continuation
2
2
 
3
- This is the phase-1 maintenance change to NCCGS 1.5 preview. It does not promote
4
- the framework to stable, change model routing, implement games, or change the frozen
5
- three-track projects. Native Claude validation is a separate release gate.
3
+ These verification and continuation mechanisms originated in the 1.5 preview
4
+ and are included in 2.0 RC. Historical test descriptions below retain their original
5
+ scope. See [current release status](RELEASE-STATUS.md) for completed and pending checks.
6
6
 
7
7
  ## Run a verification once
8
8
 
@@ -1,8 +1,8 @@
1
1
  # Phase 2: measured acceptance and a protected repair cycle
2
2
 
3
- This source patch remains NCCGS 1.5 preview. It changes standalone task gates and
4
- dispatch accounting. It does not tune a game, change model routing, promote a release,
5
- or rewrite the frozen Unity evaluations.
3
+ These acceptance and dispatch mechanisms originated in the 1.5 preview and are
4
+ included in 2.0 RC. They do not tune a game or rewrite frozen evaluations. See
5
+ [current release status](RELEASE-STATUS.md) for validation scope.
6
6
 
7
7
  The owner revised the evaluation scope on 2026-10-04: NCCGS must support delivery
8
8
  from brief through implementation, testing and acceptance. Product balance research
@@ -8,7 +8,8 @@ verification, closure, or Unity execution for the project.
8
8
 
9
9
  - project stage and platforms;
10
10
  - enabled departments and bounded orchestration;
11
- - `astra-claude`, `quality`, `balanced`, or `inherit` model profile and fallback policy;
11
+ - execution policy and external/manual acceptance obligations;
12
+ - `claude-standalone`, `astra-claude`, `quality`, `balanced`, or `inherit` model profile and fallback policy;
12
13
  - canonical sources for product, design, architecture, planning, art, narrative,
13
14
  audio, and release;
14
15
  - protected/user-owned/generated paths and hand-tuned settings;
@@ -19,13 +20,16 @@ verification, closure, or Unity execution for the project.
19
20
 
20
21
  ## Model policy
21
22
 
22
- The default `astra-claude` profile assigns planning and canonical documents to Astra,
23
- FAST implementation to Sonnet/medium, STANDARD to Opus 5.5/medium, CONTROLLED to Opus 5.5/high, and independent review to Fable/high.
24
- The report is handed to Astra only after Fable PASS; Astra checks it before Product
25
- Owner acceptance. All these gates apply even to FAST work and lean closure. See
26
- [the protocol](../.claude/nccgs/protocols/astra-claude.md). No silent inherited model
27
- or lower effort may satisfy a required stage. Legacy profile selection explicitly
28
- opts out of this chain and ordinary updates preserve the existing selection.
23
+ New installations use standalone execution with `claude-standalone`: Sonnet/medium
24
+ for FAST, Opus/medium for STANDARD, Opus/high for CONTROLLED and Opus/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.
29
33
 
30
34
  Use `quality` when result quality is primary and all model tiers are available. Use
31
35
  `balanced` when leadership coordination does not need Opus by default. Use `inherit`
@@ -43,11 +47,12 @@ translate YAML conditions: Astra must preserve and map all existing safeguards.
43
47
  See [task gates](../.claude/nccgs/protocols/task-gates.md) for evidence formats.
44
48
 
45
49
  `contract.taskTiers` selects each task's implementation class and review limit.
46
- `task init --risk` defaults to STANDARD; FAST allows two recorded reviews and
50
+ Compatibility `task init --risk` defaults to STANDARD; standalone intake uses its
51
+ classifier and explicit risk evidence. FAST allows two recorded reviews and
47
52
  STANDARD/CONTROLLED allow three. Re-recording implementation does not reset the
48
53
  counter. Only an explicit external `task extend-review` decision adds rounds.
49
- An exhausted budget is not acceptance. Context and elapsed-time budgets guide
50
- planning and escalation but are not enforced runtime caps.
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.
51
56
 
52
57
  ## Canonical sources and context
53
58
 
@@ -0,0 +1,44 @@
1
+ # NCCGS 2.0 RC release status
2
+
3
+ Current candidate: **2.0.0-rc.3**. Release channel: **next**. Latest/stable is not
4
+ promoted by this candidate. Pin the exact version for reproducible evaluation.
5
+
6
+ ## What the evidence supports
7
+
8
+ | Check | Status and scope |
9
+ |---|---|
10
+ | Framework functional regression | Previous maintained source: 183 PASS, 0 FAIL, 6 Windows symlink skips across 189 tests. RC3 changes installer recognition of previously generated agents and adds a focused regression. Installer/policy suites and exact-archive upgrade qualification are rerun for this change. |
11
+ | Scoped native delivery V2 case | 24/24 criteria,137 EditMode,52 PlayMode and independent unconditional Claude Code PASS. Operator-assisted; used a frozen framework with a session-only reviewer capacity override. |
12
+ | RC package integrity | Release procedure verifies version consistency, public contents, documentation links, and install/doctor on a fresh disposable fixture using the packed archive. This is not an upgrade or provider task test. |
13
+ | Upgrade from published npm 1.3.0 | Qualified within the disposable fixture matrix; RC2 exposed a generated-agent issue corrected in RC3. See [scope and limits](UPGRADE-QUALIFICATION.md). |
14
+ | Fresh task through this exact RC | PENDING — separate qualification step. Earlier delivery evidence is not attributed to a new run. |
15
+ | Human third-party acceptance | Separate decision; not supplied by installation, tests or this release status. |
16
+ | Broad game quality/productivity | Not established. No universal quality, balance, cost or efficiency claim. |
17
+
18
+ ## Public package boundary
19
+
20
+ The package contains the CLI, framework roles/protocols/hooks, project scaffold,
21
+ public guidance, tests and attributed third-party assets. Root and installed
22
+ MEMORY.md contain portable operating principles only. Project-specific permission
23
+ statements, account/session details, provider budgets, raw game/evaluation files
24
+ and internal closeout history are retained outside the npm package.
25
+
26
+ Historical 1.3/1.4/1.5 documents are explicitly labeled as historical. Their old
27
+ version names, pending states, proposed research and compatibility commands do not
28
+ change current defaults or add new delivery gates. Current installation guidance
29
+ is in [UPGRADING.md](../UPGRADING.md) and the
30
+ [Vietnamese quick start](HUONG-DAN-MIGRATE-VA-SU-DUNG.md).
31
+
32
+ ## RC3 change scope
33
+
34
+ RC1 already standardized package metadata and removed private memory. RC2 finishes
35
+ public documentation: current standalone defaults, exact-version npm commands,
36
+ separate update/migration/rollback instructions, current role counts and visible
37
+ historical boundaries. Those RC2 documentation edits changed no runtime JavaScript, model routing, game
38
+ code, acceptance threshold or frozen evaluation. RC3 changes the installer only
39
+ and adds its regression; no game or frozen evaluation is changed. See [changelog](../CHANGELOG.md).
40
+
41
+ The major candidate communicates standalone defaults and explicit policy migration
42
+ from the older compatibility workflow. Existing task obligations are retained.
43
+ RC3 corrects one installer defect exposed by upgrade qualification. The exact-RC
44
+ Claude Code task remains pending; stable is not promoted.
@@ -0,0 +1,45 @@
1
+ # Published 1.3.0 upgrade qualification
2
+
3
+ Target: **2.0.0-rc.3**. This is installation/configuration qualification on Windows
4
+ with Node.js 24.12.0 using the published npm 1.3.0 archive and the exact RC3 archive.
5
+ It does not establish Node 18, macOS/Linux, provider execution or gameplay results.
6
+
7
+ ## Tested scope
8
+
9
+ - Fresh 1.3.0 installations with astra-claude, quality, balanced and inherit profiles;
10
+ update dry run, actual update, doctor and repeat update without content drift.
11
+ - Owner source, project policy, custom Claude instructions/agents, local settings,
12
+ explicit permissions, environment and custom hooks sharing a managed hook group.
13
+ - A task created by the real 1.3.0 CLI, with explicitly synthetic history/allowance
14
+ sentinels: task bytes and evidence are retained; an incomplete task cannot close.
15
+ - Edited and deleted managed files are preserved and require migration review.
16
+ A successful update exit does not waive a failing doctor or approve overrides.
17
+ - Malformed settings are rejected before project writes.
18
+ - Explicit standalone migration, dry runs and exact restoration of captured
19
+ configuration; later edits and altered backup hashes prevent rollback.
20
+ - Recovery from a complete pre-upgrade project backup, verified by file hashes and
21
+ the old doctor. Execution rollback alone is not a framework downgrade.
22
+
23
+ ## RC2 finding and correction
24
+
25
+ RC2 falsely treated nccgs-game-designer as a local override when upgrading clean
26
+ quality, balanced or inherit installations. The old profile had generated that
27
+ agent outside its managed-file list; RC2 started managing it but ignored the
28
+ recorded generation fingerprint. RC3 accepts unchanged recorded generated bytes
29
+ as an update baseline. Real edits and explicit override records remain protected.
30
+
31
+ Use RC3 directly from a backed-up 1.3.0 installation. If RC2 already recorded a
32
+ pending override, review/rebase it through the documented migration workflow or
33
+ recover the complete pre-upgrade backup before retrying RC3. Do not use --force
34
+ or approve all overrides merely to suppress this warning.
35
+
36
+ ## Limits that still apply
37
+
38
+ Ordinary update preserves model selection and compatibility obligations; adopting
39
+ standalone is explicit. Preserving task bytes does not make old approvals current.
40
+ The new pipeline can block an old task from resuming; finish before upgrading or
41
+ create explicitly scoped continuation work while retaining history and evidence.
42
+
43
+ Fixtures have Unity directory markers and sentinel source files. No Unity Editor
44
+ or Claude worker is launched. The native exact-RC task is a separate pending step.
45
+ Automated fixture results are not third-party human acceptance.
package/docs/WORKFLOWS.md CHANGED
@@ -1,12 +1,15 @@
1
- # NCCGS workflows
1
+ # NCCGS workflows — 2.0 RC
2
2
 
3
- The default `astra-claude` profile applies the
4
- [Astra/Claude handoff protocol](../.claude/nccgs/protocols/astra-claude.md) to every
5
- workflow below. Astra owns planning and documents; Claude implements with
6
- Sonnet/medium for FAST, Opus 5.5/medium for STANDARD, or Opus 5.5/high for CONTROLLED; Fable/high independently reviews before the report goes to Astra.
7
- Astra checks the report and the Product Owner accepts before DONE. Each dispatcher
8
- loads only `references/astra.md` or `references/legacy.md` for the selected profile.
9
- Task records and executable gates follow the [1.4 guide](NCCGS-1.4.md).
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).
10
13
 
11
14
  ## Risk tiers
12
15
 
@@ -16,28 +19,29 @@ Task records and executable gates follow the [1.4 guide](NCCGS-1.4.md).
16
19
  | STANDARD | Ordinary feature or coordinated change | Contract, context packet, one standard implementer, independent verification, closure; 3 review rounds |
17
20
  | CONTROLLED | Architecture, compatibility, dependency, migration, security, release | One deep implementation lead, impact/decision record, relevant specialists, rollback, full gates; 3 review rounds |
18
21
 
19
- `task init --risk FAST|STANDARD|CONTROLLED` records the risk and route; omission
20
- means STANDARD. FAST uses `nccgs-fast-implementer`; CONTROLLED uses
21
- `nccgs-unity-implementer` as its deep lead. Use the read-only `nccgs-task-scout`
22
- only when a specific fact is missing. All tiers retain Fable review, Astra checking,
23
- and explicit Product Owner acceptance; FAST keeps its plan/report concise.
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 Opus/high.
24
28
 
25
29
  Stop when criteria and relevant checks pass without actionable blockers. Avoid
26
30
  speculative scope expansion, duplicate reviewers, and repeated green checks.
27
31
  Rerun only for changed inputs, failures, or new evidence. Subjective questions go
28
32
  to a playable test. Exhausted review rounds require an evidence-backed stop or an
29
33
  explicit external `task extend-review`; re-recording implementation does not reset
30
- them. Context/time budgets are advisory and do not waive any gate.
34
+ them. Configured dispatch, supervised session and verification limits remain effective;
35
+ advisory planning estimates never extend them or waive a gate.
31
36
 
32
37
  ## End-to-end work
33
38
 
34
39
  ```text
35
- request -> Astra plan/documents and gate manifest
36
- -> Claude risk/domain routing and context readiness
37
- -> one-owner implementation nodes
38
- -> verification evidence
39
- -> independent Fable review for every code change
40
- -> report -> Astra check -> Product Owner acceptance
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
41
45
  -> task close after all executable gates pass
42
46
  ```
43
47
 
@@ -60,15 +64,16 @@ available when a user wants a bounded workflow or output.
60
64
 
61
65
  ## Role composition examples
62
66
 
63
- Astra plans a gameplay feature; optional game-designer consultation may support it.
67
+ The standalone coordinator routes feature design to the game designer and obtains
68
+ independent design review before dependent implementation when required.
64
69
  One gameplay programmer owns implementation; a Unity systems specialist may support
65
70
  a separate bounded concern where needed, followed by verification. A UI feature
66
71
  has one UI implementation owner; UX, accessibility, or Unity UI specialists join only
67
72
  for a concrete question or distinct deliverable, followed by independent verification.
68
73
 
69
74
  CONTROLLED network-save work can enable optional technical architect, network
70
- programmer and security engineer roles. Fable reviews FAST, STANDARD and CONTROLLED
71
- code changes. Optional roles are activated explicitly; the default loads twelve roles.
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.
72
77
 
73
78
  ## Evidence states
74
79
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nccgs",
3
- "version": "2.0.0-rc.1",
3
+ "version": "2.0.0-rc.3",
4
4
  "description": "Unity-first game-studio operating system for Claude Code",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -88,6 +88,7 @@ const overrideManifestPath = projectPath(".nccgs/framework-overrides.json");
88
88
  // even when a pre-existing file would otherwise be preserved or skipped.
89
89
  for (const relative of ["CLAUDE.md", ".claude/settings.json", ".nccgs/project.yaml", ".nccgs/execution.json", ".nccgs/backups", ".nccgs/agent-activation.json"]) projectPath(relative);
90
90
  const previousInstallState = readJsonIfPresent(installStatePath, "NCCGS install state");
91
+ const previousActivation = readJsonIfPresent(projectPath(".nccgs/agent-activation.json"), "NCCGS agent activation state");
91
92
  const executionFile = projectPath(".nccgs/execution.json");
92
93
  const previousExecution = readJsonIfPresent(executionFile, "NCCGS execution policy");
93
94
  const existingProjectPolicy = fs.existsSync(projectPath(".nccgs/project.yaml"));
@@ -308,6 +309,15 @@ function planFrameworkFile(item) {
308
309
  }
309
310
  if (equivalentFiles(item.source, item.destination)) return { ...item, action: "current", override: null };
310
311
  if (!force && previous && matchesFingerprint(item.destination, previous)) return { ...item, action: "replace", override: null };
312
+ // Older profiles could generate optional agents outside install-state.files.
313
+ // When a later package starts managing one, its recorded generated bytes are
314
+ // a valid baseline. Real local edits and explicit overrides still need review.
315
+ const generated = previousActivation?.schemaVersion === 1 && item.relative.startsWith(".claude/agents/")
316
+ ? { sha256: previousActivation.generated?.[item.relative], canonicalSha256: previousActivation.generatedCanonical?.[item.relative] }
317
+ : null;
318
+ if (!force && previousInstallState && !previous && !existingOverride && matchesFingerprint(item.destination, generated)) {
319
+ return { ...item, action: "replace", override: null };
320
+ }
311
321
  if (force) return { ...item, action: "force-replace", override: null };
312
322
  return { ...item, action: "preserve", override: buildOverride(item, existingOverride, upstream, "preserve") };
313
323
  }
@@ -459,6 +459,44 @@ test("update replaces untouched files, preserves local overrides, and doctor gat
459
459
  }
460
460
  });
461
461
 
462
+ test("update adopts unchanged generated agents newly tracked by the package, preserving real edits", () => {
463
+ const f = safetyFixture("nccgs-generated-adoption-");
464
+ try {
465
+ const installed = f.run("install", "--model-profile", "quality");
466
+ assert.equal(installed.status, 0, installed.stderr || installed.stdout);
467
+ const relative = ".claude/agents/nccgs-game-designer.md";
468
+ const file = path.join(f.project, relative);
469
+ const stateFile = path.join(f.project, ".claude/nccgs/install-state.json");
470
+ const generatedFile = path.join(f.project, ".nccgs/agent-activation.json");
471
+ const original = fs.readFileSync(file, "utf8");
472
+ // Older packages can generate a profile's optional agent without listing it
473
+ // in install-state.files. A later package can make that agent a core file.
474
+ const state = JSON.parse(fs.readFileSync(stateFile, "utf8"));
475
+ state.files = state.files.filter(item => item.relative !== relative);
476
+ fs.writeFileSync(stateFile, JSON.stringify(state));
477
+ const update = f.run("update");
478
+ assert.equal(update.status, 0, update.stderr || update.stdout);
479
+ const doctor = f.run("doctor");
480
+ assert.equal(doctor.status, 0, doctor.stderr || doctor.stdout);
481
+ assert.equal(fs.readFileSync(file, "utf8"), original);
482
+ assert.ok(JSON.parse(fs.readFileSync(stateFile)).files.some(item => item.relative === relative));
483
+
484
+ // A stored generated hash alone must never authorize replacing later edits.
485
+ const nextState = JSON.parse(fs.readFileSync(stateFile, "utf8"));
486
+ nextState.files = nextState.files.filter(item => item.relative !== relative);
487
+ fs.writeFileSync(stateFile, JSON.stringify(nextState));
488
+ assert.ok(JSON.parse(fs.readFileSync(generatedFile)).generated[relative]);
489
+ const customized = original + "\nOwner instruction: keep the custom design rule.\n";
490
+ fs.writeFileSync(file, customized);
491
+ const preserved = f.run("update");
492
+ assert.equal(preserved.status, 0, preserved.stderr || preserved.stdout);
493
+ assert.equal(fs.readFileSync(file, "utf8"), customized);
494
+ const manifest = JSON.parse(fs.readFileSync(path.join(f.project, ".nccgs/framework-overrides.json")));
495
+ assert.equal(manifest.overrides.find(item => item.path === relative).status, "pending_review");
496
+ assert.equal(f.run("doctor").status, 1);
497
+ } finally { f.dispose(); }
498
+ });
499
+
462
500
  test("doctor accepts a legacy CRLF raw hash after Git normalizes the file to LF", () => {
463
501
  const temp = fs.mkdtempSync(path.join(os.tmpdir(), "nccgs-eol-test-"));
464
502
  try {