nccgs 2.1.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.
Files changed (76) hide show
  1. package/.claude/agents/nccgs-adversarial-reviewer.md +1 -1
  2. package/.claude/agents/nccgs-engine-programmer.md +1 -1
  3. package/.claude/agents/nccgs-fast-implementer.md +1 -1
  4. package/.claude/agents/nccgs-game-designer.md +1 -1
  5. package/.claude/agents/nccgs-gameplay-programmer.md +1 -1
  6. package/.claude/agents/nccgs-qa-engineer.md +1 -1
  7. package/.claude/agents/nccgs-task-scout.md +1 -1
  8. package/.claude/agents/nccgs-ui-programmer.md +1 -1
  9. package/.claude/agents/nccgs-unity-build-specialist.md +1 -1
  10. package/.claude/agents/nccgs-unity-implementer.md +1 -1
  11. package/.claude/agents/nccgs-unity-systems-specialist.md +1 -1
  12. package/.claude/agents/nccgs-unity-ui-specialist.md +1 -1
  13. package/.claude/agents/nccgs-verification-engineer.md +1 -1
  14. package/.claude/nccgs/MEMORY.md +3 -1
  15. package/.claude/nccgs/VERSION +1 -1
  16. package/.claude/nccgs/constitution.md +187 -176
  17. package/.claude/nccgs/hooks/closure-guard.mjs +2 -0
  18. package/.claude/nccgs/hooks/unity-transport-guard.mjs +11 -0
  19. package/.claude/nccgs/pipeline.json +260 -260
  20. package/.claude/nccgs/protocols/context-packets.md +5 -0
  21. package/.claude/nccgs/protocols/model-routing.md +46 -46
  22. package/.claude/nccgs/protocols/review-handoff.md +21 -1
  23. package/.claude/nccgs/protocols/shared-workflow-context.md +33 -0
  24. package/.claude/nccgs/protocols/unity-boundary.md +20 -0
  25. package/.claude/nccgs/routing.generated.md +4 -4
  26. package/.claude/nccgs/settings.fragment.json +84 -24
  27. package/.claude/nccgs/studio.json +53 -53
  28. package/.claude/nccgs/tools/autonomy.mjs +13 -0
  29. package/.claude/nccgs/tools/command-tokens.mjs +22 -0
  30. package/.claude/nccgs/tools/hook-transport.mjs +34 -0
  31. package/.claude/nccgs/tools/native-completion.mjs +10 -1
  32. package/.claude/nccgs/tools/returned-handoff.mjs +11 -2
  33. package/.claude/nccgs/tools/shared-context-guard.mjs +60 -0
  34. package/.claude/nccgs/tools/shared-context.mjs +25 -0
  35. package/.claude/nccgs/tools/tool-guard.mjs +120 -131
  36. package/.claude/nccgs/tools/unity-transport.mjs +170 -0
  37. package/.claude/nccgs/workflow-catalog.json +4 -4
  38. package/CHANGELOG.md +235 -200
  39. package/CLAUDE.md +10 -8
  40. package/MEMORY.md +109 -60
  41. package/README.md +206 -191
  42. package/UPGRADING.md +130 -118
  43. package/VERSION +1 -1
  44. package/docs/ARCHITECTURE.md +131 -131
  45. package/docs/ASSET-PRODUCTION-GRAPHIFY-PLAN.md +230 -0
  46. package/docs/HUONG-DAN-MIGRATE-VA-SU-DUNG.md +117 -116
  47. package/docs/NCCGS-1.5.md +237 -237
  48. package/docs/PROJECT-POLICY.md +94 -94
  49. package/docs/RELEASE-STATUS.md +17 -9
  50. package/docs/UNINSTALL.md +3 -3
  51. package/docs/WFK17-HOOK-REPAIR.md +71 -0
  52. package/docs/WORKFLOWS.md +85 -85
  53. package/package.json +1 -1
  54. package/scaffold/.nccgs/project.yaml +109 -108
  55. package/scripts/benchmark-v15.mjs +173 -173
  56. package/scripts/doctor.mjs +261 -261
  57. package/scripts/install.mjs +530 -529
  58. package/scripts/run.mjs +5 -4
  59. package/scripts/supervise.mjs +4 -0
  60. package/scripts/uninstall.mjs +292 -292
  61. package/scripts/validate.mjs +285 -280
  62. package/tests/autonomy.test.mjs +126 -113
  63. package/tests/design-readiness.test.mjs +199 -199
  64. package/tests/fixtures/compiler-shutdown.cs +67 -64
  65. package/tests/fixtures/native-provider.mjs +61 -0
  66. package/tests/framework.test.mjs +740 -740
  67. package/tests/hook-repair.test.mjs +106 -0
  68. package/tests/lifecycle-v15.test.mjs +346 -300
  69. package/tests/native-completion-notices.test.mjs +181 -0
  70. package/tests/phase1.test.mjs +427 -416
  71. package/tests/phase2.test.mjs +250 -250
  72. package/tests/policy-v15.test.mjs +234 -234
  73. package/tests/returned-handoff-notices.test.mjs +170 -0
  74. package/tests/runtime-v15.test.mjs +1197 -1191
  75. package/tests/task-slices.test.mjs +285 -285
  76. package/tests/unity-transport.test.mjs +348 -0
