Commit Graph

710 Commits

Author SHA1 Message Date
TÂCHES
a63cc2dec9 Merge pull request #463 from glittercowboy/refactor/thin-orchestrator-commands
Refactor: Extract commands to thin orchestrators + gsd-tools utility
2026-02-07 11:33:16 -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
ddc736ecbb v1.11.3 - revert memory system 2026-02-06 09:48:17 -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
7c42763aae 1.11.2 2026-02-05 13:21:44 -06:00
Lex Christopherson
75fb063d91 docs: update changelog for v1.11.2 2026-02-05 13:21:36 -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
TÂCHES
12a06aba7a Merge pull request #373 from Solvely-Colin/fix/remove-dead-gsd-gemini-link
fix: remove broken gsd-gemini link (404)
2026-02-05 08:10:44 -06:00
TÂCHES
0fcdb3af16 Merge pull request #420 from davesienkowski/fix/executor-completion-verification
fix(executor): add completion verification to prevent hallucinated success (#315)
2026-02-05 08:04:45 -06:00
TÂCHES
22ec777a6a Merge pull request #421 from davesienkowski/fix/set-profile-missing-config
fix(settings): auto-create config.json when missing (#264)
2026-02-05 08:04:42 -06:00
David Sienkowski
4dff9899cc fix(settings): auto-create config.json when missing (#264)
set-profile and settings commands hard-errored when .planning/config.json
did not exist, blocking users from changing model profile before running
new-project. Create config.json with balanced defaults when missing.
2026-02-04 18:05:52 -05: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
Solvely-Colin
83845755b3 fix: update command respects local vs global install
Fixes #363

The update command was hardcoded to use --global flag, which would
convert a local installation to a global one during updates.

Changes:
- Detect install type by checking ./.claude/ first, then ~/.claude/
- Use --local flag when updating a local install
- Use --global flag when updating a global install
- Update cache cleanup path to match install location
- Clarify warning message paths to be relative to install location
2026-02-03 11:11:00 -06:00
Solvely-Colin
161aa61137 fix: researcher agent always writes RESEARCH.md regardless of commit_docs
Fixes #343

The agent was misinterpreting commit_docs=false as 'skip file write'
when it should only skip git commit operations.

Changes:
- Explicitly state Write tool is mandatory in Step 5
- Clarify commit_docs only affects git operations, not file writes
- Rename Step 6 to indicate it's optional
- Make the file-write-then-commit order explicit
2026-02-03 11:10:57 -06:00
Justin Adams
9d7ea9c188 fix: statusline crash handling, color validation, git staging rules
Fixed three critical bugs and documented findings:

1. hooks/gsd-statusline.js - Added error handling for file system operations
   - Wrapped fs.readdirSync and fs.statSync in try-catch
   - Prevents crashes from permission errors or race conditions

2. bin/install.js - Added hex color validation
   - Validates hex color format (#RGB or #RRGGBB)
   - Prevents invalid colors from being written to config

3. commands/gsd/execute-phase.md - Fixed git staging violation
   - Replaced 'git add -u' with individual file staging
   - Maintains consistency with documented git commit rules

Documentation:
- BUG_REPORT.md - Comprehensive review findings (8 bugs total)
- FIXES_APPLIED.md - Details of fixes applied and testing recommendations

Known issues remaining:
- JSON config parsing uses fragile grep/sed (requires jq or refactor)
- Documented workarounds and recommendations for future fixes

https://claude.ai/code/session_01RAgU8GfJ2dwtBSmJDGzpWA

Co-authored-by: Claude <noreply@anthropic.com>
2026-02-03 11:10:53 -06:00
TÂCHES
074b2bcc20 fix(#330): update statusline.js reference during install (#392)
When updating GSD, the installer renames statusline.js to gsd-statusline.js
but didn't update existing settings.json references. Users with the old
config would see their status line disappear.

Now cleanupOrphanedHooks() also checks for and updates any statusLine
config pointing to the old path.

Fixes #330

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-03 09:20:24 -06: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
superresistant
d1654960ab feat(install): respect attribution.commit setting (compatible opencode) (#286)
- Reads user's attribution settings during install and processes Co-Authored-By lines accordingly
- Claude Code: reads `attribution.commit` from `~/.claude/settings.json`
  - Empty string ("") → removes Co-Authored-By
  - Custom value ("jojo99") → uses custom attribution
  - Not set → keeps default
- OpenCode: reads `disable_ai_attribution` from `~/.config/opencode/opencode.json`
  - true → removes Co-Authored-By
  - Not set → keeps default
- Gemini: reads `attribution.commit` from `~/.gemini/settings.json` (same as Claude)
- Caches attribution setting per-runtime to avoid repeated file reads
- Escapes $ in custom attribution to prevent regex backreference injection

Rebased onto v1.11.1
2026-02-02 06:45:50 -06:00
Colin
8d2651d128 fix: remove broken gsd-gemini link (404)
The uberfuzzy/gsd-gemini repository no longer exists. Removed the dead
link while preserving attribution to the original contributor.

Fixes #346
2026-02-01 11:28:15 -05:00
Lex Christopherson
b5ca9a2b76 1.11.1 2026-01-31 15:28:26 -06:00
Lex Christopherson
d8840c45d0 1.11.0 2026-01-31 15:28:22 -06:00
Lex Christopherson
f3db981fa7 docs: update changelog and README for v1.11.0 2026-01-31 15:27:42 -06:00
Lex Christopherson
325713903b fix(plan-phase): pass CONTEXT.md to all downstream agents
CONTEXT.md from /gsd:discuss-phase now flows through entire pipeline:
- Loaded early in step 4, stored for all agent spawns
- Researcher: constrains research scope (locked decisions vs discretion)
- Planner: explicit guidance to honor locked decisions
- Checker: new Context Compliance dimension to verify plans respect user vision
- Revision: reminder to maintain context compliance during fixes

Adds Dimension 7 (Context Compliance) to gsd-plan-checker:
- Verifies locked decisions have implementing tasks
- Flags if tasks contradict locked decisions
- Flags if deferred ideas included in plans

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-31 15:27:42 -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
TÂCHES
f8fd7104c0 Merge pull request #298 from davesienkowski/feature/branching-strategy
Thanks @davesienkowski! Merging as-is, will follow up with squash merge option.
2026-01-30 17:23:42 -06:00
Lex Christopherson
80d67994ec 1.10.1 2026-01-30 06:55:28 -06:00
Lex Christopherson
3b70b10252 docs: update changelog for v1.10.1 2026-01-30 06:55:18 -06:00
Cristian Uibar
5660b6fc0b fix: Gemini CLI agent loading errors (#347)
* fix: convert agent frontmatter for Gemini CLI compatibility

- Add claudeToGeminiTools mapping (Read→read_file, Bash→run_shell_command, etc.)
- Add convertGeminiToolName() to map tools and filter out mcp__*/Task
- Add convertClaudeToGeminiAgent() to convert agent YAML frontmatter
- Hook conversion into agent copy logic for Gemini installs
- Fixes: tools as YAML array (not string), color field removed, mcp__* excluded

* fix: enable experimental.enableAgents for Gemini CLI installs

* fix: strip HTML <sub> tags for Gemini CLI terminal output

* fix: replace ${VAR} with $VAR in agent templates to avoid Gemini CLI template parsing
2026-01-29 19:43:01 -06:00
Lex Christopherson
beca9faead 1.10.0 2026-01-29 13:31:13 -06:00
Lex Christopherson
d58f2b5462 docs: update README and changelog for v1.9.14
- Add Gemini CLI to supported runtimes
- Update install examples with --gemini and --all flags
- Note native Gemini/OpenCode support in Community Ports section

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 13:30:53 -06:00
Lex Christopherson
91aaa3533c chore: remove dead code from Gemini PR
The if/else branches in copyFlattenedCommands were identical.
This function is only used by OpenCode (Gemini uses copyWithPathReplacement).

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 13:24:29 -06:00
Dryade AI
5379832fc2 feat: add Gemini support to installer (#301) 2026-01-29 13:22:46 -06:00
David Novák
87b2cd0e21 fix: scale context bar to show 100% at actual 80% limit
Claude Code enforces an 80% context window limit as a safety mechanism.
The statusline was showing the raw percentage, which meant the bar never
reached 100% before Claude ran out of context.

This change scales the percentage so that:
- 0% real usage = 0% displayed
- 80% real usage (the actual limit) = 100% displayed

Color thresholds are adjusted accordingly to maintain the same visual
progression (green -> yellow -> orange -> red with skull).

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 12:28:22 -06:00
Lex Christopherson
339e911299 chore: remove GitHub Actions release workflow
npm publish is the only distribution channel needed.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 18:53:56 -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
3d2a960cd9 1.9.13 2026-01-23 18:12:33 -06:00
Lex Christopherson
f4b9dc12a5 1.9.12 2026-01-23 17:26:49 -06:00
Lex Christopherson
0769d2ec72 docs: update changelog for v1.9.12 2026-01-23 17:26:49 -06:00
Lex Christopherson
7ebde26d8e docs: remove whats-new references, update stays
/gsd:update now covers changelog viewing with cancel option.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-23 17:26:49 -06:00
Lex Christopherson
d85f32e846 chore: remove redundant whats-new command
/gsd:update already shows changelog before updating, with cancel option.
Two commands for nearly the same purpose adds unnecessary cognitive load.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-23 17:26:49 -06:00
TÂCHES
4c0cd9d1e0 Update README.md 2026-01-23 17:09:28 -06:00
Lex Christopherson
d27d5a350b ci: restore auto-release workflow for GitHub Releases 2026-01-23 17:07:11 -06:00
Lex Christopherson
f74369feab 1.9.11 2026-01-23 17:05:16 -06:00
Lex Christopherson
ebbaa0066a docs: update changelog for v1.9.11 2026-01-23 17:05:12 -06:00