Commit Graph

1560 Commits

Author SHA1 Message Date
Tom Boucher
da5a030eac fix(nlpm): resolve 5 critical defects from NLPM audit
- Add missing name: field to workstreams and reapply-patches commands
- Add AskUserQuestion to review-backlog allowed-tools
- Fix conflicting path references in gsd-user-profiler (use ~/.claude/get-shit-done/... convention)
- Add allowed-tools to cleanup, help, and join-discord commands
- Remove empty stub Step 5 from reapply-patches (dead bash comment block)

Closes #1578

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-03 11:28:18 -04:00
Tom Boucher
4d4c3cce22 Merge pull request #1560 from LakshmanTurlapati/fix/session-scoped-workstream-routing
[codex] isolate active workstream state per session
2026-04-03 11:26:36 -04:00
Tom Boucher
60cfc25737 Merge pull request #1586 from marcfargas/fix/dev-install-docs
docs: add missing build:hooks step to development installation
2026-04-03 11:24:30 -04:00
Tom Boucher
2a07b60ab8 Merge pull request #1592 from gsd-build/chore/require-issue-link
chore: require issue link on all PRs
2026-04-03 11:24:05 -04:00
Tom Boucher
65abc1e685 chore: require issue link on all PRs
- PR template: move "Closes #" to top as required field with explicit
  warning that PRs without a linked issue are closed without review
