chore: bump version to 1.14.0 for release

This commit is contained in:
github-actions[bot]
2026-09-13 23:16:53 +00:00
parent c0b2a05d2f
commit 4b402b0325
52 changed files with 117 additions and 117 deletions

View File

@@ -9,7 +9,7 @@
{ {
"name": "gsd-core", "name": "gsd-core",
"description": "GSD Core is a meta-prompting, context engineering, and spec-driven development system for AI coding agents.", "description": "GSD Core is a meta-prompting, context engineering, and spec-driven development system for AI coding agents.",
"version": "1.13.0", "version": "1.14.0",
"source": "./", "source": "./",
"author": { "author": {
"name": "open-gsd", "name": "open-gsd",

View File

@@ -1,7 +1,7 @@
{ {
"name": "gsd-core", "name": "gsd-core",
"displayName": "GSD Core", "displayName": "GSD Core",
"version": "1.13.0", "version": "1.14.0",
"description": "GSD Core is a meta-prompting, context engineering, and spec-driven development system for AI coding agents.", "description": "GSD Core is a meta-prompting, context engineering, and spec-driven development system for AI coding agents.",
"author": { "author": {
"name": "open-gsd", "name": "open-gsd",

View File

@@ -1,7 +1,7 @@
{ {
"id": "ai-integration", "id": "ai-integration",
"role": "feature", "role": "feature",
"version": "1.13.0", "version": "1.14.0",
"title": "AI design contract", "title": "AI design contract",
"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.", "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.",
"tier": "full", "tier": "full",

View File

@@ -1,7 +1,7 @@
{ {
"id": "antigravity", "id": "antigravity",
"role": "runtime", "role": "runtime",
"version": "1.13.0", "version": "1.14.0",
"title": "Antigravity", "title": "Antigravity",
"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.", "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.",
"tier": "core", "tier": "core",

View File

@@ -1,7 +1,7 @@
{ {
"id": "assumption-delta", "id": "assumption-delta",
"role": "feature", "role": "feature",
"version": "1.13.0", "version": "1.14.0",
"title": "Assumption-delta architecture checkpoint", "title": "Assumption-delta architecture checkpoint",
"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.", "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.",
"tier": "full", "tier": "full",

View File

@@ -1,7 +1,7 @@
{ {
"id": "audit", "id": "audit",
"role": "feature", "role": "feature",
"version": "1.13.0", "version": "1.14.0",
"title": "Audit", "title": "Audit",
"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).", "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).",
"tier": "full", "tier": "full",

View File

@@ -1,7 +1,7 @@
{ {
"id": "augment", "id": "augment",
"role": "runtime", "role": "runtime",
"version": "1.13.0", "version": "1.14.0",
"title": "Augment Code", "title": "Augment Code",
"description": "Augment Code CLI — commands + nested-skill artifact layout; settings-json hook surface; Claude hook event dialect; tier-2 support.", "description": "Augment Code CLI — commands + nested-skill artifact layout; settings-json hook surface; Claude hook event dialect; tier-2 support.",
"tier": "core", "tier": "core",

View File

@@ -1,7 +1,7 @@
{ {
"id": "broken-windows", "id": "broken-windows",
"role": "feature", "role": "feature",
"version": "1.13.0", "version": "1.14.0",
"title": "Broken-windows ledger", "title": "Broken-windows ledger",
"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).", "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).",
"tier": "full", "tier": "full",

View File

@@ -1,7 +1,7 @@
{ {
"id": "claude-orchestration", "id": "claude-orchestration",
"role": "feature", "role": "feature",
"version": "1.13.0", "version": "1.14.0",
"title": "Claude orchestration (Workflow backend)", "title": "Claude orchestration (Workflow backend)",
"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.", "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.",
"tier": "full", "tier": "full",

View File

@@ -1,7 +1,7 @@
{ {
"id": "claude", "id": "claude",
"role": "runtime", "role": "runtime",
"version": "1.13.0", "version": "1.14.0",
"title": "Claude Code", "title": "Claude Code",
"description": "Anthropic Claude Code — primary development runtime; tier-1 support with full hook surface and skills-based global install.", "description": "Anthropic Claude Code — primary development runtime; tier-1 support with full hook surface and skills-based global install.",
"tier": "core", "tier": "core",

View File

@@ -1,7 +1,7 @@
{ {
"id": "cline", "id": "cline",
"role": "runtime", "role": "runtime",
"version": "1.13.0", "version": "1.14.0",
"title": "Cline", "title": "Cline",
"description": "Cline (VS Code extension) — global-only nested-skill layout; cline-rules hook surface (.clinerules); no hook events emitted; tier-2 support.", "description": "Cline (VS Code extension) — global-only nested-skill layout; cline-rules hook surface (.clinerules); no hook events emitted; tier-2 support.",
"tier": "core", "tier": "core",

View File

@@ -1,7 +1,7 @@
{ {
"id": "code-review", "id": "code-review",
"role": "feature", "role": "feature",
"version": "1.13.0", "version": "1.14.0",
"title": "Code review", "title": "Code review",
"description": "Source-file code review and review-fix workflow support for completed execution work.", "description": "Source-file code review and review-fix workflow support for completed execution work.",
"tier": "full", "tier": "full",

View File

@@ -1,7 +1,7 @@
{ {
"id": "codebuddy", "id": "codebuddy",
"role": "runtime", "role": "runtime",
"version": "1.13.0", "version": "1.14.0",
"title": "CodeBuddy", "title": "CodeBuddy",
"description": "CodeBuddy (Tencent) — converted commands + skills artifact layout; settings-json hook surface; Claude hook event dialect; tier-2 support.", "description": "CodeBuddy (Tencent) — converted commands + skills artifact layout; settings-json hook surface; Claude hook event dialect; tier-2 support.",
"tier": "core", "tier": "core",

View File

@@ -1,7 +1,7 @@
{ {
"id": "coderabbit", "id": "coderabbit",
"role": "reviewer", "role": "reviewer",
"version": "1.13.0", "version": "1.14.0",
"title": "CodeRabbit", "title": "CodeRabbit",
"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).", "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).",
"tier": "full", "tier": "full",

View File

@@ -1,7 +1,7 @@
{ {
"id": "codex", "id": "codex",
"role": "runtime", "role": "runtime",
"version": "1.13.0", "version": "1.14.0",
"title": "OpenAI Codex CLI", "title": "OpenAI Codex CLI",
"description": "OpenAI Codex CLI — shell-var command style; per-agent sandbox tiers; config.toml + hooks.json hook surface; tier-1 support.", "description": "OpenAI Codex CLI — shell-var command style; per-agent sandbox tiers; config.toml + hooks.json hook surface; tier-1 support.",
"tier": "core", "tier": "core",

View File

@@ -1,7 +1,7 @@
{ {
"id": "copilot", "id": "copilot",
"role": "runtime", "role": "runtime",
"version": "1.13.0", "version": "1.14.0",
"title": "GitHub Copilot", "title": "GitHub Copilot",
"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.", "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.",
"tier": "core", "tier": "core",

View File

@@ -1,7 +1,7 @@
{ {
"id": "cursor", "id": "cursor",
"role": "runtime", "role": "runtime",
"version": "1.13.0", "version": "1.14.0",
"title": "Cursor", "title": "Cursor",
"description": "Cursor IDE — skills-only workflow surface; hooks.json surface; Claude hook event dialect; recursive skill loader (flat nesting); tier-2 support.", "description": "Cursor IDE — skills-only workflow surface; hooks.json surface; Claude hook event dialect; recursive skill loader (flat nesting); tier-2 support.",
"tier": "core", "tier": "core",

View File

@@ -1,7 +1,7 @@
{ {
"id": "drift", "id": "drift",
"role": "feature", "role": "feature",
"version": "1.13.0", "version": "1.14.0",
"title": "Drift detection gates", "title": "Drift detection gates",
"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.", "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.",
"tier": "full", "tier": "full",

View File

@@ -1,7 +1,7 @@
{ {
"id": "external-job", "id": "external-job",
"role": "feature", "role": "feature",
"version": "1.13.0", "version": "1.14.0",
"title": "Async external-job scheduler adapter", "title": "Async external-job scheduler adapter",
"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).", "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).",
"tier": "full", "tier": "full",

View File

@@ -1,7 +1,7 @@
{ {
"id": "gap-analysis", "id": "gap-analysis",
"role": "feature", "role": "feature",
"version": "1.13.0", "version": "1.14.0",
"title": "Post-planning gap analysis", "title": "Post-planning gap analysis",
"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.", "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.",
"tier": "standard", "tier": "standard",

View File

@@ -1,7 +1,7 @@
{ {
"id": "gemini", "id": "gemini",
"role": "reviewer", "role": "reviewer",
"version": "1.13.0", "version": "1.14.0",
"title": "Gemini CLI", "title": "Gemini CLI",
"description": "Google Gemini CLI — cross-AI /gsd:review reviewer lane only; not a GSD install target (no runtime body, no artifacts). Spawned as `gemini -p - -m <model>` with the plan piped on stdin.", "description": "Google Gemini CLI — cross-AI /gsd:review reviewer lane only; not a GSD install target (no runtime body, no artifacts). Spawned as `gemini -p - -m <model>` with the plan piped on stdin.",
"tier": "full", "tier": "full",

View File

@@ -1,7 +1,7 @@
{ {
"id": "graphify", "id": "graphify",
"role": "feature", "role": "feature",
"version": "1.13.0", "version": "1.14.0",
"title": "Knowledge graph", "title": "Knowledge graph",
"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.", "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.",
"tier": "full", "tier": "full",

View File

@@ -1,7 +1,7 @@
{ {
"id": "hermes", "id": "hermes",
"role": "runtime", "role": "runtime",
"version": "1.13.0", "version": "1.14.0",
"title": "Hermes Agent", "title": "Hermes Agent",
"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.", "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.",
"tier": "core", "tier": "core",

View File

@@ -1,7 +1,7 @@
{ {
"id": "intel", "id": "intel",
"role": "feature", "role": "feature",
"version": "1.13.0", "version": "1.14.0",
"title": "Codebase intelligence", "title": "Codebase intelligence",
"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`.", "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`.",
"tier": "full", "tier": "full",

View File

@@ -1,7 +1,7 @@
{ {
"id": "kilo", "id": "kilo",
"role": "runtime", "role": "runtime",
"version": "1.13.0", "version": "1.14.0",
"title": "Kilo Code", "title": "Kilo Code",
"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.", "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.",
"tier": "core", "tier": "core",

View File

@@ -1,7 +1,7 @@
{ {
"id": "kimi-code", "id": "kimi-code",
"role": "runtime", "role": "runtime",
"version": "1.13.0", "version": "1.14.0",
"title": "Kimi Code CLI", "title": "Kimi Code CLI",
"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.", "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.",
"tier": "core", "tier": "core",

View File

@@ -1,7 +1,7 @@
{ {
"id": "kimi", "id": "kimi",
"role": "runtime", "role": "runtime",
"version": "1.13.0", "version": "1.14.0",
"title": "Kimi CLI", "title": "Kimi CLI",
"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.", "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.",
"tier": "core", "tier": "core",

View File

@@ -1,7 +1,7 @@
{ {
"id": "live-dom-uat", "id": "live-dom-uat",
"role": "feature", "role": "feature",
"version": "1.13.0", "version": "1.14.0",
"title": "Live-DOM UAT", "title": "Live-DOM UAT",
"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.", "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.",
"tier": "full", "tier": "full",

View File

@@ -1,7 +1,7 @@
{ {
"id": "llama-cpp", "id": "llama-cpp",
"role": "reviewer", "role": "reviewer",
"version": "1.13.0", "version": "1.14.0",
"title": "llama.cpp", "title": "llama.cpp",
"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).", "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).",
"tier": "full", "tier": "full",

View File

@@ -1,7 +1,7 @@
{ {
"id": "lm-studio", "id": "lm-studio",
"role": "reviewer", "role": "reviewer",
"version": "1.13.0", "version": "1.14.0",
"title": "LM Studio", "title": "LM Studio",
"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).", "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).",
"tier": "full", "tier": "full",

View File

@@ -1,7 +1,7 @@
{ {
"id": "mempalace", "id": "mempalace",
"role": "feature", "role": "feature",
"version": "1.13.0", "version": "1.14.0",
"title": "MemPalace memory", "title": "MemPalace memory",
"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.", "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.",
"tier": "full", "tier": "full",

View File

@@ -1,7 +1,7 @@
{ {
"id": "nyquist", "id": "nyquist",
"role": "feature", "role": "feature",
"version": "1.13.0", "version": "1.14.0",
"title": "Nyquist validation", "title": "Nyquist validation",
"description": "Validation coverage audit that maps executed work back to tests and manual-only evidence.", "description": "Validation coverage audit that maps executed work back to tests and manual-only evidence.",
"tier": "full", "tier": "full",

View File

@@ -1,7 +1,7 @@
{ {
"id": "ollama", "id": "ollama",
"role": "reviewer", "role": "reviewer",
"version": "1.13.0", "version": "1.14.0",
"title": "Ollama", "title": "Ollama",
"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.", "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.",
"tier": "full", "tier": "full",

View File

@@ -1,7 +1,7 @@
{ {
"id": "opencode", "id": "opencode",
"role": "runtime", "role": "runtime",
"version": "1.13.0", "version": "1.14.0",
"title": "OpenCode", "title": "OpenCode",
"description": "OpenCode — XDG-based config dir; flat commands/ + skills artifact layout; settings-json config format; no lifecycle hook registration; tier-2 support.", "description": "OpenCode — XDG-based config dir; flat commands/ + skills artifact layout; settings-json config format; no lifecycle hook registration; tier-2 support.",
"tier": "core", "tier": "core",

View File

@@ -1,7 +1,7 @@
{ {
"id": "pattern-mapper", "id": "pattern-mapper",
"role": "feature", "role": "feature",
"version": "1.13.0", "version": "1.14.0",
"title": "Pattern mapping", "title": "Pattern mapping",
"description": "Optional codebase-pattern mapping before planning; owns the pattern mapper agent and workflow.pattern_mapper activation key.", "description": "Optional codebase-pattern mapping before planning; owns the pattern mapper agent and workflow.pattern_mapper activation key.",
"tier": "full", "tier": "full",

View File

@@ -1,7 +1,7 @@
{ {
"id": "pi", "id": "pi",
"role": "runtime", "role": "runtime",
"version": "1.13.0", "version": "1.14.0",
"title": "pi", "title": "pi",
"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.", "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.",
"tier": "core", "tier": "core",

View File

@@ -1,7 +1,7 @@
{ {
"id": "profile-pipeline", "id": "profile-pipeline",
"role": "feature", "role": "feature",
"version": "1.13.0", "version": "1.14.0",
"title": "Developer profiling pipeline", "title": "Developer profiling pipeline",
"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.", "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.",
"tier": "full", "tier": "full",

View File

@@ -1,7 +1,7 @@
{ {
"id": "qwen", "id": "qwen",
"role": "runtime", "role": "runtime",
"version": "1.13.0", "version": "1.14.0",
"title": "Qwen Code", "title": "Qwen Code",
"description": "Qwen Code (Alibaba) — nested-skill artifact layout; settings-json hook surface; Claude hook event dialect; tier-2 support.", "description": "Qwen Code (Alibaba) — nested-skill artifact layout; settings-json hook surface; Claude hook event dialect; tier-2 support.",
"tier": "core", "tier": "core",

View File

@@ -1,7 +1,7 @@
{ {
"id": "refactor-trigger", "id": "refactor-trigger",
"role": "feature", "role": "feature",
"version": "1.13.0", "version": "1.14.0",
"title": "Complexity-triggered refactor", "title": "Complexity-triggered refactor",
"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).", "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).",
"tier": "full", "tier": "full",

View File

@@ -1,7 +1,7 @@
{ {
"id": "research", "id": "research",
"role": "feature", "role": "feature",
"version": "1.13.0", "version": "1.14.0",
"title": "Phase research", "title": "Phase research",
"description": "Optional phase research before planning; owns the phase researcher agent and workflow.research activation key.", "description": "Optional phase research before planning; owns the phase researcher agent and workflow.research activation key.",
"tier": "standard", "tier": "standard",

View File

@@ -1,7 +1,7 @@
{ {
"id": "schema-gate", "id": "schema-gate",
"role": "feature", "role": "feature",
"version": "1.13.0", "version": "1.14.0",
"title": "Schema push detection gate", "title": "Schema push detection gate",
"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.", "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.",
"tier": "full", "tier": "full",

View File

@@ -1,7 +1,7 @@
{ {
"id": "security", "id": "security",
"role": "feature", "role": "feature",
"version": "1.13.0", "version": "1.14.0",
"title": "Security enforcement", "title": "Security enforcement",
"description": "Threat mitigation verification and ship-time security blocking for phases with security enforcement enabled.", "description": "Threat mitigation verification and ship-time security blocking for phases with security enforcement enabled.",
"tier": "full", "tier": "full",

View File

@@ -1,7 +1,7 @@
{ {
"id": "tdd", "id": "tdd",
"role": "feature", "role": "feature",
"version": "1.13.0", "version": "1.14.0",
"title": "Test-driven development", "title": "Test-driven development",
"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.", "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.",
"tier": "full", "tier": "full",

View File

@@ -1,7 +1,7 @@
{ {
"id": "trae", "id": "trae",
"role": "runtime", "role": "runtime",
"version": "1.13.0", "version": "1.14.0",
"title": "Trae IDE", "title": "Trae IDE",
"description": "Trae IDE — nested-skill artifact layout; no hook surface (profile-marker-only config); tier-2 support.", "description": "Trae IDE — nested-skill artifact layout; no hook surface (profile-marker-only config); tier-2 support.",
"tier": "core", "tier": "core",

View File

@@ -1,7 +1,7 @@
{ {
"id": "ui", "id": "ui",
"role": "feature", "role": "feature",
"version": "1.13.0", "version": "1.14.0",
"title": "UI design contracts", "title": "UI design contracts",
"description": "UI-SPEC design contract + retrospective UI audit for frontend phases.", "description": "UI-SPEC design contract + retrospective UI audit for frontend phases.",
"tier": "full", "tier": "full",

View File

@@ -1,7 +1,7 @@
{ {
"id": "vscode", "id": "vscode",
"role": "runtime", "role": "runtime",
"version": "1.13.0", "version": "1.14.0",
"title": "VS Code", "title": "VS Code",
"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).", "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).",
"tier": "core", "tier": "core",

View File

@@ -1,7 +1,7 @@
{ {
"id": "windsurf", "id": "windsurf",
"role": "runtime", "role": "runtime",
"version": "1.13.0", "version": "1.14.0",
"title": "Windsurf", "title": "Windsurf",
"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.", "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.",
"tier": "core", "tier": "core",

View File

@@ -1,7 +1,7 @@
{ {
"id": "zcode", "id": "zcode",
"role": "runtime", "role": "runtime",
"version": "1.13.0", "version": "1.14.0",
"title": "ZCode", "title": "ZCode",
"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.", "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.",
"tier": "core", "tier": "core",

View File

@@ -10,7 +10,7 @@ const capabilities = {
"ai-integration": { "ai-integration": {
"id": "ai-integration", "id": "ai-integration",
"role": "feature", "role": "feature",
"version": "1.13.0", "version": "1.14.0",
"title": "AI design contract", "title": "AI design contract",
"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.", "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.",
"tier": "full", "tier": "full",
@@ -95,7 +95,7 @@ const capabilities = {
"antigravity": { "antigravity": {
"id": "antigravity", "id": "antigravity",
"role": "runtime", "role": "runtime",
"version": "1.13.0", "version": "1.14.0",
"title": "Antigravity", "title": "Antigravity",
"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.", "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.",
"tier": "core", "tier": "core",
@@ -258,7 +258,7 @@ const capabilities = {
"assumption-delta": { "assumption-delta": {
"id": "assumption-delta", "id": "assumption-delta",
"role": "feature", "role": "feature",
"version": "1.13.0", "version": "1.14.0",
"title": "Assumption-delta architecture checkpoint", "title": "Assumption-delta architecture checkpoint",
"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.", "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.",
"tier": "full", "tier": "full",
@@ -304,7 +304,7 @@ const capabilities = {
"audit": { "audit": {
"id": "audit", "id": "audit",
"role": "feature", "role": "feature",
"version": "1.13.0", "version": "1.14.0",
"title": "Audit", "title": "Audit",
"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).", "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).",
"tier": "full", "tier": "full",
@@ -341,7 +341,7 @@ const capabilities = {
"augment": { "augment": {
"id": "augment", "id": "augment",
"role": "runtime", "role": "runtime",
"version": "1.13.0", "version": "1.14.0",
"title": "Augment Code", "title": "Augment Code",
"description": "Augment Code CLI — commands + nested-skill artifact layout; settings-json hook surface; Claude hook event dialect; tier-2 support.", "description": "Augment Code CLI — commands + nested-skill artifact layout; settings-json hook surface; Claude hook event dialect; tier-2 support.",
"tier": "core", "tier": "core",
@@ -455,7 +455,7 @@ const capabilities = {
"broken-windows": { "broken-windows": {
"id": "broken-windows", "id": "broken-windows",
"role": "feature", "role": "feature",
"version": "1.13.0", "version": "1.14.0",
"title": "Broken-windows ledger", "title": "Broken-windows ledger",
"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).", "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).",
"tier": "full", "tier": "full",
@@ -501,7 +501,7 @@ const capabilities = {
"claude": { "claude": {
"id": "claude", "id": "claude",
"role": "runtime", "role": "runtime",
"version": "1.13.0", "version": "1.14.0",
"title": "Claude Code", "title": "Claude Code",
"description": "Anthropic Claude Code — primary development runtime; tier-1 support with full hook surface and skills-based global install.", "description": "Anthropic Claude Code — primary development runtime; tier-1 support with full hook surface and skills-based global install.",
"tier": "core", "tier": "core",
@@ -682,7 +682,7 @@ const capabilities = {
"claude-orchestration": { "claude-orchestration": {
"id": "claude-orchestration", "id": "claude-orchestration",
"role": "feature", "role": "feature",
"version": "1.13.0", "version": "1.14.0",
"title": "Claude orchestration (Workflow backend)", "title": "Claude orchestration (Workflow backend)",
"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.", "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.",
"tier": "full", "tier": "full",
@@ -770,7 +770,7 @@ const capabilities = {
"cline": { "cline": {
"id": "cline", "id": "cline",
"role": "runtime", "role": "runtime",
"version": "1.13.0", "version": "1.14.0",
"title": "Cline", "title": "Cline",
"description": "Cline (VS Code extension) — global-only nested-skill layout; cline-rules hook surface (.clinerules); no hook events emitted; tier-2 support.", "description": "Cline (VS Code extension) — global-only nested-skill layout; cline-rules hook surface (.clinerules); no hook events emitted; tier-2 support.",
"tier": "core", "tier": "core",
@@ -863,7 +863,7 @@ const capabilities = {
"code-review": { "code-review": {
"id": "code-review", "id": "code-review",
"role": "feature", "role": "feature",
"version": "1.13.0", "version": "1.14.0",
"title": "Code review", "title": "Code review",
"description": "Source-file code review and review-fix workflow support for completed execution work.", "description": "Source-file code review and review-fix workflow support for completed execution work.",
"tier": "full", "tier": "full",
@@ -949,7 +949,7 @@ const capabilities = {
"codebuddy": { "codebuddy": {
"id": "codebuddy", "id": "codebuddy",
"role": "runtime", "role": "runtime",
"version": "1.13.0", "version": "1.14.0",
"title": "CodeBuddy", "title": "CodeBuddy",
"description": "CodeBuddy (Tencent) — converted commands + skills artifact layout; settings-json hook surface; Claude hook event dialect; tier-2 support.", "description": "CodeBuddy (Tencent) — converted commands + skills artifact layout; settings-json hook surface; Claude hook event dialect; tier-2 support.",
"tier": "core", "tier": "core",
@@ -1067,7 +1067,7 @@ const capabilities = {
"coderabbit": { "coderabbit": {
"id": "coderabbit", "id": "coderabbit",
"role": "reviewer", "role": "reviewer",
"version": "1.13.0", "version": "1.14.0",
"title": "CodeRabbit", "title": "CodeRabbit",
"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).", "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).",
"tier": "full", "tier": "full",
@@ -1119,7 +1119,7 @@ const capabilities = {
"codex": { "codex": {
"id": "codex", "id": "codex",
"role": "runtime", "role": "runtime",
"version": "1.13.0", "version": "1.14.0",
"title": "OpenAI Codex CLI", "title": "OpenAI Codex CLI",
"description": "OpenAI Codex CLI — shell-var command style; per-agent sandbox tiers; config.toml + hooks.json hook surface; tier-1 support.", "description": "OpenAI Codex CLI — shell-var command style; per-agent sandbox tiers; config.toml + hooks.json hook surface; tier-1 support.",
"tier": "core", "tier": "core",
@@ -1299,7 +1299,7 @@ const capabilities = {
"copilot": { "copilot": {
"id": "copilot", "id": "copilot",
"role": "runtime", "role": "runtime",
"version": "1.13.0", "version": "1.14.0",
"title": "GitHub Copilot", "title": "GitHub Copilot",
"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.", "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.",
"tier": "core", "tier": "core",
@@ -1399,7 +1399,7 @@ const capabilities = {
"cursor": { "cursor": {
"id": "cursor", "id": "cursor",
"role": "runtime", "role": "runtime",
"version": "1.13.0", "version": "1.14.0",
"title": "Cursor", "title": "Cursor",
"description": "Cursor IDE — skills-only workflow surface; hooks.json surface; Claude hook event dialect; recursive skill loader (flat nesting); tier-2 support.", "description": "Cursor IDE — skills-only workflow surface; hooks.json surface; Claude hook event dialect; recursive skill loader (flat nesting); tier-2 support.",
"tier": "core", "tier": "core",
@@ -1568,7 +1568,7 @@ const capabilities = {
"drift": { "drift": {
"id": "drift", "id": "drift",
"role": "feature", "role": "feature",
"version": "1.13.0", "version": "1.14.0",
"title": "Drift detection gates", "title": "Drift detection gates",
"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.", "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.",
"tier": "full", "tier": "full",
@@ -1669,7 +1669,7 @@ const capabilities = {
"external-job": { "external-job": {
"id": "external-job", "id": "external-job",
"role": "feature", "role": "feature",
"version": "1.13.0", "version": "1.14.0",
"title": "Async external-job scheduler adapter", "title": "Async external-job scheduler adapter",
"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).", "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).",
"tier": "full", "tier": "full",
@@ -1752,7 +1752,7 @@ const capabilities = {
"gap-analysis": { "gap-analysis": {
"id": "gap-analysis", "id": "gap-analysis",
"role": "feature", "role": "feature",
"version": "1.13.0", "version": "1.14.0",
"title": "Post-planning gap analysis", "title": "Post-planning gap analysis",
"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.", "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.",
"tier": "standard", "tier": "standard",
@@ -1793,7 +1793,7 @@ const capabilities = {
"gemini": { "gemini": {
"id": "gemini", "id": "gemini",
"role": "reviewer", "role": "reviewer",
"version": "1.13.0", "version": "1.14.0",
"title": "Gemini CLI", "title": "Gemini CLI",
"description": "Google Gemini CLI — cross-AI /gsd:review reviewer lane only; not a GSD install target (no runtime body, no artifacts). Spawned as `gemini -p - -m <model>` with the plan piped on stdin.", "description": "Google Gemini CLI — cross-AI /gsd:review reviewer lane only; not a GSD install target (no runtime body, no artifacts). Spawned as `gemini -p - -m <model>` with the plan piped on stdin.",
"tier": "full", "tier": "full",
@@ -1856,7 +1856,7 @@ const capabilities = {
"graphify": { "graphify": {
"id": "graphify", "id": "graphify",
"role": "feature", "role": "feature",
"version": "1.13.0", "version": "1.14.0",
"title": "Knowledge graph", "title": "Knowledge graph",
"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.", "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.",
"tier": "full", "tier": "full",
@@ -1897,7 +1897,7 @@ const capabilities = {
"hermes": { "hermes": {
"id": "hermes", "id": "hermes",
"role": "runtime", "role": "runtime",
"version": "1.13.0", "version": "1.14.0",
"title": "Hermes Agent", "title": "Hermes Agent",
"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.", "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.",
"tier": "core", "tier": "core",
@@ -2009,7 +2009,7 @@ const capabilities = {
"intel": { "intel": {
"id": "intel", "id": "intel",
"role": "feature", "role": "feature",
"version": "1.13.0", "version": "1.14.0",
"title": "Codebase intelligence", "title": "Codebase intelligence",
"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`.", "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`.",
"tier": "full", "tier": "full",
@@ -2061,7 +2061,7 @@ const capabilities = {
"kilo": { "kilo": {
"id": "kilo", "id": "kilo",
"role": "runtime", "role": "runtime",
"version": "1.13.0", "version": "1.14.0",
"title": "Kilo Code", "title": "Kilo Code",
"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.", "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.",
"tier": "core", "tier": "core",
@@ -2191,7 +2191,7 @@ const capabilities = {
"kimi": { "kimi": {
"id": "kimi", "id": "kimi",
"role": "runtime", "role": "runtime",
"version": "1.13.0", "version": "1.14.0",
"title": "Kimi CLI", "title": "Kimi CLI",
"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.", "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.",
"tier": "core", "tier": "core",
@@ -2295,7 +2295,7 @@ const capabilities = {
"kimi-code": { "kimi-code": {
"id": "kimi-code", "id": "kimi-code",
"role": "runtime", "role": "runtime",
"version": "1.13.0", "version": "1.14.0",
"title": "Kimi Code CLI", "title": "Kimi Code CLI",
"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.", "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.",
"tier": "core", "tier": "core",
@@ -2462,7 +2462,7 @@ const capabilities = {
"live-dom-uat": { "live-dom-uat": {
"id": "live-dom-uat", "id": "live-dom-uat",
"role": "feature", "role": "feature",
"version": "1.13.0", "version": "1.14.0",
"title": "Live-DOM UAT", "title": "Live-DOM UAT",
"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.", "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.",
"tier": "full", "tier": "full",
@@ -2515,7 +2515,7 @@ const capabilities = {
"llama-cpp": { "llama-cpp": {
"id": "llama-cpp", "id": "llama-cpp",
"role": "reviewer", "role": "reviewer",
"version": "1.13.0", "version": "1.14.0",
"title": "llama.cpp", "title": "llama.cpp",
"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).", "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).",
"tier": "full", "tier": "full",
@@ -2581,7 +2581,7 @@ const capabilities = {
"lm-studio": { "lm-studio": {
"id": "lm-studio", "id": "lm-studio",
"role": "reviewer", "role": "reviewer",
"version": "1.13.0", "version": "1.14.0",
"title": "LM Studio", "title": "LM Studio",
"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).", "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).",
"tier": "full", "tier": "full",
@@ -2647,7 +2647,7 @@ const capabilities = {
"mempalace": { "mempalace": {
"id": "mempalace", "id": "mempalace",
"role": "feature", "role": "feature",
"version": "1.13.0", "version": "1.14.0",
"title": "MemPalace memory", "title": "MemPalace memory",
"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.", "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.",
"tier": "full", "tier": "full",
@@ -2821,7 +2821,7 @@ const capabilities = {
"nyquist": { "nyquist": {
"id": "nyquist", "id": "nyquist",
"role": "feature", "role": "feature",
"version": "1.13.0", "version": "1.14.0",
"title": "Nyquist validation", "title": "Nyquist validation",
"description": "Validation coverage audit that maps executed work back to tests and manual-only evidence.", "description": "Validation coverage audit that maps executed work back to tests and manual-only evidence.",
"tier": "full", "tier": "full",
@@ -2871,7 +2871,7 @@ const capabilities = {
"ollama": { "ollama": {
"id": "ollama", "id": "ollama",
"role": "reviewer", "role": "reviewer",
"version": "1.13.0", "version": "1.14.0",
"title": "Ollama", "title": "Ollama",
"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.", "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.",
"tier": "full", "tier": "full",
@@ -2937,7 +2937,7 @@ const capabilities = {
"opencode": { "opencode": {
"id": "opencode", "id": "opencode",
"role": "runtime", "role": "runtime",
"version": "1.13.0", "version": "1.14.0",
"title": "OpenCode", "title": "OpenCode",
"description": "OpenCode — XDG-based config dir; flat commands/ + skills artifact layout; settings-json config format; no lifecycle hook registration; tier-2 support.", "description": "OpenCode — XDG-based config dir; flat commands/ + skills artifact layout; settings-json config format; no lifecycle hook registration; tier-2 support.",
"tier": "core", "tier": "core",
@@ -3132,7 +3132,7 @@ const capabilities = {
"pattern-mapper": { "pattern-mapper": {
"id": "pattern-mapper", "id": "pattern-mapper",
"role": "feature", "role": "feature",
"version": "1.13.0", "version": "1.14.0",
"title": "Pattern mapping", "title": "Pattern mapping",
"description": "Optional codebase-pattern mapping before planning; owns the pattern mapper agent and workflow.pattern_mapper activation key.", "description": "Optional codebase-pattern mapping before planning; owns the pattern mapper agent and workflow.pattern_mapper activation key.",
"tier": "full", "tier": "full",
@@ -3186,7 +3186,7 @@ const capabilities = {
"pi": { "pi": {
"id": "pi", "id": "pi",
"role": "runtime", "role": "runtime",
"version": "1.13.0", "version": "1.14.0",
"title": "pi", "title": "pi",
"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.", "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.",
"tier": "core", "tier": "core",
@@ -3256,7 +3256,7 @@ const capabilities = {
"profile-pipeline": { "profile-pipeline": {
"id": "profile-pipeline", "id": "profile-pipeline",
"role": "feature", "role": "feature",
"version": "1.13.0", "version": "1.14.0",
"title": "Developer profiling pipeline", "title": "Developer profiling pipeline",
"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.", "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.",
"tier": "full", "tier": "full",
@@ -3333,7 +3333,7 @@ const capabilities = {
"qwen": { "qwen": {
"id": "qwen", "id": "qwen",
"role": "runtime", "role": "runtime",
"version": "1.13.0", "version": "1.14.0",
"title": "Qwen Code", "title": "Qwen Code",
"description": "Qwen Code (Alibaba) — nested-skill artifact layout; settings-json hook surface; Claude hook event dialect; tier-2 support.", "description": "Qwen Code (Alibaba) — nested-skill artifact layout; settings-json hook surface; Claude hook event dialect; tier-2 support.",
"tier": "core", "tier": "core",
@@ -3483,7 +3483,7 @@ const capabilities = {
"refactor-trigger": { "refactor-trigger": {
"id": "refactor-trigger", "id": "refactor-trigger",
"role": "feature", "role": "feature",
"version": "1.13.0", "version": "1.14.0",
"title": "Complexity-triggered refactor", "title": "Complexity-triggered refactor",
"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).", "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).",
"tier": "full", "tier": "full",
@@ -3550,7 +3550,7 @@ const capabilities = {
"research": { "research": {
"id": "research", "id": "research",
"role": "feature", "role": "feature",
"version": "1.13.0", "version": "1.14.0",
"title": "Phase research", "title": "Phase research",
"description": "Optional phase research before planning; owns the phase researcher agent and workflow.research activation key.", "description": "Optional phase research before planning; owns the phase researcher agent and workflow.research activation key.",
"tier": "standard", "tier": "standard",
@@ -3602,7 +3602,7 @@ const capabilities = {
"schema-gate": { "schema-gate": {
"id": "schema-gate", "id": "schema-gate",
"role": "feature", "role": "feature",
"version": "1.13.0", "version": "1.14.0",
"title": "Schema push detection gate", "title": "Schema push detection gate",
"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.", "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.",
"tier": "full", "tier": "full",
@@ -3648,7 +3648,7 @@ const capabilities = {
"security": { "security": {
"id": "security", "id": "security",
"role": "feature", "role": "feature",
"version": "1.13.0", "version": "1.14.0",
"title": "Security enforcement", "title": "Security enforcement",
"description": "Threat mitigation verification and ship-time security blocking for phases with security enforcement enabled.", "description": "Threat mitigation verification and ship-time security blocking for phases with security enforcement enabled.",
"tier": "full", "tier": "full",
@@ -3747,7 +3747,7 @@ const capabilities = {
"tdd": { "tdd": {
"id": "tdd", "id": "tdd",
"role": "feature", "role": "feature",
"version": "1.13.0", "version": "1.14.0",
"title": "Test-driven development", "title": "Test-driven development",
"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.", "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.",
"tier": "full", "tier": "full",
@@ -3800,7 +3800,7 @@ const capabilities = {
"trae": { "trae": {
"id": "trae", "id": "trae",
"role": "runtime", "role": "runtime",
"version": "1.13.0", "version": "1.14.0",
"title": "Trae IDE", "title": "Trae IDE",
"description": "Trae IDE — nested-skill artifact layout; no hook surface (profile-marker-only config); tier-2 support.", "description": "Trae IDE — nested-skill artifact layout; no hook surface (profile-marker-only config); tier-2 support.",
"tier": "core", "tier": "core",
@@ -3898,7 +3898,7 @@ const capabilities = {
"ui": { "ui": {
"id": "ui", "id": "ui",
"role": "feature", "role": "feature",
"version": "1.13.0", "version": "1.14.0",
"title": "UI design contracts", "title": "UI design contracts",
"description": "UI-SPEC design contract + retrospective UI audit for frontend phases.", "description": "UI-SPEC design contract + retrospective UI audit for frontend phases.",
"tier": "full", "tier": "full",
@@ -3993,7 +3993,7 @@ const capabilities = {
"vscode": { "vscode": {
"id": "vscode", "id": "vscode",
"role": "runtime", "role": "runtime",
"version": "1.13.0", "version": "1.14.0",
"title": "VS Code", "title": "VS Code",
"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).", "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).",
"tier": "core", "tier": "core",
@@ -4051,7 +4051,7 @@ const capabilities = {
"windsurf": { "windsurf": {
"id": "windsurf", "id": "windsurf",
"role": "runtime", "role": "runtime",
"version": "1.13.0", "version": "1.14.0",
"title": "Windsurf", "title": "Windsurf",
"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.", "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.",
"tier": "core", "tier": "core",
@@ -4143,7 +4143,7 @@ const capabilities = {
"zcode": { "zcode": {
"id": "zcode", "id": "zcode",
"role": "runtime", "role": "runtime",
"version": "1.13.0", "version": "1.14.0",
"title": "ZCode", "title": "ZCode",
"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.", "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.",
"tier": "core", "tier": "core",
@@ -5568,7 +5568,7 @@ const runtimes = {
"antigravity": { "antigravity": {
"id": "antigravity", "id": "antigravity",
"role": "runtime", "role": "runtime",
"version": "1.13.0", "version": "1.14.0",
"title": "Antigravity", "title": "Antigravity",
"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.", "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.",
"tier": "core", "tier": "core",
@@ -5731,7 +5731,7 @@ const runtimes = {
"augment": { "augment": {
"id": "augment", "id": "augment",
"role": "runtime", "role": "runtime",
"version": "1.13.0", "version": "1.14.0",
"title": "Augment Code", "title": "Augment Code",
"description": "Augment Code CLI — commands + nested-skill artifact layout; settings-json hook surface; Claude hook event dialect; tier-2 support.", "description": "Augment Code CLI — commands + nested-skill artifact layout; settings-json hook surface; Claude hook event dialect; tier-2 support.",
"tier": "core", "tier": "core",
@@ -5845,7 +5845,7 @@ const runtimes = {
"claude": { "claude": {
"id": "claude", "id": "claude",
"role": "runtime", "role": "runtime",
"version": "1.13.0", "version": "1.14.0",
"title": "Claude Code", "title": "Claude Code",
"description": "Anthropic Claude Code — primary development runtime; tier-1 support with full hook surface and skills-based global install.", "description": "Anthropic Claude Code — primary development runtime; tier-1 support with full hook surface and skills-based global install.",
"tier": "core", "tier": "core",
@@ -6026,7 +6026,7 @@ const runtimes = {
"cline": { "cline": {
"id": "cline", "id": "cline",
"role": "runtime", "role": "runtime",
"version": "1.13.0", "version": "1.14.0",
"title": "Cline", "title": "Cline",
"description": "Cline (VS Code extension) — global-only nested-skill layout; cline-rules hook surface (.clinerules); no hook events emitted; tier-2 support.", "description": "Cline (VS Code extension) — global-only nested-skill layout; cline-rules hook surface (.clinerules); no hook events emitted; tier-2 support.",
"tier": "core", "tier": "core",
@@ -6119,7 +6119,7 @@ const runtimes = {
"codebuddy": { "codebuddy": {
"id": "codebuddy", "id": "codebuddy",
"role": "runtime", "role": "runtime",
"version": "1.13.0", "version": "1.14.0",
"title": "CodeBuddy", "title": "CodeBuddy",
"description": "CodeBuddy (Tencent) — converted commands + skills artifact layout; settings-json hook surface; Claude hook event dialect; tier-2 support.", "description": "CodeBuddy (Tencent) — converted commands + skills artifact layout; settings-json hook surface; Claude hook event dialect; tier-2 support.",
"tier": "core", "tier": "core",
@@ -6237,7 +6237,7 @@ const runtimes = {
"codex": { "codex": {
"id": "codex", "id": "codex",
"role": "runtime", "role": "runtime",
"version": "1.13.0", "version": "1.14.0",
"title": "OpenAI Codex CLI", "title": "OpenAI Codex CLI",
"description": "OpenAI Codex CLI — shell-var command style; per-agent sandbox tiers; config.toml + hooks.json hook surface; tier-1 support.", "description": "OpenAI Codex CLI — shell-var command style; per-agent sandbox tiers; config.toml + hooks.json hook surface; tier-1 support.",
"tier": "core", "tier": "core",
@@ -6417,7 +6417,7 @@ const runtimes = {
"copilot": { "copilot": {
"id": "copilot", "id": "copilot",
"role": "runtime", "role": "runtime",
"version": "1.13.0", "version": "1.14.0",
"title": "GitHub Copilot", "title": "GitHub Copilot",
"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.", "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.",
"tier": "core", "tier": "core",
@@ -6517,7 +6517,7 @@ const runtimes = {
"cursor": { "cursor": {
"id": "cursor", "id": "cursor",
"role": "runtime", "role": "runtime",
"version": "1.13.0", "version": "1.14.0",
"title": "Cursor", "title": "Cursor",
"description": "Cursor IDE — skills-only workflow surface; hooks.json surface; Claude hook event dialect; recursive skill loader (flat nesting); tier-2 support.", "description": "Cursor IDE — skills-only workflow surface; hooks.json surface; Claude hook event dialect; recursive skill loader (flat nesting); tier-2 support.",
"tier": "core", "tier": "core",
@@ -6686,7 +6686,7 @@ const runtimes = {
"hermes": { "hermes": {
"id": "hermes", "id": "hermes",
"role": "runtime", "role": "runtime",
"version": "1.13.0", "version": "1.14.0",
"title": "Hermes Agent", "title": "Hermes Agent",
"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.", "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.",
"tier": "core", "tier": "core",
@@ -6798,7 +6798,7 @@ const runtimes = {
"kilo": { "kilo": {
"id": "kilo", "id": "kilo",
"role": "runtime", "role": "runtime",
"version": "1.13.0", "version": "1.14.0",
"title": "Kilo Code", "title": "Kilo Code",
"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.", "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.",
"tier": "core", "tier": "core",
@@ -6928,7 +6928,7 @@ const runtimes = {
"kimi": { "kimi": {
"id": "kimi", "id": "kimi",
"role": "runtime", "role": "runtime",
"version": "1.13.0", "version": "1.14.0",
"title": "Kimi CLI", "title": "Kimi CLI",
"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.", "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.",
"tier": "core", "tier": "core",
@@ -7032,7 +7032,7 @@ const runtimes = {
"kimi-code": { "kimi-code": {
"id": "kimi-code", "id": "kimi-code",
"role": "runtime", "role": "runtime",
"version": "1.13.0", "version": "1.14.0",
"title": "Kimi Code CLI", "title": "Kimi Code CLI",
"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.", "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.",
"tier": "core", "tier": "core",
@@ -7199,7 +7199,7 @@ const runtimes = {
"opencode": { "opencode": {
"id": "opencode", "id": "opencode",
"role": "runtime", "role": "runtime",
"version": "1.13.0", "version": "1.14.0",
"title": "OpenCode", "title": "OpenCode",
"description": "OpenCode — XDG-based config dir; flat commands/ + skills artifact layout; settings-json config format; no lifecycle hook registration; tier-2 support.", "description": "OpenCode — XDG-based config dir; flat commands/ + skills artifact layout; settings-json config format; no lifecycle hook registration; tier-2 support.",
"tier": "core", "tier": "core",
@@ -7394,7 +7394,7 @@ const runtimes = {
"pi": { "pi": {
"id": "pi", "id": "pi",
"role": "runtime", "role": "runtime",
"version": "1.13.0", "version": "1.14.0",
"title": "pi", "title": "pi",
"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.", "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.",
"tier": "core", "tier": "core",
@@ -7464,7 +7464,7 @@ const runtimes = {
"qwen": { "qwen": {
"id": "qwen", "id": "qwen",
"role": "runtime", "role": "runtime",
"version": "1.13.0", "version": "1.14.0",
"title": "Qwen Code", "title": "Qwen Code",
"description": "Qwen Code (Alibaba) — nested-skill artifact layout; settings-json hook surface; Claude hook event dialect; tier-2 support.", "description": "Qwen Code (Alibaba) — nested-skill artifact layout; settings-json hook surface; Claude hook event dialect; tier-2 support.",
"tier": "core", "tier": "core",
@@ -7614,7 +7614,7 @@ const runtimes = {
"trae": { "trae": {
"id": "trae", "id": "trae",
"role": "runtime", "role": "runtime",
"version": "1.13.0", "version": "1.14.0",
"title": "Trae IDE", "title": "Trae IDE",
"description": "Trae IDE — nested-skill artifact layout; no hook surface (profile-marker-only config); tier-2 support.", "description": "Trae IDE — nested-skill artifact layout; no hook surface (profile-marker-only config); tier-2 support.",
"tier": "core", "tier": "core",
@@ -7712,7 +7712,7 @@ const runtimes = {
"vscode": { "vscode": {
"id": "vscode", "id": "vscode",
"role": "runtime", "role": "runtime",
"version": "1.13.0", "version": "1.14.0",
"title": "VS Code", "title": "VS Code",
"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).", "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).",
"tier": "core", "tier": "core",
@@ -7770,7 +7770,7 @@ const runtimes = {
"windsurf": { "windsurf": {
"id": "windsurf", "id": "windsurf",
"role": "runtime", "role": "runtime",
"version": "1.13.0", "version": "1.14.0",
"title": "Windsurf", "title": "Windsurf",
"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.", "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.",
"tier": "core", "tier": "core",
@@ -7862,7 +7862,7 @@ const runtimes = {
"zcode": { "zcode": {
"id": "zcode", "id": "zcode",
"role": "runtime", "role": "runtime",
"version": "1.13.0", "version": "1.14.0",
"title": "ZCode", "title": "ZCode",
"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.", "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.",
"tier": "core", "tier": "core",

4
package-lock.json generated
View File

@@ -1,12 +1,12 @@
{ {
"name": "@opengsd/gsd-core", "name": "@opengsd/gsd-core",
"version": "1.13.0", "version": "1.14.0",
"lockfileVersion": 3, "lockfileVersion": 3,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "@opengsd/gsd-core", "name": "@opengsd/gsd-core",
"version": "1.13.0", "version": "1.14.0",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@anthropic-ai/claude-agent-sdk": "^0.2.84", "@anthropic-ai/claude-agent-sdk": "^0.2.84",

View File

@@ -1,6 +1,6 @@
{ {
"name": "@opengsd/gsd-core", "name": "@opengsd/gsd-core",
"version": "1.13.0", "version": "1.14.0",
"description": "GSD Core is a meta-prompting, context engineering, and spec-driven development system for AI coding agents.", "description": "GSD Core is a meta-prompting, context engineering, and spec-driven development system for AI coding agents.",
"main": ".opencode/plugins/gsd-core.js", "main": ".opencode/plugins/gsd-core.js",
"bin": { "bin": {

View File

@@ -2,7 +2,7 @@
"name": "gsd-core-vscode", "name": "gsd-core-vscode",
"displayName": "GSD Core", "displayName": "GSD Core",
"description": "GSD orchestration engine embedded in VS Code (ADR-1239 IDE profile).", "description": "GSD orchestration engine embedded in VS Code (ADR-1239 IDE profile).",
"version": "1.13.0", "version": "1.14.0",
"publisher": "opengsd", "publisher": "opengsd",
"engines": { "engines": {
"vscode": "^1.105.0" "vscode": "^1.105.0"