Commit Graph

378 Commits

Author SHA1 Message Date
Lex Christopherson
f64e066892 refactor(05-04): delegate indexing to gsd-indexer subagent
- Replace inline file reading in Steps 2-3 with subagent spawn
- Step 2 now outputs file_paths array (no content reading)
- Step 3 spawns gsd-indexer with Task tool
- Step 5 reads index.json written by subagent (not writes it)
- Add context section documenting indexing subagent delegation
- Prevents context exhaustion on 500+ file codebases

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-21 09:31:29 -06:00
Lex Christopherson
c0330e48f8 refactor(05-02): replace batch entity generation with subagent delegation
- Step 9.3 now spawns gsd-entity-generator subagent instead of Task batches
- Subagent receives file paths only (preserves orchestrator context)
- Subagent reads files in fresh 200k context, writes entities to disk
- Returns statistics only (not entity contents)
- Updated context section to document subagent execution model
- Fixed slug examples to use single hyphen format (matches hook)
- Simplified Steps 9.4-9.5 for new flow
2026-01-20 12:08:47 -06:00
Lex Christopherson
9a3a394f79 docs: update changelog and documentation for v1.9.0 2026-01-20 11:53:21 -06:00
Lex Christopherson
aa63054dd3 feat(04): add /gsd:query-intel command
Exposes graph database queries to users:
- dependents <file> - what depends on this file (blast radius)
- hotspots - most-depended-on files

Closes tech debt item from v1.9.0 audit.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-20 10:58:10 -06:00
Lex Christopherson
c1a86cadee fix(04): address tech debt from milestone audit
- Wrap intel content in <codebase-intel> tags in plan-phase.md
- Use ENTITY_DIR constant in isEntityFile() instead of hardcoded path

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-20 10:42:43 -06:00
Lex Christopherson
61d1e91013 feat(04-05): wire codebase intel injection into planner
- Read .planning/intel/summary.md into INTEL_CONTENT in Step 7
- Add {intel_content} placeholder to planning_context in Step 8
- Planner now receives dependency hotspots, module types at planning time

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-20 10:24:09 -06:00
Lex Christopherson
b3db2ff909 feat(04-03): add semantic entity generation to analyze-codebase
- Add Step 9 for semantic entity file generation
- Task tool batching for 100+ file codebases (10 files per batch)
- 50 file limit per run to manage context
- File selection criteria: 3+ exports, 5+ dependents, key directories
- Entity slug convention: path--segments--filename-ext.md
- Entity template with Purpose, Exports, Dependencies, Used By sections
- Update objective, output, and success criteria for entities
- Add context section explaining execution model

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-20 09:57:57 -06:00
Lex Christopherson
4218f8666a feat(profiles): add model profiles for GSD agents
Adds switchable model profiles (quality/balanced/budget) to control
which Claude model each agent uses, balancing quality vs token spend.

New files:
- get-shit-done/references/model-profiles.md - profile lookup table
- commands/gsd/set-profile.md - runtime profile switching

Updated orchestrators to resolve model before spawning agents:
- new-project, new-milestone (7 calls each)
- plan-phase (4 calls)
- execute-phase (3 calls)
- audit-milestone, debug, research-phase, quick (1-2 calls each)
- workflows: execute-phase, execute-plan, verify-work, map-codebase

Profile stored in .planning/config.json as model_profile.
Default: "balanced" (Opus for planning, Sonnet for execution).

Closes #160

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-20 01:29:04 -06:00
Lex Christopherson
9099d48495 perf(intel): simplify SessionStart hook + gitignore intel/
- SessionStart now reads pre-generated summary.md directly
- No more JSON parsing of potentially large index.json
- Added guidance: .planning/intel/ should always be gitignored
  (changes constantly, can be regenerated with /gsd:analyze-codebase)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-20 01:01:16 -06:00
