Commit Graph

427 Commits

Author SHA1 Message Date
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
Alex Alecu
fc1a4ccba1 merge: sync Kilo runtime branch with main
Bring the latest main branch updates into feat/kilo-runtime-support while preserving KILO_CONFIG resolution, Kilo agent permission conversion, and relative .claude path rewrites.
2026-04-02 16:00:09 +03:00
Alex Alecu
f8edfe7f15 fix: align Kilo config and agent conversion
Honor KILO_CONFIG across installer and workflow resolution, preserve Claude agent tool intent as explicit Kilo permissions, and rewrite relative .claude references during Kilo conversion.
2026-04-02 15:44:46 +03:00
Tibsfox
9d430f6637 feat(workflows): adaptive context enrichment for 1M models
Read context_window config (default 200000) in execute-phase and plan-phase workflows. When >= 500000 (1M-class models), subagent prompts include richer context: executor agents receive CONTEXT.md, RESEARCH.md, and prior wave SUMMARYs; verifier agents receive all PLANs, SUMMARYs, and REQUIREMENTS.md; planner receives prior phase CONTEXT.md for cross-phase decision consistency.

At 200k (default), behavior is unchanged.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 04:16:24 -07:00
Liutuo
c0c881f020 fix(execute-phase): add required description param to Task() calls
Both the gsd-executor and gsd-verifier Task() invocations were missing
the required `description` parameter, causing InputValidationError when
spawning agents in parallel during /gsd:execute-phase.
2026-04-02 10:25:14 +08:00
ngothanhluan
73af4fa815 feat: add OpenCode as a peer reviewer in /gsd:review
Adds OpenCode CLI as a 5th reviewer option, enabling teams with GitHub
Copilot subscriptions to leverage Copilot-routed models (e.g.
gpt-5.3-codex) for cross-AI plan reviews.

Closes #1520

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 06:30:01 +07:00
Tibsfox
2aca125308 feat(autonomous): add --interactive flag for lean context with user input
The autonomous workflow previously had two extremes: full auto-answer
mode (--auto discuss, lean context but no user input) or manager mode
(interactive but bloated context from accumulating everything inline).

The --interactive flag bridges this gap:
- Discuss runs inline via gsd:discuss-phase (asks questions, waits for
  user answers — preserving all design decisions)
- Plan and execute dispatch as background agents (fresh context per
  phase — no accumulation in the main session)
- Pipeline parallelism: discuss Phase N+1 while Phase N builds in the
  background

This keeps the main context lean (only discuss conversations accumulate)
while preserving user input on all decisions. Particularly helpful for
users hitting context limits with /gsd:manager on multi-phase milestones.

Usage:
  /gsd:autonomous --interactive
  /gsd:autonomous --interactive --from 3
  /gsd:autonomous --interactive --only 5

