Commit Graph

454 Commits

Author SHA1 Message Date
Tibsfox
2a3fe4fdb5 feat(references): add gates taxonomy with 4 canonical gate types (#1781)
* feat(references): add gates taxonomy with 4 canonical gate types

Define pre-flight, revision, escalation, and abort gates as the
canonical validation checkpoint types used across GSD workflows.
Includes a gate matrix mapping each workflow phase to its gate type,
checked artifacts, and failure behavior. Cross-referenced from
plan-phase and execute-phase workflows.

Closes #1715

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix(agents): add gates.md reference to plan-checker and verifier per approved scope (#1715)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix(agents): move gates.md to required_reading blocks and add stall detection (#1715)

- Move gates.md @-reference from <role> prose into <required_reading> blocks
  in gsd-plan-checker.md and gsd-verifier.md so it loads as context
- Add stall-detection to Revision Gate recovery description
- Fix /gsd-next → next for consistent workflow naming in Gate Matrix
- Update tests to verify required_reading placement and stall detection

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-06 15:19:46 -04:00
Tibsfox
f0f0f685a5 feat(commands): add /gsd-audit-fix for autonomous audit-to-fix pipeline (#1814)
* feat(commands): add /gsd-audit-fix autonomous audit-to-fix pipeline

Chains audit, classify, fix, test, commit into an autonomous pipeline. Runs an audit (currently audit-uat), classifies findings as auto-fixable vs manual-only (erring on manual when uncertain), spawns executor agents for fixable issues, runs tests after each fix, and commits atomically with finding IDs for traceability.

Supports --max N (cap fixes), --severity (filter threshold), --dry-run (classification table only), and --source (audit command). Reverts changes on test failure and continues to the next finding.

Closes #1735

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix(commands): address review feedback on audit-fix command (#1735)

- Change --severity default from high to medium per approved spec
- Fix pipeline to stop on first test failure instead of continuing
- Verify gsd-tools.cjs commit usage (confirmed valid — no change needed)
- Add argument-hint for /gsd-help discoverability
- Update tests: severity default, stop-on-failure, argument-hint

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix(commands): address second-round review feedback on audit-fix (#1735)

- Replace non-existent gsd-tools.cjs commit with direct git add/commit
- Scope revert to changed files only instead of git checkout -- .
- Fix argument-hint to reflect actual supported source values
- Add type: prompt to command frontmatter

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-05 23:07:52 -04:00
Tom Boucher
c0efb7b9f1 fix(workflows): remove deprecated --no-input flag from claude CLI calls (#1759) (#1842)
claude --no-input was removed in Claude Code >= v2.1.81 and causes an
immediate crash ("error: unknown option '--no-input'"). The -p/--print
flag already handles non-interactive output, so --no-input is redundant.

Adds a regression test in tests/workflow-compat.test.cjs that scans all
workflow, command, and agent .md files to ensure --no-input never returns.

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-05 22:54:12 -04:00
Bill Huang
99c089bfbf feat: add /gsd:code-review and /gsd:code-review-fix commands (#1630)
* feat: add /gsd:code-review and /gsd:code-review-fix commands

Closes #1636

Add two new slash commands that close the gap between phase execution
and verification. After /gsd:execute-phase completes, /gsd:code-review
reviews produced code for bugs, security issues, and quality problems.
/gsd:code-review-fix then auto-fixes issues found by the review.

## New Files

- agents/gsd-code-reviewer.md — Review agent with 3 depth levels
  (quick/standard/deep) and structured REVIEW.md output
- agents/gsd-code-fixer.md — Fix agent with atomic git rollback,
  3-tier verification, per-finding atomic commits, logic-bug flagging
- commands/gsd/code-review.md — Slash command definition
- commands/gsd/code-review-fix.md — Slash command definition
- get-shit-done/workflows/code-review.md — Review orchestration:
  3-tier file scoping, repo-boundary path validation, config gate
- get-shit-done/workflows/code-review-fix.md — Fix orchestration:
  --all/--auto flags, 3-iteration cap, artifact backup across iterations
- tests/code-review.test.cjs — 35 tests covering agents, commands,
  workflows, config, integration, rollback strategy, and logic-bug flagging

## Modified Files

- get-shit-done/bin/lib/config.cjs — Register workflow.code_review and
  workflow.code_review_depth with defaults and typo suggestions
- get-shit-done/workflows/execute-phase.md — Add code_review_gate step
  (PIPE-01): runs after aggregate_results, advisory only, non-blocking
- get-shit-done/workflows/quick.md — Add Step 6.25 code review (PIPE-03):
  scopes via git diff, uses gsd-code-reviewer, advisory only
- get-shit-done/workflows/autonomous.md — Add Step 3c.5 review+fix chain
  (PIPE-02): auto-chains code-review-fix --auto when issues found

## Design Decisions

- Rollback uses git checkout -- {file} (atomic) not Write tool (partial write risk)
- Logic-bug fixes flagged "requires human verification" (syntax check cannot verify semantics)
- Path traversal guard rejects --files paths outside repo root
- Fail-closed scoping: no HEAD~N heuristics when scope is ambiguous

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* feat: add /gsd:code-review and /gsd:code-review-fix commands

Closes #1636

Add two new slash commands that close the gap between phase execution
and verification. After /gsd:execute-phase completes, /gsd:code-review
reviews produced code for bugs, security issues, and quality problems.
/gsd:code-review-fix then auto-fixes issues found by the review.

## New Files

- agents/gsd-code-reviewer.md — Review agent: 3 depth levels, REVIEW.md
- agents/gsd-code-fixer.md — Fix agent: git rollback, 3-tier verification,
  logic-bug flagging, per-finding atomic commits
- commands/gsd/code-review.md, code-review-fix.md — Slash command definitions
- get-shit-done/workflows/code-review.md — Review orchestration: 3-tier
  file scoping, path traversal guard, config gate
- get-shit-done/workflows/code-review-fix.md — Fix orchestration:
  --all/--auto flags, 3-iteration cap, artifact backup
- tests/code-review.test.cjs — 35 tests: agents, commands, workflows,
  config, integration, rollback, logic-bug flagging

## Modified Files

- get-shit-done/bin/lib/config.cjs — Register workflow.code_review and
  workflow.code_review_depth config keys
- get-shit-done/workflows/execute-phase.md — Add code_review_gate step
  (PIPE-01): after aggregate_results, advisory, non-blocking
- get-shit-done/workflows/quick.md — Add Step 6.25 code review (PIPE-03):
  git diff scoping, gsd-code-reviewer, advisory
- get-shit-done/workflows/autonomous.md — Add Step 3c.5 review+fix chain
  (PIPE-02): auto-chains code-review-fix --auto when issues found

## Design decisions

- Rollback uses git checkout -- {file} (atomic) not Write tool
- Logic-bug fixes flagged requires human verification (syntax != semantics)
- --files paths validated within repo root (path traversal guard)
- Fail-closed: no HEAD~N heuristics when scope ambiguous

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix: resolve contradictory rollback instructions in gsd-code-fixer

rollback_strategy said git checkout, critical_rules said Write tool.
Align all three sections (rollback_strategy, execution_flow step b,
critical_rules) to use git checkout -- {file} consistently.

Also remove in-memory PRE_FIX_CONTENT capture — no longer needed
since git checkout is the rollback mechanism.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix: address all review feedback from rounds 3-4

Blocking (bash compatibility):
- Replace mapfile -t with portable while IFS= read -r loops in both
  workflows (mapfile is bash 4+; macOS ships bash 3.2 by default)
- Add macOS bash version note to platform_notes

Blocking (quick.md scope heuristic):
- Replace fragile HEAD~$(wc -l SUMMARY.md) with git log --grep based
  diff, matching the more robust approach in code-review.md

Security (path traversal):
- Document realpath -m macOS behavior in platform_notes; guard remains
  fail-closed on macOS without coreutils

Logic / correctness:
- Fix REVIEW_PATH / FIX_REPORT_PATH interpolation in node -e strings;
  use process.env.REVIEW_PATH via env var prefix to avoid single-quote
  path injection risk
- Add iteration semantics comment clarifying off-by-one behavior
- Remove duplicate "3. Determine changed files" heading in gsd-code-reviewer.md

Agent:
- Add logic-bug limitation section to gsd-code-fixer verification_strategy

Tests (39 total, up from 32):
- Add rollback uses git checkout test
- Add success_criteria consistency test (must not say Write tool)
- Add logic-bug flagging test
- Add files_reviewed_list spec test
- Add path traversal guard structural test
- Add mapfile-in-bash-blocks tests (bash 3.2 compatibility)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix: add gsd-code-reviewer to quick.md available_agent_types and copilot install test

- quick.md Step 6.25 spawns gsd-code-reviewer but the workflow's
  <available_agent_types> block did not list it, failing the spawn
  consistency CI check (#1357)
- copilot-install.test.cjs hardcoded agent list was missing
  gsd-code-fixer.agent.md and gsd-code-reviewer.agent.md, failing
  the Copilot full install verification test

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix: replace /gsd: colon refs with /gsd- hyphen format in new files

Fixes stale-colon-refs CI test (#1748). All 19 violations replaced:
- agents/gsd-code-fixer.md (2): description + role spawned-by text
- agents/gsd-code-reviewer.md (4): description + role + fallback note + error msg
- get-shit-done/workflows/code-review-fix.md (7): error msgs + retry suggestions
- get-shit-done/workflows/code-review.md (5): error msgs + retry suggestions
- get-shit-done/workflows/execute-phase.md (1): code_review_gate suggestion

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-05 19:43:45 -04:00
Rezolv
12cdf6090c feat(workflows): auto-copy learnings to global store at phase completion (#1828)
* feat(workflows): add auto-copy learnings to global store at phase completion

* fix(workflows): address review feedback for learnings auto-copy

- Replace shell-interpolated ${phase_dir} with agent context instruction
- Remove unquoted glob pattern in bash snippet
- Use gsd-tools learnings copy instead of manual file detection
- Document features.* dynamic namespace in config.cjs

* docs(config): add features.* namespace to CONFIGURATION.md schema
2026-04-05 19:33:43 -04:00
Tibsfox
790cbbd0d6 feat(commands): add /gsd-explore for Socratic ideation and idea routing (#1813)
* feat(commands): add /gsd-explore for Socratic ideation and idea routing

Open-ended exploration command that guides developers through ideas via
Socratic questioning, optionally spawns research when factual questions
surface, then routes crystallized outputs to appropriate GSD artifacts
(notes, todos, seeds, research questions, requirements, or new phases).

Conversation follows questioning.md principles — one question at a time,
contextual domain probes, natural flow. Outputs require explicit user
selection before writing.

Closes #1729

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix(commands): address review feedback on explore command (#1729)

- Change allowed-tools from Agent to Task to match subagent spawn pattern
- Remove unresolved {resolved_model} placeholder from Task spawn

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-05 18:33:27 -04:00
Rezolv
02d2533eac feat(commands): add external plan import command /gsd-import (#1801)
* feat(commands): add external plan import command /gsd-import

Adds a new /gsd-import command for importing external plan files into
the GSD planning system with conflict detection against PROJECT.md
decisions and CONTEXT.md locked decisions.

Scoped to --from mode only (plan file import). Uses validatePath()
from security.cjs for file path validation. Surfaces all conflicts
before writing and never auto-resolves. Handles missing PROJECT.md
gracefully by skipping constraint checks.

--prd mode (PRD extraction) is noted as future work.

Closes #1731

* fix(commands): address review feedback for /gsd-import

- Add structural tests for command/workflow files (13 assertions)
- Add REQUIREMENTS.md to conflict detection context loading
- Replace security.cjs CLI invocation with inline path validation
- Move PBR naming check from blocker list to conversion step
- Add Edit to allowed-tools for ROADMAP.md/STATE.md patching
- Remove emoji from completion banner and validation message
2026-04-05 18:33:24 -04:00
Rezolv
567736f23d feat(commands): add safe git revert command /gsd-undo (#1800)
* feat(commands): add safe git revert command /gsd-undo

Adds a new /gsd-undo command for safely reverting GSD phase or plan
commits. Uses phase manifest lookup with git log fallback, atomic
single-commit reverts via git revert --no-commit, dependency checking
with user confirmation, and structured revert commit messages including
a user-provided reason.

Three modes: --last N (interactive selection), --phase NN (full phase
revert), --plan NN-MM (single plan revert).

Closes #1730

* fix(commands): address review feedback for /gsd-undo

- Add dirty-tree guard before revert operations (security)
- Fix manifest schema to use manifest.phases[N].commits (critical)
- Extend dependency check to MODE=plan for intra-phase deps
- Handle mid-sequence conflict cleanup with reset HEAD + restore
- Fix unbalanced grep alternation pattern for phase scope matching
- Remove Write from allowed-tools (never needed)
2026-04-05 18:33:21 -04:00
Rezolv
db6f999ee4 feat(workflows): add stall detection to plan-phase revision loop (#1794)
* feat(workflows): add stall detection to plan-phase revision loop

Adds issue count tracking and stall detection to the plan-phase
revision loop (step 12). When issue count stops decreasing across
iterations, the loop escalates to the user instead of burning
remaining iterations. The existing 3-iteration cap remains as a
backstop. Uses normalized issue counting from checker YAML output.

Closes #1716

* fix(workflows): add parsing fallback and re-entry guard to stall detection
2026-04-05 18:33:19 -04:00
Tom Boucher
2ded61bf45 fix(cli): require --confirm flag before phases clear deletes directories (#1832)
phases clear now checks for phase dirs before deleting. If any exist and
--confirm is absent, the command exits non-zero with a message showing the
count and how to proceed. Empty phases dir (nothing to delete) succeeds
without --confirm unchanged.

Updates new-milestone.md workflow to pass --confirm (intentional programmatic
caller). Updates existing new-milestone-clear-phases tests to match new API.

Closes #1826

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-05 18:05:32 -04:00
Tibsfox
3a277f8ba8 feat(next): add hard stop safety gates and consecutive-call guard (#1784)
Add three hard-stop checks to /gsd-next that prevent blind advancement:
1. Unresolved .continue-here.md checkpoint from a previous session
2. Error/failed state in STATE.md
3. Unresolved FAIL items in VERIFICATION.md

Also add a consecutive-call budget guard that prompts after 6
consecutive /gsd-next calls, preventing runaway automation loops.

All gates are bypassed with --force (prints a one-line warning).
Gates run in order and exit on the first hit to give clear,
actionable diagnostics.

Closes #1732

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-05 17:05:06 -04:00
Tibsfox
4c8719d84a feat(commands): add /gsd-scan for rapid single-focus codebase assessment (#1808)
Lightweight alternative to /gsd-map-codebase that spawns a single
mapper agent for one focus area instead of four parallel agents.
Supports --focus flag with 5 options: tech, arch, quality, concerns,
and tech+arch (default). Checks for existing documents and prompts
before overwriting.

Closes #1733

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-05 17:04:33 -04:00
Tibsfox
383007dca4 feat(workflows): add conditional thinking partner at decision points (#1816)
Integrate lightweight thinking partner analysis at two workflow decision
points, controlled by features.thinking_partner config (default: false):

1. discuss-phase: when developer answers reveal competing priorities
   (detected via keyword/structural signals), offers brief tradeoff
   analysis before locking decisions

2. plan-phase: when plan-checker flags architectural tradeoffs, analyzes
   options and recommends an approach aligned with phase goals before
   entering the revision loop

The thinking partner is opt-in, skippable (No, I have decided),
and brief (3-5 bullets). A third integration point for /gsd-explore
will be added when #1729 lands.

Closes #1726

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-05 17:04:08 -04:00
Tibsfox
a2a49ecd14 feat(model-profiles): add adaptive preset with role-based model assignment (#1806)
Add a fourth model profile preset that assigns models by agent role:
opus for planning and debugging (reasoning-critical), sonnet for
execution and research (follows instructions), haiku for mapping and
checking (high volume, structured output).

This gives solo developers on paid API tiers a cost-effective middle
ground — quality where it matters most (planning) without overspending
on mechanical tasks (mapping, checking).

Per-agent overrides via model_overrides continue to take precedence
over any profile preset, including adaptive.

Closes #1713

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-05 17:03:17 -04:00
Tibsfox
3143edaa36 fix(workflows): respect commit_docs:false in worktree merge and quick task commits (#1802)
Three locations in execute-phase.md and quick.md used raw `git add
.planning/` commands that bypassed the commit_docs config check. When
users set commit_docs: false during project setup, these raw git
commands still staged and committed .planning/ files.

Add commit_docs guards (via gsd-tools.cjs config-get) around all raw
git add .planning/ invocations. The gsd-tools.cjs commit wrapper
already respects this flag — these were the only paths that bypassed it.

Fixes #1783

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-05 17:02:20 -04:00
Tom Boucher
cfff82dcd2 fix(workflow): protect orchestrator files during worktree merge (#1756) (#1764)
When a worktree branch outlives a milestone transition, git merge
silently overwrites STATE.md and ROADMAP.md with stale content and
resurrects archived phase directories. Fix by backing up orchestrator
files before merge, restoring after, and detecting resurrected files.

Fixes #1761

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-05 11:11:38 -04:00
Tom Boucher
6bd786bf88 test: add stale /gsd: colon reference regression guard (#1753)
* test: add stale /gsd: colon reference regression guard

Fixes #1748

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix: replace 39 stale /gsd: colon references with /gsd- hyphen format

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-05 10:23:41 -04:00
Rezolv
9bf9fc295d feat(references): add shared behavioral docs and wire into workflows (#1658)
Add 6 shared reference docs that standardize agent behavior across all
GSD workflows:

- universal-anti-patterns.md: 27 behavioral rules across 8 categories
- context-budget.md: 4-tier system (PEAK/GOOD/DEGRADING/POOR) with
  read-depth rules based on context window size
- gate-prompts.md: 14 named prompt patterns for decision points
- revision-loop.md: Check-Revise-Escalate with stall detection (max 3)
- domain-probes.md: domain-specific follow-up questions for 10 domains
- agent-contracts.md: completion markers for all 21 GSD agents

Wire into existing workflows via @-reference includes:
- plan-phase.md: revision-loop, gate-prompts, agent-contracts
- execute-phase.md: agent-contracts, context-budget
- discuss-phase.md: domain-probes, gate-prompts, universal-anti-patterns
2026-04-04 14:16:27 -04:00
monokoo
840b9981d9 fix: add environment-based runtime detection for /gsd-review (#1463)
Replace AI self-identification with env var checks (ANTIGRAVITY_AGENT,
CLAUDE_CODE_ENTRYPOINT) to correctly determine which review CLI to skip.

Fixes incorrect skip behavior when running non-Claude models inside
the Antigravity client.
2026-04-04 14:15:56 -04:00
Tom Boucher
f26e1e1141 feat(state): add programmatic gates for STATE.md consistency (#1647)
* feat(state): add programmatic gates for STATE.md consistency

Adds four enforcement gates to prevent STATE.md drift:
- `state validate`: detects drift between STATE.md and filesystem
- `state sync`: reconstructs STATE.md from actual project state
- `state planned-phase`: records state after plan-phase completes
- Performance Metrics update in `phase complete`

Also fixes ghost `state update-position` command reference in
execute-phase.md (command didn't exist in CLI dispatcher).

Closes #1627

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix(state): By Phase table regex ate next section when table body was empty

The lazy [\s\S]*? with a $ lookahead in byPhaseTablePattern would
match past blank lines and capture the next ## section header as table
body when no data rows existed. Replaced with a precise row-matching
pattern ((?:[ \t]*\|[^\n]*\n)*) that only captures pipe-delimited
lines. Added regression assertion to verify row placement.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-04 08:01:39 -04:00
Tom Boucher
1e43accd95 feat(autonomous): add --to N flag to stop after specific phase (#1646)
Allows users to run autonomous mode up to a specific phase number.
After the target phase completes, execution halts instead of advancing.

Closes #1644

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-04 07:58:27 -04:00
Tibsfox
dc2afa299b feat(i18n): add response_language config for cross-phase language consistency (#1412)
* feat(i18n): add response_language config for cross-phase language consistency

Adds `response_language` config key that propagates through all init
outputs via withProjectRoot(). Workflows read this field and instruct
agents to present user-facing questions in the configured language,
solving the problem of language preference resetting at phase boundaries.

Usage: gsd-tools config-set response_language "Portuguese"

Closes #1399

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* test(security): allowlist discuss-phase.md for size threshold

discuss-phase.md legitimately exceeds 50K chars due to power mode
and i18n directives — not prompt stuffing.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-04 07:49:10 -04:00
Quang Do
d4767ac2e0 fix: replace /gsd: slash command format with /gsd- skill format in all user-facing content (#1579)
* fix: replace /gsd: command format with /gsd- skill format in all suggestions

All next-step suggestions shown to users were still using the old colon
format (/gsd:xxx) which cannot be copy-pasted as skills. Migrated all
occurrences across agents/, commands/, get-shit-done/, docs/, README files,
bin/install.js (hardcoded defaults for claude runtime), and
get-shit-done/bin/lib/*.cjs (generate-claude-md templates and error messages).
Updated tests to assert new hyphen format instead of old colon format.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix: migrate remaining /gsd: format to /gsd- in hooks, workflows, and sdk

Addresses remaining user-facing occurrences missed in the initial migration:

- hooks/: fix 4 user-facing messages (pause-work, update, fast, quick)
  and 2 comments in gsd-workflow-guard.js
- get-shit-done/workflows/: fix 21 Skill() literal calls that Claude
  executes directly (installer does not transform workflow content)
- sdk/prompt-sanitizer.ts: update regex to strip /gsd- format in addition
  to legacy /gsd: format; update JSDoc comment
- tests/: update autonomous-ui-steps, prompt-sanitizer to assert new format

Note: commands/gsd/*.md frontmatter (name: gsd:xxx) intentionally unchanged
— installer derives skillName from directory path, not the name field.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix(plan-phase): preserve --chain flag in auto-advance sync and handle ui-phase gate in chain mode

Bug 1: step 15 sync-flag check only guarded against --auto, causing
_auto_chain_active to be cleared when plan-phase is invoked without
--auto in ARGUMENTS even though a --chain pipeline was active. Added
--chain to the guard condition, matching discuss-phase behaviour.

Bug 2: UI Design Contract gate (step 5.6) always exited the workflow
when UI-SPEC was missing, breaking the discuss --chain pipeline
silently. When _auto_chain_active is true, the gate now auto-invokes
gsd-ui-phase --auto via Skill() and continues to step 6 without
prompting. Manual invocations retain the existing AskUserQuestion flow.

* fix: remove <sub>/clear</sub> pattern and duplicate old-format command in discuss-phase.md

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-04 07:24:31 -04:00
Tibsfox
4645328e2e fix(verifier): filter gaps addressed in later milestone phases (#1624) (#1643)
The gsd-verifier was reporting false-positive gaps for items explicitly
scheduled in later phases of the milestone (e.g., reporting a Phase 5
item as a gap during Phase 1 verification). This adds Step 9b to
cross-reference gaps against later phases using `roadmap analyze` and
move matched items to a `deferred` list that does not affect status.

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-04 07:23:36 -04:00
Tibsfox
4abcfa1e3a fix(execute): use sequential dispatch instead of timing-based stagger (#1541)
Address review feedback: LLMs cannot enforce timing between tool calls.
Replace "stagger by ~2 seconds" with concrete, enforceable pattern:
dispatch each Task() one at a time with run_in_background: true. The
round-trip latency of each tool call provides natural spacing for
worktree creation, while agents still run in parallel once created.
Explicitly warn against sending multiple Task() calls in a single
message (which causes simultaneous git worktree add).

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-04 07:12:27 -04:00
Tibsfox
5011ff1562 fix(ui): show /clear before command in Next Up blocks (#1623) (#1631)
The Next Up blocks showed the main command first, then /clear as a <sub>
footnote saying 'first'. Users would copy-paste the command before noticing
they should have cleared first. This restructures all 41 instances across
19 workflow files and 2 reference files so /clear appears before the
command as a clear sequential instruction.

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-04 01:28:14 -04:00
Tibsfox
e8063ac9bb fix(plan-phase): preserve chain flag across discuss→plan→execute (#1620) (#1633)
The --chain flag was not checked in plan-phase's auto-advance guard,
causing the ephemeral _auto_chain_active config to be cleared when
discuss-phase chained into plan-phase. This broke the discuss→plan→
execute auto-advance pipeline, requiring manual intervention at each
transition.

Two fixes applied to plan-phase.md step 15:
- Sync-flag guard now checks for both --auto AND --chain before
  clearing _auto_chain_active (matching discuss-phase's pattern)
- Added chain flag persistence (config-set _auto_chain_active true)
  before auto-advancing, handling direct invocation without prior
  discuss-phase

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-04 01:27:51 -04:00
Tom Boucher
3d2c7ba39c feat(discuss): add --power flag for file-based bulk question answering (#1513) (#1611)
- Add --power flag to discuss-phase command (argument-hint + description)
- Add power_user_mode routing section to discuss-phase.md workflow
- Create discuss-phase-power.md with full step-by-step workflow:
  analyze -> generate JSON -> generate HTML -> notify -> wait loop -> finalize
- QUESTIONS.json has phase/stats/sections/questions with id/title/options/answer/status
- QUESTIONS.html is self-contained with stats bar, collapsible sections, 3-col grid
- Refresh, finalize, explain, and exit-power-mode commands documented
- Add tests/discuss-phase-power.test.cjs (13 tests, node:test + node:assert)

Closes #1513
2026-04-03 13:16:06 -04:00
Tom Boucher
d8ea195662 feat: add anti-pattern severity levels and mandatory understanding checks at resume (#1491) (#1610)
- Add severity column (blocking/advisory) to Critical Anti-Patterns table
  in .continue-here.md template in pause-work.md
- Document that blocking anti-patterns trigger a mandatory understanding
  check when discuss-phase or execute-phase resumes work
- Add check_blocking_antipatterns step to discuss-phase.md: parses
  .continue-here.md for blocking rows and requires three-question
  understanding demonstration before proceeding
- Add identical enforcement step to execute-phase.md
- Tests: tests/anti-pattern-enforcement.test.cjs (12 assertions, all pass)

Closes #1491
2026-04-03 13:06:31 -04:00
Tom Boucher
bdf6b5efcb feat: add methodology artifact type with consumption mechanisms (#1488) (#1609)
* test(#1488): add failing tests for methodology artifact type

- Test artifact-types.md exists with methodology type documented
- Test shape, lifecycle, location fields are present
- Test discuss-phase-assumptions.md consumes METHODOLOGY.md
- Test pause-work.md Required Reading includes METHODOLOGY.md

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* feat(#1488): add methodology artifact type with consumption mechanisms

- Create get-shit-done/references/artifact-types.md documenting all GSD
  artifact types including the new methodology type
- Methodology artifact: standing reference of named interpretive lenses,
  located at .planning/METHODOLOGY.md, lifecycle Created → Active → Superseded
- Add load_methodology step to discuss-phase-assumptions.md so active lenses
  are read before assumption analysis and applied to surfaced findings
- Add METHODOLOGY.md to pause-work.md Required Reading template so resuming
  agents inherit the project's analytical orientation

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-03 13:06:10 -04:00
Tom Boucher
522860ceef feat(verify): add optional Playwright-MCP automated UI verification (#1604)
When Playwright-MCP is available in the session, GSD UI verification
steps can be automated via screenshot comparison instead of manual
checkbox review. Falls back to manual flow when Playwright is not
configured.

Closes #1420
2026-04-03 12:40:47 -04:00
Tom Boucher
8fce097222 feat: add /gsd:analyze-dependencies command to detect phase dependencies (#1607)
Analyzes ROADMAP.md phases for file overlap and semantic dependencies,
then suggests Depends on entries before running /gsd:manager. Complements
the files_modified overlap detection added in the executor (PR #1600).

Closes #1530
2026-04-03 12:40:31 -04:00
Tom Boucher
bb74bd96d8 feat(workflows): expand pause-work for non-phase contexts and richer handoffs (#1608)
- Detects spike/deliberation/research context and writes to appropriate path (#1489)
- Adds Required Reading, Anti-Patterns, and Infrastructure State sections to
  continue-here template (#1490)
- Documents pre-execution design critique gate for design→execution transitions (#1487)

Closes #1487
Closes #1489
Closes #1490
2026-04-03 12:40:17 -04:00
Tom Boucher
0b43cfd303 fix: detect files_modified overlap and enforce wave ordering for dependent plans (#1587) (#1600)
* fix: correct STATE.md progress counter fields during plan/phase completion (#1589)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* ci: re-run CI with Windows pointer lifecycle fix in main

* fix: orchestrator owns STATE.md/ROADMAP.md writes in parallel worktree mode (#1571)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix: detect files_modified overlap and enforce wave ordering for dependent plans (#1587)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix: trim gsd-planner.md below 50000-char prompt-injection limit

The assign_waves section added in this branch pushed agents/gsd-planner.md
to 50271 chars, triggering the security scanner's prompt-stuffing check on
all CI platforms. Condense prose while preserving all logic and validation
rules; file is now 49754 chars.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-03 12:19:41 -04:00
Tom Boucher
d92cd7922a fix: clear phases directory when creating new milestone (#1588) (#1594)
* fix: clear phases directory when creating new milestone (#1588)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* ci: re-run CI with Windows pointer lifecycle fix in main

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-03 11:56:37 -04:00
Tom Boucher
9b3e08926e fix(worktree): executor agents verify and fix branch base on Windows
When EnterWorktree creates a branch from main instead of the current HEAD
(a known issue on Windows), executor agents now detect the mismatch and
reset their branch base to the correct commit before starting work.

- execute-phase: capture EXPECTED_BASE before spawning, inject
  <worktree_branch_check> block into executor prompts
- execute-plan: document Pattern A worktree_branch_check requirement
- quick.md: inject worktree_branch_check into executor prompt
- diagnose-issues: inject worktree_branch_check into debugger prompts
- settings: add workflow.use_worktrees option so Windows users can
  disable worktree isolation via /gsd:settings without editing files

Closes #1510

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-03 11:28:18 -04:00
Tom Boucher
9b5458d1ff fix(codex): new-project no longer creates both AGENTS.md and CLAUDE.md
Detect runtime from execution_context path or env vars at workflow start,
then set INSTRUCTION_FILE (AGENTS.md for Codex, CLAUDE.md for all others).
Pass --output $INSTRUCTION_FILE to generate-claude-md so the helper writes
to the correct file instead of always defaulting to CLAUDE.md.

Also add .codex to skipDirs in init.cjs so Codex runtime directories are
not mistaken for project content during brownfield codebase analysis.

Closes #1521

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-03 11:28:18 -04:00
Tom Boucher
ee7e6db428 Merge pull request #1517 from Kilo-Org/feat/kilo-runtime-support
Add Kilo Code support
2026-04-03 11:20:27 -04:00
Tom Boucher
c2830d36b7 Merge pull request #1458 from grgbrasil/feat/test-quality-audit-step
feat: add test quality audit step to verify-phase workflow
2026-04-03 11:17:43 -04:00
Tom Boucher
f86c058988 Merge pull request #1410 from Tibsfox/feat/manager-passthrough-flags-1400
feat(manager): add per-step passthrough flags via config
2026-04-03 11:16:54 -04:00
Alex Alecu
0866290c1b merge: sync Kilo runtime branch with latest main 2026-04-03 12:47:24 +03:00
Tom Boucher
2f7f317c24 Merge pull request #1551 from luanngosodadigital/feat/add-opencode-reviewer
feat: add OpenCode as a peer reviewer in /gsd:review
2026-04-02 20:08:20 -04:00
ngothanhluan
372c0356e5 fix: add empty output guard for OpenCode reviewer
Addresses review feedback — checks if opencode output file is
non-empty after invocation, writes a failure message if empty
to prevent blank sections in REVIEWS.md.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-03 06:56:50 +07:00
ngothanhluan
2ff3853eab fix: address review feedback for OpenCode reviewer integration
- Remove --copilot alias to avoid collision with existing Copilot concept
- Remove hardcoded model (-m) and variant flags; let user's OpenCode
  config determine the model, consistent with other reviewer CLIs
- Use generic "OpenCode Review" section header since model varies by config

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-03 06:36:16 +07:00
Tibsfox
99318a09e2 feat(manager): add per-step passthrough flags via config
Adds `manager.flags.{discuss,plan,execute}` config keys so users can
configure flags that /gsd:manager passes to each step when dispatching.
For example, `manager.flags.discuss: "--auto --analyze"` makes every
discuss dispatched from the manager include those flags.

Closes #1400

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 16:02:53 -07:00
Tom Boucher
18fad939ef Merge pull request #1475 from Tibsfox/fix/subagent-timeout-config-1472
feat(config): add workflow.subagent_timeout to replace hardcoded 5-minute limit
2026-04-02 18:03:45 -04:00
Tom Boucher
a7d223fafa Merge pull request #1470 from Tibsfox/fix/base-branch-config-1466
fix(git): add git.base_branch config to replace hardcoded main target
2026-04-02 18:01:53 -04:00
Tom Boucher
f58a71ebce Merge pull request #1480 from Tibsfox/feat/autonomous-interactive-1413
feat(autonomous): add --interactive flag for lean context with user input
2026-04-02 17:58:16 -04:00
gg
759ff38d44 feat: add test quality audit step to verify-phase workflow
Adds a new `audit_test_quality` step between `scan_antipatterns` and
`identify_human_verification` that catches test-level deceptions:

- Disabled tests (it.skip/xit/test.todo) covering phase requirements
- Circular tests (system generating its own expected values)
- Weak assertions (existence-only when value-level proof needed)
- Expected value provenance tracking for parity/migration phases

Any blocker from this audit forces `gaps_found` status, preventing
phases from being marked complete with inadequate test evidence.

Fixes #1457

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 18:55:17 -03:00
Tom Boucher
8fec00a23c Merge pull request #1555 from tonylt/fix/execute-phase-task-description-missing
fix(execute-phase): add required description param to Task() calls
2026-04-02 17:53:50 -04:00