Lex Christopherson
0898a705c5 docs(03-03): add analyze-codebase command to help.md
- Add /gsd:analyze-codebase command reference
- Add intel/ directory to Files & Structure section
- Document PostToolUse hook incremental learning

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-20 00:11:05 -06:00
Lex Christopherson
02a9a614c7 feat(03-01): create /gsd:analyze-codebase command
- Standalone codebase scanning for brownfield projects
- Uses same extraction patterns as intel-index.js hook
- Produces index.json, conventions.json, summary.md
- Excludes node_modules, dist, build, .git, vendor, coverage
2026-01-20 00:06:28 -06:00
Lex Christopherson
df222be569 feat(03-02): add intel directory creation to new-project
- Create .planning/intel/ during Phase 1 setup
- Document intel directory in Creates and Output sections
- Directory prepared for PostToolUse hook population
2026-01-20 00:06:23 -06:00
Lex Christopherson
fbd5068b90 feat(new-project): add workflow agent settings to project init
- Split Phase 5 into two rounds of questions
- Round 1: core settings (mode, depth, parallel, git tracking)
- Round 2: workflow agents (researcher, plan checker, verifier)
- Add explainer table before workflow questions
- Include workflow section in config.json schema
- Note that /gsd:settings can update later

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 23:57:02 -06:00
Lex Christopherson
cffb3f24cd feat(settings): add /gsd:settings command for workflow toggles
Adds interactive settings command to toggle workflow agents:
- Plan Researcher (workflow.research)
- Plan Checker (workflow.plan_check)
- Execution Verifier (workflow.verifier)

Updates plan-phase.md and execute-phase.md to check config before
spawning these agents. Flags still override config per-invocation.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 23:42:48 -06:00
Lex Christopherson
ce4fc96ff7 fix(orchestrators): inline file contents in Task prompts
The @ file reference syntax does not expand across Task() boundaries.
Subagents receive literal @path strings instead of file contents.

Changed orchestrator→subagent handoffs to explicitly read files and
inline content before spawning:

- plan-phase → gsd-planner: STATE, ROADMAP, REQUIREMENTS, CONTEXT, RESEARCH
- plan-phase → gsd-plan-checker: PLAN files, REQUIREMENTS
- plan-phase → gsd-planner (revision): PLAN files
- execute-phase → gsd-executor: PLAN, STATE, config

Fixes #182

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 23:11:09 -06:00
Lex Christopherson
a1935c2d6b feat(new-project): add commit_docs option to workflow preferences
Adds 4th question to initial config asking whether to commit planning
docs to git. When user selects "No", sets planning.commit_docs: false
and adds .planning/ to .gitignore.