Also adds --only N flag parsing to the upstream workflow (previously only
in PR #1444's branch).

Closes #1413

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-01 14:58:52 -07:00
Tibsfox
14b68410cc feat(config): add workflow.subagent_timeout to replace hardcoded 5-minute limit
The map-codebase workflow had a hardcoded 300000ms (5 minute) timeout
for parallel subagent tasks. On large codebases or with slower models
(e.g. GPT via Codex), subagents can need 10-20+ minutes, causing the
parent to kill still-working agents and fall back to sequential mode.

Changes:
- Add workflow.subagent_timeout config key (default: 300000ms)
- Register in VALID_CONFIG_KEYS (config.cjs)
- Add to loadConfig() defaults and return object (core.cjs)
- Emit in map-codebase init context (init.cjs)
- Update map-codebase.md to use config value instead of hardcoded 300000
- Document in planning-config.md reference

Users can now increase the timeout via:
  /gsd:settings workflow.subagent_timeout 900000

Closes #1472

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-01 14:57:24 -07:00
Tibsfox
0fb992d151 fix(git): add git.base_branch config to replace hardcoded main target
Adds `git.base_branch` config option that controls the target branch
for PRs and merges. When unset, auto-detects from origin/HEAD and
falls back to "main".

This fixes projects using `master`, `develop`, or any other default
branch — previously `/gsd:ship` would create PRs targeting `main`
(which may not exist) and `/gsd:complete-milestone` would try to
checkout `main` and fail.

Changes:
- config.cjs: add git.base_branch to valid config keys
- planning-config.md: document the option with auto-detect behavior
- ship.md: detect base branch at init, use in PR create, branch
  detection, push report, and completion report
- complete-milestone.md: detect base branch, use for squash merge
  and merge-with-history checkout targets
- 1 new test for config-set git.base_branch

Usage:
  gsd-tools config-set git.base_branch master

Or auto-detect (default — reads origin/HEAD):
  git.base_branch: null

Closes #1466

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-01 14:56:55 -07:00
Tom Boucher
fd2e844e9c Merge pull request #1544 from Tibsfox/fix/autonomous-phase-count-display-1516
fix(autonomous): clarify phase count display to prevent misleading N/T banner
2026-04-01 17:43:53 -04:00
Tibsfox
66e3cf87fe fix(autonomous): clarify phase count display to prevent misleading N/T (#1516)
When phase numbers are globally sequential across milestones (e.g.,
phases 61-67), the banner showed "Phase 63/5" where 5 was the count of
remaining phases — easily mistaken for "63 out of 5 total." Clarify
that T must be total milestone phases and add fallback display format
for when phase numbers exceed the total count.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-01 14:35:57 -07:00
Tom Boucher
b12f3ce551 Merge pull request #1519 from alexpalyan/feat/add-coderabbit-reviewer
feat: Integrate CodeRabbit into review workflow
2026-04-01 17:34:49 -04:00
Tom Boucher
35b835b861 Merge pull request #1508 from Ecko95/fix/infinite-self-discuss-loop
fix: prevent infinite self-discuss loop in auto/headless mode
2026-04-01 17:34:15 -04:00
Tom Boucher
bf838c0d92 Merge pull request #1505 from Tibsfox/fix/quick-plan-uncommitted-1503
fix(quick): enforce commit boundary between executor and orchestrator
2026-04-01 17:32:05 -04:00
Tom Boucher
591d5358ac Merge pull request #1502 from Tibsfox/fix/worktree-cleanup-1496
fix(worktree): add post-execution cleanup for orphan worktrees
2026-04-01 17:31:47 -04:00
Tom Boucher
7b221a88b0 Merge pull request #1492 from grgbrasil/fix/scope-reduction-detection
feat: detect and prevent silent scope reduction in planner
2026-04-01 17:31:19 -04:00
Tom Boucher
2f16cb8631 Merge pull request #1456 from Tibsfox/fix/worktree-disable-config-1451
feat(config): add workflow.use_worktrees toggle to disable worktree isolation
2026-04-01 17:24:57 -04:00
Tom Boucher
be2f99ec85 Merge pull request #1455 from gsd-build/fix/manager-skill-pipeline-1453
fix: manager workflow delegates to Skill pipeline instead of raw Task prompts
2026-04-01 17:24:26 -04:00
Tom Boucher
ce5fbc5d73 Merge pull request #1445 from Tibsfox/feat/discuss-phase-chain-1327
feat(discuss): add --chain flag for interactive discuss with auto plan+execute
2026-04-01 17:17:17 -04:00
Tom Boucher
dbb3239675 Merge pull request #1444 from Tibsfox/feat/autonomous-only-flag-1383
feat(autonomous): add --only N flag for single-phase parallel execution
2026-04-01 17:16:56 -04:00
Tom Boucher
1d97a03a36 Merge pull request #1442 from Tibsfox/fix/complete-phase-reference-1441
fix(next): remove reference to non-existent /gsd:complete-phase
2026-04-01 17:16:13 -04:00
Tom Boucher
1cf97fd9cb Merge pull request #1386 from gsd-build/fix/schema-drift-detection-1381
feat: schema drift detection prevents false-positive verification
2026-04-01 17:15:43 -04:00
Tom Boucher
dbc54b8386 Merge pull request #1439 from Tibsfox/fix/todo-done-vs-completed-1438
fix(todos): rename todos/done to todos/completed in workflows and docs
2026-04-01 17:12:47 -04:00
Tom Boucher
02c41940c7 Merge pull request #1432 from j2h4u/fix/verifier-human-needed-status
fix(verifier): enforce human_needed status when human verification items exist
2026-04-01 17:11:06 -04:00
Tom Boucher
53c7c1c993 Merge pull request #1518 from ElliotDrel/feat/full-flag-refactor
feat(quick): make --full include all phases, add --validate flag
2026-04-01 16:59:52 -04:00
Tibsfox
5e88db9577 feat(discuss): add --chain flag for interactive discuss with auto plan+execute
Adds --chain flag to /gsd:discuss-phase that provides the middle ground
between fully manual and fully automatic workflows:

  /gsd:discuss-phase 5 --chain

  - Discussion is fully interactive (user answers questions)
  - After context is captured, auto-advances to plan → execute
  - Same pipeline as --auto, but without auto-answering

This addresses the community request for per-phase automation where
users want to control discuss decisions but skip manual advancement
between plan and execute steps.

Workflow: discuss (interactive) → plan (auto) → execute (auto)

Changes:
- Workflow: --chain flag triggers auto_advance without auto-answering
- Workflow: chain flag synced alongside --auto in ephemeral config
- Workflow: next-phase suggestion preserves --chain vs --auto
- Command: argument-hint and description updated
- Success criteria updated

Closes #1327

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-01 13:56:20 -07:00
Tom Boucher
7f11543691 feat: add schema drift detection to prevent false-positive verification
GSD agents silently skip database schema push — verification passes but
production breaks because TypeScript types come from config, not the live
database. This adds two layers of protection:

1. Plan-phase template detection (step 5.7): When the planner detects
   schema-relevant file patterns in the phase scope, it injects a mandatory
   [BLOCKING] schema push task into the plan with the appropriate push
   command for the detected ORM.

2. Post-execution drift detection gate: After execution completes but
   before verification marks success, scans for schema-relevant file
   changes and checks if a push command was executed. Blocks verification
   with actionable guidance if drift is detected.

Supports Payload CMS, Prisma, Drizzle, Supabase, and TypeORM.
Override with GSD_SKIP_SCHEMA_CHECK=true.

Fixes #1381

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-01 16:53:20 -04:00
Tom Boucher
8502c11d97 Merge pull request #1501 from Tibsfox/fix/discuss-incremental-saves-1485
fix(discuss): incremental checkpoint saves to prevent answer loss on interrupt
2026-04-01 12:17:54 -04:00