@opengsd/gsd-core 1.4.3 → 1.5.0-rc.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 (149) hide show
  1. package/.claude-plugin/plugin.json +1 -1
  2. package/README.md +3 -3
  3. package/agents/gsd-executor.md +1 -1
  4. package/agents/gsd-plan-checker.md +11 -2
  5. package/agents/gsd-planner.md +11 -7
  6. package/agents/gsd-verifier.md +3 -3
  7. package/bin/install.js +825 -149
  8. package/commands/gsd/autonomous.md +5 -1
  9. package/commands/gsd/ns-manage.md +8 -1
  10. package/commands/gsd/ns-project.md +5 -0
  11. package/commands/gsd/ns-review.md +4 -1
  12. package/commands/gsd/ns-workflow.md +7 -1
  13. package/commands/gsd/plan-review-convergence.md +5 -4
  14. package/commands/gsd/surface.md +12 -5
  15. package/gemini-extension.json +1 -1
  16. package/gsd-core/bin/gsd-tools.cjs +198 -101
  17. package/gsd-core/bin/lib/audit-command-router.cjs +61 -0
  18. package/gsd-core/bin/lib/capability-registry.cjs +417 -0
  19. package/gsd-core/bin/lib/capability-state.cjs +336 -0
  20. package/gsd-core/bin/lib/cli-exit.cjs +22 -3
  21. package/gsd-core/bin/lib/config-loader.cjs +716 -0
  22. package/gsd-core/bin/lib/configuration.cjs +4 -34
  23. package/gsd-core/bin/lib/core-utils.cjs +198 -0
  24. package/gsd-core/bin/lib/core.cjs +57 -1817
  25. package/gsd-core/bin/lib/federated-config.cjs +182 -0
  26. package/gsd-core/bin/lib/graphify-command-router.cjs +74 -0
  27. package/gsd-core/bin/lib/init.cjs +58 -12
  28. package/gsd-core/bin/lib/install-profiles.cjs +157 -3
  29. package/gsd-core/bin/lib/intel-command-router.cjs +116 -0
  30. package/gsd-core/bin/lib/io.cjs +167 -0
  31. package/gsd-core/bin/lib/loop-host-contract.cjs +105 -0
  32. package/gsd-core/bin/lib/loop-resolver.cjs +460 -0
  33. package/gsd-core/bin/lib/model-resolver.cjs +426 -0
  34. package/gsd-core/bin/lib/phase-id.cjs +215 -0
  35. package/gsd-core/bin/lib/phase-locator.cjs +148 -0
  36. package/gsd-core/bin/lib/profile-pipeline.cjs +2 -2
  37. package/gsd-core/bin/lib/roadmap-parser.cjs +443 -0
  38. package/gsd-core/bin/lib/roadmap.cjs +4 -1
  39. package/gsd-core/bin/lib/runtime-artifact-layout.cjs +96 -9
  40. package/gsd-core/bin/lib/runtime-config-adapter-registry.cjs +2 -1
  41. package/gsd-core/bin/lib/runtime-homes.cjs +40 -0
  42. package/gsd-core/bin/lib/runtime-name-policy.cjs +1 -0
  43. package/gsd-core/bin/lib/shell-command-projection.cjs +13 -0
  44. package/gsd-core/bin/lib/state.cjs +114 -2
  45. package/gsd-core/bin/lib/surface.cjs +66 -14
  46. package/gsd-core/bin/lib/verify.cjs +1 -1
  47. package/gsd-core/bin/shared/model-catalog.json +5 -0
  48. package/gsd-core/bin/shared/runtime-aliases.manifest.json +3 -0
  49. package/gsd-core/references/planner-reviews.md +5 -2
  50. package/gsd-core/templates/phase-prompt.md +7 -7
  51. package/gsd-core/templates/project.md +19 -2
  52. package/gsd-core/templates/summary-complex.md +1 -0
  53. package/gsd-core/templates/summary-minimal.md +1 -0
  54. package/gsd-core/templates/summary-standard.md +1 -0
  55. package/gsd-core/templates/summary.md +1 -0
  56. package/gsd-core/workflows/_runtime-launcher.snippet.sh +1 -1
  57. package/gsd-core/workflows/add-backlog.md +1 -1
  58. package/gsd-core/workflows/add-phase.md +1 -1
  59. package/gsd-core/workflows/add-tests.md +1 -1
  60. package/gsd-core/workflows/add-todo.md +1 -1
  61. package/gsd-core/workflows/ai-integration-phase.md +1 -1
  62. package/gsd-core/workflows/audit-fix.md +1 -1
  63. package/gsd-core/workflows/audit-milestone.md +1 -1
  64. package/gsd-core/workflows/audit-uat.md +1 -1
  65. package/gsd-core/workflows/autonomous.md +86 -15
  66. package/gsd-core/workflows/check-todos.md +1 -1
  67. package/gsd-core/workflows/cleanup.md +1 -1
  68. package/gsd-core/workflows/code-review-fix.md +6 -4
  69. package/gsd-core/workflows/code-review.md +3 -2
  70. package/gsd-core/workflows/complete-milestone.md +11 -5
  71. package/gsd-core/workflows/debug.md +1 -1
  72. package/gsd-core/workflows/diagnose-issues.md +1 -1
  73. package/gsd-core/workflows/discuss-phase/modes/advisor.md +1 -1
  74. package/gsd-core/workflows/discuss-phase/modes/auto.md +1 -1
  75. package/gsd-core/workflows/discuss-phase/modes/chain.md +1 -1
  76. package/gsd-core/workflows/discuss-phase-assumptions.md +1 -1
  77. package/gsd-core/workflows/discuss-phase.md +8 -1
  78. package/gsd-core/workflows/do.md +1 -1
  79. package/gsd-core/workflows/docs-update.md +1 -1
  80. package/gsd-core/workflows/edit-phase.md +1 -1
  81. package/gsd-core/workflows/eval-review.md +4 -1
  82. package/gsd-core/workflows/execute-phase/steps/codebase-drift-gate.md +1 -1
  83. package/gsd-core/workflows/execute-phase/steps/post-merge-gate.md +1 -1
  84. package/gsd-core/workflows/execute-phase.md +8 -1
  85. package/gsd-core/workflows/execute-plan.md +1 -1
  86. package/gsd-core/workflows/explore.md +1 -1
  87. package/gsd-core/workflows/extract-learnings.md +1 -1
  88. package/gsd-core/workflows/forensics.md +1 -1
  89. package/gsd-core/workflows/graduation.md +1 -1
  90. package/gsd-core/workflows/health.md +1 -1
  91. package/gsd-core/workflows/help/modes/full.md +1 -1
  92. package/gsd-core/workflows/import.md +1 -1
  93. package/gsd-core/workflows/ingest-docs.md +1 -1
  94. package/gsd-core/workflows/insert-phase.md +1 -1
  95. package/gsd-core/workflows/list-workspaces.md +1 -1
  96. package/gsd-core/workflows/manager.md +1 -1
  97. package/gsd-core/workflows/map-codebase.md +1 -1
  98. package/gsd-core/workflows/milestone-summary.md +1 -1
  99. package/gsd-core/workflows/mvp-phase.md +1 -1
  100. package/gsd-core/workflows/new-milestone.md +1 -1
  101. package/gsd-core/workflows/new-project.md +1 -1
  102. package/gsd-core/workflows/new-workspace.md +1 -1
  103. package/gsd-core/workflows/next.md +1 -1
  104. package/gsd-core/workflows/pause-work.md +1 -1
  105. package/gsd-core/workflows/plan-milestone-gaps.md +1 -1
  106. package/gsd-core/workflows/plan-phase.md +27 -2
  107. package/gsd-core/workflows/plan-review-convergence.md +60 -33
  108. package/gsd-core/workflows/plant-seed.md +1 -1
  109. package/gsd-core/workflows/profile-user.md +1 -1
  110. package/gsd-core/workflows/progress.md +1 -1
  111. package/gsd-core/workflows/quick.md +2 -2
  112. package/gsd-core/workflows/remove-phase.md +1 -1
  113. package/gsd-core/workflows/remove-workspace.md +1 -1
  114. package/gsd-core/workflows/resume-project.md +1 -1
  115. package/gsd-core/workflows/review.md +1 -1
  116. package/gsd-core/workflows/scan.md +1 -1
  117. package/gsd-core/workflows/secure-phase.md +1 -1
  118. package/gsd-core/workflows/settings-advanced.md +1 -1
  119. package/gsd-core/workflows/settings-integrations.md +1 -1
  120. package/gsd-core/workflows/settings.md +1 -1
  121. package/gsd-core/workflows/ship.md +8 -1
  122. package/gsd-core/workflows/sketch-wrap-up.md +1 -1
  123. package/gsd-core/workflows/sketch.md +1 -1
  124. package/gsd-core/workflows/spec-phase.md +1 -1
  125. package/gsd-core/workflows/spike-wrap-up.md +1 -1
  126. package/gsd-core/workflows/spike.md +1 -1
  127. package/gsd-core/workflows/stats.md +1 -1
  128. package/gsd-core/workflows/thread.md +1 -1
  129. package/gsd-core/workflows/transition.md +1 -1
  130. package/gsd-core/workflows/ui-phase.md +1 -1
  131. package/gsd-core/workflows/ui-review.md +1 -1
  132. package/gsd-core/workflows/ultraplan-phase.md +1 -1
  133. package/gsd-core/workflows/validate-phase.md +1 -1
  134. package/gsd-core/workflows/verify-phase.md +1 -1
  135. package/gsd-core/workflows/verify-work.md +8 -1
  136. package/package.json +7 -2
  137. package/scripts/base64-scan.sh +1 -1
  138. package/scripts/changeset/cli.cjs +8 -1
  139. package/scripts/changeset/lint.cjs +38 -2
  140. package/scripts/ci-test-scope.cjs +21 -10
  141. package/scripts/gen-capability-registry.cjs +1808 -0
  142. package/scripts/gen-loop-host-contract.cjs +471 -0
  143. package/scripts/lint-regression-test-names.allowlist.json +269 -0
  144. package/scripts/lint-regression-test-names.cjs +117 -0
  145. package/scripts/lint-test-file-count.allowlist.json +12 -4
  146. package/scripts/prompt-injection-scan.sh +4 -4
  147. package/scripts/run-tests.cjs +79 -16
  148. package/scripts/secret-scan.sh +3 -3
  149. package/scripts/run-cross-platform-tests.cjs +0 -67