- CONTRIBUTING.md: add mandatory issue-first policy with clear rationale
- Add require-issue-link.yml workflow: checks PR body for a closing
  keyword (Closes/Fixes/Resolves #NNN) on open/edit/reopen/sync events;
  posts a comment and fails CI if no reference is found

PR body is bound to an env var before shell use (injection-safe).
The github-script step uses the API SDK, not shell interpolation.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-03 11:21:43 -04:00
Tom Boucher
ee7e6db428 Merge pull request #1517 from Kilo-Org/feat/kilo-runtime-support
Add Kilo Code support
2026-04-03 11:20:27 -04:00
Tom Boucher
c2830d36b7 Merge pull request #1458 from grgbrasil/feat/test-quality-audit-step
feat: add test quality audit step to verify-phase workflow
2026-04-03 11:17:43 -04:00
Tom Boucher
f86c058988 Merge pull request #1410 from Tibsfox/feat/manager-passthrough-flags-1400
feat(manager): add per-step passthrough flags via config
2026-04-03 11:16:54 -04:00
Marc Fargas
05cb3e8f3f docs: add missing build:hooks step to development installation
The development installation instructions were missing the `npm run
build:hooks` step, which is required when installing from a git clone.
Without it, hooks/dist/ doesn't exist and the installer silently skips
hook copying while still registering them in settings.json, causing
hook errors at runtime.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-03 16:27:53 +02:00
Alex Alecu
5451e13abb fix: clean up remaining Kilo review follow-ups
Remove the unused JSONC helper and duplicate test export so the installer only keeps the shipped fixes. This closes the remaining code-level review feedback after the Kilo support sync.
2026-04-03 14:34:21 +03:00
Alex Alecu
0866290c1b merge: sync Kilo runtime branch with latest main 2026-04-03 12:47:24 +03:00
Alex Alecu
b8b01fca64 fix: normalize Kilo skill paths and guard OpenCode permissions
Keep Kilo skill path rewrites consistent and avoid rewriting valid string-valued OpenCode permission configs while preserving resolved config-dir handling.
2026-04-03 10:55:34 +03:00
LakshmanTurlapati
caec78ed38 fix: harden workstream session routing fallback 2026-04-02 21:36:36 -05:00
LakshmanTurlapati
5ce8183928 fix: isolate active workstream state per session 2026-04-02 20:01:08 -05:00
Tom Boucher
2f7f317c24 Merge pull request #1551 from luanngosodadigital/feat/add-opencode-reviewer
feat: add OpenCode as a peer reviewer in /gsd:review
2026-04-02 20:08:20 -04:00
ngothanhluan
372c0356e5 fix: add empty output guard for OpenCode reviewer
Addresses review feedback — checks if opencode output file is
non-empty after invocation, writes a failure message if empty
to prevent blank sections in REVIEWS.md.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-03 06:56:50 +07:00
ngothanhluan
2ff3853eab fix: address review feedback for OpenCode reviewer integration
- Remove --copilot alias to avoid collision with existing Copilot concept
- Remove hardcoded model (-m) and variant flags; let user's OpenCode
  config determine the model, consistent with other reviewer CLIs
- Use generic "OpenCode Review" section header since model varies by config

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-03 06:36:16 +07:00
Tibsfox
5371622021 fix(manager): validate flag tokens to prevent injection via config (#1410)
Address review feedback: sanitize manager.flags values to allow only
CLI-safe tokens (--flag patterns and alphanumeric values). Invalid
tokens are dropped with a stderr warning. Prevents prompt injection
via compromised config.json.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 16:02:53 -07:00
Tibsfox
99318a09e2 feat(manager): add per-step passthrough flags via config
Adds `manager.flags.{discuss,plan,execute}` config keys so users can
configure flags that /gsd:manager passes to each step when dispatching.
For example, `manager.flags.discuss: "--auto --analyze"` makes every
discuss dispatched from the manager include those flags.

Closes #1400

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 16:02:53 -07:00
Tom Boucher
18fad939ef Merge pull request #1475 from Tibsfox/fix/subagent-timeout-config-1472
feat(config): add workflow.subagent_timeout to replace hardcoded 5-minute limit
2026-04-02 18:03:45 -04:00
Tom Boucher
e705736046 Merge pull request #1484 from NedMalki-Chief/feature/multi-project-workspace
feat: GSD_PROJECT env var for multi-project workspaces
2026-04-02 18:03:20 -04:00
Tom Boucher
647ddcecf9 Merge pull request #1524 from Tavernari/feat/augment-support
feat: Add Augment Code runtime support
2026-04-02 18:02:32 -04:00
Tom Boucher
a7d223fafa Merge pull request #1470 from Tibsfox/fix/base-branch-config-1466
fix(git): add git.base_branch config to replace hardcoded main target
2026-04-02 18:01:53 -04:00
Tom Boucher
56ec1f0360 Merge pull request #1428 from Tibsfox/fix/preserve-profile-on-update-1423
fix(install): preserve USER-PROFILE.md and dev-preferences.md on update
2026-04-02 18:01:30 -04:00
Tom Boucher
f58a71ebce Merge pull request #1480 from Tibsfox/feat/autonomous-interactive-1413
feat(autonomous): add --interactive flag for lean context with user input
2026-04-02 17:58:16 -04:00
gg
759ff38d44 feat: add test quality audit step to verify-phase workflow
Adds a new `audit_test_quality` step between `scan_antipatterns` and
`identify_human_verification` that catches test-level deceptions:

- Disabled tests (it.skip/xit/test.todo) covering phase requirements
- Circular tests (system generating its own expected values)
- Weak assertions (existence-only when value-level proof needed)
- Expected value provenance tracking for parity/migration phases

Any blocker from this audit forces `gaps_found` status, preventing
phases from being marked complete with inadequate test evidence.

Fixes #1457

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 18:55:17 -03:00
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
Victor Carvalho Tavernari
f60b3ad4f9 docs: group OpenCode and Augment verification commands 2026-04-02 15:29:50 +01:00
Victor Carvalho Tavernari
141633bb70 docs: add Augment to runtime list in all README files
- Update main README and 4 translated versions
- Add Augment verification command (/gsd-help)
- Fix runtime list ordering (Windsurf before Antigravity)
2026-04-02 15:28:46 +01:00
Alex Alecu
fc1a4ccba1 merge: sync Kilo runtime branch with main
Bring the latest main branch updates into feat/kilo-runtime-support while preserving KILO_CONFIG resolution, Kilo agent permission conversion, and relative .claude path rewrites.
2026-04-02 16:00:09 +03:00
Tibsfox
6c5f89a4fd fix(install): preserve dev-preferences.md in Claude Code legacy cleanup path
After #1540 migrated Claude Code to skills/ format, the uninstall
added a legacy commands/gsd/ cleanup that wiped the directory without
checking for user files. Add preserve logic to the legacy cleanup path
matching what Gemini's commands/gsd/ path already has.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 05:55:42 -07:00
Tibsfox
11d5c0a4bd fix(test): create commands/gsd/ dir before writing dev-preferences in test
Since #1540 migrated Claude Code to skills/ format, the installer may
not create commands/gsd/ anymore. The test needs to ensure the
directory exists before writing the user file into it.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 05:54:19 -07:00
Tibsfox
bdd41f961e fix(install): add error handling on restore and scalability note
Address review feedback: wrap writeFileSync in try/catch so restore
failures surface a clear error instead of silently losing user files.
Add comment noting the naming convention approach for future scaling.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 05:54:19 -07:00
Tibsfox
08bff6f8e9 test(install): add automated tests for user file preservation (#1423)
E2E tests verifying USER-PROFILE.md and dev-preferences.md survive
uninstall. Covers: profile preservation, preferences preservation,
engine files still removed, clean uninstall without user files.

Addresses review feedback requesting automated coverage for the
preserve-and-restore pattern in the rmSync uninstall path.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 05:54:19 -07:00
Tibsfox
6f3a9d88c7 fix(install): preserve USER-PROFILE.md and dev-preferences.md on update
The uninstall step wipes get-shit-done/ and commands/gsd/ directories
entirely, destroying user-generated files like USER-PROFILE.md (from
/gsd:profile-user) and dev-preferences.md. These files are now read
before rmSync and restored immediately after.

Closes #1423

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 05:54:19 -07:00
Alex Alecu
f8edfe7f15 fix: align Kilo config and agent conversion
Honor KILO_CONFIG across installer and workflow resolution, preserve Claude agent tool intent as explicit Kilo permissions, and rewrite relative .claude references during Kilo conversion.
2026-04-02 15:44:46 +03: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
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