Commit Graph

1513 Commits

Author SHA1 Message Date
Tom Boucher
d262bf8938 Merge pull request #1549 from Tibsfox/fix/debug-diagnose-only-1396-v2
feat(debug): add --diagnose flag for diagnosis-only mode
2026-04-02 17:54:54 -04:00
Tom Boucher
d1b36bf07e Merge pull request #1550 from Tibsfox/fix/commit-docs-hook-1395-v2
feat(hooks): add check-commit guard for commit_docs enforcement
2026-04-02 17:54:33 -04:00
Tom Boucher
8fec00a23c Merge pull request #1555 from tonylt/fix/execute-phase-task-description-missing
fix(execute-phase): add required description param to Task() calls
2026-04-02 17:53:50 -04:00
Tom Boucher
5f0bd0902c Merge pull request #1561 from Tibsfox/fix/concurrency-safety-1473a
fix(core): concurrency safety — withPlanningLock and atomic STATE.md
2026-04-02 17:50:38 -04:00
Tom Boucher
da8f00d72f Merge pull request #1562 from Tibsfox/feat/1m-context-enrichment-1473b
feat(workflows): adaptive context enrichment for 1M models
2026-04-02 17:50:07 -04:00
Tom Boucher
38f94f28b4 Merge pull request #1563 from Tibsfox/fix/health-validation-1473c
fix(health): STATE/ROADMAP cross-validation and config checks
2026-04-02 17:49:35 -04:00
Tom Boucher
8af7ad96fc Merge pull request #1564 from Tibsfox/feat/hooks-opt-in-1473d
feat(hooks): opt-in session-state, commit-validation, phase-boundary hooks
2026-04-02 17:49:08 -04:00
Tom Boucher
cd0d7e9295 Merge pull request #1546 from nicbarrett/fix/opencode-permission-string-guard
fix(opencode): guard string-valued permission config
2026-04-02 17:45:17 -04:00
Nic Barrett
56ab549538 test(opencode): align regression test with contributing guide 2026-04-02 11:57:54 -05:00
Tibsfox
d4859220e2 fix(core): add concurrency safety and atomic state writes
Wire withPlanningLock into all ROADMAP.md write paths (phase add/insert/complete/remove, roadmap update-plan-progress) to prevent concurrent corruption when parallel agents modify planning files.

Extract acquireStateLock/releaseStateLock from writeStateMd and add readModifyWriteStateMd helper that holds the lock across the entire read-modify-write cycle, preventing lost updates.

Replace O(n^2) normalizeMd fence detection with single-pass O(n) pre-computed fence state array.

Warn on must_haves parse failure and stateReplaceFieldWithFallback field miss.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 04:28:06 -07:00
Tibsfox
4157c7f20a feat(hooks): add opt-in community hooks for GSD projects
Port 3 community hooks from gsd-skill-creator, gated behind hooks.community config flag. All hooks are registered on install but are no-ops unless the project config has hooks: { community: true }.

gsd-session-state.sh (SessionStart): outputs STATE.md head for orientation. gsd-validate-commit.sh (PreToolUse/Bash): blocks non-Conventional-Commits messages. gsd-phase-boundary.sh (PostToolUse/Write|Edit): warns when .planning/ files are modified.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 04:23:44 -07:00
Tibsfox
25891db0b2 fix(health): STATE/ROADMAP cross-validation and config checks
Add W011: detect when STATE.md says current phase is N but ROADMAP.md shows it as [x] complete (can happen after crash mid-phase-complete). Add W012-W015: validate branching_strategy against known values, context_window as positive integer, phase_branch_template has {phase} placeholder, milestone_branch_template has {milestone} placeholder.

Add stateReplaceFieldWithFallback diagnostic: warn when neither primary nor fallback field name matches in STATE.md (surfaces template drift from external edits).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 04:20:02 -07:00
Tibsfox
9d430f6637 feat(workflows): adaptive context enrichment for 1M models
Read context_window config (default 200000) in execute-phase and plan-phase workflows. When >= 500000 (1M-class models), subagent prompts include richer context: executor agents receive CONTEXT.md, RESEARCH.md, and prior wave SUMMARYs; verifier agents receive all PLANs, SUMMARYs, and REQUIREMENTS.md; planner receives prior phase CONTEXT.md for cross-phase decision consistency.