@@ -0,0 +1,33 @@
1
+ # Optional shared Graphify context consumer
2
+
3
+ Use this protocol only when the project has adopted the external Agent Project
4
+ Workflow 1.7 tooling. Preserve NCCGS's existing internal execution and task gates.
5
+ The approved outer assignment and actual source documents remain authoritative.
6
+
7
+ Resolve the external implementation root from the accepted project workflow binding.
8
+ The default common configuration is `docs/workflow/workflow.config.json`; it is owned
9
+ by the shared workflow, not an NCCGS policy/freshness copy. Do not create it during
10
+ ordinary intake. A missing configuration skips context operations without installing
11
+ or bootstrapping Graphify.
12
+
13
+ At task entry, after required direct instruction/source reads, run:
14
+
15
+ ```text
16
+ node .claude/nccgs/tools/shared-context.mjs --project PROJECT_ROOT --workflow-root EXTERNAL_IMPLEMENTATION_ROOT --action status
17
+ ```
18
+
19
+ Use `--action query --text TERM` only for suitable verified coverage. A held review
20
+ adds the actual `--hold HOLD_ID --secret HOLD_CAPABILITY`; queries resolve the retained
21
+ generation and pinned source. Preserve the hold capability as local operational state.
22
+ At a settled write boundary use `--action refresh` only when accepted scope covers it.
23
+ This consumer cannot perform setup, update or initial rebuild. Report unavailable,
24
+ partial/stale or recovery-required coverage and continue with original sources.
25
+
26
+ The external common adapter owns GC-01 through GC-04, one current commit and updater.
27
+ Do not add a private graph, native hook, model change, independent source ignore rule,
28
+ or copied freshness file. Link the common generation/result in the existing context
29
+ packet/handoff. Graph context does not provide provider execution evidence or external
30
+ acceptance; NCCGS internal DONE may return a candidate awaiting outer review.
31
+
32
+ This source bridge has fixture coverage. It does not certify a Claude Code/native
33
+ or Unity runtime session; adoption and host qualification remain explicit operations.
@@ -1,5 +1,25 @@
1
1
  # Unity responsibility boundary
2
2
 
3
+ ## Unity transport: direct CLI/Pipeline only
4
+
5
+ Use direct `unity run`, `unity test`, `unity build`, `unity command`, and the
6
+ approved `com.unity.pipeline` integration. Unity MCP is disabled, including
7
+ Coplay, AnkleBreaker, discovery/read-only calls, and the official CLI's optional
8
+ `unity mcp` / `unity mcp configure` mode. Never reinstall or configure a Unity MCP
9
+ server as a fallback when CLI, licensing or Editor connectivity fails.
10
+
11
+ `nccgs run` uses strict MCP isolation with an empty server list by default.
12
+ An external operator may explicitly pass a validated non-Unity MCP configuration;
13
+ this never permits Unity MCP or changes global configurations. Retained supervised
14
+ runs without the required isolation are refused rather than rewritten or refunded.
15
+
16
+ This policy takes precedence over generic vendored skill guidance, including the
17
+ new-project skill's optional MCP route. Upstream skills and their hash manifest
18
+ remain unmodified reference material. Read them for direct CLI/Pipeline mechanics.
19
+ Transport hooks cover ordinary tool names and shell invocations; they are not an
20
+ arbitrary-code or hostile-client sandbox. Existing native permissions, ownership,
21
+ independent review and actual execution evidence remain required.
22
+
3
23
  Studio roles own player intent, architecture, subsystem boundaries, project truth,
