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.
- 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 +3 -1
- 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/hook-transport.mjs +34 -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 -200
- package/CLAUDE.md +10 -8
- package/MEMORY.md +109 -60
- package/README.md +206 -191
- package/UPGRADING.md +130 -118
- 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 -116
- package/docs/NCCGS-1.5.md +237 -237
- package/docs/PROJECT-POLICY.md +94 -94
- package/docs/RELEASE-STATUS.md +17 -9
- package/docs/UNINSTALL.md +3 -3
- 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/doctor.mjs +261 -261
- package/scripts/install.mjs +530 -529
- package/scripts/run.mjs +5 -4
- package/scripts/supervise.mjs +4 -0
- package/scripts/uninstall.mjs +292 -292
- package/scripts/validate.mjs +285 -280
- 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/unity-transport.test.mjs +348 -0
|
@@ -1,260 +1,260 @@
|
|
|
1
|
-
{
|
|
2
|
-
"schemaVersion": 1,
|
|
3
|
-
"defaultProfile": "claude-standalone",
|
|
4
|
-
"profiles": {
|
|
5
|
-
"astra-claude": {
|
|
6
|
-
"models": {
|
|
7
|
-
"lightweight": {
|
|
8
|
-
"model": "sonnet",
|
|
9
|
-
"effort": "medium"
|
|
10
|
-
},
|
|
11
|
-
"standard": {
|
|
12
|
-
"model": "claude-opus-5-5",
|
|
13
|
-
"effort": "medium"
|
|
14
|
-
},
|
|
15
|
-
"deep": {
|
|
16
|
-
"model": "claude-opus-5-5",
|
|
17
|
-
"effort": "high"
|
|
18
|
-
},
|
|
19
|
-
"leadership": {
|
|
20
|
-
"model": "claude-opus-5-5",
|
|
21
|
-
"effort": "high"
|
|
22
|
-
},
|
|
23
|
-
"review": {
|
|
24
|
-
"model": "fable",
|
|
25
|
-
"effort": "high"
|
|
26
|
-
}
|
|
27
|
-
},
|
|
28
|
-
"session": {
|
|
29
|
-
"class": "standard"
|
|
30
|
-
},
|
|
31
|
-
"activeAgents": [
|
|
32
|
-
"nccgs-fast-implementer",
|
|
33
|
-
"nccgs-task-scout",
|
|
34
|
-
"nccgs-game-designer",
|
|
35
|
-
"nccgs-gameplay-programmer",
|
|
36
|
-
"nccgs-engine-programmer",
|
|
37
|
-
"nccgs-ui-programmer",
|
|
38
|
-
"nccgs-unity-implementer",
|
|
39
|
-
"nccgs-unity-systems-specialist",
|
|
40
|
-
"nccgs-unity-ui-specialist",
|
|
41
|
-
"nccgs-unity-build-specialist",
|
|
42
|
-
"nccgs-qa-engineer",
|
|
43
|
-
"nccgs-verification-engineer",
|
|
44
|
-
"nccgs-adversarial-reviewer"
|
|
45
|
-
]
|
|
46
|
-
},
|
|
47
|
-
"quality": {
|
|
48
|
-
"models": {
|
|
49
|
-
"lightweight": {
|
|
50
|
-
"model": "haiku",
|
|
51
|
-
"effort": null
|
|
52
|
-
},
|
|
53
|
-
"standard": {
|
|
54
|
-
"model": "sonnet",
|
|
55
|
-
"effort": null
|
|
56
|
-
},
|
|
57
|
-
"deep": {
|
|
58
|
-
"model": "opus",
|
|
59
|
-
"effort": null
|
|
60
|
-
},
|
|
61
|
-
"leadership": {
|
|
62
|
-
"model": "opus",
|
|
63
|
-
"effort": null
|
|
64
|
-
},
|
|
65
|
-
"review": {
|
|
66
|
-
"model": "opus",
|
|
67
|
-
"effort": null
|
|
68
|
-
}
|
|
69
|
-
},
|
|
70
|
-
"session": null,
|
|
71
|
-
"activeAgents": "all"
|
|
72
|
-
},
|
|
73
|
-
"balanced": {
|
|
74
|
-
"models": {
|
|
75
|
-
"lightweight": {
|
|
76
|
-
"model": "haiku",
|
|
77
|
-
"effort": null
|
|
78
|
-
},
|
|
79
|
-
"standard": {
|
|
80
|
-
"model": "sonnet",
|
|
81
|
-
"effort": null
|
|
82
|
-
},
|
|
83
|
-
"deep": {
|
|
84
|
-
"model": "opus",
|
|
85
|
-
"effort": null
|
|
86
|
-
},
|
|
87
|
-
"leadership": {
|
|
88
|
-
"model": "sonnet",
|
|
89
|
-
"effort": null
|
|
90
|
-
},
|
|
91
|
-
"review": {
|
|
92
|
-
"model": "opus",
|
|
93
|
-
"effort": null
|
|
94
|
-
}
|
|
95
|
-
},
|
|
96
|
-
"session": null,
|
|
97
|
-
"activeAgents": "all"
|
|
98
|
-
},
|
|
99
|
-
"inherit": {
|
|
100
|
-
"models": {
|
|
101
|
-
"lightweight": {
|
|
102
|
-
"model": null,
|
|
103
|
-
"effort": null
|
|
104
|
-
},
|
|
105
|
-
"standard": {
|
|
106
|
-
"model": null,
|
|
107
|
-
"effort": null
|
|
108
|
-
},
|
|
109
|
-
"deep": {
|
|
110
|
-
"model": null,
|
|
111
|
-
"effort": null
|
|
112
|
-
},
|
|
113
|
-
"leadership": {
|
|
114
|
-
"model": null,
|
|
115
|
-
"effort": null
|
|
116
|
-
},
|
|
117
|
-
"review": {
|
|
118
|
-
"model": null,
|
|
119
|
-
"effort": null
|
|
120
|
-
}
|
|
121
|
-
},
|
|
122
|
-
"session": null,
|
|
123
|
-
"activeAgents": "all"
|
|
124
|
-
},
|
|
125
|
-
"claude-standalone": {
|
|
126
|
-
"models": {
|
|
127
|
-
"lightweight": {
|
|
128
|
-
"effort": "
|
|
129
|
-
"model": "sonnet"
|
|
130
|
-
},
|
|
131
|
-
"standard": {
|
|
132
|
-
"effort": "
|
|
133
|
-
"model": "opus"
|
|
134
|
-
},
|
|
135
|
-
"deep": {
|
|
136
|
-
"effort": "
|
|
137
|
-
"model": "opus"
|
|
138
|
-
},
|
|
139
|
-
"leadership": {
|
|
140
|
-
"effort": "
|
|
141
|
-
"model": "opus"
|
|
142
|
-
},
|
|
143
|
-
"review": {
|
|
144
|
-
"effort": "high",
|
|
145
|
-
"model": "
|
|
146
|
-
}
|
|
147
|
-
},
|
|
148
|
-
"session": {
|
|
149
|
-
"class": "standard"
|
|
150
|
-
},
|
|
151
|
-
"activeAgents": [
|
|
152
|
-
"nccgs-fast-implementer",
|
|
153
|
-
"nccgs-task-scout",
|
|
154
|
-
"nccgs-game-designer",
|
|
155
|
-
"nccgs-gameplay-programmer",
|
|
156
|
-
"nccgs-engine-programmer",
|
|
157
|
-
"nccgs-ui-programmer",
|
|
158
|
-
"nccgs-unity-implementer",
|
|
159
|
-
"nccgs-unity-systems-specialist",
|
|
160
|
-
"nccgs-unity-ui-specialist",
|
|
161
|
-
"nccgs-unity-build-specialist",
|
|
162
|
-
"nccgs-qa-engineer",
|
|
163
|
-
"nccgs-verification-engineer",
|
|
164
|
-
"nccgs-adversarial-reviewer"
|
|
165
|
-
]
|
|
166
|
-
}
|
|
167
|
-
},
|
|
168
|
-
"contract": {
|
|
169
|
-
"planningOwner": "Astra",
|
|
170
|
-
"documentsOwner": "Astra",
|
|
171
|
-
"reviewAgent": "nccgs-adversarial-reviewer",
|
|
172
|
-
"sequence": [
|
|
173
|
-
"astra-plan",
|
|
174
|
-
"risk-routed-implementation",
|
|
175
|
-
"fable-review",
|
|
176
|
-
"report-to-astra",
|
|
177
|
-
"astra-check",
|
|
178
|
-
"product-owner-acceptance"
|
|
179
|
-
],
|
|
180
|
-
"requiredForAllCodeChanges": true,
|
|
181
|
-
"allowInheritFallback": false,
|
|
182
|
-
"taskTiers": {
|
|
183
|
-
"FAST": {
|
|
184
|
-
"implementationClass": "lightweight",
|
|
185
|
-
"maxReviewRounds": 2
|
|
186
|
-
},
|
|
187
|
-
"STANDARD": {
|
|
188
|
-
"implementationClass": "standard",
|
|
189
|
-
"maxReviewRounds": 3
|
|
190
|
-
},
|
|
191
|
-
"CONTROLLED": {
|
|
192
|
-
"implementationClass": "deep",
|
|
193
|
-
"maxReviewRounds": 3
|
|
194
|
-
}
|
|
195
|
-
},
|
|
196
|
-
"astraWorkflows": [
|
|
197
|
-
"design",
|
|
198
|
-
"context-pack",
|
|
199
|
-
"plan-feature",
|
|
200
|
-
"architecture-decision",
|
|
201
|
-
"closure",
|
|
202
|
-
"qa-plan",
|
|
203
|
-
"project-stage",
|
|
204
|
-
"sprint-plan",
|
|
205
|
-
"milestone-review",
|
|
206
|
-
"retrospective"
|
|
207
|
-
],
|
|
208
|
-
"reviewWorkflows": [
|
|
209
|
-
"review",
|
|
210
|
-
"nccgs-code-review"
|
|
211
|
-
]
|
|
212
|
-
},
|
|
213
|
-
"snapshotExcludes": [
|
|
214
|
-
".git",
|
|
215
|
-
".nccgs",
|
|
216
|
-
"Library",
|
|
217
|
-
"Temp",
|
|
218
|
-
"Logs",
|
|
219
|
-
"obj",
|
|
220
|
-
"node_modules",
|
|
221
|
-
".vs"
|
|
222
|
-
],
|
|
223
|
-
"coreAgents": [
|
|
224
|
-
"nccgs-fast-implementer",
|
|
225
|
-
"nccgs-task-scout",
|
|
226
|
-
"nccgs-game-designer",
|
|
227
|
-
"nccgs-gameplay-programmer",
|
|
228
|
-
"nccgs-engine-programmer",
|
|
229
|
-
"nccgs-ui-programmer",
|
|
230
|
-
"nccgs-unity-implementer",
|
|
231
|
-
"nccgs-unity-systems-specialist",
|
|
232
|
-
"nccgs-unity-ui-specialist",
|
|
233
|
-
"nccgs-unity-build-specialist",
|
|
234
|
-
"nccgs-qa-engineer",
|
|
235
|
-
"nccgs-verification-engineer",
|
|
236
|
-
"nccgs-adversarial-reviewer"
|
|
237
|
-
],
|
|
238
|
-
"executionPolicies": {
|
|
239
|
-
"standalone": {
|
|
240
|
-
"reviewAgent": "nccgs-adversarial-reviewer",
|
|
241
|
-
"documentsOwner": "Claude Code",
|
|
242
|
-
"runtime": "claude-code",
|
|
243
|
-
"sequence": [
|
|
244
|
-
"intake",
|
|
245
|
-
"plan",
|
|
246
|
-
"implementation",
|
|
247
|
-
"verification",
|
|
248
|
-
"independent-review",
|
|
249
|
-
"report",
|
|
250
|
-
"optional-external-review",
|
|
251
|
-
"contract-acceptance"
|
|
252
|
-
],
|
|
253
|
-
"planningOwner": "Claude Code"
|
|
254
|
-
},
|
|
255
|
-
"compatibility": {
|
|
256
|
-
"contract": "astra-claude",
|
|
257
|
-
"runtime": "claude-code"
|
|
258
|
-
}
|
|
259
|
-
}
|
|
260
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 1,
|
|
3
|
+
"defaultProfile": "claude-standalone",
|
|
4
|
+
"profiles": {
|
|
5
|
+
"astra-claude": {
|
|
6
|
+
"models": {
|
|
7
|
+
"lightweight": {
|
|
8
|
+
"model": "sonnet",
|
|
9
|
+
"effort": "medium"
|
|
10
|
+
},
|
|
11
|
+
"standard": {
|
|
12
|
+
"model": "claude-opus-5-5",
|
|
13
|
+
"effort": "medium"
|
|
14
|
+
},
|
|
15
|
+
"deep": {
|
|
16
|
+
"model": "claude-opus-5-5",
|
|
17
|
+
"effort": "high"
|
|
18
|
+
},
|
|
19
|
+
"leadership": {
|
|
20
|
+
"model": "claude-opus-5-5",
|
|
21
|
+
"effort": "high"
|
|
22
|
+
},
|
|
23
|
+
"review": {
|
|
24
|
+
"model": "fable",
|
|
25
|
+
"effort": "high"
|
|
26
|
+
}
|
|
27
|
+
},
|
|
28
|
+
"session": {
|
|
29
|
+
"class": "standard"
|
|
30
|
+
},
|
|
31
|
+
"activeAgents": [
|
|
32
|
+
"nccgs-fast-implementer",
|
|
33
|
+
"nccgs-task-scout",
|
|
34
|
+
"nccgs-game-designer",
|
|
35
|
+
"nccgs-gameplay-programmer",
|
|
36
|
+
"nccgs-engine-programmer",
|
|
37
|
+
"nccgs-ui-programmer",
|
|
38
|
+
"nccgs-unity-implementer",
|
|
39
|
+
"nccgs-unity-systems-specialist",
|
|
40
|
+
"nccgs-unity-ui-specialist",
|
|
41
|
+
"nccgs-unity-build-specialist",
|
|
42
|
+
"nccgs-qa-engineer",
|
|
43
|
+
"nccgs-verification-engineer",
|
|
44
|
+
"nccgs-adversarial-reviewer"
|
|
45
|
+
]
|
|
46
|
+
},
|
|
47
|
+
"quality": {
|
|
48
|
+
"models": {
|
|
49
|
+
"lightweight": {
|
|
50
|
+
"model": "haiku",
|
|
51
|
+
"effort": null
|
|
52
|
+
},
|
|
53
|
+
"standard": {
|
|
54
|
+
"model": "sonnet",
|
|
55
|
+
"effort": null
|
|
56
|
+
},
|
|
57
|
+
"deep": {
|
|
58
|
+
"model": "opus",
|
|
59
|
+
"effort": null
|
|
60
|
+
},
|
|
61
|
+
"leadership": {
|
|
62
|
+
"model": "opus",
|
|
63
|
+
"effort": null
|
|
64
|
+
},
|
|
65
|
+
"review": {
|
|
66
|
+
"model": "opus",
|
|
67
|
+
"effort": null
|
|
68
|
+
}
|
|
69
|
+
},
|
|
70
|
+
"session": null,
|
|
71
|
+
"activeAgents": "all"
|
|
72
|
+
},
|
|
73
|
+
"balanced": {
|
|
74
|
+
"models": {
|
|
75
|
+
"lightweight": {
|
|
76
|
+
"model": "haiku",
|
|
77
|
+
"effort": null
|
|
78
|
+
},
|
|
79
|
+
"standard": {
|
|
80
|
+
"model": "sonnet",
|
|
81
|
+
"effort": null
|
|
82
|
+
},
|
|
83
|
+
"deep": {
|
|
84
|
+
"model": "opus",
|
|
85
|
+
"effort": null
|
|
86
|
+
},
|
|
87
|
+
"leadership": {
|
|
88
|
+
"model": "sonnet",
|
|
89
|
+
"effort": null
|
|
90
|
+
},
|
|
91
|
+
"review": {
|
|
92
|
+
"model": "opus",
|
|
93
|
+
"effort": null
|
|
94
|
+
}
|
|
95
|
+
},
|
|
96
|
+
"session": null,
|
|
97
|
+
"activeAgents": "all"
|
|
98
|
+
},
|
|
99
|
+
"inherit": {
|
|
100
|
+
"models": {
|
|
101
|
+
"lightweight": {
|
|
102
|
+
"model": null,
|
|
103
|
+
"effort": null
|
|
104
|
+
},
|
|
105
|
+
"standard": {
|
|
106
|
+
"model": null,
|
|
107
|
+
"effort": null
|
|
108
|
+
},
|
|
109
|
+
"deep": {
|
|
110
|
+
"model": null,
|
|
111
|
+
"effort": null
|
|
112
|
+
},
|
|
113
|
+
"leadership": {
|
|
114
|
+
"model": null,
|
|
115
|
+
"effort": null
|
|
116
|
+
},
|
|
117
|
+
"review": {
|
|
118
|
+
"model": null,
|
|
119
|
+
"effort": null
|
|
120
|
+
}
|
|
121
|
+
},
|
|
122
|
+
"session": null,
|
|
123
|
+
"activeAgents": "all"
|
|
124
|
+
},
|
|
125
|
+
"claude-standalone": {
|
|
126
|
+
"models": {
|
|
127
|
+
"lightweight": {
|
|
128
|
+
"effort": "high",
|
|
129
|
+
"model": "sonnet"
|
|
130
|
+
},
|
|
131
|
+
"standard": {
|
|
132
|
+
"effort": "high",
|
|
133
|
+
"model": "opus"
|
|
134
|
+
},
|
|
135
|
+
"deep": {
|
|
136
|
+
"effort": "xhigh",
|
|
137
|
+
"model": "opus"
|
|
138
|
+
},
|
|
139
|
+
"leadership": {
|
|
140
|
+
"effort": "xhigh",
|
|
141
|
+
"model": "opus"
|
|
142
|
+
},
|
|
143
|
+
"review": {
|
|
144
|
+
"effort": "high",
|
|
145
|
+
"model": "fable"
|
|
146
|
+
}
|
|
147
|
+
},
|
|
148
|
+
"session": {
|
|
149
|
+
"class": "standard"
|
|
150
|
+
},
|
|
151
|
+
"activeAgents": [
|
|
152
|
+
"nccgs-fast-implementer",
|
|
153
|
+
"nccgs-task-scout",
|
|
154
|
+
"nccgs-game-designer",
|
|
155
|
+
"nccgs-gameplay-programmer",
|
|
156
|
+
"nccgs-engine-programmer",
|
|
157
|
+
"nccgs-ui-programmer",
|
|
158
|
+
"nccgs-unity-implementer",
|
|
159
|
+
"nccgs-unity-systems-specialist",
|
|
160
|
+
"nccgs-unity-ui-specialist",
|
|
161
|
+
"nccgs-unity-build-specialist",
|
|
162
|
+
"nccgs-qa-engineer",
|
|
163
|
+
"nccgs-verification-engineer",
|
|
164
|
+
"nccgs-adversarial-reviewer"
|
|
165
|
+
]
|
|
166
|
+
}
|
|
167
|
+
},
|
|
168
|
+
"contract": {
|
|
169
|
+
"planningOwner": "Astra",
|
|
170
|
+
"documentsOwner": "Astra",
|
|
171
|
+
"reviewAgent": "nccgs-adversarial-reviewer",
|
|
172
|
+
"sequence": [
|
|
173
|
+
"astra-plan",
|
|
174
|
+
"risk-routed-implementation",
|
|
175
|
+
"fable-review",
|
|
176
|
+
"report-to-astra",
|
|
177
|
+
"astra-check",
|
|
178
|
+
"product-owner-acceptance"
|
|
179
|
+
],
|
|
180
|
+
"requiredForAllCodeChanges": true,
|
|
181
|
+
"allowInheritFallback": false,
|
|
182
|
+
"taskTiers": {
|
|
183
|
+
"FAST": {
|
|
184
|
+
"implementationClass": "lightweight",
|
|
185
|
+
"maxReviewRounds": 2
|
|
186
|
+
},
|
|
187
|
+
"STANDARD": {
|
|
188
|
+
"implementationClass": "standard",
|
|
189
|
+
"maxReviewRounds": 3
|
|
190
|
+
},
|
|
191
|
+
"CONTROLLED": {
|
|
192
|
+
"implementationClass": "deep",
|
|
193
|
+
"maxReviewRounds": 3
|
|
194
|
+
}
|
|
195
|
+
},
|
|
196
|
+
"astraWorkflows": [
|
|
197
|
+
"design",
|
|
198
|
+
"context-pack",
|
|
199
|
+
"plan-feature",
|
|
200
|
+
"architecture-decision",
|
|
201
|
+
"closure",
|
|
202
|
+
"qa-plan",
|
|
203
|
+
"project-stage",
|
|
204
|
+
"sprint-plan",
|
|
205
|
+
"milestone-review",
|
|
206
|
+
"retrospective"
|
|
207
|
+
],
|
|
208
|
+
"reviewWorkflows": [
|
|
209
|
+
"review",
|
|
210
|
+
"nccgs-code-review"
|
|
211
|
+
]
|
|
212
|
+
},
|
|
213
|
+
"snapshotExcludes": [
|
|
214
|
+
".git",
|
|
215
|
+
".nccgs",
|
|
216
|
+
"Library",
|
|
217
|
+
"Temp",
|
|
218
|
+
"Logs",
|
|
219
|
+
"obj",
|
|
220
|
+
"node_modules",
|
|
221
|
+
".vs"
|
|
222
|
+
],
|
|
223
|
+
"coreAgents": [
|
|
224
|
+
"nccgs-fast-implementer",
|
|
225
|
+
"nccgs-task-scout",
|
|
226
|
+
"nccgs-game-designer",
|
|
227
|
+
"nccgs-gameplay-programmer",
|
|
228
|
+
"nccgs-engine-programmer",
|
|
229
|
+
"nccgs-ui-programmer",
|
|
230
|
+
"nccgs-unity-implementer",
|
|
231
|
+
"nccgs-unity-systems-specialist",
|
|
232
|
+
"nccgs-unity-ui-specialist",
|
|
233
|
+
"nccgs-unity-build-specialist",
|
|
234
|
+
"nccgs-qa-engineer",
|
|
235
|
+
"nccgs-verification-engineer",
|
|
236
|
+
"nccgs-adversarial-reviewer"
|
|
237
|
+
],
|
|
238
|
+
"executionPolicies": {
|
|
239
|
+
"standalone": {
|
|
240
|
+
"reviewAgent": "nccgs-adversarial-reviewer",
|
|
241
|
+
"documentsOwner": "Claude Code",
|
|
242
|
+
"runtime": "claude-code",
|
|
243
|
+
"sequence": [
|
|
244
|
+
"intake",
|
|
245
|
+
"plan",
|
|
246
|
+
"implementation",
|
|
247
|
+
"verification",
|
|
248
|
+
"independent-review",
|
|
249
|
+
"report",
|
|
250
|
+
"optional-external-review",
|
|
251
|
+
"contract-acceptance"
|
|
252
|
+
],
|
|
253
|
+
"planningOwner": "Claude Code"
|
|
254
|
+
},
|
|
255
|
+
"compatibility": {
|
|
256
|
+
"contract": "astra-claude",
|
|
257
|
+
"runtime": "claude-code"
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
}
|
|
@@ -3,6 +3,11 @@
|
|
|
3
3
|
A context packet is a task-specific map, not a copy of project documentation. Store
|
|
4
4
|
it under `.nccgs/context/<feature-id>.yaml` for STANDARD or CONTROLLED work.
|
|
5
5
|
|
|
6
|
+
For a project that has adopted the external shared workflow, follow
|
|
7
|
+
[shared workflow context](shared-workflow-context.md) for its optional common Graphify
|
|
8
|
+
consumer. Link its generation/readiness in the existing packet; keep one shared graph
|
|
9
|
+
and freshness record. Missing setup skips without installing or bootstrapping it.
|
|
10
|
+
|
|
6
11
|
Include objective, risk tier, domains, accountable owner, requirement IDs, exact
|
|
7
12
|
canonical sections, decision summaries with source anchors, affected/protected paths,
|
|
8
13
|
approved semantics, out-of-scope boundaries, dependencies, verification, PO gates,
|
|
@@ -1,46 +1,46 @@
|
|
|
1
|
-
# Model routing protocol
|
|
2
|
-
|
|
3
|
-
NCCGS runs in Claude Code. Resolve execution obligations independently of models.
|
|
4
|
-
`pipeline.json` is the routing source; generated catalog/frontmatter and
|
|
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
|
-
|
|
8
|
-
## Standalone default
|
|
9
|
-
|
|
10
|
-
| Risk | Implementation | Requested effort | Review rounds |
|
|
11
|
-
|---|---|---|---|
|
|
12
|
-
| FAST | Sonnet, lightweight class |
|
|
13
|
-
| STANDARD | Opus, standard class |
|
|
14
|
-
| CONTROLLED | Opus, deep class |
|
|
15
|
-
|
|
16
|
-
Independent review uses
|
|
17
|
-
particular resolved provider version. Runtime observations must identify actual
|
|
18
|
-
Claude models. Unknown effort remains null unless project policy requires observed
|
|
19
|
-
effort, in which case missing evidence blocks the stage. Never infer observed
|
|
20
|
-
effort, model, duration or cost from configuration.
|
|
21
|
-
|
|
22
|
-
Use `nccgs-fast-implementer` for bounded FAST work; use a domain programmer for
|
|
23
|
-
STANDARD and `nccgs-unity-implementer` for CONTROLLED. A scout resolves one missing
|
|
24
|
-
fact; it is optional. Do not promote work merely because a role sounds senior.
|
|
25
|
-
The same model family may implement and review, but review must run in a separate
|
|
26
|
-
observed agent invocation and consume a reserved review attempt.
|
|
27
|
-
|
|
28
|
-
`configure-models.mjs` renders profile model/effort settings. Local settings,
|
|
29
|
-
environment, provider restrictions and existing sessions may override them.
|
|
30
|
-
Restart/recheck the real session after configuration changes. Classify and reserve
|
|
31
|
-
before dispatch, then use the task's route. Do not silently fall back when a model
|
|
32
|
-
is unavailable. Report the actual blocker and measurements.
|
|
33
|
-
|
|
34
|
-
## Compatibility
|
|
35
|
-
|
|
36
|
-
Missing `.nccgs/execution.json` means compatibility. Historical `astra-claude`
|
|
37
|
-
retains Sonnet/medium for FAST, `claude-opus-5-5` medium/high for larger work,
|
|
38
|
-
Fable/high review, external Astra check and explicit Product Owner acceptance.
|
|
39
|
-
These historical identifiers are preserved configuration, not new availability
|
|
40
|
-
claims. See [its protocol](astra-claude.md).
|
|
41
|
-
|
|
42
|
-
`quality`, `balanced` and `inherit` remain available for historical workflows.
|
|
43
|
-
Changing only a model profile cannot waive task gates. Standalone schema-2 tasks
|
|
44
|
-
require explicit implementation/review families; an unpinned inherit route cannot
|
|
45
|
-
prove them. Ordinary updates retain configuration. Use explicit execution migration
|
|
46
|
-
to adopt standalone; historical task records and spent budgets remain intact.
|
|
1
|
+
# Model routing protocol
|
|
2
|
+
|
|
3
|
+
NCCGS runs in Claude Code. Resolve execution obligations independently of models.
|
|
4
|
+
`pipeline.json` is the routing source; generated catalog/frontmatter and
|
|
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
|
+
|
|
8
|
+
## Standalone default
|
|
9
|
+
|
|
10
|
+
| Risk | Implementation | Requested effort | Review rounds |
|
|
11
|
+
|---|---|---|---|
|
|
12
|
+
| FAST | Sonnet, lightweight class | high | 2 |
|
|
13
|
+
| STANDARD | Opus, standard class | high | 3 |
|
|
14
|
+
| CONTROLLED | Opus, deep class | xhigh | 3 |
|
|
15
|
+
|
|
16
|
+
Independent review uses Fable/high. Leadership requests Opus/xhigh. These are family aliases, not claims about a
|
|
17
|
+
particular resolved provider version. Runtime observations must identify actual
|
|
18
|
+
Claude models. Unknown effort remains null unless project policy requires observed
|
|
19
|
+
effort, in which case missing evidence blocks the stage. Never infer observed
|
|
20
|
+
effort, model, duration or cost from configuration.
|
|
21
|
+
|
|
22
|
+
Use `nccgs-fast-implementer` for bounded FAST work; use a domain programmer for
|
|
23
|
+
STANDARD and `nccgs-unity-implementer` for CONTROLLED. A scout resolves one missing
|
|
24
|
+
fact; it is optional. Do not promote work merely because a role sounds senior.
|
|
25
|
+
The same model family may implement and review, but review must run in a separate
|
|
26
|
+
observed agent invocation and consume a reserved review attempt.
|
|
27
|
+
|
|
28
|
+
`configure-models.mjs` renders profile model/effort settings. Local settings,
|
|
29
|
+
environment, provider restrictions and existing sessions may override them.
|
|
30
|
+
Restart/recheck the real session after configuration changes. Classify and reserve
|
|
31
|
+
before dispatch, then use the task's route. Do not silently fall back when a model
|
|
32
|
+
is unavailable. Report the actual blocker and measurements.
|
|
33
|
+
|
|
34
|
+
## Compatibility
|
|
35
|
+
|
|
36
|
+
Missing `.nccgs/execution.json` means compatibility. Historical `astra-claude`
|
|
37
|
+
retains Sonnet/medium for FAST, `claude-opus-5-5` medium/high for larger work,
|
|
38
|
+
Fable/high review, external Astra check and explicit Product Owner acceptance.
|
|
39
|
+
These historical identifiers are preserved configuration, not new availability
|
|
40
|
+
claims. See [its protocol](astra-claude.md).
|
|
41
|
+
|
|
42
|
+
`quality`, `balanced` and `inherit` remain available for historical workflows.
|
|
43
|
+
Changing only a model profile cannot waive task gates. Standalone schema-2 tasks
|
|
44
|
+
require explicit implementation/review families; an unpinned inherit route cannot
|
|
45
|
+
prove them. Ordinary updates retain configuration. Use explicit execution migration
|
|
46
|
+
to adopt standalone; historical task records and spent budgets remain intact.
|
|
@@ -2,7 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
For a reservation with `handoffTransport: "native-result"`, return the entire
|
|
4
4
|
Markdown handoff as one final text block and do not write a file. The native hook
|
|
5
|
-
copies it verbatim into the single declared fresh handoff path. The
|
|
5
|
+
copies it verbatim into the single declared fresh handoff path. The consumer
|
|
6
|
+
re-evaluates the actual response with the native completion policy and preserves
|
|
7
|
+
any upstream completion failure. Only validated provider-designated informational
|
|
8
|
+
leading/tail blocks are removed; exactly one nonempty model text block of at most
|
|
9
|
+
262144 UTF-8 bytes must remain. Unknown, invalid, incomplete or ambiguous responses
|
|
10
|
+
reject without publishing. Model-authored lookalike tags, review JSON, conditions
|
|
11
|
+
and completion markers are never rewritten. The exact same
|
|
6
12
|
review contract, independent identity and gates below still apply. Other
|
|
7
13
|
reservations retain the existing file-writing workflow.
|
|
8
14
|
|
|
@@ -77,5 +83,19 @@ external inspection. Arbitrary quoted text in a worker's response is not harness
|
|
|
77
83
|
metadata and does not itself change completion status. Captured observations retain
|
|
78
84
|
the reported invocation status and a diagnosis/hash, not arbitrary response text.
|
|
79
85
|
|
|
86
|
+
The provider-designated informational block
|
|
87
|
+
`<tools-used-before-summary>Edit</tools-used-before-summary>` is recognized as a
|
|
88
|
+
tool inventory. Recognition applies only inside the declared leading/tail harness
|
|
89
|
+
blocks, never to the model handoff. The whole text block must be at most 4096
|
|
90
|
+
characters and contain only that exact case-sensitive wrapper, one or more
|
|
91
|
+
comma-separated tool identifiers, and optional surrounding whitespace. Identifiers
|
|
92
|
+
start with an ASCII letter and continue with ASCII letters, digits, `_`, `.`, `:`
|
|
93
|
+
or `-`; whitespace may surround commas. Empty lists, nested tags, extra prose,
|
|
94
|
+
non-text blocks and any other advisory remain unrecognized and fail closed.
|
|
95
|
+
Turn-limit notices retain priority even when mixed with a recognized inventory.
|
|
96
|
+
An informational note preserves its hash and the provider's reported status;
|
|
97
|
+
it never upgrades a failed or unknown invocation. This compatibility rule does
|
|
98
|
+
not rewrite a previous failed dispatch or waive its consumed quota or review.
|
|
99
|
+
|
|
80
100
|
Older pinned policies remain unchanged. Upgrade policy only for fresh authorized
|
|
81
101
|
tasks; never retrofit frozen evaluation records or reset attempts to obtain PASS.
|