Commit Graph

58 Commits

Author SHA1 Message Date
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
dush999
ea3c22d345 fix: propagate phase_req_ids from ROADMAP to workflow agents (#684) (#702)
Added TBD guard test before merge.
2026-02-23 09:35:28 -06:00
min-k-khant
131f24b5cd fix: auto-advance chain broken — Skills don't resolve inside Task subagents (#669)
The `--auto` flag on discuss-phase and plan-phase chains stages automatically:
discuss → plan → execute, each in a fresh context window. Currently the chain
is broken because auto-advance spawns `Task(prompt="Run /gsd:plan-phase --auto")`
which requires the Skill tool — but Skills don't resolve inside Task subagents.

Result: plan-phase never runs from discuss's auto-advance, execute-phase never
runs from plan's auto-advance, and gsd-executor subagents are never spawned.

Fix: Replace `Task(prompt="Run /gsd:XXX")` with Task calls that tell the
subagent to read the workflow .md file directly via @file references — the same
pattern that already works for gsd-executor spawning in execute-phase.

Changes:
- execute-phase.md: Add --no-transition flag handling so execute-phase can
  return status to parent instead of running transition.md when spawned by
  plan-phase's auto-advance
- plan-phase.md: Replace Skill-based Task call with direct @file reference
  to execute-phase.md, passing --no-transition to prevent transition chaining
- discuss-phase.md: Replace Skill-based Task call with direct @file reference
  to plan-phase.md, with richer return status handling (PHASE COMPLETE,
  PLANNING COMPLETE, PLANNING INCONCLUSIVE, GAPS FOUND)

Nesting depth: discuss → Task(plan) → Task(execute) → Task(executor) = 3 levels
max. Each level gets clean 200k context.

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 14:41:22 -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
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
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
fc347d5cf9 fix: warn when planning without user context or discussing after plans exist
Closes #253 — plans were silently created without CONTEXT.md, and
discuss-phase didn't warn when plans already existed.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 17:11:02 -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
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
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
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
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
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
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
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
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
e8d66e3bf9 docs(15-02): deprecate workflows/plan-phase.md
- Replaced 868-line workflow with deprecation notice
- Points to agents/gsd-planner.md for methodology
- Documents historical content for reference
- Kept file for git history
2026-01-16 07:48:33 -06:00
Lex Christopherson
2869fee206 refactor(verify-work): consolidate plan-fix into plan-phase --gaps
Unify gap handling - whether discovered by code verification or user
testing, gaps feed into the same plan-phase --gaps workflow.

Changes:
- Delete commands/gsd/plan-fix.md (redundant)
- Update verify-work to route to plan-phase --gaps
- Update progress Route E to detect UAT gaps
- Change UAT.md "Issues" section to "Gaps" with YAML format
- Extend plan-phase --gaps to read from both VERIFICATION.md and UAT.md
- Update diagnose-issues to output gaps in YAML format
- Update all references (debug, templates, workflows)

One path: gap discovered → diagnosed → plan-phase --gaps → fixed

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-15 15:40:18 -06:00
Lex Christopherson
0960882012 fix(plan-phase): always route to execute-phase regardless of plan count
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-15 14:37:34 -06:00
Lex Christopherson
1325d3077d refactor: remove domain expertise feature
The ~/.claude/skills/expertise/ system was personal tooling
that doesn't exist for other users. Removed from:
- create-roadmap workflow (detect_domain step)
- plan-phase workflow (domain loading)
- roadmap template (Domain Expertise section)
- phase-prompt template (domain frontmatter)
- plan-format reference (domain field)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-15 11:22:39 -06:00
Lex Christopherson
8e6ad96af1 feat(verification): add verify → plan → execute loop for gap closure
- Add verify_phase_goal step to execute-phase workflow
- Verifier outputs structured gaps: YAML for planner consumption
- Add --gaps flag to plan-phase for gap closure mode
- Route by verification status: passed, gaps_found, human_needed
- Gap closure creates sequential plans (04, 05...) from verification gaps
- User stays in control at each decision point

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-15 10:34:38 -06:00
Lex Christopherson
87909f97ae feat: enhance roadmap and planning workflows
- create-roadmap: improved phase structuring and requirements tracing
- plan-phase: better task decomposition and wave assignment
- roadmap.md template: cleaner format
- phase-prompt.md template: structured planning prompt

Co-Authored-By: Claude <noreply@anthropic.com>
2026-01-15 09:34:48 -06:00
Lex Christopherson
4da80d64a6 feat(gsd): add USER-SETUP.md for external service configuration
Problem: Phases introducing external services (Stripe, SendGrid, etc.) complete
successfully but user doesn't know about required env vars and dashboard config
until runtime failures occur.

Solution: Explicit declaration at planning time, enforced at execution time.

Changes:
- New template: user-setup.md - defines USER-SETUP.md structure
- phase-prompt.md: add user_setup frontmatter field
- plan-phase.md: add user setup detection guidance in break_into_tasks step
- execute-plan.md: add generate_user_setup step, surface in offer_next
- summary.md: add "User Setup Required" section

Flow:
1. Planning: Claude identifies external services, declares in user_setup frontmatter
2. Execution: After tasks complete, generates {phase}-USER-SETUP.md
3. Completion: Warning block prominently shows required setup before next steps

Automation-first rule: USER-SETUP.md contains ONLY what Claude cannot automate
(account creation, secret retrieval, dashboard config). Everything else Claude does.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-14 13:38:20 -06:00
Lex Christopherson
62f12794dd chore: remove dead ISSUES.md system
Remove the global ISSUES.md deferred enhancement tracking system.

- Delete /gsd:consider-issues command (never used)
- Delete issues.md template (never instantiated)
- Remove Rule 5 from deviation rules (never triggered)
- Remove all ISSUES.md, ISS-XXX, and "deferred issues" references
- Update STATE.md to track pending todos instead

The ISSUES.md system was designed to capture non-critical enhancements
during plan execution via "Rule 5", but it never fired in practice
across 100+ projects. The system added ~350 lines of dead code.

The /gsd:add-todo and /gsd:check-todos system serves the same purpose
and is actually used.

Note: UAT *-ISSUES.md files (per-plan, created by /gsd:verify-work)
are unaffected - those are a separate, active system.

Closes #56

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-14 12:33:18 -06:00
Lex Christopherson
d30893a834 feat: pre-compute wave numbers at plan time
Wave numbers now computed during plan-phase and stored in PLAN.md
frontmatter. Execute-phase reads wave directly instead of deriving
from depends_on at runtime.

- Add assign_waves step to plan-phase workflow
- Add wave field to frontmatter (plan-format, phase-prompt template)
- Simplify execute-phase: remove analyze_dependencies and group_into_waves
- Replace with group_by_wave that just reads frontmatter integers

Co-Authored-By: Claude <noreply@anthropic.com>
2026-01-13 18:10:20 -06:00
Lex Christopherson
9e70b89ca1 docs(plan-phase): restore TDD reasoning explanation
Restored context-budget reasoning for why TDD features get dedicated plans:
- TDD requires 2-3 execution cycles consuming 50-60% context
- Test framework setup handled in first TDD plan's RED phase

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-13 17:07:29 -06:00
Lex Christopherson
e5d4ecc28c feat: parallel-first planning with dependency graphs and checkpoint-resume
- plan-phase.md: dependency-first planning, vertical slices default
- phase-prompt.md: autonomous field, wave structure, frontmatter table
- scope-estimation.md: parallel default, removed "parallel-aware" framing
- plan-format.md: frontmatter docs with depends_on, files_modified, autonomous
- execute-phase.md: checkpoint-resume flow using Task resume parameter

Plans now declare explicit dependencies via frontmatter. Wave assignment
is automatic based on depends_on + files_modified. Checkpoints pause
subagent, return to orchestrator, user responds, orchestrator resumes.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-13 16:32:03 -06:00
Lex Christopherson
755b28e644 refactor(10): simplify plan frontmatter for parallelization
Remove confusing `parallelizable` boolean field. It was redundant -
execute-phase already computes parallelizability from `depends_on`
and file conflicts.

Changes:
- Remove `parallelizable: true|false` from plan frontmatter
- Rename `files_exclusive` to `files_modified` (clearer intent)
- Simplify execute-phase dependency detection logic
- Update phase-prompt template and plan-phase workflow

Parallelization is now fully automatic based on:
- `depends_on: []` (empty = independent)
- `files_modified: [...]` (no overlap = can parallelize)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-12 14:55:40 -06:00
Lex Christopherson
c163004a15 feat(plan-phase): suggest execute-phase when multiple plans created
Routes to batch execution when 2+ plans exist, with execute-plan
as alternative for interactive mode.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-12 14:40:36 -06:00
Lex Christopherson
31a77ae141 feat(11-02): add parallelization frontmatter to write_phase_prompt
- Include parallelizable, depends_on, files_exclusive in frontmatter
- Rules for parallelizable field determination
- Parallel-aware context section guidance
- Avoid reflexive SUMMARY references when parallel
2026-01-12 14:14:17 -06:00
Lex Christopherson
082c68960f feat(11-02): add parallelization_aware step to plan-phase
- File ownership analysis per task group
- Detect unnecessary inter-plan dependencies
- Restructure for vertical slices when beneficial
- Mark plans with parallelization frontmatter values
2026-01-12 14:13:34 -06:00
Lex Christopherson
8e67241e73 feat(11-01): add read_parallelization_config step to plan-phase workflow
- Reads .planning/config.json parallelization settings early
- Documents planning behavior when parallel enabled vs disabled
- Placed after load_project_state, before load_codebase_context
- Default: assume parallelization enabled for new projects
2026-01-12 14:08:19 -06:00
Lex Christopherson
4ea054b9f6 docs(10-01): update documentation mentions to execute-plan.md
- commands/gsd/resume-task.md: infrastructure mention
- get-shit-done/workflows/plan-phase.md: execution context reference
- get-shit-done/templates/agent-history.md: 2 workflow mentions
- get-shit-done/templates/summary.md: 3 workflow mentions
- get-shit-done/templates/codebase/structure.md: example workflow
2026-01-12 12:45:45 -06:00
Lex Christopherson
810409c363 feat(plan-phase): add planning principles for security, performance, observability
Front-load mindset guidance before process steps:
- Secure by design: assume hostile input
- Performance by design: assume production load
- Observable by design: plan for self-debugging

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-08 12:23:37 -06:00
Lex Christopherson
1b9c2f2455 fix: commit phase artifacts when created (#12)
Each phase workflow now commits its artifacts immediately:
- discuss-phase.md commits CONTEXT.md
- research-phase.md commits RESEARCH.md
- plan-phase.md commits PLAN.md (and DISCOVERY.md)
- execute-phase.md commits only execution artifacts (SUMMARY, STATE, ROADMAP)

Planning artifacts are inputs to execution and should be saved when created.
Execution artifacts are outputs and are committed after execution completes.

Closes #12
2026-01-06 12:12:21 -06:00
Lex Christopherson
85f0ea5c58 feat: TDD features use dedicated plans for full context quality
TDD requires 2-3 execution cycles (RED → GREEN → REFACTOR), each with
file reads, test runs, and potential debugging. This consumes 40-50%
of context for a single feature. Dedicated TDD plans ensure full
quality throughout the cycle.

- TDD plans use `type: tdd` frontmatter with `<feature>` element
- One feature per TDD plan (batching defeats the purpose)
- Target ~40% context usage for TDD plans
- Standard plans handle non-TDD work with 2-3 tasks

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-05 21:55:36 -06:00
Lex Christopherson
b26cbe69d0 feat(06-02): Intelligent context assembly via frontmatter dependency graph
- Replaced vague summary scanning with frontmatter-based intelligent selection
- Build dependency graph from requires/provides/affects with transitive closure
- Auto-select 2-4 relevant phases via affects field, subsystem matching, requires chains
- Extract context from frontmatter before reading full summaries
- Inject assembled context package into PLAN.md automatically

Planning transformed: "Claude guesses" → "System assembles optimal context"

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-05 09:45:26 -06:00
Lex Christopherson
35739c84de fix: clarify depth controls compression, not inflation
Depth sets a ceiling on compression, not a floor on expansion.
Small phases stay small even in comprehensive mode.

- Comprehensive auth = 8 plans (work warrants it)
- Comprehensive "add favicon" = 1 plan (that's all it is)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-04 20:07:22 -06:00
Lex Christopherson
484134e63c feat: add depth parameter for planning thoroughness
Adds depth setting (quick/standard/comprehensive) to control how many
phases and plans get created. Tasks per plan stays constant at 2-3.

- Quick: 3-5 phases, 1-3 plans each
- Standard: 5-8 phases, 3-5 plans each
- Comprehensive: 8-12 phases, 5-10 plans each

Depth increases plan COUNT, never plan SIZE. More plans = more
thoroughness with same quality per plan.

Files changed:
- new-project.md: depth question after mode
- config.json: depth field added
- create-roadmap.md: depth-aware phase guidance
- plan-phase.md: depth-aware plan splitting
- scope-estimation.md: depth calibration section
- create-milestone.md: removed hardcoded 3-6 limit
- new-milestone.md: removed hardcoded 3-6 limit
- roadmap.md template: depth-aware guidance

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-04 18:31:59 -06:00
Lex Christopherson
5390b33bd2 feat(05-tdd): TDD integration with detection, annotation, and execution flow
- Add references/tdd.md with detection heuristics, red-green-refactor cycle
- Add tdd_annotation section to plan-format.md with task structure
- Expand plan-phase.md with TDD detection and annotation guidance
- Add tdd_execution section to execute-phase.md with commit patterns
- TDD-aware task routing in execute step

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-31 11:40:56 -06:00
Lex Christopherson
86878b9721 fix: restore deterministic bash commands, remove redundant decision_gate
- Remove decision_gate step (redundant after confirm_breakdown approval)
- Restore explicit bash commands in load_codebase_context, identify_phase,
  read_project_history, and gather_phase_context for consistent behavior

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-29 13:39:00 -06:00
Lex Christopherson
df1f138478 feat(04-02): 70% context reduction for plan-phase (scope-estimation 74%, plan-phase.md 66%)
- scope-estimation.md: 451 → 115 lines (removed ASCII art, collapsed anti-patterns)
- plan-phase.md workflow: 864 → 290 lines (condensed discovery tree, removed verbose examples)
- Total Phase 4 context reduction: 101KB → 30KB (exceeds 37% target)
2025-12-29 12:18:08 -06:00
Lex Christopherson
c3273a50c1 fix: use inline code for Next Up commands (avoids nesting ambiguity) 2025-12-17 13:03:48 -06:00