Commit Graph

1015 Commits

Author SHA1 Message Date
Lex Christopherson
91e4ef77f4 fix(workflow): consistent phase transition routing through discuss-phase (#530)
Three routing fixes:
- transition.md checks for CONTEXT.md before routing — discuss-phase when
  missing, plan-phase when present (matches progress.md behavior)
- execute-phase.md offer_next delegates to transition.md instead of emitting
  duplicate "Next Up" blocks
- discuss-phase.md adds explicit handling for "Other" free-text responses

Closes #530

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 10:00:40 -06:00
Lex Christopherson
c8827fede1 fix(tools): deterministic ROADMAP progress table updates from disk (#537)
Replace NL instructions in execute-plan and execute-phase workflows with
deterministic `roadmap update-plan-progress` command that counts PLAN vs
SUMMARY files on disk. Prevents LLM from miscounting plan progress.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 09:58:32 -06:00
Lex Christopherson
ed1768404c feat(workflow): add auto-advance pipeline (--auto flag + workflow.auto_advance config)
Add opt-in mechanism to chain discuss → plan → execute automatically
via Task() subagents, eliminating manual /clear + paste overhead.

- Add `--auto` flag to discuss-phase and plan-phase commands
- Add `workflow.auto_advance` config toggle (default: false)
- Add auto_advance step to discuss-phase workflow (spawns plan-phase)
- Add step 14 to plan-phase workflow (spawns execute-phase)
- Add auto_advance toggle to /gsd:settings

Chain stops gracefully on INCONCLUSIVE, CHECKPOINT, or verification
failures. No work lost — artifacts persist at each step.

Closes #541

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-15 09:54:05 -06:00
Lex Christopherson
4fb04287d0 fix(verifier): use ROADMAP Success Criteria instead of deriving truths from Goal (#538)
The verifier was deriving verification truths from the vague one-line Goal
field, allowing partial implementations to pass. Now extracts Success Criteria
as a structured array from `roadmap get-phase` and uses them directly as truths,
with Goal derivation as fallback for older ROADMAPs without Success Criteria.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 09:53:13 -06:00
Lex Christopherson
a142002dfe fix(tools): update REQUIREMENTS.md traceability when phase completes
cmdPhaseComplete now updates REQUIREMENTS.md when a phase finishes:
- Checks off requirement checkboxes (- [ ] → - [x])
- Updates traceability table status (Pending → Complete)

Parses Requirements line from ROADMAP.md phase section to find
which REQ-IDs belong to the completing phase.

Fixes #539

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-15 09:51:37 -06:00
Lex Christopherson
dcdb31cdf5 fix(workflow): update STATE.md after discuss-phase completes (#556)
Add update_state step to record session info after context gathering,
matching the pattern used by execute-plan, add-todo, and other workflows.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-15 09:36:48 -06:00
Lex Christopherson
765476ea3f fix(workflow): enforce 12-char AskUserQuestion header limit (#559)
Fix hardcoded headers exceeding the 12-character validation limit and
add max-length guidance for dynamically generated headers.

Closes #559

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 09:22:07 -06:00
Lex Christopherson
2b9951b9c8 fix(agents): return 'inherit' instead of 'opus' for model resolution (#558)
Claude Code's "opus" alias maps to a specific model version (claude-opus-4-1).
Organizations that block older opus versions while allowing newer ones see
agents silently fall back to Sonnet. By returning "inherit" instead, agents
use whatever opus version the user has configured in their session.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-15 09:21:40 -06:00
Lex Christopherson
dcace2560d fix(workflow): close parent UAT and debug artifacts after gap-closure phase (#580)
Add `close_parent_artifacts` step to execute-phase workflow that resolves
parent UAT gaps and debug sessions when a decimal/polish phase completes.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 09:00:36 -06:00
Lex Christopherson
b9f9ee98d0 fix(init): fall back to ROADMAP.md when phase directory missing (#521)
`init phase-op` only checked disk for phase directories, failing on
phases with Plans: TBD since no directory exists yet. Now falls back
to parsing ROADMAP.md when findPhaseInternal returns null.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-15 08:40:26 -06:00
Lex Christopherson
9a7bb22ea7 fix(install): template hook paths for OpenCode/Gemini runtimes (#585)
Hooks had hardcoded `.claude` paths that broke OpenCode users. The
installer now templates `.js` hooks with runtime-specific config dirs,
same as it already does for `.md` files. Also added `./.claude/`
replacement for local install paths in workflows.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-15 08:40:04 -06:00
Lex Christopherson
7b140c2dd2 fix(roadmap): accept ## and ### phase headers, detect malformed ROADMAPs (#598, #599)
- Parser now accepts both `## Phase X:` and `### Phase X:` headers
- `roadmap get-phase` detects when phases exist in summary list but
  missing detail sections, returns `error: 'malformed_roadmap'`
- `roadmap analyze` returns `missing_phase_details` array
- Updated gsd-roadmapper instructions with explicit format requirements
- Added 2 tests for new functionality (77 total, all passing)

Closes #598, closes #599

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-15 08:38:54 -06:00
Lex Christopherson
d86385887a fix(docs): use {phase_num} instead of ambiguous {phase} for filenames (#601)
The verifier agent interpreted {phase} as the full directory slug
(e.g., 01-foundation-target-system) instead of just the padded phase
number (01), producing wrong filenames like
01-foundation-target-system-VERIFICATION.md.

Changed all {phase}-*.md references to {phase_num}-*.md to match the
convention used in gsd-tools.js (${padded}-VERIFICATION.md).

Files: VERIFICATION.md, RESEARCH.md, CONTEXT.md, UAT.md patterns.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-15 07:45:33 -06:00
Lex Christopherson
9d815d31db Revert 12 PRs merged without authorization
Reverts:
- #413 fix(install): build hooks/dist on the fly for dev installs
- #396 refactor(statusline): display git branch in status line
- #543 Add in-progress state for todos
- #532 feat: add git_tag config option
- #171 Add OpenCode installer package
- #519 feat: Add Mistral Vibe CLI Support
- #389 docs: use @latest for uninstall commands
- #288 fix(install): auto-migrate renamed statusline.js reference
- #502 fix(#501): verify-work defers diagnosis/planning
- #497 fix: move resolved debug sessions to resolved/ folder
- #512 fix: create feature branch before first commit
- #545 fix: add Write tool to gsd-verifier

These were merged without owner approval.
2026-02-14 14:25:26 -06:00
Emre Erdoğan
6f98b4f70e Add in-progress state for todos instead of marking done immediately (#543)
feat: Add in-progress state for todos
2026-02-14 14:18:06 -06:00
Solvely-Colin
430a7e4f17 feat: add git_tag config option to disable tagging on milestone completion (#532)
feat: Add git_tag config option to disable tagging on milestone completion
2026-02-14 14:18:04 -06:00
Derek Pearson
25aeb443c9 fix(#501): verify-work defers diagnosis/planning to plan-phase --gaps (#502)
Bug fix: Verify-work defers diagnosis/planning to plan-phase --gaps
2026-02-14 14:17:12 -06:00
pds
c3c9d523c3 fix: create feature branch before first commit in discuss/plan workflows (#512)
Bug fix: Create feature branch before first commit in discuss/plan workflows
2026-02-14 14:17:04 -06:00
Lex Christopherson
60ccba9446 feat: add Brave Search integration for researchers
- Add `websearch` command to gsd-tools.js for Brave API
- Detect BRAVE_API_KEY env var or ~/.gsd/brave_api_key file
- Persist brave_search setting to config.json on project init
- Update researcher agents to check config before calling

Graceful degradation: if brave_search is false, agents use
built-in WebSearch without wasted Bash calls.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-08 10:36:26 -06:00
Lex Christopherson
7f4908302e feat(new-project): add --auto flag for unattended initialization
Runs research → requirements → roadmap automatically after config
questions. Requires idea document via @ reference. Auto-includes all
table stakes features plus features mentioned in provided document.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-08 10:00:13 -06:00
Lex Christopherson
ced41d771b fix(#453): replace HEREDOC with literal newlines for Windows compatibility
- git tag command in complete-milestone.md used HEREDOC syntax
- HEREDOC fails silently on Windows Git Bash
- Literal newlines in quoted strings work cross-platform

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-08 09:48:18 -06:00
Lex Christopherson
767bef64ef fix(#484): persist research decision from new-milestone to config
When user selects "Skip research" during /gsd:new-milestone, the choice
was not saved to .planning/config.json. Later, /gsd:plan-phase would
read the default (research: true) and spawn researchers anyway.

- Add `config-set` command to gsd-tools.js for setting nested config values
- Update new-milestone workflow to persist research choice after user decides

Closes #484

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-08 09:47:15 -06:00
TÂCHES
6a2d1f1bfb feat(gsd-tools): frontmatter CRUD, verification suite, template fill, state progression (#485)
* feat(gsd-tools): add frontmatter CRUD, verification suite, template fill, and state progression

Four new command groups that delegate deterministic operations from AI agents to code:

- frontmatter get/set/merge/validate: Safe YAML frontmatter manipulation with schema validation
- verify plan-structure/phase-completeness/references/commits/artifacts/key-links: Structural checks agents previously burned context on
- template fill summary/plan/verification: Pre-filled document skeletons so agents only fill creative content
- state advance-plan/record-metric/update-progress/add-decision/add-blocker/resolve-blocker/record-session: Automate arithmetic and formatting in STATE.md

Adds reconstructFrontmatter() + spliceFrontmatter() helpers for safe frontmatter roundtripping,
and parseMustHavesBlock() for 3-level YAML parsing of must_haves structures.

20 new functions, ~1037 new lines.

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

* feat: wire gsd-tools commands into agents and workflows

- gsd-verifier: use `verify artifacts` and `verify key-links` instead of
  manual grep patterns for stub detection and wiring verification
- gsd-executor: use `state advance-plan`, `state update-progress`,
  `state record-metric`, `state add-decision`, `state record-session`
  instead of manual STATE.md manipulation
- gsd-plan-checker: use `verify plan-structure` and `frontmatter get`
  for structural validation and must_haves extraction
- gsd-planner: add validation step using `frontmatter validate` and
  `verify plan-structure` after writing PLAN.md
- execute-plan.md: use gsd-tools state commands for position/progress updates
- verify-phase.md: use gsd-tools for must_haves extraction and artifact/link verification

This makes the gsd-tools commands from PR #485 actually used by the system.

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 09:28:50 -06:00
min-k-khant
4072fd2baf fix: add workaround for Claude Code classifyHandoffIfNeeded bug (#480)
Claude Code v2.1.27+ has a bug where all Task tool agents report
"failed" due to `classifyHandoffIfNeeded is not defined` — a function
called but never defined in the cli.js bundle. The error fires AFTER
all agent work completes, so actual work is always done.

This adds spot-check fallback logic to execute-phase, execute-plan,
and quick workflows: when an agent reports this specific failure,
verify artifacts on disk (SUMMARY.md exists, git commits present).
If spot-checks pass, treat as successful.

Tracked upstream: anthropics/claude-code#24181

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 08:52:41 -06:00
min-k-khant
ca03a061a8 feat: preserve local patches across GSD updates (#481)
When users modify GSD workflow files (e.g., adding bug workarounds),
those changes get wiped on every /gsd:update. This adds automatic
backup and guided restore:

**install.js changes:**
- Writes `gsd-file-manifest.json` after install with SHA256 hashes
  of every installed GSD file
- Before wiping on update, compares current files against manifest
  to detect user modifications
- Backs up modified files to `gsd-local-patches/` directory
- Reports backed-up patches after install completes

**New command: /gsd:reapply-patches**
- LLM-guided merge of backed-up modifications into new version
- Handles cases where upstream also changed the same file
- Reports merge status per file (merged/skipped/conflict)

**update.md changes:**
- Warning text now mentions automatic backup instead of manual
- New step after install to check for and report backed-up patches

Flow: modify GSD file → /gsd:update → modifications auto-backed up →
new version installed → /gsd:reapply-patches → modifications merged back

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 08:35:42 -06:00
Lex Christopherson
42495068ca fix(execute-phase): explicitly specify subagent_type="gsd-executor"
The workflow showed the prompt content but didn't wrap it in Task()
with the required subagent_type parameter. This caused the orchestrator
to spawn generic task agents instead of the specialized gsd-executor.

Now shows the full Task() call with subagent_type and model parameters.

Fixes #455

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-08 08:22:12 -06:00
TÂCHES
a4d2a8fbc4 Merge pull request #483 from glittercowboy/claude/expand-gsd-automation-XVhXH
Add phase lifecycle and roadmap management commands
2026-02-08 08:15:27 -06:00
TÂCHES
01c9115f3a fix(#478): respect commit_docs=false in all .planning commit paths (#482)
* fix(execute-phase): pass file paths to subagents instead of content

The --include flag added in fa81821 caused orchestrator context bloat
by reading STATE, config, and plan files into the orchestrator's context,
then embedding all content in Task() prompts.

With multiple plans, this consumed 50-60%+ of context before execution.

Fix: Pass file paths only. Subagents read files themselves in their
fresh 200k context. Orchestrator stays lean (~10-15% as intended).

Fixes #479

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

* fix: respect commit_docs=false in execute-plan and debugger workflows

Two code paths bypassed the commit_docs configuration check, causing
.planning files to be intermittently committed when commit_docs=false:

1. execute-plan.md: update_codebase_map step ran `git add .planning/codebase/*.md`
   unconditionally — now gated behind commit_docs check
2. gsd-debugger.md: used `git add -A` which stages .planning/ files — replaced
   with explicit individual file staging and proper commit_docs conditional

Fixes #478

https://claude.ai/code/session_013yS1F2VR3Jn2pdwqr5NuDo

* fix: route all .planning commits through gsd-tools.js CLI

Instead of wrapping direct git commands in markdown conditionals,
both bypass paths now use gsd-tools.js commit which has the
commit_docs check built in:

1. execute-plan.md: uses `gsd-tools.js commit --amend` for codebase
   map updates (new --amend flag added to CLI)
2. gsd-debugger.md: code commit uses direct git (no .planning files),
   planning docs commit uses gsd-tools.js commit

Also added --amend support to gsd-tools.js commit command so the
execute-plan codebase map step can amend the previous metadata commit.

Fixes #478

https://claude.ai/code/session_013yS1F2VR3Jn2pdwqr5NuDo

* docs: update reference docs to use gsd-tools.js CLI for all .planning commits

Reference documentation showed direct git add/commit patterns for
.planning files, which agents copy-paste and bypass the commit_docs
check. Updated all three reference files to show gsd-tools.js commit
as the canonical pattern:

- git-planning-commit.md: replaced manual bash conditionals with CLI
- git-integration.md: replaced direct git add/commit in initialization,
  plan-completion, and handoff examples
- planning-config.md: replaced conditional git example with CLI call

https://claude.ai/code/session_013yS1F2VR3Jn2pdwqr5NuDo

---------

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-08 08:09:03 -06:00
Claude
36f5bb3d5f feat: delegate deterministic workflow operations to gsd-tools CLI
Add 10 new CLI commands that replace manual AI orchestration of
mechanical, deterministic operations — saving tokens and reducing
errors on the most complex GSD workflows.

New commands:
- phase add <desc> — append phase to roadmap + create directory
- phase insert <after> <desc> — insert decimal phase
- phase remove <N> [--force] — remove phase with full renumbering
- phase complete <N> — mark done, update state + roadmap, detect milestone end
- roadmap analyze — unified roadmap parser with disk status
- milestone complete <ver> [--name] — archive roadmap/requirements/audit
- validate consistency — check phase numbering and disk/roadmap sync
- progress [json|table|bar] — render progress in various formats
- todo complete <file> — move todo from pending to completed
- scaffold [context|uat|verification|phase-dir] — template generation

Updated workflows to use new CLI commands:
- remove-phase.md: 13 manual steps → 1 CLI call + confirm + commit
- add-phase.md: 6 manual steps → 1 CLI call + state update
- insert-phase.md: 7 manual steps → 1 CLI call + state update
- transition.md: roadmap/state updates delegated to phase complete
- progress.md: roadmap parsing delegated to roadmap analyze
- complete-milestone.md: archival delegated to milestone complete

75 tests passing (33 new).

https://claude.ai/code/session_01UhMGMrNGGn2bfeAi7MBphs
2026-02-08 13:53:09 +00:00
Lex Christopherson
fa81821df4 feat: add --include flag to init commands to eliminate redundant file reads
Workflows were calling init commands to get parsed JSON metadata, then
immediately reading the same files again with cat to pass raw content
to agents. This wastes context tokens.

Changes:
- Add --include flag to init execute-phase, plan-phase, and progress
- Support includes: state, config, roadmap, requirements, context,
  research, verification, uat, project
- Update plan-phase.md to use --include (removes 6 cat calls)
- Update execute-phase.md to use --include (removes 2 cat calls)
- Update execute-plan.md to use --include (removes 2 cat calls)
- Update progress.md to use --include (removes 4 cat calls)
- Add 7 tests for --include functionality

Token savings: ~5,000-10,000 tokens per plan-phase execution,
~1,500-3,000 per other workflow executions.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-08 01:43:22 -06:00
TÂCHES
6c537373c6 feat: add context-optimizing parsing commands to gsd-tools (#473)
Add three new commands that extract structured data from GSD files,
reducing context usage by returning only parsed fields instead of
raw file content:

- phase-plan-index: Plans grouped by wave with metadata (id, wave,
  autonomous, objective, files_modified, task_count, has_summary)
- state-snapshot: Parsed STATE.md fields (current phase, decisions,
  blockers, session info)
- summary-extract: Frontmatter extraction with optional --fields filter

Update workflows to use new commands:
- execute-phase: Use phase-plan-index instead of ls + grep loop
- plan-phase: Use state-snapshot for decisions
- research-phase: Use state-snapshot for decisions
- complete-milestone: Use summary-extract for one-liners

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-08 01:08:19 -06:00
TÂCHES
1b317dec45 feat: extract repetitive bash patterns into gsd-tools commands (#472)
* feat(gsd-tools): add history-digest, atomic state operations, and summary variants

Adds new performance-focused commands to gsd-tools and introduces specialized
summary templates to reduce context tax:

- history-digest: Compiles phase summaries into structured JSON for JIT loading
- state get/patch: Enables atomic STATE.md operations instead of full rewrites
- template select: Automatically chooses optimal summary template based on plan complexity
- Adds minimal, standard, and complex summary templates

Part of the "Hydra" architecture for GSD context optimization.

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

* chore: add project config

* docs: define v1 requirements

* docs: create roadmap (6 phases)

* feat(history-digest): fix nested YAML parsing and add tests

- Fix extractFrontmatter() to handle nested YAML structures like
  dependency-graph.provides, tech-stack.added using stack-based parsing
- Add test infrastructure with Node test runner (npm test)
- Update gsd-planner to use digest fields directly instead of reading
  full SUMMARY.md files
- Add 6 schema validation tests covering nested fields, merging,
  malformed files, and backward compatibility

Closes: HIST-01, HIST-02, HIST-03, HIST-04

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

* fix(planner): use digest for selection, full SUMMARY for understanding

The previous commit went too far by eliminating full SUMMARY reads.
The digest is an index for smart selection, not a replacement for
understanding what actually happened.

Two-step approach:
1. Digest to score/select relevant phases (2-4 typically)
2. Full SUMMARY read for selected phases (implementation details)
3. Digest-level context retained for unselected phases

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

* feat(gsd-tools): add phases, roadmap, and phase commands

TDD implementation of three new commands to replace repetitive bash:

phases list [--type plans|summaries] [--phase N]
- Lists phase directories sorted numerically (handles decimals)
- Filter by file type or specific phase
- Replaces: ls -d .planning/phases/*/ | sort -V (22 occurrences)

roadmap get-phase <N>
- Extracts phase section from ROADMAP.md
- Returns name, goal, full section content
- Replaces: grep -A20 "Phase X:" ROADMAP.md (19 occurrences)

phase next-decimal <N>
- Calculates next decimal phase (06 → 06.1, 06.2 → 06.3)
- Handles gaps, normalizes input
- Replaces: complex bash math in insert-phase (3 occurrences)

16 new tests, all passing.

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

* refactor: migrate agents/workflows to use gsd-tools commands

Replace inline bash patterns with centralized gsd-tools commands:

phases list:
- audit-milestone.md: ls -d .planning/phases/*/ | sort -V
- plan-milestone-gaps.md: ls -d ... | sort -V | tail -1

roadmap get-phase:
- plan-phase.md: grep -A5 "Phase X:" ROADMAP.md (2 occurrences)
- research-phase.md: grep patterns (2 occurrences)
- verify-phase.md: grep -A5 pattern
- gsd-verifier.md: grep -A5 pattern
- gsd-plan-checker.md: grep -A10 pattern
- commands/gsd/research-phase.md: grep patterns (2 occurrences)

phase next-decimal:
- insert-phase.md: complex bash decimal calculation
- decimal-phase-calculation.md: reference doc rewritten

phase-argument-parsing.md: updated to reference gsd-tools

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

---------

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-08 00:44:49 -06:00
TÂCHES
246d542c65 feat(gsd-tools): add compound init commands and update workflows (#468)
* feat(gsd-tools): add compound init commands for workflow setup

Adds 8 compound commands that return all context a workflow needs in
one JSON blob, replacing 5-10 atomic calls per workflow:

- init execute-phase: models, config, phase info, plan inventory
- init plan-phase: models, workflow flags, existing artifacts
- init new-project: models, brownfield detection, state checks
- init new-milestone: models, milestone info
- init quick: models, next task number, timestamps
- init resume: file existence, interrupted agent
- init verify-work: models, phase info
- init phase-op: generic phase context

Updated 8 workflows to use compound commands:
- execute-phase, plan-phase, new-project, quick
- resume-project, verify-work, discuss-phase

Token savings: ~200 lines of bash setup replaced with single init calls.

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

* feat(gsd-tools): add 4 new init commands and update files to use compound commands

Add new compound init commands:
- init todos - context for todo workflows
- init milestone-op - context for milestone operations
- init map-codebase - context for codebase mapping
- init progress - context for progress workflow

Update 24 files to use compound init commands instead of atomic calls:
- 4 phase operation workflows (add-phase, insert-phase, remove-phase, verify-phase)
- 5 todo/milestone workflows (add-todo, check-todos, audit-milestone, complete-milestone, new-milestone)
- 6 misc workflows (execute-plan, map-codebase, pause-work, progress, set-profile, settings)
- 6 agent files (gsd-executor, gsd-planner, gsd-phase-researcher, gsd-plan-checker, gsd-debugger, gsd-research-synthesizer)
- 2 command files (debug, research-phase)
- 1 reference file (planning-config)

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

* fix(gsd-tools): add init to help output

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

* fix(verify-phase): correct expected init fields

The workflow was referencing plans/summaries from init phase-op,
but those fields come from ls command. Updated to reference
has_plans and plan_count which are actually in phase-op output.

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

---------

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-07 22:09:07 -06:00
Lex Christopherson
56b487a5b0 chore: tidy up old files 2026-02-07 11:39:21 -06:00
TÂCHES
d44c7dcc9b refactor: update commands, workflows, agents for gsd-tools integration
Commands (15): audit-milestone, complete-milestone, debug, execute-phase,
help, insert-phase, new-milestone, new-project, plan-milestone-gaps,
plan-phase, progress, quick, remove-phase, research-phase, verify-work

Workflows (22): execute-plan (69% reduction), verify-phase (55%), others
Agents (14): All updated for new workflow structure

Total token savings: ~22k chars (75.6% in affected sections)

Ported from: get-shit-done-v2@d1fb2d5, 7f79a9b
2026-02-07 11:25:35 -06:00
TÂCHES
d2623e0114 refactor: extract settings, add-todo, pause-work, set-profile to thin orchestrators
Completes Phase 1 thin orchestrator extraction.
Token savings: ~8,500 chars across 4 commands

Ported from: get-shit-done-v2@95b6214
2026-02-07 11:08:35 -06:00
TÂCHES
8f26bfa478 refactor: extract check-todos, add-phase, update to thin orchestrators
Pattern: Command → workflow → gsd-tools
Token savings: ~150 chars per command

Ported from: get-shit-done-v2@213392b
2026-02-07 11:08:27 -06:00
TÂCHES
01ae939c01 feat(gsd-tools): add CLI utility for command extraction
Centralizes repetitive bash patterns across 50+ GSD files.

Functions: state load/update, resolve-model, find-phase, commit,
verify-summary, generate-slug, current-timestamp, list-todos,
verify-path-exists, config-ensure-section

Enables thin orchestrator pattern. Replaces 200-400 chars per usage.

Ported from: get-shit-done-v2@ce5400f
2026-02-07 11:08:21 -06:00
Lex Christopherson
cc3c6aca56 revert: remove GSD Memory system (not ready for release)
Reverts af7a057 "feat: add GSD Memory cross-project knowledge system"

The memory system needs more work before shipping:
- Workflow integration is incomplete (writes but doesn't query)
- UX requires too much manual intervention
- Setup friction exceeds value for most users

Preserved on branch `memory-wip` for continued development.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-06 09:48:09 -06:00
Lex Christopherson
af7a057294 feat: add GSD Memory cross-project knowledge system
Implements MCP server for semantic search across GSD projects:

MCP Tools:
- gsd_memory_search: Search across all registered projects
- gsd_memory_decisions: Find decisions from SUMMARY/PROJECT.md
- gsd_memory_patterns: Find patterns from SUMMARY.md
- gsd_memory_pitfalls: Find pitfalls from RESEARCH.md
- gsd_memory_stack: Find tech stack entries
- gsd_memory_register: Register project with memory
- gsd_memory_index: Trigger indexing/update
- gsd_memory_status: Show system status

Architecture:
- QMD wrapper with grep fallback when QMD unavailable
- YAML frontmatter extractors for GSD document types
- Project registry at ~/.gsd/projects.json
- Auto-install via bin/install.js for Claude Code

Workflow integrations:
- new-project: Registers project with memory
- plan-phase: Indexes after planning
- execute-phase: Indexes after execution
- complete-milestone: Indexes milestone completion
- Researcher agents query memory before Context7

Tests: 117 passing (66 unit + 51 integration)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-05 13:13:22 -06:00
Lex Christopherson
f53011c9e2 fix(#429): prevent API keys from being committed via map-codebase
Defense-in-depth approach:

Layer 1 - Prevention:
- Add <forbidden_files> section to gsd-codebase-mapper agent
- Explicitly prohibit reading .env, credentials, keys, secrets
- Agent can note file existence but never quote contents

Layer 2 - Detection:
- Add scan_for_secrets step before commit in map-codebase workflow
- Regex patterns catch: sk-*, ghp_*, AKIA*, xox*-*, JWTs, private keys
- Halts with alert if secrets detected, requires user confirmation

Layer 3 - Documentation:
- Add Security section to README
- Document Claude Code deny rules for sensitive files
- Recommend defense-in-depth approach

Closes #429

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-05 13:13:22 -06:00
David Sienkowski
f380275ed8 fix(executor): add completion verification to prevent hallucinated success (#315)
Executor self-check after SUMMARY.md creation verifies key-files exist
on disk and commit hashes exist in git log. Orchestrator spot-checks
SUMMARY claims before trusting and proceeding to next wave. Segmented
execution (execute-plan.md) gets the same self-check inline.
2026-02-04 17:58:27 -05:00
TÂCHES
ecbc692bc9 fix(#326): enforce context fidelity in planning pipeline (#391)
* prompt(001): map dependencies for new-project command

* fix(#326): enforce context fidelity in planning pipeline

Root cause: User decisions from CONTEXT.md were available but not
enforced throughout the RESEARCH → PLAN → VERIFY chain.

Changes:
- gsd-planner: Add <context_fidelity> section requiring agents to
  parse and honor user decisions BEFORE creating tasks. Includes
  self-check checklist and conflict handling guidance.

- gsd-phase-researcher: Add User Constraints as FIRST section in
  downstream consumer table. Require researcher to copy CONTEXT.md
  decisions verbatim to RESEARCH.md so planner sees them even if
  it only skims.

- research.md template: Add <user_constraints> section that must
  be populated first. Locked decisions, Claude's discretion, and
  deferred ideas copied verbatim from CONTEXT.md.

The command file (commands/gsd/plan-phase.md) already passes
CONTEXT_CONTENT to all agents. These changes add the enforcement
layer in the agent instructions.

Fixes #326, #216, #206

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

---------

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-03 09:17:17 -06:00
Solvely-Colin
4267c6cf67 fix: respect parallelization config setting (#379)
Fixes #376
2026-02-03 07:57:23 -06:00
Szymon Gwóźdź
2347fca35e fix: clarify ASCII box-drawing vs text content with diacritics (#289)
- Add Character Preservation section to GSD-STYLE.md
  - Clarify 'no special chars' applies to FILENAME only in add-todo
  - Use 'box-drawing' terminology for tree structure visualization

Co-authored-by: FlightCore Dev <dev@flightcore.pl>
2026-02-02 06:49:33 -06:00
Lex Christopherson
5ee22e6256 feat(git): add squash merge option for branching strategies
- Add "Squash merge" as recommended option at complete-milestone
- Keep "Merge with history" (--no-ff) as alternative
- Document merge options in planning-config reference

Improves on #298 based on community feedback from @oojacoboo.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-30 17:24:32 -06:00
Dave
197800e2d1 feat(git): add unified branching strategy option
Add configurable git branching with three strategies:
- none (default): commit to current branch
- phase: create branch per phase (gsd/phase-{N}-{slug})
- milestone: create branch per milestone (gsd/{version}-{slug})

Changes:
- planning-config.md: add git.branching_strategy and templates
- execute-phase.md: handle branch creation based on strategy
- settings.md: add branching strategy to settings UI
- complete-milestone.md: handle branch merging at milestone end
2026-01-24 14:32:53 -05:00
Lex Christopherson
f059a6cfb3 fix: use *-CONTEXT.md glob for filename variants
Standardize on *-CONTEXT.md glob pattern to match files like
03-CONTEXT.md across all workflows.

Files updated:
- commands/gsd/plan-phase.md
- commands/gsd/research-phase.md
- get-shit-done/workflows/discuss-phase.md
- get-shit-done/workflows/resume-project.md

Closes #219

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-22 20:32:10 -06:00
Lex Christopherson
7ba5dbd412 refactor: condense verbose explanations in templates and workflows
Trim redundant documentation while preserving actionable instructions.
-173 lines of prose that restated what templates already show.

Kept: size constraints, mandatory fields, security guidance.
Removed: "when to create/read/update" lifecycle prose, section
descriptions that duplicate template structure.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-22 11:11:16 -06:00
TÂCHES
67b064d534 Reduce manual verification in checkpoint system (#220)
* docs: enforce automation-first checkpoint verification

Checkpoints should never ask users to run CLI commands that Claude Code
can execute. This update reinforces the automation-first principle:

Key changes:
- Add golden rules: Claude runs CLI, users only visit URLs
- Add dev server automation patterns (start before checkpoint)
- Add environment variable CLI patterns (Convex, Vercel, etc.)
- Add anti-patterns: asking user to run npm, add dashboard env vars
- Update all examples to show Claude starting servers
- Add comprehensive "Never Ask Users To" and "Users Only Do" lists
- Update gsd-executor with pre-checkpoint automation requirements

The core principle: if Claude CAN automate it, Claude MUST automate it.
Users only do what requires human judgment (visual verification, UX).

* refactor: DRY checkpoint automation with server lifecycle and error handling

Changes:
- checkpoints.md is now single source of truth for automation-first patterns
- Added server lifecycle protocol (start, port conflicts, cleanup)
- Added CLI installation handling (auto-install matrix)
- Added pre-checkpoint failure handling (fix before checkpoint)
- Removed ~93 lines of duplication from verification-patterns.md
- Replaced inline examples in phase-prompt.md with references
- Slimmed gsd-executor.md checkpoint section to reference checkpoints.md

Net effect: -23 lines while adding 3 new capabilities (server lifecycle,
CLI install, error handling). Single place to update automation patterns.

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

---------

Co-authored-by: Claude <noreply@anthropic.com>
2026-01-21 10:52:30 -06:00