@@ -0,0 +1,417 @@
1
+ 'use strict';
2
+
3
+ /**
4
+ * capability-registry.cjs — generated by scripts/gen-capability-registry.cjs
5
+ * DO NOT EDIT BY HAND. Run: node scripts/gen-capability-registry.cjs --write
6
+ * ADR-894 §5 — role-partitioned Capability Registry.
7
+ */
8
+
9
+ const capabilities = {
10
+ "audit": {
11
+ "id": "audit",
12
+ "role": "feature",
13
+ "title": "Audit",
14
+ "description": "Open-artifact audit and UAT-gap audit for milestone close gates; exposes `gsd-tools audit-uat` (cross-phase UAT outstanding items) and `gsd-tools audit-open` (structured open-artifact scan across debug, tasks, threads, todos, seeds, UAT, verification, context-questions).",
15
+ "tier": "full",
16
+ "requires": [],
17
+ "skills": [],
18
+ "agents": [],
19
+ "config": {},
20
+ "commands": [
21
+ {
22
+ "family": "audit-uat",
23
+ "module": "audit-command-router.cjs",
24
+ "router": "routeAuditUat"
25
+ },
26
+ {
27
+ "family": "audit-open",
28
+ "module": "audit-command-router.cjs",
29
+ "router": "routeAuditOpen"
30
+ }
31
+ ],
32
+ "hooks": [],
33
+ "steps": [],
34
+ "contributions": [],
35
+ "gates": []
36
+ },
37
+ "graphify": {
38
+ "id": "graphify",
39
+ "role": "feature",
40
+ "title": "Knowledge graph",
41
+ "description": "Build, query, and inspect the project knowledge graph in `.planning/graphs/`; exposes graphify CLI subcommands (build, query, status, diff) and the /gsd-graphify skill.",
42
+ "tier": "full",
43
+ "requires": [],
44
+ "skills": [
45
+ "graphify"
46
+ ],
47
+ "agents": [],
48
+ "config": {
49
+ "graphify.enabled": {
50
+ "type": "boolean",
51
+ "default": false,
52
+ "description": "Enable the graphify knowledge-graph command + skill."
53
+ }
54
+ },
55
+ "commands": [
56
+ {
57
+ "family": "graphify",
58
+ "module": "graphify-command-router.cjs",
59
+ "router": "routeGraphifyCommand"
60
+ }
61
+ ],
62
+ "hooks": [],
63
+ "steps": [],
64
+ "contributions": [],
65
+ "gates": []
66
+ },
67
+ "intel": {
68
+ "id": "intel",
69
+ "role": "feature",
70
+ "title": "Codebase intelligence",
71
+ "description": "Code-intelligence store for codebase querying, diff, snapshot, and API-surface extraction; exposes `gsd-tools intel` subcommands (query, status, update, diff, snapshot, patch-meta, validate, extract-exports, api-surface) and backs `/gsd-map-codebase` and `gsd-intel-updater`.",
72
+ "tier": "full",
73
+ "requires": [],
74
+ "skills": [],
75
+ "agents": [],
76
+ "config": {
77
+ "intel.enabled": {
78
+ "type": "boolean",
79
+ "default": false,
80
+ "description": "Enable the intel code-intelligence command."
81
+ }
82
+ },
83
+ "commands": [
84
+ {
85
+ "family": "intel",
86
+ "module": "intel-command-router.cjs",
87
+ "router": "routeIntelCommand"
88
+ }
89
+ ],
90
+ "hooks": [],
91
+ "steps": [],
92
+ "contributions": [],
93
+ "gates": []
94
+ },
95
+ "ui": {
96
+ "id": "ui",
97
+ "role": "feature",
98
+ "title": "UI design contracts",
99
+ "description": "UI-SPEC design contract + retrospective UI audit for frontend phases.",
100
+ "tier": "full",
101
+ "requires": [],
102
+ "skills": [
103
+ "ui-phase",
104
+ "ui-review"
105
+ ],
106
+ "agents": [
107
+ "gsd-ui-checker",
108
+ "gsd-ui-auditor"
109
+ ],
110
+ "hooks": [],
111
+ "config": {
112
+ "workflow.ui_phase": {
113
+ "type": "boolean",
114
+ "default": true,
115
+ "description": "Enable the UI design-contract gate during planning."
116
+ },
117
+ "workflow.ui_review": {
118
+ "type": "boolean",
119
+ "default": true,
120
+ "description": "Enable the retrospective UI audit."
121
+ },
122
+ "workflow.ui_safety_gate": {
123
+ "type": "boolean",
124
+ "default": true,
125
+ "description": "Block execution on unmet UI-SPEC contracts."
126
+ }
127
+ },
128
+ "steps": [
129
+ {
130
+ "point": "plan:pre",
131
+ "ref": {
132
+ "skill": "ui-phase"
133
+ },
134
+ "produces": [
135
+ "UI-SPEC.md"
136
+ ],
137
+ "consumes": [
138
+ "CONTEXT.md"
139
+ ],
140
+ "when": "workflow.ui_phase",
141
+ "onError": "skip"
142
+ },
143
+ {
144
+ "point": "verify:post",
145
+ "ref": {
146
+ "skill": "ui-review"
147
+ },
148
+ "produces": [
149
+ "UI-REVIEW.md"
150
+ ],
151
+ "consumes": [
152
+ "UI-SPEC.md"
153
+ ],
154
+ "when": "workflow.ui_review",
155
+ "onError": "skip"
156
+ }
157
+ ],
158
+ "contributions": [],
159
+ "gates": [
160
+ {
161
+ "point": "execute:wave:post",
162
+ "check": {
163
+ "query": "ui.safety-gate"
164
+ },
165
+ "when": "workflow.ui_safety_gate",
166
+ "blocking": true,
167
+ "onError": "halt"
168
+ }
169
+ ]
170
+ }
171
+ };
172
+
173
+ const bySkill = {
174
+ "graphify": "graphify",
175
+ "ui-phase": "ui",
176
+ "ui-review": "ui"
177
+ };
178
+
179
+ const byAgent = {
180
+ "gsd-ui-checker": "ui",
181
+ "gsd-ui-auditor": "ui"
182
+ };
183
+
184
+ const byLoopPoint = {
185
+ "discuss:pre": {
186
+ "steps": [],
187
+ "contributions": [],
188
+ "gates": []
189
+ },
190
+ "discuss:post": {
191
+ "steps": [],
192
+ "contributions": [],
193
+ "gates": []
194
+ },
195
+ "plan:pre": {
196
+ "steps": [
197
+ {
198
+ "capId": "ui",
199
+ "point": "plan:pre",
200
+ "ref": {
201
+ "skill": "ui-phase"
202
+ },
203
+ "produces": [
204
+ "UI-SPEC.md"
205
+ ],
206
+ "consumes": [
207
+ "CONTEXT.md"
208
+ ],
209
+ "when": "workflow.ui_phase",
210
+ "onError": "skip"
211
+ }
212
+ ],
213
+ "contributions": [],
214
+ "gates": []
215
+ },
216
+ "plan:post": {
217
+ "steps": [],
218
+ "contributions": [],
219
+ "gates": []
220
+ },
221
+ "execute:pre": {
222
+ "steps": [],
223
+ "contributions": [],
224
+ "gates": []
225
+ },
226
+ "execute:wave:pre": {
227
+ "steps": [],
228
+ "contributions": [],
229
+ "gates": []
230
+ },
231
+ "execute:wave:post": {
232
+ "steps": [],
233
+ "contributions": [],
234
+ "gates": [
235
+ {
236
+ "capId": "ui",
237
+ "point": "execute:wave:post",
238
+ "check": {
239
+ "query": "ui.safety-gate"
240
+ },
241
+ "when": "workflow.ui_safety_gate",
242
+ "blocking": true,
243
+ "onError": "halt"
244
+ }
245
+ ]
246
+ },
247
+ "execute:post": {
248
+ "steps": [],
249
+ "contributions": [],
250
+ "gates": []
251
+ },
252
+ "verify:pre": {
253
+ "steps": [],
254
+ "contributions": [],
255
+ "gates": []
256
+ },
257
+ "verify:post": {
258
+ "steps": [
259
+ {
260
+ "capId": "ui",
261
+ "point": "verify:post",
262
+ "ref": {
263
+ "skill": "ui-review"
264
+ },
265
+ "produces": [
266
+ "UI-REVIEW.md"
267
+ ],
268
+ "consumes": [
269
+ "UI-SPEC.md"
270
+ ],
271
+ "when": "workflow.ui_review",
272
+ "onError": "skip"
273
+ }
274
+ ],
275
+ "contributions": [],
276
+ "gates": []
277
+ },
278
+ "ship:pre": {
279
+ "steps": [],
280
+ "contributions": [],
281
+ "gates": []
282
+ },
283
+ "ship:post": {
284
+ "steps": [],
285
+ "contributions": [],
286
+ "gates": []
287
+ }
288
+ };
289
+
290
+ const configKeys = {
291
+ "graphify.enabled": "graphify",
292
+ "intel.enabled": "intel",
293
+ "workflow.ui_phase": "ui",
294
+ "workflow.ui_review": "ui",
295
+ "workflow.ui_safety_gate": "ui"
296
+ };
297
+
298
+ const configSchema = {
299
+ "graphify.enabled": {
300
+ "owner": "graphify",
301
+ "type": "boolean",
302
+ "default": false,
303
+ "description": "Enable the graphify knowledge-graph command + skill."
304
+ },
305
+ "intel.enabled": {
306
+ "owner": "intel",
307
+ "type": "boolean",
308
+ "default": false,
309
+ "description": "Enable the intel code-intelligence command."
310
+ },
311
+ "workflow.ui_phase": {
312
+ "owner": "ui",
313
+ "type": "boolean",
314
+ "default": true,
315
+ "description": "Enable the UI design-contract gate during planning."
316
+ },
317
+ "workflow.ui_review": {
318
+ "owner": "ui",
319
+ "type": "boolean",
320
+ "default": true,
321
+ "description": "Enable the retrospective UI audit."
322
+ },
323
+ "workflow.ui_safety_gate": {
324
+ "owner": "ui",
325
+ "type": "boolean",
326
+ "default": true,
327
+ "description": "Block execution on unmet UI-SPEC contracts."
328
+ }
329
+ };
330
+
331
+ const runtimes = {};
332
+
333
+ const commandFamilies = {
334
+ "audit-open": {
335
+ "capId": "audit",
336
+ "module": "audit-command-router.cjs",
337
+ "router": "routeAuditOpen"
338
+ },
339
+ "audit-uat": {
340
+ "capId": "audit",
341
+ "module": "audit-command-router.cjs",
342
+ "router": "routeAuditUat"
343
+ },
344
+ "graphify": {
345
+ "capId": "graphify",
346
+ "module": "graphify-command-router.cjs",
347
+ "router": "routeGraphifyCommand"
348
+ },
349
+ "intel": {
350
+ "capId": "intel",
351
+ "module": "intel-command-router.cjs",
352
+ "router": "routeIntelCommand"
353
+ }
354
+ };
355
+
356
+ const capabilityClusters = {
357
+ "graphify": [
358
+ "graphify"
359
+ ],
360
+ "ui": [
361
+ "ui-phase",
362
+ "ui-review"
363
+ ]
364
+ };
365
+
366
+ const profileMembership = {
367
+ "graphify": {
368
+ "tier": "full",
369
+ "profiles": [
370
+ "full"
371
+ ]
372
+ },
373
+ "ui": {
374
+ "tier": "full",
375
+ "profiles": [
376
+ "full"
377
+ ]
378
+ }
379
+ };
380
+
381
+ const _requiresGraph = {
382
+ "audit": [],
383
+ "graphify": [],
384
+ "intel": [],
385
+ "ui": []
386
+ };
387
+
388
+ function requiresClosure(id) {
389
+ const visited = new Set();
390
+ const queue = [id];
391
+ while (queue.length > 0) {
392
+ const current = queue.shift();
393
+ const reqs = _requiresGraph[current] || [];
394
+ for (const req of reqs) {
395
+ if (!visited.has(req)) {
396
+ visited.add(req);
397
+ queue.push(req);
398
+ }
399
+ }
400
+ }
401
+ return visited;
402
+ }
403
+
404
+ module.exports = {
405
+ version: '1',
406
+ capabilities,
407
+ bySkill,
408
+ byAgent,
409
+ byLoopPoint,
410
+ configKeys,
411
+ configSchema,
412
+ runtimes,
413
+ commandFamilies,
414
+ capabilityClusters,
415
+ profileMembership,
416
+ requiresClosure,
417
+ };