Commit Graph

2813 Commits

Author SHA1 Message Date
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
Alex Alecu
52585de4ab fix: move Kilo above OpenCode in installer 2026-04-02 11:34:31 +03: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
Ned Malki
523c7199d0 fix: add path traversal validation and unit tests for planningDir
Reject project/workstream names containing path separators or ..
components. Covers both GSD_PROJECT and GSD_WORKSTREAM. Adds 9 tests
for the full resolution matrix and traversal rejection cases.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 09:18:39 +07:00
ngothanhluan
73af4fa815 feat: add OpenCode as a peer reviewer in /gsd:review
Adds OpenCode CLI as a 5th reviewer option, enabling teams with GitHub
Copilot subscriptions to leverage Copilot-routed models (e.g.
gpt-5.3-codex) for cross-AI plan reviews.

Closes #1520

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 06:30:01 +07: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
Tibsfox
2aca125308 feat(autonomous): add --interactive flag for lean context with user input
The autonomous workflow previously had two extremes: full auto-answer
mode (--auto discuss, lean context but no user input) or manager mode
(interactive but bloated context from accumulating everything inline).

The --interactive flag bridges this gap:
- Discuss runs inline via gsd:discuss-phase (asks questions, waits for
  user answers — preserving all design decisions)
- Plan and execute dispatch as background agents (fresh context per
  phase — no accumulation in the main session)
- Pipeline parallelism: discuss Phase N+1 while Phase N builds in the
  background

This keeps the main context lean (only discuss conversations accumulate)
while preserving user input on all decisions. Particularly helpful for
users hitting context limits with /gsd:manager on multi-phase milestones.

Usage:
  /gsd:autonomous --interactive
  /gsd:autonomous --interactive --from 3
  /gsd:autonomous --interactive --only 5

Also adds --only N flag parsing to the upstream workflow (previously only
in PR #1444's branch).

Closes #1413

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-01 14:58:52 -07:00
Tibsfox
2c42f51838 test(config): add automated tests for context_window and subagent_timeout
Add tests covering the three manual verification scenarios for the
context_window and workflow.subagent_timeout config features:

- init execute-phase output includes context_window from config (both
  custom 1M value and 200k default)
- config-get context_window returns the configured value (and errors
  when absent)
- config-set workflow.subagent_timeout accepts numeric values with
  proper string-to-number coercion and round-trips through config-get

All 1517 tests pass.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-01 14:57:25 -07:00
Tibsfox
14b68410cc feat(config): add workflow.subagent_timeout to replace hardcoded 5-minute limit
The map-codebase workflow had a hardcoded 300000ms (5 minute) timeout
for parallel subagent tasks. On large codebases or with slower models
(e.g. GPT via Codex), subagents can need 10-20+ minutes, causing the
parent to kill still-working agents and fall back to sequential mode.

Changes:
- Add workflow.subagent_timeout config key (default: 300000ms)
- Register in VALID_CONFIG_KEYS (config.cjs)
- Add to loadConfig() defaults and return object (core.cjs)
- Emit in map-codebase init context (init.cjs)
- Update map-codebase.md to use config value instead of hardcoded 300000
- Document in planning-config.md reference

Users can now increase the timeout via:
  /gsd:settings workflow.subagent_timeout 900000

Closes #1472

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-01 14:57:24 -07:00
Tibsfox
3cf5355c8c test(config): add config-get tests for git.base_branch
Add two config-get tests to verify the git.base_branch round-trip:
- config-get returns the value after config-set stores it
- config-get errors with "Key not found" when git.base_branch is not
  explicitly set (default config omits it), which triggers the
  auto-detect fallback via origin/HEAD in workflows

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-01 14:56:55 -07:00
Tibsfox
0fb992d151 fix(git): add git.base_branch config to replace hardcoded main target
Adds `git.base_branch` config option that controls the target branch
for PRs and merges. When unset, auto-detects from origin/HEAD and
falls back to "main".

This fixes projects using `master`, `develop`, or any other default
branch — previously `/gsd:ship` would create PRs targeting `main`
(which may not exist) and `/gsd:complete-milestone` would try to
checkout `main` and fail.

Changes:
- config.cjs: add git.base_branch to valid config keys
- planning-config.md: document the option with auto-detect behavior
- ship.md: detect base branch at init, use in PR create, branch
  detection, push report, and completion report
- complete-milestone.md: detect base branch, use for squash merge
  and merge-with-history checkout targets
- 1 new test for config-set git.base_branch

Usage:
  gsd-tools config-set git.base_branch master

Or auto-detect (default — reads origin/HEAD):
  git.base_branch: null

Closes #1466

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-01 14:56:55 -07: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
Victor Carvalho Tavernari
7e71fac76f fix: verify and correct Augment tool mappings based on auggie CLI 2026-04-01 22:24:33 +01:00
Victor Carvalho Tavernari
5a43437bc0 feat: add Augment Code runtime support
- Add --augment flag to install for Augment only
- Add Augment to --all and interactive menu (now 9 runtimes + All)
- Create conversion functions for Augment skills and agents:
  - convertClaudeToAugmentMarkdown: path and brand replacement
  - convertClaudeCommandToAugmentSkill: skill format with adapter header
  - convertClaudeAgentToAugmentAgent: agent format conversion
  - copyCommandsAsAugmentSkills: copy commands as skills
- Map tool names: Bash → launch-process, Edit → str-replace-editor, etc.
- Add runtime label and uninstall support for Augment
- Add tests: augment-conversion.test.cjs with 15 test cases
- Update multi-runtime-select.test.cjs to include Augment

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-01 22:24:33 +01: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
Tom Boucher
53c7c1c993 Merge pull request #1518 from ElliotDrel/feat/full-flag-refactor
feat(quick): make --full include all phases, add --validate flag
2026-04-01 16:59:52 -04:00
Tibsfox
5e88db9577 feat(discuss): add --chain flag for interactive discuss with auto plan+execute
Adds --chain flag to /gsd:discuss-phase that provides the middle ground
between fully manual and fully automatic workflows:

  /gsd:discuss-phase 5 --chain

  - Discussion is fully interactive (user answers questions)
  - After context is captured, auto-advances to plan → execute
  - Same pipeline as --auto, but without auto-answering

This addresses the community request for per-phase automation where
users want to control discuss decisions but skip manual advancement
between plan and execute steps.

Workflow: discuss (interactive) → plan (auto) → execute (auto)

Changes:
- Workflow: --chain flag triggers auto_advance without auto-answering
- Workflow: chain flag synced alongside --auto in ephemeral config
- Workflow: next-phase suggestion preserves --chain vs --auto
- Command: argument-hint and description updated
- Success criteria updated

Closes #1327

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-01 13:56:20 -07:00