From 86fb9c85c367ea229aab96987540cfa7bb8d3e37 Mon Sep 17 00:00:00 2001 From: Rezolv Date: Mon, 20 Apr 2026 18:09:21 -0400 Subject: [PATCH] docs(sdk): registry docs and gsd-sdk query call sites (#2302 Track B) (#2340) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat(sdk): golden parity harness and query handler CJS alignment (#2302 Track A) Golden/read-only parity tests and registry alignment, query handler fixes (check-completion, state-mutation, commit, validate, summary, etc.), and WAITING.json dual-write for .gsd/.planning readers. Refs gsd-build/get-shit-done#2341 * fix(sdk): getMilestoneInfo matches GSD ROADMAP (🟡, last bold, STATE fallback) - Recognize in-flight 🟡 milestone bullets like 🚧. - Derive from last **vX.Y Title** before ## Phases when emoji absent. - Fall back to STATE.md milestone when ROADMAP is missing; use last bare vX.Y in cleaned text instead of first (avoids v1.0 from shipped list). - Fixes init.execute-phase milestone_version and buildStateFrontmatter after state.begin-phase (syncStateFrontmatter). * feat(sdk): phase list, plan task structure, requirements extract handlers - Register phase.list-plans, phase.list-artifacts, plan.task-structure, requirements.extract-from-plans (SDK-only; golden-policy exceptions). - Add unit tests; document in QUERY-HANDLERS.md. - writeProfile: honor --output, render dimensions, return profile_path and dimensions_scored. * feat(sdk): centralize getGsdAgentsDir in query helpers Extract agent directory resolution to helpers (GSD_AGENTS_DIR, primary ~/.claude/agents, legacy path). Use from init and docs-init init bundles. docs(15): add 15-CONTEXT for autonomous phase-15 run. * feat(sdk): query CLI CJS fallback and session correlation - createRegistry(eventStream, sessionId) threads correlation into mutation events - gsd-sdk query falls back to gsd-tools.cjs when no native handler matches (disable with GSD_QUERY_FALLBACK=off); stderr bridge warnings - Export createRegistry from @gsd-build/sdk; add sdk/README.md - Update QUERY-HANDLERS.md and registry module docs for fallback + sessionId - Agents: prefer node dist/cli.js query over cat/grep for STATE and plans * fix(sdk): init phase_found parity, docs-init agents path, state field extract - Normalize findPhase not-found to null before roadmap fallback (matches findPhaseInternal) - docs-init: use detectRuntime + resolveAgentsDir for checkAgentsInstalled - state.cjs stateExtractField: horizontal whitespace only after colon (YAML progress guard) - Tests: commit_docs default true; config-get golden uses temp config; golden integration green Refs: #2302 * refactor(sdk): share SessionJsonlRecord in profile-extract-messages CodeRabbit nit: dedupe JSONL record shape for isGenuineUserMessage and streamExtractMessages. * fix(sdk): address CodeRabbit major threads (paths, gates, audit, verify) - Resolve @file: and CLI JSON indirection relative to projectDir; guard empty normalized query command - plan.task-structure + intel extract/patch-meta: resolvePathUnderProject containment - check.config-gates: safe string booleans; plan_checker alias precedence over plan_check default - state.validate/sync: phaseTokenMatches + comparePhaseNum ordering - verify.schema-drift: token match phase dirs; files_modified from parsed frontmatter - audit-open: has_scan_errors, unreadable rows, human report when scans fail - requirements PLANNED key PLAN for root PLAN.md; gsd-tools timeout note - ingest-docs: repo-root path containment; classifier output slug-hash Golden parity test strips has_scan_errors until CJS adds field. * fix: Resolve CodeRabbit security and quality findings - Secure intel.ts and cli.ts against path traversal - Catch and validate git add status in commit.ts - Expand roadmap milestone marker extraction - Fix parsing array-of-objects in frontmatter YAML - Fix unhandled config evaluations - Improve coverage test parity mapping * docs(sdk): registry docs and gsd-sdk query call sites (#2302 Track B) Update CHANGELOG, architecture and user guides, workflow call sites, and read-guard tests for gsd-sdk query; sync ARCHITECTURE.md command/workflow counts and directory-tree totals with the repo (80 commands, 77 workflows). Address CodeRabbit: fix markdown tables and emphasis; align CLI-TOOLS GSDTools and state.read docs with implementation; correct roadmap handler name in universal-anti-patterns; resolve settings workflow config path without relying on config_path from state.load. Refs gsd-build/get-shit-done#2340 * test: raise planner character extraction limit to 48K * fix(sdk): resolve build TS error and doc conflict markers --- CHANGELOG.md | 831 ++++++++++++------ docs/ARCHITECTURE.md | 159 ++-- docs/CLI-TOOLS.md | 76 +- docs/CONFIGURATION.md | 8 +- docs/README.md | 2 +- docs/USER-GUIDE.md | 93 +- docs/gsd-sdk-query-migration-blurb.md | 2 +- docs/ja-JP/README.md | 2 +- docs/ko-KR/README.md | 2 +- docs/pt-BR/CLI-TOOLS.md | 2 +- docs/pt-BR/README.md | 2 +- .../references/decimal-phase-calculation.md | 15 +- docs/zh-CN/references/git-integration.md | 6 +- docs/zh-CN/references/git-planning-commit.md | 12 +- docs/zh-CN/references/planning-config.md | 14 +- get-shit-done/references/planning-config.md | 2 +- .../references/universal-anti-patterns.md | 4 +- get-shit-done/workflows/complete-milestone.md | 8 +- .../workflows/discuss-phase-assumptions.md | 11 +- get-shit-done/workflows/discuss-phase.md | 9 +- get-shit-done/workflows/execute-phase.md | 16 +- get-shit-done/workflows/plan-phase.md | 4 +- get-shit-done/workflows/settings.md | 14 +- get-shit-done/workflows/sketch.md | 4 +- get-shit-done/workflows/update.md | 18 +- get-shit-done/workflows/verify-work.md | 2 +- tests/read-guard.test.cjs | 2 +- 27 files changed, 873 insertions(+), 447 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3bed2b3c..2407e8a6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,7 +4,31 @@ All notable changes to GSD will be documented in this file. Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). -## [Unreleased] +## [Unreleased](https://github.com/gsd-build/get-shit-done/compare/v1.37.1...HEAD) + +### SDK query layer — Phase 3 (what you get) + +If you use GSD **as a workflow**—milestones, phases, `.planning/` artifacts, bundled workflows, and `**/gsd:`** commands—Phase 3 is about **behavior matching what the docs and steps promise**, and **a bit less overhead** when the framework advances a phase or bootstraps a new project for you. + +- **Your workflow shouldn’t silently drift from the docs** — The actions that touch **STATE**, **ROADMAP**, git commits, config, and init/bootstrap are **continuously compared** to the legacy `gsd-tools.cjs` behavior in automated tests. The point for you: fewer “the workflow said X but the tooling did Y” moments as GSD ships updates (#2302). +- **Snappier phase and new-project flows (typical path)** — When you’re **not** on a workstream override, the frequent “where is this phase?”, “what’s left to run?”, “mark phase complete”, and similar steps **avoid spawning a whole extra Node process every time**. Same outcomes you expect from the workflow; it should just feel **lighter** when things run headless or in tight loops (#2302). +- **You can see what to run next** — Documentation now states clearly **when to use `gsd-sdk query`** and **when a step still needs the legacy script** (only a few tools). The legacy script is **marked deprecated** in source but **not removed**—existing hooks and scripts keep working while you align with current examples (#2302). + +### Added + +- **`gsd-sdk query check auto-mode`** — Decision-routing audit Tier 2: one JSON blob for `workflow.auto_advance` + `workflow._auto_chain_active` with `active`, `source`, and per-flag fields; workflows use `--pick active` or `--pick auto_chain_active` instead of paired `config-get` calls (#2302). +- **SDK Phase 3 — parity and regression guardrails** — Behind the scenes, exhaustive tests ensure the **workflow-facing query commands** stay aligned with the legacy CLI (including write paths and multi-step init). *Contributors:* policy coverage, read-only JSON parity, mutation sandboxes, `init.*` composition tests; `verifyGoldenPolicyComplete()`, `read-only-golden-rows`, `mutation-subprocess.integration.test.ts` (#2302). + +### Changed + +- **SDK Phase 3 — runner hot path uses the registry directly** — When you run **phase lifecycle** or **new-project init** through the SDK, the common STATE/roadmap/plan-index/complete/commit/config calls **skip extra subprocess overhead** on the default path (workstreams and test overrides unchanged). *Contributors:* `GSDTools` → `initPhaseOp`, `phasePlanIndex`, `phaseComplete`, `initNewProject`, `configSet`, `commit` (#2302). +- **Docs — `docs/CLI-TOOLS.md`** — New **SDK and programmatic access** section (registry-first guidance, CJS→`gsd-sdk query` examples, `GSDTools`/workstream behavior, `state load` vs registry state handlers, CLI-only commands); **See also** links to `QUERY-HANDLERS.md`, Architecture, and COMMANDS (#2302). +- **Docs — `docs/USER-GUIDE.md`** — Programmatic CLI subsection: corrected CLI-only vs registry commands; anchor link to CLI-TOOLS SDK section; `state load` caveat cross-reference (#2302). +- **CJS deprecation** — `get-shit-done/bin/gsd-tools.cjs` documents `@deprecated` in favor of `gsd-sdk query` and `@gsd-build/sdk` (#2302). + +### Fixed + +- **Shell hooks falsely flagged as stale on every session** — `gsd-phase-boundary.sh`, `gsd-session-state.sh`, and `gsd-validate-commit.sh` now ship with a `# gsd-hook-version: {{GSD_VERSION}}` header; the installer substitutes `{{GSD_VERSION}}` in `.sh` hooks the same way it does for `.js` hooks; and the stale-hook detector in `gsd-check-update.js` now matches bash `#` comment syntax in addition to JS `//` syntax. All three changes are required together — neither the regex fix alone nor the install fix alone is sufficient to resolve the false positive (#2136, #2206, #2209, #2210, #2212) ### Added - **`/gsd-ingest-docs` command** — Scan a repo containing mixed ADRs, PRDs, SPECs, and DOCs and bootstrap or merge the full `.planning/` setup from them in a single pass. Parallel classification (`gsd-doc-classifier`), synthesis with precedence rules and cycle detection (`gsd-doc-synthesizer`), three-bucket conflicts report (`INGEST-CONFLICTS.md`: auto-resolved, competing-variants, unresolved-blockers), and hard-block on LOCKED-vs-LOCKED ADR contradictions in both new and merge modes. Supports directory-convention discovery and `--manifest ` YAML override with per-doc precedence. v1 caps at 50 docs per invocation; `--resolve interactive` is reserved. Extracts shared conflict-detection contract into `references/doc-conflict-engine.md` which `/gsd-import` now also consumes (#2387) @@ -66,31 +90,41 @@ Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). - **Installer custom files** — Restore detect-custom-files and backup_custom_files (#1997) - **Agent re-read loops** — Add no-re-read critical rules to ui-checker and planner (#2346) -## [1.36.0] - 2026-04-14 +## [1.36.0](https://github.com/gsd-build/get-shit-done/releases/tag/v1.36.0) - 2026-04-14 + +### SDK query layer — Phases 1 & 2 (what you get) + +Day to day, GSD still revolves around **your planning tree** (ROADMAP, STATE, phase folders, config) and **following the workflow** (discuss → plan → execute → verify, milestone closes, etc.). Phases 1 and 2 introduce `**gsd-sdk query`** so those “plumbing” steps have a **supported, first-class CLI**—and so **what workflows and `/gsd:` docs tell you to paste** is closer to what actually runs. + +- **Phase 1 — Unblock faster when a step fails (#2118)** — The same kinds of checks and updates your **workflows, hooks, and agents** rely on—reading phase context, roadmap, STATE, init payloads, config, validation—can go through `**gsd-sdk query`**. When something is wrong (bad path, missing file, invalid args), you get **errors you can act on**, not an opaque script dump—so a stuck phase or a bad copy-paste is easier to fix, and **your own** terminal or CI glue beside GSD is easier to keep stable. +- **Phase 2 — Trust the examples in workflows (#2122, #2008)** — The `**gsd-sdk query`** CLI **only runs commands that exist**—no accidental fallback to something else. **Workflow and agent examples** were updated to match. A few **special-case tools** (e.g. **graphify**, **from-gsd2**) still call the legacy binary until they’re brought onto the same path; `**docs/CLI-TOOLS.md`** and `**sdk/src/query/QUERY-HANDLERS.md**` list what’s in scope. Hardening (commits, locks, paths, argument parsing) mostly shows up as **fewer odd failures mid-milestone** when STATE, roadmap, and git steps run. + +Technical implementation details for Phase 2 appear in the **Changed** section below. ### Added -- **`/gsd-graphify` integration** — Knowledge graph for planning agents, enabling richer context connections between project artifacts (#2164) -- **`gsd-pattern-mapper` agent** — Codebase pattern analysis agent for identifying recurring patterns and conventions (#1861) -- **`@gsd-build/sdk` — Phase 1 typed query foundation** — Registry-based `gsd-sdk query` command with classified errors and unit-tested handlers for state, roadmap, phase lifecycle, init, config, and validation (#2118) + +- `**/gsd-graphify` integration** — Knowledge graph for planning agents, enabling richer context connections between project artifacts (#2164) +- `**gsd-pattern-mapper` agent** — Codebase pattern analysis agent for identifying recurring patterns and conventions (#1861) +- `**@gsd-build/sdk` — Phase 1 typed query foundation (#2118)** — Introduces `**gsd-sdk query`** and registry-backed handlers; see **SDK query layer — Phases 1 & 2** above for how that fits the workflow. - **Opt-in TDD pipeline mode** — `tdd_mode` exposed in init JSON with `--tdd` flag override for test-driven development workflows (#2119, #2124) - **Stale/orphan worktree detection (W017)** — `validate-health` now detects stale and orphan worktrees (#2175) - **Seed scanning in new-milestone** — Planted seeds are scanned during milestone step 2.5 for automatic surfacing (#2177) - **Artifact audit gate** — Open artifact auditing for milestone close and phase verify (#2157, #2158, #2160) -- **`/gsd-quick` and `/gsd-thread` subcommands** — Added list/status/resume/close subcommands (#2159) +- `**/gsd-quick` and `/gsd-thread` subcommands** — Added list/status/resume/close subcommands (#2159) - **Debug skill dispatch and session manager** — Sub-orchestrator for `/gsd-debug` sessions (#2154) - **Project skills awareness** — 9 GSD agents now discover and use project-scoped skills (#2152) -- **`/gsd-debug` session management** — TDD gate, reasoning checkpoint, and security hardening (#2146) +- `**/gsd-debug` session management** — TDD gate, reasoning checkpoint, and security hardening (#2146) - **Context-window-aware prompt thinning** — Automatic prompt size reduction for sub-200K models (#1978) - **SDK `--ws` flag** — Workstream-aware execution support (#1884) -- **`/gsd-extract-learnings` command** — Phase knowledge capture workflow (#1873) +- `**/gsd-extract-learnings` command** — Phase knowledge capture workflow (#1873) - **Cross-AI execution hook** — Step 2.5 in execute-phase for external AI integration (#1875) - **Ship workflow external review hook** — External code review command hook in ship workflow - **Plan bounce hook** — Optional external refinement step (12.5) in plan-phase workflow - **Cursor CLI self-detection** — Cursor detection and REVIEWS.md template for `/gsd-review` (#1960) - **Architectural Responsibility Mapping** — Added to phase-researcher pipeline (#1988, #2103) - **Configurable `claude_md_path`** — Custom CLAUDE.md path setting (#2010, #2102) -- **`/gsd-skill-manifest` command** — Pre-compute skill discovery for faster session starts (#2101) -- **`--dry-run` mode and resolved blocker pruning** — State management improvements (#1970) +- `**/gsd-skill-manifest` command** — Pre-compute skill discovery for faster session starts (#2101) +- `**--dry-run` mode and resolved blocker pruning** — State management improvements (#1970) - **State prune command** — Prune unbounded section growth in STATE.md (#1970) - **Global skills support** — Support `~/.claude/skills/` in `agent_skills` config (#1992) - **Context exhaustion auto-recording** — Hooks auto-record session state on context exhaustion (#1974) @@ -98,8 +132,9 @@ Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). - **Flow diagram directive for phase researcher** — Data-flow architecture diagrams enforced (#2139, #2147) ### Changed + - **Planner context-cost sizing** — Replaced time-based reasoning with context-cost sizing and multi-source coverage audit (#2091, #2092, #2114) -- **`/gsd-next` prior-phase completeness scan** — Replaced consecutive-call counter with completeness scan (#2097) +- `**/gsd-next` prior-phase completeness scan** — Replaced consecutive-call counter with completeness scan (#2097) - **Inline execution for small plans** — Default to inline execution, skip subagent overhead for small plans (#1979) - **Prior-phase context optimization** — Limited to 3 most recent phases and includes `Depends on` phases (#1969) - **Non-technical owner adaptation** — `discuss-phase` adapts gray area language for non-technical owners via USER-PROFILE.md (#2125, #2173) @@ -108,9 +143,9 @@ Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). - **Branch cleanup workflow** — Auto-delete on merge + weekly sweep (#2051) - **PR #2179 maintainer review (Trek-e)** — Scoped SDK to Phase 2 (#2122): removed `gsd-sdk query` passthrough to `gsd-tools.cjs` and `GSD_TOOLS_PATH` override; argv routing consolidated in `resolveQueryArgv()`. `GSDTools` JSON parsing now reports `@file:` indirection read failures instead of failing opaquely. `execute-plan.md` defers Task Commit Protocol to `agents/gsd-executor.md` (single source of truth). Stale `/gsd:` scan (#1748) skips `.planning/` and root `CLAUDE.md` so local gitignored overlays do not fail CI. - **SDK query registry (PR #2179 review)** — Register `summary-extract` as an alias of `summary.extract` so workflows/agents match CJS naming. Correct `audit-fix.md` to call `audit-uat` instead of nonexistent `init.audit-uat`. -- **`gsd-tools audit-open`** — Use `core.output()` (was undefined `output()`), and pass the artifact object for `--json` so stdout is JSON (not double-stringified). +- `**gsd-tools audit-open`** — Use `core.output()` (was undefined `output()`), and pass the artifact object for `--json` so stdout is JSON (not double-stringified). - **SDK query layer (PR review hardening)** — `commit-to-subrepo` uses realpath-aware path containment and sanitized commit messages; `state.planned-phase` uses the STATE.md lockfile; `verifyKeyLinks` mitigates ReDoS on frontmatter patterns; frontmatter handlers resolve paths under the real project root; phase directory names reject `..` and separators; `gsd-sdk` restores strict CLI parsing by stripping `--pick` before `parseArgs`; `QueryRegistry.commands()` for enumeration; `todoComplete` uses static error imports. -- **`gsd-sdk query` routing (Phase 2 scope)** — `resolveQueryArgv()` maps argv to registered handlers (longest-prefix match on dotted and spaced command keys; optional single-token dotted split). Unregistered commands are rejected at the CLI; use `node …/gsd-tools.cjs` for CJS-only subcommands. `resolveGsdToolsPath()` probes the SDK-bundled copy, then project and user `~/.claude/get-shit-done/` installs (no `GSD_TOOLS_PATH` override). Broader “CLI parity” passthrough is explicitly out of scope for #2122 and tracked separately for a future approved issue. +- `**gsd-sdk query` routing (Phase 2 scope)** — `resolveQueryArgv()` maps argv to registered handlers (longest-prefix match on dotted and spaced command keys; optional single-token dotted split). Unregistered commands are rejected at the CLI; use `node …/gsd-tools.cjs` for CJS-only subcommands. `resolveGsdToolsPath()` probes the SDK-bundled copy, then project and user `~/.claude/get-shit-done/` installs (no `GSD_TOOLS_PATH` override). Broader “CLI parity” passthrough is explicitly out of scope for #2122 and tracked separately for a future approved issue. - **SDK query follow-up (tests, docs, registry)** — Expanded `QUERY_MUTATION_COMMANDS` for event emission; stale lock cleanup uses PID liveness (`process.kill(pid, 0)`) when a lock file exists; `searchJsonEntries` is depth-bounded (`MAX_JSON_SEARCH_DEPTH`); removed unnecessary `readdirSync`/`Dirent` casts across query handlers; added `sdk/src/query/QUERY-HANDLERS.md` (error vs `{ data.error }`, mutations, locks, intel limits); unit tests for intel, profile, uat, skills, summary, websearch, workstream, registry vs `QUERY_MUTATION_COMMANDS`, and frontmatter extract/splice round-trip. - **Phase 2 caller migration (#2122)** — Workflows, agents, and commands prefer `gsd-sdk query` for registered handlers; extended migration to additional orchestration call sites (review, plan-phase, execute-plan, ship, extract_learnings, ai-integration-phase, eval-review, next, profile-user, autonomous, thread command) and researcher agents; dual-path and CJS-only exceptions documented in `docs/CLI-TOOLS.md` and `docs/ARCHITECTURE.md`; relaxed `tests/gsd-tools-path-refs.test.cjs` so `commands/gsd/workstreams.md` may document `gsd-sdk query` without `node` + `gsd-tools.cjs`. CJS `gsd-tools.cjs` remains on disk; graphify and other non-registry commands stay on CJS until registered. (#2008) - **Phase 2 docs and call sites (follow-up)** — `docs/USER-GUIDE.md` now explains `gsd-sdk query` vs legacy CJS and lists CJS-only commands (`state validate`/`sync`, `audit-open`, `graphify`, `from-gsd2`). Updated `commands/gsd` (`debug`, `quick`, `intel`), `agents/gsd-debug-session-manager.md`, and workflows (`milestone-summary`, `forensics`, `next`, `complete-milestone`, `verify-work`, `discuss-phase`, `progress`, `verify-phase`, `add-phase`/`insert-phase`/`remove-phase`, `transition`, `manager`, `quick`) for `gsd-sdk query` or explicit CJS exceptions (`audit-open`). @@ -118,6 +153,7 @@ Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). - **Phase 2 `commit` example sweep (#2122)** — Normalized `gsd-sdk query commit` usage across `get-shit-done/workflows/**/*.md`, `get-shit-done/references/**/*.md`, and `commands/gsd/**/*.md` so file paths follow the message positionally (SDK `commit` handler); `gsd-sdk query commit-to-subrepo … --files …` unchanged. Updated `get-shit-done/references/git-planning-commit.md` prose; adjusted workflow contract tests (`claude-md`, forensics, milestone-summary, gates taxonomy CRLF-safe `required_reading`, verifier `roadmap.analyze`) for the new examples. ### Fixed + - **Init ignores archived phases** — Archived phases from prior milestones sharing a phase number no longer interfere (#2186) - **UAT file listing** — Removed `head -5` truncation from verify-work (#2172) - **Intel status relative time** — Display relative time correctly (#2132) @@ -147,62 +183,70 @@ Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). - **SDK query layer hardening** — Realpath-aware path containment, ReDoS mitigation, strict CLI parsing, phase directory sanitization (#2118) - **Prompt injection scan** — Allowlist plan-phase.md -## [1.35.0] - 2026-04-10 +## [1.35.0](https://github.com/gsd-build/get-shit-done/releases/tag/v1.35.0) - 2026-04-10 ### Added + - **Cline runtime support** — First-class Cline runtime via rules-based integration. Installs to `~/.cline/` or `./.cline/` as `.clinerules`. No custom slash commands — uses rules. `--cline` flag. (#1605 follow-up) - **CodeBuddy runtime support** — Skills-based install to `~/.codebuddy/skills/gsd-*/SKILL.md`. `--codebuddy` flag. - **Qwen Code runtime support** — Skills-based install to `~/.qwen/skills/gsd-*/SKILL.md`, same open standard as Claude Code 2.1.88+. `QWEN_CONFIG_DIR` env var for custom paths. `--qwen` flag. -- **`/gsd-from-gsd2` command** (`gsd:from-gsd2`) — Reverse migration from GSD-2 format (`.gsd/` with Milestone→Slice→Task hierarchy) back to v1 `.planning/` format. Flags: `--dry-run` (preview only), `--force` (overwrite existing `.planning/`), `--path ` (specify GSD-2 root). Produces `PROJECT.md`, `REQUIREMENTS.md`, `ROADMAP.md`, `STATE.md`, and sequential phase dirs. Flattens Milestone→Slice hierarchy to sequential phase numbers (M001/S01→phase 01, M001/S02→phase 02, M002/S01→phase 03, etc.). -- **`/gsd-ai-integration-phase` command** (`gsd:ai-integration-phase`) — AI framework selection wizard for integrating AI/LLM capabilities into a project phase. Interactive decision matrix with domain-specific failure modes and eval criteria. Produces `AI-SPEC.md` with framework recommendation, implementation guidance, and evaluation strategy. Runs 3 parallel specialist agents: domain-researcher, framework-selector, ai-researcher, eval-planner. -- **`/gsd-eval-review` command** (`gsd:eval-review`) — Retroactive audit of an implemented AI phase's evaluation coverage. Checks implementation against `AI-SPEC.md` evaluation plan. Scores each eval dimension as COVERED/PARTIAL/MISSING. Produces `EVAL-REVIEW.md` with findings, gaps, and remediation guidance. +- `**/gsd-from-gsd2` command** (`gsd:from-gsd2`) — Reverse migration from GSD-2 format (`.gsd/` with Milestone→Slice→Task hierarchy) back to v1 `.planning/` format. Flags: `--dry-run` (preview only), `--force` (overwrite existing `.planning/`), `--path ` (specify GSD-2 root). Produces `PROJECT.md`, `REQUIREMENTS.md`, `ROADMAP.md`, `STATE.md`, and sequential phase dirs. Flattens Milestone→Slice hierarchy to sequential phase numbers (M001/S01→phase 01, M001/S02→phase 02, M002/S01→phase 03, etc.). +- `**/gsd-ai-integration-phase` command** (`gsd:ai-integration-phase`) — AI framework selection wizard for integrating AI/LLM capabilities into a project phase. Interactive decision matrix with domain-specific failure modes and eval criteria. Produces `AI-SPEC.md` with framework recommendation, implementation guidance, and evaluation strategy. Runs 3 parallel specialist agents: domain-researcher, framework-selector, ai-researcher, eval-planner. +- `**/gsd-eval-review` command** (`gsd:eval-review`) — Retroactive audit of an implemented AI phase's evaluation coverage. Checks implementation against `AI-SPEC.md` evaluation plan. Scores each eval dimension as COVERED/PARTIAL/MISSING. Produces `EVAL-REVIEW.md` with findings, gaps, and remediation guidance. - **Review model configuration** — Per-CLI model selection for /gsd-review via `review.models.` config keys. Falls back to CLI defaults when not set. (#1849) - **Statusline now surfaces GSD milestone/phase/status** — when no `in_progress` todo is active, `gsd-statusline.js` reads `.planning/STATE.md` (walking up from the workspace dir) and fills the middle slot with ` · · (N/total)`. Gracefully degrades when fields are missing; identical to previous behavior when there is no STATE.md or an active todo wins the slot. Uses the YAML frontmatter added for #628. - **Qwen Code and Cursor CLI peer reviewers** — Added as reviewers in `/gsd-review` with `--qwen` and `--cursor` flags. (#1966) ### Changed + - **Worktree safety — `git clean` prohibition** — `gsd-executor` now prohibits `git clean` in worktree context to prevent deletion of prior wave output. (#2075) - **Executor deletion verification** — Pre-merge deletion checks added to catch missing artifacts before executor commit. (#2070) - **Hard reset in worktree branch check** — `--hard` flag in `worktree_branch_check` now correctly resets the file tree, not just HEAD. (#2073) ### Fixed -- **Context7 MCP CLI fallback** — Handles `tools: []` response that previously broke Context7 availability detection. (#1885) -- **`Agent` tool in gsd-autonomous** — Added `Agent` to `allowed-tools` to unblock subagent spawning. (#2043) -- **`intel.enabled` in config-set whitelist** — Config key now accepted by `config-set` without validation error. (#2021) -- **`writeSettings` null guard** — Guards against null `settingsPath` for Cline runtime to prevent crash on install. (#2046) -- **Shell hook absolute paths** — `.sh` hooks now receive absolute quoted paths in `buildHookCommand`, fixing path resolution in non-standard working directories. (#2045) -- **`processAttribution` runtime-aware** — Was hardcoded to `'claude'`; now reads actual runtime from environment. -- **`AskUserQuestion` plain-text fallback** — Non-Claude runtimes now receive plain-text numbered lists instead of broken TUI menus. -- **iOS app scaffold uses XcodeGen** — Prevents SPM execution errors in generated iOS scaffolds. (#2023) -- **`acceptance_criteria` hard gate** — Enforced as a hard gate in executor — plans missing acceptance criteria are rejected before execution begins. (#1958) -- **`normalizePhaseName` preserves letter suffix case** — Phase names with letter suffixes (e.g., `1a`, `2B`) now preserve original case. (#1963) -## [1.34.2] - 2026-04-06 +- **Context7 MCP CLI fallback** — Handles `tools: []` response that previously broke Context7 availability detection. (#1885) +- `**Agent` tool in gsd-autonomous** — Added `Agent` to `allowed-tools` to unblock subagent spawning. (#2043) +- `**intel.enabled` in config-set whitelist** — Config key now accepted by `config-set` without validation error. (#2021) +- `**writeSettings` null guard** — Guards against null `settingsPath` for Cline runtime to prevent crash on install. (#2046) +- **Shell hook absolute paths** — `.sh` hooks now receive absolute quoted paths in `buildHookCommand`, fixing path resolution in non-standard working directories. (#2045) +- `**processAttribution` runtime-aware** — Was hardcoded to `'claude'`; now reads actual runtime from environment. +- `**AskUserQuestion` plain-text fallback** — Non-Claude runtimes now receive plain-text numbered lists instead of broken TUI menus. +- **iOS app scaffold uses XcodeGen** — Prevents SPM execution errors in generated iOS scaffolds. (#2023) +- `**acceptance_criteria` hard gate** — Enforced as a hard gate in executor — plans missing acceptance criteria are rejected before execution begins. (#1958) +- `**normalizePhaseName` preserves letter suffix case** — Phase names with letter suffixes (e.g., `1a`, `2B`) now preserve original case. (#1963) + +## [1.34.2](https://github.com/gsd-build/get-shit-done/releases/tag/v1.34.2) - 2026-04-06 ### Changed + - **Node.js minimum lowered to 22** — `engines.node` was raised to `>=24.0.0` based on a CI matrix change, but Node 22 is still in Active LTS until October 2026. Restoring Node 22 support eliminates the `EBADENGINE` warning for users on the previous LTS line. CI matrix now tests against both Node 22 and Node 24. -## [1.34.1] - 2026-04-06 +## [1.34.1](https://github.com/gsd-build/get-shit-done/releases/tag/v1.34.1) - 2026-04-06 ### Fixed + - **npm publish catchup** — v1.33.0 and v1.34.0 were tagged but never published to npm; this release makes all changes available via `npx get-shit-done-cc@latest` - Removed npm v1.32.0 stuck notice from README -## [1.34.0] - 2026-04-06 +## [1.34.0](https://github.com/gsd-build/get-shit-done/releases/tag/v1.34.0) - 2026-04-06 ### Added + - **Gates taxonomy reference** — 4 canonical gate types (pre-flight, revision, escalation, abort) with phase matrix wired into plan-checker and verifier agents (#1781) - **Post-merge hunk verification** — `reapply-patches` now detects silently dropped hunks after three-way merge (#1775) - **Execution context profiles** — Three context profiles (`dev`, `research`, `review`) for mode-specific agent output guidance (#1807) ### Fixed + - **Shell hooks missing from npm package** — `hooks/*.sh` files excluded from tarball due to `hooks/dist` allowlist; changed to `hooks` (#1852 #1862) - **detectConfigDir priority** — `.claude` now searched first so Claude Code users don't see false update warnings when multiple runtimes are installed (#1860) - **Milestone backlog preservation** — `phases clear` no longer wipes 999.x backlog phases (#1858) -## [1.33.0] - 2026-04-05 +## [1.33.0](https://github.com/gsd-build/get-shit-done/releases/tag/v1.33.0) - 2026-04-05 ### Added + - **Queryable codebase intelligence system** -- Persistent `.planning/intel/` store with structured JSON files (files, exports, symbols, patterns, dependencies). Query via `gsd-tools intel` subcommands. Incremental updates via `gsd-intel-updater` agent. Opt-in; projects without intel store are unaffected. (#1688) - **Shared behavioral references** — Add questioning, domain-probes, and UI-brand reference docs wired into workflows (#1658) - **Chore / Maintenance issue template** — Structured template for internal maintenance tasks (#1689) @@ -210,11 +254,13 @@ Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). - **MODEL_ALIAS_MAP regression test** — Ensures model aliases stay current (#1698) ### Changed + - **CONFIG_DEFAULTS constant** — Deduplicate config defaults into single source of truth in core.cjs (#1708) - **Test standardization** — All tests migrated to `node:assert/strict` and `t.after()` cleanup per CONTRIBUTING.md (#1675) - **CI matrix** — Drop Windows runner, add static hardcoded-path detection (#1676) ### Fixed + - **Kilo path replacement** — `copyFlattenedCommands` now applies path replacement for Kilo runtime (#1710) - **Prompt guard injection pattern** — Add missing 'act as' pattern to hook (#1697) - **Frontmatter inline array parser** — Respect quoted commas in array values (REG-04) (#1695) @@ -226,6 +272,7 @@ Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). - **Discord invite link** — Update from vanity URL to permanent invite link (#1648) ### Documentation + - **COMMANDS.md** — Add /gsd-secure-phase and /gsd-docs-update (#1706) - **AGENTS.md** — Add 3 missing agents, fix stale counts (#1703) - **ARCHITECTURE.md** — Update component counts and missing entries (#1701) @@ -234,18 +281,19 @@ Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). ## [1.32.0] - 2026-04-04 ### Added + - **Trae runtime support** — Install GSD for Trae IDE via `--trae` flag (#1566) - **Kilo CLI runtime support** — Full Kilo runtime integration with skill conversion and config management - **Augment Code runtime support** — Full Augment runtime with skill conversion - **Cline runtime support** — Install GSD for Cline via `.clinerules` (#1605) -- **`state validate` command** — Detects drift between STATE.md and filesystem reality (#1627) -- **`state sync` command** — Reconstructs STATE.md from actual project state with `--verify` dry-run (#1627) -- **`state planned-phase` command** — Records state transition after plan-phase completes (#1627) -- **`--to N` flag for autonomous mode** — Stop execution after completing a specific phase (#1644) -- **`--power` flag for discuss-phase** — File-based bulk question answering (#1513) -- **`--interactive` flag for autonomous** — Lean context with user input -- **`--diagnose` flag for debug** — Diagnosis-only mode without fix attempts (#1396) -- **`/gsd-analyze-dependencies` command** — Detect phase dependencies (#1607) +- `**state validate` command** — Detects drift between STATE.md and filesystem reality (#1627) +- `**state sync` command** — Reconstructs STATE.md from actual project state with `--verify` dry-run (#1627) +- `**state planned-phase` command** — Records state transition after plan-phase completes (#1627) +- `**--to N` flag for autonomous mode** — Stop execution after completing a specific phase (#1644) +- `**--power` flag for discuss-phase** — File-based bulk question answering (#1513) +- `**--interactive` flag for autonomous** — Lean context with user input +- `**--diagnose` flag for debug** — Diagnosis-only mode without fix attempts (#1396) +- `**/gsd-analyze-dependencies` command** — Detect phase dependencies (#1607) - **Anti-pattern severity levels** — Mandatory understanding checks at resume (#1491) - **Methodology artifact type** — Consumption mechanisms for methodology documents (#1488) - **Planner reachability check** — Validates plan steps are achievable (#1606) @@ -266,11 +314,13 @@ Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). - **Test quality audit step** — Added to verify-phase workflow ### Changed + - **Modular planner decomposition** — `gsd-planner.md` split into reference files to stay under 50K char limit (#1612) - **Sequential worktree dispatch** — Replaced timing-based stagger with sequential `Task()` + `run_in_background` (#1541) - **Skill format migration** — All user-facing suggestions updated from `/gsd:xxx` to `/gsd-xxx` (#1579) ### Fixed + - **Phase resolution prefix collision** — `find-phase` now uses exact token matching; `1009` no longer matches `1009A` (#1635) - **Roadmap backlog phase lookup** — `roadmap get-phase` falls back to full ROADMAP.md for phases outside current milestone (#1634) - **Performance Metrics in `phase complete`** — Now updates Velocity and By Phase table on phase completion (#1627) @@ -299,24 +349,27 @@ Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). ## [1.31.0] - 2026-04-01 ### Added + - **Claude Code 2.1.88+ skills migration** — Commands now install as `skills/gsd-*/SKILL.md` instead of deprecated `commands/gsd/`. Auto-cleans legacy directory on install -- **`/gsd:docs-update` command** — Verified documentation generation with doc-writer and doc-verifier agents -- **`--chain` flag for discuss-phase** — Interactive discuss that auto-chains into plan+execute -- **`--only N` flag for autonomous** — Execute a single phase instead of all remaining +- `**/gsd:docs-update` command** — Verified documentation generation with doc-writer and doc-verifier agents +- `**--chain` flag for discuss-phase** — Interactive discuss that auto-chains into plan+execute +- `**--only N` flag for autonomous** — Execute a single phase instead of all remaining - **Schema drift detection** — Prevents false-positive verification when ORM schema files change without migration -- **`/gsd:secure-phase` command** — Security enforcement layer with threat-model-anchored verification +- `**/gsd:secure-phase` command** — Security enforcement layer with threat-model-anchored verification - **Claim provenance tagging** — Researcher marks claims with source evidence - **Scope reduction detection** — Planner blocked from silently dropping requirements -- **`workflow.use_worktrees` config** — Toggle to disable worktree isolation -- **`project_code` config** — Prefix phase directories with project code +- `**workflow.use_worktrees` config** — Toggle to disable worktree isolation +- `**project_code` config** — Prefix phase directories with project code - **Project skills discovery** — CLAUDE.md generation now includes project-specific skills section - **CodeRabbit integration** — Added to cross-AI review workflow - **GSD SDK enhancements** — Auto `--init` flag, headless prompts, prompt sanitizer ### Changed -- **`/gsd:quick --full` flag** — Now enables all phases (discussion + research + plan-checking + verification). New `--validate` flag covers previous `--full` behavior (plan-checking + verification only) + +- `**/gsd:quick --full` flag** — Now enables all phases (discussion + research + plan-checking + verification). New `--validate` flag covers previous `--full` behavior (plan-checking + verification only) ### Fixed + - **Gemini CLI agent loading** — Removed `permissionMode` that broke agent frontmatter parsing - **Phase count display** — Clarified misleading N/T banner in autonomous mode - **Workstream `set` command** — Now requires name arg, added `--clear` flag @@ -339,15 +392,17 @@ Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). - **Windsurf trailing slash** — Removed from .windsurf/rules path - **Slug sanitization** — Added --raw flag, capped length to 60 chars -## [1.30.0] - 2026-03-26 +## [1.30.0](https://github.com/gsd-build/get-shit-done/releases/tag/v1.30.0) - 2026-03-26 ### Added + - **GSD SDK** — Headless TypeScript SDK (`@gsd-build/sdk`) with `gsd-sdk init` and `gsd-sdk auto` CLI commands for autonomous project execution -- **`--sdk` installer flag** — Optionally install the GSD SDK during setup (interactive prompt or `--sdk` flag) +- `**--sdk` installer flag** — Optionally install the GSD SDK during setup (interactive prompt or `--sdk` flag) -## [1.29.0] - 2026-03-25 +## [1.29.0](https://github.com/gsd-build/get-shit-done/releases/tag/v1.29.0) - 2026-03-25 ### Added + - **Windsurf runtime support** — Full installation and command conversion for Windsurf - **Agent skill injection** — Inject project-specific skills into subagents via `agent_skills` config section - **UI-phase and UI-review steps** in autonomous workflow @@ -357,10 +412,12 @@ Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). - **Japanese (ja-JP) documentation** ### Changed + - Repository references updated from `glittercowboy` to `gsd-build` - Korean translations refined from formal -십시오 to natural -세요 style ### Fixed + - Frontmatter `must_haves` parser handles any YAML indentation width - `findProjectRoot` returns startDir when it already contains `.planning/` - Agent workflows include `` for named agent spawning @@ -376,30 +433,33 @@ Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). - Worktree agents get `permissionMode: acceptEdits` - Security scan self-detection and Windows test compatibility -## [1.28.0] - 2026-03-22 +## [1.28.0](https://github.com/gsd-build/get-shit-done/releases/tag/v1.28.0) - 2026-03-22 ### Added + - **Workstream namespacing** — Parallel milestone work via `/gsd:workstreams` - **Multi-project workspace commands** — Manage multiple GSD projects from a single root -- **`/gsd:forensics` command** — Post-mortem workflow investigation -- **`/gsd:milestone-summary` command** — Post-build onboarding for completed milestones -- **`workflow.skip_discuss` setting** — Bypass discuss-phase in autonomous mode -- **`workflow.discuss_mode` assumptions config** — Control discuss-phase behavior +- `**/gsd:forensics` command** — Post-mortem workflow investigation +- `**/gsd:milestone-summary` command** — Post-build onboarding for completed milestones +- `**workflow.skip_discuss` setting** — Bypass discuss-phase in autonomous mode +- `**workflow.discuss_mode` assumptions config** — Control discuss-phase behavior - **UI-phase recommendation** — Automatically surfaced for UI-heavy phases - **CLAUDE.md compliance** — Added as plan-checker Dimension 10 - **Data-flow tracing, environment audit, and behavioral spot-checks** in verification - **Multi-runtime selection** in interactive installer - **Text mode support** for plan-phase workflow - **"Follow the Indirection" debugging technique** in gsd-debugger -- **`--reviews` flag** for `gsd:plan-phase` +- `**--reviews` flag** for `gsd:plan-phase` - **Temp file reaper** — Prevents unbounded /tmp accumulation ### Changed + - Test matrix optimized from 9 containers down to 4 - Copilot skill/agent counts computed dynamically from source dirs - Wave-specific execution support in execute-phase ### Fixed + - Windows 8.3 short path failures in worktree tests - Worktree isolation enforced for code-writing agents - Linked worktrees respect `.planning/` before resolving to main repo @@ -416,19 +476,20 @@ Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). - Discuss-phase no longer ignores workflow instructions - Gemini CLI uses `BeforeTool` hook event instead of `PreToolUse` -## [1.27.0] - 2026-03-20 +## [1.27.0](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.27.0) - 2026-03-20 ### Added + - **Advisor mode** — Research-backed discussion with parallel agents evaluating gray areas before you decide - **Multi-repo workspace support** — Auto-detection and project root resolution for monorepos and multi-repo setups - **Cursor CLI runtime support** — Full installation and command conversion for Cursor -- **`/gsd:fast` command** — Trivial inline tasks that skip planning entirely -- **`/gsd:review` command** — Cross-AI peer review of current phase or branch -- **`/gsd:plant-seed` command** — Backlog parking lot for ideas and persistent context threads -- **`/gsd:pr-branch` command** — Clean PR branches filtering `.planning/` commits -- **`/gsd:audit-uat` command** — Verification debt tracking across phases -- **`--analyze` flag for discuss-phase** — Trade-off analysis during discussion -- **`research_before_questions` config option** — Run research before discussion questions instead of after +- `**/gsd:fast` command** — Trivial inline tasks that skip planning entirely +- `**/gsd:review` command** — Cross-AI peer review of current phase or branch +- `**/gsd:plant-seed` command** — Backlog parking lot for ideas and persistent context threads +- `**/gsd:pr-branch` command** — Clean PR branches filtering `.planning/` commits +- `**/gsd:audit-uat` command** — Verification debt tracking across phases +- `**--analyze` flag for discuss-phase** — Trade-off analysis during discussion +- `**research_before_questions` config option** — Run research before discussion questions instead of after - **Ticket-based phase identifiers** — Support for team workflows using ticket IDs - **Worktree-aware `.planning/` resolution** — File locking for safe parallel access - **Discussion audit trail** — Auto-generated `DISCUSSION-LOG.md` during discuss-phase @@ -441,6 +502,7 @@ Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). - **Security hardening** — Centralized `security.cjs` module with path traversal prevention, prompt injection detection/sanitization, safe JSON parsing, field name validation, and shell argument validation. PreToolUse `gsd-prompt-guard` hook scans writes to `.planning/` for injection patterns ### Changed + - CI matrix updated to Node 20, 22, 24 — dropped EOL Node 18 - GitHub Actions upgraded for Node 24 compatibility - Consolidated `planningPaths()` helper across 4 modules — eliminated 34 inline path constructions @@ -449,6 +511,7 @@ Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). - Workflow enforcement guidance embedded in generated CLAUDE.md ### Fixed + - Path traversal in `readTextArgOrFile` — arguments validate paths resolve within project directory - Codex config.toml corruption from non-boolean `[features]` keys - Stale hooks check filtered to gsd-prefixed files only @@ -468,12 +531,13 @@ Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). - Codex EOL preservation when enabling hooks - macOS `/var` symlink resolution in path validation -## [1.26.0] - 2026-03-18 +## [1.26.0](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.26.0) - 2026-03-18 ### Added + - **Developer profiling pipeline** — `/gsd:profile-user` analyzes Claude Code session history to build behavioral profiles across 8 dimensions (communication, decisions, debugging, UX, vendor choices, frustrations, learning style, explanation depth). Generates `USER-PROFILE.md`, `/gsd:dev-preferences`, and `CLAUDE.md` profile section. Includes `--questionnaire` fallback and `--refresh` for re-analysis (#1084) -- **`/gsd:ship` command** — PR creation from verified phase work. Auto-generates rich PR body from planning artifacts, pushes branch, creates PR via `gh`, and updates STATE.md (#829) -- **`/gsd:next` command** — Automatic workflow advancement to the next logical step (#927) +- `**/gsd:ship` command** — PR creation from verified phase work. Auto-generates rich PR body from planning artifacts, pushes branch, creates PR via `gh`, and updates STATE.md (#829) +- `**/gsd:next` command** — Automatic workflow advancement to the next logical step (#927) - **Cross-phase regression gate** — Execute-phase runs prior phases' test suites after execution, catching regressions before they compound (#945) - **Requirements coverage gate** — Plan-phase verifies all phase requirements are covered by at least one plan before proceeding (#984) - **Structured session handoff artifact** — `/gsd:pause-work` writes `.planning/HANDOFF.json` for machine-readable cross-session continuity (#940) @@ -484,7 +548,7 @@ Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). - **Model alias-to-full-ID resolution** — Task API compatibility for model alias strings (#991) - **Execution hardening** — Pre-wave dependency checks, cross-plan data contracts, and export-level spot checks (#1082) - **Markdown normalization** — Generated markdown conforms to markdownlint standards (#1112) -- **`/gsd:audit-uat` command** — Cross-phase audit of all outstanding UAT and verification items. Scans every phase for pending, skipped, blocked, and human_needed items. Cross-references against codebase to detect stale documentation. Produces prioritized human test plan grouped by testability +- `**/gsd:audit-uat` command** — Cross-phase audit of all outstanding UAT and verification items. Scans every phase for pending, skipped, blocked, and human_needed items. Cross-references against codebase to detect stale documentation. Produces prioritized human test plan grouped by testability - **Verification debt tracking** — Five structural improvements to prevent silent loss of UAT/verification items when projects advance: - Cross-phase health check in `/gsd:progress` (Step 1.6) surfaces outstanding items from ALL prior phases - `status: partial` in UAT files distinguishes incomplete testing from completed sessions @@ -494,11 +558,13 @@ Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). - **Advisor mode for discuss-phase** — Spawns parallel research agents during `/gsd:discuss-phase` to evaluate gray areas before user decides. Returns structured comparison tables calibrated to user's vendor philosophy. Activates only when `USER-PROFILE.md` exists (#1211) ### Changed + - Test suite consolidated: runtime converters deduplicated, helpers standardized (#1169) - Added test coverage for model-profiles, templates, profile-pipeline, profile-output (#1170) - Documented `inherit` profile for non-Anthropic providers (#1036) ### Fixed + - Agent suggests non-existent `/gsd:transition` — replaced with real commands (#1081, #1100) - PROJECT.md drift and phase completion counter accuracy (#956) - Copilot executor stuck issue — runtime compatibility fallback added (#1128) @@ -515,22 +581,25 @@ Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). - Profile template paths, field names, and evidence key corrections (#1095) - Duplicate variable declaration removed (#1101) -## [1.25.0] - 2026-03-16 +## [1.25.0](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.25.0) - 2026-03-16 ### Added + - **Antigravity runtime support** — Full installation support for the Antigravity AI agent runtime (`--antigravity`), alongside Claude Code, OpenCode, Gemini, Codex, and Copilot -- **`/gsd:do` command** — Freeform text router that dispatches natural language to the right GSD command -- **`/gsd:note` command** — Zero-friction idea capture with append, list, and promote-to-todo subcommands +- `**/gsd:do` command** — Freeform text router that dispatches natural language to the right GSD command +- `**/gsd:note` command** — Zero-friction idea capture with append, list, and promote-to-todo subcommands - **Context window warning toggle** — Config option to disable context monitor warnings (`hooks.context_monitor: false`) - **Comprehensive documentation** — New `docs/` directory with feature, architecture, agent, command, CLI, and configuration guides ### Changed + - `/gsd:discuss-phase` shows remaining discussion areas when asking to continue or move on - `/gsd:plan-phase` asks user about research instead of silently deciding - Improved GitHub issue and PR templates with industry best practices - Settings clarify balanced profile uses Sonnet for research ### Fixed + - Executor checks for untracked files after task commits - Researcher verifies package versions against npm registry before recommending - Health check adds CWD guard and strips archived milestones @@ -540,15 +609,17 @@ Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). - **Antigravity skills** — `processAttribution` was missing from `copyCommandsAsAntigravitySkills`, causing SKILL.md files to be written without commit attribution metadata - Copilot install tests updated for UI agent count changes -## [1.24.0] - 2026-03-15 +## [1.24.0](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.24.0) - 2026-03-15 ### Added -- **`/gsd:quick --research` flag** — Spawns focused research agent before planning, composable with `--discuss` and `--full` (#317) -- **`inherit` model profile** for OpenCode — agents inherit the user's selected runtime model via `/model` + +- `**/gsd:quick --research` flag** — Spawns focused research agent before planning, composable with `--discuss` and `--full` (#317) +- `**inherit` model profile** for OpenCode — agents inherit the user's selected runtime model via `/model` - **Persistent debug knowledge base** — resolved debug sessions append to `.planning/debug/knowledge-base.md`, eliminating cold-start investigation on recurring issues - **Programmatic `/gsd:set-profile`** — runs as a script instead of LLM-driven workflow, executes in seconds instead of 30-40s ### Fixed + - ROADMAP.md searches scoped to current milestone — multi-milestone projects no longer match phases from archived milestones - OpenCode agent frontmatter conversion — agents get correct `name:`, `model: inherit`, `mode: subagent` - `opencode.jsonc` config files respected during install (previously only `.json` was detected) (#1053) @@ -556,22 +627,25 @@ Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). - `gsd-tools.cjs` uses absolute paths in all install types (#820) - Invalid `skills:` frontmatter removed from UI agent files -## [1.23.0] - 2026-03-15 +## [1.23.0](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.23.0) - 2026-03-15 ### Added + - `/gsd:ui-phase` + `/gsd:ui-review` — UI design contract generation and retroactive 6-pillar visual audit for frontend phases (closes #986) - `/gsd:stats` — project statistics dashboard: phases, plans, requirements, git metrics, and timeline - **Copilot CLI** runtime support — install with `--copilot`, maps Claude Code tools to GitHub Copilot tools -- **`gsd-autonomous` skill** for Codex runtime — enables autonomous GSD execution +- `**gsd-autonomous` skill** for Codex runtime — enables autonomous GSD execution - **Node repair operator** — autonomous recovery when task verification fails: RETRY, DECOMPOSE, or PRUNE before escalating to user. Configurable via `workflow.node_repair_budget` (default: 2 attempts). Disable with `workflow.node_repair: false` - Mandatory `read_first` and `acceptance_criteria` sections in plans to prevent shallow execution - Mandatory `canonical_refs` section in CONTEXT.md for traceable decisions - Quick mode uses `YYMMDD-xxx` timestamp IDs instead of auto-increment numbers ### Changed + - `/gsd:discuss-phase` supports explicit `--batch` mode for grouped question intake ### Fixed + - `/gsd:new-milestone` no longer resets `workflow.research` config during milestone transitions - `/gsd:update` is runtime-aware and targets the correct runtime directory - Phase-complete properly updates REQUIREMENTS.md traceability (closes #848) @@ -590,29 +664,35 @@ Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). - Valid Codex agent TOML emitted by installer - Escape characters corrected in grep commands -## [1.22.4] - 2026-03-03 +## [1.22.4](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.22.4) - 2026-03-03 ### Added + - `--discuss` flag for `/gsd:quick` — lightweight pre-planning discussion to gather context before quick tasks ### Fixed + - Windows: `@file:` protocol resolution for large init payloads (>50KB) — all 32 workflow/agent files now resolve temp file paths instead of letting agents hallucinate `/tmp` paths (#841) - Missing `skills` frontmatter on gsd-nyquist-auditor agent -## [1.22.3] - 2026-03-03 +## [1.22.3](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.22.3) - 2026-03-03 ### Added + - Verify-work auto-injects a cold-start smoke test for phases that modify server, database, seed, or startup files — catches warm-state blind spots ### Changed + - Renamed `depth` setting to `granularity` with values `coarse`/`standard`/`fine` to accurately reflect what it controls (phase count, not investigation depth). Backward-compatible migration auto-renames existing config. ### Fixed + - Installer now replaces `$HOME/.claude/` paths (not just `~/.claude/`) for non-Claude runtimes — fixes broken commands on local installs and Gemini/OpenCode/Codex installs (#905, #909) -## [1.22.2] - 2026-03-03 +## [1.22.2](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.22.2) - 2026-03-03 ### Fixed + - Codex installer no longer creates duplicate `[features]` and `[agents]` sections on re-install (#902, #882) - Context monitor hook is advisory instead of blocking non-GSD workflows - Hooks respect `CLAUDE_CONFIG_DIR` for custom config directories @@ -634,31 +714,37 @@ Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). - Agent spawn types standardized across all workflows ### Changed + - Anti-heredoc instruction extended to all file-writing agents - Agent definitions include skills frontmatter and hooks examples ### Chores + - Removed leftover `new-project.md.bak` file - Deduplicated `extractField` and phase filter helpers into shared modules - Added 47 agent frontmatter and spawn consistency tests -## [1.22.1] - 2026-03-02 +## [1.22.1](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.22.1) - 2026-03-02 ### Added + - Discuss phase now loads prior context (PROJECT.md, REQUIREMENTS.md, STATE.md, and all prior CONTEXT.md files) before identifying gray areas — prevents re-asking questions you've already answered in earlier phases ### Fixed + - Shell snippets in workflows use `printf` instead of `echo` to prevent jq parse errors with special characters -## [1.22.0] - 2026-02-27 +## [1.22.0](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.22.0) - 2026-02-27 ### Added + - Codex multi-agent support: `request_user_input` mapping, multi-agent config, and agent role generation for Codex runtime - Analysis paralysis guard in agents to prevent over-deliberation during planning - Exhaustive cross-check and task-level TDD patterns in agent workflows - Code-aware discuss phase with codebase scouting — `/gsd:discuss-phase` now analyzes relevant source files before asking questions ### Fixed + - Update checker clears both cache paths to prevent stale version notifications - Statusline migration regex no longer clobbers third-party statuslines - Subagent paths use `$HOME` instead of `~` to prevent `MODULE_NOT_FOUND` errors @@ -668,14 +754,16 @@ Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). - `model_overrides` and `nyquist_validation` correctly loaded from config - `phase-plan-index` no longer returns null/empty for `files_modified`, `objective`, and `task_count` -## [1.21.1] - 2026-02-27 +## [1.21.1](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.21.1) - 2026-02-27 ### Added + - Comprehensive test suite: 428 tests across 13 test files covering core, commands, config, dispatcher, frontmatter, init, milestone, phase, roadmap, state, and verify modules - CI pipeline with GitHub Actions: 9-matrix (3 OS × 3 Node versions), c8 coverage enforcement at 70% line threshold - Cross-platform test runner (`scripts/run-tests.cjs`) for Windows compatibility ### Fixed + - `getMilestoneInfo()` returns wrong version when shipped milestones are collapsed in `
` blocks - Milestone completion stats and archive now scoped to current milestone phases only (previously counted all phases on disk including prior milestones) - MILESTONES.md entries now insert in reverse chronological order (newest first) @@ -683,9 +771,10 @@ Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). - JSON quoting and dollar sign handling in CLI arguments on Windows - `model_overrides` loaded from config and `resolveModelInternal` used in CLI -## [1.21.0] - 2026-02-25 +## [1.21.0](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.21.0) - 2026-02-25 ### Added + - YAML frontmatter sync to STATE.md for machine-readable status tracking - `/gsd:add-tests` command for post-phase test generation - Codex runtime support with skills-first installation @@ -693,6 +782,7 @@ Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). - Codex changelog and usage documentation ### Changed + - Improved onboarding UX: installer now suggests `/gsd:new-project` instead of `/gsd:help` - Updated Discord invite to vanity URL (discord.gg/gsd) - Compressed Nyquist validation layer to align with GSD meta-prompt conventions @@ -700,6 +790,7 @@ Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). - Debug sessions require human verification before resolution ### Fixed + - Multi-level decimal phase handling (e.g., 72.1.1) with proper regex escaping - `/gsd:update` always installs latest package version - STATE.md decision corruption and dollar sign handling @@ -707,40 +798,47 @@ Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). - Progress bar percent clamping to prevent RangeError crashes - `--cwd` override support in state-snapshot command -## [1.20.6] - 2025-02-23 +## [1.20.6](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.20.6) - 2025-02-23 ### Added + - Context window monitor hook with WARNING/CRITICAL alerts when agent context usage exceeds thresholds - Nyquist validation layer in plan-phase pipeline to catch quality issues before execution - Option highlighting and gray area looping in discuss-phase for clearer preference capture ### Changed + - Refactored installer tools into 11 domain modules for maintainability ### Fixed + - Auto-advance chain no longer breaks when skills fail to resolve inside Task subagents - Gemini CLI workflows and templates no longer incorrectly convert to TOML format - Universal phase number parsing handles all formats consistently (decimal phases, plain numbers) -## [1.20.5] - 2026-02-19 +## [1.20.5](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.20.5) - 2026-02-19 ### Fixed + - `/gsd:health --repair` now creates timestamped backup before regenerating STATE.md (#657) ### Changed + - Subagents now discover and load project CLAUDE.md and skills at spawn time for better project context (#671, #672) - Improved context loading reliability in spawned agents -## [1.20.4] - 2026-02-17 +## [1.20.4](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.20.4) - 2026-02-17 ### Fixed + - Executor agents now update ROADMAP.md and REQUIREMENTS.md after each plan completes — previously both documents stayed unchecked throughout milestone execution - New `requirements mark-complete` CLI command enables per-plan requirement tracking instead of waiting for phase completion - Executor final commit includes ROADMAP.md and REQUIREMENTS.md -## [1.20.3] - 2026-02-16 +## [1.20.3](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.20.3) - 2026-02-16 ### Fixed + - Milestone audit now cross-references three independent sources (VERIFICATION.md + SUMMARY frontmatter + REQUIREMENTS.md traceability) instead of single-source phase status checks - Orphaned requirements (in traceability table but absent from all phase VERIFICATIONs) detected and forced to `unsatisfied` - Integration checker receives milestone requirement IDs and maps findings to affected requirements @@ -748,53 +846,61 @@ Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). - `plan-milestone-gaps` updates REQUIREMENTS.md traceability table (phase assignments, checkbox resets, coverage count) and includes it in commit - Gemini CLI: escape `${VAR}` shell variables in agent bodies to prevent template validation failures -## [1.20.2] - 2026-02-16 +## [1.20.2](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.20.2) - 2026-02-16 ### Fixed + - Requirements tracking chain now strips bracket syntax (`[REQ-01, REQ-02]` → `REQ-01, REQ-02`) across all agents - Verifier cross-references requirement IDs from PLAN frontmatter instead of only grepping REQUIREMENTS.md by phase number - Orphaned requirements (mapped to phase in REQUIREMENTS.md but unclaimed by any plan) are detected and flagged ### Changed + - All `requirements` references across planner, templates, and workflows enforce MUST/REQUIRED/CRITICAL language — no more passive suggestions - Plan checker now **fails** (blocking, not warning) when any roadmap requirement is absent from all plans - Researcher receives phase-specific requirement IDs and must output a `` mapping table - Phase requirement IDs extracted from ROADMAP and passed through full chain: researcher → planner → checker → executor → verifier - Verification report requirements table expanded with Source Plan, Description, and Evidence columns -## [1.20.1] - 2026-02-16 +## [1.20.1](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.20.1) - 2026-02-16 ### Fixed + - Auto-mode (`--auto`) now survives context compaction by persisting `workflow.auto_advance` to config.json on disk - Checkpoints no longer block auto-mode: human-verify auto-approves, decision auto-selects first option (human-action still stops for auth gates) - Plan-phase now passes `--auto` flag when spawning execute-phase - Auto-advance clears on milestone complete to prevent runaway chains -## [1.20.0] - 2026-02-15 +## [1.20.0](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.20.0) - 2026-02-15 ### Added + - `/gsd:health` command — validates `.planning/` directory integrity with `--repair` flag for auto-fixing config.json and STATE.md - `--full` flag for `/gsd:quick` — enables plan-checking (max 2 iterations) and post-execution verification on quick tasks - `--auto` flag wired from `/gsd:new-project` through the full phase chain (discuss → plan → execute) - Auto-advance chains phase execution across full milestones when `workflow.auto_advance` is enabled ### Fixed + - Plans created without user context — `/gsd:plan-phase` warns when no CONTEXT.md exists, `/gsd:discuss-phase` warns when plans already exist (#253) - OpenCode installer converts `general-purpose` subagent type to OpenCode's `general` - `/gsd:complete-milestone` respects `commit_docs` setting when merging branches - Phase directories tracked in git via `.gitkeep` files -## [1.19.2] - 2026-02-15 +## [1.19.2](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.19.2) - 2026-02-15 ### Added + - User-level default settings via `~/.gsd/defaults.json` — set GSD defaults across all projects - Per-agent model overrides — customize which Claude model each agent uses ### Changed + - Completed milestone phase directories are now archived for cleaner project structure - Wave execution diagram added to README for clearer parallelization visualization ### Fixed + - OpenCode local installs now write config to `./.opencode/` instead of overwriting global `~/.config/opencode/` - Large JSON payloads write to temp files to prevent truncation in tool calls - Phase heading matching now supports `####` depth @@ -805,12 +911,14 @@ Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). - Plan-phase autocomplete fixed by removing "execution" from description - Executor now has scope boundary and attempt limit to prevent runaway loops -## [1.19.1] - 2026-02-15 +## [1.19.1](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.19.1) - 2026-02-15 ### Added + - Auto-advance pipeline: `--auto` flag on `discuss-phase` and `plan-phase` chains discuss → plan → execute without stopping. Also available as `workflow.auto_advance` config setting ### Fixed + - Phase transition routing now routes to `discuss-phase` (not `plan-phase`) when no CONTEXT.md exists — consistent across all workflows (#530) - ROADMAP progress table plan counts are now computed from disk instead of LLM-edited — deterministic "X/Y Complete" values (#537) - Verifier uses ROADMAP Success Criteria directly instead of deriving verification truths from the Goal field (#538) @@ -819,15 +927,17 @@ Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). - AskUserQuestion headers enforced to 12-char max to prevent UI truncation (#559) - Agent model resolution returns `inherit` instead of hardcoded `opus` (#558) -## [1.19.0] - 2026-02-15 +## [1.19.0](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.19.0) - 2026-02-15 ### Added + - Brave Search integration for researchers (requires BRAVE_API_KEY environment variable) - GitHub issue templates for bug reports and feature requests - Security policy for responsible disclosure - Auto-labeling workflow for new issues ### Fixed + - UAT gaps and debug sessions now auto-resolve after gap-closure phase execution (#580) - Fall back to ROADMAP.md when phase directory missing (#521) - Template hook paths for OpenCode/Gemini runtimes (#585) @@ -835,19 +945,22 @@ Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). - Use `{phase_num}` instead of ambiguous `{phase}` for filenames (#601) - Add package.json to prevent ESM inheritance issues (#602) -## [1.18.0] - 2026-02-08 +## [1.18.0](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.18.0) - 2026-02-08 ### Added + - `--auto` flag for `/gsd:new-project` — runs research → requirements → roadmap automatically after config questions. Expects idea document via @ reference (e.g., `/gsd:new-project --auto @prd.md`) ### Fixed + - Windows: SessionStart hook now spawns detached process correctly - Windows: Replaced HEREDOC with literal newlines for git commit compatibility - Research decision from `/gsd:new-milestone` now persists to config.json -## [1.17.0] - 2026-02-08 +## [1.17.0](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.17.0) - 2026-02-08 ### Added + - **gsd-tools verification suite**: `verify plan-structure`, `verify phase-completeness`, `verify references`, `verify commits`, `verify artifacts`, `verify key-links` — deterministic structural checks - **gsd-tools frontmatter CRUD**: `frontmatter get/set/merge/validate` — safe YAML frontmatter operations with schema validation - **gsd-tools template fill**: `template fill summary/plan/verification` — pre-filled document skeletons @@ -856,15 +969,18 @@ Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). - `/gsd:reapply-patches` command to merge local modifications back after GSD updates ### Changed + - Agents (executor, planner, plan-checker, verifier) now use gsd-tools for state updates and verification instead of manual markdown parsing - `/gsd:update` workflow now notifies about backed-up local patches and suggests `/gsd:reapply-patches` ### Fixed + - Added workaround for Claude Code `classifyHandoffIfNeeded` bug that causes false agent failures — execute-phase and quick workflows now spot-check actual output before reporting failure -## [1.16.0] - 2026-02-08 +## [1.16.0](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.16.0) - 2026-02-08 ### Added + - 10 new gsd-tools CLI commands that replace manual AI orchestration of mechanical operations: - `phase add ` — append phase to roadmap + create directory - `phase insert ` — insert decimal phase @@ -878,6 +994,7 @@ Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). - `scaffold [context|uat|verification|phase-dir]` — template generation ### Changed + - Workflows now delegate deterministic operations to gsd-tools CLI, reducing token usage and errors: - `remove-phase.md`: 13 manual steps → 1 CLI call + confirm + commit - `add-phase.md`: 6 manual steps → 1 CLI call + state update @@ -886,67 +1003,79 @@ Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). - `progress.md`: roadmap parsing delegated to `roadmap analyze` ### Fixed + - Execute-phase now correctly spawns `gsd-executor` subagents instead of generic task agents - `commit_docs=false` setting now respected in all `.planning/` commit paths (execute-plan, debugger, reference docs all route through gsd-tools CLI) - Execute-phase orchestrator no longer bloats context by embedding file content — passes paths instead, letting subagents read in their fresh context - Windows: Normalized backslash paths in gsd-tools invocations (contributed by @rmindel) -## [1.15.0] - 2026-02-08 +## [1.15.0](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.15.0) - 2026-02-08 ### Changed + - Optimized workflow context loading to eliminate redundant file reads, reducing token usage by ~5,000-10,000 tokens per workflow execution -## [1.14.0] - 2026-02-08 +## [1.14.0](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.14.0) - 2026-02-08 ### Added + - Context-optimizing parsing commands in gsd-tools (`phase-plan-index`, `state-snapshot`, `summary-extract`) — reduces agent context usage by returning structured JSON instead of raw file content ### Fixed + - Installer no longer deletes opencode.json on JSONC parse errors — now handles comments, trailing commas, and BOM correctly (#474) -## [1.13.0] - 2026-02-08 +## [1.13.0](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.13.0) - 2026-02-08 ### Added + - `gsd-tools history-digest` — Compiles phase summaries into structured JSON for faster context loading - `gsd-tools phases list` — Lists phase directories with filtering (replaces fragile `ls | sort -V` patterns) - `gsd-tools roadmap get-phase` — Extracts phase sections from ROADMAP.md - `gsd-tools phase next-decimal` — Calculates next decimal phase number for insert operations - `gsd-tools state get/patch` — Atomic STATE.md field operations - `gsd-tools template select` — Chooses summary template based on plan complexity -- Summary template variants: minimal (~30 lines), standard (~60 lines), complex (~100 lines) +- Summary template variants: minimal (~~30 lines), standard (~~60 lines), complex (~100 lines) - Test infrastructure with 22 tests covering new commands ### Changed + - Planner uses two-step context assembly: digest for selection, full SUMMARY for understanding - Agents migrated from bash patterns to structured gsd-tools commands - Nested YAML frontmatter parsing now handles `dependency-graph.provides`, `tech-stack.added` correctly -## [1.12.1] - 2026-02-08 +## [1.12.1](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.12.1) - 2026-02-08 ### Changed + - Consolidated workflow initialization into compound `init` commands, reducing token usage and improving startup performance - Updated 24 workflow and agent files to use single-call context gathering instead of multiple atomic calls -## [1.12.0] - 2026-02-07 +## [1.12.0](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.12.0) - 2026-02-07 ### Changed + - **Architecture: Thin orchestrator pattern** — Commands now delegate to workflows, reducing command file size by ~75% and improving maintainability - **Centralized utilities** — New `gsd-tools.cjs` (11 functions) replaces repetitive bash patterns across 50+ files - **Token reduction** — ~22k characters removed from affected command/workflow/agent files - **Condensed agent prompts** — Same behavior with fewer words (executor, planner, verifier, researcher agents) ### Added + - `gsd-tools.cjs` CLI utility with functions: state load/update, resolve-model, find-phase, commit, verify-summary, generate-slug, current-timestamp, list-todos, verify-path-exists, config-ensure-section -## [1.11.2] - 2026-02-05 +## [1.11.2](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.11.2) - 2026-02-05 ### Added + - Security section in README with Claude Code deny rules for sensitive files ### Changed + - Install respects `attribution.commit` setting for OpenCode compatibility (#286) ### Fixed + - **CRITICAL:** Prevent API keys from being committed via `/gsd:map-codebase` (#429) - Enforce context fidelity in planning pipeline - agents now honor CONTEXT.md decisions (#326, #216, #206) - Executor verifies task completion to prevent hallucinated success (#315) @@ -959,9 +1088,10 @@ Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). - ASCII box-drawing vs text content with diacritics (#289) - Removed broken gsd-gemini link (404) -## [1.11.1] - 2026-01-31 +## [1.11.1](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.11.0) - 2026-01-31 ### Added + - Git branching strategy configuration with three options: - `none` (default): commit to current branch - `phase`: create branch per phase (`gsd/phase-{N}-{slug}`) @@ -970,99 +1100,118 @@ Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). - Context compliance verification dimension in plan checker — flags if plans contradict user decisions ### Fixed + - CONTEXT.md from `/gsd:discuss-phase` now properly flows to all downstream agents (researcher, planner, checker, revision loop) -## [1.10.1] - 2025-01-30 +## [1.10.1](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.10.1) - 2025-01-30 ### Fixed + - Gemini CLI agent loading errors that prevented commands from executing -## [1.10.0] - 2026-01-29 +## [1.10.0](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.10.0) - 2026-01-29 ### Added + - Native Gemini CLI support — install with `--gemini` flag or select from interactive menu - New `--all` flag to install for Claude Code, OpenCode, and Gemini simultaneously ### Fixed + - Context bar now shows 100% at actual 80% limit (was scaling incorrectly) -## [1.9.12] - 2025-01-23 +## [1.9.12](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.9.12) - 2025-01-23 ### Removed + - `/gsd:whats-new` command — use `/gsd:update` instead (shows changelog with cancel option) ### Fixed + - Restored auto-release GitHub Actions workflow -## [1.9.11] - 2026-01-23 +## [1.9.11](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.9.11) - 2026-01-23 ### Changed + - Switched to manual npm publish workflow (removed GitHub Actions CI/CD) ### Fixed + - Discord badge now uses static format for reliable rendering -## [1.9.10] - 2026-01-23 +## [1.9.10](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.9.10) - 2026-01-23 ### Added + - Discord community link shown in installer completion message -## [1.9.9] - 2026-01-23 +## [1.9.9](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.9.9) - 2026-01-23 ### Added + - `/gsd:join-discord` command to quickly access the GSD Discord community invite link -## [1.9.8] - 2025-01-22 +## [1.9.8](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.9.8) - 2025-01-22 ### Added + - Uninstall flag (`--uninstall`) to cleanly remove GSD from global or local installations ### Fixed + - Context file detection now matches filename variants (handles both `CONTEXT.md` and `{phase}-CONTEXT.md` patterns) -## [1.9.7] - 2026-01-22 +## [1.9.7](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.9.7) - 2026-01-22 ### Fixed + - OpenCode installer now uses correct XDG-compliant config path (`~/.config/opencode/`) instead of `~/.opencode/` - OpenCode commands use flat structure (`command/gsd-help.md`) matching OpenCode's expected format - OpenCode permissions written to `~/.config/opencode/opencode.json` -## [1.9.6] - 2026-01-22 +## [1.9.6](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.9.6) - 2026-01-22 ### Added + - Interactive runtime selection: installer now prompts to choose Claude Code, OpenCode, or both - Native OpenCode support: `--opencode` flag converts GSD to OpenCode format automatically - `--both` flag to install for both Claude Code and OpenCode in one command - Auto-configures `~/.opencode.json` permissions for seamless GSD doc access ### Changed + - Installation flow now asks for runtime first, then location - Updated README with new installation options -## [1.9.5] - 2025-01-22 +## [1.9.5](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.9.5) - 2025-01-22 ### Fixed + - Subagents can now access MCP tools (Context7, etc.) - workaround for Claude Code bug #13898 - Installer: Escape/Ctrl+C now cancels instead of installing globally - Installer: Fixed hook paths on Windows - Removed stray backticks in `/gsd:new-project` output ### Changed + - Condensed verbose documentation in templates and workflows (-170 lines) - Added CI/CD automation for releases -## [1.9.4] - 2026-01-21 +## [1.9.4](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.9.4) - 2026-01-21 ### Changed + - Checkpoint automation now enforces automation-first principle: Claude starts servers, handles CLI installs, and fixes setup failures before presenting checkpoints to users - Added server lifecycle protocol (port conflict handling, background process management) - Added CLI auto-installation handling with safe-to-install matrix - Added pre-checkpoint failure recovery (fix broken environment before asking user to verify) - DRY refactor: checkpoints.md is now single source of truth for automation patterns -## [1.9.2] - 2025-01-21 +## [1.9.2](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.9.2) - 2025-01-21 ### Removed + - **Codebase Intelligence System** — Removed due to overengineering concerns - Deleted `/gsd:analyze-codebase` command - Deleted `/gsd:query-intel` command @@ -1071,40 +1220,48 @@ Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). - Removed entity file generation and templates ### Fixed + - new-project now properly includes model_profile in config -## [1.9.0] - 2025-01-20 +## [1.9.0](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.9.0) - 2025-01-20 ### Added + - **Model Profiles** — `/gsd:set-profile` for quality/balanced/budget agent configurations - **Workflow Settings** — `/gsd:settings` command for toggling workflow behaviors interactively ### Fixed + - Orchestrators now inline file contents in Task prompts (fixes context issues with @ references) - Tech debt from milestone audit addressed - All hooks now use `gsd-` prefix for consistency (statusline.js → gsd-statusline.js) -## [1.8.0] - 2026-01-19 +## [1.8.0](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.8.0) - 2026-01-19 ### Added + - Uncommitted planning mode: Keep `.planning/` local-only (not committed to git) via `planning.commit_docs: false` in config.json. Useful for OSS contributions, client work, or privacy preferences. - `/gsd:new-project` now asks about git tracking during initial setup, letting you opt out of committing planning docs from the start -## [1.7.1] - 2026-01-19 +## [1.7.1](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.7.1) - 2026-01-19 ### Fixed + - Quick task PLAN and SUMMARY files now use numbered prefix (`001-PLAN.md`, `001-SUMMARY.md`) matching regular phase naming convention -## [1.7.0] - 2026-01-19 +## [1.7.0](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.7.0) - 2026-01-19 ### Added + - **Quick Mode** (`/gsd:quick`) — Execute small, ad-hoc tasks with GSD guarantees but skip optional agents (researcher, checker, verifier). Quick tasks live in `.planning/quick/` with their own tracking in STATE.md. ### Changed + - Improved progress bar calculation to clamp values within 0-100 range - Updated documentation with comprehensive Quick Mode sections in help.md, README.md, and GSD-STYLE.md ### Fixed + - Console window flash on Windows when running hooks - Empty `--config-dir` value validation - Consistent `allowed-tools` YAML format across agents @@ -1114,131 +1271,155 @@ Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). - Integrated unused reference files into documentation ### Housekeeping + - Added homepage and bugs fields to package.json -## [1.6.4] - 2026-01-17 +## [1.6.4](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.6.4) - 2026-01-17 ### Fixed + - Installation on WSL2/non-TTY terminals now works correctly - detects non-interactive stdin and falls back to global install automatically - Installation now verifies files were actually copied before showing success checkmarks - Orphaned `gsd-notify.sh` hook from previous versions is now automatically removed during install (both file and settings.json registration) -## [1.6.3] - 2025-01-17 +## [1.6.3](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.6.3) - 2025-01-17 ### Added + - `--gaps-only` flag for `/gsd:execute-phase` — executes only gap closure plans after verify-work finds issues, eliminating redundant state discovery -## [1.6.2] - 2025-01-17 +## [1.6.2](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.6.2) - 2025-01-17 ### Changed + - README restructured with clearer 6-step workflow: init → discuss → plan → execute → verify → complete - Discuss-phase and verify-work now emphasized as critical steps in core workflow documentation - "Subagent Execution" section replaced with "Multi-Agent Orchestration" explaining thin orchestrator pattern and 30-40% context efficiency - Brownfield instructions consolidated into callout at top of "How It Works" instead of separate section - Phase directories now created at discuss/plan-phase instead of during roadmap creation -## [1.6.1] - 2025-01-17 +## [1.6.1](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.6.1) - 2025-01-17 ### Changed + - Installer performs clean install of GSD folders, removing orphaned files from previous versions - `/gsd:update` shows changelog and asks for confirmation before updating, with clear warning about what gets replaced -## [1.6.0] - 2026-01-17 +## [1.6.0](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.6.0) - 2026-01-17 ### Changed + - **BREAKING:** Unified `/gsd:new-milestone` flow — now mirrors `/gsd:new-project` with questioning → research → requirements → roadmap in a single command - Roadmapper agent now references templates instead of inline structures for easier maintenance ### Removed + - **BREAKING:** `/gsd:discuss-milestone` — consolidated into `/gsd:new-milestone` - **BREAKING:** `/gsd:create-roadmap` — integrated into project/milestone flows - **BREAKING:** `/gsd:define-requirements` — integrated into project/milestone flows - **BREAKING:** `/gsd:research-project` — integrated into project/milestone flows ### Added + - `/gsd:verify-work` now includes next-step routing after verification completes -## [1.5.30] - 2026-01-17 +## [1.5.30](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.5.30) - 2026-01-17 ### Fixed + - Output templates in `plan-phase`, `execute-phase`, and `audit-milestone` now render markdown correctly instead of showing literal backticks - Next-step suggestions now consistently recommend `/gsd:discuss-phase` before `/gsd:plan-phase` across all routing paths -## [1.5.29] - 2025-01-16 +## [1.5.29](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.5.29) - 2025-01-16 ### Changed + - Discuss-phase now uses domain-aware questioning with deeper probing for gray areas ### Fixed + - Windows hooks now work via Node.js conversion (statusline, update-check) - Phase input normalization at command entry points - Removed blocking notification popups (gsd-notify) on all platforms -## [1.5.28] - 2026-01-16 +## [1.5.28](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.5.28) - 2026-01-16 ### Changed + - Consolidated milestone workflow into single command - Merged domain expertise skills into agent configurations - **BREAKING:** Removed `/gsd:execute-plan` command (use `/gsd:execute-phase` instead) ### Fixed + - Phase directory matching now handles both zero-padded (05-*) and unpadded (5-*) folder names - Map-codebase agent output collection -## [1.5.27] - 2026-01-16 +## [1.5.27](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.5.27) - 2026-01-16 ### Fixed + - Orchestrator corrections between executor completions are now committed (previously left uncommitted when orchestrator made small fixes between waves) -## [1.5.26] - 2026-01-16 +## [1.5.26](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.5.26) - 2026-01-16 ### Fixed + - Revised plans now get committed after checker feedback (previously only initial plans were committed, leaving revisions uncommitted) -## [1.5.25] - 2026-01-16 +## [1.5.25](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.5.25) - 2026-01-16 ### Fixed + - Stop notification hook no longer shows stale project state (now uses session-scoped todos only) - Researcher agent now reliably loads CONTEXT.md from discuss-phase -## [1.5.24] - 2026-01-16 +## [1.5.24](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.5.24) - 2026-01-16 ### Fixed + - Stop notification hook now correctly parses STATE.md fields (was always showing "Ready for input") - Planner agent now reliably loads CONTEXT.md and RESEARCH.md files -## [1.5.23] - 2025-01-16 +## [1.5.23](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.5.23) - 2025-01-16 ### Added + - Cross-platform completion notification hook (Mac/Linux/Windows alerts when Claude stops) - Phase researcher now loads CONTEXT.md from discuss-phase to focus research on user decisions ### Fixed + - Consistent zero-padding for phase directories (01-name, not 1-name) - Plan file naming: `{phase}-{plan}-PLAN.md` pattern restored across all agents - Double-path bug in researcher git add command - Removed `/gsd:research-phase` from next-step suggestions (use `/gsd:plan-phase` instead) -## [1.5.22] - 2025-01-16 +## [1.5.22](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.5.22) - 2025-01-16 ### Added + - Statusline update indicator — shows `⬆ /gsd:update` when a new version is available ### Fixed + - Planner now updates ROADMAP.md placeholders after planning completes -## [1.5.21] - 2026-01-16 +## [1.5.21](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.5.21) - 2026-01-16 ### Added + - GSD brand system for consistent UI (checkpoint boxes, stage banners, status symbols) - Research synthesizer agent that consolidates parallel research into SUMMARY.md ### Changed + - **Unified `/gsd:new-project` flow** — Single command now handles questions → research → requirements → roadmap (~10 min) - Simplified README to reflect streamlined workflow: new-project → plan-phase → execute-phase - Added optional `/gsd:discuss-phase` documentation for UI/UX/behavior decisions before planning ### Fixed + - verify-work now shows clear checkpoint box with action prompt ("Type 'pass' or describe what's wrong") - Planner uses correct `{phase}-{plan}-PLAN.md` naming convention - Planner no longer surfaces internal `user_setup` in output @@ -1246,28 +1427,32 @@ Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). - Project researcher agent can no longer commit (orchestrator handles commits) - Roadmap requires explicit user approval before committing -## [1.5.20] - 2026-01-16 +## [1.5.20](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.5.20) - 2026-01-16 ### Fixed + - Research no longer skipped based on premature "Research: Unlikely" predictions made during roadmap creation. The `--skip-research` flag provides explicit control when needed. ### Removed + - `Research: Likely/Unlikely` fields from roadmap phase template - `detect_research_needs` step from roadmap creation workflow - Roadmap-based research skip logic from planner agent -## [1.5.19] - 2026-01-16 +## [1.5.19](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.5.19) - 2026-01-16 ### Changed + - `/gsd:discuss-phase` redesigned with intelligent gray area analysis — analyzes phase to identify discussable areas (UI, UX, Behavior, etc.), presents multi-select for user control, deep-dives each area with focused questioning - Explicit scope guardrail prevents scope creep during discussion — captures deferred ideas without acting on them - CONTEXT.md template restructured for decisions (domain boundary, decisions by category, Claude's discretion, deferred ideas) - Downstream awareness: discuss-phase now explicitly documents that CONTEXT.md feeds researcher and planner agents - `/gsd:plan-phase` now integrates research — spawns `gsd-phase-researcher` before planning unless research exists or `--skip-research` flag used -## [1.5.18] - 2026-01-16 +## [1.5.18](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.5.18) - 2026-01-16 ### Added + - **Plan verification loop** — Plans are now verified before execution with a planner → checker → revise cycle - New `gsd-plan-checker` agent (744 lines) validates plans will achieve phase goals - Six verification dimensions: requirement coverage, task completeness, dependency correctness, key links, scope sanity, must_haves derivation @@ -1280,6 +1465,7 @@ Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). - **Statusline integration** — Context usage, model, and current task display ### Changed + - `/gsd:plan-phase` refactored to thin orchestrator pattern (310 lines) - Spawns `gsd-planner` for planning, `gsd-plan-checker` for verification - User sees status between agent spawns (not a black box) @@ -1288,31 +1474,37 @@ Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). - `workflows/plan-phase.md` ### Fixed + - Removed zombie `gsd-milestone-auditor` agent (was accidentally re-added after correct deletion) ### Removed + - Phase 99 throwaway test files -## [1.5.17] - 2026-01-15 +## [1.5.17](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.5.17) - 2026-01-15 ### Added + - New `/gsd:update` command — check for updates, install, and display changelog of what changed (better UX than raw `npx get-shit-done-cc`) -## [1.5.16] - 2026-01-15 +## [1.5.16](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.5.16) - 2026-01-15 ### Added + - New `gsd-researcher` agent (915 lines) with comprehensive research methodology, 4 research modes (ecosystem, feasibility, implementation, comparison), source hierarchy, and verification protocols - New `gsd-debugger` agent (990 lines) with scientific debugging methodology, hypothesis testing, and 7+ investigation techniques - New `gsd-codebase-mapper` agent for brownfield codebase analysis - Research subagent prompt template for context-only spawning ### Changed + - `/gsd:research-phase` refactored to thin orchestrator — now injects rich context (key insight framing, downstream consumer info, quality gates) to gsd-researcher agent - `/gsd:research-project` refactored to spawn 4 parallel gsd-researcher agents with milestone-aware context (greenfield vs v1.1+) and roadmap implications guidance - `/gsd:debug` refactored to thin orchestrator (149 lines) — spawns gsd-debugger agent with full debugging expertise - `/gsd:new-milestone` now explicitly references MILESTONE-CONTEXT.md ### Deprecated + - `workflows/research-phase.md` — consolidated into gsd-researcher agent - `workflows/research-project.md` — consolidated into gsd-researcher agent - `workflows/debug.md` — consolidated into gsd-debugger agent @@ -1320,28 +1512,33 @@ Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). - `references/debugging.md` — consolidated into gsd-debugger agent - `references/debug-investigation.md` — consolidated into gsd-debugger agent -## [1.5.15] - 2025-01-15 +## [1.5.15](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.5.15) - 2025-01-15 ### Fixed + - **Agents now install correctly** — The `agents/` folder (gsd-executor, gsd-verifier, gsd-integration-checker, gsd-milestone-auditor) was missing from npm package, now included ### Changed + - Consolidated `/gsd:plan-fix` into `/gsd:plan-phase --gaps` for simpler workflow - UAT file writes now batched instead of per-response for better performance -## [1.5.14] - 2025-01-15 +## [1.5.14](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.5.14) - 2025-01-15 ### Fixed + - Plan-phase now always routes to `/gsd:execute-phase` after planning, even for single-plan phases -## [1.5.13] - 2026-01-15 +## [1.5.13](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.5.13) - 2026-01-15 ### Fixed + - `/gsd:new-milestone` now presents research and requirements paths as equal options, matching `/gsd:new-project` format -## [1.5.12] - 2025-01-15 +## [1.5.12](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.5.12) - 2025-01-15 ### Changed + - **Milestone cycle reworked for proper requirements flow:** - `complete-milestone` now archives AND deletes ROADMAP.md and REQUIREMENTS.md (fresh for next milestone) - `new-milestone` is now a "brownfield new-project" — updates PROJECT.md with new goals, routes to define-requirements @@ -1351,301 +1548,362 @@ Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). - Flow: complete → discuss → new-milestone → research → requirements → roadmap ### Fixed + - `MILESTONE-AUDIT.md` now versioned as `v{version}-MILESTONE-AUDIT.md` and archived on completion - `progress` now correctly routes to `/gsd:discuss-milestone` when between milestones (Route F) -## [1.5.11] - 2025-01-15 +## [1.5.11](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.5.11) - 2025-01-15 ### Changed + - Verifier reuses previous must-haves on re-verification instead of re-deriving, focuses deep verification on failed items with quick regression checks on passed items -## [1.5.10] - 2025-01-15 +## [1.5.10](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.5.10) - 2025-01-15 ### Changed + - Milestone audit now reads existing phase VERIFICATION.md files instead of re-verifying each phase, aggregates tech debt and deferred gaps, adds `tech_debt` status for non-blocking accumulated debt ### Fixed + - VERIFICATION.md now included in phase completion commit alongside ROADMAP.md, STATE.md, and REQUIREMENTS.md -## [1.5.9] - 2025-01-15 +## [1.5.9](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.5.9) - 2025-01-15 ### Added + - Milestone audit system (`/gsd:audit-milestone`) for verifying milestone completion with parallel verification agents ### Changed + - Checkpoint display format improved with box headers and unmissable "→ YOUR ACTION:" prompts - Subagent colors updated (executor: yellow, integration-checker: blue) - Execute-phase now recommends `/gsd:audit-milestone` when milestone completes ### Fixed + - Research-phase no longer gatekeeps by domain type ### Removed + - Domain expertise feature (`~/.claude/skills/expertise/`) - was personal tooling not available to other users -## [1.5.8] - 2025-01-15 +## [1.5.8](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.5.8) - 2025-01-15 ### Added + - Verification loop: When gaps are found, verifier generates fix plans that execute automatically before re-verifying ### Changed + - `gsd-executor` subagent color changed from red to blue -## [1.5.7] - 2025-01-15 +## [1.5.7](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.5.7) - 2025-01-15 ### Added + - `gsd-executor` subagent: Dedicated agent for plan execution with full workflow logic built-in - `gsd-verifier` subagent: Goal-backward verification that checks if phase goals are actually achieved (not just tasks completed) - Phase verification: Automatic verification runs when a phase completes to catch stubs and incomplete implementations - Goal-backward planning reference: Documentation for deriving must-haves from goals ### Changed + - execute-plan and execute-phase now spawn `gsd-executor` subagent instead of using inline workflow - Roadmap and planning workflows enhanced with goal-backward analysis ### Removed + - Obsolete templates (`checkpoint-resume.md`, `subagent-task-prompt.md`) — logic now lives in subagents ### Fixed + - Updated remaining `general-purpose` subagent references to use `gsd-executor` -## [1.5.6] - 2025-01-15 +## [1.5.6](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.5.6) - 2025-01-15 ### Changed + - README: Separated flow into distinct steps (1 → 1.5 → 2 → 3 → 4 → 5) making `research-project` clearly optional and `define-requirements` required - README: Research recommended for quality; skip only for speed ### Fixed + - execute-phase: Phase metadata (timing, wave info) now bundled into single commit instead of separate commits -## [1.5.5] - 2025-01-15 +## [1.5.5](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.5.5) - 2025-01-15 ### Changed + - README now documents the `research-project` → `define-requirements` flow (optional but recommended before `create-roadmap`) - Commands section reorganized into 7 grouped tables (Setup, Execution, Verification, Milestones, Phase Management, Session, Utilities) for easier scanning - Context Engineering table now includes `research/` and `REQUIREMENTS.md` -## [1.5.4] - 2025-01-15 +## [1.5.4](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.5.4) - 2025-01-15 ### Changed + - Research phase now loads REQUIREMENTS.md to focus research on concrete requirements (e.g., "email verification") rather than just high-level roadmap descriptions -## [1.5.3] - 2025-01-15 +## [1.5.3](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.5.3) - 2025-01-15 ### Changed + - **execute-phase narration**: Orchestrator now describes what each wave builds before spawning agents, and summarizes what was built after completion. No more staring at opaque status updates. - **new-project flow**: Now offers two paths — research first (recommended) or define requirements directly (fast path for familiar domains) - **define-requirements**: Works without prior research. Gathers requirements through conversation when FEATURES.md doesn't exist. ### Removed + - Dead `/gsd:status` command (referenced abandoned background agent model) - Unused `agent-history.md` template - `_archive/` directory with old execute-phase version -## [1.5.2] - 2026-01-15 +## [1.5.2](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.5.2) - 2026-01-15 ### Added + - Requirements traceability: roadmap phases now include `Requirements:` field listing which REQ-IDs they cover - plan-phase loads REQUIREMENTS.md and shows phase-specific requirements before planning - Requirements automatically marked Complete when phase finishes ### Changed + - Workflow preferences (mode, depth, parallelization) now asked in single prompt instead of 3 separate questions - define-requirements shows full requirements list inline before commit (not just counts) - Research-project and workflow aligned to both point to define-requirements as next step ### Fixed + - Requirements status now updated by orchestrator (commands) instead of subagent workflow, which couldn't determine phase completion -## [1.5.1] - 2026-01-14 +## [1.5.1](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.5.1) - 2026-01-14 ### Changed + - Research agents write their own files directly (STACK.md, FEATURES.md, ARCHITECTURE.md, PITFALLS.md) instead of returning results to orchestrator - Slimmed principles.md and load it dynamically in core commands -## [1.5.0] - 2026-01-14 +## [1.5.0](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.5.0) - 2026-01-14 ### Added + - New `/gsd:research-project` command for pre-roadmap ecosystem research — spawns parallel agents to investigate stack, features, architecture, and pitfalls before you commit to a roadmap - New `/gsd:define-requirements` command for scoping v1 requirements from research findings — transforms "what exists in this domain" into "what we're building" - Requirements traceability: phases now map to specific requirement IDs with 100% coverage validation ### Changed + - **BREAKING:** New project flow is now: `new-project → research-project → define-requirements → create-roadmap` - Roadmap creation now requires REQUIREMENTS.md and validates all v1 requirements are mapped to phases - Simplified questioning in new-project to four essentials (vision, core priority, boundaries, constraints) -## [1.4.29] - 2026-01-14 +## [1.4.29](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.4.29) - 2026-01-14 ### Removed + - Deleted obsolete `_archive/execute-phase.md` and `status.md` commands -## [1.4.28] - 2026-01-14 +## [1.4.28](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.4.28) - 2026-01-14 ### Fixed + - Restored comprehensive checkpoint documentation with full examples for verification, decisions, and auth gates - Fixed execute-plan command to use fresh continuation agents instead of broken resume pattern - Rich checkpoint presentation formats now documented for all three checkpoint types ### Changed + - Slimmed execute-phase command to properly delegate checkpoint handling to workflow -## [1.4.27] - 2025-01-14 +## [1.4.27](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.4.27) - 2025-01-14 ### Fixed + - Restored "what to do next" commands after plan/phase execution completes — orchestrator pattern conversion had inadvertently removed the copy/paste-ready next-step routing -## [1.4.26] - 2026-01-14 +## [1.4.26](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.4.26) - 2026-01-14 ### Added + - Full changelog history backfilled from git (66 historical versions from 1.0.0 to 1.4.23) -## [1.4.25] - 2026-01-14 +## [1.4.25](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.4.25) - 2026-01-14 ### Added + - New `/gsd:whats-new` command shows changes since your installed version - VERSION file written during installation for version tracking - CHANGELOG.md now included in package installation -## [1.4.24] - 2026-01-14 +## [1.4.24](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.4.24) - 2026-01-14 ### Added + - USER-SETUP.md template for external service configuration ### Removed + - **BREAKING:** ISSUES.md system (replaced by phase-scoped UAT issues and TODOs) -## [1.4.23] - 2026-01-14 +## [1.4.23](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.4.23) - 2026-01-14 ### Changed + - Removed dead ISSUES.md system code -## [1.4.22] - 2026-01-14 +## [1.4.22](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.4.22) - 2026-01-14 ### Added + - Subagent isolation for debug investigations with checkpoint support ### Fixed + - DEBUG_DIR path constant to prevent typos in debug workflow -## [1.4.21] - 2026-01-14 +## [1.4.21](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.4.21) - 2026-01-14 ### Fixed + - SlashCommand tool added to plan-fix allowed-tools -## [1.4.20] - 2026-01-14 +## [1.4.20](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.4.20) - 2026-01-14 ### Fixed + - Standardized debug file naming convention - Debug workflow now invokes execute-plan correctly -## [1.4.19] - 2026-01-14 +## [1.4.19](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.4.19) - 2026-01-14 ### Fixed + - Auto-diagnose issues instead of offering choice in plan-fix -## [1.4.18] - 2026-01-14 +## [1.4.18](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.4.18) - 2026-01-14 ### Added + - Parallel diagnosis before plan-fix execution -## [1.4.17] - 2026-01-14 +## [1.4.17](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.4.17) - 2026-01-14 ### Changed + - Redesigned verify-work as conversational UAT with persistent state -## [1.4.16] - 2026-01-13 +## [1.4.16](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.4.16) - 2026-01-13 ### Added + - Pre-execution summary for interactive mode in execute-plan - Pre-computed wave numbers at plan time -## [1.4.15] - 2026-01-13 +## [1.4.15](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.4.15) - 2026-01-13 ### Added + - Context rot explanation to README header -## [1.4.14] - 2026-01-13 +## [1.4.14](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.4.14) - 2026-01-13 ### Changed + - YOLO mode is now recommended default in new-project -## [1.4.13] - 2026-01-13 +## [1.4.13](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.4.13) - 2026-01-13 ### Fixed + - Brownfield flow documentation - Removed deprecated resume-task references -## [1.4.12] - 2026-01-13 +## [1.4.12](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.4.12) - 2026-01-13 ### Changed + - execute-phase is now recommended as primary execution command -## [1.4.11] - 2026-01-13 +## [1.4.11](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.4.11) - 2026-01-13 ### Fixed + - Checkpoints now use fresh continuation agents instead of resume -## [1.4.10] - 2026-01-13 +## [1.4.10](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.4.10) - 2026-01-13 ### Changed + - execute-plan converted to orchestrator pattern for performance -## [1.4.9] - 2026-01-13 +## [1.4.9](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.4.9) - 2026-01-13 ### Changed + - Removed subagent-only context from execute-phase orchestrator ### Fixed + - Removed "what's out of scope" question from discuss-phase -## [1.4.8] - 2026-01-13 +## [1.4.8](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.4.8) - 2026-01-13 ### Added + - TDD reasoning explanation restored to plan-phase docs -## [1.4.7] - 2026-01-13 +## [1.4.7](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.4.7) - 2026-01-13 ### Added + - Project state loading before execution in execute-phase ### Fixed + - Parallel execution marked as recommended, not experimental -## [1.4.6] - 2026-01-13 +## [1.4.6](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.4.6) - 2026-01-13 ### Added + - Checkpoint pause/resume for spawned agents - Deviation rules, commit rules, and workflow references to execute-phase -## [1.4.5] - 2026-01-13 +## [1.4.5](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.4.5) - 2026-01-13 ### Added + - Parallel-first planning with dependency graphs - Checkpoint-resume capability for long-running phases - `.claude/rules/` directory for auto-loaded contribution rules ### Changed + - execute-phase uses wave-based blocking execution -## [1.4.4] - 2026-01-13 +## [1.4.4](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.4.4) - 2026-01-13 ### Fixed + - Inline listing for multiple active debug sessions -## [1.4.3] - 2026-01-13 +## [1.4.3](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.4.3) - 2026-01-13 ### Added + - `/gsd:debug` command for systematic debugging with persistent state -## [1.4.2] - 2026-01-13 +## [1.4.2](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.4.2) - 2026-01-13 ### Fixed + - Installation verification step clarification -## [1.4.1] - 2026-01-13 +## [1.4.1](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.4.1) - 2026-01-13 ### Added + - Parallel phase execution via `/gsd:execute-phase` - Parallel-aware planning in `/gsd:plan-phase` - `/gsd:status` command for parallel agent monitoring @@ -1653,309 +1911,370 @@ Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). - Wave-based parallel execution with dependency graphs ### Changed + - Renamed `execute-phase.md` workflow to `execute-plan.md` for clarity - Plan frontmatter now includes `wave`, `depends_on`, `files_modified`, `autonomous` -## [1.4.0] - 2026-01-12 +## [1.4.0](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.4.0) - 2026-01-12 ### Added + - Full parallel phase execution system - Parallelization frontmatter in plan templates - Dependency analysis for parallel task scheduling - Agent history schema v1.2 with parallel execution support ### Changed + - Plans can now specify wave numbers and dependencies - execute-phase orchestrates multiple subagents in waves -## [1.3.34] - 2026-01-11 +## [1.3.34](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.3.34) - 2026-01-11 ### Added + - `/gsd:add-todo` and `/gsd:check-todos` for mid-session idea capture -## [1.3.33] - 2026-01-11 +## [1.3.33](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.3.33) - 2026-01-11 ### Fixed + - Consistent zero-padding for decimal phase numbers (e.g., 01.1) ### Changed + - Removed obsolete .claude-plugin directory -## [1.3.32] - 2026-01-10 +## [1.3.32](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.3.32) - 2026-01-10 ### Added + - `/gsd:resume-task` for resuming interrupted subagent executions -## [1.3.31] - 2026-01-08 +## [1.3.31](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.3.31) - 2026-01-08 ### Added + - Planning principles for security, performance, and observability - Pro patterns section in README -## [1.3.30] - 2026-01-08 +## [1.3.30](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.3.30) - 2026-01-08 ### Added + - verify-work option surfaces after plan execution -## [1.3.29] - 2026-01-08 +## [1.3.29](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.3.29) - 2026-01-08 ### Added + - `/gsd:verify-work` for conversational UAT validation - `/gsd:plan-fix` for fixing UAT issues - UAT issues template -## [1.3.28] - 2026-01-07 +## [1.3.28](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.3.28) - 2026-01-07 ### Added + - `--config-dir` CLI argument for multi-account setups - `/gsd:remove-phase` command ### Fixed + - Validation for --config-dir edge cases -## [1.3.27] - 2026-01-07 +## [1.3.27](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.3.27) - 2026-01-07 ### Added + - Recommended permissions mode documentation ### Fixed + - Mandatory verification enforced before phase/milestone completion routing -## [1.3.26] - 2026-01-06 +## [1.3.26](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.3.26) - 2026-01-06 ### Added + - Claude Code marketplace plugin support ### Fixed + - Phase artifacts now committed when created -## [1.3.25] - 2026-01-06 +## [1.3.25](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.3.25) - 2026-01-06 ### Fixed + - Milestone discussion context persists across /clear -## [1.3.24] - 2026-01-06 +## [1.3.24](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.3.24) - 2026-01-06 ### Added + - `CLAUDE_CONFIG_DIR` environment variable support -## [1.3.23] - 2026-01-06 +## [1.3.23](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.3.23) - 2026-01-06 ### Added + - Non-interactive install flags (`--global`, `--local`) for Docker/CI -## [1.3.22] - 2026-01-05 +## [1.3.22](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.3.22) - 2026-01-05 ### Changed + - Removed unused auto.md command -## [1.3.21] - 2026-01-05 +## [1.3.21](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.3.21) - 2026-01-05 ### Changed + - TDD features use dedicated plans for full context quality -## [1.3.20] - 2026-01-05 +## [1.3.20](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.3.20) - 2026-01-05 ### Added + - Per-task atomic commits for better AI observability -## [1.3.19] - 2026-01-05 +## [1.3.19](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.3.19) - 2026-01-05 ### Fixed + - Clarified create-milestone.md file locations with explicit instructions -## [1.3.18] - 2026-01-05 +## [1.3.18](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.3.18) - 2026-01-05 ### Added + - YAML frontmatter schema with dependency graph metadata - Intelligent context assembly via frontmatter dependency graph -## [1.3.17] - 2026-01-04 +## [1.3.17](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.3.17) - 2026-01-04 ### Fixed + - Clarified depth controls compression, not inflation in planning -## [1.3.16] - 2026-01-04 +## [1.3.16](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.3.16) - 2026-01-04 ### Added + - Depth parameter for planning thoroughness (`--depth=1-5`) -## [1.3.15] - 2026-01-01 +## [1.3.15](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.3.15) - 2026-01-01 ### Fixed + - TDD reference loaded directly in commands -## [1.3.14] - 2025-12-31 +## [1.3.14](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.3.14) - 2025-12-31 ### Added + - TDD integration with detection, annotation, and execution flow -## [1.3.13] - 2025-12-29 +## [1.3.13](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.3.13) - 2025-12-29 ### Fixed + - Restored deterministic bash commands - Removed redundant decision_gate -## [1.3.12] - 2025-12-29 +## [1.3.12](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.3.12) - 2025-12-29 ### Fixed + - Restored plan-format.md as output template -## [1.3.11] - 2025-12-29 +## [1.3.11](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.3.11) - 2025-12-29 ### Changed + - 70% context reduction for plan-phase workflow - Merged CLI automation into checkpoints - Compressed scope-estimation (74% reduction) and plan-phase.md (66% reduction) -## [1.3.10] - 2025-12-29 +## [1.3.10](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.3.10) - 2025-12-29 ### Fixed + - Explicit plan count check in offer_next step -## [1.3.9] - 2025-12-27 +## [1.3.9](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.3.9) - 2025-12-27 ### Added + - Evolutionary PROJECT.md system with incremental updates -## [1.3.8] - 2025-12-18 +## [1.3.8](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.3.8) - 2025-12-18 ### Added + - Brownfield/existing projects section in README -## [1.3.7] - 2025-12-18 +## [1.3.7](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.3.7) - 2025-12-18 ### Fixed + - Improved incremental codebase map updates -## [1.3.6] - 2025-12-18 +## [1.3.6](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.3.6) - 2025-12-18 ### Added + - File paths included in codebase mapping output -## [1.3.5] - 2025-12-17 +## [1.3.5](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.3.5) - 2025-12-17 ### Fixed + - Removed arbitrary 100-line limit from codebase mapping -## [1.3.4] - 2025-12-17 +## [1.3.4](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.3.4) - 2025-12-17 ### Fixed + - Inline code for Next Up commands (avoids nesting ambiguity) -## [1.3.3] - 2025-12-17 +## [1.3.3](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.3.3) - 2025-12-17 ### Fixed + - Check PROJECT.md not .planning/ directory for existing project detection -## [1.3.2] - 2025-12-17 +## [1.3.2](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.3.2) - 2025-12-17 ### Added + - Git commit step to map-codebase workflow -## [1.3.1] - 2025-12-17 +## [1.3.1](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.3.1) - 2025-12-17 ### Added + - `/gsd:map-codebase` documentation in help and README -## [1.3.0] - 2025-12-17 +## [1.3.0](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.3.0) - 2025-12-17 ### Added + - `/gsd:map-codebase` command for brownfield project analysis - Codebase map templates (stack, architecture, structure, conventions, testing, integrations, concerns) - Parallel Explore agent orchestration for codebase analysis - Brownfield integration into GSD workflows ### Changed + - Improved continuation UI with context and visual hierarchy ### Fixed + - Permission errors for non-DSP users (removed shell context) - First question is now freeform, not AskUserQuestion -## [1.2.13] - 2025-12-17 +## [1.2.13](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.2.13) - 2025-12-17 ### Added + - Improved continuation UI with context and visual hierarchy -## [1.2.12] - 2025-12-17 +## [1.2.12](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.2.12) - 2025-12-17 ### Fixed + - First question should be freeform, not AskUserQuestion -## [1.2.11] - 2025-12-17 +## [1.2.11](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.2.11) - 2025-12-17 ### Fixed + - Permission errors for non-DSP users (removed shell context) -## [1.2.10] - 2025-12-16 +## [1.2.10](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.2.10) - 2025-12-16 ### Fixed + - Inline command invocation replaced with clear-then-paste pattern -## [1.2.9] - 2025-12-16 +## [1.2.9](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.2.9) - 2025-12-16 ### Fixed + - Git init runs in current directory -## [1.2.8] - 2025-12-16 +## [1.2.8](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.2.8) - 2025-12-16 ### Changed + - Phase count derived from work scope, not arbitrary limits -## [1.2.7] - 2025-12-16 +## [1.2.7](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.2.7) - 2025-12-16 ### Fixed + - AskUserQuestion mandated for all exploration questions -## [1.2.6] - 2025-12-16 +## [1.2.6](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.2.6) - 2025-12-16 ### Changed + - Internal refactoring -## [1.2.5] - 2025-12-16 +## [1.2.5](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.2.5) - 2025-12-16 ### Changed + - `` tags for yolo/interactive branching -## [1.2.4] - 2025-12-16 +## [1.2.4](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.2.4) - 2025-12-16 ### Fixed + - Stale CONTEXT.md references updated to new vision structure -## [1.2.3] - 2025-12-16 +## [1.2.3](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.2.3) - 2025-12-16 ### Fixed + - Enterprise language removed from help and discuss-milestone -## [1.2.2] - 2025-12-16 +## [1.2.2](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.2.2) - 2025-12-16 ### Fixed + - new-project completion presented inline instead of as question -## [1.2.1] - 2025-12-16 +## [1.2.1](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.2.1) - 2025-12-16 ### Fixed + - AskUserQuestion restored for decision gate in questioning flow -## [1.2.0] - 2025-12-15 +## [1.2.0](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.2.0) - 2025-12-15 ### Changed + - Research workflow implemented as Claude Code context injection -## [1.1.2] - 2025-12-15 +## [1.1.2](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.1.2) - 2025-12-15 ### Fixed + - YOLO mode now skips confirmation gates in plan-phase -## [1.1.1] - 2025-12-15 +## [1.1.1](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.1.1) - 2025-12-15 ### Added + - README documentation for new research workflow -## [1.1.0] - 2025-12-15 +## [1.1.0](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.1.0) - 2025-12-15 ### Added + - Pre-roadmap research workflow - `/gsd:research-phase` for niche domain ecosystem discovery - `/gsd:research-project` command with workflow and templates @@ -1963,71 +2282,85 @@ Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). - Research subagent prompt templates ### Changed + - new-project split to only create PROJECT.md + config.json - Questioning rewritten as thinking partner, not interviewer -## [1.0.11] - 2025-12-15 +## [1.0.11](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.0.11) - 2025-12-15 ### Added + - `/gsd:research-phase` for niche domain ecosystem discovery -## [1.0.10] - 2025-12-15 +## [1.0.10](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.0.10) - 2025-12-15 ### Fixed + - Scope creep prevention in discuss-phase command -## [1.0.9] - 2025-12-15 +## [1.0.9](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.0.9) - 2025-12-15 ### Added + - Phase CONTEXT.md loaded in plan-phase command -## [1.0.8] - 2025-12-15 +## [1.0.8](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.0.8) - 2025-12-15 ### Changed + - PLAN.md included in phase completion commits -## [1.0.7] - 2025-12-15 +## [1.0.7](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.0.7) - 2025-12-15 ### Added + - Path replacement for local installs -## [1.0.6] - 2025-12-15 +## [1.0.6](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.0.6) - 2025-12-15 ### Changed + - Internal improvements -## [1.0.5] - 2025-12-15 +## [1.0.5](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.0.5) - 2025-12-15 ### Added + - Global/local install prompt during setup ### Fixed + - Bin path fixed (removed ./) - .DS_Store ignored -## [1.0.4] - 2025-12-15 +## [1.0.4](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.0.4) - 2025-12-15 ### Fixed + - Bin name and circular dependency removed -## [1.0.3] - 2025-12-15 +## [1.0.3](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.0.3) - 2025-12-15 ### Added + - TDD guidance in planning workflow -## [1.0.2] - 2025-12-15 +## [1.0.2](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.0.2) - 2025-12-15 ### Added + - Issue triage system to prevent deferred issue pile-up -## [1.0.1] - 2025-12-15 +## [1.0.1](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.0.1) - 2025-12-15 ### Added + - Initial npm package release -## [1.0.0] - 2025-12-14 +## [1.0.0](https://github.com/glittercowboy/get-shit-done/releases/tag/v1.0.0) - 2025-12-14 ### Added + - Initial release of GSD (Get Shit Done) meta-prompting system - Core slash commands: `/gsd:new-project`, `/gsd:discuss-phase`, `/gsd:plan-phase`, `/gsd:execute-phase` - PROJECT.md and STATE.md templates diff --git a/docs/ARCHITECTURE.md b/docs/ARCHITECTURE.md index f2b8fa72..2f5626c7 100644 --- a/docs/ARCHITECTURE.md +++ b/docs/ARCHITECTURE.md @@ -76,6 +76,7 @@ Every agent spawned by an orchestrator gets a clean context window (up to 200K t ### 2. Thin Orchestrators Workflow files (`get-shit-done/workflows/*.md`) never do heavy lifting. They: + - Load context via `gsd-sdk query init.` (or legacy `gsd-tools.cjs init `) - Spawn specialized agents with focused prompts - Collect results and route to the next step @@ -84,6 +85,7 @@ Workflow files (`get-shit-done/workflows/*.md`) never do heavy lifting. They: ### 3. File-Based State All state lives in `.planning/` as human-readable Markdown and JSON. No database, no server, no external dependencies. This means: + - State survives context resets (`/clear`) - State is inspectable by both humans and agents - State can be committed to git for team visibility @@ -95,6 +97,7 @@ Workflow feature flags follow the **absent = enabled** pattern. If a key is miss ### 5. Defense in Depth Multiple layers prevent common failure modes: + - Plans are verified before execution (plan-checker agent) - Execution produces atomic commits per task - Post-execution verification checks against phase goals @@ -107,6 +110,7 @@ Multiple layers prevent common failure modes: ### Commands (`commands/gsd/*.md`) User-facing entry points. Each file contains YAML frontmatter (name, description, allowed-tools) and a prompt body that bootstraps the workflow. Commands are installed as: + - **Claude Code:** Custom slash commands (`/gsd-command-name`) - **OpenCode / Kilo:** Slash commands (`/gsd-command-name`) - **Codex:** Skills (`$gsd-command-name`) @@ -118,6 +122,7 @@ User-facing entry points. Each file contains YAML frontmatter (name, description ### Workflows (`get-shit-done/workflows/*.md`) Orchestration logic that commands reference. Contains the step-by-step process including: + - Context loading via `gsd-sdk query` init handlers (or legacy `gsd-tools.cjs init`) - Agent spawn instructions with model resolution - Gate/checkpoint definitions @@ -129,6 +134,7 @@ Orchestration logic that commands reference. Contains the step-by-step process i ### Agents (`agents/*.md`) Specialized agent definitions with frontmatter specifying: + - `name` — Agent identifier - `description` — Role and purpose - `tools` — Allowed tool access (Read, Write, Edit, Bash, Grep, Glob, WebSearch, etc.) @@ -141,6 +147,7 @@ Specialized agent definitions with frontmatter specifying: Shared knowledge documents that workflows and agents `@-reference` (see [`docs/INVENTORY.md`](INVENTORY.md#references-41-shipped) for the authoritative count and full roster): **Core references:** + - `checkpoints.md` — Checkpoint type definitions and interaction patterns - `gates.md` — 4 canonical gate types (Confirm, Quality, Safety, Transition) wired into plan-checker and verifier - `model-profiles.md` — Per-agent model tier assignments @@ -156,6 +163,7 @@ Shared knowledge documents that workflows and agents `@-reference` (see [`docs/I - `common-bug-patterns.md` — Common bug patterns for code review and verification **Workflow references:** + - `agent-contracts.md` — Formal interface between orchestrators and agents - `context-budget.md` — Context window budget allocation rules - `continuation-format.md` — Session continuation/resume format @@ -190,7 +198,7 @@ The planner agent (`agents/gsd-planner.md`) was decomposed from a single monolit ### Templates (`get-shit-done/templates/`) -Markdown templates for all planning artifacts. Used by `gsd-tools.cjs template fill` and `scaffold` commands to create pre-structured files: +Markdown templates for all planning artifacts. Used by `gsd-sdk query template.fill` / `phase.scaffold` (and legacy `gsd-tools.cjs template fill` / top-level `scaffold`) to create pre-structured files: - `project.md`, `requirements.md`, `roadmap.md`, `state.md` — Core project files - `phase-prompt.md` — Phase execution prompt template - `summary.md` (+ `summary-minimal.md`, `summary-standard.md`, `summary-complex.md`) — Granularity-aware summary templates @@ -224,27 +232,29 @@ See [`docs/INVENTORY.md`](INVENTORY.md#hooks-11-shipped) for the authoritative 1 Node.js CLI utility (`gsd-tools.cjs`) with domain modules split across `get-shit-done/bin/lib/` (see [`docs/INVENTORY.md`](INVENTORY.md#cli-modules-24-shipped) for the authoritative roster): -| Module | Responsibility | -|--------|---------------| -| `core.cjs` | Error handling, output formatting, shared utilities | -| `state.cjs` | STATE.md parsing, updating, progression, metrics | -| `phase.cjs` | Phase directory operations, decimal numbering, plan indexing | -| `roadmap.cjs` | ROADMAP.md parsing, phase extraction, plan progress | -| `config.cjs` | config.json read/write, section initialization | -| `verify.cjs` | Plan structure, phase completeness, reference, commit validation | -| `template.cjs` | Template selection and filling with variable substitution | -| `frontmatter.cjs` | YAML frontmatter CRUD operations | -| `init.cjs` | Compound context loading for each workflow type | -| `milestone.cjs` | Milestone archival, requirements marking | -| `commands.cjs` | Misc commands (slug, timestamp, todos, scaffolding, stats) | -| `model-profiles.cjs` | Model profile resolution table | -| `security.cjs` | Path traversal prevention, prompt injection detection, safe JSON parsing, shell argument validation | -| `uat.cjs` | UAT file parsing, verification debt tracking, audit-uat support | -| `docs.cjs` | Docs-update workflow init, Markdown scanning, monorepo detection | -| `workstream.cjs` | Workstream CRUD, migration, session-scoped active pointer | -| `schema-detect.cjs` | Schema-drift detection for ORM patterns (Prisma, Drizzle, etc.) | -| `profile-pipeline.cjs` | User behavioral profiling data pipeline, session file scanning | -| `profile-output.cjs` | Profile rendering, USER-PROFILE.md and dev-preferences.md generation | + +| Module | Responsibility | +| ---------------------- | --------------------------------------------------------------------------------------------------- | +| `core.cjs` | Error handling, output formatting, shared utilities | +| `state.cjs` | STATE.md parsing, updating, progression, metrics | +| `phase.cjs` | Phase directory operations, decimal numbering, plan indexing | +| `roadmap.cjs` | ROADMAP.md parsing, phase extraction, plan progress | +| `config.cjs` | config.json read/write, section initialization | +| `verify.cjs` | Plan structure, phase completeness, reference, commit validation | +| `template.cjs` | Template selection and filling with variable substitution | +| `frontmatter.cjs` | YAML frontmatter CRUD operations | +| `init.cjs` | Compound context loading for each workflow type | +| `milestone.cjs` | Milestone archival, requirements marking | +| `commands.cjs` | Misc commands (slug, timestamp, todos, scaffolding, stats) | +| `model-profiles.cjs` | Model profile resolution table | +| `security.cjs` | Path traversal prevention, prompt injection detection, safe JSON parsing, shell argument validation | +| `uat.cjs` | UAT file parsing, verification debt tracking, audit-uat support | +| `docs.cjs` | Docs-update workflow init, Markdown scanning, monorepo detection | +| `workstream.cjs` | Workstream CRUD, migration, session-scoped active pointer | +| `schema-detect.cjs` | Schema-drift detection for ORM patterns (Prisma, Drizzle, etc.) | +| `profile-pipeline.cjs` | User behavioral profiling data pipeline, session file scanning | +| `profile-output.cjs` | Profile rendering, USER-PROFILE.md and dev-preferences.md generation | + --- @@ -255,10 +265,10 @@ Node.js CLI utility (`gsd-tools.cjs`) with domain modules split across `get-shit ``` Orchestrator (workflow .md) │ - ├── Load context: gsd-tools.cjs init + ├── Load context: gsd-sdk query init. (or legacy gsd-tools.cjs init) │ Returns JSON with: project info, config, state, phase details │ - ├── Resolve model: gsd-tools.cjs resolve-model + ├── Resolve model: gsd-sdk query resolve-model │ Returns: opus | sonnet | haiku | inherit │ ├── Spawn Agent (Task/SubAgent call) @@ -269,27 +279,29 @@ Orchestrator (workflow .md) │ ├── Collect result │ - └── Update state: gsd-tools.cjs state update/patch/advance-plan + └── Update state: gsd-sdk query state.update / state.patch / state.advance-plan (or legacy gsd-tools.cjs) ``` ### Primary Agent Spawn Categories Conceptual spawn-pattern taxonomy for the 21 primary agents. For the authoritative 31-agent roster (including the 10 advanced/specialized agents such as `gsd-pattern-mapper`, `gsd-code-reviewer`, `gsd-code-fixer`, `gsd-ai-researcher`, `gsd-domain-researcher`, `gsd-eval-planner`, `gsd-eval-auditor`, `gsd-framework-selector`, `gsd-debug-session-manager`, `gsd-intel-updater`), see [`docs/INVENTORY.md`](INVENTORY.md#agents-31-shipped). -| Category | Agents | Parallelism | -|----------|--------|-------------| -| **Researchers** | gsd-project-researcher, gsd-phase-researcher, gsd-ui-researcher, gsd-advisor-researcher | 4 parallel (stack, features, architecture, pitfalls); advisor spawns during discuss-phase | -| **Synthesizers** | gsd-research-synthesizer | Sequential (after researchers complete) | -| **Planners** | gsd-planner, gsd-roadmapper | Sequential | -| **Checkers** | gsd-plan-checker, gsd-integration-checker, gsd-ui-checker, gsd-nyquist-auditor | Sequential (verification loop, max 3 iterations) | -| **Executors** | gsd-executor | Parallel within waves, sequential across waves | -| **Verifiers** | gsd-verifier | Sequential (after all executors complete) | -| **Mappers** | gsd-codebase-mapper | 4 parallel (tech, arch, quality, concerns) | -| **Debuggers** | gsd-debugger | Sequential (interactive) | -| **Auditors** | gsd-ui-auditor, gsd-security-auditor | Sequential | -| **Doc Writers** | gsd-doc-writer, gsd-doc-verifier | Sequential (writer then verifier) | -| **Profilers** | gsd-user-profiler | Sequential | -| **Analyzers** | gsd-assumptions-analyzer | Sequential (during discuss-phase) | + +| Category | Agents | Parallelism | +| ---------------- | --------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | +| **Researchers** | gsd-project-researcher, gsd-phase-researcher, gsd-ui-researcher, gsd-advisor-researcher | 4 parallel (stack, features, architecture, pitfalls); advisor spawns during discuss-phase | +| **Synthesizers** | gsd-research-synthesizer | Sequential (after researchers complete) | +| **Planners** | gsd-planner, gsd-roadmapper | Sequential | +| **Checkers** | gsd-plan-checker, gsd-integration-checker, gsd-ui-checker, gsd-nyquist-auditor | Sequential (verification loop, max 3 iterations) | +| **Executors** | gsd-executor | Parallel within waves, sequential across waves | +| **Verifiers** | gsd-verifier | Sequential (after all executors complete) | +| **Mappers** | gsd-codebase-mapper | 4 parallel (tech, arch, quality, concerns) | +| **Debuggers** | gsd-debugger | Sequential (interactive) | +| **Auditors** | gsd-ui-auditor, gsd-security-auditor | Sequential | +| **Doc Writers** | gsd-doc-writer, gsd-doc-verifier | Sequential (writer then verifier) | +| **Profilers** | gsd-user-profiler | Sequential | +| **Analyzers** | gsd-assumptions-analyzer | Sequential (during discuss-phase) | + ### Wave Execution Model @@ -305,6 +317,7 @@ Wave Analysis: ``` Each executor gets: + - Fresh 200K context window (or up to 1M for models that support it) - The specific PLAN.md to execute - Project context (PROJECT.md, STATE.md) @@ -317,14 +330,13 @@ When the context window is 500K+ tokens (1M-class models like Opus 4.6, Sonnet 4 - **Executor agents** receive prior wave SUMMARY.md files and the phase CONTEXT.md/RESEARCH.md, enabling cross-plan awareness within a phase - **Verifier agents** receive all PLAN.md, SUMMARY.md, CONTEXT.md files plus REQUIREMENTS.md, enabling history-aware verification -The orchestrator reads `context_window` from config (`gsd-tools.cjs config-get context_window`) and conditionally includes richer context when the value is >= 500,000. For standard 200K windows, prompts use truncated versions with cache-friendly ordering to maximize context efficiency. +The orchestrator reads `context_window` from config (`gsd-sdk query config-get context_window`, or legacy `gsd-tools.cjs config-get`) and conditionally includes richer context when the value is >= 500,000. For standard 200K windows, prompts use truncated versions with cache-friendly ordering to maximize context efficiency. #### Parallel Commit Safety When multiple executors run within the same wave, two mechanisms prevent conflicts: -1. **`--no-verify` commits** — Parallel agents skip pre-commit hooks (which can cause build lock contention, e.g., cargo lock fights in Rust projects). The orchestrator runs `git hook run pre-commit` once after each wave completes. - +1. `--no-verify` commits — Parallel agents skip pre-commit hooks (which can cause build lock contention, e.g., cargo lock fights in Rust projects). The orchestrator runs `git hook run pre-commit` once after each wave completes. 2. **STATE.md file locking** — All `writeStateMd()` calls use lockfile-based mutual exclusion (`STATE.md.lock` with `O_EXCL` atomic creation). This prevents the read-modify-write race condition where two agents read STATE.md, modify different fields, and the last writer overwrites the other's changes. Includes stale lock detection (10s timeout) and spin-wait with jitter. --- @@ -430,6 +442,7 @@ UI-SPEC.md (per phase) ─────────────────── ``` Equivalent paths for other runtimes: + - **OpenCode:** `~/.config/opencode/` or `~/.opencode/` - **Kilo:** `~/.config/kilo/` or `~/.kilo/` - **Gemini CLI:** `~/.gemini/` @@ -499,16 +512,16 @@ The installer (`bin/install.js`, ~3,000 lines) handles: 2. **Location selection** — Global (`--global`) or local (`--local`) 3. **File deployment** — Copies commands, workflows, references, templates, agents, hooks 4. **Runtime adaptation** — Transforms file content per runtime: - - Claude Code: Uses as-is - - OpenCode: Converts commands/agents to OpenCode-compatible flat command + subagent format - - Kilo: Reuses the OpenCode conversion pipeline with Kilo config paths - - Codex: Generates TOML config + skills from commands - - Copilot: Maps tool names (Read→read, Bash→execute, etc.) - - Gemini: Adjusts hook event names (`AfterTool` instead of `PostToolUse`) - - Antigravity: Skills-first with Google model equivalents - - Trae: Skills-first install to `~/.trae` / `./.trae` with no `settings.json` or hook integration - - Cline: Writes `.clinerules` for rule-based integration - - Augment Code: Skills-first with full skill conversion and config management + - Claude Code: Uses as-is + - OpenCode: Converts commands/agents to OpenCode-compatible flat command + subagent format + - Kilo: Reuses the OpenCode conversion pipeline with Kilo config paths + - Codex: Generates TOML config + skills from commands + - Copilot: Maps tool names (Read→read, Bash→execute, etc.) + - Gemini: Adjusts hook event names (`AfterTool` instead of `PostToolUse`) + - Antigravity: Skills-first with Google model equivalents + - Trae: Skills-first install to `~/.trae` / `./.trae` with no `settings.json` or hook integration + - Cline: Writes `.clinerules` for rule-based integration + - Augment Code: Skills-first with full skill conversion and config management 5. **Path normalization** — Replaces `~/.claude/` paths with runtime-specific paths 6. **Settings integration** — Registers hooks in runtime's `settings.json` 7. **Patch backup** — Since v1.17, backs up locally modified files to `gsd-local-patches/` for `/gsd-reapply-patches` @@ -545,11 +558,13 @@ Runtime Engine (Claude Code / Gemini CLI) ### Context Monitor Thresholds -| Remaining Context | Level | Agent Behavior | -|-------------------|-------|----------------| -| > 35% | Normal | No warning injected | -| ≤ 35% | WARNING | "Avoid starting new complex work" | -| ≤ 25% | CRITICAL | "Context nearly exhausted, inform user" | + +| Remaining Context | Level | Agent Behavior | +| ----------------- | -------- | --------------------------------------- | +| > 35% | Normal | No warning injected | +| ≤ 35% | WARNING | "Avoid starting new complex work" | +| ≤ 25% | CRITICAL | "Context nearly exhausted, inform user" | + Debounce: 5 tool uses between repeated warnings. Severity escalation (WARNING→CRITICAL) bypasses debounce. @@ -564,12 +579,14 @@ Debounce: 5 tool uses between repeated warnings. Severity escalation (WARNING→ ### Security Hooks (v1.27) **Prompt Guard** (`gsd-prompt-guard.js`): + - Triggers on Write/Edit to `.planning/` files - Scans content for prompt injection patterns (role override, instruction bypass, system tag injection) - Advisory-only — logs detection, does not block - Patterns are inlined (subset of `security.cjs`) for hook independence **Workflow Guard** (`gsd-workflow-guard.js`): + - Triggers on Write/Edit to non-`.planning/` files - Detects edits outside GSD workflow context (no active `/gsd-` command or Task subagent) - Advises using `/gsd-quick` or `/gsd-fast` for state-tracked changes @@ -581,18 +598,20 @@ Debounce: 5 tool uses between repeated warnings. Severity escalation (WARNING→ GSD supports multiple AI coding runtimes through a unified command/workflow architecture: -| Runtime | Command Format | Agent System | Config Location | -|---------|---------------|--------------|-----------------| -| Claude Code | `/gsd-command` | Task spawning | `~/.claude/` | -| OpenCode | `/gsd-command` | Subagent mode | `~/.config/opencode/` | -| Kilo | `/gsd-command` | Subagent mode | `~/.config/kilo/` | -| Gemini CLI | `/gsd-command` | Task spawning | `~/.gemini/` | -| Codex | `$gsd-command` | Skills | `~/.codex/` | -| Copilot | `/gsd-command` | Agent delegation | `~/.github/` | -| Antigravity | Skills | Skills | `~/.gemini/antigravity/` | -| Trae | Skills | Skills | `~/.trae/` | -| Cline | Rules | Rules | `.clinerules` | -| Augment Code | Skills | Skills | Augment config | + +| Runtime | Command Format | Agent System | Config Location | +| ------------ | -------------- | ---------------- | ------------------------ | +| Claude Code | `/gsd-command` | Task spawning | `~/.claude/` | +| OpenCode | `/gsd-command` | Subagent mode | `~/.config/opencode/` | +| Kilo | `/gsd-command` | Subagent mode | `~/.config/kilo/` | +| Gemini CLI | `/gsd-command` | Task spawning | `~/.gemini/` | +| Codex | `$gsd-command` | Skills | `~/.codex/` | +| Copilot | `/gsd-command` | Agent delegation | `~/.github/` | +| Antigravity | Skills | Skills | `~/.gemini/antigravity/` | +| Trae | Skills | Skills | `~/.trae/` | +| Cline | Rules | Rules | `.clinerules` | +| Augment Code | Skills | Skills | Augment config | + ### Abstraction Points @@ -602,4 +621,4 @@ GSD supports multiple AI coding runtimes through a unified command/workflow arch 4. **Path conventions** — Each runtime stores config in different directories 5. **Model references** — `inherit` profile lets GSD defer to runtime's model selection -The installer handles all translation at install time. Workflows and agents are written in Claude Code's native format and transformed during deployment. +The installer handles all translation at install time. Workflows and agents are written in Claude Code's native format and transformed during deployment. \ No newline at end of file diff --git a/docs/CLI-TOOLS.md b/docs/CLI-TOOLS.md index 69cb71fc..d660a782 100644 --- a/docs/CLI-TOOLS.md +++ b/docs/CLI-TOOLS.md @@ -1,29 +1,71 @@ # GSD CLI Tools Reference -> Programmatic API reference for `gsd-tools.cjs`. Used by workflows and agents internally. For user-facing commands, see [Command Reference](COMMANDS.md). +> Surface-area reference for `get-shit-done/bin/gsd-tools.cjs` (legacy Node CLI). Workflows and agents should prefer `gsd-sdk query` or `@gsd-build/sdk` where a handler exists — see [SDK and programmatic access](#sdk-and-programmatic-access). For slash commands and user flows, see [Command Reference](COMMANDS.md). --- ## Overview -`gsd-tools.cjs` is a Node.js CLI utility that replaces repetitive inline bash patterns across GSD's ~50 command, workflow, and agent files. It centralizes: config parsing, model resolution, phase lookup, git commits, summary verification, state management, and template operations. +`gsd-tools.cjs` centralizes config parsing, model resolution, phase lookup, git commits, summary verification, state management, and template operations across GSD commands, workflows, and agents. -**Preferred for new orchestration:** Many of the same operations are available as `gsd-sdk query ` (see `sdk/src/query/index.ts` and `docs/QUERY-HANDLERS.md`). Use that in workflows and examples where the handler exists; keep `node … gsd-tools.cjs` for commands not yet in the registry (for example graphify) or when you need CJS-only flags. -**Location:** `get-shit-done/bin/gsd-tools.cjs` -**Modules:** see the [Module Architecture](#module-architecture) table; the `get-shit-done/bin/lib/` directory is authoritative. +| | | +| ------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| **Shipped path** | `get-shit-done/bin/gsd-tools.cjs` | +| **Implementation** | 20 domain modules under `get-shit-done/bin/lib/` (the directory is authoritative) | +| **Status** | Maintained for parity tests and CJS-only entrypoints; `gsd-sdk query` / SDK registry are the supported path for new orchestration (see [QUERY-HANDLERS.md](../sdk/src/query/QUERY-HANDLERS.md)). | + + +**Usage (CJS):** -**Usage:** ```bash node gsd-tools.cjs [args] [--raw] [--cwd ] ``` -**Global Flags:** -| Flag | Description | -|------|-------------| -| `--raw` | Machine-readable output (JSON or plain text, no formatting) | -| `--cwd ` | Override working directory (for sandboxed subagents) | -| `--ws ` | Target a specific workstream context (SDK only) | +**Global flags (CJS):** + + +| Flag | Description | +| -------------- | ---------------------------------------------------------------------------- | +| `--raw` | Machine-readable output (JSON or plain text, no formatting) | +| `--cwd ` | Override working directory (for sandboxed subagents) | +| `--ws ` | Workstream context (also honored when the SDK spawns this binary; see below) | + + +--- + +## SDK and programmatic access + +Use this when authoring workflows, not when you only need the command list below. + +**1. CLI — `gsd-sdk query `** + +- Resolves argv with the same **longest-prefix** rules as the typed registry (`resolveQueryArgv` in `sdk/src/query/registry.ts`). Unregistered commands **fail fast** — use `node …/gsd-tools.cjs` only for handlers not in the registry. +- Full matrix (CJS command → registry key, CLI-only tools, aliases, golden tiers): [sdk/src/query/QUERY-HANDLERS.md](../sdk/src/query/QUERY-HANDLERS.md). + +**2. TypeScript — `@gsd-build/sdk` (`GSDTools`, `createRegistry`)** + +- `GSDTools` (used by `PhaseRunner`, `InitRunner`, and `GSD.createTools()`) always shells out to `gsd-tools.cjs` via `execFile` — there is no in-process registry path on this class. For typed, in-process dispatch use `createRegistry()` from `sdk/src/query/index.ts`, or invoke `gsd-sdk query` (see [QUERY-HANDLERS.md](../sdk/src/query/QUERY-HANDLERS.md)). +- Conventions: mutation event wiring, `GSDError` vs `{ data: { error } }`, locks, and stubs — [QUERY-HANDLERS.md](../sdk/src/query/QUERY-HANDLERS.md). + +**CJS → SDK examples (same project directory):** + + +| Legacy CJS | Preferred `gsd-sdk query` (examples) | +| ---------------------------------------- | ------------------------------------ | +| `node gsd-tools.cjs init phase-op 12` | `gsd-sdk query init phase-op 12` | +| `node gsd-tools.cjs phase-plan-index 12` | `gsd-sdk query phase-plan-index 12` | +| `node gsd-tools.cjs state json` | `gsd-sdk query state json` | +| `node gsd-tools.cjs roadmap analyze` | `gsd-sdk query roadmap analyze` | + + +**SDK state reads:** `gsd-sdk query state json` / `state.json` and `gsd-sdk query state load` / `state.load` currently share one native handler (rebuilt STATE.md frontmatter — CJS `cmdStateJson`). The legacy CJS `state load` payload (`config`, `state_raw`, existence flags) is still **CLI-only** via `node …/gsd-tools.cjs state load` until a separate registry handler exists. Full routing and golden rules: [QUERY-HANDLERS.md](../sdk/src/query/QUERY-HANDLERS.md). + +**CLI-only (not in registry):** e.g. **graphify**, **from-gsd2** / **gsd2-import** — call `gsd-tools.cjs` until registered. + +**Mutation events (SDK):** `QUERY_MUTATION_COMMANDS` in `sdk/src/query/index.ts` lists commands that may emit structured events after a successful dispatch. Exceptions called out in QUERY-HANDLERS: `state validate` (read-only), `skill-manifest` (writes only with `--write`), `intel update` (stub). + +**Golden parity:** Policy and CJS↔SDK test categories are documented under **Golden parity** in [QUERY-HANDLERS.md](../sdk/src/query/QUERY-HANDLERS.md). --- @@ -373,7 +415,7 @@ node gsd-tools.cjs from-gsd2 [--path ] [--force] [--dry-run] node gsd-tools.cjs commit [--files f1 f2] [--amend] [--no-verify] ``` -> **`--no-verify`**: Skips pre-commit hooks. Used by parallel executor agents during wave-based execution to avoid build lock contention (e.g., cargo lock fights in Rust projects). The orchestrator runs hooks once after each wave completes. Do not use `--no-verify` during sequential execution — let hooks run normally. +> `--no-verify`: Skips pre-commit hooks. Used by parallel executor agents during wave-based execution to avoid build lock contention (e.g., cargo lock fights in Rust projects). The orchestrator runs hooks once after each wave completes. Do not use `--no-verify` during sequential execution — let hooks run normally. # Web search (requires Brave API key) node gsd-tools.cjs websearch [--limit N] [--freshness day|week|month] @@ -430,3 +472,11 @@ User-facing entry point: `/gsd-graphify` (see [Command Reference](COMMANDS.md#gs | Audit | `lib/audit.cjs` | Phase/milestone audit queue handlers; `audit-open` helper | | GSD2 Import | `lib/gsd2-import.cjs` | Reverse-migration importer from GSD-2 projects (backs `/gsd-from-gsd2`) | | Intel | `lib/intel.cjs` | Queryable codebase intelligence index (backs `/gsd-intel`) | + +--- + +## See also + +- [sdk/src/query/QUERY-HANDLERS.md](../sdk/src/query/QUERY-HANDLERS.md) — registry matrix, routing, golden parity, intentional CJS differences +- [Architecture](ARCHITECTURE.md) — where `gsd-sdk query` fits in orchestration +- [Command Reference](COMMANDS.md) — user-facing `/gsd:` commands diff --git a/docs/CONFIGURATION.md b/docs/CONFIGURATION.md index 5e3bb6a3..212f504d 100644 --- a/docs/CONFIGURATION.md +++ b/docs/CONFIGURATION.md @@ -247,7 +247,7 @@ Any GSD agent type can receive skills. Common types: ### How It Works -At spawn time, workflows call `node gsd-tools.cjs agent-skills ` to load configured skills. If skills exist for the agent type, they are injected as an `` block in the Task() prompt: +At spawn time, workflows call `gsd-sdk query agent-skills ` (or legacy `node gsd-tools.cjs agent-skills `) to load configured skills. If skills exist for the agent type, they are injected as an `` block in the Task() prompt: ```xml @@ -264,7 +264,7 @@ If no skills are configured, the block is omitted (zero overhead). Set skills via the CLI: ```bash -node gsd-tools.cjs config-set agent_skills.gsd-executor '["skills/my-skill"]' +gsd-sdk query config-set agent_skills.gsd-executor '["skills/my-skill"]' ``` --- @@ -292,10 +292,10 @@ Toggle optional capabilities via the `features.*` config namespace. Feature flag ```bash # Enable a feature -node gsd-tools.cjs config-set features.global_learnings true +gsd-sdk query config-set features.global_learnings true # Disable a feature -node gsd-tools.cjs config-set features.thinking_partner false +gsd-sdk query config-set features.thinking_partner false ``` The `features.*` namespace is a dynamic key pattern — new feature flags can be added without modifying `VALID_CONFIG_KEYS`. Any key matching `features.` is accepted by the config system. diff --git a/docs/README.md b/docs/README.md index 1b029cb8..96e76de3 100644 --- a/docs/README.md +++ b/docs/README.md @@ -26,4 +26,4 @@ Language versions: [English](README.md) · [Português (pt-BR)](pt-BR/README.md) - **All commands at a glance:** [Command Reference](COMMANDS.md) - **Configuring GSD:** [Configuration Reference](CONFIGURATION.md) - **How the system works internally:** [Architecture](ARCHITECTURE.md) -- **Contributing or extending:** [CLI Tools Reference](CLI-TOOLS.md) + [Agent Reference](AGENTS.md) +- **Contributing or extending:** [CLI Tools Reference](CLI-TOOLS.md) + [Agent Reference](AGENTS.md) \ No newline at end of file diff --git a/docs/USER-GUIDE.md b/docs/USER-GUIDE.md index 1baee361..f772ad89 100644 --- a/docs/USER-GUIDE.md +++ b/docs/USER-GUIDE.md @@ -165,12 +165,14 @@ By default, `/gsd-discuss-phase` asks open-ended questions about your implementa **Enable:** Set `workflow.discuss_mode` to `'assumptions'` via `/gsd-settings`. **How it works:** + 1. Reads PROJECT.md, codebase mapping, and existing conventions 2. Generates a structured list of assumptions (tech choices, patterns, file locations) 3. Presents assumptions for you to confirm, correct, or expand 4. Writes CONTEXT.md from confirmed assumptions **When to use:** + - Experienced developers who already know their codebase well - Rapid iteration where open-ended questions slow you down - Projects where patterns are well-established and predictable @@ -189,16 +191,19 @@ AI-generated frontends are visually inconsistent not because Claude Code is bad ### Commands -| Command | Description | -|---------|-------------| -| `/gsd-ui-phase [N]` | Generate UI-SPEC.md design contract for a frontend phase | -| `/gsd-ui-review [N]` | Retroactive 6-pillar visual audit of implemented UI | + +| Command | Description | +| -------------------- | -------------------------------------------------------- | +| `/gsd-ui-phase [N]` | Generate UI-SPEC.md design contract for a frontend phase | +| `/gsd-ui-review [N]` | Retroactive 6-pillar visual audit of implemented UI | + ### Workflow: `/gsd-ui-phase` **When to run:** After `/gsd-discuss-phase`, before `/gsd-plan-phase` — for phases with frontend/UI work. **Flow:** + 1. Reads CONTEXT.md, RESEARCH.md, REQUIREMENTS.md for existing decisions 2. Detects design system state (shadcn components.json, Tailwind config, existing tokens) 3. shadcn initialization gate — offers to initialize if React/Next.js/Vite project has none @@ -216,6 +221,7 @@ AI-generated frontends are visually inconsistent not because Claude Code is bad **Standalone:** Works on any project, not just GSD-managed ones. If no UI-SPEC.md exists, audits against abstract 6-pillar standards. **6 Pillars (scored 1-4 each):** + 1. Copywriting — CTA labels, empty states, error states 2. Visuals — focal points, visual hierarchy, icon accessibility 3. Color — accent usage discipline, 60/30/10 compliance @@ -227,10 +233,12 @@ AI-generated frontends are visually inconsistent not because Claude Code is bad ### Configuration -| Setting | Default | Description | -|---------|---------|-------------| -| `workflow.ui_phase` | `true` | Generate UI design contracts for frontend phases | -| `workflow.ui_safety_gate` | `true` | plan-phase prompts to run /gsd-ui-phase for frontend phases | + +| Setting | Default | Description | +| ------------------------- | ------- | ----------------------------------------------------------- | +| `workflow.ui_phase` | `true` | Generate UI design contracts for frontend phases | +| `workflow.ui_safety_gate` | `true` | plan-phase prompts to run /gsd-ui-phase for frontend phases | + Both follow the absent=enabled pattern. Disable via `/gsd-settings`. @@ -248,6 +256,7 @@ The preset string becomes a first-class GSD planning artifact, reproducible acro ### Registry Safety Gate Third-party shadcn registries can inject arbitrary code. The safety gate requires: + - `npx shadcn view {component}` — inspect before installing - `npx shadcn diff {component}` — compare against official @@ -365,12 +374,14 @@ Workstreams let you work on multiple milestone areas concurrently without state ### Commands -| Command | Purpose | -|---------|---------| -| `/gsd-workstreams create ` | Create a new workstream with isolated planning state | -| `/gsd-workstreams switch ` | Switch active context to a different workstream | -| `/gsd-workstreams list` | Show all workstreams and which is active | -| `/gsd-workstreams complete ` | Mark a workstream as done and archive its state | + +| Command | Purpose | +| ---------------------------------- | ---------------------------------------------------- | +| `/gsd-workstreams create ` | Create a new workstream with isolated planning state | +| `/gsd-workstreams switch ` | Switch active context to a different workstream | +| `/gsd-workstreams list` | Show all workstreams and which is active | +| `/gsd-workstreams complete ` | Mark a workstream as done and archive its state | + ### How It Works @@ -393,6 +404,7 @@ All user-supplied file paths (`--text-file`, `--prd`) are validated to resolve w The `security.cjs` module scans for known injection patterns (role overrides, instruction bypasses, system tag injections) in user-supplied text before it enters planning artifacts. **Runtime Hooks:** + - `gsd-prompt-guard.js` — Scans Write/Edit calls to `.planning/` for injection patterns (always active, advisory-only) - `gsd-workflow-guard.js` — Warns on file edits outside GSD workflow context (opt-in via `hooks.workflow_guard`) @@ -598,11 +610,13 @@ claude --dangerously-skip-permissions ### Speed vs Quality Presets -| Scenario | Mode | Granularity | Profile | Research | Plan Check | Verifier | -|----------|------|-------|---------|----------|------------|----------| -| Prototyping | `yolo` | `coarse` | `budget` | off | off | off | -| Normal dev | `interactive` | `standard` | `balanced` | on | on | on | -| Production | `interactive` | `fine` | `quality` | on | on | on | + +| Scenario | Mode | Granularity | Profile | Research | Plan Check | Verifier | +| ----------- | ------------- | ----------- | ---------- | -------- | ---------- | -------- | +| Prototyping | `yolo` | `coarse` | `budget` | off | off | off | +| Normal dev | `interactive` | `standard` | `balanced` | on | on | on | +| Production | `interactive` | `fine` | `quality` | on | on | on | + **Skipping discuss-phase in autonomous mode:** When running in `yolo` mode with well-established preferences already captured in PROJECT.md, set `workflow.skip_discuss: true` via `/gsd-settings`. This bypasses the discuss-phase entirely and writes a minimal CONTEXT.md derived from the ROADMAP phase goal. Useful when your PROJECT.md and conventions are comprehensive enough that discussion adds no new information. @@ -637,6 +651,7 @@ cd ~/gsd-workspaces/feature-b ``` Each workspace gets: + - Its own `.planning/` directory (fully independent from source repos) - Git worktrees (default) or clones of specified repos - A `WORKSPACE.md` manifest tracking member repos @@ -647,9 +662,9 @@ Each workspace gets: ### Programmatic CLI (`gsd-sdk query` vs `gsd-tools.cjs`) -For automation and copy-paste from docs, prefer **`gsd-sdk query`** with a registered subcommand (see [CLI-TOOLS.md](CLI-TOOLS.md) and [QUERY-HANDLERS.md](../sdk/src/query/QUERY-HANDLERS.md)). The legacy **`node $HOME/.claude/get-shit-done/bin/gsd-tools.cjs`** CLI remains supported for dual-mode operation. +For automation and copy-paste from docs, prefer **`gsd-sdk query`** with a registered subcommand (see [CLI-TOOLS.md — SDK and programmatic access](CLI-TOOLS.md#sdk-and-programmatic-access) and [QUERY-HANDLERS.md](../sdk/src/query/QUERY-HANDLERS.md)). The legacy `node $HOME/.claude/get-shit-done/bin/gsd-tools.cjs` CLI remains supported for dual-mode operation. -**Not yet on `gsd-sdk query` (use CJS):** `state validate`, `state sync`, `audit-open`, `graphify`, `from-gsd2`, and any subcommand not listed in the registry. +**CLI-only (not in the query registry):** **graphify**, **from-gsd2** / **gsd2-import** — call `gsd-tools.cjs` (see [QUERY-HANDLERS.md](../sdk/src/query/QUERY-HANDLERS.md)). **Two different `state` JSON shapes in the legacy CLI:** `state json` (frontmatter rebuild) vs `state load` (`config` + `state_raw` + flags). **`gsd-sdk query` today:** both `state.json` and `state.load` resolve to the frontmatter-rebuild handler — use `node …/gsd-tools.cjs state load` when you need the CJS `state load` shape. See [CLI-TOOLS.md](CLI-TOOLS.md#sdk-and-programmatic-access) and QUERY-HANDLERS. ### STATE.md Out of Sync @@ -782,6 +797,7 @@ If `npx get-shit-done-cc` fails due to npm outages or network restrictions, see When a workflow fails in a way that isn't obvious -- plans reference nonexistent files, execution produces unexpected results, or state seems corrupted -- run `/gsd-forensics` to generate a diagnostic report. **What it checks:** + - Git history anomalies (orphaned commits, unexpected branch state, rebase artifacts) - Artifact integrity (missing or malformed planning files, broken cross-references) - State inconsistencies (ROADMAP status vs. actual file presence, config drift) @@ -916,22 +932,24 @@ If the installer crashes with `EPERM: operation not permitted, scandir` on Windo ## Recovery Quick Reference -| Problem | Solution | -|---------|----------| -| Lost context / new session | `/gsd-resume-work` or `/gsd-progress` | -| Phase went wrong | `git revert` the phase commits, then re-plan | -| Need to change scope | `/gsd-add-phase`, `/gsd-insert-phase`, or `/gsd-remove-phase` | -| Milestone audit found gaps | `/gsd-plan-milestone-gaps` | -| Something broke | `/gsd-debug "description"` (add `--diagnose` for analysis without fixes) | -| STATE.md out of sync | `state validate` then `state sync` | -| Workflow state seems corrupted | `/gsd-forensics` | -| Quick targeted fix | `/gsd-quick` | -| Plan doesn't match your vision | `/gsd-discuss-phase [N]` then re-plan | -| Costs running high | `/gsd-set-profile budget` and `/gsd-settings` to toggle agents off | -| Update broke local changes | `/gsd-reapply-patches` | -| Want session summary for stakeholder | `/gsd-session-report` | -| Don't know what step is next | `/gsd-next` | -| Parallel execution build errors | Update GSD or set `parallelization.enabled: false` | + +| Problem | Solution | +| ------------------------------------ | ------------------------------------------------------------------------ | +| Lost context / new session | `/gsd-resume-work` or `/gsd-progress` | +| Phase went wrong | `git revert` the phase commits, then re-plan | +| Need to change scope | `/gsd-add-phase`, `/gsd-insert-phase`, or `/gsd-remove-phase` | +| Milestone audit found gaps | `/gsd-plan-milestone-gaps` | +| Something broke | `/gsd-debug "description"` (add `--diagnose` for analysis without fixes) | +| STATE.md out of sync | `state validate` then `state sync` | +| Workflow state seems corrupted | `/gsd-forensics` | +| Quick targeted fix | `/gsd-quick` | +| Plan doesn't match your vision | `/gsd-discuss-phase [N]` then re-plan | +| Costs running high | `/gsd-set-profile budget` and `/gsd-settings` to toggle agents off | +| Update broke local changes | `/gsd-reapply-patches` | +| Want session summary for stakeholder | `/gsd-session-report` | +| Don't know what step is next | `/gsd-next` | +| Parallel execution build errors | Update GSD or set `parallelization.enabled: false` | + --- @@ -975,3 +993,4 @@ For reference, here is what GSD creates in your project: XX-UI-REVIEW.md # Visual audit scores (from /gsd-ui-review) ui-reviews/ # Screenshots from /gsd-ui-review (gitignored) ``` + diff --git a/docs/gsd-sdk-query-migration-blurb.md b/docs/gsd-sdk-query-migration-blurb.md index 925fa565..1fe097d9 100644 --- a/docs/gsd-sdk-query-migration-blurb.md +++ b/docs/gsd-sdk-query-migration-blurb.md @@ -4,7 +4,7 @@ Copy-paste friendly for Discord and GitHub comments. --- -**@gsd-build/sdk** replaces the untyped, monolithic `gsd-tools.cjs` subprocess with a typed, tested, registry-based query system and **`gsd-sdk query`**, giving GSD structured results, classified errors (`GSDQueryError`), and golden-verified parity with the old CLI. That gives the framework one stable contract instead of a fragile, very large CLI that every workflow had to spawn and parse by hand. +**@gsd-build/sdk** replaces the untyped, monolithic `gsd-tools.cjs` subprocess with a typed, tested, registry-based query system and **`gsd-sdk query`**, giving GSD structured results, classified errors (`GSDError` with `ErrorClassification`), and golden-verified parity with the old CLI. That gives the framework one stable contract instead of a fragile, very large CLI that every workflow had to spawn and parse by hand. **What users can expect** diff --git a/docs/ja-JP/README.md b/docs/ja-JP/README.md index c918ef8a..a834fd5f 100644 --- a/docs/ja-JP/README.md +++ b/docs/ja-JP/README.md @@ -10,7 +10,7 @@ Get Shit Done(GSD)フレームワークの包括的なドキュメントで | [機能リファレンス](FEATURES.md) | 全ユーザー | 全機能の詳細ドキュメントと要件 | | [コマンドリファレンス](COMMANDS.md) | 全ユーザー | 全コマンドの構文、フラグ、オプション、使用例 | | [設定リファレンス](CONFIGURATION.md) | 全ユーザー | 設定スキーマ、ワークフロートグル、モデルプロファイル、Git ブランチ | -| [CLI ツールリファレンス](CLI-TOOLS.md) | コントリビューター、エージェント作成者 | `gsd-tools.cjs` のプログラマティック API(ワークフローおよびエージェント向け) | +| [CLI ツールリファレンス](CLI-TOOLS.md) | コントリビューター、エージェント作成者 | CJS `gsd-tools.cjs` と **`gsd-sdk query` / SDK** のガイド | | [エージェントリファレンス](AGENTS.md) | コントリビューター、上級ユーザー | 全18種の専門エージェント — 役割、ツール、スポーンパターン | | [ユーザーガイド](USER-GUIDE.md) | 全ユーザー | ワークフローのウォークスルー、トラブルシューティング、リカバリー | | [コンテキストモニター](context-monitor.md) | 全ユーザー | コンテキストウィンドウ監視フックのアーキテクチャ | diff --git a/docs/ko-KR/README.md b/docs/ko-KR/README.md index fcee5ca2..1bad09d0 100644 --- a/docs/ko-KR/README.md +++ b/docs/ko-KR/README.md @@ -12,7 +12,7 @@ Get Shit Done (GSD) 프레임워크의 종합 문서입니다. GSD는 AI 코딩 | [Feature Reference](FEATURES.md) | 전체 사용자 | 요구사항이 포함된 전체 기능 및 함수 문서 | | [Command Reference](COMMANDS.md) | 전체 사용자 | 모든 명령어의 구문, 플래그, 옵션 및 예제 | | [Configuration Reference](CONFIGURATION.md) | 전체 사용자 | 전체 설정 스키마, 워크플로우 토글, 모델 프로필, git 브랜칭 | -| [CLI Tools Reference](CLI-TOOLS.md) | 기여자, 에이전트 작성자 | 워크플로우 및 에이전트를 위한 `gsd-tools.cjs` 프로그래매틱 API | +| [CLI Tools Reference](CLI-TOOLS.md) | 기여자, 에이전트 작성자 | CJS `gsd-tools.cjs` + **`gsd-sdk query`/SDK** 안내 | | [Agent Reference](AGENTS.md) | 기여자, 고급 사용자 | 18개 전문 에이전트의 역할, 도구, 스폰 패턴 | | [User Guide](USER-GUIDE.md) | 전체 사용자 | 워크플로우 안내, 문제 해결, 복구 방법 | | [Context Monitor](context-monitor.md) | 전체 사용자 | 컨텍스트 윈도우 모니터링 훅 아키텍처 | diff --git a/docs/pt-BR/CLI-TOOLS.md b/docs/pt-BR/CLI-TOOLS.md index 764a92e3..67c9d6c5 100644 --- a/docs/pt-BR/CLI-TOOLS.md +++ b/docs/pt-BR/CLI-TOOLS.md @@ -1,7 +1,7 @@ # Referência de Ferramentas CLI Resumo em Português das ferramentas CLI do GSD. -Para API completa (assinaturas, argumentos e comportamento detalhado), consulte [CLI-TOOLS.md em inglês](../CLI-TOOLS.md). +Para API completa (assinaturas, argumentos e comportamento detalhado), consulte [CLI-TOOLS.md em inglês](../CLI-TOOLS.md) — inclui a secção **SDK and programmatic access** (`gsd-sdk query`, `@gsd-build/sdk`). --- diff --git a/docs/pt-BR/README.md b/docs/pt-BR/README.md index ee977d9b..a617cd9c 100644 --- a/docs/pt-BR/README.md +++ b/docs/pt-BR/README.md @@ -12,7 +12,7 @@ Documentação abrangente do framework Get Shit Done (GSD) — um sistema de met | [Referência de configuração](CONFIGURATION.md) | Todos os usuários | Schema completo de configuração, toggles e perfis | | [Referência de recursos](FEATURES.md) | Todos os usuários | Recursos e requisitos detalhados | | [Referência de agentes](AGENTS.md) | Contribuidores, usuários avançados | Agentes especializados, papéis e padrões de orquestração | -| [Ferramentas CLI](CLI-TOOLS.md) | Contribuidores, autores de agentes | API programática `gsd-tools.cjs` | +| [Ferramentas CLI](CLI-TOOLS.md) | Contribuidores, autores de agentes | Superfície CJS `gsd-tools.cjs` + guia **`gsd-sdk query`/SDK** | | [Monitor de contexto](context-monitor.md) | Todos os usuários | Arquitetura de monitoramento da janela de contexto | | [Discuss Mode](workflow-discuss-mode.md) | Todos os usuários | Modo suposições vs entrevista no `discuss-phase` | | [Referências](references/) | Todos os usuários | Guias complementares de decisão, verificação e padrões | diff --git a/docs/zh-CN/references/decimal-phase-calculation.md b/docs/zh-CN/references/decimal-phase-calculation.md index d25f4687..d6dcc465 100644 --- a/docs/zh-CN/references/decimal-phase-calculation.md +++ b/docs/zh-CN/references/decimal-phase-calculation.md @@ -2,11 +2,11 @@ 为紧急插入计算下一个小数阶段编号。 -## 使用 gsd-tools +## 使用 gsd-sdk query ```bash # 获取阶段 6 之后的下一个小数阶段 -node "$HOME/.claude/get-shit-done/bin/gsd-tools.cjs" phase next-decimal 6 +gsd-sdk query phase.next-decimal 6 ``` 输出: @@ -32,14 +32,13 @@ node "$HOME/.claude/get-shit-done/bin/gsd-tools.cjs" phase next-decimal 6 ## 提取值 ```bash -DECIMAL_INFO=$(node "$HOME/.claude/get-shit-done/bin/gsd-tools.cjs" phase next-decimal "${AFTER_PHASE}") -DECIMAL_PHASE=$(printf '%s\n' "$DECIMAL_INFO" | jq -r '.next') -BASE_PHASE=$(printf '%s\n' "$DECIMAL_INFO" | jq -r '.base_phase') +DECIMAL_PHASE=$(gsd-sdk query phase.next-decimal "${AFTER_PHASE}" --pick next) +BASE_PHASE=$(gsd-sdk query phase.next-decimal "${AFTER_PHASE}" --pick base_phase) ``` 或使用 --raw 标志: ```bash -DECIMAL_PHASE=$(node "$HOME/.claude/get-shit-done/bin/gsd-tools.cjs" phase next-decimal "${AFTER_PHASE}" --raw) +DECIMAL_PHASE=$(gsd-sdk query phase.next-decimal "${AFTER_PHASE}" --raw) # 返回: 06.1 ``` @@ -57,9 +56,9 @@ DECIMAL_PHASE=$(node "$HOME/.claude/get-shit-done/bin/gsd-tools.cjs" phase next- 小数阶段目录使用完整的小数编号: ```bash -SLUG=$(node "$HOME/.claude/get-shit-done/bin/gsd-tools.cjs" generate-slug "$DESCRIPTION" --raw) +SLUG=$(gsd-sdk query generate-slug "$DESCRIPTION" --raw) PHASE_DIR=".planning/phases/${DECIMAL_PHASE}-${SLUG}" mkdir -p "$PHASE_DIR" ``` -示例:`.planning/phases/06.1-fix-critical-auth-bug/` \ No newline at end of file +示例:`.planning/phases/06.1-fix-critical-auth-bug/` diff --git a/docs/zh-CN/references/git-integration.md b/docs/zh-CN/references/git-integration.md index 8fb58d0a..a840a084 100644 --- a/docs/zh-CN/references/git-integration.md +++ b/docs/zh-CN/references/git-integration.md @@ -51,7 +51,7 @@ Phases: 提交内容: ```bash -node "$HOME/.claude/get-shit-done/bin/gsd-tools.cjs" commit "docs: initialize [project-name] ([N] phases)" --files .planning/ +gsd-sdk query commit "docs: initialize [project-name] ([N] phases)" .planning/ ``` @@ -129,7 +129,7 @@ SUMMARY: .planning/phases/XX-name/{phase}-{plan}-SUMMARY.md 提交内容: ```bash -node "$HOME/.claude/get-shit-done/bin/gsd-tools.cjs" commit "docs({phase}-{plan}): complete [plan-name] plan" --files .planning/phases/XX-name/{phase}-{plan}-PLAN.md .planning/phases/XX-name/{phase}-{plan}-SUMMARY.md .planning/STATE.md .planning/ROADMAP.md +gsd-sdk query commit "docs({phase}-{plan}): complete [plan-name] plan" .planning/phases/XX-name/{phase}-{plan}-PLAN.md .planning/phases/XX-name/{phase}-{plan}-SUMMARY.md .planning/STATE.md .planning/ROADMAP.md ``` **注意:** 代码文件不包含 - 已按任务提交。 @@ -149,7 +149,7 @@ Current: [task name] 提交内容: ```bash -node "$HOME/.claude/get-shit-done/bin/gsd-tools.cjs" commit "wip: [phase-name] paused at task [X]/[Y]" --files .planning/ +gsd-sdk query commit "wip: [phase-name] paused at task [X]/[Y]" .planning/ ``` diff --git a/docs/zh-CN/references/git-planning-commit.md b/docs/zh-CN/references/git-planning-commit.md index fd128ba6..701ce353 100644 --- a/docs/zh-CN/references/git-planning-commit.md +++ b/docs/zh-CN/references/git-planning-commit.md @@ -1,13 +1,15 @@ # Git 规划提交 -使用 gsd-tools CLI 提交规划工件,它会自动检查 `commit_docs` 配置和 gitignore 状态。 +通过 `gsd-sdk query commit` 提交规划工件,它会自动检查 `commit_docs` 配置和 gitignore 状态(与旧版 `gsd-tools.cjs commit` 行为相同)。 ## 通过 CLI 提交 -始终使用 `gsd-tools.cjs commit` 处理 `.planning/` 文件 — 它会自动处理 `commit_docs` 和 gitignore 检查: +先传提交说明,再传文件路径(位置参数)。`commit` 不要使用 `--files`(该标志仅用于 `commit-to-subrepo`)。 + +对 `.planning/` 文件始终使用此方式 —— 它会自动处理 `commit_docs` 与 gitignore 检查: ```bash -node "$HOME/.claude/get-shit-done/bin/gsd-tools.cjs" commit "docs({scope}): {description}" --files .planning/STATE.md .planning/ROADMAP.md +gsd-sdk query commit "docs({scope}): {description}" .planning/STATE.md .planning/ROADMAP.md ``` 如果 `commit_docs` 为 `false` 或 `.planning/` 被 gitignore,CLI 会返回 `skipped`(带原因)。无需手动条件检查。 @@ -17,7 +19,7 @@ node "$HOME/.claude/get-shit-done/bin/gsd-tools.cjs" commit "docs({scope}): {des 将 `.planning/` 文件变更合并到上次提交: ```bash -node "$HOME/.claude/get-shit-done/bin/gsd-tools.cjs" commit "" --files .planning/codebase/*.md --amend +gsd-sdk query commit "" .planning/codebase/*.md --amend ``` ## 提交消息模式 @@ -35,4 +37,4 @@ node "$HOME/.claude/get-shit-done/bin/gsd-tools.cjs" commit "" --files .planning - config 中 `commit_docs: false` - `.planning/` 被 gitignore -- 无变更可提交(用 `git status --porcelain .planning/` 检查) \ No newline at end of file +- 无变更可提交(用 `git status --porcelain .planning/` 检查) diff --git a/docs/zh-CN/references/planning-config.md b/docs/zh-CN/references/planning-config.md index 075d2f85..6ce0a30f 100644 --- a/docs/zh-CN/references/planning-config.md +++ b/docs/zh-CN/references/planning-config.md @@ -36,19 +36,19 @@ - 用户必须将 `.planning/` 添加到 `.gitignore` - 适用于:OSS 贡献、客户项目、保持规划私有 -**使用 gsd-tools.cjs(推荐):** +**使用 `gsd-sdk query`(推荐):** ```bash # 提交时自动检查 commit_docs + gitignore: -node "$HOME/.claude/get-shit-done/bin/gsd-tools.cjs" commit "docs: update state" --files .planning/STATE.md +gsd-sdk query commit "docs: update state" .planning/STATE.md # 通过 state load 加载配置(返回 JSON): -INIT=$(node "$HOME/.claude/get-shit-done/bin/gsd-tools.cjs" state load) +INIT=$(gsd-sdk query state.load) if [[ "$INIT" == @file:* ]]; then INIT=$(cat "${INIT#@file:}"); fi # commit_docs 在 JSON 输出中可用 # 或使用包含 commit_docs 的 init 命令: -INIT=$(node "$HOME/.claude/get-shit-done/bin/gsd-tools.cjs" init execute-phase "1") +INIT=$(gsd-sdk query init.execute-phase "1") if [[ "$INIT" == @file:* ]]; then INIT=$(cat "${INIT#@file:}"); fi # commit_docs 包含在所有 init 命令输出中 ``` @@ -58,7 +58,7 @@ if [[ "$INIT" == @file:* ]]; then INIT=$(cat "${INIT#@file:}"); fi **通过 CLI 提交(自动处理检查):** ```bash -node "$HOME/.claude/get-shit-done/bin/gsd-tools.cjs" commit "docs: update state" --files .planning/STATE.md +gsd-sdk query commit "docs: update state" .planning/STATE.md ``` CLI 在内部检查 `commit_docs` 配置和 gitignore 状态 —— 无需手动条件判断。 @@ -146,14 +146,14 @@ CLI 在内部检查 `commit_docs` 配置和 gitignore 状态 —— 无需手动 使用 `init execute-phase` 返回所有配置为 JSON: ```bash -INIT=$(node "$HOME/.claude/get-shit-done/bin/gsd-tools.cjs" init execute-phase "1") +INIT=$(gsd-sdk query init.execute-phase "1") if [[ "$INIT" == @file:* ]]; then INIT=$(cat "${INIT#@file:}"); fi # JSON 输出包含:branching_strategy, phase_branch_template, milestone_branch_template ``` 或使用 `state load` 获取配置值: ```bash -INIT=$(node "$HOME/.claude/get-shit-done/bin/gsd-tools.cjs" state load) +INIT=$(gsd-sdk query state.load) if [[ "$INIT" == @file:* ]]; then INIT=$(cat "${INIT#@file:}"); fi # 从 JSON 解析 branching_strategy, phase_branch_template, milestone_branch_template ``` diff --git a/get-shit-done/references/planning-config.md b/get-shit-done/references/planning-config.md index c4eb93c2..b919c4e8 100644 --- a/get-shit-done/references/planning-config.md +++ b/get-shit-done/references/planning-config.md @@ -54,7 +54,7 @@ Configuration options for `.planning/` directory behavior. - User must add `.planning/` to `.gitignore` - Useful for: OSS contributions, client projects, keeping planning private -**Using gsd-tools.cjs (preferred):** +**Using `gsd-sdk query` (preferred):** ```bash # Commit with automatic commit_docs + gitignore checks: diff --git a/get-shit-done/references/universal-anti-patterns.md b/get-shit-done/references/universal-anti-patterns.md index fff31f7b..dfa4fb16 100644 --- a/get-shit-done/references/universal-anti-patterns.md +++ b/get-shit-done/references/universal-anti-patterns.md @@ -34,7 +34,7 @@ Reference: `references/questioning.md` for the full anti-pattern list. ## State Management Anti-Patterns -15. **No direct Write/Edit to STATE.md or ROADMAP.md for mutations.** Always use `gsd-tools.cjs` CLI commands (`state update`, `state advance-plan`, `roadmap update-status`) for mutations. Direct Write tool usage bypasses safe update logic and is unsafe in multi-session environments. Exception: first-time creation of STATE.md from template is allowed. +15. **No direct Write/Edit to STATE.md or ROADMAP.md for mutations.** Always use `gsd-sdk query` for registered state/roadmap handlers (e.g. `state.update`, `state.advance-plan`, `roadmap.update-plan-progress`), or legacy `node …/gsd-tools.cjs` for CLI-only commands. Direct Write tool usage bypasses safe update logic and is unsafe in multi-session environments. Exception: first-time creation of STATE.md from template is allowed. ## Behavioral Rules @@ -53,7 +53,7 @@ Reference: `references/questioning.md` for the full anti-pattern list. ## GSD-Specific Rules 24. **Do not** check for `mode === 'auto'` or `mode === 'autonomous'` -- GSD uses `yolo` config flag. Check `yolo: true` for autonomous mode, absence or `false` for interactive mode. -25. **Always use `gsd-tools.cjs`** (not `gsd-tools.js` or any other variant) -- GSD uses CommonJS for Node.js CLI compatibility. +25. **Prefer `gsd-sdk query`** for orchestration when a handler exists; when shelling out to the legacy CLI, use **`gsd-tools.cjs`** (not `gsd-tools.js` or any other filename) — GSD ships the programmatic API as CommonJS for Node.js CLI compatibility. 26. **Plan files MUST follow `{padded_phase}-{NN}-PLAN.md` pattern** (e.g., `01-01-PLAN.md`). Never use `PLAN-01.md`, `plan-01.md`, or any other variation -- gsd-tools detection depends on this exact pattern. 27. **Do not start executing the next plan before writing the SUMMARY.md for the current plan** -- downstream plans may reference it via `@` includes. diff --git a/get-shit-done/workflows/complete-milestone.md b/get-shit-done/workflows/complete-milestone.md index 9d5e2a6a..3c01d735 100644 --- a/get-shit-done/workflows/complete-milestone.md +++ b/get-shit-done/workflows/complete-milestone.md @@ -40,10 +40,8 @@ When a milestone completes: Before proceeding with milestone close, run the comprehensive open artifact audit. -`audit-open` is not registered on `gsd-sdk query` yet; use the installed CJS CLI: - ```bash -node "$HOME/.claude/get-shit-done/bin/gsd-tools.cjs" audit-open 2>/dev/null +gsd-sdk query audit-open 2>/dev/null ``` If the output contains open items (any section with count > 0): @@ -59,7 +57,7 @@ These items are open. Choose an action: ``` If user chooses [A] (Acknowledge): -1. Re-run `audit-open --json` to get structured data +1. Re-run `gsd-sdk query audit-open --json` to get structured data 2. Write acknowledged items to STATE.md under `## Deferred Items` section: ```markdown ## Deferred Items @@ -78,7 +76,7 @@ If user chooses [A] (Acknowledge): If output shows all clear (no open items): print `All artifact types clear.` and proceed. -SECURITY: Audit JSON output is structured data from `audit-open` (gsd-tools.cjs) — validated and sanitized at source. When writing to STATE.md, item slugs and descriptions are sanitized via `sanitizeForDisplay()` before inclusion. Never inject raw user-supplied content into STATE.md without sanitization. +SECURITY: Audit JSON output is structured data from the `audit-open` query handler (same JSON contract as legacy `gsd-tools.cjs audit-open`) — validated and sanitized at source. When writing to STATE.md, item slugs and descriptions are sanitized via `sanitizeForDisplay()` before inclusion. Never inject raw user-supplied content into STATE.md without sanitization. diff --git a/get-shit-done/workflows/discuss-phase-assumptions.md b/get-shit-done/workflows/discuss-phase-assumptions.md index 5aee97ce..96a563a7 100644 --- a/get-shit-done/workflows/discuss-phase-assumptions.md +++ b/get-shit-done/workflows/discuss-phase-assumptions.md @@ -622,21 +622,20 @@ Check for auto-advance trigger: gsd-sdk query config-set workflow._auto_chain_active false 2>/dev/null fi ``` -3. Read chain flag and user preference: +3. Read consolidated auto-mode (`active` = chain flag OR user preference): ```bash - AUTO_CHAIN=$(gsd-sdk query config-get workflow._auto_chain_active 2>/dev/null || echo "false") - AUTO_CFG=$(gsd-sdk query config-get workflow.auto_advance 2>/dev/null || echo "false") + AUTO_MODE=$(gsd-sdk query check auto-mode --pick active 2>/dev/null || echo "false") ``` -**If `--auto` flag present AND `AUTO_CHAIN` is not true:** +**If `--auto` flag present AND `AUTO_MODE` is not true:** ```bash gsd-sdk query config-set workflow._auto_chain_active true ``` -**If `--auto` flag present OR `AUTO_CHAIN` is true OR `AUTO_CFG` is true:** +**If `--auto` flag present OR `AUTO_MODE` is true:** Display banner: -``` +```text ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ GSD ► AUTO-ADVANCING TO PLAN ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ diff --git a/get-shit-done/workflows/discuss-phase.md b/get-shit-done/workflows/discuss-phase.md index ec21ef64..9964a45d 100644 --- a/get-shit-done/workflows/discuss-phase.md +++ b/get-shit-done/workflows/discuss-phase.md @@ -1223,18 +1223,17 @@ Check for auto-advance trigger: gsd-sdk query config-set workflow._auto_chain_active false 2>/dev/null fi ``` -3. Read both the chain flag and user preference: +3. Read consolidated auto-mode (`active` = chain flag OR user preference): ```bash - AUTO_CHAIN=$(gsd-sdk query config-get workflow._auto_chain_active 2>/dev/null || echo "false") - AUTO_CFG=$(gsd-sdk query config-get workflow.auto_advance 2>/dev/null || echo "false") + AUTO_MODE=$(gsd-sdk query check auto-mode --pick active 2>/dev/null || echo "false") ``` -**If `--auto` or `--chain` flag present AND `AUTO_CHAIN` is not true:** Persist chain flag to config (handles direct usage without new-project): +**If `--auto` or `--chain` flag present AND `AUTO_MODE` is not true:** Persist chain flag to config (handles direct usage without new-project): ```bash gsd-sdk query config-set workflow._auto_chain_active true ``` -**If `--auto` flag present OR `--chain` flag present OR `AUTO_CHAIN` is true OR `AUTO_CFG` is true:** +**If `--auto` flag present OR `--chain` flag present OR `AUTO_MODE` is true:** Display banner: ``` diff --git a/get-shit-done/workflows/execute-phase.md b/get-shit-done/workflows/execute-phase.md index 2d602e3a..5623d7a4 100644 --- a/get-shit-done/workflows/execute-phase.md +++ b/get-shit-done/workflows/execute-phase.md @@ -865,13 +865,12 @@ Plans with `autonomous: false` require user interaction. **Auto-mode checkpoint handling:** -Read auto-advance config (chain flag + user preference): +Read auto-advance config (chain flag OR user preference — same boolean as `check.auto-mode`): ```bash -AUTO_CHAIN=$(gsd-sdk query config-get workflow._auto_chain_active 2>/dev/null || echo "false") -AUTO_CFG=$(gsd-sdk query config-get workflow.auto_advance 2>/dev/null || echo "false") +AUTO_MODE=$(gsd-sdk query check auto-mode --pick active 2>/dev/null || echo "false") ``` -When executor returns a checkpoint AND (`AUTO_CHAIN` is `"true"` OR `AUTO_CFG` is `"true"`): +When executor returns a checkpoint AND `AUTO_MODE` is `true`: - **human-verify** → Auto-spawn continuation agent with `{user_response}` = `"approved"`. Log `⚡ Auto-approved checkpoint`. - **decision** → Auto-spawn continuation agent with `{user_response}` = first option from checkpoint details. Log `⚡ Auto-selected: [option]`. - **human-action** → Present to user (existing behavior below). Auth gates cannot be automated. @@ -1484,13 +1483,12 @@ STOP. Do not proceed to auto-advance or transition. **Auto-advance detection:** 1. Parse `--auto` flag from $ARGUMENTS -2. Read both the chain flag and user preference (chain flag already synced in init step): +2. Read consolidated auto-mode (`active` = chain flag OR user preference; chain flag already synced in init step): ```bash - AUTO_CHAIN=$(gsd-sdk query config-get workflow._auto_chain_active 2>/dev/null || echo "false") - AUTO_CFG=$(gsd-sdk query config-get workflow.auto_advance 2>/dev/null || echo "false") + AUTO_MODE=$(gsd-sdk query check auto-mode --pick active 2>/dev/null || echo "false") ``` -**If `--auto` flag present OR `AUTO_CHAIN` is true OR `AUTO_CFG` is true (AND verification passed with no gaps):** +**If `--auto` flag present OR `AUTO_MODE` is true (AND verification passed with no gaps):** ``` ╔══════════════════════════════════════════╗ @@ -1503,7 +1501,7 @@ Execute the transition workflow inline (do NOT use Task — orchestrator context Read and follow `~/.claude/get-shit-done/workflows/transition.md`, passing through the `--auto` flag so it propagates to the next phase invocation. -**If none of `--auto`, `AUTO_CHAIN`, or `AUTO_CFG` is true:** +**If neither `--auto` nor `AUTO_MODE` is true:** **STOP. Do not auto-advance. Do not execute transition. Do not plan next phase. Present options to the user and wait.** diff --git a/get-shit-done/workflows/plan-phase.md b/get-shit-done/workflows/plan-phase.md index 8866699c..69561969 100644 --- a/get-shit-done/workflows/plan-phase.md +++ b/get-shit-done/workflows/plan-phase.md @@ -475,9 +475,9 @@ UI_SPEC_FILE=$(ls "${PHASE_DIR}"/*-UI-SPEC.md 2>/dev/null | head -1) **If UI-SPEC.md missing AND `UI_GATE_CFG` is `true`:** -Read auto-chain state: +Read ephemeral chain flag (same field as `check.auto-mode` → `auto_chain_active`): ```bash -AUTO_CHAIN=$(gsd-sdk query config-get workflow._auto_chain_active 2>/dev/null || echo "false") +AUTO_CHAIN=$(gsd-sdk query check auto-mode --pick auto_chain_active 2>/dev/null || echo "false") ``` **If `AUTO_CHAIN` is `true` (running inside a `--chain` or `--auto` pipeline):** diff --git a/get-shit-done/workflows/settings.md b/get-shit-done/workflows/settings.md index 196bd2ac..c87ce8f8 100644 --- a/get-shit-done/workflows/settings.md +++ b/get-shit-done/workflows/settings.md @@ -13,13 +13,21 @@ Ensure config exists and load current state: ```bash gsd-sdk query config-ensure-section -GSD_CONFIG_PATH=$(node "$HOME/.claude/get-shit-done/bin/gsd-tools.cjs" config-path) INIT=$(gsd-sdk query state.load) if [[ "$INIT" == @file:* ]]; then INIT=$(cat "${INIT#@file:}"); fi +# `state.load` returns STATE frontmatter JSON from the SDK — it does not include `config_path`. Orchestrators may set `GSD_CONFIG_PATH` from init phase-op JSON; otherwise resolve the same path gsd-tools uses for flat vs active workstream (#2282). +if [[ -z "${GSD_CONFIG_PATH:-}" ]]; then + if [[ -f .planning/active-workstream ]]; then + WS=$(tr -d '\n\r' < .planning/active-workstream) + GSD_CONFIG_PATH=".planning/workstreams/${WS}/config.json" + else + GSD_CONFIG_PATH=".planning/config.json" + fi +fi ``` -Creates config.json (at the workstream-aware path) with defaults if missing and loads current config values. -Store `$GSD_CONFIG_PATH` — all subsequent reads and writes use this path, not the hardcoded `.planning/config.json`, so active-workstream installs write to the correct location (#2282). +Creates `config.json` (at the resolved path) with defaults if missing. `INIT` still holds `state.load` output for any step that needs STATE fields. +Store `$GSD_CONFIG_PATH` — all subsequent reads and writes use this path, not a hardcoded `.planning/config.json`, so active-workstream installs target the correct file (#2282). diff --git a/get-shit-done/workflows/sketch.md b/get-shit-done/workflows/sketch.md index 41992493..88dc046e 100644 --- a/get-shit-done/workflows/sketch.md +++ b/get-shit-done/workflows/sketch.md @@ -53,9 +53,7 @@ COMMIT_DOCS=$(gsd-sdk query config-get commit_docs 2>/dev/null || echo "true") **Otherwise:** -**Text mode:** If TEXT_MODE is enabled (set in the banner step), replace AskUserQuestion calls with plain-text numbered lists — emit the options and ask the user to type the number of their choice. - -Before sketching anything, explore the design intent through conversation. Ask one question at a time — using AskUserQuestion in normal mode, or a plain-text numbered list if TEXT_MODE is active — with a paragraph of context and reasoning for each. +Before sketching anything, explore the design intent through conversation. Ask one question at a time using AskUserQuestion, with a paragraph of context and reasoning for each. **Questions to cover (adapt to what the user has already shared):** diff --git a/get-shit-done/workflows/update.md b/get-shit-done/workflows/update.md index d67b4f5c..94a873b2 100644 --- a/get-shit-done/workflows/update.md +++ b/get-shit-done/workflows/update.md @@ -388,8 +388,9 @@ installer does not know about and will delete during the wipe. **Do not use bash path-stripping (`${filepath#$RUNTIME_DIR/}`) or `node -e require()` inline** — those patterns fail when `$RUNTIME_DIR` is unset and the stripped relative path may not match manifest key format, which causes CUSTOM_COUNT=0 -even when custom files exist (bug #1997). Use `gsd-tools detect-custom-files` -instead, which resolves paths reliably with Node.js `path.relative()`. +even when custom files exist (bug #1997). Use `gsd-sdk query detect-custom-files` +when `gsd-sdk` is on `PATH`, or the bundled `gsd-tools.cjs detect-custom-files` +otherwise — both resolve paths reliably with Node.js `path.relative()`. First, resolve the config directory (`RUNTIME_DIR`) from the install scope detected in `get_installed_version`: @@ -410,17 +411,20 @@ fi If `RUNTIME_DIR` is empty or does not exist, skip this step (no config dir to inspect). -Otherwise, resolve the path to `gsd-tools.cjs` and run: +Otherwise run `detect-custom-files` (prefer SDK when available): ```bash GSD_TOOLS="$RUNTIME_DIR/get-shit-done/bin/gsd-tools.cjs" -if [ -f "$GSD_TOOLS" ] && [ -n "$RUNTIME_DIR" ]; then +CUSTOM_JSON='' +if [ -n "$RUNTIME_DIR" ] && command -v gsd-sdk >/dev/null 2>&1; then + CUSTOM_JSON=$(gsd-sdk query detect-custom-files --config-dir "$RUNTIME_DIR" 2>/dev/null) +elif [ -f "$GSD_TOOLS" ] && [ -n "$RUNTIME_DIR" ]; then CUSTOM_JSON=$(node "$GSD_TOOLS" detect-custom-files --config-dir "$RUNTIME_DIR" 2>/dev/null) - CUSTOM_COUNT=$(echo "$CUSTOM_JSON" | node -e "process.stdin.resume();let d='';process.stdin.on('data',c=>d+=c);process.stdin.on('end',()=>{try{console.log(JSON.parse(d).custom_count);}catch{console.log(0);}})" 2>/dev/null || echo "0") -else - CUSTOM_COUNT=0 +fi +if [ -z "$CUSTOM_JSON" ]; then CUSTOM_JSON='{"custom_files":[],"custom_count":0}' fi +CUSTOM_COUNT=$(echo "$CUSTOM_JSON" | node -e "process.stdin.resume();let d='';process.stdin.on('data',c=>d+=c);process.stdin.on('end',()=>{try{console.log(JSON.parse(d).custom_count);}catch{console.log(0);}})" 2>/dev/null || echo "0") ``` **If `CUSTOM_COUNT` > 0:** diff --git a/get-shit-done/workflows/verify-work.md b/get-shit-done/workflows/verify-work.md index ceef9ff1..e374daf7 100644 --- a/get-shit-done/workflows/verify-work.md +++ b/get-shit-done/workflows/verify-work.md @@ -464,7 +464,7 @@ Run phase artifact scan to surface any open items before marking phase verified: `audit-open` is CJS-only until registered on `gsd-sdk query`: ```bash -node "$HOME/.claude/get-shit-done/bin/gsd-tools.cjs" audit-open --json 2>/dev/null +gsd-sdk query audit-open --json 2>/dev/null ``` Parse the JSON output. For the CURRENT PHASE ONLY, surface: diff --git a/tests/read-guard.test.cjs b/tests/read-guard.test.cjs index 182fe011..5fa54578 100644 --- a/tests/read-guard.test.cjs +++ b/tests/read-guard.test.cjs @@ -28,7 +28,7 @@ const HOOK_PATH = path.join(__dirname, '..', 'hooks', 'gsd-read-guard.js'); */ function runHook(payload, envOverrides = {}) { const input = JSON.stringify(payload); - // Sanitize Claude Code env vars so positive-path tests work inside Claude Code sessions + // Sanitize CLAUDE_SESSION_ID so positive-path tests work inside Claude Code sessions const env = { ...process.env, CLAUDE_SESSION_ID: '', CLAUDECODE: '', ...envOverrides }; try { const stdout = execFileSync(process.execPath, [HOOK_PATH], {