Builds on #107 (uncommitted planning mode) by surfacing the option
during project initialization.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 16:49:44 -06:00
dan bachelder
1f18ec8907 feat: add uncommitted planning mode (#107)
* feat: add uncommitted planning mode

Add config option to keep planning docs local-only (not committed to git).
Useful for OSS contributions, client projects, or keeping planning private.

Config options in .planning/config.json:
- planning.commit_docs: true/false (default: true)
- planning.search_gitignored: true/false (default: false)

When commit_docs=false:
- All git operations for .planning/ files are skipped
- User should add .planning/ to .gitignore
- Planning system works normally, just not tracked

Updated files:
- config.json template: added planning section
- execute-plan.md: conditional git commits
- execute-phase.md: conditional git commits
- create-roadmap.md: conditional git commits
- help.md: documented new config options
- planning-config.md: reference doc for config behavior

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

* feat: extend commit_docs check to all agents/commands/workflows

Add COMMIT_PLANNING_DOCS config check to all files that commit
.planning/ artifacts, ensuring consistent behavior when
commit_docs=false is set in config.json.

Updated:
- 5 agents (planner, executor, debugger, phase-researcher, synthesizer)
- 8 commands (add-todo, check-todos, execute-phase, new-milestone,
  pause-work, plan-milestone-gaps, remove-phase, research-project)
- 7 workflows (complete-milestone, create-milestone, define-requirements,
  diagnose-issues, discuss-phase, map-codebase, verify-work)

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

* fix(progress): use Bash instead of Glob for .planning/ check

Glob respects .gitignore, so projects with gitignored .planning/
directories would fail with "No planning structure found."

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

* fix(new-milestone): integrate full research/requirements/roadmap flow

Previously routed to non-existent /gsd:research-project and
/gsd:define-requirements commands. Now handles the full flow inline
like new-project does:

- Phase 7: Research Decision (spawns 4 milestone-aware researchers)
- Phase 8: Define Requirements (scopes features, creates REQUIREMENTS.md)
- Phase 9: Create Roadmap (continues phase numbering from previous milestone)
- Phase 10: Done

Key adaptations for milestones:
- Research focuses on NEW features only
- Requirements add to existing, don't start fresh
- Phase numbering continues from previous milestone

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

---------

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 16:49:05 -06:00
Lex Christopherson
c1727a3b60 fix(quick): use numbered prefix for PLAN and SUMMARY files
Quick tasks now use `{NNN}-PLAN.md` and `{NNN}-SUMMARY.md` naming
(e.g., `001-PLAN.md`, `001-SUMMARY.md`) matching the convention
used by regular phase plans (`01-01-PLAN.md`, `01-01-SUMMARY.md`).

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 16:19:50 -06:00
Lex Christopherson
d673b8caf5 docs(02-01): add Quick Mode section to help.md
- Add /gsd:quick command documentation
- Place between Execution and Roadmap Management sections
- Document usage, purpose, and output files
2026-01-19 15:59:29 -06:00
Lex Christopherson
942e65916d feat(01-02): implement final commit and completion output
- Add Step 8 with artifact staging and commit
- Use quick task commit format: docs(quick-NNN): description
- Display GSD-style completion output
- Clean up execution_context placeholder
2026-01-19 15:59:29 -06:00
Lex Christopherson
2dbc802fbd feat(01-02): implement STATE.md Quick Tasks Completed table update
- Add Step 7 with table creation/update logic
- Check for existing Quick Tasks Completed section
- Create section after Blockers/Concerns if missing
- Append row with task number, description, date, commit, directory link
- Update Last activity line
2026-01-19 15:59:29 -06:00
Lex Christopherson
563bcdf765 feat(01-02): implement gsd-executor spawn for quick mode
- Add Step 6 with gsd-executor Task spawn
- Include plan reference and constraints
- Verify SUMMARY.md creation after executor returns
- Note wave execution support for multi-plan cases
2026-01-19 15:59:29 -06:00
Lex Christopherson
58bd646219 feat(01-02): implement gsd-planner spawn for quick mode
- Add Step 5 with gsd-planner Task spawn
- Include quick mode context and constraints
- Verify PLAN.md creation after planner returns
2026-01-19 15:59:29 -06:00
Lex Christopherson
2b36394f35 feat(01-01): create quick.md command file with structure
- Add frontmatter with name, description, allowed-tools
- Include objective explaining quick mode purpose
- Add process section with steps 1-7 (orchestration deferred to Plan 02)
- Include success criteria for full quick task flow

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 15:59:29 -06:00
Joshua Shanks
76cba3bff1 fix: use consistent allowed-tools YAML format (#179)
Convert inline array format to list format in discuss-phase.md
to match all other command files in the codebase.

Before: allowed-tools: [Read, Write, Bash, ...]
After:  allowed-tools:
          - Read
          - Write
          - Bash
          ...
2026-01-19 14:44:16 -06:00
Lex Christopherson
92b48937e0 fix: correct agent name in research-phase heading
The heading said gsd-researcher but the actual Task call uses
gsd-phase-researcher. Aligns with PR #180's cleanup.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 14:40:31 -06:00
Lex Christopherson
200e004781 feat(execute-phase): add --gaps-only flag for gap closure execution
After verify-work diagnoses issues and creates fix plans, the next
command now explicitly signals intent with --gaps-only. This eliminates
redundant state discovery where execute-phase had to figure out why it
was being asked to run on an already-complete phase.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-17 02:03:29 -06:00
Lex Christopherson
0c96b30901 refactor: defer phase directory creation to discuss/plan-phase
Phase directories are now created on-demand when discuss-phase or
plan-phase first touches a phase, rather than upfront by roadmapper.

Prevents duplicate folders when roadmapper names phases differently
than what discuss/plan-phase derives from the roadmap.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-17 00:45:48 -06:00
Lex Christopherson
acd62c0f6e feat(installer): clean install removes orphaned files
- Wipe commands/gsd/ and get-shit-done/ before copying
- Delete only gsd-*.md agents (preserves user agents)
- Add confirmation step to /gsd:update with changelog preview
- Warn users about clean install behavior before updating
2026-01-17 00:42:09 -06:00
Lex Christopherson
c54071ccb8 refactor: unify milestone flow, remove deprecated commands
Consolidate /gsd:new-milestone to mirror /gsd:new-project:
- questioning → research (optional) → requirements → roadmap

BREAKING CHANGES:
- Remove /gsd:discuss-milestone (consolidated into new-milestone)
- Remove /gsd:create-roadmap (integrated into project/milestone flows)
- Remove /gsd:define-requirements (integrated into project/milestone flows)
- Remove /gsd:research-project (integrated into project/milestone flows)

Deleted files:
- commands/gsd/{discuss-milestone,create-roadmap,define-requirements,research-project}.md
- get-shit-done/workflows/{discuss-milestone,create-roadmap,define-requirements}.md
- get-shit-done/templates/milestone-context.md

Updated references in:
- progress.md, complete-milestone.md, help.md
- complete-milestone workflow, continuation-format.md
- questioning.md, requirements.md template, SUMMARY.md template
- gsd-project-researcher.md, gsd-roadmapper.md
- README.md

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-17 00:28:41 -06:00
Lex Christopherson
54f2d5600b feat(verify-work): add offer_next section with routing templates
Add structured next-step routing consistent with other GSD commands.
Four routes: pass+continue, pass+milestone, issues+ready, issues+blocked.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-17 00:13:45 -06:00
Lex Christopherson
8d199427a8 fix(offer-next): remove code blocks from output templates for proper markdown rendering
Commands with <offer_next> sections were outputting backticks literally
instead of rendering them as inline code. Removed code block wrappers
and added explicit 'Output this markdown directly' instruction.

Affected: plan-phase, execute-phase, audit-milestone
2026-01-17 00:01:30 -06:00
Lex Christopherson
cfe237d439 fix(routing): recommend discuss-phase before plan-phase in all next-step suggestions
Updated routing in:
- new-project.md
- create-roadmap.md (command and workflow)
- progress.md (routes B and C)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-16 23:18:32 -06:00
Lex Christopherson
60ebda93b1 fix(execute-phase): recommend discuss-phase before plan-phase
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-16 23:17:28 -06:00
Lex Christopherson
7c60722b71 refactor(discuss-phase): domain-aware gray areas and deeper probing
- Remove useless "None — you decide" skip option
- Generate phase-specific gray areas based on domain analysis
  (UI features, CLI tools, APIs, organization tasks, etc.)
- Increase probing depth: 4 questions per area before check
- Make context.md categories flexible (emerge from discussion)
- Add CLI and organization examples to context template

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-16 22:44:15 -06:00
Lex Christopherson
567bdd2e2c fix: normalize phase input at command entry points
Commands accept both padded (08) and unpadded (8) phase numbers.
Normalization happens in step 1/2 before any directory lookups.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-16 22:17:51 -06:00
Lex Christopherson
a31f730f62 fix: phase directory matching and orphaned references
- Support both zero-padded (05-*) and unpadded (5-*) phase folders
- Delete orphaned research-subagent-prompt.md template
- Update resume-project.md to use Task tool resume parameter

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-16 18:48:43 -06:00
Lex Christopherson
ed533f307f refactor: consolidate milestone workflow into command
Preserve accumulated context instruction in new-milestone command.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-16 18:22:01 -06:00
Lex Christopherson
8251879aab refactor: remove /gsd:execute-plan command
/gsd:execute-phase handles single and multiple plans.
All references updated to use execute-phase.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-16 17:16:42 -06:00
Lex Christopherson
c04f568780 docs(help): update execute-phase description
Wave-based parallelization via Task tool.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-16 17:09:25 -06:00
Lex Christopherson
6fd95c3ce5 refactor: consolidate expertise into agents
Commands load agent expertise directly via Task tool spawning.
Thin orchestrator pattern — agents have methodology baked in.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-16 16:59:42 -06:00
Lex Christopherson
12373d2f2a fix(execute-phase): commit orchestrator corrections before verification
Orchestrator sometimes makes small fixes between executor completions
(missing imports, wiring fixes). These were left uncommitted. Now
checks for dirty state after all waves complete and commits if needed.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-16 16:33:10 -06:00
Lex Christopherson
339e0613d8 fix: consistent zero-padding and file naming across agents
- plan-phase.md: zero-pad phase number in mkdir
- roadmapper: explicit zero-padding instruction with printf
- discuss-phase workflow: use PADDED_PHASE in file paths
- planner: fix {plan}-PLAN.md -> {phase}-{plan}-PLAN.md
- researcher: fix double-path bug in git add command
- researcher: add CONTEXT.md loading from discuss-phase

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-16 13:17:26 -06:00
Lex Christopherson
15d4e27075 fix(next-steps): remove /gsd:research-phase from workflow suggestions
Research is now integrated into /gsd:plan-phase by default.
Remove standalone research command from "Also available" sections.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-16 13:14:01 -06:00
Lex Christopherson
7a451e6410 feat(statusline): show update indicator when new GSD version available
Adds SessionStart hook that checks npm in background, caches result.
Statusline shows "⬆ /gsd:update │" when update available.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-16 12:53:45 -06:00
Lex Christopherson
1f8c112fe2 fix: remove commit capability from project researcher agent
Researchers are always spawned in parallel (4 at once). Committing is
now exclusively handled by the orchestrator or synthesizer agent after
all researchers complete.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-16 11:54:37 -06:00
Lex Christopherson
daa54737cf feat: add GSD brand system for consistent UI
Add ui-brand.md reference with visual patterns:
- Stage banners with GSD ► prefix
- Checkpoint boxes (62-char width)
- Status symbols vocabulary
- Next Up routing blocks

Update orchestrators to use branded output.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-16 11:51:57 -06:00
Lex Christopherson
6ae0923c29 fix: add explicit roadmap approval gate before committing
- Present proposed roadmap nicely inline (table + phase details)
- Use AskUserQuestion to confirm before committing
- Options: Approve, Adjust phases, Review full file
- Loop on adjustments until user approves

Previously, roadmap was committed immediately without user review.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-16 11:27:51 -06:00
Lex Christopherson
1d155e978b feat: add gsd-research-synthesizer agent for SUMMARY.md creation
- Create dedicated synthesizer agent to handle research synthesis
- Move SUMMARY.md creation from main orchestrator to subagent
- Reduces main context usage (~2000+ lines of research output)
- Synthesizer reads 4 research files and produces unified summary

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-16 11:26:19 -06:00
Lex Christopherson
18351fe3e4 feat: unify project initialization into single /gsd:new-project flow
Consolidates 4 separate commands into one unified flow:
- /gsd:new-project now handles: questioning → research → requirements → roadmap
- Creates gsd-roadmapper agent for heavy lifting (goal-backward, coverage validation)
- Adds atomic commits after each stage for crash recovery
- Deprecates standalone research-project, define-requirements, create-roadmap
  (kept for mid-project use)

Fixes from audit:
- Add requirements quality criteria (specific, user-centric, atomic, independent)
- Add milestone context to research prompts (greenfield vs subsequent)
- Add quality gates per research dimension
- Add template references for consistent output format

Removes deprecated gsd-researcher.md (replaced by project/phase researchers)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-16 11:15:58 -06:00