Commit Graph

220 Commits

Author SHA1 Message Date
benzntech
b621d556f0 feat: add Exa and Firecrawl MCP support for research agents
Integrate Exa (semantic search) and Firecrawl (deep web scraping) as
MCP-based research tools, following the existing Brave Search pattern.

- Add tool declarations to all 3 researcher agents
- Add tool strategy sections with usage guidance and priority
- Add config detection for FIRECRAWL_API_KEY and EXA_API_KEY env vars
- Add firecrawl/exa_search config keys to core defaults and init output
- Update source priority hierarchy across all researchers
2026-03-20 14:53:46 +05:30
jecanore
a6dd641599 feat: add advisor mode with research-backed discussion
Adds an optional advisor mode to discuss-phase that provides research-backed
comparison tables before asking users to make decisions. Activates when
USER-PROFILE.md exists, degrades gracefully otherwise.

New agent: gsd-advisor-researcher -- spawned in parallel per gray area,
returns structured 5-column comparison tables calibrated to the user vendor
philosophy preference (full_maturity/standard/minimal_decisive).

Workflow changes (discuss-phase.md):
- Advisor mode detection in analyze_phase step
- New advisor_research step spawns parallel research agents
- Table-first discussion flow in discuss_areas when advisor mode active
- Standard conversational flow unchanged when advisor mode inactive
2026-03-19 20:08:30 -05:00
Tom Boucher
d213bdcaa2 Merge pull request #1191 from eli-herman/feat/runtime-state-inventory 2026-03-19 17:28:33 -04:00
Srinivas Koduri
99b239dbaf fix(executor): record per-repo commit hashes in multi-repo mode
The hash recording step used `git rev-parse --short HEAD` which fails
when the project root is not a git repo (multi-repo workspaces). Update
the protocol to extract hashes from commit-to-subrepo JSON output and
record all sub-repo hashes in the SUMMARY.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-19 12:18:20 -07:00
Srinivas Koduri
21081dc821 feat: multi-repo workspace support with auto-detection and project root resolution
Add support for workspaces with multiple independent git repositories.
When configured, GSD routes commits to the correct sub-repo and ensures
.planning/ stays at the project root.

Core features:
- detectSubRepos(): scans child directories for .git to discover repos
- findProjectRoot(): walks up from CWD to find the project root that
  owns .planning/, preventing orphaned .planning/ in sub-repos
- loadConfig auto-syncs sub_repos when repos are added or removed
- Migrates legacy "multiRepo: true" to sub_repos array automatically
- All init commands include project_root in output
- cmdCommitToSubrepo: groups files by sub-repo prefix, commits independently

Zero impact on single-repo workflows — sub_repos defaults to empty array.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-19 12:18:20 -07:00
Eli Herman
3e61c7da94 feat(researcher): add Runtime State Inventory for rename/refactor phases
Adds a Runtime State Inventory step that fires when a phase involves
renaming, rebranding, refactoring, or migrating strings across a codebase.

The core problem: grep audits find files. They do NOT find runtime state —
ChromaDB collection names, Mem0 user_ids, n8n workflows in SQLite, Windows
Task Scheduler descriptions, pm2 process names, SOPS key names, pip
egg-info directories, etc. These survive a complete file-level rename and
will break the system silently after the code is "done".

Three additions:
1. Pre-Submission Checklist — adds a reminder item so the checklist gate
   catches skipped inventories before RESEARCH.md is committed
2. output_format — adds Runtime State Inventory table to the RESEARCH.md
   template so the section appears in every rename/refactor phase's output
3. execution_flow Step 2.5 — structured investigation protocol with the
   five categories (stored data, live service config, OS-registered state,
   secrets/env vars, build artifacts), explicit examples for each, and the
   canonical question that frames the whole exercise
