All GSD hooks now use gsd- prefix. Installer updated to clean up old
statusline.js file and hook registration from previous installs.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Phase 05: Subagent Codebase Analysis
- 2 plans in 2 waves
- Plan 05-01: Create gsd-entity-generator subagent (Wave 1)
- Plan 05-02: Refactor analyze-codebase to use subagent (Wave 2)
- Ready for execution
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Phase 5: Subagent Codebase Analysis
- Refactor entity generation from main context to subagent delegation
- Follow gsd-codebase-mapper pattern
- Prevent context exhaustion on 500+ file codebases
- Single subagent with full file list (not multiple batches)
- Subagent writes entities directly, returns statistics only
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>
- 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>
- 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>
- Add handleQuery() function to route query actions
- Support dependents and hotspots query types
- Route query actions via stdin handler before Write/Edit
- Return JSON results to stdout for Claude consumption
Phase 04-04: Expose orphaned getDependents() function
- Add handleQuery() routing for stdin query actions
- Enable "what uses this file?" queries via CLI
- Closes verification gap for INTEL-05
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- regenerateEntitySummary() now async, prefers graph when available
- Falls back to entity-file-based summary if no graph.db
- Stdin handler properly awaits async regeneration
- SessionStart hook injects graph-backed summary into context
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- generateGraphSummary() queries SQLite graph for rich summary
- Includes dependency hotspots with accurate counts from edges
- Groups nodes by type for module overview
- Tracks total relationships
- Target < 500 tokens for context injection
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- getHotspots() queries top N files by dependent count
- getNodesByType() groups nodes by type with counts
- getDependents() uses recursive CTE for transitive traversal
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add @anthropic-ai/sdk ^0.52.0 for entity generation API calls
- Required for semantic entity file creation in analyze-codebase
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add syncEntityToGraph() to upsert nodes and edges on entity write
- Entity id derived from filename, node body contains metadata as JSON
- Wiki-links [[target]] become edges with depends_on relationship
- Delete old edges before inserting new ones for clean updates
- Graph sync runs before summary regeneration
- Silent failures ensure Claude is never blocked
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add getSQL() for cached sql.js WASM initialization
- Add loadGraphDatabase() to create or load graph.db
- Add persistDatabase() to export in-memory DB to disk
- Singleton pattern avoids repeated WASM init overhead
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add sql.js ^1.12.0 dependency for WASM SQLite
- Add GRAPH_SCHEMA constant with nodes/edges tables
- Nodes use virtual id from JSON body for upserts
- Edges indexed by source and target for relationship queries
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
04-02: Added SessionStart hook wiring verification to Task 3 and
key_links. The hook already exists from Phase 2 - plan now verifies
it correctly injects the new graph-backed summary format.
04-03: Removed embedded JavaScript execution pattern. Commands are
instructions Claude follows, not scripts. Entity generation now uses
Task tool to spawn subagents for batch processing instead of pretending
markdown can execute JS.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
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>
- 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>
New intel-prune.js hook runs after each Claude response.
Checks if indexed files still exist, removes stale entries.
Fast (only fs.existsSync checks) and silent (never blocks).
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Hook now checks if .planning/intel/ exists before indexing.
This prevents polluting non-GSD projects with intel files.
Directory is created by:
- /gsd:new-project (during setup)
- /gsd:analyze-codebase (explicit user action)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add Codebase Intelligence section explaining automatic learning
- Document convention detection and context injection
- Add /gsd:analyze-codebase to Brownfield commands table
- List intel files and their purposes
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add load_codebase_intelligence step to gsd-planner.md
- Add load_codebase_intelligence step to gsd-executor.md
- Include .planning/intel/summary.md in plan context template
- Subagents now use detected conventions during planning/execution
- Create .planning/intel/ during Phase 1 setup
- Document intel directory in Creates and Output sections
- Directory prepared for PostToolUse hook population
- 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>
- Read session metadata from stdin
- Check for startup/resume source
- Read index.json and conventions.json from .planning/intel/
- Silent exit if no intel files present
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>