@opengsd/gsd-core 1.6.0-rc.2 → 1.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (157) hide show
  1. package/.claude-plugin/plugin.json +2 -1
  2. package/agents/gsd-advisor-researcher.md +2 -0
  3. package/agents/gsd-ai-researcher.md +2 -0
  4. package/agents/gsd-assumptions-analyzer.md +2 -0
  5. package/agents/gsd-doc-classifier.md +2 -0
  6. package/agents/gsd-doc-synthesizer.md +2 -0
  7. package/agents/gsd-domain-researcher.md +2 -0
  8. package/agents/gsd-eval-auditor.md +6 -9
  9. package/agents/gsd-phase-researcher.md +2 -0
  10. package/agents/gsd-planner.md +8 -57
  11. package/agents/gsd-project-researcher.md +2 -0
  12. package/agents/gsd-research-synthesizer.md +2 -0
  13. package/agents/gsd-security-auditor.md +37 -18
  14. package/agents/gsd-ui-researcher.md +2 -0
  15. package/bin/install.js +370 -18
  16. package/gemini-extension.json +1 -1
  17. package/gsd-core/bin/gsd-tools.cjs +46 -4
  18. package/gsd-core/bin/lib/audit-command-router.cjs +52 -14
  19. package/gsd-core/bin/lib/capability-lifecycle.cjs +30 -7
  20. package/gsd-core/bin/lib/capability-registry.cjs +96 -83
  21. package/gsd-core/bin/lib/capability-validator.cjs +22 -0
  22. package/gsd-core/bin/lib/cjs-command-router-adapter.cjs +40 -2
  23. package/gsd-core/bin/lib/command-aliases.cjs +10 -1
  24. package/gsd-core/bin/lib/command-routing-hub.cjs +10 -3
  25. package/gsd-core/bin/lib/config-schema.cjs +1 -0
  26. package/gsd-core/bin/lib/config.cjs +67 -24
  27. package/gsd-core/bin/lib/coverage.cjs +464 -0
  28. package/gsd-core/bin/lib/decisions.cjs +27 -0
  29. package/gsd-core/bin/lib/eval-command-router.cjs +21 -0
  30. package/gsd-core/bin/lib/eval.cjs +60 -0
  31. package/gsd-core/bin/lib/frontmatter.cjs +132 -13
  32. package/gsd-core/bin/lib/graphify-command-router.cjs +53 -36
  33. package/gsd-core/bin/lib/init.cjs +139 -30
  34. package/gsd-core/bin/lib/install-profiles.cjs +6 -3
  35. package/gsd-core/bin/lib/intel-command-router.cjs +79 -60
  36. package/gsd-core/bin/lib/io.cjs +1 -0
  37. package/gsd-core/bin/lib/phase.cjs +16 -2
  38. package/gsd-core/bin/lib/plan-scan.cjs +2 -2
  39. package/gsd-core/bin/lib/planning-workspace.cjs +157 -13
  40. package/gsd-core/bin/lib/profile-output.cjs +18 -6
  41. package/gsd-core/bin/lib/runtime-artifact-conversion.cjs +53 -16
  42. package/gsd-core/bin/lib/runtime-artifact-layout.cjs +21 -3
  43. package/gsd-core/bin/lib/runtime-hooks-surface.cjs +15 -0
  44. package/gsd-core/bin/lib/runtime-name-policy.cjs +47 -2
  45. package/gsd-core/bin/lib/shell-command-projection.cjs +10 -0
  46. package/gsd-core/bin/lib/state.cjs +398 -60
  47. package/gsd-core/bin/lib/surface.cjs +42 -10
  48. package/gsd-core/bin/lib/uat-predicate.cjs +13 -6
  49. package/gsd-core/bin/lib/update-context.cjs +2 -2
  50. package/gsd-core/bin/lib/verification.cjs +67 -6
  51. package/gsd-core/bin/lib/verify.cjs +8 -1
  52. package/gsd-core/bin/shared/config-defaults.manifest.json +3 -0
  53. package/gsd-core/bin/shared/config-schema.manifest.json +2 -1
  54. package/gsd-core/references/planner-guidance.md +66 -0
  55. package/gsd-core/references/planning-config.md +2 -2
  56. package/gsd-core/references/security-asvs-levels.md +27 -0
  57. package/gsd-core/references/untrusted-input-boundary.md +13 -0
  58. package/gsd-core/templates/SECURITY.md +6 -4
  59. package/gsd-core/templates/summary-complex.md +4 -0
  60. package/gsd-core/templates/summary-minimal.md +3 -0
  61. package/gsd-core/templates/summary-standard.md +4 -0
  62. package/gsd-core/templates/summary.md +41 -0
  63. package/gsd-core/workflows/autonomous.md +53 -46
  64. package/gsd-core/workflows/complete-milestone.md +27 -8
  65. package/gsd-core/workflows/execute-phase.md +1 -1
  66. package/gsd-core/workflows/execute-plan.md +5 -0
  67. package/gsd-core/workflows/manager.md +17 -7
  68. package/gsd-core/workflows/new-project.md +82 -16
  69. package/gsd-core/workflows/plan-phase.md +15 -0
  70. package/gsd-core/workflows/profile-user.md +6 -2
  71. package/gsd-core/workflows/progress.md +37 -4
  72. package/gsd-core/workflows/quick.md +3 -1
  73. package/gsd-core/workflows/secure-phase.md +13 -7
  74. package/gsd-core/workflows/ship.md +3 -1
  75. package/gsd-core/workflows/spec-phase.md +3 -1
  76. package/gsd-core/workflows/transition.md +14 -12
  77. package/gsd-core/workflows/ui-review.md +2 -6
  78. package/gsd-core/workflows/verify-work.md +74 -1
  79. package/hooks/dist/gsd-read-injection-scanner.js +49 -25
  80. package/hooks/gsd-read-injection-scanner.js +49 -25
  81. package/hooks/hooks.json +1 -1
  82. package/package.json +4 -2
  83. package/scripts/check-alias-drift.cjs +5 -0
  84. package/scripts/gen-plugin-skills.cjs +117 -0
  85. package/scripts/lint-test-file-count.allowlist.json +2 -1
  86. package/scripts/prompt-injection-scan.sh +9 -0
  87. package/scripts/release-notes/conventional-title.cjs +88 -0
  88. package/scripts/release-notes/format-github-release-notes.cjs +4 -3
  89. package/skills/gsd-add-tests/SKILL.md +38 -0
  90. package/skills/gsd-ai-integration-phase/SKILL.md +37 -0
  91. package/skills/gsd-audit-fix/SKILL.md +33 -0
  92. package/skills/gsd-audit-milestone/SKILL.md +37 -0
  93. package/skills/gsd-audit-uat/SKILL.md +25 -0
  94. package/skills/gsd-autonomous/SKILL.md +51 -0
  95. package/skills/gsd-capture/SKILL.md +67 -0
  96. package/skills/gsd-cleanup/SKILL.md +24 -0
  97. package/skills/gsd-code-review/SKILL.md +59 -0
  98. package/skills/gsd-complete-milestone/SKILL.md +142 -0
  99. package/skills/gsd-config/SKILL.md +56 -0
  100. package/skills/gsd-debug/SKILL.md +53 -0
  101. package/skills/gsd-discuss-phase/SKILL.md +77 -0
  102. package/skills/gsd-docs-update/SKILL.md +49 -0
  103. package/skills/gsd-eval-review/SKILL.md +33 -0
  104. package/skills/gsd-execute-phase/SKILL.md +65 -0
  105. package/skills/gsd-explore/SKILL.md +28 -0
  106. package/skills/gsd-extract-learnings/SKILL.md +22 -0
  107. package/skills/gsd-fast/SKILL.md +31 -0
  108. package/skills/gsd-forensics/SKILL.md +56 -0
  109. package/skills/gsd-graphify/SKILL.md +204 -0
  110. package/skills/gsd-health/SKILL.md +31 -0
  111. package/skills/gsd-help/SKILL.md +29 -0
  112. package/skills/gsd-import/SKILL.md +46 -0
  113. package/skills/gsd-inbox/SKILL.md +39 -0
  114. package/skills/gsd-ingest-docs/SKILL.md +43 -0
  115. package/skills/gsd-manager/SKILL.md +45 -0
  116. package/skills/gsd-map-codebase/SKILL.md +83 -0
  117. package/skills/gsd-mempalace-capture/SKILL.md +71 -0
  118. package/skills/gsd-mempalace-recall/SKILL.md +102 -0
  119. package/skills/gsd-milestone-summary/SKILL.md +51 -0
  120. package/skills/gsd-mvp-phase/SKILL.md +45 -0
  121. package/skills/gsd-new-milestone/SKILL.md +45 -0
  122. package/skills/gsd-new-project/SKILL.md +47 -0
  123. package/skills/gsd-ns-context/SKILL.md +24 -0
  124. package/skills/gsd-ns-ideate/SKILL.md +23 -0
  125. package/skills/gsd-ns-manage/SKILL.md +35 -0
  126. package/skills/gsd-ns-project/SKILL.md +26 -0
  127. package/skills/gsd-ns-review/SKILL.md +28 -0
  128. package/skills/gsd-ns-workflow/SKILL.md +33 -0
  129. package/skills/gsd-pause-work/SKILL.md +43 -0
  130. package/skills/gsd-phase/SKILL.md +57 -0
  131. package/skills/gsd-plan-phase/SKILL.md +63 -0
  132. package/skills/gsd-plan-review-convergence/SKILL.md +60 -0
  133. package/skills/gsd-pr-branch/SKILL.md +26 -0
  134. package/skills/gsd-profile-user/SKILL.md +47 -0
  135. package/skills/gsd-progress/SKILL.md +49 -0
  136. package/skills/gsd-quick/SKILL.md +174 -0
  137. package/skills/gsd-resume-work/SKILL.md +31 -0
  138. package/skills/gsd-review/SKILL.md +42 -0
  139. package/skills/gsd-review-backlog/SKILL.md +63 -0
  140. package/skills/gsd-secure-phase/SKILL.md +36 -0
  141. package/skills/gsd-settings/SKILL.md +29 -0
  142. package/skills/gsd-ship/SKILL.md +24 -0
  143. package/skills/gsd-sketch/SKILL.md +60 -0
  144. package/skills/gsd-spec-phase/SKILL.md +63 -0
  145. package/skills/gsd-spike/SKILL.md +57 -0
  146. package/skills/gsd-stats/SKILL.md +20 -0
  147. package/skills/gsd-surface/SKILL.md +162 -0
  148. package/skills/gsd-thread/SKILL.md +24 -0
  149. package/skills/gsd-ui-phase/SKILL.md +35 -0
  150. package/skills/gsd-ui-review/SKILL.md +33 -0
  151. package/skills/gsd-ultraplan-phase/SKILL.md +34 -0
  152. package/skills/gsd-undo/SKILL.md +35 -0
  153. package/skills/gsd-update/SKILL.md +50 -0
  154. package/skills/gsd-validate-phase/SKILL.md +36 -0
  155. package/skills/gsd-verify-work/SKILL.md +39 -0
  156. package/skills/gsd-workspace/SKILL.md +53 -0
  157. package/skills/gsd-workstreams/SKILL.md +70 -0
