Commit Graph

11 Commits

Author SHA1 Message Date
Lex Christopherson
1764abc615 fix: executor updates ROADMAP.md and REQUIREMENTS.md per-plan
gsd-executor had no instruction to update ROADMAP or REQUIREMENTS after
completing a plan — both stayed unchecked throughout milestone execution.

- Add `roadmap update-plan-progress` call to executor state_updates
- Add `requirements mark-complete` CLI command to gsd-tools
- Wire requirement marking into executor and execute-plan workflows
- Include ROADMAP.md and REQUIREMENTS.md in executor final commit

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-17 13:19:02 -06:00
Lex Christopherson
cbf809417a fix: requirements tracking chain — strip brackets, add requirements field to plans and summaries
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-16 12:21:59 -06:00
Lex Christopherson
7510a8a84a feat(quick): add --full flag for plan-checking and verification
Enables quality guarantees on quick tasks without full milestone ceremony.
--full spawns plan-checker (max 2 iterations) and post-execution verifier,
produces VERIFICATION.md, and adds Status column to STATE.md table.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 16:56:31 -06:00
Lex Christopherson
1dcedb635e feat(auto-advance): chain phase execution across full milestone
Wire execute-phase to invoke transition.md inline when --auto flag or
workflow.auto_advance config is set, propagate --auto through transition
to next phase invocations, add config-get command to gsd-tools, and fix
broken "config get" calls to use hyphenated "config-get" subcommand.

Closes #344

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 16:37:47 -06:00
Lex Christopherson
cb7d4dbc3c feat(health): add /gsd:health command for planning directory validation
Validates .planning/ integrity and reports actionable issues:
- Missing/malformed files (PROJECT.md, ROADMAP.md, STATE.md, config.json)
- Phase directory naming, orphaned plans, roadmap/disk consistency
- Auto-repair for config.json and STATE.md with --repair flag

Closes #338

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-15 16:25:01 -06:00
Lex Christopherson
0f2a3fafff fix: add .gitkeep to phase directories for git tracking
Phase directories created by /gsd:add-phase and /gsd:insert-phase were
empty until planning, causing git to ignore them. This prevented syncing
across machines.

Fixes #427

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 15:03:06 -06:00
Lex Christopherson
41cb7455f5 feat(phases): archive completed milestone phase directories (closes #489)
Add optional phase archival to milestone completion and a standalone
/gsd:cleanup command for retroactive use. Phase dirs move to
.planning/milestones/v{X.Y}-phases/, reducing phases/ clutter after
multiple milestones.

Core changes:
- getArchivedPhaseDirs() and searchPhaseInDir() helpers in gsd-tools
- findPhaseInternal() searches archives when phase not found in current
- cmdPhasesList() accepts --include-archived flag
- cmdHistoryDigest() scans both current and archived phases
- cmdMilestoneComplete() accepts --archive-phases flag
- Workflow globs replaced with find-phase/phases-list CLI calls

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 14:33:50 -06:00
Lex Christopherson
8d977328e4 fix(tools): write large JSON payloads to tmpfile to prevent truncation (closes #493)
When init commands include many file contents (state, roadmap, requirements,
etc.), the JSON output can exceed Claude Code's Bash tool buffer (~50KB),
causing parse errors. The output() function now auto-detects large payloads
and writes to a tmpfile, returning @file:/path instead. All workflows that
consume init output handle both formats.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 14:33:50 -06:00
Lex Christopherson
37bb14eaf8 feat(config): add user-level default settings via ~/.gsd/defaults.json (closes #492)
New projects seed config from ~/.gsd/defaults.json when available,
skipping the 8 setup questions. /gsd:settings offers to save current
settings as global defaults after configuration.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 11:14:58 -06:00
Lex Christopherson
afb93a37c6 fix(tools): normalize phase padding in insert command (closes #494)
Phase insert failed when zero-padding differed between user input and
ROADMAP.md headers (e.g. "9.05" vs "09.05"). Normalize input and use
flexible regex matching with optional leading zeros.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 11:14:17 -06:00
Lex Christopherson
24b933e018 fix: rename gsd-tools.js to .cjs to prevent ESM conflicts (closes #495)
Projects with "type": "module" in package.json cause Node to treat
gsd-tools.js as ESM, crashing on require(). The .cjs extension forces
CommonJS regardless of the host project's module configuration.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 11:03:22 -06:00