4
24
  test strategy, risk, acceptance, and closure. Official Unity Skills own current Unity
5
25
  CLI/Pipeline syntax and Editor, scene, prefab, asset, package, build, test, runtime,
@@ -5,10 +5,10 @@ NCCGS runs in Claude Code. New installations use standalone execution; model ali
5
5
  | Stage | Owner/model | Effort | Maximum review rounds |
6
6
  |---|---|---|---|
7
7
  | Intake, plan and documents | Claude Code | Routed by task | — |
8
- | FAST implementation | sonnet | medium | 2 |
9
- | STANDARD implementation | opus | medium | 3 |
10
- | CONTROLLED implementation | opus | high | 3 |
11
- | Independent review | opus | high | Shared task budget |
8
+ | FAST implementation | sonnet | high | 2 |
9
+ | STANDARD implementation | opus | high | 3 |
10
+ | CONTROLLED implementation | opus | xhigh | 3 |
11
+ | Independent review | fable | high | Shared task budget |
12
12
  | External review | Off by default; advisory or required when configured | External evidence | — |
13
13
  | Acceptance | Contract-defined Product Owner decision | Explicit when required | — |
14
14
 
@@ -17,20 +17,41 @@
17
17
  "hooks": [
18
18
  {
19
19
  "type": "command",
20
- "command": "node \"${CLAUDE_PROJECT_DIR}/.claude/nccgs/hooks/session-start.mjs\"",
21
- "timeout": 10
20
+ "command": "node",
21
+ "timeout": 10,
22
+ "args": [
23
+ "${CLAUDE_PROJECT_DIR}/.claude/nccgs/hooks/session-start.mjs"
24
+ ]
22
25
  }
23
26
  ]
24
27
  }
25
28
  ],
26
29
  "PreToolUse": [
30
+ {
31
+ "matcher": "*",
32
+ "hooks": [
33
+ {
34
+ "type": "command",
35
+ "command": "node",
36
+ "timeout": 10,
37
+ "args": [
38
+ "${CLAUDE_PROJECT_DIR}/.claude/nccgs/hooks/unity-transport-guard.mjs"
39
+ ],
40
+ "onFailure": "block"
41
+ }
42
+ ]
43
+ },
27
44
  {
28
45
  "matcher": "Bash|PowerShell",
29
46
  "hooks": [
30
47
  {
31
48
  "type": "command",
32
- "command": "node \"${CLAUDE_PROJECT_DIR}/.claude/nccgs/hooks/protect-git.mjs\"",
33
- "timeout": 10
49
+ "command": "node",
50
+ "timeout": 10,
51
+ "args": [
52
+ "${CLAUDE_PROJECT_DIR}/.claude/nccgs/hooks/protect-git.mjs"
53
+ ],
54
+ "onFailure": "block"
34
55
  }
35
56
  ]
36
57
  },
@@ -39,8 +60,12 @@
39
60
  "hooks": [
40
61
  {
41
62
  "type": "command",
42
- "command": "node \"${CLAUDE_PROJECT_DIR}/.claude/nccgs/hooks/protect-write.mjs\"",
43
- "timeout": 10
63
+ "command": "node",
64
+ "timeout": 10,
65
+ "args": [
66
+ "${CLAUDE_PROJECT_DIR}/.claude/nccgs/hooks/protect-write.mjs"
67
+ ],
68
+ "onFailure": "block"
44
69
  }
45
70
  ]
46
71
  },
@@ -49,8 +74,13 @@
49
74
  "hooks": [
50
75
  {
51
76
  "type": "command",
52
- "command": "node \"${CLAUDE_PROJECT_DIR}/.claude/nccgs/hooks/closure-guard.mjs\" pre",
53
- "timeout": 30
77
+ "command": "node",
78
+ "timeout": 30,
79
+ "args": [
80
+ "${CLAUDE_PROJECT_DIR}/.claude/nccgs/hooks/closure-guard.mjs",
81
+ "pre"
82
+ ],
83
+ "onFailure": "block"
54
84
  }
55
85
  ]
56
86
  }
@@ -61,8 +91,11 @@
61
91
  "hooks": [
62
92
  {
63
93
  "type": "command",
64
- "command": "node \"${CLAUDE_PROJECT_DIR}/.claude/nccgs/hooks/pre-compact.mjs\"",
65
- "timeout": 10
94
+ "command": "node",
95
+ "timeout": 10,
96
+ "args": [
97
+ "${CLAUDE_PROJECT_DIR}/.claude/nccgs/hooks/pre-compact.mjs"
98
+ ]
66
99
  }
67
100
  ]
