@opengsd/gsd-core 1.16.0 → 1.17.0
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 -2
- package/.opencode/plugins/gsd-core.js +251 -1
- package/.opencode/plugins/gsd-statusline/tui.tsx +55 -0
- package/GEMINI.md +1 -1
- package/agents/gsd-debug-session-manager.compact.md +6 -0
- package/agents/gsd-debug-session-manager.md +6 -0
- package/bin/gsd-mcp-server.js +3 -1
- package/bin/install.js +361 -94
- package/gsd-core/bin/gsd-tools.cjs +17 -2
- package/gsd-core/bin/lib/adr-parser.cjs +37 -5
- package/gsd-core/bin/lib/capability-registry.cjs +132 -80
- package/gsd-core/bin/lib/capability-validator.cjs +2 -1
- package/gsd-core/bin/lib/capability-writer.cjs +2 -1
- package/gsd-core/bin/lib/commands.cjs +28 -8
- package/gsd-core/bin/lib/gate-context-drift.cjs +5 -4
- package/gsd-core/bin/lib/gate-ui-safety.cjs +2 -1
- package/gsd-core/bin/lib/graphify.cjs +3 -2
- package/gsd-core/bin/lib/init.cjs +32 -12
- package/gsd-core/bin/lib/install-engine.cjs +11 -0
- package/gsd-core/bin/lib/install-shadow-report.cjs +12 -0
- package/gsd-core/bin/lib/installer-migrations/011-opencode-mcp-no-prompts.cjs +99 -0
- package/gsd-core/bin/lib/installer-migrations.cjs +54 -1
- package/gsd-core/bin/lib/jsonc-edit.cjs +418 -0
- package/gsd-core/bin/lib/loop-host-contract.cjs +2 -1
- package/gsd-core/bin/lib/mcp-server.cjs +5 -1
- package/gsd-core/bin/lib/opencode-mcp-entry.cjs +39 -0
- package/gsd-core/bin/lib/opencode-version.cjs +486 -0
- package/gsd-core/bin/lib/phase.cjs +21 -0
- package/gsd-core/bin/lib/quick-batch-dispatch.cjs +2 -1
- package/gsd-core/bin/lib/runtime-artifact-conversion.cjs +95 -4
- package/gsd-core/bin/lib/runtime-hooks-surface.cjs +58 -3
- package/gsd-core/bin/lib/runtime-slash.cjs +13 -0
- package/gsd-core/bin/lib/smart-entry.cjs +92 -53
- package/gsd-core/bin/lib/state-transition.cjs +67 -9
- package/gsd-core/bin/lib/state.cjs +454 -66
- package/gsd-core/bin/lib/update-context.cjs +18 -1
- package/gsd-core/bin/lib/verification.cjs +107 -17
- package/gsd-core/workflows/code-review.md +16 -1
- package/gsd-core/workflows/execute-phase/steps/executor-isolation-dispatch.md +1 -1
- package/gsd-core/workflows/execute-phase.md +3 -1
- package/gsd-core/workflows/resume-project.md +14 -10
- package/hooks/dist/gsd-check-update.js +26 -20
- package/hooks/dist/gsd-context-monitor.js +14 -5
- package/hooks/dist/gsd-secret-read-guard.js +117 -1
- package/hooks/dist/gsd-statusline.js +321 -22
- package/hooks/gsd-check-update.js +26 -20
- package/hooks/gsd-context-monitor.js +14 -5
- package/hooks/gsd-secret-read-guard.js +117 -1
- package/hooks/gsd-statusline.js +321 -22
- package/package.json +1 -1
- package/scripts/gen-capability-registry.cjs +7 -1
- package/scripts/gen-loop-host-contract.cjs +4 -1
- package/scripts/lib/macos-conformance-tier.generated.cjs +4 -0
- package/scripts/lib/platform-conformance-tier.generated.cjs +10 -0
- package/scripts/mutation-matrix.cjs +3 -1
- package/scripts/release-tarball-smoke.cjs +14 -7
- package/vscode/package.json +1 -1
|
@@ -10,7 +10,7 @@ const capabilities = {
|
|
|
10
10
|
"ai-integration": {
|
|
11
11
|
"id": "ai-integration",
|
|
12
12
|
"role": "feature",
|
|
13
|
-
"version": "1.
|
|
13
|
+
"version": "1.17.0",
|
|
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",
|
|
@@ -95,7 +95,7 @@ const capabilities = {
|
|
|
95
95
|
"antigravity": {
|
|
96
96
|
"id": "antigravity",
|
|
97
97
|
"role": "runtime",
|
|
98
|
-
"version": "1.
|
|
98
|
+
"version": "1.17.0",
|
|
99
99
|
"title": "Antigravity",
|
|
100
100
|
"description": "Google Antigravity IDE — config/settings home nested under ~/.gemini/antigravity (probed across 1.x and 2.x layouts); global skills/agents install under ~/.gemini/config, the dir AGY scans for global discovery (#3738); Gemini hook event dialect; flat skill layout; tier-1 support.",
|
|
101
101
|
"tier": "core",
|
|
@@ -194,6 +194,9 @@ const capabilities = {
|
|
|
194
194
|
"effortSurface": "undocumented"
|
|
195
195
|
},
|
|
196
196
|
"hostBehaviors": {
|
|
197
|
+
"unsupportedFeatures": [
|
|
198
|
+
"context-warnings"
|
|
199
|
+
],
|
|
197
200
|
"projectInstructionFile": "GEMINI.md",
|
|
198
201
|
"noPathRewrite": true,
|
|
199
202
|
"hookPathStyle": "raw",
|
|
@@ -259,7 +262,7 @@ const capabilities = {
|
|
|
259
262
|
"assumption-delta": {
|
|
260
263
|
"id": "assumption-delta",
|
|
261
264
|
"role": "feature",
|
|
262
|
-
"version": "1.
|
|
265
|
+
"version": "1.17.0",
|
|
263
266
|
"title": "Assumption-delta architecture checkpoint",
|
|
264
267
|
"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.",
|
|
265
268
|
"tier": "full",
|
|
@@ -305,7 +308,7 @@ const capabilities = {
|
|
|
305
308
|
"audit": {
|
|
306
309
|
"id": "audit",
|
|
307
310
|
"role": "feature",
|
|
308
|
-
"version": "1.
|
|
311
|
+
"version": "1.17.0",
|
|
309
312
|
"title": "Audit",
|
|
310
313
|
"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).",
|
|
311
314
|
"tier": "full",
|
|
@@ -342,7 +345,7 @@ const capabilities = {
|
|
|
342
345
|
"augment": {
|
|
343
346
|
"id": "augment",
|
|
344
347
|
"role": "runtime",
|
|
345
|
-
"version": "1.
|
|
348
|
+
"version": "1.17.0",
|
|
346
349
|
"title": "Augment Code",
|
|
347
350
|
"description": "Augment Code CLI — commands + nested-skill artifact layout; settings-json hook surface; Claude hook event dialect; tier-2 support.",
|
|
348
351
|
"tier": "core",
|
|
@@ -428,6 +431,9 @@ const capabilities = {
|
|
|
428
431
|
"permissionWriter": null,
|
|
429
432
|
"extendedHookEvents": [],
|
|
430
433
|
"hostBehaviors": {
|
|
434
|
+
"unsupportedFeatures": [
|
|
435
|
+
"context-warnings"
|
|
436
|
+
],
|
|
431
437
|
"commandBodyConverter": "convertClaudeToAugmentMarkdown",
|
|
432
438
|
"mcpCompanion": "settings-json",
|
|
433
439
|
"contentRewriteProfile": "slash-lookahead-own-derived"
|
|
@@ -457,7 +463,7 @@ const capabilities = {
|
|
|
457
463
|
"broken-windows": {
|
|
458
464
|
"id": "broken-windows",
|
|
459
465
|
"role": "feature",
|
|
460
|
-
"version": "1.
|
|
466
|
+
"version": "1.17.0",
|
|
461
467
|
"title": "Broken-windows ledger",
|
|
462
468
|
"description": "Cross-phase defect register accumulating stubs, TODOs, skipped tests, unrun verifies, and unmet truths into .planning/WINDOWS.md. When enforcement is enabled, it blocks /gsd-ship while any window is open unless explicitly waived with a recorded reason. Operationalizes GSD's no-defer discipline as a tracked artifact (issue #1950).",
|
|
463
469
|
"tier": "full",
|
|
@@ -503,7 +509,7 @@ const capabilities = {
|
|
|
503
509
|
"claude": {
|
|
504
510
|
"id": "claude",
|
|
505
511
|
"role": "runtime",
|
|
506
|
-
"version": "1.
|
|
512
|
+
"version": "1.17.0",
|
|
507
513
|
"title": "Claude Code",
|
|
508
514
|
"description": "Anthropic Claude Code — primary development runtime; tier-1 support with full hook surface and skills-based global install.",
|
|
509
515
|
"tier": "core",
|
|
@@ -691,7 +697,7 @@ const capabilities = {
|
|
|
691
697
|
"claude-orchestration": {
|
|
692
698
|
"id": "claude-orchestration",
|
|
693
699
|
"role": "feature",
|
|
694
|
-
"version": "1.
|
|
700
|
+
"version": "1.17.0",
|
|
695
701
|
"title": "Claude orchestration (Workflow backend)",
|
|
696
702
|
"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.",
|
|
697
703
|
"tier": "full",
|
|
@@ -765,7 +771,7 @@ const capabilities = {
|
|
|
765
771
|
"cline": {
|
|
766
772
|
"id": "cline",
|
|
767
773
|
"role": "runtime",
|
|
768
|
-
"version": "1.
|
|
774
|
+
"version": "1.17.0",
|
|
769
775
|
"title": "Cline",
|
|
770
776
|
"description": "Cline (VS Code extension) — global-only nested-skill layout; cline-rules hook surface (.clinerules); no hook events emitted; tier-2 support.",
|
|
771
777
|
"tier": "core",
|
|
@@ -859,7 +865,7 @@ const capabilities = {
|
|
|
859
865
|
"code-review": {
|
|
860
866
|
"id": "code-review",
|
|
861
867
|
"role": "feature",
|
|
862
|
-
"version": "1.
|
|
868
|
+
"version": "1.17.0",
|
|
863
869
|
"title": "Code review",
|
|
864
870
|
"description": "Source-file code review and review-fix workflow support for completed execution work.",
|
|
865
871
|
"tier": "full",
|
|
@@ -945,7 +951,7 @@ const capabilities = {
|
|
|
945
951
|
"codebuddy": {
|
|
946
952
|
"id": "codebuddy",
|
|
947
953
|
"role": "runtime",
|
|
948
|
-
"version": "1.
|
|
954
|
+
"version": "1.17.0",
|
|
949
955
|
"title": "CodeBuddy",
|
|
950
956
|
"description": "CodeBuddy (Tencent) — converted commands + skills artifact layout; settings-json hook surface; Claude hook event dialect; tier-2 support.",
|
|
951
957
|
"tier": "core",
|
|
@@ -1056,6 +1062,9 @@ const capabilities = {
|
|
|
1056
1062
|
"effortSurface": "undocumented"
|
|
1057
1063
|
},
|
|
1058
1064
|
"hostBehaviors": {
|
|
1065
|
+
"unsupportedFeatures": [
|
|
1066
|
+
"context-warnings"
|
|
1067
|
+
],
|
|
1059
1068
|
"reportCommandsDir": true,
|
|
1060
1069
|
"contentRewriteProfile": "slash-bare-own-tilde-bare"
|
|
1061
1070
|
}
|
|
@@ -1064,9 +1073,9 @@ const capabilities = {
|
|
|
1064
1073
|
"coderabbit": {
|
|
1065
1074
|
"id": "coderabbit",
|
|
1066
1075
|
"role": "reviewer",
|
|
1067
|
-
"version": "1.
|
|
1076
|
+
"version": "1.17.0",
|
|
1068
1077
|
"title": "CodeRabbit",
|
|
1069
|
-
"description": "CodeRabbit CLI — cross-AI /gsd
|
|
1078
|
+
"description": "CodeRabbit CLI — cross-AI /gsd-review reviewer lane only; not a GSD install target (no runtime body, no artifacts). Reviews the working-tree diff (`coderabbit review --prompt-only`), not the source tree, and accepts neither a prompt nor a model flag; findings are down-weighted in consensus (evidenceClass: diff-only).",
|
|
1070
1079
|
"tier": "full",
|
|
1071
1080
|
"requires": [],
|
|
1072
1081
|
"engines": {
|
|
@@ -1116,7 +1125,7 @@ const capabilities = {
|
|
|
1116
1125
|
"codex": {
|
|
1117
1126
|
"id": "codex",
|
|
1118
1127
|
"role": "runtime",
|
|
1119
|
-
"version": "1.
|
|
1128
|
+
"version": "1.17.0",
|
|
1120
1129
|
"title": "OpenAI Codex CLI",
|
|
1121
1130
|
"description": "OpenAI Codex CLI — shell-var command style; per-agent sandbox tiers; config.toml + hooks.json hook surface; tier-1 support.",
|
|
1122
1131
|
"tier": "core",
|
|
@@ -1303,7 +1312,7 @@ const capabilities = {
|
|
|
1303
1312
|
"copilot": {
|
|
1304
1313
|
"id": "copilot",
|
|
1305
1314
|
"role": "runtime",
|
|
1306
|
-
"version": "1.
|
|
1315
|
+
"version": "1.17.0",
|
|
1307
1316
|
"title": "GitHub Copilot",
|
|
1308
1317
|
"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.",
|
|
1309
1318
|
"tier": "core",
|
|
@@ -1404,7 +1413,7 @@ const capabilities = {
|
|
|
1404
1413
|
"cursor": {
|
|
1405
1414
|
"id": "cursor",
|
|
1406
1415
|
"role": "runtime",
|
|
1407
|
-
"version": "1.
|
|
1416
|
+
"version": "1.17.0",
|
|
1408
1417
|
"title": "Cursor",
|
|
1409
1418
|
"description": "Cursor IDE — skills-only workflow surface; hooks.json surface; Claude hook event dialect; recursive skill loader (flat nesting); tier-2 support.",
|
|
1410
1419
|
"tier": "core",
|
|
@@ -1574,7 +1583,7 @@ const capabilities = {
|
|
|
1574
1583
|
"drift": {
|
|
1575
1584
|
"id": "drift",
|
|
1576
1585
|
"role": "feature",
|
|
1577
|
-
"version": "1.
|
|
1586
|
+
"version": "1.17.0",
|
|
1578
1587
|
"title": "Drift detection gates",
|
|
1579
1588
|
"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 outside the codebase map and modified or deleted files inside it). 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.",
|
|
1580
1589
|
"tier": "full",
|
|
@@ -1614,12 +1623,12 @@ const capabilities = {
|
|
|
1614
1623
|
"workflow.plan_drift_precheck": {
|
|
1615
1624
|
"type": "boolean",
|
|
1616
1625
|
"default": true,
|
|
1617
|
-
"description": "Enable the non-blocking codebase drift pre-check at plan:pre, before /gsd
|
|
1626
|
+
"description": "Enable the non-blocking codebase drift pre-check at plan:pre, before /gsd-plan-phase spawns the planner. When enabled, a stale STRUCTURE.md (drift elements exceeding drift_threshold) is surfaced up front as a warn-only advisory pointing to /gsd-map-codebase; it never blocks planning and never spawns the mapper agent. Separate from schema_drift_gate so autonomous/CI runs can silence the plan-time advisory while keeping the execute:wave:post gates enabled."
|
|
1618
1627
|
},
|
|
1619
1628
|
"workflow.context_drift_precheck": {
|
|
1620
1629
|
"type": "boolean",
|
|
1621
1630
|
"default": true,
|
|
1622
|
-
"description": "Enable the non-blocking context-drift pre-check at plan:pre, before /gsd
|
|
1631
|
+
"description": "Enable the non-blocking context-drift pre-check at plan:pre, before /gsd-plan-phase reuses an existing RESEARCH.md/PATTERNS.md/VALIDATION.md/SPEC.md. Compares each artifact's effective last-changed time (git commit time, falling back to mtime for uncommitted edits) against CONTEXT.md's own — an artifact that predates CONTEXT.md's newest decision was derived from a premise that has since changed. Warn-only by default (see workflow.context_drift_action); never blocks planning on its own."
|
|
1623
1632
|
},
|
|
1624
1633
|
"workflow.context_drift_action": {
|
|
1625
1634
|
"type": "enum",
|
|
@@ -1675,7 +1684,7 @@ const capabilities = {
|
|
|
1675
1684
|
"external-job": {
|
|
1676
1685
|
"id": "external-job",
|
|
1677
1686
|
"role": "feature",
|
|
1678
|
-
"version": "1.
|
|
1687
|
+
"version": "1.17.0",
|
|
1679
1688
|
"title": "Async external-job scheduler adapter",
|
|
1680
1689
|
"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 classification at execute:wave:pre and recording at execute:wave:post. This capability still contributes executor guidance at wave:post; execute-phase now renders wave:pre entries and dispatches generic step hooks there independently. Moving external-job classification to wave:pre is a separate capability change, not part of #4148. 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).",
|
|
1681
1690
|
"tier": "full",
|
|
@@ -1758,7 +1767,7 @@ const capabilities = {
|
|
|
1758
1767
|
"gap-analysis": {
|
|
1759
1768
|
"id": "gap-analysis",
|
|
1760
1769
|
"role": "feature",
|
|
1761
|
-
"version": "1.
|
|
1770
|
+
"version": "1.17.0",
|
|
1762
1771
|
"title": "Post-planning gap analysis",
|
|
1763
1772
|
"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.",
|
|
1764
1773
|
"tier": "standard",
|
|
@@ -1799,7 +1808,7 @@ const capabilities = {
|
|
|
1799
1808
|
"graphify": {
|
|
1800
1809
|
"id": "graphify",
|
|
1801
1810
|
"role": "feature",
|
|
1802
|
-
"version": "1.
|
|
1811
|
+
"version": "1.17.0",
|
|
1803
1812
|
"title": "Knowledge graph",
|
|
1804
1813
|
"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.",
|
|
1805
1814
|
"tier": "full",
|
|
@@ -1840,7 +1849,7 @@ const capabilities = {
|
|
|
1840
1849
|
"hermes": {
|
|
1841
1850
|
"id": "hermes",
|
|
1842
1851
|
"role": "runtime",
|
|
1843
|
-
"version": "1.
|
|
1852
|
+
"version": "1.17.0",
|
|
1844
1853
|
"title": "Hermes Agent",
|
|
1845
1854
|
"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.",
|
|
1846
1855
|
"tier": "core",
|
|
@@ -1911,6 +1920,9 @@ const capabilities = {
|
|
|
1911
1920
|
"extendedHookEvents": [],
|
|
1912
1921
|
"extensionEvents": "hermes",
|
|
1913
1922
|
"hostBehaviors": {
|
|
1923
|
+
"unsupportedFeatures": [
|
|
1924
|
+
"context-warnings"
|
|
1925
|
+
],
|
|
1914
1926
|
"skillFrontmatterVersion": true,
|
|
1915
1927
|
"skillsManifestPrefix": "skills/gsd/",
|
|
1916
1928
|
"trackCategoryDescription": true,
|
|
@@ -1956,7 +1968,7 @@ const capabilities = {
|
|
|
1956
1968
|
"intel": {
|
|
1957
1969
|
"id": "intel",
|
|
1958
1970
|
"role": "feature",
|
|
1959
|
-
"version": "1.
|
|
1971
|
+
"version": "1.17.0",
|
|
1960
1972
|
"title": "Codebase intelligence",
|
|
1961
1973
|
"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`.",
|
|
1962
1974
|
"tier": "full",
|
|
@@ -2008,7 +2020,7 @@ const capabilities = {
|
|
|
2008
2020
|
"kilo": {
|
|
2009
2021
|
"id": "kilo",
|
|
2010
2022
|
"role": "runtime",
|
|
2011
|
-
"version": "1.
|
|
2023
|
+
"version": "1.17.0",
|
|
2012
2024
|
"title": "Kilo Code",
|
|
2013
2025
|
"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.",
|
|
2014
2026
|
"tier": "core",
|
|
@@ -2142,7 +2154,7 @@ const capabilities = {
|
|
|
2142
2154
|
"kimi": {
|
|
2143
2155
|
"id": "kimi",
|
|
2144
2156
|
"role": "runtime",
|
|
2145
|
-
"version": "1.
|
|
2157
|
+
"version": "1.17.0",
|
|
2146
2158
|
"title": "Kimi CLI",
|
|
2147
2159
|
"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.",
|
|
2148
2160
|
"tier": "core",
|
|
@@ -2233,6 +2245,9 @@ const capabilities = {
|
|
|
2233
2245
|
"promptFlag": "--prompt"
|
|
2234
2246
|
},
|
|
2235
2247
|
"hostBehaviors": {
|
|
2248
|
+
"unsupportedFeatures": [
|
|
2249
|
+
"context-warnings"
|
|
2250
|
+
],
|
|
2236
2251
|
"reapplyCommand": "/skill:gsd-update --reapply",
|
|
2237
2252
|
"localInstallDeferred": true,
|
|
2238
2253
|
"verificationStyle": "kimi",
|
|
@@ -2248,7 +2263,7 @@ const capabilities = {
|
|
|
2248
2263
|
"kimi-code": {
|
|
2249
2264
|
"id": "kimi-code",
|
|
2250
2265
|
"role": "runtime",
|
|
2251
|
-
"version": "1.
|
|
2266
|
+
"version": "1.17.0",
|
|
2252
2267
|
"title": "Kimi Code CLI",
|
|
2253
2268
|
"description": "Kimi Code CLI (Moonshot AI, Node) — Agent Skills auto-discovered at ~/.kimi-code/skills; global AGENTS.md at ~/.kimi-code/AGENTS.md; native config.toml + [[hooks]] bus; three built-in subagents (coder/explore/plan), NO custom named subagents; background dispatch; tier-2 support. Distinct from Python kimi-cli (the 'kimi' capability) per ADR-1239 EoS — Kimi Code cannot dispatch named subagents so the kimi-agents YAML layout does NOT apply; persona injection rides the existing ${AGENT_SKILLS_*} workflow fallback. Install-layout, agent-install-check, and install-time decision (kimi vs kimi-code) land in follow-up PRs; this descriptor is the EoS foundation.",
|
|
2254
2269
|
"tier": "core",
|
|
@@ -2349,6 +2364,9 @@ const capabilities = {
|
|
|
2349
2364
|
"promptFlag": "--prompt"
|
|
2350
2365
|
},
|
|
2351
2366
|
"hostBehaviors": {
|
|
2367
|
+
"unsupportedFeatures": [
|
|
2368
|
+
"context-warnings"
|
|
2369
|
+
],
|
|
2352
2370
|
"reapplyCommand": "/skill:gsd-update --reapply",
|
|
2353
2371
|
"localInstallDeferred": true,
|
|
2354
2372
|
"verificationStyle": "kimi-code",
|
|
@@ -2416,7 +2434,7 @@ const capabilities = {
|
|
|
2416
2434
|
"live-dom-uat": {
|
|
2417
2435
|
"id": "live-dom-uat",
|
|
2418
2436
|
"role": "feature",
|
|
2419
|
-
"version": "1.
|
|
2437
|
+
"version": "1.17.0",
|
|
2420
2438
|
"title": "Live-DOM UAT",
|
|
2421
2439
|
"description": "Default-off live-DOM verification (#2856). Confines browser MCP reach to one purpose-built agent (gsd-dom-verifier) that carries the browser globs in its own tools: line, registered as an additive step hook at execute:wave:post. agents/gsd-executor.md is deliberately NOT widened: for a first-party agent the static tool list is the only control that exists, no capability can grant tools to one (ADR-1244 D2), no hook kind grants tool permissions (ADR-857 D4), and there is no per-dispatch tool override. Gated by activationKey workflow.live_dom_uat (default false), so with the key off the capability resolves inactive and the hook does not render at all. NOTE on the browser profile lock: chrome-devtools-mcp holds an exclusive lock on $HOME/.cache/chrome-devtools-mcp/chrome-profile, and --isolated is a flag on the user's own MCP-server registration that GSD cannot pass. Concurrent execution waves sharing one profile will therefore collide; the step tolerates and reports that (onError: skip, never blocking) rather than pretending to coordinate a resource it does not own.",
|
|
2422
2440
|
"tier": "full",
|
|
@@ -2469,9 +2487,9 @@ const capabilities = {
|
|
|
2469
2487
|
"llama-cpp": {
|
|
2470
2488
|
"id": "llama-cpp",
|
|
2471
2489
|
"role": "reviewer",
|
|
2472
|
-
"version": "1.
|
|
2490
|
+
"version": "1.17.0",
|
|
2473
2491
|
"title": "llama.cpp",
|
|
2474
|
-
"description": "llama.cpp server — cross-AI /gsd
|
|
2492
|
+
"description": "llama.cpp server — cross-AI /gsd-review reviewer lane only; not a GSD install target (no runtime body, no artifacts). OpenAI-compatible HTTP transport against a user-configured `review.llama_cpp_host` (POST /v1/chat/completions); model discovered via GET /v1/models piped through jq. Capability id/folder are kebab (`llama-cpp`, required by KEBAB_RE); `reviewer.slug` stays snake (`llama_cpp`) to match the shipped roster and the `review.llama_cpp_host` config key (ADR-2782's three-namespace trap).",
|
|
2475
2493
|
"tier": "full",
|
|
2476
2494
|
"requires": [],
|
|
2477
2495
|
"engines": {
|
|
@@ -2535,9 +2553,9 @@ const capabilities = {
|
|
|
2535
2553
|
"lm-studio": {
|
|
2536
2554
|
"id": "lm-studio",
|
|
2537
2555
|
"role": "reviewer",
|
|
2538
|
-
"version": "1.
|
|
2556
|
+
"version": "1.17.0",
|
|
2539
2557
|
"title": "LM Studio",
|
|
2540
|
-
"description": "LM Studio local model server — cross-AI /gsd
|
|
2558
|
+
"description": "LM Studio local model server — cross-AI /gsd-review reviewer lane only; not a GSD install target (no runtime body, no artifacts). OpenAI-compatible HTTP transport against a user-configured `review.lm_studio_host` (POST /v1/chat/completions); model discovered via GET /v1/models piped through jq. Capability id/folder are kebab (`lm-studio`, required by KEBAB_RE); `reviewer.slug` stays snake (`lm_studio`) to match the shipped roster and the `review.lm_studio_host` config key (ADR-2782's three-namespace trap).",
|
|
2541
2559
|
"tier": "full",
|
|
2542
2560
|
"requires": [],
|
|
2543
2561
|
"engines": {
|
|
@@ -2601,7 +2619,7 @@ const capabilities = {
|
|
|
2601
2619
|
"mempalace": {
|
|
2602
2620
|
"id": "mempalace",
|
|
2603
2621
|
"role": "feature",
|
|
2604
|
-
"version": "1.
|
|
2622
|
+
"version": "1.17.0",
|
|
2605
2623
|
"title": "MemPalace memory",
|
|
2606
2624
|
"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.",
|
|
2607
2625
|
"tier": "full",
|
|
@@ -2775,7 +2793,7 @@ const capabilities = {
|
|
|
2775
2793
|
"nyquist": {
|
|
2776
2794
|
"id": "nyquist",
|
|
2777
2795
|
"role": "feature",
|
|
2778
|
-
"version": "1.
|
|
2796
|
+
"version": "1.17.0",
|
|
2779
2797
|
"title": "Nyquist validation",
|
|
2780
2798
|
"description": "Validation coverage audit that maps executed work back to tests and manual-only evidence.",
|
|
2781
2799
|
"tier": "full",
|
|
@@ -2825,9 +2843,9 @@ const capabilities = {
|
|
|
2825
2843
|
"ollama": {
|
|
2826
2844
|
"id": "ollama",
|
|
2827
2845
|
"role": "reviewer",
|
|
2828
|
-
"version": "1.
|
|
2846
|
+
"version": "1.17.0",
|
|
2829
2847
|
"title": "Ollama",
|
|
2830
|
-
"description": "Ollama local model server — cross-AI /gsd
|
|
2848
|
+
"description": "Ollama local model server — cross-AI /gsd-review reviewer lane only; not a GSD install target (no runtime body, no artifacts). OpenAI-compatible HTTP transport against a user-configured `review.ollama_host` (POST /v1/chat/completions); model discovered via GET /v1/models piped through jq.",
|
|
2831
2849
|
"tier": "full",
|
|
2832
2850
|
"requires": [],
|
|
2833
2851
|
"engines": {
|
|
@@ -2891,7 +2909,7 @@ const capabilities = {
|
|
|
2891
2909
|
"opencode": {
|
|
2892
2910
|
"id": "opencode",
|
|
2893
2911
|
"role": "runtime",
|
|
2894
|
-
"version": "1.
|
|
2912
|
+
"version": "1.17.0",
|
|
2895
2913
|
"title": "OpenCode",
|
|
2896
2914
|
"description": "OpenCode — XDG-based config dir; flat commands/ + skills artifact layout; settings-json config format; no lifecycle hook registration; tier-2 support.",
|
|
2897
2915
|
"tier": "core",
|
|
@@ -2983,8 +3001,8 @@ const capabilities = {
|
|
|
2983
3001
|
"commandSurface": "slash-file",
|
|
2984
3002
|
"dispatch": {
|
|
2985
3003
|
"namedDispatch": true,
|
|
2986
|
-
"nested":
|
|
2987
|
-
"maxDepth":
|
|
3004
|
+
"nested": false,
|
|
3005
|
+
"maxDepth": 1,
|
|
2988
3006
|
"background": false,
|
|
2989
3007
|
"subagentToolkit": "full",
|
|
2990
3008
|
"backgroundDispatch": false,
|
|
@@ -3017,6 +3035,11 @@ const capabilities = {
|
|
|
3017
3035
|
"file": "gsd-core.js",
|
|
3018
3036
|
"source": ".opencode/plugins/gsd-core.js"
|
|
3019
3037
|
},
|
|
3038
|
+
"nativeCliPlugin": {
|
|
3039
|
+
"dir": "plugins/gsd-statusline",
|
|
3040
|
+
"file": "tui.tsx",
|
|
3041
|
+
"source": ".opencode/plugins/gsd-statusline/tui.tsx"
|
|
3042
|
+
},
|
|
3020
3043
|
"skipHomePrefixSubstitution": true,
|
|
3021
3044
|
"skipSettingsUi": true,
|
|
3022
3045
|
"skipUpdateBannerCommand": true,
|
|
@@ -3090,7 +3113,7 @@ const capabilities = {
|
|
|
3090
3113
|
"pattern-mapper": {
|
|
3091
3114
|
"id": "pattern-mapper",
|
|
3092
3115
|
"role": "feature",
|
|
3093
|
-
"version": "1.
|
|
3116
|
+
"version": "1.17.0",
|
|
3094
3117
|
"title": "Pattern mapping",
|
|
3095
3118
|
"description": "Optional codebase-pattern mapping before planning; owns the pattern mapper agent and workflow.pattern_mapper activation key.",
|
|
3096
3119
|
"tier": "full",
|
|
@@ -3126,7 +3149,7 @@ const capabilities = {
|
|
|
3126
3149
|
},
|
|
3127
3150
|
"fragment": {
|
|
3128
3151
|
"path": "fragments/plan-pre.md",
|
|
3129
|
-
"inline": "<pattern_mapping_context>\n**Phase:** {phase_number} - {phase_name}\n**Phase directory:** {phase_dir}\n**Padded phase:** {padded_phase}\n\n<required_reading>\n- {context_path} (USER DECISIONS from /gsd
|
|
3152
|
+
"inline": "<pattern_mapping_context>\n**Phase:** {phase_number} - {phase_name}\n**Phase directory:** {phase_dir}\n**Padded phase:** {padded_phase}\n\n<required_reading>\n- {context_path} (USER DECISIONS from /gsd-discuss-phase)\n- {research_path} (Technical Research)\n</required_reading>\n\n**Output file:** {phase_dir}/{padded_phase}-PATTERNS.md\n\nExtract the list of files to be created/modified from CONTEXT.md and RESEARCH.md. For each file, classify by role and data flow, find the closest existing analog in the codebase, extract concrete code excerpts, and produce PATTERNS.md.\n</pattern_mapping_context>\n"
|
|
3130
3153
|
},
|
|
3131
3154
|
"produces": [
|
|
3132
3155
|
"PATTERNS.md"
|
|
@@ -3144,7 +3167,7 @@ const capabilities = {
|
|
|
3144
3167
|
"pi": {
|
|
3145
3168
|
"id": "pi",
|
|
3146
3169
|
"role": "runtime",
|
|
3147
|
-
"version": "1.
|
|
3170
|
+
"version": "1.17.0",
|
|
3148
3171
|
"title": "pi",
|
|
3149
3172
|
"description": "pi (pi.dev) — bun-runtime programmatic-CLI; TS ExtensionAPI (registerCommand/registerTool/registerProvider/pi.on); single native-extension file at ~/.pi/agent/extensions/gsd.js (.js, not .cjs — pi's extension auto-discovery accepts only .ts/.js, #2470); no shared-settings hook surface; tier-2 support.",
|
|
3150
3173
|
"tier": "core",
|
|
@@ -3214,7 +3237,7 @@ const capabilities = {
|
|
|
3214
3237
|
"profile-pipeline": {
|
|
3215
3238
|
"id": "profile-pipeline",
|
|
3216
3239
|
"role": "feature",
|
|
3217
|
-
"version": "1.
|
|
3240
|
+
"version": "1.17.0",
|
|
3218
3241
|
"title": "Developer profiling pipeline",
|
|
3219
3242
|
"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.",
|
|
3220
3243
|
"tier": "full",
|
|
@@ -3291,7 +3314,7 @@ const capabilities = {
|
|
|
3291
3314
|
"qwen": {
|
|
3292
3315
|
"id": "qwen",
|
|
3293
3316
|
"role": "runtime",
|
|
3294
|
-
"version": "1.
|
|
3317
|
+
"version": "1.17.0",
|
|
3295
3318
|
"title": "Qwen Code",
|
|
3296
3319
|
"description": "Qwen Code (Alibaba) — nested-skill artifact layout; settings-json hook surface; Claude hook event dialect; tier-2 support.",
|
|
3297
3320
|
"tier": "core",
|
|
@@ -3386,6 +3409,9 @@ const capabilities = {
|
|
|
3386
3409
|
"effortSurface": "undocumented"
|
|
3387
3410
|
},
|
|
3388
3411
|
"hostBehaviors": {
|
|
3412
|
+
"unsupportedFeatures": [
|
|
3413
|
+
"context-warnings"
|
|
3414
|
+
],
|
|
3389
3415
|
"skillPriorityFrontmatter": true,
|
|
3390
3416
|
"brandingRewrites": {
|
|
3391
3417
|
"CLAUDE.md": "QWEN.md",
|
|
@@ -3442,7 +3468,7 @@ const capabilities = {
|
|
|
3442
3468
|
"refactor-trigger": {
|
|
3443
3469
|
"id": "refactor-trigger",
|
|
3444
3470
|
"role": "feature",
|
|
3445
|
-
"version": "1.
|
|
3471
|
+
"version": "1.17.0",
|
|
3446
3472
|
"title": "Complexity-triggered refactor",
|
|
3447
3473
|
"description": "Measures the complexity of the code a phase touched and, when a function crosses a configured threshold or jumps past its recorded anchor, surfaces a scoped refactor proposal at .planning/phases/<N>/<NN>-REFACTOR.md. Advisory by default — it never edits code and never blocks. Opt-in strict mode blocks /gsd-ship while a proposal is untriaged; a declined proposal is recorded in the broken-windows ledger when that capability is present. Operationalizes 'refactor early, refactor often' as continuous pressure instead of a thing you have to remember (issue #1953).",
|
|
3448
3474
|
"tier": "full",
|
|
@@ -3509,7 +3535,7 @@ const capabilities = {
|
|
|
3509
3535
|
"research": {
|
|
3510
3536
|
"id": "research",
|
|
3511
3537
|
"role": "feature",
|
|
3512
|
-
"version": "1.
|
|
3538
|
+
"version": "1.17.0",
|
|
3513
3539
|
"title": "Phase research",
|
|
3514
3540
|
"description": "Optional phase research before planning; owns the phase researcher agent and workflow.research activation key.",
|
|
3515
3541
|
"tier": "standard",
|
|
@@ -3543,7 +3569,7 @@ const capabilities = {
|
|
|
3543
3569
|
},
|
|
3544
3570
|
"fragment": {
|
|
3545
3571
|
"path": "fragments/plan-pre.md",
|
|
3546
|
-
"inline": "<objective>\nResearch how to implement Phase {phase_number}: {phase_name}\nAnswer: \"What do I need to know to PLAN this phase well?\"\n</objective>\n\n<required_reading>\n- {context_path} (USER DECISIONS from /gsd
|
|
3572
|
+
"inline": "<objective>\nResearch how to implement Phase {phase_number}: {phase_name}\nAnswer: \"What do I need to know to PLAN this phase well?\"\n</objective>\n\n<required_reading>\n- {context_path} (USER DECISIONS from /gsd-discuss-phase)\n- {requirements_path} (Project requirements)\n- {state_path} (Project decisions and history)\n</required_reading>\n\n${AGENT_SKILLS_RESEARCHER}\n\n<additional_context>\n**Phase description:** {phase_description}\n**Phase requirement IDs (MUST address):** {phase_req_ids}\n\n**Project instructions:** Read ./CLAUDE.md or ./.claude/CLAUDE.md if either exists; follow project-specific guidelines.\n**Project skills:** Check .claude/skills/ or .agents/skills/ directory if either exists. Read SKILL.md files and account for project skill patterns.\n</additional_context>\n\n<output>\nWrite to: {phase_dir}/{phase_num}-RESEARCH.md\n</output>\n"
|
|
3547
3573
|
},
|
|
3548
3574
|
"produces": [
|
|
3549
3575
|
"RESEARCH.md"
|
|
@@ -3561,7 +3587,7 @@ const capabilities = {
|
|
|
3561
3587
|
"schema-gate": {
|
|
3562
3588
|
"id": "schema-gate",
|
|
3563
3589
|
"role": "feature",
|
|
3564
|
-
"version": "1.
|
|
3590
|
+
"version": "1.17.0",
|
|
3565
3591
|
"title": "Schema push detection gate",
|
|
3566
3592
|
"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.",
|
|
3567
3593
|
"tier": "full",
|
|
@@ -3607,7 +3633,7 @@ const capabilities = {
|
|
|
3607
3633
|
"security": {
|
|
3608
3634
|
"id": "security",
|
|
3609
3635
|
"role": "feature",
|
|
3610
|
-
"version": "1.
|
|
3636
|
+
"version": "1.17.0",
|
|
3611
3637
|
"title": "Security enforcement",
|
|
3612
3638
|
"description": "Threat mitigation verification and ship-time security blocking for phases with security enforcement enabled.",
|
|
3613
3639
|
"tier": "full",
|
|
@@ -3706,7 +3732,7 @@ const capabilities = {
|
|
|
3706
3732
|
"tdd": {
|
|
3707
3733
|
"id": "tdd",
|
|
3708
3734
|
"role": "feature",
|
|
3709
|
-
"version": "1.
|
|
3735
|
+
"version": "1.17.0",
|
|
3710
3736
|
"title": "Test-driven development",
|
|
3711
3737
|
"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.",
|
|
3712
3738
|
"tier": "full",
|
|
@@ -3759,7 +3785,7 @@ const capabilities = {
|
|
|
3759
3785
|
"trae": {
|
|
3760
3786
|
"id": "trae",
|
|
3761
3787
|
"role": "runtime",
|
|
3762
|
-
"version": "1.
|
|
3788
|
+
"version": "1.17.0",
|
|
3763
3789
|
"title": "Trae IDE",
|
|
3764
3790
|
"description": "Trae IDE — nested-skill artifact layout; no hook surface (profile-marker-only config); tier-2 support.",
|
|
3765
3791
|
"tier": "core",
|
|
@@ -3858,7 +3884,7 @@ const capabilities = {
|
|
|
3858
3884
|
"ui": {
|
|
3859
3885
|
"id": "ui",
|
|
3860
3886
|
"role": "feature",
|
|
3861
|
-
"version": "1.
|
|
3887
|
+
"version": "1.17.0",
|
|
3862
3888
|
"title": "UI design contracts",
|
|
3863
3889
|
"description": "UI-SPEC design contract + retrospective UI audit for frontend phases.",
|
|
3864
3890
|
"tier": "full",
|
|
@@ -3958,7 +3984,7 @@ const capabilities = {
|
|
|
3958
3984
|
"vscode": {
|
|
3959
3985
|
"id": "vscode",
|
|
3960
3986
|
"role": "runtime",
|
|
3961
|
-
"version": "1.
|
|
3987
|
+
"version": "1.17.0",
|
|
3962
3988
|
"title": "VS Code",
|
|
3963
3989
|
"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).",
|
|
3964
3990
|
"tier": "core",
|
|
@@ -4016,7 +4042,7 @@ const capabilities = {
|
|
|
4016
4042
|
"windsurf": {
|
|
4017
4043
|
"id": "windsurf",
|
|
4018
4044
|
"role": "runtime",
|
|
4019
|
-
"version": "1.
|
|
4045
|
+
"version": "1.17.0",
|
|
4020
4046
|
"title": "Windsurf",
|
|
4021
4047
|
"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.",
|
|
4022
4048
|
"tier": "core",
|
|
@@ -4109,7 +4135,7 @@ const capabilities = {
|
|
|
4109
4135
|
"zcode": {
|
|
4110
4136
|
"id": "zcode",
|
|
4111
4137
|
"role": "runtime",
|
|
4112
|
-
"version": "1.
|
|
4138
|
+
"version": "1.17.0",
|
|
4113
4139
|
"title": "ZCode",
|
|
4114
4140
|
"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.",
|
|
4115
4141
|
"tier": "core",
|
|
@@ -4344,7 +4370,7 @@ const byLoopPoint = {
|
|
|
4344
4370
|
},
|
|
4345
4371
|
"fragment": {
|
|
4346
4372
|
"path": "fragments/plan-pre.md",
|
|
4347
|
-
"inline": "<objective>\nResearch how to implement Phase {phase_number}: {phase_name}\nAnswer: \"What do I need to know to PLAN this phase well?\"\n</objective>\n\n<required_reading>\n- {context_path} (USER DECISIONS from /gsd
|
|
4373
|
+
"inline": "<objective>\nResearch how to implement Phase {phase_number}: {phase_name}\nAnswer: \"What do I need to know to PLAN this phase well?\"\n</objective>\n\n<required_reading>\n- {context_path} (USER DECISIONS from /gsd-discuss-phase)\n- {requirements_path} (Project requirements)\n- {state_path} (Project decisions and history)\n</required_reading>\n\n${AGENT_SKILLS_RESEARCHER}\n\n<additional_context>\n**Phase description:** {phase_description}\n**Phase requirement IDs (MUST address):** {phase_req_ids}\n\n**Project instructions:** Read ./CLAUDE.md or ./.claude/CLAUDE.md if either exists; follow project-specific guidelines.\n**Project skills:** Check .claude/skills/ or .agents/skills/ directory if either exists. Read SKILL.md files and account for project skill patterns.\n</additional_context>\n\n<output>\nWrite to: {phase_dir}/{phase_num}-RESEARCH.md\n</output>\n"
|
|
4348
4374
|
},
|
|
4349
4375
|
"produces": [
|
|
4350
4376
|
"RESEARCH.md"
|
|
@@ -4378,7 +4404,7 @@ const byLoopPoint = {
|
|
|
4378
4404
|
},
|
|
4379
4405
|
"fragment": {
|
|
4380
4406
|
"path": "fragments/plan-pre.md",
|
|
4381
|
-
"inline": "<pattern_mapping_context>\n**Phase:** {phase_number} - {phase_name}\n**Phase directory:** {phase_dir}\n**Padded phase:** {padded_phase}\n\n<required_reading>\n- {context_path} (USER DECISIONS from /gsd
|
|
4407
|
+
"inline": "<pattern_mapping_context>\n**Phase:** {phase_number} - {phase_name}\n**Phase directory:** {phase_dir}\n**Padded phase:** {padded_phase}\n\n<required_reading>\n- {context_path} (USER DECISIONS from /gsd-discuss-phase)\n- {research_path} (Technical Research)\n</required_reading>\n\n**Output file:** {phase_dir}/{padded_phase}-PATTERNS.md\n\nExtract the list of files to be created/modified from CONTEXT.md and RESEARCH.md. For each file, classify by role and data flow, find the closest existing analog in the codebase, extract concrete code excerpts, and produce PATTERNS.md.\n</pattern_mapping_context>\n"
|
|
4382
4408
|
},
|
|
4383
4409
|
"produces": [
|
|
4384
4410
|
"PATTERNS.md"
|
|
@@ -5130,13 +5156,13 @@ const configSchema = {
|
|
|
5130
5156
|
"owner": "drift",
|
|
5131
5157
|
"type": "boolean",
|
|
5132
5158
|
"default": true,
|
|
5133
|
-
"description": "Enable the non-blocking codebase drift pre-check at plan:pre, before /gsd
|
|
5159
|
+
"description": "Enable the non-blocking codebase drift pre-check at plan:pre, before /gsd-plan-phase spawns the planner. When enabled, a stale STRUCTURE.md (drift elements exceeding drift_threshold) is surfaced up front as a warn-only advisory pointing to /gsd-map-codebase; it never blocks planning and never spawns the mapper agent. Separate from schema_drift_gate so autonomous/CI runs can silence the plan-time advisory while keeping the execute:wave:post gates enabled."
|
|
5134
5160
|
},
|
|
5135
5161
|
"workflow.context_drift_precheck": {
|
|
5136
5162
|
"owner": "drift",
|
|
5137
5163
|
"type": "boolean",
|
|
5138
5164
|
"default": true,
|
|
5139
|
-
"description": "Enable the non-blocking context-drift pre-check at plan:pre, before /gsd
|
|
5165
|
+
"description": "Enable the non-blocking context-drift pre-check at plan:pre, before /gsd-plan-phase reuses an existing RESEARCH.md/PATTERNS.md/VALIDATION.md/SPEC.md. Compares each artifact's effective last-changed time (git commit time, falling back to mtime for uncommitted edits) against CONTEXT.md's own — an artifact that predates CONTEXT.md's newest decision was derived from a premise that has since changed. Warn-only by default (see workflow.context_drift_action); never blocks planning on its own."
|
|
5140
5166
|
},
|
|
5141
5167
|
"workflow.context_drift_action": {
|
|
5142
5168
|
"owner": "drift",
|
|
@@ -5505,7 +5531,7 @@ const runtimes = {
|
|
|
5505
5531
|
"antigravity": {
|
|
5506
5532
|
"id": "antigravity",
|
|
5507
5533
|
"role": "runtime",
|
|
5508
|
-
"version": "1.
|
|
5534
|
+
"version": "1.17.0",
|
|
5509
5535
|
"title": "Antigravity",
|
|
5510
5536
|
"description": "Google Antigravity IDE — config/settings home nested under ~/.gemini/antigravity (probed across 1.x and 2.x layouts); global skills/agents install under ~/.gemini/config, the dir AGY scans for global discovery (#3738); Gemini hook event dialect; flat skill layout; tier-1 support.",
|
|
5511
5537
|
"tier": "core",
|
|
@@ -5604,6 +5630,9 @@ const runtimes = {
|
|
|
5604
5630
|
"effortSurface": "undocumented"
|
|
5605
5631
|
},
|
|
5606
5632
|
"hostBehaviors": {
|
|
5633
|
+
"unsupportedFeatures": [
|
|
5634
|
+
"context-warnings"
|
|
5635
|
+
],
|
|
5607
5636
|
"projectInstructionFile": "GEMINI.md",
|
|
5608
5637
|
"noPathRewrite": true,
|
|
5609
5638
|
"hookPathStyle": "raw",
|
|
@@ -5669,7 +5698,7 @@ const runtimes = {
|
|
|
5669
5698
|
"augment": {
|
|
5670
5699
|
"id": "augment",
|
|
5671
5700
|
"role": "runtime",
|
|
5672
|
-
"version": "1.
|
|
5701
|
+
"version": "1.17.0",
|
|
5673
5702
|
"title": "Augment Code",
|
|
5674
5703
|
"description": "Augment Code CLI — commands + nested-skill artifact layout; settings-json hook surface; Claude hook event dialect; tier-2 support.",
|
|
5675
5704
|
"tier": "core",
|
|
@@ -5755,6 +5784,9 @@ const runtimes = {
|
|
|
5755
5784
|
"permissionWriter": null,
|
|
5756
5785
|
"extendedHookEvents": [],
|
|
5757
5786
|
"hostBehaviors": {
|
|
5787
|
+
"unsupportedFeatures": [
|
|
5788
|
+
"context-warnings"
|
|
5789
|
+
],
|
|
5758
5790
|
"commandBodyConverter": "convertClaudeToAugmentMarkdown",
|
|
5759
5791
|
"mcpCompanion": "settings-json",
|
|
5760
5792
|
"contentRewriteProfile": "slash-lookahead-own-derived"
|
|
@@ -5784,7 +5816,7 @@ const runtimes = {
|
|
|
5784
5816
|
"claude": {
|
|
5785
5817
|
"id": "claude",
|
|
5786
5818
|
"role": "runtime",
|
|
5787
|
-
"version": "1.
|
|
5819
|
+
"version": "1.17.0",
|
|
5788
5820
|
"title": "Claude Code",
|
|
5789
5821
|
"description": "Anthropic Claude Code — primary development runtime; tier-1 support with full hook surface and skills-based global install.",
|
|
5790
5822
|
"tier": "core",
|
|
@@ -5972,7 +6004,7 @@ const runtimes = {
|
|
|
5972
6004
|
"cline": {
|
|
5973
6005
|
"id": "cline",
|
|
5974
6006
|
"role": "runtime",
|
|
5975
|
-
"version": "1.
|
|
6007
|
+
"version": "1.17.0",
|
|
5976
6008
|
"title": "Cline",
|
|
5977
6009
|
"description": "Cline (VS Code extension) — global-only nested-skill layout; cline-rules hook surface (.clinerules); no hook events emitted; tier-2 support.",
|
|
5978
6010
|
"tier": "core",
|
|
@@ -6066,7 +6098,7 @@ const runtimes = {
|
|
|
6066
6098
|
"codebuddy": {
|
|
6067
6099
|
"id": "codebuddy",
|
|
6068
6100
|
"role": "runtime",
|
|
6069
|
-
"version": "1.
|
|
6101
|
+
"version": "1.17.0",
|
|
6070
6102
|
"title": "CodeBuddy",
|
|
6071
6103
|
"description": "CodeBuddy (Tencent) — converted commands + skills artifact layout; settings-json hook surface; Claude hook event dialect; tier-2 support.",
|
|
6072
6104
|
"tier": "core",
|
|
@@ -6177,6 +6209,9 @@ const runtimes = {
|
|
|
6177
6209
|
"effortSurface": "undocumented"
|
|
6178
6210
|
},
|
|
6179
6211
|
"hostBehaviors": {
|
|
6212
|
+
"unsupportedFeatures": [
|
|
6213
|
+
"context-warnings"
|
|
6214
|
+
],
|
|
6180
6215
|
"reportCommandsDir": true,
|
|
6181
6216
|
"contentRewriteProfile": "slash-bare-own-tilde-bare"
|
|
6182
6217
|
}
|
|
@@ -6185,7 +6220,7 @@ const runtimes = {
|
|
|
6185
6220
|
"codex": {
|
|
6186
6221
|
"id": "codex",
|
|
6187
6222
|
"role": "runtime",
|
|
6188
|
-
"version": "1.
|
|
6223
|
+
"version": "1.17.0",
|
|
6189
6224
|
"title": "OpenAI Codex CLI",
|
|
6190
6225
|
"description": "OpenAI Codex CLI — shell-var command style; per-agent sandbox tiers; config.toml + hooks.json hook surface; tier-1 support.",
|
|
6191
6226
|
"tier": "core",
|
|
@@ -6372,7 +6407,7 @@ const runtimes = {
|
|
|
6372
6407
|
"copilot": {
|
|
6373
6408
|
"id": "copilot",
|
|
6374
6409
|
"role": "runtime",
|
|
6375
|
-
"version": "1.
|
|
6410
|
+
"version": "1.17.0",
|
|
6376
6411
|
"title": "GitHub Copilot",
|
|
6377
6412
|
"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.",
|
|
6378
6413
|
"tier": "core",
|
|
@@ -6473,7 +6508,7 @@ const runtimes = {
|
|
|
6473
6508
|
"cursor": {
|
|
6474
6509
|
"id": "cursor",
|
|
6475
6510
|
"role": "runtime",
|
|
6476
|
-
"version": "1.
|
|
6511
|
+
"version": "1.17.0",
|
|
6477
6512
|
"title": "Cursor",
|
|
6478
6513
|
"description": "Cursor IDE — skills-only workflow surface; hooks.json surface; Claude hook event dialect; recursive skill loader (flat nesting); tier-2 support.",
|
|
6479
6514
|
"tier": "core",
|
|
@@ -6643,7 +6678,7 @@ const runtimes = {
|
|
|
6643
6678
|
"hermes": {
|
|
6644
6679
|
"id": "hermes",
|
|
6645
6680
|
"role": "runtime",
|
|
6646
|
-
"version": "1.
|
|
6681
|
+
"version": "1.17.0",
|
|
6647
6682
|
"title": "Hermes Agent",
|
|
6648
6683
|
"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.",
|
|
6649
6684
|
"tier": "core",
|
|
@@ -6714,6 +6749,9 @@ const runtimes = {
|
|
|
6714
6749
|
"extendedHookEvents": [],
|
|
6715
6750
|
"extensionEvents": "hermes",
|
|
6716
6751
|
"hostBehaviors": {
|
|
6752
|
+
"unsupportedFeatures": [
|
|
6753
|
+
"context-warnings"
|
|
6754
|
+
],
|
|
6717
6755
|
"skillFrontmatterVersion": true,
|
|
6718
6756
|
"skillsManifestPrefix": "skills/gsd/",
|
|
6719
6757
|
"trackCategoryDescription": true,
|
|
@@ -6759,7 +6797,7 @@ const runtimes = {
|
|
|
6759
6797
|
"kilo": {
|
|
6760
6798
|
"id": "kilo",
|
|
6761
6799
|
"role": "runtime",
|
|
6762
|
-
"version": "1.
|
|
6800
|
+
"version": "1.17.0",
|
|
6763
6801
|
"title": "Kilo Code",
|
|
6764
6802
|
"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.",
|
|
6765
6803
|
"tier": "core",
|
|
@@ -6893,7 +6931,7 @@ const runtimes = {
|
|
|
6893
6931
|
"kimi": {
|
|
6894
6932
|
"id": "kimi",
|
|
6895
6933
|
"role": "runtime",
|
|
6896
|
-
"version": "1.
|
|
6934
|
+
"version": "1.17.0",
|
|
6897
6935
|
"title": "Kimi CLI",
|
|
6898
6936
|
"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.",
|
|
6899
6937
|
"tier": "core",
|
|
@@ -6984,6 +7022,9 @@ const runtimes = {
|
|
|
6984
7022
|
"promptFlag": "--prompt"
|
|
6985
7023
|
},
|
|
6986
7024
|
"hostBehaviors": {
|
|
7025
|
+
"unsupportedFeatures": [
|
|
7026
|
+
"context-warnings"
|
|
7027
|
+
],
|
|
6987
7028
|
"reapplyCommand": "/skill:gsd-update --reapply",
|
|
6988
7029
|
"localInstallDeferred": true,
|
|
6989
7030
|
"verificationStyle": "kimi",
|
|
@@ -6999,7 +7040,7 @@ const runtimes = {
|
|
|
6999
7040
|
"kimi-code": {
|
|
7000
7041
|
"id": "kimi-code",
|
|
7001
7042
|
"role": "runtime",
|
|
7002
|
-
"version": "1.
|
|
7043
|
+
"version": "1.17.0",
|
|
7003
7044
|
"title": "Kimi Code CLI",
|
|
7004
7045
|
"description": "Kimi Code CLI (Moonshot AI, Node) — Agent Skills auto-discovered at ~/.kimi-code/skills; global AGENTS.md at ~/.kimi-code/AGENTS.md; native config.toml + [[hooks]] bus; three built-in subagents (coder/explore/plan), NO custom named subagents; background dispatch; tier-2 support. Distinct from Python kimi-cli (the 'kimi' capability) per ADR-1239 EoS — Kimi Code cannot dispatch named subagents so the kimi-agents YAML layout does NOT apply; persona injection rides the existing ${AGENT_SKILLS_*} workflow fallback. Install-layout, agent-install-check, and install-time decision (kimi vs kimi-code) land in follow-up PRs; this descriptor is the EoS foundation.",
|
|
7005
7046
|
"tier": "core",
|
|
@@ -7100,6 +7141,9 @@ const runtimes = {
|
|
|
7100
7141
|
"promptFlag": "--prompt"
|
|
7101
7142
|
},
|
|
7102
7143
|
"hostBehaviors": {
|
|
7144
|
+
"unsupportedFeatures": [
|
|
7145
|
+
"context-warnings"
|
|
7146
|
+
],
|
|
7103
7147
|
"reapplyCommand": "/skill:gsd-update --reapply",
|
|
7104
7148
|
"localInstallDeferred": true,
|
|
7105
7149
|
"verificationStyle": "kimi-code",
|
|
@@ -7167,7 +7211,7 @@ const runtimes = {
|
|
|
7167
7211
|
"opencode": {
|
|
7168
7212
|
"id": "opencode",
|
|
7169
7213
|
"role": "runtime",
|
|
7170
|
-
"version": "1.
|
|
7214
|
+
"version": "1.17.0",
|
|
7171
7215
|
"title": "OpenCode",
|
|
7172
7216
|
"description": "OpenCode — XDG-based config dir; flat commands/ + skills artifact layout; settings-json config format; no lifecycle hook registration; tier-2 support.",
|
|
7173
7217
|
"tier": "core",
|
|
@@ -7259,8 +7303,8 @@ const runtimes = {
|
|
|
7259
7303
|
"commandSurface": "slash-file",
|
|
7260
7304
|
"dispatch": {
|
|
7261
7305
|
"namedDispatch": true,
|
|
7262
|
-
"nested":
|
|
7263
|
-
"maxDepth":
|
|
7306
|
+
"nested": false,
|
|
7307
|
+
"maxDepth": 1,
|
|
7264
7308
|
"background": false,
|
|
7265
7309
|
"subagentToolkit": "full",
|
|
7266
7310
|
"backgroundDispatch": false,
|
|
@@ -7293,6 +7337,11 @@ const runtimes = {
|
|
|
7293
7337
|
"file": "gsd-core.js",
|
|
7294
7338
|
"source": ".opencode/plugins/gsd-core.js"
|
|
7295
7339
|
},
|
|
7340
|
+
"nativeCliPlugin": {
|
|
7341
|
+
"dir": "plugins/gsd-statusline",
|
|
7342
|
+
"file": "tui.tsx",
|
|
7343
|
+
"source": ".opencode/plugins/gsd-statusline/tui.tsx"
|
|
7344
|
+
},
|
|
7296
7345
|
"skipHomePrefixSubstitution": true,
|
|
7297
7346
|
"skipSettingsUi": true,
|
|
7298
7347
|
"skipUpdateBannerCommand": true,
|
|
@@ -7366,7 +7415,7 @@ const runtimes = {
|
|
|
7366
7415
|
"pi": {
|
|
7367
7416
|
"id": "pi",
|
|
7368
7417
|
"role": "runtime",
|
|
7369
|
-
"version": "1.
|
|
7418
|
+
"version": "1.17.0",
|
|
7370
7419
|
"title": "pi",
|
|
7371
7420
|
"description": "pi (pi.dev) — bun-runtime programmatic-CLI; TS ExtensionAPI (registerCommand/registerTool/registerProvider/pi.on); single native-extension file at ~/.pi/agent/extensions/gsd.js (.js, not .cjs — pi's extension auto-discovery accepts only .ts/.js, #2470); no shared-settings hook surface; tier-2 support.",
|
|
7372
7421
|
"tier": "core",
|
|
@@ -7436,7 +7485,7 @@ const runtimes = {
|
|
|
7436
7485
|
"qwen": {
|
|
7437
7486
|
"id": "qwen",
|
|
7438
7487
|
"role": "runtime",
|
|
7439
|
-
"version": "1.
|
|
7488
|
+
"version": "1.17.0",
|
|
7440
7489
|
"title": "Qwen Code",
|
|
7441
7490
|
"description": "Qwen Code (Alibaba) — nested-skill artifact layout; settings-json hook surface; Claude hook event dialect; tier-2 support.",
|
|
7442
7491
|
"tier": "core",
|
|
@@ -7531,6 +7580,9 @@ const runtimes = {
|
|
|
7531
7580
|
"effortSurface": "undocumented"
|
|
7532
7581
|
},
|
|
7533
7582
|
"hostBehaviors": {
|
|
7583
|
+
"unsupportedFeatures": [
|
|
7584
|
+
"context-warnings"
|
|
7585
|
+
],
|
|
7534
7586
|
"skillPriorityFrontmatter": true,
|
|
7535
7587
|
"brandingRewrites": {
|
|
7536
7588
|
"CLAUDE.md": "QWEN.md",
|
|
@@ -7587,7 +7639,7 @@ const runtimes = {
|
|
|
7587
7639
|
"trae": {
|
|
7588
7640
|
"id": "trae",
|
|
7589
7641
|
"role": "runtime",
|
|
7590
|
-
"version": "1.
|
|
7642
|
+
"version": "1.17.0",
|
|
7591
7643
|
"title": "Trae IDE",
|
|
7592
7644
|
"description": "Trae IDE — nested-skill artifact layout; no hook surface (profile-marker-only config); tier-2 support.",
|
|
7593
7645
|
"tier": "core",
|
|
@@ -7686,7 +7738,7 @@ const runtimes = {
|
|
|
7686
7738
|
"vscode": {
|
|
7687
7739
|
"id": "vscode",
|
|
7688
7740
|
"role": "runtime",
|
|
7689
|
-
"version": "1.
|
|
7741
|
+
"version": "1.17.0",
|
|
7690
7742
|
"title": "VS Code",
|
|
7691
7743
|
"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).",
|
|
7692
7744
|
"tier": "core",
|
|
@@ -7744,7 +7796,7 @@ const runtimes = {
|
|
|
7744
7796
|
"windsurf": {
|
|
7745
7797
|
"id": "windsurf",
|
|
7746
7798
|
"role": "runtime",
|
|
7747
|
-
"version": "1.
|
|
7799
|
+
"version": "1.17.0",
|
|
7748
7800
|
"title": "Windsurf",
|
|
7749
7801
|
"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.",
|
|
7750
7802
|
"tier": "core",
|
|
@@ -7837,7 +7889,7 @@ const runtimes = {
|
|
|
7837
7889
|
"zcode": {
|
|
7838
7890
|
"id": "zcode",
|
|
7839
7891
|
"role": "runtime",
|
|
7840
|
-
"version": "1.
|
|
7892
|
+
"version": "1.17.0",
|
|
7841
7893
|
"title": "ZCode",
|
|
7842
7894
|
"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.",
|
|
7843
7895
|
"tier": "core",
|