At 200k (default), behavior is unchanged.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 04:16:24 -07:00
Liutuo
c0c881f020 fix(execute-phase): add required description param to Task() calls
Both the gsd-executor and gsd-verifier Task() invocations were missing
the required `description` parameter, causing InputValidationError when
spawning agents in parallel during /gsd:execute-phase.
2026-04-02 10:25:14 +08:00
Tibsfox
9d90c7b420 feat(hooks): add check-commit guard for commit_docs enforcement (#1395)
Add check-commit command to gsd-tools that acts as a pre-commit guard.
When commit_docs is false, rejects commits that stage .planning/ files
with an actionable error message including the unstage command.

Recreated cleanly on current main — previous version carried stale
shared fixes that are now upstream.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-01 16:11:00 -07:00
Tibsfox
37adcfbb6b feat(debug): add --diagnose flag for diagnosis-only mode (#1396)
Add --diagnose flag to /gsd:debug that stops after finding the root
cause without applying a fix. Returns a structured Root Cause Report
with confidence level, files involved, and suggested fix strategies.
Offers "Fix now" to spawn a continuation agent, "Plan fix", or
"Manual fix" options.

Recreated cleanly on current main — previous version carried stale
shared fixes that are now upstream.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-01 16:08:48 -07:00
Tom Boucher
94a8005f97 docs: update documentation for v1.31.0 release
- CHANGELOG.md: 13 added, 1 changed, 21 fixed entries
- README.md: quick mode flags, --chain, security/schema features, commands table
- docs/FEATURES.md: v1.29-v1.31 feature sections (#56-#68)
- docs/CONFIGURATION.md: 5 new config options, Security Settings section
- Localized READMEs: ja-JP, ko-KR, zh-CN, pt-BR synced with English changes

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-01 18:17:26 -04:00
Nic Barrett
b12d684940 fix(opencode): guard string-valued permission config (#781) 2026-04-01 17:02:33 -05:00
Tom Boucher
8de750e855 chore: bump version to 1.31.0 for npm release
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-01 18:01:03 -04:00
Tom Boucher
78e5c6d973 Merge pull request #1545 from Tibsfox/fix/remove-permissionmode-gemini-1522
fix(agents): remove permissionMode that breaks Gemini CLI agent loading
2026-04-01 17:44:16 -04:00
Tom Boucher
fd2e844e9c Merge pull request #1544 from Tibsfox/fix/autonomous-phase-count-display-1516
fix(autonomous): clarify phase count display to prevent misleading N/T banner
2026-04-01 17:43:53 -04:00
Tom Boucher
d7aa47431f Merge pull request #1543 from Tibsfox/fix/workstream-set-requires-name-1527
fix(workstream): require name arg for set, add --clear flag
2026-04-01 17:43:15 -04:00
Tibsfox
9ddf004368 fix(agents): remove permissionMode that breaks Gemini CLI agent loading (#1522)
permissionMode: acceptEdits in gsd-executor and gsd-debugger frontmatter
is Claude Code-specific and causes Gemini CLI to hard-fail on agent load
with "Unrecognized key(s) in object: 'permissionMode'". The field also
has no effect in Claude Code (subagent Write permissions are controlled
at runtime level regardless). Remove it from both agents and update
tests to enforce cross-runtime compatibility.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-01 14:37:41 -07:00
Tom Boucher
ada7d35cda Merge pull request #1525 from jhonymiler/feat/skills-discovery-claude-md
feat: add project skills discovery section to CLAUDE.md generation
2026-04-01 17:37:03 -04:00
Tibsfox
66e3cf87fe fix(autonomous): clarify phase count display to prevent misleading N/T (#1516)
When phase numbers are globally sequential across milestones (e.g.,
phases 61-67), the banner showed "Phase 63/5" where 5 was the count of
remaining phases — easily mistaken for "63 out of 5 total." Clarify
that T must be total milestone phases and add fallback display format
for when phase numbers exceed the total count.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-01 14:35:57 -07:00
Tibsfox
89f82d5483 fix(workstream): require name arg for set, add --clear flag (#1527)
workstream set with no argument silently cleared the active workstream,
a footgun for users who forgot the name. Now requires a name arg and
errors with usage hint. Explicit clearing via --clear flag, which also
reports the previous workstream in its output.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-01 14:35:00 -07:00
Tom Boucher
b12f3ce551 Merge pull request #1519 from alexpalyan/feat/add-coderabbit-reviewer
feat: Integrate CodeRabbit into review workflow
2026-04-01 17:34:49 -04:00
Tom Boucher
35b835b861 Merge pull request #1508 from Ecko95/fix/infinite-self-discuss-loop
fix: prevent infinite self-discuss loop in auto/headless mode
2026-04-01 17:34:15 -04:00
Tom Boucher
bf838c0d92 Merge pull request #1505 from Tibsfox/fix/quick-plan-uncommitted-1503
fix(quick): enforce commit boundary between executor and orchestrator
2026-04-01 17:32:05 -04:00
Tom Boucher
591d5358ac Merge pull request #1502 from Tibsfox/fix/worktree-cleanup-1496
fix(worktree): add post-execution cleanup for orphan worktrees
2026-04-01 17:31:47 -04:00
Tom Boucher
7b221a88b0 Merge pull request #1492 from grgbrasil/fix/scope-reduction-detection
feat: detect and prevent silent scope reduction in planner
2026-04-01 17:31:19 -04:00
Tom Boucher
4afc5969ef Merge pull request #1477 from Tibsfox/fix/stats-verification-status-1459
fix(stats): require verification for Complete status, add Executed state
2026-04-01 17:26:49 -04:00
Tom Boucher
a96b9e209c Merge pull request #1474 from Tibsfox/fix/reapply-patches-misclassification-1469
fix(reapply-patches): three-way merge and never-skip invariant for backed-up files
2026-04-01 17:25:55 -04:00
Tom Boucher
2f16cb8631 Merge pull request #1456 from Tibsfox/fix/worktree-disable-config-1451
feat(config): add workflow.use_worktrees toggle to disable worktree isolation
2026-04-01 17:24:57 -04:00
Tom Boucher
be2f99ec85 Merge pull request #1455 from gsd-build/fix/manager-skill-pipeline-1453
fix: manager workflow delegates to Skill pipeline instead of raw Task prompts
2026-04-01 17:24:26 -04:00
Tom Boucher
4f2db2b977 Merge pull request #1454 from odmrs/fix/skip-advance-on-gaps-found
fix(sdk): skip advance step when verification finds gaps
2026-04-01 17:24:03 -04:00
Tom Boucher
5eed6973b8 Merge pull request #1447 from rahuljordashe/fix/phase-complete-roadmap-rollup
fix: cmdPhaseComplete updates Plans column and plan checkboxes
2026-04-01 17:20:14 -04:00
Tom Boucher
ce5fbc5d73 Merge pull request #1445 from Tibsfox/feat/discuss-phase-chain-1327
feat(discuss): add --chain flag for interactive discuss with auto plan+execute
2026-04-01 17:17:17 -04:00
Tom Boucher
dbb3239675 Merge pull request #1444 from Tibsfox/feat/autonomous-only-flag-1383
feat(autonomous): add --only N flag for single-phase parallel execution
2026-04-01 17:16:56 -04:00
Tom Boucher
1d97a03a36 Merge pull request #1442 from Tibsfox/fix/complete-phase-reference-1441
fix(next): remove reference to non-existent /gsd:complete-phase
2026-04-01 17:16:13 -04:00
Tom Boucher
1cf97fd9cb Merge pull request #1386 from gsd-build/fix/schema-drift-detection-1381
feat: schema drift detection prevents false-positive verification
2026-04-01 17:15:43 -04:00
Tom Boucher
dbc54b8386 Merge pull request #1439 from Tibsfox/fix/todo-done-vs-completed-1438
fix(todos): rename todos/done to todos/completed in workflows and docs
2026-04-01 17:12:47 -04:00
Tom Boucher
d2f537c3b2 Merge pull request #1437 from Tibsfox/fix/researcher-assumption-tagging-1431
feat(researcher): add claim provenance tagging and assumptions log
2026-04-01 17:12:21 -04:00
Tom Boucher
77953ec1d9 Merge pull request #1436 from Tibsfox/fix/codex-path-replacement-1430
fix(install): add .claude path replacement for Codex runtime
2026-04-01 17:11:54 -04:00
Tom Boucher
6204cd6907 Merge pull request #1434 from Tibsfox/fix/verifier-roadmap-sc-bypass-1418
fix(verifier): always load ROADMAP SCs regardless of PLAN must_haves
2026-04-01 17:11:34 -04:00
Tom Boucher
02c41940c7 Merge pull request #1432 from j2h4u/fix/verifier-human-needed-status
fix(verifier): enforce human_needed status when human verification items exist
2026-04-01 17:11:06 -04:00
Tom Boucher
c8cd671020 Merge pull request #1427 from quangdo126/fix/enforce-plan-file-naming
fix: enforce plan file naming convention in gsd-planner agent
2026-04-01 17:10:25 -04:00
Tom Boucher
8cd6dd33c5 Merge pull request #1540 from gsd-build/fix/1504-claude-skills-migration
fix: migrate Claude Code commands/ to skills/ format for 2.1.88+
2026-04-01 17:07:43 -04:00
Tom Boucher
01fda70a19 fix: migrate Claude Code commands/ to skills/ format for 2.1.88+ compatibility
Claude Code 2.1.88+ deprecated commands/ subdirectory discovery in favor of
skills/*/SKILL.md format. This migrates the Claude Code installer to use the
same skills pattern already used by Codex, Copilot, Cursor, Windsurf, and
Antigravity.

Key changes:
- New convertClaudeCommandToClaudeSkill() preserving allowed-tools and argument-hint
- New copyCommandsAsClaudeSkills() mirroring Copilot pattern
- Install now writes skills/gsd-*/SKILL.md instead of commands/gsd/*.md
- Legacy commands/gsd/ cleaned up during install
- Manifest tracks skills/ for Claude Code
- Uninstall handles both skills/ and legacy commands/

Fixes #1504
Supersedes #1538

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-01 17:04:53 -04:00
Tom Boucher
2f03830f4c Merge pull request #1500 from Tibsfox/fix/settings-jsonc-comments-1461
fix(install): handle JSONC (comments) in settings.json without data loss
2026-04-01 17:00:55 -04:00