2026-03-18 14:49:27 -05:00
jecanore
a80a89b262 feat: add execution hardening (pre-wave check, cross-plan contracts, export spot-check) (#1082)
Three additive quality improvements to the execution pipeline:

1. Pre-wave dependency check (execute-phase): Before spawning wave N+1,
   verify key-links from prior wave artifacts. Catches cross-plan wiring
   gaps before they cascade into downstream failures.

2. Cross-Plan Data Contracts dimension (plan-checker): New Dimension 9
   checks that plans sharing data pipelines have compatible transformations.
   Flags when one plan strips data another plan needs in original form.

3. Export-level spot check (verify-phase): After Level 3 wiring passes,
   spot-check individual exports for actual usage. Catches dead stores
   that exist in wired files but are never called.
2026-03-16 11:39:34 -06:00
jecanore
4cf6c04a3e feat: add developer profiling pipeline (#1084)
Analyze Claude Code session history to build behavioral profiles across
8 dimensions (communication, decisions, debugging, UX, vendor choices,
frustrations, learning style, explanation depth). Profiles generate
USER-PROFILE.md, dev-preferences command, and CLAUDE.md profile section.

New modules:
- profile-pipeline.cjs: session scanning, message extraction, sampling
- profile-output.cjs: profile rendering, questionnaire, artifact generation

New files:
- agents/gsd-user-profiler.md: profiler agent (8-dimension scoring)
- commands/gsd/profile-user.md: user-facing command
- workflows/profile-user.md: orchestration workflow
- templates/: user-profile, dev-preferences, claude-md templates
- references/user-profiling.md: detection heuristics reference

8 new CLI commands: scan-sessions, extract-messages, profile-sample,
write-profile, profile-questionnaire, generate-dev-preferences,
generate-claude-profile, generate-claude-md

Co-authored-by: TÂCHES <afromanguy@me.com>
2026-03-16 09:46:00 -06:00
Tom Boucher
540913c09b fix(researcher): verify package versions against registry before recommending (#1077)
The researcher agent now verifies each recommended package version
using 'npm view [package] version' before writing the Standard Stack
section. This prevents recommending stale versions from training data.

Addresses patch 5 from #899
2026-03-16 08:53:55 -06:00
Tom Boucher
c7b933dcc6 fix(executor): add untracked files check after task commits (#1074)
After committing task changes, the executor now checks for untracked
files (git status --short | grep '^??') and handles them: commit if
intentional, add to .gitignore if generated/runtime output.

This prevents generated artifacts (build outputs, .env files, cache
files) from being silently left untracked in the working tree.

Changes:
- execute-plan.md: Add step 6 to task commit protocol
- gsd-executor.md: Add step 6 to task commit protocol

Fixes #957
2026-03-16 08:51:24 -06:00
Lex Christopherson
6b5704aa78 fix: remove invalid skills frontmatter from UI agents and update test counts
Strip unsupported `skills:` key from gsd-ui-auditor, gsd-ui-checker, and
gsd-ui-researcher agent frontmatter. Update Copilot install test expectations
to 36 skills / 15 agents.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-15 11:49:07 -06:00
Deepak Dev Panwar
789cac127d feat(debug): add persistent knowledge base for resolved sessions (#961)
When a debug session resolves, append a structured entry to
.planning/debug/knowledge-base.md capturing error patterns,
root cause, and fix approach.

At the start of each new investigation (Phase 0), the debugger
loads the knowledge base and checks for keyword overlap with
current symptoms. Matches surface as hypothesis candidates to
test first — reducing repeat investigation time for known patterns.

The knowledge base is append-only and project-scoped, so it
builds value over the lifetime of a codebase rather than
resetting each session.
2026-03-15 11:40:05 -06:00
Fana
9481fdf802 feat: add /gsd:ui-phase + /gsd:ui-review design contract and visual audit layer (closes #986)
Add pre-planning design contract generation and post-execution visual audit
for frontend phases. Closes the gap where execute-phase runs without a visual
contract, producing inconsistent spacing, color, and typography across components.

New agents: gsd-ui-researcher (UI-SPEC.md), gsd-ui-checker (6-dimension
validation), gsd-ui-auditor (6-pillar scored audit + registry re-vetting).
Third-party shadcn registry blocks are machine-vetted at contract time,
verification time, and audit time — three enforcement points, not a checkbox.

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-14 21:57:59 -06:00
Cross2pro
faa3f111c4 fix: correct escape characters in grep command
Fix escape characters in grep command for extracting code interfaces.
2026-03-14 21:57:56 -06:00
TÂCHES
1d3d1f3f5e fix: strip skills: from agent frontmatter for Gemini compatibility (#1045)
* fix: remove dangling skills: from agent frontmatter and strip in Gemini converter (closes #1023, closes #953, closes #930)

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

* fix: invert skills frontmatter test to assert absence (fixes CI)

The PR deliberately removed skills: from agent frontmatter (breaks
Gemini CLI), but the test still asserted its presence. Inverted the
assertion to ensure skills: stays removed.

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-03-14 21:25:02 -06:00
Lex Christopherson
517ee0dc8f fix: resolve @file: protocol in all INIT consumers for Windows compatibility (#841)
When gsd-tools init output exceeds 50KB, core.cjs writes to a temp file
and outputs @file:<path>. No workflow handled this prefix, causing agents
to hallucinate /tmp paths that fail on Windows (C:\tmp doesn't exist).

Add @file: resolution line after every INIT=$(node ...) call across all
32 workflow, agent, and reference files.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-03 12:19:12 -06:00
Lex Christopherson
73efecca66 fix: add missing skills frontmatter to gsd-nyquist-auditor
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-03 11:34:21 -06:00
Fana
ef032bc8f1 feat: harden Nyquist defaults, add retroactive validation, compress prompts (#855)
* fix: change nyquist_validation default to true and harden absent-key skip conditions

new-project.md never wrote the key, so agents reading config directly
treated absent as falsy. Changed all agent skip conditions from "is false"
to "explicitly set to false; absent = enabled". Default changed from false
to true in core.cjs, config.cjs, and templates/config.json.

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

* fix: enforce VALIDATION.md creation with verification gate and Check 8e

Step 5.5 was narrative markdown that Claude skipped under context pressure.
Now MANDATORY with Write tool requirement and file-existence verification.
Step 7.5 gates planner spawn on VALIDATION.md presence. Check 8e blocks
Dimension 8 if file missing.

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

* feat: add W008/W009 health checks and addNyquistKey repair for Nyquist drift detection

W008 warns when workflow.nyquist_validation key is absent from config.json
(agents may skip validation). W009 warns when RESEARCH.md has Validation
Architecture section but no VALIDATION.md file exists. addNyquistKey repair
adds the missing key with default true value.

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

* feat: add /gsd:validate-phase command and gsd-nyquist-auditor agent

Retroactively applies Nyquist validation to already-executed phases.
Works mid-milestone and post-milestone. Detects existing test coverage,
maps gaps to phase requirements, writes missing tests, debugs failing
ones, and produces {phase}-VALIDATION.md from existing artifacts.

Handles three states: VALIDATION.md exists (audit + update), no
VALIDATION.md (reconstruct from PLAN.md + SUMMARY.md), phase not yet
executed (exit cleanly with guidance).

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

* feat: audit-milestone reports Nyquist compliance gaps across phases

Adds Nyquist coverage table to audit-milestone output when
workflow.nyquist_validation is true. Identifies phases missing
VALIDATION.md or with nyquist_compliant: false/partial.
Routes to /gsd:validate-phase for resolution. Updates USER-GUIDE
with retroactive validation documentation.

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

* refactor: compress Nyquist prompts to match GSD meta-prompt density conventions

Auditor agent: deleted philosophy section (35 lines), compressed execution
flow 60%, removed redundant constraints. Workflow: cut purpose bloat,
collapsed state narrative, compressed auditor spawn template. Command:
removed redundant process section. Plan-phase Steps 5.5/7.5: replaced
hedging language with directives. Audit-milestone Step 5.5: collapsed
sub-steps into inline instructions. Net: -376 lines.

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

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-03 11:19:44 -06:00
Lex Christopherson
c298a1a4dc refactor: rename depth setting to granularity (closes #879)
The "depth" setting with values quick/standard/comprehensive implied
investigation thoroughness, but it only controls phase count. Renamed to
"granularity" with values coarse/standard/fine to accurately reflect what
it controls: how finely scope is sliced into phases.

Includes backward-compatible migration in loadConfig and config-ensure
that auto-renames depth→granularity with value mapping in both
.planning/config.json and ~/.gsd/defaults.json.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-03 10:53:34 -06:00
Tibsfox
609f7f3ede fix(workflows): prevent auto_advance config from persisting across sessions
Introduce ephemeral `workflow._auto_chain_active` flag to separate chain
propagation from the user's persistent `workflow.auto_advance` preference.

Previously, `workflow.auto_advance` was set to true by --auto chains and
only cleared at milestone completion. If a chain was interrupted (context
limit, crash, user abort), the flag persisted in .planning/config.json
and caused all subsequent manual invocations to auto-advance unexpectedly.

The fix adds a "sync chain flag with intent" step to discuss-phase,
plan-phase, and execute-phase workflows: when --auto is NOT in arguments,
the ephemeral _auto_chain_active flag is cleared. The persistent
auto_advance setting (from /gsd:settings) is never touched, preserving
the user's deliberate preference.

Closes #857

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-03 08:01:54 -06:00
Tibsfox
dacd0beed3 fix(planner): compute wave numbers for gap closure plans
Gap closure plans hardcode wave: 1 and depends_on: [], bypassing the
standard wave assignment logic. When multiple gap closure plans have
dependencies between them, they all land in wave 1 and execute in
parallel — ignoring dependency ordering. Add an explicit wave
computation step using the same assign_waves algorithm as standard
planning.

Closes #856

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-03 08:01:54 -06:00
Tibsfox
641cdbdae7 fix(state): deduplicate extractField into shared helper with regex escaping
Two defensive hardening changes:

1. state.cjs: Replace two identical inline extractField closures
   (cmdStateSnapshot and buildStateFrontmatter) with a shared
   stateExtractField(content, fieldName) helper at module scope.
   The helper uses escapeRegex on fieldName before interpolation
   into RegExp constructors, preventing breakage if a field name
   ever contains regex metacharacters. Net removal of duplicated
   logic.

2. gsd-plan-checker.md: Bound the "relevant" definition in the
   exhaustive cross-check instruction. A requirement is "relevant"
   only if ROADMAP.md explicitly maps it to this phase or the phase
   goal directly implies it — prevents false blocker flags for
   requirements belonging to other phases.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-03 08:01:54 -06:00
Tibsfox
cbe372a434 feat(agents): add skills frontmatter and hooks examples to all agents
Add skills: field to all 11 agent frontmatter files with forward-compatible
GSD workflow skill references (silently ignored until skill files are created).

Add commented hooks: examples to 9 file-writing agents showing PostToolUse
hook syntax for project-specific linting/formatting. Read-only agents
(plan-checker, integration-checker) skip hooks as they cannot modify files.

Per Claude Code docs: subagents don't inherit skills or hooks from the
parent conversation — they must be explicitly listed in frontmatter.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-03 08:01:54 -06:00
Tibsfox
1a1acd5283 fix(agents): extend anti-heredoc instruction to all file-writing agents
Add 'never use heredoc' instruction to 6 agents that were missing it:
gsd-codebase-mapper, gsd-debugger, gsd-phase-researcher,
gsd-project-researcher, gsd-research-synthesizer, gsd-roadmapper.

All 9 file-writing agents now consistently prevent settings.local.json
corruption from heredoc permission entries (GSD #526).

Read-only agents (plan-checker, integration-checker) excluded as they
cannot write files.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-03 08:01:54 -06:00
Lex Christopherson
69b28eeca4 fix: use $HOME instead of ~ for gsd-tools.cjs paths to prevent subagent MODULE_NOT_FOUND (#786)
Claude Code subagents sometimes rewrite ~/. paths to relative paths,
causing MODULE_NOT_FOUND when CWD is the project directory. $HOME is a
shell variable resolved at runtime, immune to model path rewriting.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-27 13:11:19 -06:00
CyPack
aaea14efd6 feat(agents): add analysis paralysis guard, exhaustive cross-check, and task-level TDD (#736)
- gsd-executor: Add <analysis_paralysis_guard> block after deviation_rules.
  If executor makes 5+ consecutive Read/Grep/Glob calls without any
  Edit/Write/Bash action, it must stop and either write or report blocked.
  Prevents infinite analysis loops that stall execution.

- gsd-plan-checker: Add exhaustive cross-check in Step 4 requirement coverage.
  Checker now also reads PROJECT.md requirements (not just phase goal) to
  verify no relevant requirement is silently dropped. Unmapped requirements
  become automatic blockers listed explicitly in issues.

- gsd-planner: Add task-level TDD guidance alongside existing TDD Detection.
  For code-producing tasks in standard plans, tdd="true" + <behavior> block
  makes test expectations explicit before implementation. Complements the
  existing dedicated TDD plan approach — both can coexist.

Co-authored-by: CyPack <GITHUB_EMAIL_ADRESIN>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-27 12:59:21 -06:00
Stephen Miller
eb1388c29d fix: support both .claude/skills/ and .agents/skills/ for skill discovery (#759)
* fix: use `.claude/skills/` instead of `.agents/skills/` in agent and workflow skill references

Claude Code resolves project skills from `.claude/skills/` (project-level)
and `~/.claude/skills/` (user-level). The `.agents/skills/` path is the
universal/IDE-agnostic convention that Claude Code does not resolve, causing
project skills to be silently ignored by all affected agents and workflows.

Fixes #758

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

* fix: support both `.claude/skills/` and `.agents/skills/` for cross-IDE compatibility

Instead of replacing `.agents/skills/` with `.claude/skills/`, reference both
paths so GSD works with Claude Code (`.claude/skills/`) and other IDE agents
like OpenCode (`.agents/skills/`).

Addresses review feedback from begna112 on #758.

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

---------

Co-authored-by: Stephen Miller <Stephen@betterbox.pw>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-27 12:59:07 -06:00
Lex Christopherson
3fddd62d50 feat: planning improvements — PRD express path, interface-first planning, living retrospective (#644)
Cherry-pick from @smledbetter with conflict resolution and project-specific reference removed.

Co-Authored-By: Stevo <smledbetter@users.noreply.github.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 14:00:42 -06:00
Lex Christopherson
2fc9b1d6ae feat(gsd-verifier): add standard project_context block
The verifier was the only agent missing the <project_context> section
that executor, planner, researcher, and plan-checker all have. This
aligns it with the existing pattern so project skills and CLAUDE.md
instructions are applied during verification and anti-pattern scanning.

Closes discussion from PR #723.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 13:43:34 -06:00
Fana
8b90235dea refactor: compress Nyquist validation layer to align with GSD meta-prompt conventions (#699)
Reduces token overhead of Dimension 8 and related agent additions by ~37%
with no behavioral change. Removes theory explanation, dead XML tags
(<manual>, <sampling_rate>), aspirational execution tracking, and
documentation-density prose from runtime agent bodies.

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 09:57:47 -06:00
Lex Christopherson
b1a7776a7d Merge branch 'main' into codex/debug-human-verify-gate-630
Resolve CHANGELOG.md conflict — keep both PR entry and v1.20.6 release notes.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 09:28:03 -06:00
Bantuson
e0f9c738c9 feat: add Nyquist validation layer to plan-phase pipeline
Adds automated feedback architecture research to gsd-phase-researcher,
enforces it as Dimension 8 in gsd-plan-checker, and introduces
{phase}-VALIDATION.md as the per-phase validation contract.

Ensures every phase plan includes automated verify commands before
execution begins. Opt-out via workflow.nyquist_validation: false.

Closes #122 (partial), related #117

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 13:46:39 +02:00
Lex Christopherson
3dcd3f0609 refactor: complete context-proxy orchestration flow 2026-02-19 12:40:45 -06:00
Lex Christopherson
8fd7d0b635 fix(#671): add project CLAUDE.md discovery to subagent spawn points
Subagents now read project-level CLAUDE.md if it exists:
- Workflows: execute-phase, plan-phase, quick
- Agents: gsd-executor, gsd-planner, gsd-phase-researcher, gsd-plan-checker

Agents read ./CLAUDE.md in their fresh context, following project-specific
guidelines, security requirements, and coding conventions.

Fixes: #671

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-19 10:45:59 -06:00
Lex Christopherson
270b6c4aaa fix(#672): add project skill discovery to subagent spawn points
Subagents now discover and read .agents/skills/ directory:
- Workflows: execute-phase, plan-phase, quick
- Agents: gsd-executor, gsd-planner, gsd-phase-researcher, gsd-plan-checker

Agents read SKILL.md (lightweight index) and load rules/*.md as needed,
avoiding full AGENTS.md files (100KB+ context cost).

Fixes: #672

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-19 10:31:56 -06:00
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
Colin
02bc779c7d Require human verification before resolving debug sessions 2026-02-17 09:51:13 -05:00
Lex Christopherson
2f258956a2 fix: tighten milestone audit requirements verification with 3-source cross-reference
Closes five gaps where requirements could slip through unchecked at milestone
level: audit now cross-references VERIFICATION.md + SUMMARY frontmatter +
REQUIREMENTS.md traceability, integration checker receives req IDs, gap objects
carry plan-level detail, plan-milestone-gaps updates traceability, and
complete-milestone gates on requirements status.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-16 14:03:50 -06:00
Lex Christopherson
9ef582ef23 fix: close requirements verification loop and enforce MUST language
Tighten all requirements references to use MUST/REQUIRED/CRITICAL language
instead of passive suggestions. Close the verification loop by extracting
phase requirement IDs from ROADMAP and passing them through the full chain:
researcher receives IDs → planner writes to PLAN frontmatter → executor
copies to SUMMARY → verifier cross-references against REQUIREMENTS.md with
orphan detection.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-16 13:03:14 -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
4993678641 fix(auto): persist auto-advance to config and bypass checkpoints
- Write workflow.auto_advance to config.json so auto-mode survives
  context compaction (re-read from disk on every workflow init)
- Auto-approve human-verify and auto-select first option for decision
  checkpoints in both executor and orchestrator
- Pass --auto flag from plan-phase to execute-phase spawn
- Clear auto_advance on milestone complete (Route B)
- Document auto-mode checkpoint behavior in golden rules

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 17:59:38 -06:00
Lex Christopherson
8b75531b22 fix(agents): add scope boundary and fix attempt limit to executor (closes #490)
- Only auto-fix issues directly caused by current task's changes
- Log pre-existing/unrelated issues to deferred-items.md instead of fixing
- Cap auto-fix attempts at 3 per task to prevent infinite build/fix loops

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 11:19:23 -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
Lex Christopherson
c4ea358920 fix(agents): use Write tool for file creation to prevent settings.local.json corruption
Agents (executor, verifier, planner) were writing markdown files via
Bash heredocs. When approved, Claude Code persisted the entire heredoc
as a permission entry, breaking settings.local.json on next launch.

Added explicit "use Write tool" directives to all three agents and
added missing Write tool to gsd-verifier's tool list.

Closes #526
Closes #491

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 10:25:44 -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
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
nullius
fbd727e9fd feat: Add Mistral Vibe CLI Support (#519)
feat: Add Mistral Vibe CLI support
2026-02-14 14:17:58 -06:00
jecanore
173ff7a0bb fix: add Write tool to gsd-verifier and document verifier bug root cause (#545)
Bug fix: Add Write tool to gsd-verifier agent
2026-02-14 14:17:01 -06:00