@opengsd/gsd-core 1.7.0-rc.4 → 1.7.0-rc.6
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-plugin/marketplace.json +1 -1
- package/.claude-plugin/plugin.json +1 -1
- package/.opencode/plugins/gsd-core.js +20 -0
- package/agents/gsd-doc-classifier.md +105 -0
- package/agents/gsd-doc-synthesizer.md +61 -0
- package/agents/gsd-ui-checker.md +30 -0
- package/agents/gsd-ui-researcher.md +1 -0
- package/bin/install.js +1568 -622
- package/gsd-core/bin/gsd-tools.cjs +40 -1
- package/gsd-core/bin/lib/api-coverage.cjs +466 -0
- package/gsd-core/bin/lib/audit.cjs +6 -3
- package/gsd-core/bin/lib/capability-loader.cjs +11 -9
- package/gsd-core/bin/lib/capability-registry.cjs +761 -84
- package/gsd-core/bin/lib/capability-validator.cjs +56 -18
- package/gsd-core/bin/lib/capability-writer.cjs +10 -1
- package/gsd-core/bin/lib/check-command-router.cjs +242 -3
- package/gsd-core/bin/lib/commands.cjs +7 -5
- package/gsd-core/bin/lib/config-loader.cjs +1 -0
- package/gsd-core/bin/lib/config.cjs +96 -0
- package/gsd-core/bin/lib/core-utils.cjs +4 -1
- package/gsd-core/bin/lib/host-integration-adapters/cline-sdk-binding.cjs +234 -0
- package/gsd-core/bin/lib/host-integration-adapters/imperative-hook-bus.cjs +145 -0
- package/gsd-core/bin/lib/host-integration.cjs +45 -4
- package/gsd-core/bin/lib/init.cjs +76 -39
- package/gsd-core/bin/lib/install-effort-resolver.cjs +213 -0
- package/gsd-core/bin/lib/install-engine.cjs +228 -18
- package/gsd-core/bin/lib/installer-migration-report.cjs +7 -0
- package/gsd-core/bin/lib/loop-resolver.cjs +68 -17
- package/gsd-core/bin/lib/markdown-sectionizer.cjs +50 -11
- package/gsd-core/bin/lib/mcp-server.cjs +18 -7
- package/gsd-core/bin/lib/milestone.cjs +3 -3
- package/gsd-core/bin/lib/normalize-test-command.cjs +187 -0
- package/gsd-core/bin/lib/phase-id.cjs +132 -3
- package/gsd-core/bin/lib/phase.cjs +78 -16
- package/gsd-core/bin/lib/planning-workspace.cjs +17 -0
- package/gsd-core/bin/lib/review-reviewer-selection.cjs +24 -7
- package/gsd-core/bin/lib/roadmap-command-router.cjs +5 -4
- package/gsd-core/bin/lib/roadmap-parser.cjs +21 -30
- package/gsd-core/bin/lib/roadmap-upgrade.cjs +9 -9
- package/gsd-core/bin/lib/roadmap.cjs +42 -56
- package/gsd-core/bin/lib/runtime-artifact-conversion.cjs +248 -44
- package/gsd-core/bin/lib/runtime-artifact-install-plan.cjs +2 -2
- package/gsd-core/bin/lib/runtime-artifact-layout.cjs +39 -23
- package/gsd-core/bin/lib/runtime-config-adapter-registry.cjs +19 -5
- package/gsd-core/bin/lib/runtime-homes.cjs +30 -0
- package/gsd-core/bin/lib/runtime-hooks-surface.cjs +534 -37
- package/gsd-core/bin/lib/runtime-name-policy.cjs +63 -5
- package/gsd-core/bin/lib/security.cjs +6 -36
- package/gsd-core/bin/lib/shell-command-projection.cjs +115 -2
- package/gsd-core/bin/lib/spec-section.cjs +111 -0
- package/gsd-core/bin/lib/stale-bake-guard.cjs +30 -10
- package/gsd-core/bin/lib/state-transition.cjs +1 -1
- package/gsd-core/bin/lib/state.cjs +24 -24
- package/gsd-core/bin/lib/surface.cjs +40 -6
- package/gsd-core/bin/lib/uat.cjs +4 -1
- package/gsd-core/bin/lib/ui-consideration-probe.cjs +249 -0
- package/gsd-core/bin/lib/validate.cjs +15 -6
- package/gsd-core/bin/lib/verify.cjs +33 -37
- package/gsd-core/bin/shared/config-schema.manifest.json +2 -0
- package/gsd-core/bin/shared/model-catalog.json +14 -9
- package/gsd-core/references/api-coverage.md +104 -0
- package/gsd-core/references/model-profiles.md +2 -2
- package/gsd-core/references/planning-config.md +2 -0
- package/gsd-core/references/specless-probe-fallback.md +172 -0
- package/gsd-core/references/ui-consideration-probe.md +73 -0
- package/gsd-core/templates/UI-SPEC.md +25 -0
- package/gsd-core/templates/VALIDATION.md +2 -0
- package/gsd-core/templates/config.json +2 -1
- package/gsd-core/workflows/audit-fix.md +9 -1
- package/gsd-core/workflows/audit-milestone.md +7 -4
- package/gsd-core/workflows/code-review-fix.md +7 -3
- package/gsd-core/workflows/code-review.md +4 -1
- package/gsd-core/workflows/discuss-phase-assumptions.md +4 -1
- package/gsd-core/workflows/execute-phase/steps/post-merge-gate.md +8 -4
- package/gsd-core/workflows/execute-phase/steps/regression-gate.md +42 -0
- package/gsd-core/workflows/execute-phase.md +1 -25
- package/gsd-core/workflows/plan-phase.md +37 -2
- package/gsd-core/workflows/quick.md +2 -2
- package/gsd-core/workflows/review.md +59 -13
- package/gsd-core/workflows/settings-advanced.md +12 -9
- package/gsd-core/workflows/settings.md +2 -2
- package/gsd-core/workflows/ui-phase.md +146 -1
- package/gsd-core/workflows/validate-phase.md +2 -2
- package/gsd-core/workflows/verify-phase.md +3 -2
- package/gsd-core/workflows/verify-work.md +38 -0
- package/hooks/dist/gsd-cursor-pre-tool.js +76 -0
- package/hooks/dist/gsd-cursor-stop.js +48 -0
- package/hooks/dist/gsd-cursor-subagent-start.js +50 -0
- package/hooks/dist/gsd-cursor-subagent-stop.js +40 -0
- package/hooks/dist/gsd-windsurf-pre-command.js +275 -0
- package/hooks/dist/gsd-windsurf-pre-write.js +132 -0
- package/hooks/dist/managed-hooks-registry.cjs +6 -0
- package/hooks/gsd-cursor-pre-tool.js +76 -0
- package/hooks/gsd-cursor-stop.js +48 -0
- package/hooks/gsd-cursor-subagent-start.js +50 -0
- package/hooks/gsd-cursor-subagent-stop.js +40 -0
- package/hooks/gsd-windsurf-pre-command.js +275 -0
- package/hooks/gsd-windsurf-pre-write.js +132 -0
- package/hooks/managed-hooks-registry.cjs +6 -0
- package/package.json +9 -4
- package/pi/gsd.cjs +354 -0
- package/scripts/build-hooks.js +8 -1
- package/scripts/gen-golden-install-parity-zcode.cjs +11 -1
- package/scripts/gen-registry.cjs +128 -0
- package/scripts/lint-phase-id-drift.cjs +150 -0
- package/scripts/lint-test-file-count.allowlist.json +2 -1
- package/scripts/registry-schema.cjs +565 -0
- package/scripts/run-tests.cjs +21 -1
- package/scripts/validate-registry.cjs +117 -0
- package/vscode/browser.js +197 -0
- package/vscode/extension.js +383 -0
- package/vscode/host-binding.js +113 -0
- package/vscode/package.json +96 -0
|
@@ -10,7 +10,7 @@ const capabilities = {
|
|
|
10
10
|
"ai-integration": {
|
|
11
11
|
"id": "ai-integration",
|
|
12
12
|
"role": "feature",
|
|
13
|
-
"version": "1.7.0-rc.
|
|
13
|
+
"version": "1.7.0-rc.6",
|
|
14
14
|
"title": "AI design contract",
|
|
15
15
|
"description": "AI-SPEC design contract workflow for phases that build AI systems; owns the AI integration command, agents, and workflow.ai_integration_phase activation key.",
|
|
16
16
|
"tier": "full",
|
|
@@ -39,6 +39,11 @@ const capabilities = {
|
|
|
39
39
|
"type": "boolean",
|
|
40
40
|
"default": true,
|
|
41
41
|
"description": "Prompt for an AI-SPEC design contract before planning phases that involve AI systems."
|
|
42
|
+
},
|
|
43
|
+
"workflow.api_coverage_gate": {
|
|
44
|
+
"type": "boolean",
|
|
45
|
+
"default": true,
|
|
46
|
+
"description": "Require an explicit API-coverage decision (full-by-default, opt-out-not-opt-in) before a phase that integrates an external API/SDK/service can seal. At plan:pre the planner is prompted to enumerate the API surface into COVERAGE.md; at verify:pre a blocking gate fails the seal unless the matrix exists with every non-integrated capability an explicit, reasoned opt-out. Independent of ai_integration_phase (applies to any external-API integration, not only AI)."
|
|
42
47
|
}
|
|
43
48
|
},
|
|
44
49
|
"steps": [
|
|
@@ -57,13 +62,40 @@ const capabilities = {
|
|
|
57
62
|
"onError": "skip"
|
|
58
63
|
}
|
|
59
64
|
],
|
|
60
|
-
"contributions": [
|
|
61
|
-
|
|
65
|
+
"contributions": [
|
|
66
|
+
{
|
|
67
|
+
"point": "plan:pre",
|
|
68
|
+
"into": "planner",
|
|
69
|
+
"fragment": {
|
|
70
|
+
"path": "fragments/api-coverage-plan-pre.md",
|
|
71
|
+
"inline": "# API Coverage Decision Checkpoint\n\n> Full API Coverage by Default — Opt Out, Never Opt In. Fires when a phase\n> integrates an external API / SDK / service. Most non-API phases will not fire\n> it — that is the point.\n\n## Why this exists\n\n\"We integrated the API\" too often silently means \"we integrated whatever the\nfirst use case exercised.\" Every un-built capability is then an invisible hole,\ndiscovered later by a user who reasonably expected it to work. The phase sealed\ngreen because its tasks completed; nobody decided the gaps were acceptable,\nbecause nobody enumerated them. This checkpoint makes the surface **visible and\ndecided** before the phase can seal.\n\n## Detect whether this phase integrates an external API\n\nThe detector is a deterministic scan over the phase scope. It strips fenced\ncode blocks first, so a trigger term inside a code snippet does not fire. It\nreturns a typed result: `{ detected, signals[], terms }`. Run it on the phase\nscope (the concatenation of this phase's ROADMAP section + the PLAN body):\n\n```bash\nSCOPE=\"$(cat \"${PHASE_DIR}\"/*-PLAN.md 2>/dev/null) $(gsd_run query roadmap.get-phase \"${PHASE}\" 2>/dev/null || true)\"\nAPI_COVERAGE_JSON=$(printf '%s' \"$SCOPE\" | node gsd-core/bin/lib/api-coverage.cjs --json 2>/dev/null || echo '{\"detected\":false,\"signals\":[]}')\n```\n\nRead `API_COVERAGE_JSON.detected`. Act on it only — do **not** pattern-match the\nprose yourself.\n\n**If `detected` is `false`:** this phase does not integrate an external API. Skip\nthe checkpoint entirely and continue planning. Do not raise it with the user.\n\n**If `detected` is `true`:** an external-API integration is in scope. You MUST\nproduce a **coverage matrix** before the plan is finalized.\n\n## Produce the coverage matrix\n\nEnumerate the external API's full **capability surface** — the verb/endpoint/method\nlist (e.g. for a music service: `search`, `play`, `pause`, `skip`, `set_volume`,\n`get_playlist`, `create_playlist`, `add_to_playlist`, …). For each capability\nrecord a decision, starting from **full coverage** as the default:\n\n| capability | decision | reason |\n|---|---|---|\n| `<capability-id>` | `INTEGRATE` \\| `OPT-OUT` | `<one-line reason if OPT-OUT>` |\n\nRules:\n\n- **`INTEGRATE` is the default.** Every capability starts as INTEGRATE; the\n matrix is the *subtraction record*.\n- **Every `OPT-OUT` MUST carry a one-line reason** (`not needed`, `not needed\n yet`, `explicitly out of scope`, …). An opt-out without a reason is an\n un-decided hole — the exact failure mode this gate exists to close.\n- **A second integration against the same need** (e.g. a second platform for the\n same capability) starts from the **same full-coverage baseline** as the first.\n Do not carry over the first integration's opt-outs silently — re-decide each\n capability for the new surface, so a first-class/fallback asymmetry cannot\n accumulate.\n\nWrite the matrix to `${PHASE_DIR}/COVERAGE.md` (canonical markdown-table form):\n\n```markdown\n# API Coverage — <service>\n\n> Full coverage by default. Opt-outs are explicit, reasoned decisions.\n\n| capability | decision | reason |\n|---|---|---|\n| search | INTEGRATE | |\n| playlists | INTEGRATE | |\n| skip | OPT-OUT | not needed yet — tracked for follow-up phase |\n```\n\nA fenced ` ```coverage ` JSON block is also accepted for machine-generated\nmatrices; the markdown table is preferred (human-editable, diff-friendly).\n\n## The seal-time gate\n\nThis checkpoint is enforced. At `verify:pre` the `api-coverage.verify-pre` gate\nruns `check api-coverage.verify-pre <phase-dir>`:\n\n- If `COVERAGE.md` exists, it is validated — every row needs a valid decision and\n every `OPT-OUT` a reason. A malformed/partial matrix **blocks the seal**.\n- If `COVERAGE.md` is absent, the detector runs again over the phase scope. If a\n strong external-API-integration signal is found, the seal is **blocked** until a\n matrix is produced. If no signal is found, the phase is treated as a non-API\n phase and the seal proceeds.\n\nSo: an API-integrating phase cannot seal without a decided matrix. Produce it at\nplan time; do not leave it for seal time.\n\n## Tuning the vocabulary (optional)\n\nThe trigger vocabulary is a curated, additive-only set in\n`gsd-core/bin/lib/api-coverage.cjs` (`DEFAULT_API_COVERAGE_TERMS`). To widen it\nfor a project, override at the call site:\n\n```bash\nprintf '%s' \"$SCOPE\" | node gsd-core/bin/lib/api-coverage.cjs --json \\\n --verbs integrate,wrap,connect,embed --nouns api,sdk,rest,grpc,webhook,plugin\n```\n\nThe whole checkpoint is toggleable via `workflow.api_coverage_gate` in\n`.planning/config.json`.\n"
|
|
72
|
+
},
|
|
73
|
+
"produces": [
|
|
74
|
+
"COVERAGE.md"
|
|
75
|
+
],
|
|
76
|
+
"consumes": [
|
|
77
|
+
"CONTEXT.md"
|
|
78
|
+
],
|
|
79
|
+
"when": "workflow.api_coverage_gate",
|
|
80
|
+
"onError": "skip"
|
|
81
|
+
}
|
|
82
|
+
],
|
|
83
|
+
"gates": [
|
|
84
|
+
{
|
|
85
|
+
"point": "verify:pre",
|
|
86
|
+
"check": {
|
|
87
|
+
"query": "api-coverage.verify-pre"
|
|
88
|
+
},
|
|
89
|
+
"when": "workflow.api_coverage_gate",
|
|
90
|
+
"blocking": true,
|
|
91
|
+
"onError": "halt"
|
|
92
|
+
}
|
|
93
|
+
]
|
|
62
94
|
},
|
|
63
95
|
"antigravity": {
|
|
64
96
|
"id": "antigravity",
|
|
65
97
|
"role": "runtime",
|
|
66
|
-
"version": "1.7.0-rc.
|
|
98
|
+
"version": "1.7.0-rc.6",
|
|
67
99
|
"title": "Antigravity",
|
|
68
100
|
"description": "Google Antigravity IDE — nested under ~/.gemini/antigravity; probed across 1.x and 2.x layouts; Gemini hook event dialect; flat skill layout; tier-1 support.",
|
|
69
101
|
"tier": "core",
|
|
@@ -133,7 +165,7 @@ const capabilities = {
|
|
|
133
165
|
"supportTier": 1,
|
|
134
166
|
"installSurface": "settings-json",
|
|
135
167
|
"writesSharedSettings": true,
|
|
136
|
-
"permissionWriter":
|
|
168
|
+
"permissionWriter": "antigravity",
|
|
137
169
|
"extendedHookEvents": [],
|
|
138
170
|
"hostIntegration": {
|
|
139
171
|
"embeddingMode": "declarative",
|
|
@@ -143,7 +175,7 @@ const capabilities = {
|
|
|
143
175
|
"nested": "undocumented",
|
|
144
176
|
"maxDepth": "undocumented",
|
|
145
177
|
"background": true,
|
|
146
|
-
"subagentToolkit": "
|
|
178
|
+
"subagentToolkit": "full",
|
|
147
179
|
"backgroundDispatch": "undocumented"
|
|
148
180
|
},
|
|
149
181
|
"modelMode": "passive",
|
|
@@ -151,13 +183,20 @@ const capabilities = {
|
|
|
151
183
|
"stateIO": "filesystem",
|
|
152
184
|
"transport": "mcp",
|
|
153
185
|
"runtime": "go"
|
|
186
|
+
},
|
|
187
|
+
"hostBehaviors": {
|
|
188
|
+
"reviewerCli": true,
|
|
189
|
+
"projectInstructionFile": "GEMINI.md",
|
|
190
|
+
"noPathRewrite": true,
|
|
191
|
+
"hookPathStyle": "raw",
|
|
192
|
+
"globalDirResolver": "antigravity"
|
|
154
193
|
}
|
|
155
194
|
}
|
|
156
195
|
},
|
|
157
196
|
"assumption-delta": {
|
|
158
197
|
"id": "assumption-delta",
|
|
159
198
|
"role": "feature",
|
|
160
|
-
"version": "1.7.0-rc.
|
|
199
|
+
"version": "1.7.0-rc.6",
|
|
161
200
|
"title": "Assumption-delta architecture checkpoint",
|
|
162
201
|
"description": "Rarely-firing advisory checkpoint that triggers when a phase makes something plural, optional, or chosen that used to be singular, required, or derived. Surfaces one identity-model question (promote the new general representation to primary, or add it alongside?) so a silent primary-key drift does not accumulate into a later user-facing bug. Non-blocking; fires only on a detected signal.",
|
|
163
202
|
"tier": "full",
|
|
@@ -203,7 +242,7 @@ const capabilities = {
|
|
|
203
242
|
"audit": {
|
|
204
243
|
"id": "audit",
|
|
205
244
|
"role": "feature",
|
|
206
|
-
"version": "1.7.0-rc.
|
|
245
|
+
"version": "1.7.0-rc.6",
|
|
207
246
|
"title": "Audit",
|
|
208
247
|
"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).",
|
|
209
248
|
"tier": "full",
|
|
@@ -240,7 +279,7 @@ const capabilities = {
|
|
|
240
279
|
"augment": {
|
|
241
280
|
"id": "augment",
|
|
242
281
|
"role": "runtime",
|
|
243
|
-
"version": "1.7.0-rc.
|
|
282
|
+
"version": "1.7.0-rc.6",
|
|
244
283
|
"title": "Augment Code",
|
|
245
284
|
"description": "Augment Code CLI — commands + nested-skill artifact layout; settings-json hook surface; Claude hook event dialect; tier-2 support.",
|
|
246
285
|
"tier": "core",
|
|
@@ -321,6 +360,10 @@ const capabilities = {
|
|
|
321
360
|
"writesSharedSettings": true,
|
|
322
361
|
"permissionWriter": null,
|
|
323
362
|
"extendedHookEvents": [],
|
|
363
|
+
"hostBehaviors": {
|
|
364
|
+
"commandBodyConverter": "convertClaudeToAugmentMarkdown",
|
|
365
|
+
"mcpCompanion": "settings-json"
|
|
366
|
+
},
|
|
324
367
|
"hostIntegration": {
|
|
325
368
|
"embeddingMode": "declarative",
|
|
326
369
|
"commandSurface": "slash-file",
|
|
@@ -343,7 +386,7 @@ const capabilities = {
|
|
|
343
386
|
"claude": {
|
|
344
387
|
"id": "claude",
|
|
345
388
|
"role": "runtime",
|
|
346
|
-
"version": "1.7.0-rc.
|
|
389
|
+
"version": "1.7.0-rc.6",
|
|
347
390
|
"title": "Claude Code",
|
|
348
391
|
"description": "Anthropic Claude Code — primary development runtime; tier-1 support with full hook surface and skills-based global install.",
|
|
349
392
|
"tier": "core",
|
|
@@ -421,13 +464,34 @@ const capabilities = {
|
|
|
421
464
|
"stateIO": "filesystem",
|
|
422
465
|
"transport": "mcp",
|
|
423
466
|
"runtime": "node"
|
|
467
|
+
},
|
|
468
|
+
"hostBehaviors": {
|
|
469
|
+
"attributionSource": "settings-json-commit",
|
|
470
|
+
"authorsCanonicalWorkflow": true,
|
|
471
|
+
"localInstallStyle": "legacy-flat",
|
|
472
|
+
"permissionsSchema": "claude",
|
|
473
|
+
"settingsFileByScope": {
|
|
474
|
+
"local": "settings.local.json",
|
|
475
|
+
"global": "settings.json"
|
|
476
|
+
},
|
|
477
|
+
"sourceMarkerFile": ".gsd-source",
|
|
478
|
+
"agentFrontmatterExtensions": [
|
|
479
|
+
"effort"
|
|
480
|
+
],
|
|
481
|
+
"ownsClaudePaths": true,
|
|
482
|
+
"nativeModelAliases": true,
|
|
483
|
+
"skillsGlobalOnboarding": true,
|
|
484
|
+
"legacyCommandsGsdInstallMigration": true,
|
|
485
|
+
"legacyCommandsGsdUninstall": "global",
|
|
486
|
+
"hyphenNameAgentBody": true,
|
|
487
|
+
"reviewerCli": true
|
|
424
488
|
}
|
|
425
489
|
}
|
|
426
490
|
},
|
|
427
491
|
"claude-orchestration": {
|
|
428
492
|
"id": "claude-orchestration",
|
|
429
493
|
"role": "feature",
|
|
430
|
-
"version": "1.7.0-rc.
|
|
494
|
+
"version": "1.7.0-rc.6",
|
|
431
495
|
"title": "Claude orchestration (Workflow backend)",
|
|
432
496
|
"description": "Default-off, BETA, claude-only capability that adopts Claude Code's Workflow tool (the engine behind /effort ultracode) as an optional parallel-execution backend for the GSD loop. When the runtime exposes the Workflow tool and claude_orchestration.execution_backend resolves to 'workflow', execute-phase emits a generated Workflow script (waves -> parallel() barriers, plans -> agent({ agentType: 'gsd-executor', isolation: 'worktree' }), files_modified overlap -> separate sequential stages, resumeFromRunId wired to the phase run id, shared token budget) that composes the SAME gsd-executor agent and worktree isolation the inline path uses, restoring the wave parallelism the #853 backgrounded-agent nesting limitation forces inline on Claude Code. (The plan-checker and verifier remain inline until separately wired — this capability delivers the parallel-execution backend, not those gates.) Also folds the ultraplan plan-offload under one runtime gate (plan:* surface). On any runtime lacking the Workflow tool, or when the capability is disabled, behaviour is byte-identical to today (inline/manual dispatch). Detection + emission live in gsd-core/bin/lib/claude-orchestration.cjs (pure, fail-closed). Mirrors the existing gsd-ultraplan-phase BETA-isolation posture.",
|
|
433
497
|
"tier": "full",
|
|
@@ -514,7 +578,7 @@ const capabilities = {
|
|
|
514
578
|
"cline": {
|
|
515
579
|
"id": "cline",
|
|
516
580
|
"role": "runtime",
|
|
517
|
-
"version": "1.7.0-rc.
|
|
581
|
+
"version": "1.7.0-rc.6",
|
|
518
582
|
"title": "Cline",
|
|
519
583
|
"description": "Cline (VS Code extension) — global-only nested-skill layout; cline-rules hook surface (.clinerules); no hook events emitted; tier-2 support.",
|
|
520
584
|
"tier": "core",
|
|
@@ -569,13 +633,21 @@ const capabilities = {
|
|
|
569
633
|
"stateIO": "filesystem",
|
|
570
634
|
"transport": "mcp",
|
|
571
635
|
"runtime": "node"
|
|
636
|
+
},
|
|
637
|
+
"hostBehaviors": {
|
|
638
|
+
"reapplyCommand": "/gsd-update --reapply",
|
|
639
|
+
"frontmatterDialect": "cline",
|
|
640
|
+
"skipSharedHooksInstall": true,
|
|
641
|
+
"localTargetIsProjectRoot": true,
|
|
642
|
+
"clineRulesSurface": true,
|
|
643
|
+
"localCommandsViaRules": true
|
|
572
644
|
}
|
|
573
645
|
}
|
|
574
646
|
},
|
|
575
647
|
"code-review": {
|
|
576
648
|
"id": "code-review",
|
|
577
649
|
"role": "feature",
|
|
578
|
-
"version": "1.7.0-rc.
|
|
650
|
+
"version": "1.7.0-rc.6",
|
|
579
651
|
"title": "Code review",
|
|
580
652
|
"description": "Source-file code review and review-fix workflow support for completed execution work.",
|
|
581
653
|
"tier": "full",
|
|
@@ -636,7 +708,7 @@ const capabilities = {
|
|
|
636
708
|
"codebuddy": {
|
|
637
709
|
"id": "codebuddy",
|
|
638
710
|
"role": "runtime",
|
|
639
|
-
"version": "1.7.0-rc.
|
|
711
|
+
"version": "1.7.0-rc.6",
|
|
640
712
|
"title": "CodeBuddy",
|
|
641
713
|
"description": "CodeBuddy (Tencent) — converted commands + skills artifact layout; settings-json hook surface; Claude hook event dialect; tier-2 support.",
|
|
642
714
|
"tier": "core",
|
|
@@ -716,7 +788,12 @@ const capabilities = {
|
|
|
716
788
|
"installSurface": "settings-json",
|
|
717
789
|
"writesSharedSettings": true,
|
|
718
790
|
"permissionWriter": null,
|
|
719
|
-
"extendedHookEvents": [
|
|
791
|
+
"extendedHookEvents": [
|
|
792
|
+
"SubagentStop",
|
|
793
|
+
"Stop",
|
|
794
|
+
"PreCompact",
|
|
795
|
+
"SubagentStart"
|
|
796
|
+
],
|
|
720
797
|
"hostIntegration": {
|
|
721
798
|
"embeddingMode": "declarative",
|
|
722
799
|
"commandSurface": "slash-file",
|
|
@@ -733,13 +810,16 @@ const capabilities = {
|
|
|
733
810
|
"stateIO": "filesystem",
|
|
734
811
|
"transport": "mcp",
|
|
735
812
|
"runtime": "node"
|
|
813
|
+
},
|
|
814
|
+
"hostBehaviors": {
|
|
815
|
+
"reportCommandsDir": true
|
|
736
816
|
}
|
|
737
817
|
}
|
|
738
818
|
},
|
|
739
819
|
"codex": {
|
|
740
820
|
"id": "codex",
|
|
741
821
|
"role": "runtime",
|
|
742
|
-
"version": "1.7.0-rc.
|
|
822
|
+
"version": "1.7.0-rc.6",
|
|
743
823
|
"title": "OpenAI Codex CLI",
|
|
744
824
|
"description": "OpenAI Codex CLI — shell-var command style; per-agent sandbox tiers; config.toml + hooks.json hook surface; tier-1 support.",
|
|
745
825
|
"tier": "core",
|
|
@@ -765,7 +845,8 @@ const capabilities = {
|
|
|
765
845
|
"prefix": "gsd-",
|
|
766
846
|
"nesting": "flat",
|
|
767
847
|
"recursive": false,
|
|
768
|
-
"converter": "convertClaudeCommandToCodexSkill"
|
|
848
|
+
"converter": "convertClaudeCommandToCodexSkill",
|
|
849
|
+
"home": ".agents"
|
|
769
850
|
}
|
|
770
851
|
],
|
|
771
852
|
"local": [
|
|
@@ -775,7 +856,8 @@ const capabilities = {
|
|
|
775
856
|
"prefix": "gsd-",
|
|
776
857
|
"nesting": "flat",
|
|
777
858
|
"recursive": false,
|
|
778
|
-
"converter": "convertClaudeCommandToCodexSkill"
|
|
859
|
+
"converter": "convertClaudeCommandToCodexSkill",
|
|
860
|
+
"home": ".agents"
|
|
779
861
|
}
|
|
780
862
|
]
|
|
781
863
|
},
|
|
@@ -787,7 +869,11 @@ const capabilities = {
|
|
|
787
869
|
"installSurface": "codex-toml",
|
|
788
870
|
"writesSharedSettings": false,
|
|
789
871
|
"permissionWriter": null,
|
|
790
|
-
"extendedHookEvents": [
|
|
872
|
+
"extendedHookEvents": [
|
|
873
|
+
"SubagentStop",
|
|
874
|
+
"Stop",
|
|
875
|
+
"PreCompact"
|
|
876
|
+
],
|
|
791
877
|
"hostIntegration": {
|
|
792
878
|
"embeddingMode": "declarative",
|
|
793
879
|
"commandSurface": "slash-file",
|
|
@@ -804,13 +890,21 @@ const capabilities = {
|
|
|
804
890
|
"stateIO": "filesystem",
|
|
805
891
|
"transport": "mcp",
|
|
806
892
|
"runtime": "node"
|
|
893
|
+
},
|
|
894
|
+
"hostBehaviors": {
|
|
895
|
+
"reapplyCommand": "$gsd-update --reapply",
|
|
896
|
+
"tomlConfigInstall": true,
|
|
897
|
+
"cleanupSkillSidecars": true,
|
|
898
|
+
"agentTomlFiles": true,
|
|
899
|
+
"frontmatterDialect": "codex",
|
|
900
|
+
"reviewerCli": true
|
|
807
901
|
}
|
|
808
902
|
}
|
|
809
903
|
},
|
|
810
904
|
"copilot": {
|
|
811
905
|
"id": "copilot",
|
|
812
906
|
"role": "runtime",
|
|
813
|
-
"version": "1.7.0-rc.
|
|
907
|
+
"version": "1.7.0-rc.6",
|
|
814
908
|
"title": "GitHub Copilot",
|
|
815
909
|
"description": "GitHub Copilot (VS Code) — markdown config format; copilot-inline hook surface; no hook events emitted; flat skill nesting (unconfirmed recursive loader); tier-2 support.",
|
|
816
910
|
"tier": "core",
|
|
@@ -891,13 +985,19 @@ const capabilities = {
|
|
|
891
985
|
"stateIO": "filesystem",
|
|
892
986
|
"transport": "mcp",
|
|
893
987
|
"runtime": "undocumented"
|
|
988
|
+
},
|
|
989
|
+
"hostBehaviors": {
|
|
990
|
+
"reapplyCommand": "/gsd-update --reapply",
|
|
991
|
+
"agentFileExtension": ".agent.md",
|
|
992
|
+
"skipSharedHooksInstall": true,
|
|
993
|
+
"noPathRewrite": true
|
|
894
994
|
}
|
|
895
995
|
}
|
|
896
996
|
},
|
|
897
997
|
"cursor": {
|
|
898
998
|
"id": "cursor",
|
|
899
999
|
"role": "runtime",
|
|
900
|
-
"version": "1.7.0-rc.
|
|
1000
|
+
"version": "1.7.0-rc.6",
|
|
901
1001
|
"title": "Cursor",
|
|
902
1002
|
"description": "Cursor IDE — skills + converted commands artifact layout; hooks.json surface; Claude hook event dialect; recursive skill loader (flat nesting); tier-2 support.",
|
|
903
1003
|
"tier": "core",
|
|
@@ -994,13 +1094,31 @@ const capabilities = {
|
|
|
994
1094
|
"stateIO": "filesystem",
|
|
995
1095
|
"transport": "mcp",
|
|
996
1096
|
"runtime": "node"
|
|
1097
|
+
},
|
|
1098
|
+
"hostBehaviors": {
|
|
1099
|
+
"reapplyCommand": "gsd-update --reapply (mention the skill name)",
|
|
1100
|
+
"frontmatterDialect": "cursor",
|
|
1101
|
+
"hooksJsonSurface": true,
|
|
1102
|
+
"skipSharedHooksInstall": true,
|
|
1103
|
+
"reportCommandsDir": true,
|
|
1104
|
+
"skipUpdateBannerCommand": true,
|
|
1105
|
+
"skipSettingsUi": true,
|
|
1106
|
+
"managedHookEvents": [
|
|
1107
|
+
"sessionStart",
|
|
1108
|
+
"postToolUse",
|
|
1109
|
+
"preToolUse",
|
|
1110
|
+
"stop",
|
|
1111
|
+
"subagentStart",
|
|
1112
|
+
"subagentStop"
|
|
1113
|
+
],
|
|
1114
|
+
"reviewerCli": true
|
|
997
1115
|
}
|
|
998
1116
|
}
|
|
999
1117
|
},
|
|
1000
1118
|
"drift": {
|
|
1001
1119
|
"id": "drift",
|
|
1002
1120
|
"role": "feature",
|
|
1003
|
-
"version": "1.7.0-rc.
|
|
1121
|
+
"version": "1.7.0-rc.6",
|
|
1004
1122
|
"title": "Drift detection gates",
|
|
1005
1123
|
"description": "Drift detection gates for the planning loop. At execute:wave:post: a blocking schema drift gate (detects schema files changed without a database push) and a non-blocking codebase drift gate (detects structural additions not reflected in STRUCTURE.md). At plan:pre: a non-blocking, warn-only codebase drift gate (gated on workflow.plan_drift_precheck) that flags a stale codebase map before planning, so plans are authored against a fresh STRUCTURE.md instead of discovering drift mid-execution.",
|
|
1006
1124
|
"tier": "full",
|
|
@@ -1078,7 +1196,7 @@ const capabilities = {
|
|
|
1078
1196
|
"external-job": {
|
|
1079
1197
|
"id": "external-job",
|
|
1080
1198
|
"role": "feature",
|
|
1081
|
-
"version": "1.7.0-rc.
|
|
1199
|
+
"version": "1.7.0-rc.6",
|
|
1082
1200
|
"title": "Async external-job scheduler adapter",
|
|
1083
1201
|
"description": "Default-off producer of the async external-job manifest (#1164). At execute:wave:post an executor can externalize long-running compute (SLURM first, scheduler-pluggable), commit a .planning/async-jobs/<job>.json manifest, defer SUMMARY.md, and return external_job_waiting. The core loop (#1165) consumes the manifest; this capability is the only thing that writes it. NOTE on contribution point: #1164 specifies execute:wave:pre, but execute-phase.md only dispatches execute:wave:post today (wave:pre is declared in the loop host contract but not rendered); wiring wave:pre dispatch is a core-loop change #1164 explicitly puts out of scope, so this capability registers at wave:post and the executor honors the runtime_budget classification guidance before running any tagged task. The adapter (scripts/slurm-adapter.cjs) reads external_job.submit_timeout_ms / poll_timeout_ms / artifact_dir through the canonical capability-config seam (env override > config > registry default).",
|
|
1084
1202
|
"tier": "full",
|
|
@@ -1161,7 +1279,7 @@ const capabilities = {
|
|
|
1161
1279
|
"gap-analysis": {
|
|
1162
1280
|
"id": "gap-analysis",
|
|
1163
1281
|
"role": "feature",
|
|
1164
|
-
"version": "1.7.0-rc.
|
|
1282
|
+
"version": "1.7.0-rc.6",
|
|
1165
1283
|
"title": "Post-planning gap analysis",
|
|
1166
1284
|
"description": "Proactive, non-blocking post-planning coverage report. After all PLAN.md files are generated, cross-references every REQ-ID and D-ID from REQUIREMENTS.md and CONTEXT.md against plan bodies. Emits a Source | Item | Status table. Does not block phase advancement.",
|
|
1167
1285
|
"tier": "standard",
|
|
@@ -1202,7 +1320,7 @@ const capabilities = {
|
|
|
1202
1320
|
"graphify": {
|
|
1203
1321
|
"id": "graphify",
|
|
1204
1322
|
"role": "feature",
|
|
1205
|
-
"version": "1.7.0-rc.
|
|
1323
|
+
"version": "1.7.0-rc.6",
|
|
1206
1324
|
"title": "Knowledge graph",
|
|
1207
1325
|
"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.",
|
|
1208
1326
|
"tier": "full",
|
|
@@ -1243,7 +1361,7 @@ const capabilities = {
|
|
|
1243
1361
|
"hermes": {
|
|
1244
1362
|
"id": "hermes",
|
|
1245
1363
|
"role": "runtime",
|
|
1246
|
-
"version": "1.7.0-rc.
|
|
1364
|
+
"version": "1.7.0-rc.6",
|
|
1247
1365
|
"title": "Hermes Agent",
|
|
1248
1366
|
"description": "Hermes Agent (NousResearch) — skills nest under skills/gsd/ category bucket; nested skill layout; settings-json hook surface; Claude hook event dialect; tier-2 support.",
|
|
1249
1367
|
"tier": "core",
|
|
@@ -1292,6 +1410,24 @@ const capabilities = {
|
|
|
1292
1410
|
"writesSharedSettings": true,
|
|
1293
1411
|
"permissionWriter": null,
|
|
1294
1412
|
"extendedHookEvents": [],
|
|
1413
|
+
"extensionEvents": "hermes",
|
|
1414
|
+
"hostBehaviors": {
|
|
1415
|
+
"skillFrontmatterVersion": true,
|
|
1416
|
+
"skillsManifestPrefix": "skills/gsd/",
|
|
1417
|
+
"trackCategoryDescription": true,
|
|
1418
|
+
"writeCategoryDescription": true,
|
|
1419
|
+
"reportSkillsCount": true,
|
|
1420
|
+
"legacyCommandsGsdCleanup": true,
|
|
1421
|
+
"brandingRewrites": {
|
|
1422
|
+
"CLAUDE.md": "HERMES.md",
|
|
1423
|
+
"Claude Code": "Hermes Agent",
|
|
1424
|
+
".claude/": ".hermes/"
|
|
1425
|
+
},
|
|
1426
|
+
"reapplyCommand": "gsd-update --reapply (mention the skill name)",
|
|
1427
|
+
"legacyCommandsGsdInstallMigration": true,
|
|
1428
|
+
"legacyCommandsGsdUninstall": true,
|
|
1429
|
+
"hyphenNameAgentBody": true
|
|
1430
|
+
},
|
|
1295
1431
|
"hostIntegration": {
|
|
1296
1432
|
"embeddingMode": "imperative",
|
|
1297
1433
|
"commandSurface": "slash-programmatic",
|
|
@@ -1314,7 +1450,7 @@ const capabilities = {
|
|
|
1314
1450
|
"intel": {
|
|
1315
1451
|
"id": "intel",
|
|
1316
1452
|
"role": "feature",
|
|
1317
|
-
"version": "1.7.0-rc.
|
|
1453
|
+
"version": "1.7.0-rc.6",
|
|
1318
1454
|
"title": "Codebase intelligence",
|
|
1319
1455
|
"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`.",
|
|
1320
1456
|
"tier": "full",
|
|
@@ -1366,7 +1502,7 @@ const capabilities = {
|
|
|
1366
1502
|
"kilo": {
|
|
1367
1503
|
"id": "kilo",
|
|
1368
1504
|
"role": "runtime",
|
|
1369
|
-
"version": "1.7.0-rc.
|
|
1505
|
+
"version": "1.7.0-rc.6",
|
|
1370
1506
|
"title": "Kilo Code",
|
|
1371
1507
|
"description": "Kilo Code — XDG-based config dir; global skills at ~/.kilo/skills (separate from XDG config); flat command/ + skills artifact layout; no lifecycle hook registration; tier-2 support.",
|
|
1372
1508
|
"tier": "core",
|
|
@@ -1431,6 +1567,7 @@ const capabilities = {
|
|
|
1431
1567
|
},
|
|
1432
1568
|
"commandStyle": "slash-hyphen",
|
|
1433
1569
|
"hooksSurface": "none",
|
|
1570
|
+
"extensionEvents": "kilo",
|
|
1434
1571
|
"sandboxTier": "none",
|
|
1435
1572
|
"supportTier": 2,
|
|
1436
1573
|
"installSurface": "settings-json",
|
|
@@ -1453,15 +1590,29 @@ const capabilities = {
|
|
|
1453
1590
|
"stateIO": "filesystem",
|
|
1454
1591
|
"transport": "mcp",
|
|
1455
1592
|
"runtime": "bun"
|
|
1593
|
+
},
|
|
1594
|
+
"hostBehaviors": {
|
|
1595
|
+
"reapplyCommand": "/gsd-update --reapply",
|
|
1596
|
+
"attributionConfigResolver": "kilo",
|
|
1597
|
+
"flatCommandDir": "command",
|
|
1598
|
+
"combinedFamilyInstall": true,
|
|
1599
|
+
"frontmatterDialect": "kilo",
|
|
1600
|
+
"nativePlugin": {
|
|
1601
|
+
"dir": "plugins",
|
|
1602
|
+
"file": "gsd-core.js",
|
|
1603
|
+
"source": ".kilo/plugins/gsd-core.js"
|
|
1604
|
+
},
|
|
1605
|
+
"skipUpdateBannerCommand": true,
|
|
1606
|
+
"skipSharedHooksInstall": true
|
|
1456
1607
|
}
|
|
1457
1608
|
}
|
|
1458
1609
|
},
|
|
1459
1610
|
"kimi": {
|
|
1460
1611
|
"id": "kimi",
|
|
1461
1612
|
"role": "runtime",
|
|
1462
|
-
"version": "1.7.0-rc.
|
|
1613
|
+
"version": "1.7.0-rc.6",
|
|
1463
1614
|
"title": "Kimi CLI",
|
|
1464
|
-
"description": "Kimi CLI (Moonshot AI) — generic agents root at ~/.config/agents; skills + kimi-agents artifact layout;
|
|
1615
|
+
"description": "Kimi CLI (Moonshot AI) — generic agents root at ~/.config/agents; skills + kimi-agents artifact layout; native config.toml [[hooks]] bus at ~/.kimi/config.toml; background dispatch; tier-2 support.",
|
|
1465
1616
|
"tier": "core",
|
|
1466
1617
|
"requires": [],
|
|
1467
1618
|
"engines": {
|
|
@@ -1504,13 +1655,19 @@ const capabilities = {
|
|
|
1504
1655
|
"local": []
|
|
1505
1656
|
},
|
|
1506
1657
|
"commandStyle": "slash-hyphen",
|
|
1507
|
-
"hooksSurface": "
|
|
1658
|
+
"hooksSurface": "kimi-hooks-toml",
|
|
1659
|
+
"hookEvents": "claude",
|
|
1508
1660
|
"sandboxTier": "none",
|
|
1509
1661
|
"supportTier": 2,
|
|
1510
1662
|
"installSurface": "profile-marker-only",
|
|
1511
1663
|
"writesSharedSettings": false,
|
|
1512
1664
|
"permissionWriter": null,
|
|
1513
|
-
"extendedHookEvents": [
|
|
1665
|
+
"extendedHookEvents": [
|
|
1666
|
+
"SubagentStop",
|
|
1667
|
+
"Stop",
|
|
1668
|
+
"PreCompact",
|
|
1669
|
+
"SubagentStart"
|
|
1670
|
+
],
|
|
1514
1671
|
"hostIntegration": {
|
|
1515
1672
|
"embeddingMode": "imperative",
|
|
1516
1673
|
"commandSurface": "slash-file",
|
|
@@ -1520,20 +1677,28 @@ const capabilities = {
|
|
|
1520
1677
|
"maxDepth": 1,
|
|
1521
1678
|
"background": true,
|
|
1522
1679
|
"subagentToolkit": "undocumented",
|
|
1523
|
-
"backgroundDispatch":
|
|
1680
|
+
"backgroundDispatch": true
|
|
1524
1681
|
},
|
|
1525
1682
|
"modelMode": "passive",
|
|
1526
1683
|
"hookBus": "host",
|
|
1527
1684
|
"stateIO": "filesystem",
|
|
1528
1685
|
"transport": "mcp",
|
|
1529
1686
|
"runtime": "python"
|
|
1687
|
+
},
|
|
1688
|
+
"hostBehaviors": {
|
|
1689
|
+
"reapplyCommand": "/skill:gsd-update --reapply",
|
|
1690
|
+
"localInstallDeferred": true,
|
|
1691
|
+
"verificationStyle": "kimi",
|
|
1692
|
+
"agentManifestStyle": "kimi-nested",
|
|
1693
|
+
"doneBannerStyle": "kimi-agent-file",
|
|
1694
|
+
"skipSharedHooksInstall": true
|
|
1530
1695
|
}
|
|
1531
1696
|
}
|
|
1532
1697
|
},
|
|
1533
1698
|
"mempalace": {
|
|
1534
1699
|
"id": "mempalace",
|
|
1535
1700
|
"role": "feature",
|
|
1536
|
-
"version": "1.7.0-rc.
|
|
1701
|
+
"version": "1.7.0-rc.6",
|
|
1537
1702
|
"title": "MemPalace memory",
|
|
1538
1703
|
"description": "Cross-session, cross-project memory: deliberate recall before discuss/plan and verbatim capture + temporal-KG sync at phase boundaries, via the MemPalace MCP server and CLI.",
|
|
1539
1704
|
"tier": "full",
|
|
@@ -1707,7 +1872,7 @@ const capabilities = {
|
|
|
1707
1872
|
"nyquist": {
|
|
1708
1873
|
"id": "nyquist",
|
|
1709
1874
|
"role": "feature",
|
|
1710
|
-
"version": "1.7.0-rc.
|
|
1875
|
+
"version": "1.7.0-rc.6",
|
|
1711
1876
|
"title": "Nyquist validation",
|
|
1712
1877
|
"description": "Validation coverage audit that maps executed work back to tests and manual-only evidence.",
|
|
1713
1878
|
"tier": "full",
|
|
@@ -1757,7 +1922,7 @@ const capabilities = {
|
|
|
1757
1922
|
"opencode": {
|
|
1758
1923
|
"id": "opencode",
|
|
1759
1924
|
"role": "runtime",
|
|
1760
|
-
"version": "1.7.0-rc.
|
|
1925
|
+
"version": "1.7.0-rc.6",
|
|
1761
1926
|
"title": "OpenCode",
|
|
1762
1927
|
"description": "OpenCode — XDG-based config dir; flat command/ + skills artifact layout; settings-json config format; no lifecycle hook registration; tier-2 support.",
|
|
1763
1928
|
"tier": "core",
|
|
@@ -1831,22 +1996,39 @@ const capabilities = {
|
|
|
1831
1996
|
"namedDispatch": true,
|
|
1832
1997
|
"nested": "undocumented",
|
|
1833
1998
|
"maxDepth": "undocumented",
|
|
1834
|
-
"background":
|
|
1999
|
+
"background": true,
|
|
1835
2000
|
"subagentToolkit": "full",
|
|
1836
|
-
"backgroundDispatch":
|
|
2001
|
+
"backgroundDispatch": true
|
|
1837
2002
|
},
|
|
1838
2003
|
"modelMode": "active",
|
|
1839
2004
|
"hookBus": "host",
|
|
1840
2005
|
"stateIO": "filesystem",
|
|
1841
2006
|
"transport": "mcp",
|
|
1842
2007
|
"runtime": "bun"
|
|
2008
|
+
},
|
|
2009
|
+
"hostBehaviors": {
|
|
2010
|
+
"reapplyCommand": "/gsd-update --reapply",
|
|
2011
|
+
"attributionConfigResolver": "opencode",
|
|
2012
|
+
"flatCommandDir": "command",
|
|
2013
|
+
"combinedFamilyInstall": true,
|
|
2014
|
+
"frontmatterDialect": "opencode",
|
|
2015
|
+
"nativePlugin": {
|
|
2016
|
+
"dir": "plugins",
|
|
2017
|
+
"file": "gsd-core.js",
|
|
2018
|
+
"source": ".opencode/plugins/gsd-core.js"
|
|
2019
|
+
},
|
|
2020
|
+
"skipHomePrefixSubstitution": true,
|
|
2021
|
+
"skipSettingsUi": true,
|
|
2022
|
+
"skipUpdateBannerCommand": true,
|
|
2023
|
+
"skipCodexSkillsManifest": true,
|
|
2024
|
+
"reviewerCli": true
|
|
1843
2025
|
}
|
|
1844
2026
|
}
|
|
1845
2027
|
},
|
|
1846
2028
|
"pattern-mapper": {
|
|
1847
2029
|
"id": "pattern-mapper",
|
|
1848
2030
|
"role": "feature",
|
|
1849
|
-
"version": "1.7.0-rc.
|
|
2031
|
+
"version": "1.7.0-rc.6",
|
|
1850
2032
|
"title": "Pattern mapping",
|
|
1851
2033
|
"description": "Optional codebase-pattern mapping before planning; owns the pattern mapper agent and workflow.pattern_mapper activation key.",
|
|
1852
2034
|
"tier": "full",
|
|
@@ -1897,10 +2079,70 @@ const capabilities = {
|
|
|
1897
2079
|
"contributions": [],
|
|
1898
2080
|
"gates": []
|
|
1899
2081
|
},
|
|
2082
|
+
"pi": {
|
|
2083
|
+
"id": "pi",
|
|
2084
|
+
"role": "runtime",
|
|
2085
|
+
"version": "1.7.0-rc.6",
|
|
2086
|
+
"title": "pi",
|
|
2087
|
+
"description": "pi (pi.dev) — bun-runtime programmatic-CLI; TS ExtensionAPI (registerCommand/registerTool/registerProvider/pi.on); single native-extension file at ~/.pi/agent/extensions/gsd.cjs; no shared-settings hook surface; tier-2 support.",
|
|
2088
|
+
"tier": "core",
|
|
2089
|
+
"requires": [],
|
|
2090
|
+
"engines": {
|
|
2091
|
+
"gsd": ">=1.7.0"
|
|
2092
|
+
},
|
|
2093
|
+
"runtime": {
|
|
2094
|
+
"configHome": {
|
|
2095
|
+
"kind": "dot-home-nested",
|
|
2096
|
+
"name": "agent",
|
|
2097
|
+
"parent": ".pi",
|
|
2098
|
+
"env": []
|
|
2099
|
+
},
|
|
2100
|
+
"localConfigDir": ".pi",
|
|
2101
|
+
"configFormat": "none",
|
|
2102
|
+
"artifactLayout": {
|
|
2103
|
+
"global": [],
|
|
2104
|
+
"local": []
|
|
2105
|
+
},
|
|
2106
|
+
"commandStyle": "slash-hyphen",
|
|
2107
|
+
"hooksSurface": "none",
|
|
2108
|
+
"extensionEvents": "pi",
|
|
2109
|
+
"sandboxTier": "none",
|
|
2110
|
+
"supportTier": 2,
|
|
2111
|
+
"installSurface": "profile-marker-only",
|
|
2112
|
+
"writesSharedSettings": false,
|
|
2113
|
+
"permissionWriter": null,
|
|
2114
|
+
"extendedHookEvents": [],
|
|
2115
|
+
"hostIntegration": {
|
|
2116
|
+
"embeddingMode": "imperative",
|
|
2117
|
+
"commandSurface": "slash-programmatic",
|
|
2118
|
+
"dispatch": {
|
|
2119
|
+
"namedDispatch": false,
|
|
2120
|
+
"nested": false,
|
|
2121
|
+
"maxDepth": 0,
|
|
2122
|
+
"background": false,
|
|
2123
|
+
"backgroundDispatch": false,
|
|
2124
|
+
"subagentToolkit": "undocumented"
|
|
2125
|
+
},
|
|
2126
|
+
"modelMode": "active",
|
|
2127
|
+
"hookBus": "host",
|
|
2128
|
+
"stateIO": "session-log-append",
|
|
2129
|
+
"transport": "native-extension",
|
|
2130
|
+
"runtime": "bun"
|
|
2131
|
+
},
|
|
2132
|
+
"hostBehaviors": {
|
|
2133
|
+
"nativePlugin": {
|
|
2134
|
+
"dir": "extensions",
|
|
2135
|
+
"file": "gsd.cjs",
|
|
2136
|
+
"source": "pi/gsd.cjs"
|
|
2137
|
+
},
|
|
2138
|
+
"pluginOnlyInstall": true
|
|
2139
|
+
}
|
|
2140
|
+
}
|
|
2141
|
+
},
|
|
1900
2142
|
"profile-pipeline": {
|
|
1901
2143
|
"id": "profile-pipeline",
|
|
1902
2144
|
"role": "feature",
|
|
1903
|
-
"version": "1.7.0-rc.
|
|
2145
|
+
"version": "1.7.0-rc.6",
|
|
1904
2146
|
"title": "Developer profiling pipeline",
|
|
1905
2147
|
"description": "Developer behavioral profiling from Claude Code session history; scans session JSONL files, extracts and samples user messages, and generates profile artifacts (USER-PROFILE.md, dev-preferences.md, CLAUDE.md sections). Exposes eight `gsd-tools` commands: scan-sessions, extract-messages, profile-sample (pipeline phase) and write-profile, profile-questionnaire, generate-dev-preferences, generate-claude-profile, generate-claude-md (output phase). Backs the /gsd-profile-user skill and gsd-user-profiler agent.",
|
|
1906
2148
|
"tier": "full",
|
|
@@ -1977,7 +2219,7 @@ const capabilities = {
|
|
|
1977
2219
|
"qwen": {
|
|
1978
2220
|
"id": "qwen",
|
|
1979
2221
|
"role": "runtime",
|
|
1980
|
-
"version": "1.7.0-rc.
|
|
2222
|
+
"version": "1.7.0-rc.6",
|
|
1981
2223
|
"title": "Qwen Code",
|
|
1982
2224
|
"description": "Qwen Code (Alibaba) — nested-skill artifact layout; settings-json hook surface; Claude hook event dialect; tier-2 support.",
|
|
1983
2225
|
"tier": "core",
|
|
@@ -2004,6 +2246,14 @@ const capabilities = {
|
|
|
2004
2246
|
"nesting": "nested",
|
|
2005
2247
|
"recursive": false,
|
|
2006
2248
|
"converter": "convertClaudeCommandToClaudeSkill"
|
|
2249
|
+
},
|
|
2250
|
+
{
|
|
2251
|
+
"kind": "agents",
|
|
2252
|
+
"destSubpath": "agents",
|
|
2253
|
+
"prefix": "gsd-",
|
|
2254
|
+
"nesting": "flat",
|
|
2255
|
+
"recursive": false,
|
|
2256
|
+
"converter": "convertClaudeAgentToQwenAgent"
|
|
2007
2257
|
}
|
|
2008
2258
|
],
|
|
2009
2259
|
"local": [
|
|
@@ -2014,6 +2264,14 @@ const capabilities = {
|
|
|
2014
2264
|
"nesting": "nested",
|
|
2015
2265
|
"recursive": false,
|
|
2016
2266
|
"converter": "convertClaudeCommandToClaudeSkill"
|
|
2267
|
+
},
|
|
2268
|
+
{
|
|
2269
|
+
"kind": "agents",
|
|
2270
|
+
"destSubpath": "agents",
|
|
2271
|
+
"prefix": "gsd-",
|
|
2272
|
+
"nesting": "flat",
|
|
2273
|
+
"recursive": false,
|
|
2274
|
+
"converter": "convertClaudeAgentToQwenAgent"
|
|
2017
2275
|
}
|
|
2018
2276
|
]
|
|
2019
2277
|
},
|
|
@@ -2028,7 +2286,8 @@ const capabilities = {
|
|
|
2028
2286
|
"extendedHookEvents": [
|
|
2029
2287
|
"SubagentStop",
|
|
2030
2288
|
"Stop",
|
|
2031
|
-
"PreCompact"
|
|
2289
|
+
"PreCompact",
|
|
2290
|
+
"SubagentStart"
|
|
2032
2291
|
],
|
|
2033
2292
|
"hostIntegration": {
|
|
2034
2293
|
"embeddingMode": "imperative",
|
|
@@ -2046,13 +2305,26 @@ const capabilities = {
|
|
|
2046
2305
|
"stateIO": "filesystem",
|
|
2047
2306
|
"transport": "mcp",
|
|
2048
2307
|
"runtime": "node"
|
|
2308
|
+
},
|
|
2309
|
+
"hostBehaviors": {
|
|
2310
|
+
"skillPriorityFrontmatter": true,
|
|
2311
|
+
"brandingRewrites": {
|
|
2312
|
+
"CLAUDE.md": "QWEN.md",
|
|
2313
|
+
"Claude Code": "Qwen Code",
|
|
2314
|
+
".claude/": ".qwen/"
|
|
2315
|
+
},
|
|
2316
|
+
"legacyCommandsGsdCleanup": true,
|
|
2317
|
+
"legacyCommandsGsdInstallMigration": true,
|
|
2318
|
+
"legacyCommandsGsdUninstall": true,
|
|
2319
|
+
"hyphenNameAgentBody": true,
|
|
2320
|
+
"reviewerCli": true
|
|
2049
2321
|
}
|
|
2050
2322
|
}
|
|
2051
2323
|
},
|
|
2052
2324
|
"research": {
|
|
2053
2325
|
"id": "research",
|
|
2054
2326
|
"role": "feature",
|
|
2055
|
-
"version": "1.7.0-rc.
|
|
2327
|
+
"version": "1.7.0-rc.6",
|
|
2056
2328
|
"title": "Phase research",
|
|
2057
2329
|
"description": "Optional phase research before planning; owns the phase researcher agent and workflow.research activation key.",
|
|
2058
2330
|
"tier": "standard",
|
|
@@ -2104,7 +2376,7 @@ const capabilities = {
|
|
|
2104
2376
|
"schema-gate": {
|
|
2105
2377
|
"id": "schema-gate",
|
|
2106
2378
|
"role": "feature",
|
|
2107
|
-
"version": "1.7.0-rc.
|
|
2379
|
+
"version": "1.7.0-rc.6",
|
|
2108
2380
|
"title": "Schema push detection gate",
|
|
2109
2381
|
"description": "Detects ORM schema-relevant files in the phase scope during planning and injects a mandatory [BLOCKING] schema push task into the plan. Prevents false-positive verification where build/types pass because TypeScript types come from config, not the live database.",
|
|
2110
2382
|
"tier": "full",
|
|
@@ -2150,7 +2422,7 @@ const capabilities = {
|
|
|
2150
2422
|
"security": {
|
|
2151
2423
|
"id": "security",
|
|
2152
2424
|
"role": "feature",
|
|
2153
|
-
"version": "1.7.0-rc.
|
|
2425
|
+
"version": "1.7.0-rc.6",
|
|
2154
2426
|
"title": "Security enforcement",
|
|
2155
2427
|
"description": "Threat mitigation verification and ship-time security blocking for phases with security enforcement enabled.",
|
|
2156
2428
|
"tier": "full",
|
|
@@ -2249,7 +2521,7 @@ const capabilities = {
|
|
|
2249
2521
|
"tdd": {
|
|
2250
2522
|
"id": "tdd",
|
|
2251
2523
|
"role": "feature",
|
|
2252
|
-
"version": "1.7.0-rc.
|
|
2524
|
+
"version": "1.7.0-rc.6",
|
|
2253
2525
|
"title": "Test-driven development",
|
|
2254
2526
|
"description": "Injects TDD heuristics into the planner and enforces RED/GREEN gate compliance on type:tdd plans after execution. Owns workflow.tdd_mode; the --tdd CLI flag is the ephemeral override.",
|
|
2255
2527
|
"tier": "full",
|
|
@@ -2302,7 +2574,7 @@ const capabilities = {
|
|
|
2302
2574
|
"trae": {
|
|
2303
2575
|
"id": "trae",
|
|
2304
2576
|
"role": "runtime",
|
|
2305
|
-
"version": "1.7.0-rc.
|
|
2577
|
+
"version": "1.7.0-rc.6",
|
|
2306
2578
|
"title": "Trae IDE",
|
|
2307
2579
|
"description": "Trae IDE — nested-skill artifact layout; no hook surface (profile-marker-only config); tier-2 support.",
|
|
2308
2580
|
"tier": "core",
|
|
@@ -2382,13 +2654,17 @@ const capabilities = {
|
|
|
2382
2654
|
"stateIO": "filesystem",
|
|
2383
2655
|
"transport": "mcp",
|
|
2384
2656
|
"runtime": "node"
|
|
2657
|
+
},
|
|
2658
|
+
"hostBehaviors": {
|
|
2659
|
+
"skipSharedHooksInstall": true,
|
|
2660
|
+
"soloStageMetadata": "workflow"
|
|
2385
2661
|
}
|
|
2386
2662
|
}
|
|
2387
2663
|
},
|
|
2388
2664
|
"ui": {
|
|
2389
2665
|
"id": "ui",
|
|
2390
2666
|
"role": "feature",
|
|
2391
|
-
"version": "1.7.0-rc.
|
|
2667
|
+
"version": "1.7.0-rc.6",
|
|
2392
2668
|
"title": "UI design contracts",
|
|
2393
2669
|
"description": "UI-SPEC design contract + retrospective UI audit for frontend phases.",
|
|
2394
2670
|
"tier": "full",
|
|
@@ -2480,12 +2756,63 @@ const capabilities = {
|
|
|
2480
2756
|
}
|
|
2481
2757
|
]
|
|
2482
2758
|
},
|
|
2759
|
+
"vscode": {
|
|
2760
|
+
"id": "vscode",
|
|
2761
|
+
"role": "runtime",
|
|
2762
|
+
"version": "1.7.0-rc.6",
|
|
2763
|
+
"title": "VS Code",
|
|
2764
|
+
"description": "VS Code — Marketplace/VSIX extension; no file-projected config directory; IDE-profile reference host (active vscode.lm model, engine-owned hook bus, sandboxed globalState/workspaceState stateIO).",
|
|
2765
|
+
"tier": "core",
|
|
2766
|
+
"requires": [],
|
|
2767
|
+
"engines": {
|
|
2768
|
+
"gsd": ">=1.7.0"
|
|
2769
|
+
},
|
|
2770
|
+
"runtime": {
|
|
2771
|
+
"configHome": {
|
|
2772
|
+
"kind": "none",
|
|
2773
|
+
"name": "vscode",
|
|
2774
|
+
"env": []
|
|
2775
|
+
},
|
|
2776
|
+
"localConfigDir": null,
|
|
2777
|
+
"configFormat": "none",
|
|
2778
|
+
"artifactLayout": {
|
|
2779
|
+
"global": [],
|
|
2780
|
+
"local": []
|
|
2781
|
+
},
|
|
2782
|
+
"commandStyle": "slash-hyphen",
|
|
2783
|
+
"hooksSurface": "none",
|
|
2784
|
+
"extensionEvents": "none",
|
|
2785
|
+
"sandboxTier": "none",
|
|
2786
|
+
"supportTier": 1,
|
|
2787
|
+
"installSurface": "none",
|
|
2788
|
+
"writesSharedSettings": false,
|
|
2789
|
+
"permissionWriter": null,
|
|
2790
|
+
"extendedHookEvents": [],
|
|
2791
|
+
"hostIntegration": {
|
|
2792
|
+
"embeddingMode": "imperative",
|
|
2793
|
+
"commandSurface": "palette",
|
|
2794
|
+
"dispatch": {
|
|
2795
|
+
"namedDispatch": true,
|
|
2796
|
+
"nested": true,
|
|
2797
|
+
"maxDepth": 5,
|
|
2798
|
+
"background": true,
|
|
2799
|
+
"subagentToolkit": "undocumented",
|
|
2800
|
+
"backgroundDispatch": "undocumented"
|
|
2801
|
+
},
|
|
2802
|
+
"modelMode": "active",
|
|
2803
|
+
"hookBus": "engine",
|
|
2804
|
+
"stateIO": "sandboxed-storage",
|
|
2805
|
+
"transport": "mcp",
|
|
2806
|
+
"runtime": "sandboxed-web"
|
|
2807
|
+
}
|
|
2808
|
+
}
|
|
2809
|
+
},
|
|
2483
2810
|
"windsurf": {
|
|
2484
2811
|
"id": "windsurf",
|
|
2485
2812
|
"role": "runtime",
|
|
2486
|
-
"version": "1.7.0-rc.
|
|
2813
|
+
"version": "1.7.0-rc.6",
|
|
2487
2814
|
"title": "Windsurf",
|
|
2488
|
-
"description": "Windsurf (Codeium) — workspace workflow artifact layout for slash commands;
|
|
2815
|
+
"description": "Windsurf (Codeium) — workspace workflow artifact layout for slash commands; Cascade native hooks.json blocking hook bus (pre_write_code, pre_run_command); tier-2 support.",
|
|
2489
2816
|
"tier": "core",
|
|
2490
2817
|
"requires": [],
|
|
2491
2818
|
"engines": {
|
|
@@ -2533,7 +2860,7 @@ const capabilities = {
|
|
|
2533
2860
|
]
|
|
2534
2861
|
},
|
|
2535
2862
|
"commandStyle": "slash-hyphen",
|
|
2536
|
-
"hooksSurface": "
|
|
2863
|
+
"hooksSurface": "windsurf-hooks-json",
|
|
2537
2864
|
"sandboxTier": "none",
|
|
2538
2865
|
"supportTier": 2,
|
|
2539
2866
|
"installSurface": "profile-marker-only",
|
|
@@ -2556,13 +2883,19 @@ const capabilities = {
|
|
|
2556
2883
|
"stateIO": "filesystem",
|
|
2557
2884
|
"transport": "mcp",
|
|
2558
2885
|
"runtime": "undocumented"
|
|
2886
|
+
},
|
|
2887
|
+
"hostBehaviors": {
|
|
2888
|
+
"skipSharedHooksInstall": true,
|
|
2889
|
+
"legacyDevinSkillsCleanup": true,
|
|
2890
|
+
"installsCommandBodiesForWorkflowDelegation": true,
|
|
2891
|
+
"verificationStyle": "windsurf-workflows"
|
|
2559
2892
|
}
|
|
2560
2893
|
}
|
|
2561
2894
|
},
|
|
2562
2895
|
"zcode": {
|
|
2563
2896
|
"id": "zcode",
|
|
2564
2897
|
"role": "runtime",
|
|
2565
|
-
"version": "1.7.0-rc.
|
|
2898
|
+
"version": "1.7.0-rc.6",
|
|
2566
2899
|
"title": "ZCode",
|
|
2567
2900
|
"description": "ZCode (Z.ai) — desktop Agentic Development Environment for GLM-5.2; Claude-shaped nested skills at ~/.zcode/skills/<name>/SKILL.md, slash commands, named subagents, native MCP; declarative plugin surface; profile-marker install; tier-2 community support.",
|
|
2568
2901
|
"tier": "core",
|
|
@@ -2658,6 +2991,9 @@ const capabilities = {
|
|
|
2658
2991
|
"stateIO": "filesystem",
|
|
2659
2992
|
"transport": "mcp",
|
|
2660
2993
|
"runtime": "electron"
|
|
2994
|
+
},
|
|
2995
|
+
"hostBehaviors": {
|
|
2996
|
+
"skipSharedHooksInstall": true
|
|
2661
2997
|
}
|
|
2662
2998
|
}
|
|
2663
2999
|
}
|
|
@@ -2832,6 +3168,23 @@ const byLoopPoint = {
|
|
|
2832
3168
|
}
|
|
2833
3169
|
],
|
|
2834
3170
|
"contributions": [
|
|
3171
|
+
{
|
|
3172
|
+
"capId": "ai-integration",
|
|
3173
|
+
"point": "plan:pre",
|
|
3174
|
+
"into": "planner",
|
|
3175
|
+
"fragment": {
|
|
3176
|
+
"path": "fragments/api-coverage-plan-pre.md",
|
|
3177
|
+
"inline": "# API Coverage Decision Checkpoint\n\n> Full API Coverage by Default — Opt Out, Never Opt In. Fires when a phase\n> integrates an external API / SDK / service. Most non-API phases will not fire\n> it — that is the point.\n\n## Why this exists\n\n\"We integrated the API\" too often silently means \"we integrated whatever the\nfirst use case exercised.\" Every un-built capability is then an invisible hole,\ndiscovered later by a user who reasonably expected it to work. The phase sealed\ngreen because its tasks completed; nobody decided the gaps were acceptable,\nbecause nobody enumerated them. This checkpoint makes the surface **visible and\ndecided** before the phase can seal.\n\n## Detect whether this phase integrates an external API\n\nThe detector is a deterministic scan over the phase scope. It strips fenced\ncode blocks first, so a trigger term inside a code snippet does not fire. It\nreturns a typed result: `{ detected, signals[], terms }`. Run it on the phase\nscope (the concatenation of this phase's ROADMAP section + the PLAN body):\n\n```bash\nSCOPE=\"$(cat \"${PHASE_DIR}\"/*-PLAN.md 2>/dev/null) $(gsd_run query roadmap.get-phase \"${PHASE}\" 2>/dev/null || true)\"\nAPI_COVERAGE_JSON=$(printf '%s' \"$SCOPE\" | node gsd-core/bin/lib/api-coverage.cjs --json 2>/dev/null || echo '{\"detected\":false,\"signals\":[]}')\n```\n\nRead `API_COVERAGE_JSON.detected`. Act on it only — do **not** pattern-match the\nprose yourself.\n\n**If `detected` is `false`:** this phase does not integrate an external API. Skip\nthe checkpoint entirely and continue planning. Do not raise it with the user.\n\n**If `detected` is `true`:** an external-API integration is in scope. You MUST\nproduce a **coverage matrix** before the plan is finalized.\n\n## Produce the coverage matrix\n\nEnumerate the external API's full **capability surface** — the verb/endpoint/method\nlist (e.g. for a music service: `search`, `play`, `pause`, `skip`, `set_volume`,\n`get_playlist`, `create_playlist`, `add_to_playlist`, …). For each capability\nrecord a decision, starting from **full coverage** as the default:\n\n| capability | decision | reason |\n|---|---|---|\n| `<capability-id>` | `INTEGRATE` \\| `OPT-OUT` | `<one-line reason if OPT-OUT>` |\n\nRules:\n\n- **`INTEGRATE` is the default.** Every capability starts as INTEGRATE; the\n matrix is the *subtraction record*.\n- **Every `OPT-OUT` MUST carry a one-line reason** (`not needed`, `not needed\n yet`, `explicitly out of scope`, …). An opt-out without a reason is an\n un-decided hole — the exact failure mode this gate exists to close.\n- **A second integration against the same need** (e.g. a second platform for the\n same capability) starts from the **same full-coverage baseline** as the first.\n Do not carry over the first integration's opt-outs silently — re-decide each\n capability for the new surface, so a first-class/fallback asymmetry cannot\n accumulate.\n\nWrite the matrix to `${PHASE_DIR}/COVERAGE.md` (canonical markdown-table form):\n\n```markdown\n# API Coverage — <service>\n\n> Full coverage by default. Opt-outs are explicit, reasoned decisions.\n\n| capability | decision | reason |\n|---|---|---|\n| search | INTEGRATE | |\n| playlists | INTEGRATE | |\n| skip | OPT-OUT | not needed yet — tracked for follow-up phase |\n```\n\nA fenced ` ```coverage ` JSON block is also accepted for machine-generated\nmatrices; the markdown table is preferred (human-editable, diff-friendly).\n\n## The seal-time gate\n\nThis checkpoint is enforced. At `verify:pre` the `api-coverage.verify-pre` gate\nruns `check api-coverage.verify-pre <phase-dir>`:\n\n- If `COVERAGE.md` exists, it is validated — every row needs a valid decision and\n every `OPT-OUT` a reason. A malformed/partial matrix **blocks the seal**.\n- If `COVERAGE.md` is absent, the detector runs again over the phase scope. If a\n strong external-API-integration signal is found, the seal is **blocked** until a\n matrix is produced. If no signal is found, the phase is treated as a non-API\n phase and the seal proceeds.\n\nSo: an API-integrating phase cannot seal without a decided matrix. Produce it at\nplan time; do not leave it for seal time.\n\n## Tuning the vocabulary (optional)\n\nThe trigger vocabulary is a curated, additive-only set in\n`gsd-core/bin/lib/api-coverage.cjs` (`DEFAULT_API_COVERAGE_TERMS`). To widen it\nfor a project, override at the call site:\n\n```bash\nprintf '%s' \"$SCOPE\" | node gsd-core/bin/lib/api-coverage.cjs --json \\\n --verbs integrate,wrap,connect,embed --nouns api,sdk,rest,grpc,webhook,plugin\n```\n\nThe whole checkpoint is toggleable via `workflow.api_coverage_gate` in\n`.planning/config.json`.\n"
|
|
3178
|
+
},
|
|
3179
|
+
"produces": [
|
|
3180
|
+
"COVERAGE.md"
|
|
3181
|
+
],
|
|
3182
|
+
"consumes": [
|
|
3183
|
+
"CONTEXT.md"
|
|
3184
|
+
],
|
|
3185
|
+
"when": "workflow.api_coverage_gate",
|
|
3186
|
+
"onError": "skip"
|
|
3187
|
+
},
|
|
2835
3188
|
{
|
|
2836
3189
|
"capId": "assumption-delta",
|
|
2837
3190
|
"point": "plan:pre",
|
|
@@ -3101,7 +3454,18 @@ const byLoopPoint = {
|
|
|
3101
3454
|
"verify:pre": {
|
|
3102
3455
|
"steps": [],
|
|
3103
3456
|
"contributions": [],
|
|
3104
|
-
"gates": [
|
|
3457
|
+
"gates": [
|
|
3458
|
+
{
|
|
3459
|
+
"capId": "ai-integration",
|
|
3460
|
+
"point": "verify:pre",
|
|
3461
|
+
"check": {
|
|
3462
|
+
"query": "api-coverage.verify-pre"
|
|
3463
|
+
},
|
|
3464
|
+
"when": "workflow.api_coverage_gate",
|
|
3465
|
+
"blocking": true,
|
|
3466
|
+
"onError": "halt"
|
|
3467
|
+
}
|
|
3468
|
+
]
|
|
3105
3469
|
},
|
|
3106
3470
|
"verify:post": {
|
|
3107
3471
|
"steps": [
|
|
@@ -3211,6 +3575,7 @@ const byLoopPoint = {
|
|
|
3211
3575
|
|
|
3212
3576
|
const configKeys = {
|
|
3213
3577
|
"workflow.ai_integration_phase": "ai-integration",
|
|
3578
|
+
"workflow.api_coverage_gate": "ai-integration",
|
|
3214
3579
|
"workflow.assumption_delta": "assumption-delta",
|
|
3215
3580
|
"claude_orchestration.enabled": "claude-orchestration",
|
|
3216
3581
|
"claude_orchestration.execution_backend": "claude-orchestration",
|
|
@@ -3260,6 +3625,12 @@ const configSchema = {
|
|
|
3260
3625
|
"default": true,
|
|
3261
3626
|
"description": "Prompt for an AI-SPEC design contract before planning phases that involve AI systems."
|
|
3262
3627
|
},
|
|
3628
|
+
"workflow.api_coverage_gate": {
|
|
3629
|
+
"owner": "ai-integration",
|
|
3630
|
+
"type": "boolean",
|
|
3631
|
+
"default": true,
|
|
3632
|
+
"description": "Require an explicit API-coverage decision (full-by-default, opt-out-not-opt-in) before a phase that integrates an external API/SDK/service can seal. At plan:pre the planner is prompted to enumerate the API surface into COVERAGE.md; at verify:pre a blocking gate fails the seal unless the matrix exists with every non-integrated capability an explicit, reasoned opt-out. Independent of ai_integration_phase (applies to any external-API integration, not only AI)."
|
|
3633
|
+
},
|
|
3263
3634
|
"workflow.assumption_delta": {
|
|
3264
3635
|
"owner": "assumption-delta",
|
|
3265
3636
|
"type": "boolean",
|
|
@@ -3535,7 +3906,7 @@ const runtimes = {
|
|
|
3535
3906
|
"antigravity": {
|
|
3536
3907
|
"id": "antigravity",
|
|
3537
3908
|
"role": "runtime",
|
|
3538
|
-
"version": "1.7.0-rc.
|
|
3909
|
+
"version": "1.7.0-rc.6",
|
|
3539
3910
|
"title": "Antigravity",
|
|
3540
3911
|
"description": "Google Antigravity IDE — nested under ~/.gemini/antigravity; probed across 1.x and 2.x layouts; Gemini hook event dialect; flat skill layout; tier-1 support.",
|
|
3541
3912
|
"tier": "core",
|
|
@@ -3605,7 +3976,7 @@ const runtimes = {
|
|
|
3605
3976
|
"supportTier": 1,
|
|
3606
3977
|
"installSurface": "settings-json",
|
|
3607
3978
|
"writesSharedSettings": true,
|
|
3608
|
-
"permissionWriter":
|
|
3979
|
+
"permissionWriter": "antigravity",
|
|
3609
3980
|
"extendedHookEvents": [],
|
|
3610
3981
|
"hostIntegration": {
|
|
3611
3982
|
"embeddingMode": "declarative",
|
|
@@ -3615,7 +3986,7 @@ const runtimes = {
|
|
|
3615
3986
|
"nested": "undocumented",
|
|
3616
3987
|
"maxDepth": "undocumented",
|
|
3617
3988
|
"background": true,
|
|
3618
|
-
"subagentToolkit": "
|
|
3989
|
+
"subagentToolkit": "full",
|
|
3619
3990
|
"backgroundDispatch": "undocumented"
|
|
3620
3991
|
},
|
|
3621
3992
|
"modelMode": "passive",
|
|
@@ -3623,13 +3994,20 @@ const runtimes = {
|
|
|
3623
3994
|
"stateIO": "filesystem",
|
|
3624
3995
|
"transport": "mcp",
|
|
3625
3996
|
"runtime": "go"
|
|
3997
|
+
},
|
|
3998
|
+
"hostBehaviors": {
|
|
3999
|
+
"reviewerCli": true,
|
|
4000
|
+
"projectInstructionFile": "GEMINI.md",
|
|
4001
|
+
"noPathRewrite": true,
|
|
4002
|
+
"hookPathStyle": "raw",
|
|
4003
|
+
"globalDirResolver": "antigravity"
|
|
3626
4004
|
}
|
|
3627
4005
|
}
|
|
3628
4006
|
},
|
|
3629
4007
|
"augment": {
|
|
3630
4008
|
"id": "augment",
|
|
3631
4009
|
"role": "runtime",
|
|
3632
|
-
"version": "1.7.0-rc.
|
|
4010
|
+
"version": "1.7.0-rc.6",
|
|
3633
4011
|
"title": "Augment Code",
|
|
3634
4012
|
"description": "Augment Code CLI — commands + nested-skill artifact layout; settings-json hook surface; Claude hook event dialect; tier-2 support.",
|
|
3635
4013
|
"tier": "core",
|
|
@@ -3710,6 +4088,10 @@ const runtimes = {
|
|
|
3710
4088
|
"writesSharedSettings": true,
|
|
3711
4089
|
"permissionWriter": null,
|
|
3712
4090
|
"extendedHookEvents": [],
|
|
4091
|
+
"hostBehaviors": {
|
|
4092
|
+
"commandBodyConverter": "convertClaudeToAugmentMarkdown",
|
|
4093
|
+
"mcpCompanion": "settings-json"
|
|
4094
|
+
},
|
|
3713
4095
|
"hostIntegration": {
|
|
3714
4096
|
"embeddingMode": "declarative",
|
|
3715
4097
|
"commandSurface": "slash-file",
|
|
@@ -3732,7 +4114,7 @@ const runtimes = {
|
|
|
3732
4114
|
"claude": {
|
|
3733
4115
|
"id": "claude",
|
|
3734
4116
|
"role": "runtime",
|
|
3735
|
-
"version": "1.7.0-rc.
|
|
4117
|
+
"version": "1.7.0-rc.6",
|
|
3736
4118
|
"title": "Claude Code",
|
|
3737
4119
|
"description": "Anthropic Claude Code — primary development runtime; tier-1 support with full hook surface and skills-based global install.",
|
|
3738
4120
|
"tier": "core",
|
|
@@ -3810,13 +4192,34 @@ const runtimes = {
|
|
|
3810
4192
|
"stateIO": "filesystem",
|
|
3811
4193
|
"transport": "mcp",
|
|
3812
4194
|
"runtime": "node"
|
|
4195
|
+
},
|
|
4196
|
+
"hostBehaviors": {
|
|
4197
|
+
"attributionSource": "settings-json-commit",
|
|
4198
|
+
"authorsCanonicalWorkflow": true,
|
|
4199
|
+
"localInstallStyle": "legacy-flat",
|
|
4200
|
+
"permissionsSchema": "claude",
|
|
4201
|
+
"settingsFileByScope": {
|
|
4202
|
+
"local": "settings.local.json",
|
|
4203
|
+
"global": "settings.json"
|
|
4204
|
+
},
|
|
4205
|
+
"sourceMarkerFile": ".gsd-source",
|
|
4206
|
+
"agentFrontmatterExtensions": [
|
|
4207
|
+
"effort"
|
|
4208
|
+
],
|
|
4209
|
+
"ownsClaudePaths": true,
|
|
4210
|
+
"nativeModelAliases": true,
|
|
4211
|
+
"skillsGlobalOnboarding": true,
|
|
4212
|
+
"legacyCommandsGsdInstallMigration": true,
|
|
4213
|
+
"legacyCommandsGsdUninstall": "global",
|
|
4214
|
+
"hyphenNameAgentBody": true,
|
|
4215
|
+
"reviewerCli": true
|
|
3813
4216
|
}
|
|
3814
4217
|
}
|
|
3815
4218
|
},
|
|
3816
4219
|
"cline": {
|
|
3817
4220
|
"id": "cline",
|
|
3818
4221
|
"role": "runtime",
|
|
3819
|
-
"version": "1.7.0-rc.
|
|
4222
|
+
"version": "1.7.0-rc.6",
|
|
3820
4223
|
"title": "Cline",
|
|
3821
4224
|
"description": "Cline (VS Code extension) — global-only nested-skill layout; cline-rules hook surface (.clinerules); no hook events emitted; tier-2 support.",
|
|
3822
4225
|
"tier": "core",
|
|
@@ -3871,13 +4274,21 @@ const runtimes = {
|
|
|
3871
4274
|
"stateIO": "filesystem",
|
|
3872
4275
|
"transport": "mcp",
|
|
3873
4276
|
"runtime": "node"
|
|
4277
|
+
},
|
|
4278
|
+
"hostBehaviors": {
|
|
4279
|
+
"reapplyCommand": "/gsd-update --reapply",
|
|
4280
|
+
"frontmatterDialect": "cline",
|
|
4281
|
+
"skipSharedHooksInstall": true,
|
|
4282
|
+
"localTargetIsProjectRoot": true,
|
|
4283
|
+
"clineRulesSurface": true,
|
|
4284
|
+
"localCommandsViaRules": true
|
|
3874
4285
|
}
|
|
3875
4286
|
}
|
|
3876
4287
|
},
|
|
3877
4288
|
"codebuddy": {
|
|
3878
4289
|
"id": "codebuddy",
|
|
3879
4290
|
"role": "runtime",
|
|
3880
|
-
"version": "1.7.0-rc.
|
|
4291
|
+
"version": "1.7.0-rc.6",
|
|
3881
4292
|
"title": "CodeBuddy",
|
|
3882
4293
|
"description": "CodeBuddy (Tencent) — converted commands + skills artifact layout; settings-json hook surface; Claude hook event dialect; tier-2 support.",
|
|
3883
4294
|
"tier": "core",
|
|
@@ -3957,7 +4368,12 @@ const runtimes = {
|
|
|
3957
4368
|
"installSurface": "settings-json",
|
|
3958
4369
|
"writesSharedSettings": true,
|
|
3959
4370
|
"permissionWriter": null,
|
|
3960
|
-
"extendedHookEvents": [
|
|
4371
|
+
"extendedHookEvents": [
|
|
4372
|
+
"SubagentStop",
|
|
4373
|
+
"Stop",
|
|
4374
|
+
"PreCompact",
|
|
4375
|
+
"SubagentStart"
|
|
4376
|
+
],
|
|
3961
4377
|
"hostIntegration": {
|
|
3962
4378
|
"embeddingMode": "declarative",
|
|
3963
4379
|
"commandSurface": "slash-file",
|
|
@@ -3974,13 +4390,16 @@ const runtimes = {
|
|
|
3974
4390
|
"stateIO": "filesystem",
|
|
3975
4391
|
"transport": "mcp",
|
|
3976
4392
|
"runtime": "node"
|
|
4393
|
+
},
|
|
4394
|
+
"hostBehaviors": {
|
|
4395
|
+
"reportCommandsDir": true
|
|
3977
4396
|
}
|
|
3978
4397
|
}
|
|
3979
4398
|
},
|
|
3980
4399
|
"codex": {
|
|
3981
4400
|
"id": "codex",
|
|
3982
4401
|
"role": "runtime",
|
|
3983
|
-
"version": "1.7.0-rc.
|
|
4402
|
+
"version": "1.7.0-rc.6",
|
|
3984
4403
|
"title": "OpenAI Codex CLI",
|
|
3985
4404
|
"description": "OpenAI Codex CLI — shell-var command style; per-agent sandbox tiers; config.toml + hooks.json hook surface; tier-1 support.",
|
|
3986
4405
|
"tier": "core",
|
|
@@ -4006,7 +4425,8 @@ const runtimes = {
|
|
|
4006
4425
|
"prefix": "gsd-",
|
|
4007
4426
|
"nesting": "flat",
|
|
4008
4427
|
"recursive": false,
|
|
4009
|
-
"converter": "convertClaudeCommandToCodexSkill"
|
|
4428
|
+
"converter": "convertClaudeCommandToCodexSkill",
|
|
4429
|
+
"home": ".agents"
|
|
4010
4430
|
}
|
|
4011
4431
|
],
|
|
4012
4432
|
"local": [
|
|
@@ -4016,7 +4436,8 @@ const runtimes = {
|
|
|
4016
4436
|
"prefix": "gsd-",
|
|
4017
4437
|
"nesting": "flat",
|
|
4018
4438
|
"recursive": false,
|
|
4019
|
-
"converter": "convertClaudeCommandToCodexSkill"
|
|
4439
|
+
"converter": "convertClaudeCommandToCodexSkill",
|
|
4440
|
+
"home": ".agents"
|
|
4020
4441
|
}
|
|
4021
4442
|
]
|
|
4022
4443
|
},
|
|
@@ -4028,7 +4449,11 @@ const runtimes = {
|
|
|
4028
4449
|
"installSurface": "codex-toml",
|
|
4029
4450
|
"writesSharedSettings": false,
|
|
4030
4451
|
"permissionWriter": null,
|
|
4031
|
-
"extendedHookEvents": [
|
|
4452
|
+
"extendedHookEvents": [
|
|
4453
|
+
"SubagentStop",
|
|
4454
|
+
"Stop",
|
|
4455
|
+
"PreCompact"
|
|
4456
|
+
],
|
|
4032
4457
|
"hostIntegration": {
|
|
4033
4458
|
"embeddingMode": "declarative",
|
|
4034
4459
|
"commandSurface": "slash-file",
|
|
@@ -4045,13 +4470,21 @@ const runtimes = {
|
|
|
4045
4470
|
"stateIO": "filesystem",
|
|
4046
4471
|
"transport": "mcp",
|
|
4047
4472
|
"runtime": "node"
|
|
4473
|
+
},
|
|
4474
|
+
"hostBehaviors": {
|
|
4475
|
+
"reapplyCommand": "$gsd-update --reapply",
|
|
4476
|
+
"tomlConfigInstall": true,
|
|
4477
|
+
"cleanupSkillSidecars": true,
|
|
4478
|
+
"agentTomlFiles": true,
|
|
4479
|
+
"frontmatterDialect": "codex",
|
|
4480
|
+
"reviewerCli": true
|
|
4048
4481
|
}
|
|
4049
4482
|
}
|
|
4050
4483
|
},
|
|
4051
4484
|
"copilot": {
|
|
4052
4485
|
"id": "copilot",
|
|
4053
4486
|
"role": "runtime",
|
|
4054
|
-
"version": "1.7.0-rc.
|
|
4487
|
+
"version": "1.7.0-rc.6",
|
|
4055
4488
|
"title": "GitHub Copilot",
|
|
4056
4489
|
"description": "GitHub Copilot (VS Code) — markdown config format; copilot-inline hook surface; no hook events emitted; flat skill nesting (unconfirmed recursive loader); tier-2 support.",
|
|
4057
4490
|
"tier": "core",
|
|
@@ -4132,13 +4565,19 @@ const runtimes = {
|
|
|
4132
4565
|
"stateIO": "filesystem",
|
|
4133
4566
|
"transport": "mcp",
|
|
4134
4567
|
"runtime": "undocumented"
|
|
4568
|
+
},
|
|
4569
|
+
"hostBehaviors": {
|
|
4570
|
+
"reapplyCommand": "/gsd-update --reapply",
|
|
4571
|
+
"agentFileExtension": ".agent.md",
|
|
4572
|
+
"skipSharedHooksInstall": true,
|
|
4573
|
+
"noPathRewrite": true
|
|
4135
4574
|
}
|
|
4136
4575
|
}
|
|
4137
4576
|
},
|
|
4138
4577
|
"cursor": {
|
|
4139
4578
|
"id": "cursor",
|
|
4140
4579
|
"role": "runtime",
|
|
4141
|
-
"version": "1.7.0-rc.
|
|
4580
|
+
"version": "1.7.0-rc.6",
|
|
4142
4581
|
"title": "Cursor",
|
|
4143
4582
|
"description": "Cursor IDE — skills + converted commands artifact layout; hooks.json surface; Claude hook event dialect; recursive skill loader (flat nesting); tier-2 support.",
|
|
4144
4583
|
"tier": "core",
|
|
@@ -4235,13 +4674,31 @@ const runtimes = {
|
|
|
4235
4674
|
"stateIO": "filesystem",
|
|
4236
4675
|
"transport": "mcp",
|
|
4237
4676
|
"runtime": "node"
|
|
4677
|
+
},
|
|
4678
|
+
"hostBehaviors": {
|
|
4679
|
+
"reapplyCommand": "gsd-update --reapply (mention the skill name)",
|
|
4680
|
+
"frontmatterDialect": "cursor",
|
|
4681
|
+
"hooksJsonSurface": true,
|
|
4682
|
+
"skipSharedHooksInstall": true,
|
|
4683
|
+
"reportCommandsDir": true,
|
|
4684
|
+
"skipUpdateBannerCommand": true,
|
|
4685
|
+
"skipSettingsUi": true,
|
|
4686
|
+
"managedHookEvents": [
|
|
4687
|
+
"sessionStart",
|
|
4688
|
+
"postToolUse",
|
|
4689
|
+
"preToolUse",
|
|
4690
|
+
"stop",
|
|
4691
|
+
"subagentStart",
|
|
4692
|
+
"subagentStop"
|
|
4693
|
+
],
|
|
4694
|
+
"reviewerCli": true
|
|
4238
4695
|
}
|
|
4239
4696
|
}
|
|
4240
4697
|
},
|
|
4241
4698
|
"hermes": {
|
|
4242
4699
|
"id": "hermes",
|
|
4243
4700
|
"role": "runtime",
|
|
4244
|
-
"version": "1.7.0-rc.
|
|
4701
|
+
"version": "1.7.0-rc.6",
|
|
4245
4702
|
"title": "Hermes Agent",
|
|
4246
4703
|
"description": "Hermes Agent (NousResearch) — skills nest under skills/gsd/ category bucket; nested skill layout; settings-json hook surface; Claude hook event dialect; tier-2 support.",
|
|
4247
4704
|
"tier": "core",
|
|
@@ -4290,6 +4747,24 @@ const runtimes = {
|
|
|
4290
4747
|
"writesSharedSettings": true,
|
|
4291
4748
|
"permissionWriter": null,
|
|
4292
4749
|
"extendedHookEvents": [],
|
|
4750
|
+
"extensionEvents": "hermes",
|
|
4751
|
+
"hostBehaviors": {
|
|
4752
|
+
"skillFrontmatterVersion": true,
|
|
4753
|
+
"skillsManifestPrefix": "skills/gsd/",
|
|
4754
|
+
"trackCategoryDescription": true,
|
|
4755
|
+
"writeCategoryDescription": true,
|
|
4756
|
+
"reportSkillsCount": true,
|
|
4757
|
+
"legacyCommandsGsdCleanup": true,
|
|
4758
|
+
"brandingRewrites": {
|
|
4759
|
+
"CLAUDE.md": "HERMES.md",
|
|
4760
|
+
"Claude Code": "Hermes Agent",
|
|
4761
|
+
".claude/": ".hermes/"
|
|
4762
|
+
},
|
|
4763
|
+
"reapplyCommand": "gsd-update --reapply (mention the skill name)",
|
|
4764
|
+
"legacyCommandsGsdInstallMigration": true,
|
|
4765
|
+
"legacyCommandsGsdUninstall": true,
|
|
4766
|
+
"hyphenNameAgentBody": true
|
|
4767
|
+
},
|
|
4293
4768
|
"hostIntegration": {
|
|
4294
4769
|
"embeddingMode": "imperative",
|
|
4295
4770
|
"commandSurface": "slash-programmatic",
|
|
@@ -4312,7 +4787,7 @@ const runtimes = {
|
|
|
4312
4787
|
"kilo": {
|
|
4313
4788
|
"id": "kilo",
|
|
4314
4789
|
"role": "runtime",
|
|
4315
|
-
"version": "1.7.0-rc.
|
|
4790
|
+
"version": "1.7.0-rc.6",
|
|
4316
4791
|
"title": "Kilo Code",
|
|
4317
4792
|
"description": "Kilo Code — XDG-based config dir; global skills at ~/.kilo/skills (separate from XDG config); flat command/ + skills artifact layout; no lifecycle hook registration; tier-2 support.",
|
|
4318
4793
|
"tier": "core",
|
|
@@ -4377,6 +4852,7 @@ const runtimes = {
|
|
|
4377
4852
|
},
|
|
4378
4853
|
"commandStyle": "slash-hyphen",
|
|
4379
4854
|
"hooksSurface": "none",
|
|
4855
|
+
"extensionEvents": "kilo",
|
|
4380
4856
|
"sandboxTier": "none",
|
|
4381
4857
|
"supportTier": 2,
|
|
4382
4858
|
"installSurface": "settings-json",
|
|
@@ -4399,15 +4875,29 @@ const runtimes = {
|
|
|
4399
4875
|
"stateIO": "filesystem",
|
|
4400
4876
|
"transport": "mcp",
|
|
4401
4877
|
"runtime": "bun"
|
|
4878
|
+
},
|
|
4879
|
+
"hostBehaviors": {
|
|
4880
|
+
"reapplyCommand": "/gsd-update --reapply",
|
|
4881
|
+
"attributionConfigResolver": "kilo",
|
|
4882
|
+
"flatCommandDir": "command",
|
|
4883
|
+
"combinedFamilyInstall": true,
|
|
4884
|
+
"frontmatterDialect": "kilo",
|
|
4885
|
+
"nativePlugin": {
|
|
4886
|
+
"dir": "plugins",
|
|
4887
|
+
"file": "gsd-core.js",
|
|
4888
|
+
"source": ".kilo/plugins/gsd-core.js"
|
|
4889
|
+
},
|
|
4890
|
+
"skipUpdateBannerCommand": true,
|
|
4891
|
+
"skipSharedHooksInstall": true
|
|
4402
4892
|
}
|
|
4403
4893
|
}
|
|
4404
4894
|
},
|
|
4405
4895
|
"kimi": {
|
|
4406
4896
|
"id": "kimi",
|
|
4407
4897
|
"role": "runtime",
|
|
4408
|
-
"version": "1.7.0-rc.
|
|
4898
|
+
"version": "1.7.0-rc.6",
|
|
4409
4899
|
"title": "Kimi CLI",
|
|
4410
|
-
"description": "Kimi CLI (Moonshot AI) — generic agents root at ~/.config/agents; skills + kimi-agents artifact layout;
|
|
4900
|
+
"description": "Kimi CLI (Moonshot AI) — generic agents root at ~/.config/agents; skills + kimi-agents artifact layout; native config.toml [[hooks]] bus at ~/.kimi/config.toml; background dispatch; tier-2 support.",
|
|
4411
4901
|
"tier": "core",
|
|
4412
4902
|
"requires": [],
|
|
4413
4903
|
"engines": {
|
|
@@ -4450,13 +4940,19 @@ const runtimes = {
|
|
|
4450
4940
|
"local": []
|
|
4451
4941
|
},
|
|
4452
4942
|
"commandStyle": "slash-hyphen",
|
|
4453
|
-
"hooksSurface": "
|
|
4943
|
+
"hooksSurface": "kimi-hooks-toml",
|
|
4944
|
+
"hookEvents": "claude",
|
|
4454
4945
|
"sandboxTier": "none",
|
|
4455
4946
|
"supportTier": 2,
|
|
4456
4947
|
"installSurface": "profile-marker-only",
|
|
4457
4948
|
"writesSharedSettings": false,
|
|
4458
4949
|
"permissionWriter": null,
|
|
4459
|
-
"extendedHookEvents": [
|
|
4950
|
+
"extendedHookEvents": [
|
|
4951
|
+
"SubagentStop",
|
|
4952
|
+
"Stop",
|
|
4953
|
+
"PreCompact",
|
|
4954
|
+
"SubagentStart"
|
|
4955
|
+
],
|
|
4460
4956
|
"hostIntegration": {
|
|
4461
4957
|
"embeddingMode": "imperative",
|
|
4462
4958
|
"commandSurface": "slash-file",
|
|
@@ -4466,20 +4962,28 @@ const runtimes = {
|
|
|
4466
4962
|
"maxDepth": 1,
|
|
4467
4963
|
"background": true,
|
|
4468
4964
|
"subagentToolkit": "undocumented",
|
|
4469
|
-
"backgroundDispatch":
|
|
4965
|
+
"backgroundDispatch": true
|
|
4470
4966
|
},
|
|
4471
4967
|
"modelMode": "passive",
|
|
4472
4968
|
"hookBus": "host",
|
|
4473
4969
|
"stateIO": "filesystem",
|
|
4474
4970
|
"transport": "mcp",
|
|
4475
4971
|
"runtime": "python"
|
|
4972
|
+
},
|
|
4973
|
+
"hostBehaviors": {
|
|
4974
|
+
"reapplyCommand": "/skill:gsd-update --reapply",
|
|
4975
|
+
"localInstallDeferred": true,
|
|
4976
|
+
"verificationStyle": "kimi",
|
|
4977
|
+
"agentManifestStyle": "kimi-nested",
|
|
4978
|
+
"doneBannerStyle": "kimi-agent-file",
|
|
4979
|
+
"skipSharedHooksInstall": true
|
|
4476
4980
|
}
|
|
4477
4981
|
}
|
|
4478
4982
|
},
|
|
4479
4983
|
"opencode": {
|
|
4480
4984
|
"id": "opencode",
|
|
4481
4985
|
"role": "runtime",
|
|
4482
|
-
"version": "1.7.0-rc.
|
|
4986
|
+
"version": "1.7.0-rc.6",
|
|
4483
4987
|
"title": "OpenCode",
|
|
4484
4988
|
"description": "OpenCode — XDG-based config dir; flat command/ + skills artifact layout; settings-json config format; no lifecycle hook registration; tier-2 support.",
|
|
4485
4989
|
"tier": "core",
|
|
@@ -4553,22 +5057,99 @@ const runtimes = {
|
|
|
4553
5057
|
"namedDispatch": true,
|
|
4554
5058
|
"nested": "undocumented",
|
|
4555
5059
|
"maxDepth": "undocumented",
|
|
4556
|
-
"background":
|
|
5060
|
+
"background": true,
|
|
4557
5061
|
"subagentToolkit": "full",
|
|
4558
|
-
"backgroundDispatch":
|
|
5062
|
+
"backgroundDispatch": true
|
|
4559
5063
|
},
|
|
4560
5064
|
"modelMode": "active",
|
|
4561
5065
|
"hookBus": "host",
|
|
4562
5066
|
"stateIO": "filesystem",
|
|
4563
5067
|
"transport": "mcp",
|
|
4564
5068
|
"runtime": "bun"
|
|
5069
|
+
},
|
|
5070
|
+
"hostBehaviors": {
|
|
5071
|
+
"reapplyCommand": "/gsd-update --reapply",
|
|
5072
|
+
"attributionConfigResolver": "opencode",
|
|
5073
|
+
"flatCommandDir": "command",
|
|
5074
|
+
"combinedFamilyInstall": true,
|
|
5075
|
+
"frontmatterDialect": "opencode",
|
|
5076
|
+
"nativePlugin": {
|
|
5077
|
+
"dir": "plugins",
|
|
5078
|
+
"file": "gsd-core.js",
|
|
5079
|
+
"source": ".opencode/plugins/gsd-core.js"
|
|
5080
|
+
},
|
|
5081
|
+
"skipHomePrefixSubstitution": true,
|
|
5082
|
+
"skipSettingsUi": true,
|
|
5083
|
+
"skipUpdateBannerCommand": true,
|
|
5084
|
+
"skipCodexSkillsManifest": true,
|
|
5085
|
+
"reviewerCli": true
|
|
5086
|
+
}
|
|
5087
|
+
}
|
|
5088
|
+
},
|
|
5089
|
+
"pi": {
|
|
5090
|
+
"id": "pi",
|
|
5091
|
+
"role": "runtime",
|
|
5092
|
+
"version": "1.7.0-rc.6",
|
|
5093
|
+
"title": "pi",
|
|
5094
|
+
"description": "pi (pi.dev) — bun-runtime programmatic-CLI; TS ExtensionAPI (registerCommand/registerTool/registerProvider/pi.on); single native-extension file at ~/.pi/agent/extensions/gsd.cjs; no shared-settings hook surface; tier-2 support.",
|
|
5095
|
+
"tier": "core",
|
|
5096
|
+
"requires": [],
|
|
5097
|
+
"engines": {
|
|
5098
|
+
"gsd": ">=1.7.0"
|
|
5099
|
+
},
|
|
5100
|
+
"runtime": {
|
|
5101
|
+
"configHome": {
|
|
5102
|
+
"kind": "dot-home-nested",
|
|
5103
|
+
"name": "agent",
|
|
5104
|
+
"parent": ".pi",
|
|
5105
|
+
"env": []
|
|
5106
|
+
},
|
|
5107
|
+
"localConfigDir": ".pi",
|
|
5108
|
+
"configFormat": "none",
|
|
5109
|
+
"artifactLayout": {
|
|
5110
|
+
"global": [],
|
|
5111
|
+
"local": []
|
|
5112
|
+
},
|
|
5113
|
+
"commandStyle": "slash-hyphen",
|
|
5114
|
+
"hooksSurface": "none",
|
|
5115
|
+
"extensionEvents": "pi",
|
|
5116
|
+
"sandboxTier": "none",
|
|
5117
|
+
"supportTier": 2,
|
|
5118
|
+
"installSurface": "profile-marker-only",
|
|
5119
|
+
"writesSharedSettings": false,
|
|
5120
|
+
"permissionWriter": null,
|
|
5121
|
+
"extendedHookEvents": [],
|
|
5122
|
+
"hostIntegration": {
|
|
5123
|
+
"embeddingMode": "imperative",
|
|
5124
|
+
"commandSurface": "slash-programmatic",
|
|
5125
|
+
"dispatch": {
|
|
5126
|
+
"namedDispatch": false,
|
|
5127
|
+
"nested": false,
|
|
5128
|
+
"maxDepth": 0,
|
|
5129
|
+
"background": false,
|
|
5130
|
+
"backgroundDispatch": false,
|
|
5131
|
+
"subagentToolkit": "undocumented"
|
|
5132
|
+
},
|
|
5133
|
+
"modelMode": "active",
|
|
5134
|
+
"hookBus": "host",
|
|
5135
|
+
"stateIO": "session-log-append",
|
|
5136
|
+
"transport": "native-extension",
|
|
5137
|
+
"runtime": "bun"
|
|
5138
|
+
},
|
|
5139
|
+
"hostBehaviors": {
|
|
5140
|
+
"nativePlugin": {
|
|
5141
|
+
"dir": "extensions",
|
|
5142
|
+
"file": "gsd.cjs",
|
|
5143
|
+
"source": "pi/gsd.cjs"
|
|
5144
|
+
},
|
|
5145
|
+
"pluginOnlyInstall": true
|
|
4565
5146
|
}
|
|
4566
5147
|
}
|
|
4567
5148
|
},
|
|
4568
5149
|
"qwen": {
|
|
4569
5150
|
"id": "qwen",
|
|
4570
5151
|
"role": "runtime",
|
|
4571
|
-
"version": "1.7.0-rc.
|
|
5152
|
+
"version": "1.7.0-rc.6",
|
|
4572
5153
|
"title": "Qwen Code",
|
|
4573
5154
|
"description": "Qwen Code (Alibaba) — nested-skill artifact layout; settings-json hook surface; Claude hook event dialect; tier-2 support.",
|
|
4574
5155
|
"tier": "core",
|
|
@@ -4595,6 +5176,14 @@ const runtimes = {
|
|
|
4595
5176
|
"nesting": "nested",
|
|
4596
5177
|
"recursive": false,
|
|
4597
5178
|
"converter": "convertClaudeCommandToClaudeSkill"
|
|
5179
|
+
},
|
|
5180
|
+
{
|
|
5181
|
+
"kind": "agents",
|
|
5182
|
+
"destSubpath": "agents",
|
|
5183
|
+
"prefix": "gsd-",
|
|
5184
|
+
"nesting": "flat",
|
|
5185
|
+
"recursive": false,
|
|
5186
|
+
"converter": "convertClaudeAgentToQwenAgent"
|
|
4598
5187
|
}
|
|
4599
5188
|
],
|
|
4600
5189
|
"local": [
|
|
@@ -4605,6 +5194,14 @@ const runtimes = {
|
|
|
4605
5194
|
"nesting": "nested",
|
|
4606
5195
|
"recursive": false,
|
|
4607
5196
|
"converter": "convertClaudeCommandToClaudeSkill"
|
|
5197
|
+
},
|
|
5198
|
+
{
|
|
5199
|
+
"kind": "agents",
|
|
5200
|
+
"destSubpath": "agents",
|
|
5201
|
+
"prefix": "gsd-",
|
|
5202
|
+
"nesting": "flat",
|
|
5203
|
+
"recursive": false,
|
|
5204
|
+
"converter": "convertClaudeAgentToQwenAgent"
|
|
4608
5205
|
}
|
|
4609
5206
|
]
|
|
4610
5207
|
},
|
|
@@ -4619,7 +5216,8 @@ const runtimes = {
|
|
|
4619
5216
|
"extendedHookEvents": [
|
|
4620
5217
|
"SubagentStop",
|
|
4621
5218
|
"Stop",
|
|
4622
|
-
"PreCompact"
|
|
5219
|
+
"PreCompact",
|
|
5220
|
+
"SubagentStart"
|
|
4623
5221
|
],
|
|
4624
5222
|
"hostIntegration": {
|
|
4625
5223
|
"embeddingMode": "imperative",
|
|
@@ -4637,13 +5235,26 @@ const runtimes = {
|
|
|
4637
5235
|
"stateIO": "filesystem",
|
|
4638
5236
|
"transport": "mcp",
|
|
4639
5237
|
"runtime": "node"
|
|
5238
|
+
},
|
|
5239
|
+
"hostBehaviors": {
|
|
5240
|
+
"skillPriorityFrontmatter": true,
|
|
5241
|
+
"brandingRewrites": {
|
|
5242
|
+
"CLAUDE.md": "QWEN.md",
|
|
5243
|
+
"Claude Code": "Qwen Code",
|
|
5244
|
+
".claude/": ".qwen/"
|
|
5245
|
+
},
|
|
5246
|
+
"legacyCommandsGsdCleanup": true,
|
|
5247
|
+
"legacyCommandsGsdInstallMigration": true,
|
|
5248
|
+
"legacyCommandsGsdUninstall": true,
|
|
5249
|
+
"hyphenNameAgentBody": true,
|
|
5250
|
+
"reviewerCli": true
|
|
4640
5251
|
}
|
|
4641
5252
|
}
|
|
4642
5253
|
},
|
|
4643
5254
|
"trae": {
|
|
4644
5255
|
"id": "trae",
|
|
4645
5256
|
"role": "runtime",
|
|
4646
|
-
"version": "1.7.0-rc.
|
|
5257
|
+
"version": "1.7.0-rc.6",
|
|
4647
5258
|
"title": "Trae IDE",
|
|
4648
5259
|
"description": "Trae IDE — nested-skill artifact layout; no hook surface (profile-marker-only config); tier-2 support.",
|
|
4649
5260
|
"tier": "core",
|
|
@@ -4723,15 +5334,70 @@ const runtimes = {
|
|
|
4723
5334
|
"stateIO": "filesystem",
|
|
4724
5335
|
"transport": "mcp",
|
|
4725
5336
|
"runtime": "node"
|
|
5337
|
+
},
|
|
5338
|
+
"hostBehaviors": {
|
|
5339
|
+
"skipSharedHooksInstall": true,
|
|
5340
|
+
"soloStageMetadata": "workflow"
|
|
5341
|
+
}
|
|
5342
|
+
}
|
|
5343
|
+
},
|
|
5344
|
+
"vscode": {
|
|
5345
|
+
"id": "vscode",
|
|
5346
|
+
"role": "runtime",
|
|
5347
|
+
"version": "1.7.0-rc.6",
|
|
5348
|
+
"title": "VS Code",
|
|
5349
|
+
"description": "VS Code — Marketplace/VSIX extension; no file-projected config directory; IDE-profile reference host (active vscode.lm model, engine-owned hook bus, sandboxed globalState/workspaceState stateIO).",
|
|
5350
|
+
"tier": "core",
|
|
5351
|
+
"requires": [],
|
|
5352
|
+
"engines": {
|
|
5353
|
+
"gsd": ">=1.7.0"
|
|
5354
|
+
},
|
|
5355
|
+
"runtime": {
|
|
5356
|
+
"configHome": {
|
|
5357
|
+
"kind": "none",
|
|
5358
|
+
"name": "vscode",
|
|
5359
|
+
"env": []
|
|
5360
|
+
},
|
|
5361
|
+
"localConfigDir": null,
|
|
5362
|
+
"configFormat": "none",
|
|
5363
|
+
"artifactLayout": {
|
|
5364
|
+
"global": [],
|
|
5365
|
+
"local": []
|
|
5366
|
+
},
|
|
5367
|
+
"commandStyle": "slash-hyphen",
|
|
5368
|
+
"hooksSurface": "none",
|
|
5369
|
+
"extensionEvents": "none",
|
|
5370
|
+
"sandboxTier": "none",
|
|
5371
|
+
"supportTier": 1,
|
|
5372
|
+
"installSurface": "none",
|
|
5373
|
+
"writesSharedSettings": false,
|
|
5374
|
+
"permissionWriter": null,
|
|
5375
|
+
"extendedHookEvents": [],
|
|
5376
|
+
"hostIntegration": {
|
|
5377
|
+
"embeddingMode": "imperative",
|
|
5378
|
+
"commandSurface": "palette",
|
|
5379
|
+
"dispatch": {
|
|
5380
|
+
"namedDispatch": true,
|
|
5381
|
+
"nested": true,
|
|
5382
|
+
"maxDepth": 5,
|
|
5383
|
+
"background": true,
|
|
5384
|
+
"subagentToolkit": "undocumented",
|
|
5385
|
+
"backgroundDispatch": "undocumented"
|
|
5386
|
+
},
|
|
5387
|
+
"modelMode": "active",
|
|
5388
|
+
"hookBus": "engine",
|
|
5389
|
+
"stateIO": "sandboxed-storage",
|
|
5390
|
+
"transport": "mcp",
|
|
5391
|
+
"runtime": "sandboxed-web"
|
|
4726
5392
|
}
|
|
4727
5393
|
}
|
|
4728
5394
|
},
|
|
4729
5395
|
"windsurf": {
|
|
4730
5396
|
"id": "windsurf",
|
|
4731
5397
|
"role": "runtime",
|
|
4732
|
-
"version": "1.7.0-rc.
|
|
5398
|
+
"version": "1.7.0-rc.6",
|
|
4733
5399
|
"title": "Windsurf",
|
|
4734
|
-
"description": "Windsurf (Codeium) — workspace workflow artifact layout for slash commands;
|
|
5400
|
+
"description": "Windsurf (Codeium) — workspace workflow artifact layout for slash commands; Cascade native hooks.json blocking hook bus (pre_write_code, pre_run_command); tier-2 support.",
|
|
4735
5401
|
"tier": "core",
|
|
4736
5402
|
"requires": [],
|
|
4737
5403
|
"engines": {
|
|
@@ -4779,7 +5445,7 @@ const runtimes = {
|
|
|
4779
5445
|
]
|
|
4780
5446
|
},
|
|
4781
5447
|
"commandStyle": "slash-hyphen",
|
|
4782
|
-
"hooksSurface": "
|
|
5448
|
+
"hooksSurface": "windsurf-hooks-json",
|
|
4783
5449
|
"sandboxTier": "none",
|
|
4784
5450
|
"supportTier": 2,
|
|
4785
5451
|
"installSurface": "profile-marker-only",
|
|
@@ -4802,13 +5468,19 @@ const runtimes = {
|
|
|
4802
5468
|
"stateIO": "filesystem",
|
|
4803
5469
|
"transport": "mcp",
|
|
4804
5470
|
"runtime": "undocumented"
|
|
5471
|
+
},
|
|
5472
|
+
"hostBehaviors": {
|
|
5473
|
+
"skipSharedHooksInstall": true,
|
|
5474
|
+
"legacyDevinSkillsCleanup": true,
|
|
5475
|
+
"installsCommandBodiesForWorkflowDelegation": true,
|
|
5476
|
+
"verificationStyle": "windsurf-workflows"
|
|
4805
5477
|
}
|
|
4806
5478
|
}
|
|
4807
5479
|
},
|
|
4808
5480
|
"zcode": {
|
|
4809
5481
|
"id": "zcode",
|
|
4810
5482
|
"role": "runtime",
|
|
4811
|
-
"version": "1.7.0-rc.
|
|
5483
|
+
"version": "1.7.0-rc.6",
|
|
4812
5484
|
"title": "ZCode",
|
|
4813
5485
|
"description": "ZCode (Z.ai) — desktop Agentic Development Environment for GLM-5.2; Claude-shaped nested skills at ~/.zcode/skills/<name>/SKILL.md, slash commands, named subagents, native MCP; declarative plugin surface; profile-marker install; tier-2 community support.",
|
|
4814
5486
|
"tier": "core",
|
|
@@ -4904,6 +5576,9 @@ const runtimes = {
|
|
|
4904
5576
|
"stateIO": "filesystem",
|
|
4905
5577
|
"transport": "mcp",
|
|
4906
5578
|
"runtime": "electron"
|
|
5579
|
+
},
|
|
5580
|
+
"hostBehaviors": {
|
|
5581
|
+
"skipSharedHooksInstall": true
|
|
4907
5582
|
}
|
|
4908
5583
|
}
|
|
4909
5584
|
}
|
|
@@ -5085,6 +5760,7 @@ const _requiresGraph = {
|
|
|
5085
5760
|
"pattern-mapper": [
|
|
5086
5761
|
"research"
|
|
5087
5762
|
],
|
|
5763
|
+
"pi": [],
|
|
5088
5764
|
"profile-pipeline": [],
|
|
5089
5765
|
"qwen": [],
|
|
5090
5766
|
"research": [],
|
|
@@ -5093,6 +5769,7 @@ const _requiresGraph = {
|
|
|
5093
5769
|
"tdd": [],
|
|
5094
5770
|
"trae": [],
|
|
5095
5771
|
"ui": [],
|
|
5772
|
+
"vscode": [],
|
|
5096
5773
|
"windsurf": [],
|
|
5097
5774
|
"zcode": []
|
|
5098
5775
|
};
|