@@ -0,0 +1,63 @@
1
+ ---
2
+ name: gsd-plan-phase
3
+ description: "Create detailed phase plan (PLAN.md) with verification loop"
4
+ argument-hint: "[phase] [--auto] [--research] [--skip-research] [--research-phase <N>] [--view] [--gaps] [--skip-verify] [--prd <file>] [--ingest <path-or-glob>] [--ingest-format <auto|nygard|madr|narrative>] [--reviews] [--text] [--tdd] [--mvp]"
5
+ effort: max
6
+ allowed-tools:
7
+ - Read
8
+ - Write
9
+ - Bash
10
+ - Glob
11
+ - Grep
12
+ - Agent
13
+ - AskUserQuestion
14
+ - WebFetch
15
+ - mcp__context7__*
16
+ ---
17
+
18
+ <objective>
19
+ Create executable phase prompts (PLAN.md files) for a roadmap phase with integrated research and verification.
20
+
21
+ **Default flow:** Research (if needed) → Plan → Verify → Done
22
+
23
+ **Research-only mode (`--research-phase <N>`):** Spawn `gsd-phase-researcher` for phase `N`, write `RESEARCH.md`, then exit before the planner runs. Useful for cross-phase research, doc review before committing to a planning approach, and correction-without-replanning loops where iterating on research alone is dramatically cheaper than re-spawning the planner. Replaces the deleted research-phase command (#3042).
24
+
25
+ **Research-only modifiers:**
26
+ - **No flag** — when `RESEARCH.md` already exists, auto-uses it: emits a one-line notice and exits cleanly, no prompt.
27
+ - **`--research`** — force-refresh: re-spawn the researcher unconditionally, no prompt. Bypasses the existing-RESEARCH.md auto-use path.
28
+ - **`--view`** — view-only: print existing `RESEARCH.md` to stdout. Does not spawn the researcher. Cheapest mode for the correction-without-replanning loop. If no `RESEARCH.md` exists yet, errors with a hint to drop `--view`.
29
+
30
+ **Orchestrator role:** Parse arguments, validate phase, research domain (unless skipped), spawn gsd-planner, verify with gsd-plan-checker, iterate until pass or max iterations, present results.
31
+ </objective>
32
+
33
+ <execution_context>
34
+ @~/.claude/gsd-core/workflows/plan-phase.md
35
+ @~/.claude/gsd-core/references/ui-brand.md
36
+ </execution_context>
37
+
38
+ <runtime_note>
39
+ **Copilot (VS Code):** Use `vscode_askquestions` wherever this workflow calls `AskUserQuestion`. They are equivalent — `vscode_askquestions` is the VS Code Copilot implementation of the same interactive question API. Do not skip questioning steps because `AskUserQuestion` appears unavailable; use `vscode_askquestions` instead.
40
+ </runtime_note>
41
+
42
+ <context>
43
+ Phase number: $ARGUMENTS (optional — auto-detects next unplanned phase if omitted)
44
+
45
+ **Flags:**
46
+ - `--research` — Force re-research even if RESEARCH.md exists
47
+ - `--skip-research` — Skip research, go straight to planning
48
+ - `--gaps` — Gap closure mode (reads VERIFICATION.md, skips research)
49
+ - `--skip-verify` — Skip verification loop
50
+ - `--prd <file>` — Use a PRD/acceptance criteria file instead of discuss-phase. Parses requirements into CONTEXT.md automatically. Skips discuss-phase entirely.
51
+ - `--ingest <path-or-glob>` — Use one or more ADR files instead of discuss-phase. Parses locked decisions + scope fences into CONTEXT.md automatically. Skips discuss-phase entirely.
52
+ - `--ingest-format <auto|nygard|madr|narrative>` — Optional ADR parser format override (`auto` default).
53
+ - `--reviews` — Replan incorporating cross-AI review feedback from REVIEWS.md (produced by `/gsd-review`)
54
+ - `--text` — Use plain-text numbered lists instead of TUI menus (required for `/rc` remote sessions)
55
+ - `--mvp` — Vertical MVP mode. Planner organizes tasks as feature slices (UI→API→DB) instead of horizontal layers. On Phase 1 of a new project, also emits `SKELETON.md` (Walking Skeleton). Can be persisted on a phase via `**Mode:** mvp` in ROADMAP.md.
56
+
57
+ Normalize phase input in step 2 before any directory lookups.
58
+ </context>
59
+
60
+ <process>
61
+ Execute end-to-end.
62
+ Preserve all workflow gates (validation, research, planning, verification loop, routing).
63
+ </process>
@@ -0,0 +1,60 @@
1
+ ---
2
+ name: gsd-plan-review-convergence
3
+ description: "Cross-AI plan convergence - replan until review concerns are resolved."
4
+ argument-hint: "<phase> [--codex] [--gemini] [--claude] [--opencode] [--ollama] [--lm-studio] [--llama-cpp] [--text] [--ws <name>] [--all] [--max-cycles N]"
5
+ allowed-tools:
6
+ - Read
7
+ - Write
8
+ - Bash
9
+ - Glob
10
+ - Grep
11
+ - Agent
12
+ - Skill
13
+ - AskUserQuestion
14
+ ---
15
+
16
+
17
+ <objective>
18
+ Cross-AI plan convergence loop — an outer revision gate around gsd-review and gsd-planner.
19
+ Repeatedly: review plans with external AI CLIs → if HIGH or actionable non-HIGH concerns remain → replan with --reviews feedback → re-review. Stops when no unresolved HIGH concerns or actionable MEDIUM/LOW findings remain outside PLAN.md, or when max cycles is reached.
20
+
21
+ **Flow:** Skill("gsd-plan-phase") → Agent→Skill("gsd-review") → check unresolved HIGH + actionable non-HIGH → Skill("gsd-plan-phase --reviews") → Agent→Skill("gsd-review") → ... → Converge or escalate
22
+
23
+ Replaces gsd-plan-phase's internal gsd-plan-checker with external AI reviewers (codex, gemini, etc.). Plan-phase runs **inline** (bare Skill at depth 0) so it can spawn gsd-planner/gsd-plan-checker at depth 1. Review runs inside an isolated Agent (gsd-review is a Bash leaf — no sub-agents needed). Orchestrator only does loop control.
24
+
25
+ **Orchestrator role:** Parse arguments, validate phase, run plan-phase inline (Skill at depth 0), spawn an Agent for gsd-review, check unresolved HIGH and actionable non-HIGH counts, stall detection, escalation gate.
26
+ </objective>
27
+
28
+ <execution_context>
29
+ @$HOME/.claude/gsd-core/workflows/plan-review-convergence.md
30
+ @$HOME/.claude/gsd-core/references/revision-loop.md
31
+ @$HOME/.claude/gsd-core/references/gates.md
32
+ @$HOME/.claude/gsd-core/references/agent-contracts.md
33
+ </execution_context>
34
+
35
+ <runtime_note>
36
+ **Copilot (VS Code):** Use `vscode_askquestions` wherever this workflow calls `AskUserQuestion`. They are equivalent — `vscode_askquestions` is the VS Code Copilot implementation of the same interactive question API. Do not skip questioning steps because `AskUserQuestion` appears unavailable; use `vscode_askquestions` instead.
37
+ </runtime_note>
38
+
39
+ <context>
40
+ Phase number: extracted from $ARGUMENTS (required)
41
+
42
+ **Flags:**
43
+ - `--codex` — Use Codex CLI as reviewer (default if no reviewer specified)
44
+ - `--gemini` — Use Gemini CLI as reviewer
45
+ - `--claude` — Use Claude CLI as reviewer (separate session)
46
+ - `--opencode` — Use OpenCode as reviewer
47
+ - `--ollama` — Use local Ollama server as reviewer (OpenAI-compatible, default host `http://localhost:11434`; configure model via `review.models.ollama`)
48
+ - `--lm-studio` — Use local LM Studio server as reviewer (OpenAI-compatible, default host `http://localhost:1234`; configure model via `review.models.lm_studio`)
49
+ - `--llama-cpp` — Use local llama.cpp server as reviewer (OpenAI-compatible, default host `http://localhost:8080`; configure model via `review.models.llama_cpp`)
50
+ - `--all` — Use all available CLIs and running local model servers
51
+ - `--max-cycles N` — Maximum replan→review cycles (default: 3)
52
+
53
+ **Feature gate:** This command requires `workflow.plan_review_convergence=true`. Enable with:
54
+ `gsd config-set workflow.plan_review_convergence true`
55
+ </context>
56
+
57
+ <process>
58
+ Execute end-to-end.
59
+ Preserve all workflow gates (pre-flight, revision loop, stall detection, escalation).
60
+ </process>
@@ -0,0 +1,26 @@
1
+ ---
2
+ name: gsd-pr-branch
3
+ description: "Create a clean PR branch by filtering out .planning/ commits — ready for code review"
4
+ argument-hint: "[target branch, default: main]"
5
+ allowed-tools:
6
+ - Bash
7
+ - Read
8
+ - AskUserQuestion
9
+ ---
10
+
11
+
12
+ <objective>
13
+ Create a clean branch suitable for pull requests by filtering out .planning/ commits
14
+ from the current branch. Reviewers see only code changes, not GSD planning artifacts.
15
+
16
+ This solves the problem of PR diffs being cluttered with PLAN.md, SUMMARY.md, STATE.md
17
+ changes that are irrelevant to code review.
18
+ </objective>
19
+
20
+ <execution_context>
21
+ @~/.claude/gsd-core/workflows/pr-branch.md
22
+ </execution_context>
23
+
24
+ <process>
25
+ Execute end-to-end.
26
+ </process>
@@ -0,0 +1,47 @@
1
+ ---
2
+ name: gsd-profile-user
3
+ description: "Generate developer behavioral profile and create Claude-discoverable artifacts"
4
+ argument-hint: "[--questionnaire] [--refresh]"
5
+ allowed-tools:
6
+ - Read
7
+ - Write
8
+ - Bash
9
+ - Glob
10
+ - Grep
11
+ - AskUserQuestion
12
+ - Agent
13
+ ---
14
+
15
+
16
+ <objective>
17
+ Generate a developer behavioral profile from session analysis (or questionnaire) and produce artifacts (USER-PROFILE.md, `gsd-dev-preferences` skill config, CLAUDE.md section) that personalize Claude's responses.
18
+
19
+ Routes to the profile-user workflow which orchestrates the full flow: consent gate, session analysis or questionnaire fallback, profile generation, result display, and artifact selection.
20
+ </objective>
21
+
22
+ <execution_context>
23
+ @~/.claude/gsd-core/workflows/profile-user.md
24
+ @~/.claude/gsd-core/references/ui-brand.md
25
+ </execution_context>
26
+
27
+ <context>
28
+ Flags from $ARGUMENTS:
29
+ - `--questionnaire` -- Skip session analysis entirely, use questionnaire-only path
30
+ - `--refresh` -- Rebuild profile even when one exists, backup old profile, show dimension diff
31
+ </context>
32
+
33
+ <process>
34
+ Execute the profile-user workflow end-to-end.
35
+
36
+ The workflow handles all logic including:
37
+ 1. Initialization and existing profile detection
38
+ 2. Consent gate before session analysis
39
+ 3. Session scanning and data sufficiency checks
40
+ 4. Session analysis (profiler agent) or questionnaire fallback
41
+ 5. Cross-project split resolution
42
+ 6. Profile writing to USER-PROFILE.md
43
+ 7. Result display with report card and highlights
44
+ 8. Artifact selection (dev-preferences, CLAUDE.md sections)
45
+ 9. Sequential artifact generation
46
+ 10. Summary with refresh diff (if applicable)
47
+ </process>
@@ -0,0 +1,49 @@
1
+ ---
2
+ name: gsd-progress
3
+ description: "Check progress, advance workflow, or dispatch freeform intent — the unified GSD situational command"
4
+ argument-hint: "[--forensic | --next [--auto] [--converge] | --do \\\"task description\\\"]"
5
+ effort: low
6
+ allowed-tools:
7
+ - Read
8
+ - Bash
9
+ - Grep
10
+ - Glob
11
+ - SlashCommand
12
+ - AskUserQuestion
13
+ ---
14
+
15
+ <objective>
16
+ Check project progress, summarize recent work and what's ahead, then intelligently route to the next action.
17
+
18
+ Three modes:
19
+ - **default**: Show progress report + intelligently route to the next action (execute or plan). Provides situational awareness before continuing work.
20
+ - **--next**: Automatically advance to the next logical step without manual route selection. Reads STATE.md, ROADMAP.md, and phase directories. Supports `--force` to bypass safety gates.
21
+ - **--do "task description"**: Analyze freeform natural language and dispatch to the most appropriate GSD command. Never does the work itself — matches intent, confirms, hands off.
22
+ - **--forensic**: Append a 6-check integrity audit after the standard progress report.
23
+ </objective>
24
+
25
+ <flags>
26
+ - **--next**: Detect current project state and automatically invoke the next logical GSD workflow step. Scans all prior phases for incomplete work before routing. `--next --force` bypasses safety gates.
27
+ - **--next --auto**: Like `--next`, but after the determined step completes, automatically re-invokes `/gsd-progress --next --auto` to continue chaining steps until completion or a blocking decision. Enables hands-free plan→execute→verify→complete progression.
28
+ - **--next --converge**: When the next action is planning (Route 3), route it through the plan-review **convergence** loop instead of the standard planner. Requires `workflow.plan_review_convergence=true` (enable with `gsd config-set workflow.plan_review_convergence true`). `--cross-ai` is an alias. Reviewer flags (`--codex`, `--gemini`, `--claude`, `--opencode`, `--ollama`, `--lm-studio`, `--llama-cpp`, `--all`) and `--max-cycles N` are forwarded to the convergence loop.
29
+ - **--do "..."**: Smart dispatcher — match freeform intent to the best GSD command using routing rules, confirm the match, then hand off.
30
+ - **--forensic**: Run 6-check integrity audit after the standard progress report.
31
+ - **(no flag)**: Standard progress check + intelligent routing (Routes A through F).
32
+ </flags>
33
+
34
+ <execution_context>
35
+ @~/.claude/gsd-core/workflows/progress.md
36
+ @~/.claude/gsd-core/workflows/next.md
37
+ @~/.claude/gsd-core/workflows/do.md
38
+ @~/.claude/gsd-core/references/ui-brand.md
39
+ </execution_context>
40
+
41
+ <process>
42
+ Arguments provided: "$ARGUMENTS"
43
+ Parse the first token from the provided arguments:
44
+ - If it is `--next`: strip the flag, execute the next workflow (passing remaining args e.g. --force, --auto).
45
+ - If it is `--do`: strip the flag, pass remainder as freeform intent to the do workflow.
46
+ - Otherwise: execute the progress workflow end-to-end (pass --forensic through if present).
47
+
48
+ Preserve all routing logic from the target workflow.
49
+ </process>
@@ -0,0 +1,174 @@
1
+ ---
2
+ name: gsd-quick
3
+ description: "Execute a quick task with GSD guarantees (atomic commits, state tracking) but skip optional agents"
4
+ argument-hint: "[list | status <slug> | resume <slug> | --full] [--validate] [--discuss] [--research] [task description]"
5
+ allowed-tools:
6
+ - Read
7
+ - Write
8
+ - Edit
9
+ - Glob
10
+ - Grep
11
+ - Bash
12
+ - Agent
13
+ - AskUserQuestion
14
+ ---
15
+
16
+ <objective>
17
+ Execute small, ad-hoc tasks with GSD guarantees (atomic commits, STATE.md tracking).
18
+
19
+ Quick mode is the same system with a shorter path:
20
+ - Spawns gsd-planner (quick mode) + gsd-executor(s)
21
+ - Quick tasks live in `.planning/quick/` separate from planned phases
22
+ - Updates STATE.md "Quick Tasks Completed" table (NOT ROADMAP.md)
23
+
24
+ **Default:** Skips research, discussion, plan-checker, verifier. Use when you know exactly what to do.
25
+
26
+ **`--discuss` flag:** Lightweight discussion phase before planning. Surfaces assumptions, clarifies gray areas, captures decisions in CONTEXT.md. Use when the task has ambiguity worth resolving upfront.
27
+
28
+ **`--full` flag:** Enables the complete quality pipeline — discussion + research + plan-checking + verification. One flag for everything.
29
+
30
+ **`--validate` flag:** Enables plan-checking (max 2 iterations) and post-execution verification only. Use when you want quality guarantees without discussion or research.
31
+
32
+ **`--research` flag:** Spawns a focused research agent before planning. Investigates implementation approaches, library options, and pitfalls for the task. Use when you're unsure of the best approach.
33
+
34
+ Granular flags are composable: `--discuss --research --validate` gives the same result as `--full`.
35
+
36
+ **Subcommands:**
37
+ - `list` — List all quick tasks with status
38
+ - `status <slug>` — Show status of a specific quick task
39
+ - `resume <slug>` — Resume a specific quick task by slug
40
+ </objective>
41
+
42
+ <execution_context>
43
+ @~/.claude/gsd-core/workflows/quick.md
44
+ </execution_context>
45
+
46
+ <context>
47
+ $ARGUMENTS
48
+
49
+ Context files are resolved inside the workflow (`init quick`) and delegated via `<files_to_read>` blocks.
50
+ </context>
51
+
52
+ <process>
53
+
54
+ **Parse $ARGUMENTS for subcommands FIRST:**
55
+
56
+ - If $ARGUMENTS starts with "list": SUBCMD=list
57
+ - If $ARGUMENTS starts with "status ": SUBCMD=status, SLUG=remainder (strip whitespace, sanitize)
58
+ - If $ARGUMENTS starts with "resume ": SUBCMD=resume, SLUG=remainder (strip whitespace, sanitize)
59
+ - Otherwise: SUBCMD=run, pass full $ARGUMENTS to the quick workflow as-is
60
+
61
+ **Slug sanitization (for status and resume):** Strip any characters not matching `[a-z0-9-]`. Reject slugs longer than 60 chars or containing `..` or `/`. If invalid, output "Invalid session slug." and stop.
62
+
63
+ ## LIST subcommand
64
+
65
+ When SUBCMD=list:
66
+
67
+ ```bash
68
+ ls -d .planning/quick/*/ 2>/dev/null
69
+ ```
70
+
71
+ For each directory found:
72
+ - Check if PLAN.md exists
73
+ - Check if SUMMARY.md exists; if so, read `status` from its frontmatter via:
74
+ ```bash
75
+ gsd-tools query frontmatter.get .planning/quick/{dir}/SUMMARY.md status
76
+ ```
77
+ - Determine directory creation date: `stat -f "%SB" -t "%Y-%m-%d"` (macOS) or `stat -c "%w"` (Linux); fall back to the date prefix in the directory name (format: `YYYYMMDD-` prefix)
78
+ - Derive display status:
79
+ - SUMMARY.md exists, frontmatter status=complete → `complete ✓`
80
+ - SUMMARY.md exists, frontmatter status=incomplete OR status missing → `incomplete`
81
+ - SUMMARY.md missing, dir created <7 days ago → `in-progress`
82
+ - SUMMARY.md missing, dir created ≥7 days ago → `abandoned? (>7 days, no summary)`
83
+
84
+ **SECURITY:** Directory names are read from the filesystem. Before displaying any slug, sanitize: strip non-printable characters, ANSI escape sequences, and path separators using: `name.replace(/[^\x20-\x7E]/g, '').replace(/[/\\]/g, '')`. Never pass raw directory names to shell commands via string interpolation.
85
+
86
+ Display format:
87
+ ```
88
+ Quick Tasks
89
+ ────────────────────────────────────────────────────────────
90
+ slug date status
91
+ backup-s3-policy 2026-04-10 in-progress
92
+ auth-token-refresh-fix 2026-04-09 complete ✓
93
+ update-node-deps 2026-04-08 abandoned? (>7 days, no summary)
94
+ ────────────────────────────────────────────────────────────
95
+ 3 tasks (1 complete, 2 incomplete/in-progress)
96
+ ```
97
+
98
+ If no directories found: print `No quick tasks found.` and stop.
99
+
100
+ STOP after displaying the list. Do NOT proceed to further steps.
101
+
102
+ ## STATUS subcommand
103
+
104
+ When SUBCMD=status and SLUG is set (already sanitized):
105
+
106
+ Find directory matching `*-{SLUG}` pattern:
107
+ ```bash
108
+ dir=$(ls -d .planning/quick/*-{SLUG}/ 2>/dev/null | head -1)
109
+ ```
110
+
111
+ If no directory found, print `No quick task found with slug: {SLUG}` and stop.
112
+
113
+ Read PLAN.md and SUMMARY.md (if exists) for the given slug. Display:
114
+ ```
115
+ Quick Task: {slug}
116
+ ─────────────────────────────────────
117
+ Plan file: .planning/quick/{dir}/PLAN.md
118
+ Status: {status from SUMMARY.md frontmatter, or "no summary yet"}
119
+ Description: {first non-empty line from PLAN.md after frontmatter}
120
+ Last action: {last meaningful line of SUMMARY.md, or "none"}
121
+ ─────────────────────────────────────
122
+ Resume with: /gsd-quick resume {slug}
123
+ ```
124
+
125
+ No agent spawn. STOP after printing.
126
+
127
+ ## RESUME subcommand
128
+
129
+ When SUBCMD=resume and SLUG is set (already sanitized):
130
+
131
+ 1. Find the directory matching `*-{SLUG}` pattern:
132
+ ```bash
133
+ dir=$(ls -d .planning/quick/*-{SLUG}/ 2>/dev/null | head -1)
134
+ ```
135
+ 2. If no directory found, print `No quick task found with slug: {SLUG}` and stop.
136
+
137
+ 3. Read PLAN.md to extract description and SUMMARY.md (if exists) to extract status.
138
+
139
+ 4. Print before spawning:
140
+ ```
141
+ [quick] Resuming: .planning/quick/{dir}/
142
+ [quick] Plan: {description from PLAN.md}
143
+ [quick] Status: {status from SUMMARY.md, or "in-progress"}
144
+ ```
145
+
146
+ 5. Load context via:
147
+ ```bash
148
+ gsd-tools query init.quick
149
+ ```
150
+
151
+ 6. Proceed to execute the quick workflow with resume context, passing the slug and plan directory so the executor picks up where it left off.
152
+
153
+ ## RUN subcommand (default)
154
+
155
+ When SUBCMD=run:
156
+
157
+ Execute end-to-end.
158
+ Preserve all workflow gates (validation, task description, planning, execution, state updates, commits).
159
+
160
+ </process>
161
+
162
+ <notes>
163
+ - Quick tasks live in `.planning/quick/` — separate from phases, not tracked in ROADMAP.md
164
+ - Each quick task gets a `YYYYMMDD-{slug}/` directory with PLAN.md and eventually SUMMARY.md
165
+ - STATE.md "Quick Tasks Completed" table is updated on completion
166
+ - Use `list` to audit accumulated tasks; use `resume` to continue in-progress work
167
+ </notes>
168
+
169
+ <security_notes>
170
+ - Slugs from $ARGUMENTS are sanitized before use in file paths: only [a-z0-9-] allowed, max 60 chars, reject ".." and "/"
171
+ - File names from readdir/ls are sanitized before display: strip non-printable chars and ANSI sequences
172
+ - Artifact content (plan descriptions, task titles) rendered as plain text only — never executed or passed to agent prompts without DATA_START/DATA_END boundaries
173
+ - Status fields read via `gsd-tools query frontmatter.get` — never eval'd or shell-expanded
174
+ </security_notes>
@@ -0,0 +1,31 @@
1
+ ---
2
+ name: gsd-resume-work
3
+ description: "Resume work from previous session with full context restoration"
4
+ allowed-tools:
5
+ - Read
6
+ - Bash
7
+ - Write
8
+ - AskUserQuestion
9
+ - SlashCommand
10
+ ---
11
+
12
+
13
+ <objective>
14
+ Restore complete project context and resume work seamlessly from previous session.
15
+
16
+ Routes to the resume-project workflow which handles:
17
+
18
+ - STATE.md loading (or reconstruction if missing)
19
+ - Checkpoint detection (.continue-here files)
20
+ - Incomplete work detection (PLAN without SUMMARY)
21
+ - Status presentation
22
+ - Context-aware next action routing
23
+ </objective>
24
+
25
+ <execution_context>
26
+ @~/.claude/gsd-core/workflows/resume-project.md
27
+ </execution_context>
28
+
29
+ <process>
30
+ Execute end-to-end.
31
+ </process>
@@ -0,0 +1,42 @@
1
+ ---
2
+ name: gsd-review
3
+ description: "Request cross-AI peer review of phase plans from external AI CLIs"
4
+ argument-hint: "--phase N [--gemini] [--claude] [--codex] [--opencode] [--qwen] [--cursor] [--agy] [--all]"
5
+ allowed-tools:
6
+ - Read
7
+ - Write
8
+ - Bash
9
+ - Glob
10
+ - Grep
11
+ ---
12
+
13
+
14
+ <objective>
15
+ Invoke external AI CLIs (Gemini, Claude, Codex, OpenCode, Qwen Code, Cursor) to independently review phase plans.
16
+ Produces a structured REVIEWS.md with per-reviewer feedback that can be fed back into
17
+ planning via /gsd-plan-phase --reviews.
18
+
19
+ **Flow:** Detect CLIs → Build review prompt → Invoke each CLI → Collect responses → Write REVIEWS.md
20
+ </objective>
21
+
22
+ <execution_context>
23
+ @~/.claude/gsd-core/workflows/review.md
24
+ </execution_context>
25
+
26
+ <context>
27
+ Phase number: extracted from $ARGUMENTS (required)
28
+
29
+ **Flags:**
30
+ - `--gemini` — Include Gemini CLI review
31
+ - `--claude` — Include Claude CLI review (uses separate session)
32
+ - `--codex` — Include Codex CLI review
33
+ - `--opencode` — Include OpenCode review (uses model from user's OpenCode config)
34
+ - `--qwen` — Include Qwen Code review (Alibaba Qwen models)
35
+ - `--cursor` — Include Cursor agent review
36
+ - `--agy` / `--antigravity` — Include Antigravity CLI review
37
+ - `--all` — Include all available CLIs
38
+ </context>
39
+
40
+ <process>
41
+ Execute end-to-end.
42
+ </process>
@@ -0,0 +1,63 @@
1
+ ---
2
+ name: gsd-review-backlog
3
+ description: "Review and promote backlog items to active milestone"
4
+ allowed-tools:
5
+ - Read
6
+ - Write
7
+ - Bash
8
+ - AskUserQuestion
9
+ ---
10
+
11
+
12
+ <objective>
13
+ Review all 999.x backlog items and optionally promote them into the active
14
+ milestone sequence or remove stale entries.
15
+ </objective>
16
+
17
+ <process>
18
+
19
+ 1. **List backlog items:**
20
+ ```bash
21
+ ls -d .planning/phases/999* 2>/dev/null || echo "No backlog items found"
22
+ ```
23
+
24
+ 2. **Read ROADMAP.md** and extract all 999.x phase entries:
25
+ ```bash
26
+ cat .planning/ROADMAP.md
27
+ ```
28
+ Show each backlog item with its description, any accumulated context (CONTEXT.md, RESEARCH.md), and creation date.
29
+
30
+ 3. **Present the list to the user** via AskUserQuestion:
31
+ - For each backlog item, show: phase number, description, accumulated artifacts
32
+ - Options per item: **Promote** (move to active), **Keep** (leave in backlog), **Remove** (delete)
33
+
34
+ 4. **For items to PROMOTE:**
35
+ - Find the next sequential phase number in the active milestone
36
+ - Rename the directory from `999.x-slug` to `{new_num}-slug`:
37
+ ```bash
38
+ NEW_NUM=$(gsd-tools query phase.add "${DESCRIPTION}" --raw)
39
+ ```
40
+ - Move accumulated artifacts to the new phase directory
41
+ - Update ROADMAP.md: move the entry from `## Backlog` section to the active phase list
42
+ - Remove `(BACKLOG)` marker
43
+ - Add appropriate `**Depends on:**` field
44
+
45
+ 5. **For items to REMOVE:**
46
+ - Delete the phase directory
47
+ - Remove the entry from ROADMAP.md `## Backlog` section
48
+
49
+ 6. **Commit changes:**
50
+ ```bash
51
+ gsd-tools query commit "docs: review backlog — promoted N, removed M" --files .planning/ROADMAP.md
52
+ ```
53
+
54
+ 7. **Report summary:**
55
+ ```
56
+ ## 📋 Backlog Review Complete
57
+
58
+ Promoted: {list of promoted items with new phase numbers}
59
+ Kept: {list of items remaining in backlog}
60
+ Removed: {list of deleted items}
61
+ ```
62
+
63
+ </process>
@@ -0,0 +1,36 @@
1
+ ---
2
+ name: gsd-secure-phase
3
+ description: "Retroactively verify threat mitigations for a completed phase"
4
+ argument-hint: "[phase number]"
5
+ allowed-tools:
6
+ - Read
7
+ - Write
8
+ - Edit
9
+ - Bash
10
+ - Glob
11
+ - Grep
12
+ - Agent
13
+ - AskUserQuestion
14
+ ---
15
+
16
+ <objective>
17
+ Verify threat mitigations for a completed phase. Three states:
18
+ - (A) SECURITY.md exists — audit and verify mitigations
19
+ - (B) No SECURITY.md, PLAN.md with threat model exists — run from artifacts
20
+ - (C) Phase not executed — exit with guidance
21
+
22
+ Output: updated SECURITY.md.
23
+ </objective>
24
+
25
+ <execution_context>
26
+ @~/.claude/gsd-core/workflows/secure-phase.md
27
+ </execution_context>
28
+
29
+ <context>
30
+ Phase: $ARGUMENTS — optional, defaults to last completed phase.
31
+ </context>
32
+
33
+ <process>
34
+ Execute end-to-end.
35
+ Preserve all workflow gates.
36
+ </process>
@@ -0,0 +1,29 @@
1
+ ---
2
+ name: gsd-settings
3
+ description: "Configure GSD workflow toggles and model profile"
4
+ allowed-tools:
5
+ - Read
6
+ - Write
7
+ - Bash
8
+ - AskUserQuestion
9
+ ---
10
+
11
+
12
+ <objective>
13
+ Interactive configuration of GSD workflow agents and model profile via multi-question prompt.
14
+
15
+ Routes to the settings workflow which handles:
16
+ - Config existence ensuring
17
+ - Current settings reading and parsing
18
+ - Interactive 5-question prompt (model, research, plan_check, verifier, branching)
19
+ - Config merging and writing
20
+ - Confirmation display with quick command references
21
+ </objective>
22
+
23
+ <execution_context>
24
+ @~/.claude/gsd-core/workflows/settings.md
25
+ </execution_context>
26
+
27
+ <process>
28
+ Execute end-to-end.
29
+ </process>
@@ -0,0 +1,24 @@
1
+ ---
2
+ name: gsd-ship
3
+ description: "Create PR, run review, and prepare for merge after verification passes"
4
+ argument-hint: "[phase number or milestone, e.g., '4' or 'v1.0']"
5
+ allowed-tools:
6
+ - Read
7
+ - Bash
8
+ - Grep
9
+ - Glob
10
+ - Write
11
+ - AskUserQuestion
12
+ ---
13
+
14
+ <objective>
15
+ Bridge local completion → merged PR. After /gsd-verify-work passes, ship the work: push branch, create PR with auto-generated body, optionally trigger review, and track the merge.
16
+
17
+ Closes the plan → execute → verify → ship loop.
18
+ </objective>
19
+
20
+ <execution_context>
21
+ @~/.claude/gsd-core/workflows/ship.md
22
+ </execution_context>
23
+
24
+ Execute the ship workflow from @~/.claude/gsd-core/workflows/ship.md end-to-end.