68
101
  }
@@ -73,8 +106,11 @@
73
106
  "hooks": [
74
107
  {
75
108
  "type": "command",
76
- "command": "node \"${CLAUDE_PROJECT_DIR}/.claude/nccgs/hooks/post-compact.mjs\"",
77
- "timeout": 10
109
+ "command": "node",
110
+ "timeout": 10,
111
+ "args": [
112
+ "${CLAUDE_PROJECT_DIR}/.claude/nccgs/hooks/post-compact.mjs"
113
+ ]
78
114
  }
79
115
  ]
80
116
  }
@@ -85,8 +121,13 @@
85
121
  "hooks": [
86
122
  {
87
123
  "type": "command",
88
- "command": "node \"${CLAUDE_PROJECT_DIR}/.claude/nccgs/hooks/agent-audit.mjs\" start",
89
- "timeout": 5
124
+ "command": "node",
125
+ "timeout": 5,
126
+ "args": [
127
+ "${CLAUDE_PROJECT_DIR}/.claude/nccgs/hooks/agent-audit.mjs",
128
+ "start"
129
+ ],
130
+ "onFailure": "block"
90
131
  }
91
132
  ]
92
133
  }
@@ -97,8 +138,13 @@
97
138
  "hooks": [
98
139
  {
99
140
  "type": "command",
100
- "command": "node \"${CLAUDE_PROJECT_DIR}/.claude/nccgs/hooks/agent-audit.mjs\" stop",
101
- "timeout": 5
141
+ "command": "node",
142
+ "timeout": 5,
143
+ "args": [
144
+ "${CLAUDE_PROJECT_DIR}/.claude/nccgs/hooks/agent-audit.mjs",
145
+ "stop"
146
+ ],
147
+ "onFailure": "block"
102
148
  }
103
149
  ]
104
150
  }
@@ -109,8 +155,11 @@
109
155
  "hooks": [
110
156
  {
111
157
  "type": "command",
112
- "command": "node \"${CLAUDE_PROJECT_DIR}/.claude/nccgs/hooks/session-stop.mjs\"",
113
- "timeout": 10
158
+ "command": "node",
159
+ "timeout": 10,
160
+ "args": [
161
+ "${CLAUDE_PROJECT_DIR}/.claude/nccgs/hooks/session-stop.mjs"
162
+ ]
114
163
  }
115
164
  ]
116
165
  },
@@ -119,8 +168,12 @@
119
168
  "hooks": [
120
169
  {
121
170
  "type": "command",
122
- "command": "node \"${CLAUDE_PROJECT_DIR}/.claude/nccgs/hooks/closure-guard.mjs\" stop",
123
- "timeout": 30
171
+ "command": "node",
172
+ "timeout": 30,
173
+ "args": [
174
+ "${CLAUDE_PROJECT_DIR}/.claude/nccgs/hooks/closure-guard.mjs",
175
+ "stop"
176
+ ]
124
177
  }
125
178
  ]
126
179
  }
@@ -131,8 +184,12 @@
131
184
  "hooks": [
132
185
  {
133
186
  "type": "command",
134
- "command": "node \"${CLAUDE_PROJECT_DIR}/.claude/nccgs/hooks/runtime-observation.mjs\" failure",
135
- "timeout": 30
187
+ "command": "node",
188
+ "timeout": 30,
189
+ "args": [
190
+ "${CLAUDE_PROJECT_DIR}/.claude/nccgs/hooks/runtime-observation.mjs",
191
+ "failure"
192
+ ]
136
193
  }
137
194
  ]
138
195
  }
@@ -143,8 +200,11 @@
143
200
  "hooks": [
144
201
  {
145
202
  "type": "command",
146
- "command": "node \"${CLAUDE_PROJECT_DIR}/.claude/nccgs/hooks/runtime-observation.mjs\"",
147
- "timeout": 30
203
+ "command": "node",
204
+ "timeout": 30,
205
+ "args": [
206
+ "${CLAUDE_PROJECT_DIR}/.claude/nccgs/hooks/runtime-observation.mjs"
207
+ ]
148
208
  }
149
209
  ]
150
210
  }