From 14d0238cf58bc813c4b02b012fa587f31cbcd29b Mon Sep 17 00:00:00 2001 From: Tom Boucher Date: Wed, 3 Jun 2026 23:04:44 -0400 Subject: [PATCH] docs: roll up legacy release notes into a single archive (#658) (#659) Consolidate all pre-rename release notes (the retired get-shit-done-cc / get-shit-done-redux lineage, 1.0.0 -> 1.50.0-canary.1) into one condensed, read-only archive so the legacy 1.x version numbers no longer collide with the current @opengsd/gsd-core line. - Add docs/RELEASE-NOTES-LEGACY.md: rename banner, master version-index table, condensed per-version sections (1.42.3 -> 1.0.0), and a separate pre-release & canary builds section. Stale install commands stripped. - Trim CHANGELOG.md to the current @opengsd/gsd-core line only; replace the Legacy Release History block with a pointer to the archive and drop the orphaned numbered legacy reference-link definitions. - Remove the 10 standalone docs/RELEASE-v*.md files. - Repoint docs/CANARY.md and docs/FEATURES.md links to the new archive. Closes #658 Co-authored-by: Claude Opus 4.8 --- CHANGELOG.md | 2936 +----------------------------- docs/CANARY.md | 2 +- docs/FEATURES.md | 2 +- docs/RELEASE-NOTES-LEGACY.md | 1030 +++++++++++ docs/RELEASE-v1.39.0-rc.4.md | 84 - docs/RELEASE-v1.39.0-rc.5.md | 99 - docs/RELEASE-v1.39.0-rc.6.md | 116 -- docs/RELEASE-v1.39.0-rc.7.md | 185 -- docs/RELEASE-v1.40.0-rc.1.md | 136 -- docs/RELEASE-v1.41.0.md | 199 -- docs/RELEASE-v1.42.0-rc.1.md | 100 - docs/RELEASE-v1.42.1.md | 178 -- docs/RELEASE-v1.42.3.md | 157 -- docs/RELEASE-v1.50.0-canary.1.md | 94 - 14 files changed, 1035 insertions(+), 4283 deletions(-) create mode 100644 docs/RELEASE-NOTES-LEGACY.md delete mode 100644 docs/RELEASE-v1.39.0-rc.4.md delete mode 100644 docs/RELEASE-v1.39.0-rc.5.md delete mode 100644 docs/RELEASE-v1.39.0-rc.6.md delete mode 100644 docs/RELEASE-v1.39.0-rc.7.md delete mode 100644 docs/RELEASE-v1.40.0-rc.1.md delete mode 100644 docs/RELEASE-v1.41.0.md delete mode 100644 docs/RELEASE-v1.42.0-rc.1.md delete mode 100644 docs/RELEASE-v1.42.1.md delete mode 100644 docs/RELEASE-v1.42.3.md delete mode 100644 docs/RELEASE-v1.50.0-canary.1.md diff --git a/CHANGELOG.md b/CHANGELOG.md index 8ca3af111..6f25bcfef 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -52,2940 +52,10 @@ Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). ## Legacy Release History -The entries below were carried forward from the pre-`@opengsd/gsd-core` package lineage for continuity. They are archived history, not the current package version line; the legacy archive may reuse version numbers that now belong to `@opengsd/gsd-core`. +Release notes for every version published before the project was renamed to `@opengsd/gsd-core` — the retired `get-shit-done-cc` / `get-shit-done-redux` lineage, versions `1.0.0` → `1.42.x` plus pre-release and canary builds — have been rolled up into a single archive: -## [1.42.1](https://github.com/open-gsd/get-shit-done-redux/compare/v1.41.0...v1.42.1) - 2026-05-15 +➡️ **[docs/RELEASE-NOTES-LEGACY.md](docs/RELEASE-NOTES-LEGACY.md)** -### Fixed - -- **`/gsd-discuss-phase` and `/gsd-plan-phase` first-touch creation now apply `project_code` prefix consistently with `phase.add`/`phase.insert`** — projects with `project_code` set in `.planning/config.json` no longer accumulate a two-headed naming convention (`01-foundation/` mixed with `XR-02.1-spike/`). `init.phase-op` and `init.plan-phase` now expose `expected_phase_dir` (with prefix) in their JSON bundle; workflow fallback mkdir calls use this value instead of constructing the path from `padded_phase`+`phase_slug`. `phase.scaffold phase-dir` (CJS and SDK) also fixed. (#3287) -- **`buildStateFrontmatter` now counts nested `plans/-PLAN--.md` files** — repos using the nested layout (post-#3139) no longer get `progress.*` counters silently overwritten downward on every state mutation. Sibling fix to #3115/#3139/#3191. (#3261) - -## [1.41.0](https://github.com/open-gsd/get-shit-done-redux/compare/v1.40.0...v1.41.0) - 2026-05-07 - -### Fixed - -- **Atomic writes in `scripts/build-hooks.js` to fix flaky release CI** — nine test files invoke `build-hooks.js` from their `before()` hooks, and `scripts/run-tests.cjs` runs test files with `--test-concurrency=4`, so multiple builders raced to rewrite the same files in `hooks/dist/`. `fs.copyFileSync(src, dest)` truncates `dest` then writes it; a parallel `bin/install.js` subprocess (spawned by another install test) could `fs.readFileSync` between the truncate and the write and observe an empty file. install.js then wrote that empty content into the install target, so installed `.sh` hooks lacked their `# gsd-hook-version:` header. This surfaced as the release-blocking failure in `tests/bug-2136-sh-hook-version.test.cjs` part 4 even though the same SHA passed on every other Node-22/Node-24 install-smoke matrix run. `build-hooks.js` now stages each output to a sibling `hooks/.dist-staging/` directory (same filesystem as `hooks/dist/`) and uses `fs.renameSync` to swap into place — POSIX `rename(2)` is atomic, so concurrent readers always observe a complete file. (Failing run: https://github.com/open-gsd/get-shit-done-redux/actions/runs/25472202941/job/74738276687) -- **Stable node path on Homebrew** — `resolveNodeRunner()` now maps versioned Homebrew Cellar paths (e.g. `/usr/local/Cellar/node/25.8.1/bin/node`) to the stable Homebrew symlinks (`/usr/local/bin/node` on Intel, `/opt/homebrew/bin/node` on Apple Silicon). `rewriteLegacyManagedNodeHookCommands()` applies the same normalization to baked Cellar paths in existing hook commands. This prevents `dyld: Library not loaded` errors after `brew upgrade node`. (#3181) -- **Milestone-archive layout support** — `validate consistency`, `validate health`, and `find-phase` now scan `.planning/milestones/v*-phases/` directories in addition to the flat `.planning/phases/` layout. Projects that have graduated to milestone-archive layout no longer receive spurious W006 "Phase N in ROADMAP.md but no directory on disk" warnings for every active phase. (#3164) - -### Feature - -- **Six namespace meta-skills with keyword-tag descriptions** — replace the flat 86-skill - listing with two-stage hierarchical routing. Model sees 6 namespace routers - (`gsd:workflow`, `gsd:project`, `gsd:review`, `gsd:context`, `gsd:manage`, - `gsd:ideate`) instead of 86 flat entries; selects a namespace, then routes to the - sub-skill. Descriptions use pipe-separated keyword tags (≤ 60 chars). Cuts cold-start - system-prompt overhead from ~2,150 tokens to ~120. Existing sub-skills are unchanged - and still invocable directly. (#2792) -- **`/gsd-health --context` utilization guard** — context-window quality guard with two - thresholds: 60 % warns ("consider `/gsd-thread`"), 70 % is critical ("reasoning - quality may degrade"). Exposed via `/gsd-health --context` and as a structured - `gsd-tools validate context` command. (#2792) -- **Phase-lifecycle status-line — read-side** — `parseStateMd()` now reads four new - STATE.md frontmatter fields: `active_phase`, `next_action`, `next_phases`, and - `progress` (nested completed/total/percent). `formatGsdState()` gains scenes for - in-flight, idle, and progress display. All fields default to undefined so existing - STATE.md files keep rendering. Write-side and status-line wiring follow in a later - RC. (#2833) -- `--minimal` install flag (alias `--core-only`) writes only the main-loop core skills - (`new-project`, `discuss-phase`, `plan-phase`, `execute-phase`, `help`, `update`) and - zero `gsd-*` subagents. Cuts cold-start system-prompt overhead from ~12k tokens to - ~700, useful for local LLMs with 32K–128K context (Sonnet 4.6 / Opus 4.7 don't need - it). Re-run `gsd update` without `--minimal` to expand to the full surface. The - install manifest now records `mode: "minimal" | "full"`. (#2762) -- **`/gsd-edit-phase` command** — modify any field of an existing phase in ROADMAP.md - without changing its number or position. Supports `--force` to skip the confirmation - diff, validates `depends_on` references, and updates STATE.md on write. (#2617) -- **Post-merge build & test gate** — execute-phase step 5.6 now runs in both parallel - and serial mode. Adds a build gate that auto-detects the build command from - `workflow.build_command` config, then falls back to Xcode (`.xcodeproj`), Makefile, - Justfile, Cargo, Go, Python, or npm. Xcode/iOS projects run `xcodebuild build` and - `xcodebuild test` automatically. (#2720) -- **Extended runtime model profiles** — RUNTIME_PROFILE_MAP now covers `gemini`, - `qwen`, `opencode`, and `copilot` runtimes with full three-tier (fast/balanced/opus) - model mappings. Group B runtimes (kilo, cline, cursor, windsurf, augment, trae, - codebuddy, antigravity) fall through to the existing unknown-runtime fallback. (#2612) -- **Workstream config inheritance** — when `GSD_WORKSTREAM` is set, the root - `.planning/config.json` is loaded first and deep-merged with the workstream config - (workstream wins on conflict). Explicit `null` in a workstream config now correctly - overrides a root value. (#2714) -- **Manual canary release workflow** — `.github/workflows/canary.yml` publishes - `{base}-canary.{N}` builds of `get-shit-done-cc` and `@opengsd/gsd-sdk` under the - `canary` dist-tag on demand via `workflow_dispatch` (manual trigger only — auto-publish - on every push to main was rejected because submission rate is too high). Includes an - optional `dry_run` boolean and the same publish-verification gate as `release.yml`. (#2828) - -### Enhancement - -- **`/gsd-graphify status` surfaces commit-based staleness from graphify v0.7+** — `graphifyStatus()` now reads `built_at_commit` from `graph.json` (graphify v0.7+ embeds it at build time), compares against `git HEAD`, and returns four new fields: `built_at_commit`, `current_commit`, `commits_behind`, and `commit_stale`. The `commit_stale` flag is tri-state (`true`/`false`/`null`) — `null` means the signal is unavailable (pre-v0.7 graph, non-git checkout, or unreachable commit) and callers should fall back to the existing mtime-based `stale` flag. The skill renders `Source commit: (N commits behind HEAD | current | freshness unknown)` when the signal is present, and omits the line entirely for pre-v0.7 graphs. The `built_at_commit` value is validated as 4–40 hex chars before reaching `git`, so a hostile `graph.json` cannot smuggle dashed options into the argv. Also documents `graphify hook install` in `docs/CONFIGURATION.md` for multi-dev teams who would otherwise hit `graph.json` merge conflicts on parallel rebuilds. Regression covered by `tests/enh-3170-graphify-commit-staleness.test.cjs` (8 assertions across git-aware, non-git, and back-compat groups). (#3170) -- **Test suite for `config-schema.cjs` is now mutation-resistant** — Stryker measured a 4.62% mutation score on `get-shit-done/bin/lib/config-schema.cjs` (6 killed, 124 survived out of 130). Surviving mutants flagged that existing tests were exercising paths but not verifying outputs: a polarity flip (`return true` → `return false`), a predicate swap (`.some` → `.every`), or a guard removal (`if (VALID_CONFIG_KEYS.has(...)) return true;` → unguarded fallthrough) all passed every test. New `tests/bug-2986-config-schema-mutation-killers.test.cjs` adds 95 tests across four suites that target each surviving mutant class: (1) parameterized `isValidConfigKey('${key}') === true` for every member of `VALID_CONFIG_KEYS` (kills the static-key-fast-path mutation), (2) representative dynamic-pattern keys that match exactly one pattern (kills the `.some` → `.every` mutation, with an inline mutual-exclusivity invariant check), (3) `strictEqual` against the literal boolean `true`/`false` instead of `assert.ok` truthy checks (kills polarity-flip mutations), (4) anchor-tightening cases that differ from valid keys by one character beyond the documented shape (kills regex-loosening mutations on `^`, `$`, and character-class boundaries). Tests use the lib's public surface (typed boolean assertions on `isValidConfigKey` return values), no source-grep. (#2986) -- **Hotfix release flow now auto-incorporates fixes from `main` and bundles the SDK** — `hotfix.yml create` auto-cherry-picks every `fix:`/`chore:` commit on `origin/main` not yet shipped (oldest-first; patch-equivalents skipped via `git cherry`; `feat:`/`refactor:` excluded; conflicts halt with the offending SHA; run summary lists every included SHA). `hotfix.yml finalize` adds the `install-smoke` cross-platform gate, bundles `sdk-bundle/gsd-sdk.tgz` inside the CC tarball (parity with `release-sdk.yml`), tightens the `next` dist-tag re-point, and marks the GitHub Release `--latest`. `release-sdk.yml` gains `action: publish | hotfix` plus an `auto_cherry_pick` toggle, with a new `prepare` job that branches `hotfix/X.YY.Z` from the highest existing `vX.YY.*` tag and runs the same cherry-pick logic — idempotent if the branch was pre-prepared via `hotfix.yml`. Hotfix `vX.YY.Z` is now defined as everything in `vX.YY.{Z-1}` plus every `fix:`/`chore:` since that base, so each tag is the cumulative-fix anchor for the next. (#2955) -- **Planning workspace seam extracted from `core.cjs` into `planning-workspace.cjs`** — path/workstream/lock behavior now lives in a dedicated module (`planningDir`, `planningPaths`, `planningRoot`, active-workstream routing, `withPlanningLock`). `core.cjs` keeps compatibility re-exports while call-sites migrate to direct imports, improving locality and reducing coupling. (#2900) -- **Skill surface consolidated 86 → 59 `commands/gsd/*.md` entries** — four new - grouped skills (`capture`, `phase`, `config`, `workspace`) replace clusters of - micro-skills. Six existing parents absorb wrap-up and sub-operations as flags: - `update --sync/--reapply`, `sketch --wrap-up`, `spike --wrap-up`, - `map-codebase --fast/--query`, `code-review --fix`, `progress --do/--next`. Zero - functional loss; 31 micro-skills deleted. `autonomous.md` corrected to call - `gsd:code-review --fix` (was invoking deleted `gsd:code-review-fix`). (#2790) -- **PRs missing `Closes #NNN` are auto-closed** — the `Issue link required` workflow - now auto-closes PRs opened without a closing keyword that links a tracking issue, - posting a comment that points to the contribution guide. (#2872) -- **Canary release workflow now publishes from `dev` branch only** — `.github/workflows/canary.yml` - swaps its four publish-step guards from `refs/heads/main` to `refs/heads/dev`. Aligns the - workflow with the new branch→dist-tag policy (`dev` → `@canary`, `main` → `@next`/`@latest`). - Added a header comment documenting the policy. `workflow_dispatch` runs on `main` (or any - other branch) now complete build/test/dry-run validation but skip publish + tag, instead - of the previous behaviour where `main` published and `dev` silently no-op'd. (#2868) -- **Skill descriptions trimmed to ≤ 100 chars across all `commands/gsd/*.md`** — three - anti-patterns eliminated: flag documentation already present in `argument-hint:` (e.g. - `discuss-phase` was 380 chars, now 76), `Triggers:` keyword-stuffing lists, and - numbered enumeration patterns. Range was 45–380 chars; now 45–99. (#2789) -- **`scripts/lint-descriptions.cjs` added** — CI lint gate that fails if any - `commands/gsd/*.md` description exceeds 100 chars. Run via `npm run lint:descriptions`. - (#2789) -- **Skill surface consolidated from 86 → 59 `commands/gsd/*.md` entries** — four new - grouped skills replace clusters of micro-skills: `capture` (add-todo, note, add-backlog, - plant-seed, check-todos), `phase` (add-phase, insert-phase, remove-phase, edit-phase), - `config` (settings-advanced, settings-integrations, set-profile), `workspace` - (new-workspace, list-workspaces, remove-workspace). Six parent skills absorb wrap-up - and sub-operations as flags: `update --sync/--reapply`, `sketch --wrap-up`, - `spike --wrap-up`, `map-codebase --fast/--query`, `code-review --fix`, - `progress --do/--next`. Zero functional loss. (#2790) -- **`autonomous.md` corrected** — was invoking deleted `gsd:code-review-fix`; now calls - `gsd:code-review --fix`. (#2790) -- **31 micro-skills deleted** — absorbed into consolidated parents or removed outright: - add-todo, note, add-backlog, plant-seed, check-todos, add-phase, insert-phase, - remove-phase, edit-phase, settings-advanced, settings-integrations, set-profile, - new-workspace, list-workspaces, remove-workspace, sync-skills, reapply-patches, - sketch-wrap-up, spike-wrap-up, scan, intel, code-review-fix, next, do, - join-discord, research-phase, session-report, from-gsd2, analyze-dependencies, - list-phase-assumptions, plan-milestone-gaps. All functionality preserved via flags on - consolidated skills. (#2790) -- **`discuss-phase` lazy file loading** — entry-point `@file` directives replaced with - on-demand `Read()` calls gated behind mode routing. Tokens loaded at skill entry drop - from ~13k to near zero; only the branch actually invoked is loaded. (#2606) - -### Fix - -- **`/gsd-graphify build` now runs inline instead of spawning a sub-agent** — graphify v0.7+ split the build into a fast AST-extraction phase (cached) followed by a separate clustering + report-write phase. The cached extraction phase survived sub-agent isolation, but the post-extraction phase was SIGTERM'd when the agent exited, leaving the cache populated and no `graph.json` / `graph.html` / `GRAPH_REPORT.md` artifacts written to `.planning/graphs/`. The skill now runs `graphify update .`, the three artifact copies, the snapshot, and the status report as a single foreground Bash call so the entire pipeline survives to completion. The CLI's `graphify build` pre-flight still returns `action: "spawn_agent"` so external callers and existing tests keep working. Regression covered by `tests/bug-3166-graphify-inline-build.test.cjs` (4 structural assertions that parse `commands/gsd/graphify.md` YAML frontmatter and body to fence against re-introducing `Task` to `allowed-tools` or `Task(` invocation syntax). (#3166) -- **`gsd-pristine/` is now populated by the installer when local patches are detected** — `saveLocalPatches` declared a `pristineDir` variable and JSDoc'd "saves pristine copies (from manifest) to gsd-pristine/ to enable three-way merge during reapply-patches", but no code ever wrote to that directory. Effect: the `/gsd-reapply-patches` Step 5 verifier (#2972) silently degraded to its over-broad fallback heuristic ("every significant backup line"), exactly the silent-success-on-lost-content failure mode #2969 was designed to prevent. Fix: new `populatePristineDir({ packageSrc, pristineDir, modified, runtime, pathPrefix, isGlobal })` helper runs the install transform pipeline (`copyWithPathReplacement`) into a tmp staging dir, then copies out only the modified-file paths into `gsd-pristine/`. `saveLocalPatches` now accepts a `pristineCtx` and calls the helper when local patches are detected; the install entry point passes the package source root, runtime, pathPrefix, and isGlobal so transforms produce byte-identical output to what `copyWithPathReplacement` would have written under normal install. Soft-fails on transform errors (logs a warning, continues with empty pristine — no worse than pre-fix behavior). Pristine reflects the about-to-install version's content, which is what the verifier needs as the "what would survive without the user's modifications" baseline. Regression covered by `tests/bug-2998-pristine-dir-populated.test.cjs` (6 tests across two suites): asserts the helper is exported, returns 0 for empty modified list, writes one pristine file per source-existing path, skips ghost paths without corrupting pristine, and produces deterministic output (two runs with same inputs yield byte-identical pristine — the property `pristine_hashes` in `backup-meta.json` depends on). (#2998) -- **`release-sdk` hotfix re-run no longer fails at `Dry-run publish validation` when the version is already on npm** — the `Detect prior publish (reconciliation mode)` step sets `skip_publish=true` when the package version is already on the registry, and the actual publish step honors that gate. The `Dry-run publish validation` step was missing the same guard, so any operator re-run of an already-published hotfix (the typical recovery path when later steps fail mid-flight) hit `npm publish --dry-run` first and got `npm error You cannot publish over the previously published versions: X.Y.Z` — `npm publish --dry-run` contacts the registry and rejects existing-version targets even though it doesn't actually publish. The dry-run validation step is now gated on the same `steps.prior_publish.outputs.skip_publish != 'true'` condition as the publish step. The rehearsal still runs on first publishes (where it has value); it skips only in the specific reconciliation case where the publish itself would be skipped. Trigger run: [25233855236](https://github.com/open-gsd/get-shit-done-redux/actions/runs/25233855236/job/73995605643). Regression covered by `tests/bug-2987-dry-run-validation-skip-on-reconciliation.test.cjs`. (#2987) -- **`release-sdk` hotfix flow hardened against silent classifier failures, missing-classifier-at-base-tag, and a vestigial merge-back PR step** — three issues surfaced by CodeRabbit's post-merge review of #2981 plus a production failure on the v1.39.1 release run. **(1)** `scripts/diff-touches-shipped-paths.cjs` reused exit code `1` for both the legitimate "no shipped paths" classifier result and Node's default uncaught-throw exit, so any tooling failure was indistinguishable from a normal skip. The script now uses `0` (shipped), `1` (not shipped), `2` (classifier error) with `try`/`catch` + `uncaughtException`/`unhandledRejection` handlers routing all failure paths to exit `2`. **(2)** The workflow's `git checkout -b "$BRANCH" "$BASE_TAG"` overwrote the working tree with the base tag's contents *before* the cherry-pick loop ran the classifier — but base tags predating the classifier's introduction (notably v1.39.0) don't have the file in their tree, so `node scripts/diff-touches-shipped-paths.cjs` would exit non-zero and silently drop every commit, producing an empty hotfix release. The classifier is now staged into `$RUNNER_TEMP` at the top of `Prepare hotfix branch` (before any working-tree-mutating git command), and the loop references that staged copy. The cherry-pick loop snapshots `$PIPESTATUS` into a local array (`PIPE_RC=("${PIPESTATUS[@]}")`) immediately after the classifier pipeline — under bracketed `set +e`/`set -e` — and dispatches via explicit `case`: `0` proceeds, `1` skips into `NON_SHIPPED_SKIPPED`, anything else emits `::error::shipped-paths classifier failed for $SHA (exit N)` and fails the workflow. CodeRabbit on PR #2984 caught a subtler bug in the first iteration: `pipeline \|\| true; RC=${PIPESTATUS[1]}` is broken because `\|\| true` runs `true` as its own one-command pipeline on the failure paths, overwriting `PIPESTATUS` to `(0)` and leaving `${PIPESTATUS[1]}` unset. The array-snapshot form is invariant against this. The same hardening also surfaces `git diff-tree`'s exit code (via `PIPE_RC[0]`); a non-zero diff-tree result now also fails the workflow rather than feeding partial input to the classifier. **(3)** Removed the `Open merge-back PR (hotfix only)` step. The auto-cherry-pick hotfix flow only picks commits already on main (`git cherry HEAD origin/main` outputs the unmerged ones), so by construction every code commit on the hotfix branch is already on main. The only hotfix-branch-only commit is the version-bump chore, which would either no-op against main or rewind main's in-progress version. The step also failed in production with `GitHub Actions is not permitted to create or approve pull requests (createPullRequest)` (org policy) on run [25232968975](https://github.com/open-gsd/get-shit-done-redux/actions/runs/25232968975). The `pull-requests: write` permission previously granted to the release job has been dropped in line with least-privilege. The run-summary line that previously echoed `Merge-back PR opened against main` has been replaced with `No merge-back PR (auto-picked commits are already on main)` so operators reading the summary see an accurate non-action statement (CodeRabbit on PR #2984). Regression covered by `tests/bug-2983-classifier-exit-codes-and-base-tag-staging.test.cjs` (15 assertions across exit-code semantics, classifier staging, error dispatch, PIPESTATUS-snapshot hardening, diff-tree fail-fast, merge-back removal, and run-summary accuracy). (#2983) -- **`release-sdk` hotfix only cherry-picks commits that change what actually ships** — the `fix:`/`chore:` filter in `Prepare hotfix branch` was too broad: it picked any commit with that conventional-commit type regardless of whether the diff could affect the published npm package. CI-only fixes (release-sdk.yml itself, hotfix tooling, test-only commits) were getting cherry-picked into hotfix branches even though they cannot change the tarball — and the subset touching `.github/workflows/*` then caused the prepare job's `git push` to be rejected by GitHub because the default `GITHUB_TOKEN` lacks the `workflow` scope, aborting the run. v1.39.1 hit this on PR #2977 (run [25232010071](https://github.com/open-gsd/get-shit-done-redux/actions/runs/25232010071)). The loop now pre-skips any candidate commit whose `git diff-tree` output doesn't intersect the npm tarball's shipped paths (entries in `package.json` `files`, plus `package.json` itself, which `npm pack` always includes). Skipped commits land in a new `NON_SHIPPED_SKIPPED` summary bucket framed as informational — non-shipping commits cannot affect the package, so the skip needs no operator action. The shipped-paths classifier lives in `scripts/diff-touches-shipped-paths.cjs` so its rules (file-OR-directory prefix matching `npm pack` semantics, the always-shipped rule for `package.json`, the lockfile-not-shipped rule) are unit-testable. Regression covered by `tests/bug-2980-hotfix-only-picks-shipping-changes.test.cjs`. (#2980) -- **`release-sdk` hotfix workflow fails on real run with `npm error Version not changed`** — the `release` job's `Bump in-tree version (not committed)` step ran `npm version "$VERSION"` without `--allow-same-version`, so it errored on real (non-dry-run) hotfix runs because `prepare` had already committed the bump on the hotfix branch. The release job's checkout `ref` is asymmetric — `BRANCH` (already bumped) on real runs vs `BASE_TAG` (older version) on dry-runs — which is why dry-run never caught the bug. Both `npm version` calls in that step now pass `--allow-same-version`, matching the existing pattern in `release.yml:326`. (#2976) -- **Stale deleted command references updated across workflow files** — `help.md`, `do.md`, `settings.md`, `discuss-phase.md`, `new-project.md`, `plan-phase.md`, `spike.md`, and `sketch.md` referenced command names removed in #2790; updated to new consolidated equivalents. (#2950) -- **`spike --wrap-up` now dispatches correctly** — `/gsd-spike --wrap-up` was silently no-oping because the flag dispatch wiring was omitted when the micro-skill entry point was absorbed in #2790. (#2948) -- **`config-get context_window` returns `200000` when key absent** — querying an unset `context_window` previously exited 1 with "Key not found", surfacing a confusing error in planning logs even though the workflow fallback worked correctly. `cmdConfigGet` now consults a `SCHEMA_DEFAULTS` map and returns the documented default (`200000`, exit 0) for absent schema-defaulted keys; unknown absent keys still error as before. (#2943) -- **`gap-analysis` now parses non-`REQ-` requirement IDs and ignores traceability table headers** — `parseRequirements()` no longer hard-codes the `REQ-` prefix and now accepts uppercase prefixed IDs such as `TST-01`, `BACK-07`, and `INSP-04`; markdown table header rows (for example `| REQ-ID | ... |`) are excluded so header tokens are not reported as phantom uncovered requirements. Added regression coverage for mixed-prefix REQUIREMENTS files with traceability tables. (#2897) -- **Gemini slash commands namespaced as `/gsd:` instead of `/gsd-`** — - Gemini CLI namespaces commands under `gsd:`, so `/gsd-plan-phase` was unexecutable. - Body-text references in commands, agents, banners, and patch-reapply hints are now - converted via a roster-checked regex (boundary lookbehind + extension-aware - lookahead + roster lookup, defense-in-depth). The roster fail-loud guard prevents - silent no-op'ing if `commands/gsd/` is ever missing. (#2768, #2783) -- **`SKILL.md` description quoted for Copilot / Antigravity / Trae / CodeBuddy** — - descriptions starting with a YAML 1.2 flow indicator (`[BETA]`, `{`, `*`, `&`, `!`, - `|`, `>`, `%`, `@`, backtick) crashed gh-copilot's strict YAML loader. Six emission - sites now wrap descriptions in `yamlQuote(...)` (= `JSON.stringify`, a valid YAML - 1.2 double-quoted scalar). (#2876) -- **`gsd-tools` invocations use the absolute installed path** — bare `gsd-tools …` - calls inside skill bodies relied on PATH resolution that is not guaranteed in every - runtime; replaced with the absolute path emitted at install time. (#2851) -- **Codex installer preserves trailing newline when stripping legacy hooks** — the - legacy-hook strip in the Codex installer ran against files with no terminating - newline at EOF and emitted a config that lost the newline, breaking downstream - parsers. (#2866) -- **GSD slash command namespace drift cleaned up across docs, workflows, and autocomplete** — remaining active `/gsd:` references now use canonical `/gsd-`, escaped workflow `Skill(skill=\"gsd:...\")` prompts now use hyphenated skill names, `scripts/fix-slash-commands.cjs` rewrites retired colon syntax to hyphen syntax, and the extract-learnings command file now uses `extract-learnings.md` so generated Claude/Qwen skill autocomplete exposes `gsd-extract-learnings` instead of `gsd-extract_learnings`. (#2855) -- **`extractCurrentMilestone` no longer truncates ROADMAP.md at heading-like lines inside fenced code blocks** — the milestone-end search now scans line-by-line while tracking ` ``` ` / `~~~` fence state, so a line like `# Ops runbook (v1.0 compat)` inside a code block no longer acts as a milestone boundary. Previously, any phase defined after such a block was invisible to `roadmap analyze`, `roadmap get-phase`, `/gsd-autonomous`, and all phase-number commands. (#2787) -- **Codex install no longer corrupts existing `~/.codex/config.toml`** — the installer - now defensively strips legacy `[agents]` (single-bracket) and `[[agents]]` (sequence) - blocks regardless of GSD marker presence (both invalid in current Codex schema), emits - the GSD-managed hook in the user's preferred shape (`[[hooks.]]` namespaced AoT - if any user hook uses it, otherwise top-level `[[hooks]]`), migrates legacy - `[hooks.]` to namespaced AoT, and atomically writes via temp-file + - `renameSync`. A strict TOML parser validates the post-write bytes against the Codex - schema and rejects duplicate keys, repeated table headers, trailing bytes after - values, and unsupported value types. Both pre-write helper failures and write-time - failures restore the pre-install snapshot and abort with a clear error rather than - warn-and-continue. (#2760) -- **Codex hooks migrator correctness hardening** — four edge-cases in the - `[[hooks.]]` → `[[hooks..hooks]]` migration path fixed: (1) the TOML - key parser in hook-body classification now uses `parseTomlKey()` instead of a bare - regex, so hyphenated keys (e.g. `status-message`) and quoted keys are no longer - silently dropped; (2) `buildNestedBlock` no longer synthesises an empty - `[[hooks.TYPE.hooks]]` sub-table for matcher-only sections that carry no handler - fields — previously produced a broken entry with `type = "command"` but no - `command`; (3) the `legacyMapSections` filter now uses the parsed segment count - instead of dot-splitting the path string, preventing three-segment tables such as - `[hooks.SessionStart.hooks]` from being misclassified as event entries (same class - of bug fixed for `staleNamespacedAotSections` in the previous round); (4) regression - test added: `[[hooks."before.tool"]]` (a quoted key containing a dot) is correctly - treated as a two-segment namespace and not split on the inner dot. (#2809) -- **Codex `[[agents]]` reverted to `[agents.]` struct format** — the sequence - format introduced in #2645 is rejected by codex-cli 0.124.0 with "invalid type: - sequence, expected struct AgentsToml". Reverted to struct format which is correct for - 0.120.0+. The self-healing stripper handles both formats for configs written by prior - GSD versions. (#2727) -- **Codex legacy `[hooks]` map format auto-migrated** — Codex 0.124.0 requires - `[[hooks]]` array-of-tables; old GSD installs that wrote `[hooks.shell]` map-style - now self-heal on the next `gsd install --codex`. (#2637) -- **`gsd-sdk` PATH verification tightened** — installer now probes for an executable - `gsd-sdk` shim on PATH after confirming `sdk/dist/cli.js` is present, and attempts - to materialize one via symlink at `~/.local/bin/gsd-sdk` when absent. Only prints - `✓ GSD SDK ready` when the probe succeeds. (#2775, #2777) -- **USER-PROFILE.md no longer triggers false "locally modified" warning** — the file - was both preserved across reinstalls and tracked in `gsd-file-manifest.json`, causing - the stale-hash diff to fire on every profile refresh. `USER_OWNED_ARTIFACTS` is now a - single source of truth used by both the preserve and manifest write paths. (#2771) -- **All `gsd-sdk query` handlers now respect `--ws`** — 18+ handlers accepted - `_workstream` but never forwarded it to `planningPaths`/`loadConfig`. Workstream now - scopes path resolution correctly in `initNewProject`, `configGet`, `configSet`, - `commit`, `validateHealth`, and all other handlers. (#2731) -- **`resolveModel` threads workstream** — config-query `resolveModel` ignored - `_workstream` unlike `configGet`/`configPath`, so different workstreams with different - `model_profile` settings would get the root profile instead of their own. (#2742) -- **`parseMustHavesBlock` quoted strings** — fully-quoted truths containing `:` (e.g. - `"App-side UUIDv4: generated locally"`) fell into the kv-parse branch, the regex - failed, and `current` stayed as `{}`, crashing `annotate-dependencies` with - `TypeError: t.trim is not a function`. Fixed in both `frontmatter.cjs` and - `roadmap.cjs`. (#2757, #2734) -- **`gsd state complete-phase` subcommand** — was missing; unknown subcommands fell - through to `cmdStateLoad`. Now updates `Status`, `Last Activity`, and - `Current Position` to `COMPLETE`. (#2735) -- **Non-string `depends_on` values preserved** — numeric YAML scalars and kv-shaped - truths were silently dropped by `annotate-dependencies` via an early `typeof t !== - 'string'` skip. A `coerceTruthToString` helper now coerces numbers/booleans and - extracts a string field from object-shaped items. (#2770) -- **Worktree isolation scoped to submodule-touching plans** — the previous guard - unconditionally set `USE_WORKTREES=false` when `.gitmodules` existed. Now parses - submodule paths and intersects per-plan `files_modified`; only plans that touch a - submodule path skip worktree isolation. (#2772) -- **Worktree cleanup uses inclusion filter** — the exclusion-based cleanup - (`grep -v "$(pwd)$"`) failed in multi-workspace and cross-drive Windows setups, - destroying the workspace's `.git` pointer. Cleanup now targets only - `.claude/worktrees/agent-*` paths, which agent-spawned worktrees always use. (#2774) -- **`Requirements:` header variants all parse correctly** — both `**Requirements:**` - (colon inside bold) and `**Requirements**:` (colon outside bold) now match in - `extractReqIds` and the `phase complete` traceability sweep. (#2769) -- **`gsd-sdk query commit` paths passed via `--files`** — 81 invocations across 50 - files were passing paths positionally, which appended them to the commit subject and - triggered the wholesale-stage fallback. All sites updated. (#2767) -- **Phase detection in bullet/bold ROADMAP formats** — `phaseAdd`'s regex only matched - heading format (`## Phase N:`), missing bullet checklist and bold entries. Broadened - to all three formats with filesystem fallback on zero matches. (#2726) -- **Plan-line overwrite when `**Plans:**` is empty** — `\s*` after `**Plans:**` - matched newlines, causing `[^\n]+` to consume the first plan checkbox. Replaced with - `[ \t]*` (horizontal whitespace only) and added section-boundary lookahead. (#2728) -- **Phase-lifecycle `
`-wrapped active milestone** — `replaceInCurrentMilestone` - silently dropped replacements when the active milestone was itself inside a `
` - block (the after-slice was empty). Falls back to locating the last complete - `
…
` span. (#2641) -- **Phase-lifecycle project-code-prefixed directory names** — filesystem fallback regex - `/^(\d+)-/` missed directories like `CK-45-foundation`. Updated to - `/^(?:[A-Z][A-Z0-9]*-)?(\d+)-/i`. -- **`roadmap.update-plan-progress` regex** — `\s*` crossing newlines shared the same - corruption vector as `planCountPattern`; replaced with `[ \t]*` plus section-boundary - lookahead. -- **`replaceInCurrentMilestone` fast-path guard** — the `after.trim().length > 0` - check incorrectly triggered when `after` contained only footer text, returning - unchanged content instead of falling through to the slow path. -- **`graphify` CLI updated to subcommand form** — `graphify . --update` was removed in - v0.4.x in favour of `graphify update .`. Version detection now tries - `graphify --version` before falling back to the Python importlib query. (#2732) -- **LM Studio model identity validated in review workflow** — captures the full API - response and compares the top-level `.model` field against `LM_STUDIO_MODEL`, emitting - a warning when the served model differs. Empty-content responses no longer write error - text into the review temp file (same fix applied to llama.cpp). (#2721) -- **SDK `globalDefaults` preserved for nested config keys** — `workflow`, `git`, - `hooks`, `agent_skills`, and `features` sections were missing the `globalDefaults` - spread at the correct precedence level, silently dropping user values from - `~/.gsd/defaults.json`. (#2673) -- **`MODEL_ALIAS_MAP` updated to `claude-opus-4-7`** — both `MODEL_ALIAS_MAP` and - `RUNTIME_PROFILE_MAP.claude.opus` were pinned to `claude-opus-4-6`. (#2733) -- **Orchestrators wait for subagents before continuing** — 26 GSD workflow files now - include an explicit `ORCHESTRATOR RULE` blockquote immediately after every `Task()` - spawn, preventing the Codex parallel-work anti-pattern where the parent continues - reading files and producing conflicting output. (#2729) -- **`audit-uat` parser reads `human_verification:` from frontmatter array** — the - previous body-only regex was too strict and missed valid UAT items declared in YAML - frontmatter, surfacing false-positive open gaps at every `/gsd-complete-milestone` - audit. (#2788) -- **`gsd-sdk` binary collision with `@opengsd/gsd-sdk` resolved** — workstream-aware - query registry now respects `GSD_WORKSTREAM` env var; `gsd-tools` bin alias added so - the two SDK packages no longer fight over the `gsd-sdk` name in `node_modules/.bin`. - (#2791) -- **OpenCode generated agents embed `model_profile_overrides.opencode.`** — - per-tier model overrides set via `/gsd-settings-advanced` are now propagated into the - generated agent files instead of being silently ignored. (#2794) -- **`roadmap update-plan-progress` accepts `--phase` flag form** — SDK arg-parsing - regression in v0.1.0 silently dropped `--phase`/`--name`/`--plans` flags, causing - `state.begin-phase` and `roadmap update-plan-progress` to corrupt STATE.md. (#2796) -- **`context_window` added to `VALID_CONFIG_KEYS` allowlist** — `/gsd-settings-advanced` - could not set `context_window` because the key was missing from the allowlist used by - `config-set` validation. (#2798) -- **`gsd-tools init` dispatches `ingest-docs` handler** — `/gsd-ingest-docs` was broken - in v1.38.5 because the workflow called `gsd-sdk` (now `gsd-tools`) but no - `ingest-docs` init handler was registered. (#2801) -- **`config-get` honors `--default ` flag** — fallback for missing keys was - ported from the CJS implementation (#1893) into the SDK. (#2803) -- **`find-phase` returns `null` for archived phases** — when the current-milestone - phase had no directory yet, `init.plan-phase` / `init.execute-phase` returned the - archived prior-milestone directory instead of `null`, causing wrong-phase work. (#2805) -- **SKILL.md frontmatter `name:` migrated to hyphen form** — files that still used the - deprecated colon form (`gsd:cmd`) caused autocomplete to suggest `/gsd:command`. - Frontmatter now uses canonical `gsd-cmd` hyphen names. (#2808) -- **`gsd-sdk` resolvable in local-mode installs** — the previous `isLocal` short-circuit - in `installSdkIfNeeded()` returned before the PATH probe + self-link path could run - (the same path that fixed npx-cache global installs in #2775). When `sdk/dist/cli.js` - is present, local installs now run the same probe-and-link flow as global installs. - (#2829) -- **OpenCode `@file` references use absolute paths on all platforms** — OpenCode does - not shell-expand `$HOME` in `@file` references on any platform, but the Windows-only - guard from #2376 left macOS/Linux producing literal `@$HOME/...` strings that resolved - to `command/$HOME/...` (file not found). Guard now applies to OpenCode unconditionally. - (#2831) -- **`gsd-sdk auto` detects Codex runtime correctly** — `auto` mode ignored - `runtime: codex` and routed through `@anthropic-ai/claude-agent-sdk`, producing the - `[FAILED] $0.00 0.1s` symptom on autonomous runs. New `runtime-gate` raises a clear - error for non-Claude runtimes; `resolveModel()` is now runtime-aware (honours - `GSD_RUNTIME` env precedence) and never injects a Claude profile id under non-Claude - runtimes. (#2832) -- **CR-INTEGRATION tests aligned with hyphen-form skill names** — tests previously - asserted `gsd:code-review` (colon) against `autonomous.md` which now uses the canonical - hyphen form. Tests now parse `Skill(skill="...")` invocations structurally and reject - the legacy colon form. (#2835) -- **`audit-open` quick-task scanner accepts `${quick_id}-SUMMARY.md`** — the previous - bare-`SUMMARY.md` filename check produced false-positive `status: missing` for every - documented quick task. UAT terminal-status enum also adds `resolved` (matches - `execute-phase.md`'s post-gap-closure terminal); `help.md` one-liner reconciled with - the canonical `quick.md` workflow. (#2836) -- **`quick.md` / `execute-phase.md` SUMMARY rescue handles gitignored `.planning/`** — - rescue blocks used `git ls-files --exclude-standard` which honoured `.gitignore`, - silently no-op'ing when `.planning/` was excluded; the worktree was then deleted with - the SUMMARY. Replaced with filesystem-level `find` + idempotent `cp` that bypasses git - entirely. (#2838) -- **`/gsd-code-review-fix` cleanup tail is transactional** — JSON recovery sentinel at - `${phase_dir}/.review-fix-recovery-pending.json` is written after `git worktree add` - succeeds and removed only after `git worktree remove` returns. A new run that finds a - pre-existing sentinel force-removes the orphan worktree before starting fresh, making - the agent self-healing across crashes. (#2839) - -- **`config-set resolve_model_ids` no longer rejected** — `resolve_model_ids` was - documented in CONFIGURATION.md and read by model-resolution paths, but missing from - the CJS/SDK `VALID_CONFIG_KEYS` allowlists. Added to both. (#3162) -- **`config-set workflow._auto_chain_active` no longer emits spurious errors** — this - internal runtime-state key is written by `plan-phase`, `execute-phase`, - `discuss-phase`, `transition`, and `new-project` workflows via `config-set`, but was - excluded from the public allowlist after #2530. A new `RUNTIME_STATE_KEYS` set lets - `isValidConfigKey()` accept it without exposing it as a user-settable option. (#3162) - - -## [1.39.1] - 2026-05-01 - -Hotfix release. Cherry-picks user-facing fixes from `main` onto the v1.39.0 stable -line. Install: `npm install -g get-shit-done-cc@latest` (or `@1.39.1` to pin). - -### Fixed - -- **`gsd-sdk query agent-skills` emits raw `` block instead of JSON-wrapped string** — workflows that embed via `$(gsd-sdk query agent-skills )` were receiving a JSON-quoted string literal mid-prompt (e.g. `"\n…"`), silently breaking all `` injection into spawned subagents. The CLI dispatcher now honors an opt-in `format: 'text'` field on `QueryResult` and writes such results raw via `process.stdout.write`; `--pick` always returns JSON regardless. (#2917) -- **`sketch --wrap-up` now dispatches correctly** — `/gsd-sketch --wrap-up` was silently no-oping because the flag dispatch wiring was omitted when the micro-skill entry point was absorbed in #2790. (#2949) -- **`help.md` no longer advertises eight slash commands removed by the #2824 consolidation** — `/gsd-do`, `/gsd-note`, `/gsd-check-todos`, `/gsd-plant-seed`, `/gsd-research-phase`, `/gsd-list-phase-assumptions`, `/gsd-plan-milestone-gaps`, and `/gsd-join-discord` were removed when 86 skills were folded into 59. `help.md` was not updated alongside, so users typing the documented commands hit *Unknown command*. Each entry is now either rewritten to the surviving flag-based dispatcher (e.g., `/gsd-do …` → `/gsd-progress --do "…"`, `/gsd-note` → `/gsd-capture --note`, `/gsd-plant-seed` → `/gsd-capture --seed`, `/gsd-check-todos` → `/gsd-capture --list`) or removed for skills with no replacement. A regression test now asserts every `/gsd-*` reference in `help.md` has a matching `commands/gsd/*.md` stub. (#2954) -- **`--sdk` install on Windows now writes a callable `gsd-sdk` shim** — `npx get-shit-done-cc@latest --claude --global --sdk` on Windows previously left `gsd-sdk` off PATH because `trySelfLinkGsdSdk` returned `null` unconditionally on `win32` (a missed gap from #2775's POSIX self-link, not an intentional deferral). The function now dispatches to a Windows counterpart that writes the standard npm shim triple (`gsd-sdk.cmd`, `gsd-sdk.ps1`, and a Bash wrapper) to npm's global bin, so `gsd-sdk` resolves in a fresh shell across cmd.exe, PowerShell, and Cygwin/MSYS/Git-Bash. A new regression guard in `tests/no-unconditional-win32-skip.test.cjs` blocks any future `if (process.platform === 'win32') return null;` skip-only branches in `bin/install.js`. (#2962) -- **`/gsd-reapply-patches` Step 5 gate is now deterministic — no more silent content drops** — the prior gate parsed a Claude-generated *Hunk Verification Table* whose `verified: yes` rows were filled in without actually checking content presence, leading to merged files that lost user-added blocks (e.g., a `` section, an `--execute-only` flag block) while the workflow reported success. The gate now invokes a Node script (`scripts/verify-reapply-patches.cjs`) that diffs each backup against the pristine baseline, computes the user-added significant lines, and asserts each one is present in the merged file. Exits non-zero with a per-file diagnostic on any miss; the workflow halts and surfaces the JSON output to the user. The verifier ignores low-signal lines (too short, pure whitespace, decorative comments) so trivial differences don't trigger false failures. Out of scope here: the manifest-baseline tightening described in #2969 Failure 1 — that's separate work. (#2969) - -## [1.38.5] - 2026-04-25 - -### Fixed -- SDK executor agents now write SUMMARY.md to `.planning/phases/{phase}/` instead of the project root — `phaseDir` is threaded from PhaseRunner through to the executor prompt's completion instructions - -## [1.38.4] - 2026-04-25 - -### Fixed -- **SDK uses full installed agent/workflow prompts** — The SDK was bundling stripped-down copies of agent definitions (~17% of the real content), missing critical instructions like plan file naming conventions, scope reduction rules, and discovery protocols. The SDK now loads the complete installed agents at runtime and resolves `@`-file references instead of stripping them. -- **SDK executor receives actual plan content** — `executeSinglePlan` was passing `null` to the prompt builder instead of the parsed plan file. The executor now loads, parses, and passes the full plan (tasks, objectives, verification criteria) to the prompt. -- **SDK verification checks VERIFICATION.md, not just session exit code** — A verify session that wrote `status: gaps_found` to VERIFICATION.md was treated as "passed" because the session itself didn't crash. The gap-closure retry loop now reads the actual verification status from disk. -- **SDK plan ID derivation for bare PLAN.md files** — Plans named `PLAN.md` (instead of `01-01-PLAN.md`) produced an empty-string ID, causing downstream execution issues. -- **SDK headless discuss mode prevents interactive tool calls** — The self-discuss step loaded the full interactive workflow prompt, causing the agent to invoke `AskUserQuestion` and `Skill()` in headless mode. A mandatory headless override is now prepended to prevent interactive tool usage. - -### Removed -- Deleted 13 bundled SDK prompt files (`sdk/prompts/agents/`, `sdk/prompts/workflows/`) that were maintained as stripped-down copies and had drifted from the real agents. - -### Enhancement: richer architecture docs from `/gsd-map-codebase` (#2500) - -`/gsd-map-codebase` (arch focus) now produces a `.planning/codebase/ARCHITECTURE.md` with the same richness as the research version created at project creation: - -- **ASCII system overview diagram** — component boxes and request-flow arrows, generated from actual codebase analysis -- **Component responsibility table** — Component / Responsibility / File columns for at-a-glance orientation -- **Data flow traces** — Primary request path and secondary flows with numbered steps and code references (`file:line`) -- **Architectural constraints** — Threading model, global state inventory, circular import chains -- **Anti-patterns** — Codebase-specific patterns to avoid, with the correct alternative -- **``** marker at the top so users can see when the doc was last generated - -Running `/gsd-map-codebase` or `/gsd-scan --focus arch` after a major refactor now produces an up-to-date architectural reference that includes the visual diagrams previously only available in the (non-refreshable) research version. - -### 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 `@opengsd/gsd-sdk` (#2302). - -### Fixed - -- **End-of-phase routing suggestions now use `/gsd-` (not the retired `/gsd:`)** — All user-visible command suggestions in workflows (`execute-phase.md`, `transition.md`), tool output (`profile-output.cjs`, `init.cjs`), references, and templates have been updated from `/gsd:` to `/gsd-`, matching the Claude Code skill directory name and the user-typed slash-command format. Internal `Skill(skill="gsd:")` calls (no leading slash) are preserved unchanged — those resolve by frontmatter `name:` not directory name. The namespace test (`bug-2543-gsd-slash-namespace.test.cjs`) has been updated to enforce the current invariant. Closes #2697. - -- **`gsd-sdk query` now resolves parent `.planning/` root in multi-repo (`sub_repos`) workspaces** — when invoked from inside a `sub_repos`-listed child repo (e.g. `workspace/app/`), the SDK now walks up to the parent workspace that owns `.planning/`, matching the legacy `gsd-tools.cjs` `findProjectRoot` behavior. Previously `gsd-sdk query init.new-milestone` reported `project_exists: false` from the sub-repo, while `gsd-tools.cjs` resolved the parent root correctly. Resolution happens once in `cli.ts` before dispatch; if `projectDir` already owns `.planning/` (including explicit `--project-dir`), the walk is a no-op. Ported as `findProjectRoot` in `sdk/src/query/helpers.ts` with the same detection order (own `.planning/` wins, then parent `sub_repos` match, then legacy `multiRepo: true`, then `.git` heuristic), capped at 10 parent levels and never crossing `$HOME`. Closes #2623. -- **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) - -## [1.38.2] - 2026-04-19 - -### Fixed -- **SDK decoupled from build-from-source install** — replaces the fragile `tsc` + `npm install -g ./sdk` dance on user machines with a prebuilt `sdk/dist/` shipped inside the parent `get-shit-done-cc` tarball. The `gsd-sdk` CLI is now a `bin/gsd-sdk.js` shim in the parent package that resolves `sdk/dist/cli.js` and invokes it via `node`, so npm chmods the bin entry from the tarball (not from a secondary local install) and PATH/exec-bit issues cannot occur. Repurposes `installSdkIfNeeded()` in `bin/install.js` to only verify `sdk/dist/cli.js` exists and fix its execute bit (non-fatal); deletes `resolveGsdSdk()`, `detectShellRc()`, `emitSdkFatal()` and the source-build/global-install logic (162 lines removed). `release.yml` now runs `npm run build:sdk` before publish in both rc and finalize jobs, so every published tarball contains fresh SDK dist. `sdk/package.json` `prepublishOnly` is the final safety net (`rm -rf dist && tsc && chmod +x dist/cli.js`). `install-smoke.yml` adds an `smoke-unpacked` variant that installs from the unpacked dir with the exec bit stripped, so this class of regression cannot ship again. Closes #2441 and #2453. -- **`--sdk` flag semantics changed** — previously forced a rebuild of the SDK from source; now verifies the bundled `sdk/dist/` is resolvable. Users who were invoking `get-shit-done-cc --sdk` as a "force rebuild" no longer need it — the SDK ships prebuilt. - -### 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) -- **`/gsd-plan-review-convergence` command** — Cross-AI plan convergence loop that automates `plan-phase → review → replan → re-review` cycles. Spawns isolated agents for `gsd-plan-phase` and `gsd-review`; orchestrator only does loop control, HIGH concern counting, stall detection, and escalation. Supports `--codex`, `--gemini`, `--claude`, `--opencode`, `--all` reviewers and `--max-cycles N` (default 3). Loop exits when no HIGH concerns remain; stall detection warns when count isn't decreasing; escalation gate asks user to proceed or review manually when max cycles reached (#2306) - -### Fixed -- **`gsd-read-injection-scanner` hook now ships to users** — the scanner was added in 1.37.0 (#2201) but was never added to `scripts/build-hooks.js`' `HOOKS_TO_COPY` allowlist, so it never landed in `hooks/dist/` and `install.js` skipped it with "Skipped read injection scanner hook — gsd-read-injection-scanner.js not found at target". Effectively disabled the read-time prompt-injection scanner for every user on 1.37.0/1.37.1. Added to the build allowlist and regression test. Also dropped a redundant non-absolute `.claude/hooks/` path check that was bypassing the installer's runtime-path templating and leaking `.claude/` references into non-Claude installs (#2406) -- **SDK `checkAgentsInstalled` is now runtime-aware** — `sdk/src/query/init.ts::checkAgentsInstalled` only knew where Claude Code put agents (`~/.claude/agents`). Users running GSD on Codex, OpenCode, Gemini, Kilo, Copilot, Antigravity, Cursor, Windsurf, Augment, Trae, Qwen, CodeBuddy, or Cline got `agents_installed: false` even with a complete install, which hard-blocked any workflow that gates subagent spawning on that flag. `sdk/src/query/helpers.ts` now resolves the right directory via three-tier detection (`GSD_RUNTIME` env → `config.runtime` → `claude` fallback) and mirrors `bin/install.js::getGlobalDir()` for all 14 runtimes. `GSD_AGENTS_DIR` still short-circuits the chain. `init-runner.ts` stays Claude-only by design (#2402) -- **`init` query agents-installed check looks at the correct directory** — `checkAgentsInstalled` in `sdk/src/query/init.ts` defaulted to `~/.claude/get-shit-done/agents/`, but the installer writes GSD agents to `~/.claude/agents/`. Every init query therefore reported `agents_installed: false` on clean installs, which made workflows refuse to spawn `gsd-executor` and other parallel subagents. The default now matches `sdk/src/init-runner.ts` and the installer (#2400) -- **Installer now installs `@opengsd/gsd-sdk` automatically** so `gsd-sdk` lands on PATH. Resolves `command not found: gsd-sdk` errors that affected every `/gsd-*` command after a fresh install or `/gsd-update` to 1.36+. Adds `--no-sdk` to opt out and `--sdk` to force reinstall. Implements the `--sdk` flag that was previously documented in README but never wired up (#2385) - -## [1.37.1] - 2026-04-17 - -### Fixed -- UI-phase researcher now loads sketch findings skills, preventing re-asking questions already answered during `/gsd-sketch` - -## [1.37.0] - 2026-04-17 - -### Added -- **`/gsd-spike` and `/gsd-sketch` commands** — First-class GSD commands for rapid feasibility spiking and UI design sketching. Each produces throwaway experiments (spikes) or HTML mockups with multi-variant exploration (sketches), saved to `.planning/spikes/` and `.planning/sketches/` with full GSD integration: banners, checkpoint boxes, `gsd-sdk query` commits, and `--quick` flag to skip intake. Neither requires `/gsd-new-project` — auto-creates `.planning/` subdirs on demand -- **`/gsd-spike-wrap-up` and `/gsd-sketch-wrap-up` commands** — Package spike/sketch findings into project-local skills at `./.claude/skills/` with a planning summary at `.planning/`. Curates each spike/sketch one-at-a-time, groups by feature/design area, and adds auto-load routing to project CLAUDE.md -- **Spike/sketch pipeline integration** — `new-project` detects prior spike/sketch work on init, `discuss-phase` loads findings into prior context, `plan-phase` includes findings in planner ``, `explore` offers spike/sketch as output routes, `next` surfaces pending spike/sketch work as notices, `pause-work` detects active sketch context for handoff, `do` routes spike/sketch intent to new commands -- **`/gsd-spec-phase` command** — Socratic spec refinement with ambiguity scoring to clarify WHAT a phase delivers before discuss-phase. Produces a SPEC.md with falsifiable requirements locked before implementation decisions begin (#2213) -- **`/gsd-progress --forensic` flag** — Appends a 6-check integrity audit after the standard progress report (#2231) -- **`/gsd-discuss-phase --all` flag** — Skip area selection and discuss all gray areas interactively (#2230) -- **Parallel discuss across independent phases** — Multiple phases without dependencies can be discussed concurrently (#2268) -- **`gsd-read-injection-scanner` hook** — PostToolUse hook that scans for prompt injection attempts in read file contents (#2201) -- **SDK Phase 2 caller migration** — Workflows, agents, and commands now use `gsd-sdk query` instead of raw `gsd-tools.cjs` calls (#2179) -- **Project identity in Next Up blocks** — All Next Up blocks include workspace context for multi-project clarity (#1948) -- **Agent size-budget enforcement** — New `tests/agent-size-budget.test.cjs` enforces tiered line-count limits on every `gsd-*.md` agent (XL=1600, LARGE=1000, DEFAULT=500). Unbounded agent growth is paid in context on every subagent dispatch; the test prevents regressions and requires a deliberate PR rationale to raise a budget (#2361) -- **Shared `references/mandatory-initial-read.md`** — Extracts the `` enforcement block that was duplicated across 5 top agents. Agents now include it via a single `@~/.claude/get-shit-done/references/mandatory-initial-read.md` line, using Claude Code's progressive-disclosure `@file` reference mechanism (#2361) -- **Shared `references/project-skills-discovery.md`** — Extracts the 5-step project skills discovery checklist that was copy-pasted across 5 top agents with slight divergence. Single source of truth with a per-agent "Application" paragraph documenting how planners, executors, researchers, verifiers, and debuggers each apply the rules (#2361) - -### Changed -- **`gsd-debugger` philosophy extracted to shared reference** — The 76-line `` block containing evergreen debugging disciplines (user-as-reporter framing, meta-debugging, foundation principles, cognitive-bias table, systematic investigation, when-to-restart protocol) is now in `get-shit-done/references/debugger-philosophy.md` and pulled into the agent via a single `@file` include. Same content, lighter per-dispatch context footprint (#2363) -- **`gsd-planner`, `gsd-executor`, `gsd-debugger`, `gsd-verifier`, `gsd-phase-researcher`** — Migrated to `@file` includes for the mandatory-initial-read and project-skills-discovery boilerplate. Reduces per-dispatch context load without changing behavior (#2361) -- **Consolidated emphasis-marker density in top 4 agent files** — `gsd-planner.md` (23 → 15), `gsd-phase-researcher.md` (14 → 9), `gsd-doc-writer.md` (11 → 6), and `gsd-executor.md` (10 → 7). Removed `CRITICAL:` prefixes from H2/H3 headings and dropped redundant `CRITICAL:` + `MUST` / `ALWAYS:` + `NEVER:` stacking. RFC-2119 `MUST`/`NEVER` verbs inside normative sentences are preserved. Behavior-preserving; no content removed (#2368) - -### Fixed -- **Broken `@planner-source-audit.md` relative references in `gsd-planner.md`** — Two locations referenced `@planner-source-audit.md` (resolves relative to working directory, almost always missing) instead of the correct absolute `@~/.claude/get-shit-done/references/planner-source-audit.md`. The planner's source audit discipline was silently unenforced (#2361) -- **Shell hooks falsely flagged as stale** — `.sh` hooks now ship with version headers; installer stamps them; stale-hook detector matches bash comment syntax (#2136) -- **Worktree cleanup** — Orphaned worktrees pruned in code, not prose; pre-merge deletion guard in quick.md (#2367, #2275) -- **`/gsd-quick` crashes** — gsd-sdk pre-flight check with install hint (#2334); rescue uncommitted SUMMARY.md before worktree removal (#2296) -- **Pattern mapper redundant reads** — Early-stop rule prevents re-reading files (#2312) -- **Context meter scaling** — Respects `CLAUDE_CODE_AUTO_COMPACT_WINDOW` for accurate context bar (#2219) -- **Codex install paths** — Replace all `~/.claude/` paths in Codex `.toml` files (#2320) -- **Graphify edge fallback** — Falls back to `graph.links` when `graph.edges` is absent (#2323) -- **New-project saved defaults** — Display saved defaults before prompting to use them (#2333) -- **UAT parser** — Accept bracketed result values and fix decimal phase renumber padding (#2283) -- **Stats duplicate rows** — Normalize phase numbers in Map to prevent duplicates (#2220) -- **Review prompt shell expansion** — Pipe prompts via stdin (#2222) -- **Intel scope resolution** — Detect .kilo runtime layout (#2351) -- **Read-guard CLAUDECODE env** — Check env var in skip condition (#2344) -- **Add-backlog directory ordering** — Write ROADMAP entry before directory creation (#2286) -- **Settings workstream routing** — Route reads/writes through workstream-aware config path (#2285) -- **Quick normalize flags** — `--discuss --research --validate` combo normalizes to FULL_MODE (#2274) -- **Windows path normalization** — Normalize in update scope detection (#2278) -- **Codex/OpenCode model overrides** — Embed model_overrides in agent files (#2279) -- **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](https://github.com/open-gsd/get-shit-done-redux/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) -- `**@opengsd/gsd-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) -- **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) -- **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) -- **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) -- **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) -- **Metrics table pruning** — Auto-prune on phase complete for STATE.md metrics (#2087, #2120) -- **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) -- **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) -- **Agent specs standardization** — Standardized `required_reading` patterns across agent specs (#2176) -- **CI upgrades** — GitHub Actions upgraded to Node 22+ runtimes; release pipeline fixes (#2128, #1956) -- **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). -- **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. -- **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`). -- **Phase 2 orchestration doc pass (#2122)** — Aligned `commands/gsd` (`execute-phase`, `code-review`, `code-review-fix`, `from-gsd2`, `graphify`) and agents (`gsd-verifier`, `gsd-plan-checker`, `gsd-code-fixer`, `gsd-executor`, `gsd-planner`, researchers, debugger) so examples use `init.*` query names, correct `frontmatter.get` positional field, `state.*` positional args, and `commit` with positional file paths (not `--files`, except `commit-to-subrepo` which keeps `--files`). -- **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) -- **Codex hook install** — Copy hook files to Codex install target (#2153, #2166) -- **Phase add-batch duplicate prevention** — Prevents duplicate phase numbers on parallel invocations (#2165, #2170) -- **Stale hooks warning** — Show contextual warning for dev installs with stale hooks (#2162) -- **Worktree submodule skip** — Skip worktree isolation when `.gitmodules` detected (#2144) -- **Worktree STATE.md backup** — Use `cp` instead of `git-show` (#2143) -- **Bash hooks staleness check** — Add missing bash hooks to `MANAGED_HOOKS` (#2141) -- **Code-review parser fix** — Fix SUMMARY.md parser section-reset for top-level keys (#2142) -- **Backlog phase exclusion** — Exclude 999.x backlog phases from next-phase and all_complete (#2135) -- **Frontmatter regex anchor** — Anchor `extractFrontmatter` regex to file start (#2133) -- **Qwen Code install paths** — Eliminate Claude reference leaks (#2112) -- **Plan bounce default** — Correct `plan_bounce_passes` default from 1 to 2 -- **GSD temp directory** — Use dedicated temp subdirectory for GSD temp files (#1975, #2100) -- **Workspace path quoting** — Quote path variables in workspace next-step examples (#2096) -- **Answer validation loop** — Carve out Other+empty exception from retry loop (#2093) -- **Test race condition** — Add `before()` hook to bug-1736 test (#2099) -- **Qwen Code path replacement** — Dedicated path replacement branches and finishInstall labels (#2082) -- **Global skill symlink guard** — Tests and empty-name handling for config (#1992) -- **Context exhaustion hook defects** — Three blocking defects fixed (#1974) -- **State disk scan cache** — Invalidate disk scan cache in writeStateMd (#1967) -- **State frontmatter caching** — Cache buildStateFrontmatter disk scan per process (#1967) -- **Grep anchor and threshold guard** — Correct grep anchor and add threshold=0 guard (#1979) -- **Atomic write coverage** — Extend atomicWriteFileSync to milestone, phase, and frontmatter (#1972) -- **Health check optimization** — Merge four readdirSync passes into one (#1973) -- **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](https://github.com/open-gsd/get-shit-done-redux/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. -- **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](https://github.com/open-gsd/get-shit-done-redux/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](https://github.com/open-gsd/get-shit-done-redux/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](https://github.com/open-gsd/get-shit-done-redux/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](https://github.com/open-gsd/get-shit-done-redux/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) -- **Typed contribution templates** — Separate Bug, Enhancement, and Feature issue/PR templates with approval gates (#1673) -- **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) -- **Cross-platform planning lock** — Replace shell `sleep` with `Atomics.wait` for Windows compatibility (#1693) -- **MODEL_ALIAS_MAP** — Update to current Claude model IDs: opus→claude-opus-4-6, sonnet→claude-sonnet-4-6, haiku→claude-haiku-4-5 (#1691) -- **Skill path replacement** — `copyCommandsAsClaudeSkills` now applies path replacement correctly (#1677) -- **Runtime detection for /gsd-review** — Environment-based detection instead of hardcoded paths (#1463) -- **Marketing text in runtime prompt** — Remove marketing taglines from runtime selection (#1672, #1655) -- **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) -- **Localized documentation** — Full v1.32.0 audit for all language READMEs - -## [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) -- **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) -- **Playwright-MCP automated UI verification** — Optional visual verification in verify-phase (#1604) -- **Pause-work expansion** — Supports non-phase contexts with richer handoffs (#1608) -- **Research gate** — Blocks planning when RESEARCH.md has unresolved open questions (#1618) -- **Context reduction** — Markdown truncation and cache-friendly prompt ordering for SDK (#1615) -- **Verifier milestone scope filtering** — Gaps addressed in later phases marked as deferred, not gaps (#1624) -- **Read-before-edit guard hook** — Advisory PreToolUse hook prevents infinite retry loops in non-Claude runtimes (#1628) -- **Response language config** — `response_language` setting for cross-phase language consistency (#1412) -- **Manual update procedure** — `docs/manual-update.md` for non-npm installs -- **Commit-docs hook** — Guard for `commit_docs` enforcement (#1395) -- **Community hooks opt-in** — Optional hooks for GSD projects -- **OpenCode reviewer** — Added as peer reviewer in `/gsd-review` -- **Multi-project workspace** — `GSD_PROJECT` env var support -- **Manager passthrough flags** — Per-step flag configuration via config (#1410) -- **Adaptive context enrichment** — For 1M-token models -- **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) -- **Ghost `state update-position` command** — Removed dead reference from execute-phase.md (#1627) -- **Semver comparison for update check** — Proper `isNewer()` comparison replaces `!==`; no longer flags newer-than-npm as update available (#1617) -- **Next Up block ordering** — `/clear` shown before command (#1631) -- **Chain flag preservation** — Preserved across discuss → plan → execute (#1633) -- **Config key validation** — Unrecognized keys in config.json now warn instead of silent drop (#1542) -- **Parallel worktree STATE.md overwrites** — Orchestrator owns STATE.md/ROADMAP.md writes (#1599) -- **Dependent plan wave ordering** — Detects `files_modified` overlap and enforces wave ordering (#1587) -- **Windows session path hash** — Uses `realpathSync.native` (#1593) -- **STATE.md progress counters** — Corrected during plan execution (#1597) -- **Workspace agent path resolution** — Correct in worktree context (#1512) -- **Milestone phase cleanup** — Clears phases directory on new milestone (#1588) -- **Workstreams allowed-tools** — Removed unnecessary Write permission (#1637) -- **Executor/planner MCP tools** — Instructed to use available MCP tools (#1603) -- **Bold plan checkboxes** — Fixed in ROADMAP.md -- **Backlog recommendations** — Fixed BACKLOG phase handling -- **Session ID path traversal** — Validated `planningDir` -- **Copilot executor Task descriptions** — Added required `description` param -- **OpenCode permission string guard** — Fixed string-valued permission config -- **Concurrency safety** — Atomic state writes -- **Health validation** — STATE/ROADMAP cross-validation -- **Workstream session routing** — Isolated per session with fallback - -## [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 -- **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 -- **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 -- **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) - -### 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 -- **Infinite self-discuss loop** — Fixed in auto/headless mode with `max_discuss_passes` config -- **Orphan worktree cleanup** — Post-execution cleanup added -- **JSONC settings.json** — Comments no longer cause data loss -- **Incremental checkpoint saves** — Discuss answers preserved on interrupt -- **Stats accuracy** — Verification required for Complete status, added Executed state -- **Three-way merge for reapply-patches** — Never-skip invariant for backed-up files -- **SDK verify gates advance** — Skip advance when verification finds gaps -- **Manager delegates to Skill pipeline** — Instead of raw Task prompts -- **ROADMAP.md Plans column** — cmdPhaseComplete now updates correctly -- **Decimal phase numbers** — Commit regex captures decimal phases -- **Codex path replacement** — Added .claude path replacement -- **Verifier loads all ROADMAP SCs** — Regardless of PLAN must_haves -- **Verifier human_needed status** — Enforced when human verification items exist -- **Hooks shared cache dir** — Correct stale hooks path -- **Plan file naming** — Convention enforced in gsd-planner agent -- **Copilot path replacement** — Fixed ~/.claude to ~/.github -- **Windsurf trailing slash** — Removed from .windsurf/rules path -- **Slug sanitization** — Added --raw flag, capped length to 60 chars - -## [1.30.0](https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.30.0) - 2026-03-26 - -### Added - -- **GSD SDK** — Headless TypeScript SDK (`@opengsd/gsd-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) - -## [1.29.0](https://github.com/open-gsd/get-shit-done-redux/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 -- **Security scanning CI** — Prompt injection, base64, and secret scanning workflows -- **Portuguese (pt-BR) documentation** -- **Korean (ko-KR) documentation** -- **Japanese (ja-JP) documentation** - -### Changed - -- Repository references updated from `open-gsd` to `open-gsd` -- 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 -- Begin-phase preserves Status/LastActivity/Progress in Current Position -- Missing GSD agents detected with warning when `subagent_type` falls back to general-purpose -- Codex re-install repairs trapped non-boolean keys under `[features]` -- Invalid `\Z` regex anchor replaced and redundant pattern removed -- Hook field validation prevents silent `settings.json` rejection -- Codex preserves top-level config keys and uses absolute agent paths (≥0.116) -- Windows shell robustness, `project_root` detection, and hook stdin safety -- Brownfield project detection expanded to Android, Kotlin, Gradle, and 15+ ecosystems -- Verify-work checkpoint rendering hardened -- Worktree agents get `permissionMode: acceptEdits` -- Security scan self-detection and Windows test compatibility - -## [1.28.0](https://github.com/open-gsd/get-shit-done-redux/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 -- **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` -- **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 -- Path traversal prevention via workstream name sanitization -- Strategy branch created before first commit (not at execute-phase) -- `ProviderModelNotFoundError` on non-Claude runtimes -- `$HOME` used instead of `~` in installed shell command paths -- Subdirectory CWD preserved in monorepo worktrees -- Stale hook detection checking wrong directory path -- STATE.md frontmatter status preserved when body Status field missing -- Pipe truncation fix using `fs.writeSync` for stdout -- Verification gate before writing PROJECT.md in new-milestone -- Removed `jq` as undocumented hard dependency -- Discuss-phase no longer ignores workflow instructions -- Gemini CLI uses `BeforeTool` hook event instead of `PreToolUse` - -## [1.27.0](https://github.com/open-gsd/get-shit-done-redux/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 -- **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 -- **Context window size awareness** — Optimized behavior for 1M+ context models -- **Exa and Firecrawl MCP support** — Additional research tools for research agents -- **Runtime State Inventory** — Researcher capability for rename/refactor phases -- **Quick-task branch support** — Isolated branches for quick-mode tasks -- **Decision IDs** — Discuss-to-plan traceability via decision identifiers -- **Stub detection** — Verifier and executor detect incomplete implementations -- **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 -- Deduplicated code, annotated empty catches, consolidated STATE.md field helpers -- Materialize full config on new-project initialization -- 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 -- Universal agent name replacement for non-Claude runtimes -- `--no-verify` support for parallel executor commits -- ROADMAP fallback for plan-phase, execute-phase, and verify-work -- Copilot sequential fallback and spot-check completion detection -- `text_mode` config for Claude Code remote session compatibility -- Cursor: preserve slash-prefixed commands and unquoted skill names -- Semver 3+ segment parsing and CRLF frontmatter corruption recovery -- STATE.md parsing fixes (compound Plan field, progress tables, lifecycle extraction) -- Windows HOME sandboxing for tests -- Hook manifest tracking for local patch detection -- Cross-platform code detection and STATE.md file locking -- Auto-detect `commit_docs` from gitignore in `loadConfig` -- Context monitor hook matcher and timeout -- Codex EOL preservation when enabling hooks -- macOS `/var` symlink resolution in path validation - -## [1.26.0](https://github.com/open-gsd/get-shit-done-redux/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) -- **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) -- **WAITING.json signal file** — Machine-readable signal for decision points requiring user input (#1034) -- **Interactive executor mode** — Pair-programming style execution with step-by-step user involvement (#963) -- **MCP tool awareness** — GSD subagents can discover and use MCP server tools (#973) -- **Codex hooks support** — SessionStart hook support for Codex runtime (#1020) -- **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 -- **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 - - `result: blocked` with `blocked_by` tag for tests blocked by external dependencies (server, device, build, third-party) - - `human_needed` verification items now persist as HUMAN-UAT.md files (trackable across sessions) - - Phase completion and transition warnings surface verification debt non-blockingly -- **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) -- Explicit agent type listings prevent fallback after `/clear` (#949) -- Nested Skill calls breaking AskUserQuestion (#1009) -- Negative-heuristic `stripShippedMilestones` replaced with positive milestone lookup (#1145) -- Hook version tracking, stale hook detection, stdin timeout, session-report command (#1153, #1157, #1161, #1162) -- Hook build script syntax validation (#1165) -- Verification examples use `fetch()` instead of `curl` for Windows compatibility (#899) -- Sequential fallback for `map-codebase` on runtimes without Task tool (#1174) -- Zsh word-splitting fix for RUNTIME_DIRS arrays (#1173) -- CRLF frontmatter parsing, duplicate cwd crash, STATE.md phase transitions (#1105) -- Requirements `mark-complete` made idempotent (#948) -- Profile template paths, field names, and evidence key corrections (#1095) -- Duplicate variable declaration removed (#1101) - -## [1.25.0](https://github.com/open-gsd/get-shit-done-redux/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 -- **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 -- `core.cjs` returns `opus` directly instead of mapping to `inherit` -- Stats command corrects git and roadmap reporting -- Init prefers current milestone phase-op targets -- **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](https://github.com/open-gsd/get-shit-done-redux/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` -- **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) -- Windows installer crash on EPERM/EACCES when scanning protected directories (#964) -- `gsd-tools.cjs` uses absolute paths in all install types (#820) -- Invalid `skills:` frontmatter removed from UI agent files - -## [1.23.0](https://github.com/open-gsd/get-shit-done-redux/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 -- **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) -- Auto-advance no longer triggers without `--auto` flag (closes #1026, #932) -- `--auto` flag correctly skips interactive discussion questions (closes #1025) -- Decimal phase numbers correctly padded in init.cjs (closes #915) -- Empty-answer validation guards added to discuss-phase (closes #912) -- Tilde paths in templates prevent PII leak in `.planning/` files (closes #987) -- Invalid `commit-docs` command replaced with `commit` in workflows (closes #968) -- Uninstall mode indicator shown in banner output (closes #1024) -- WSL + Windows Node.js mismatch detected with user warning (closes #1021) -- Deprecated Codex config keys removed to fix UI instability -- Unsupported Gemini agent `skills` frontmatter stripped for compatibility -- Roadmap `complete` checkbox overrides `disk_status` for phase detection -- Plan-phase Nyquist validation works when research is disabled (closes #1002) -- Valid Codex agent TOML emitted by installer -- Escape characters corrected in grep commands - -## [1.22.4](https://github.com/open-gsd/get-shit-done-redux/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](https://github.com/open-gsd/get-shit-done-redux/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](https://github.com/open-gsd/get-shit-done-redux/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 -- Hooks include stdin timeout guard to prevent hanging on pipe errors -- Statusline context scaling matches autocompact buffer thresholds -- Gap closure plans compute wave numbers instead of hardcoding wave 1 -- `auto_advance` config flag no longer persists across sessions -- Phase-complete scans ROADMAP.md as fallback for next-phase detection -- `getMilestoneInfo()` prefers in-progress milestone marker instead of always returning first -- State parsing supports both bold and plain field formats -- Phase counting scoped to current milestone -- Total phases derived from ROADMAP when phase directories don't exist yet -- OpenCode detects runtime config directory instead of hardcoding `.claude` -- Gemini hooks use `AfterTool` event instead of `PostToolUse` -- Multi-word commit messages preserved in CLI router -- Regex patterns in milestone/state helpers properly escaped -- `isGitIgnored` uses `--no-index` for tracked file detection -- AskUserQuestion freeform answer loop properly breaks on valid input -- 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](https://github.com/open-gsd/get-shit-done-redux/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](https://github.com/open-gsd/get-shit-done-redux/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 -- Skill discovery supports both `.claude/skills/` and `.agents/skills/` paths -- `resolve-model` variable names aligned with template placeholders -- Regex metacharacters properly escaped in `stateExtractField` -- `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](https://github.com/open-gsd/get-shit-done-redux/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) -- Cross-platform path separators: all user-facing file paths use forward slashes on Windows -- JSON quoting and dollar sign handling in CLI arguments on Windows -- `model_overrides` loaded from config and `resolveModelInternal` used in CLI - -## [1.21.0](https://github.com/open-gsd/get-shit-done-redux/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 -- Standard `project_context` block in gsd-verifier output -- 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 -- Requirements propagation now includes `phase_req_ids` from ROADMAP to workflow agents -- 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 -- STATE.md frontmatter mapping for requirements-completed status -- Progress bar percent clamping to prevent RangeError crashes -- `--cwd` override support in state-snapshot command - -## [1.20.6](https://github.com/open-gsd/get-shit-done-redux/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](https://github.com/open-gsd/get-shit-done-redux/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](https://github.com/open-gsd/get-shit-done-redux/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](https://github.com/open-gsd/get-shit-done-redux/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 -- `complete-milestone` gates on requirements completion before archival — surfaces unchecked requirements with proceed/audit/abort options -- `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](https://github.com/open-gsd/get-shit-done-redux/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](https://github.com/open-gsd/get-shit-done-redux/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](https://github.com/open-gsd/get-shit-done-redux/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](https://github.com/open-gsd/get-shit-done-redux/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 -- Phase padding normalized in insert command -- ESM conflicts prevented by renaming gsd-tools.js to .cjs -- Config directory paths quoted in hook templates for local installs -- Settings file corruption prevented by using Write tool for file creation -- Plan-phase autocomplete fixed by removing "execution" from description -- Executor now has scope boundary and attempt limit to prevent runaway loops - -## [1.19.1](https://github.com/open-gsd/get-shit-done-redux/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) -- REQUIREMENTS.md traceability updates when a phase completes -- STATE.md updates after discuss-phase completes (#556) -- 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](https://github.com/open-gsd/get-shit-done-redux/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) -- Accept both `##` and `###` phase headers, detect malformed ROADMAPs (#598, #599) -- Use `{phase_num}` instead of ambiguous `{phase}` for filenames (#601) -- Add package.json to prevent ESM inheritance issues (#602) - -## [1.18.0](https://github.com/open-gsd/get-shit-done-redux/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](https://github.com/open-gsd/get-shit-done-redux/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 -- **gsd-tools state progression**: `state advance-plan`, `state update-progress`, `state record-metric`, `state add-decision`, `state add-blocker`, `state resolve-blocker`, `state record-session` — automates STATE.md updates -- **Local patch preservation**: Installer now detects locally modified GSD files, backs them up to `gsd-local-patches/`, and creates a manifest for restoration -- `/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](https://github.com/open-gsd/get-shit-done-redux/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 - - `phase remove [--force]` — remove phase with full renumbering - - `phase complete ` — mark done, update state + roadmap, detect milestone end - - `roadmap analyze` — unified roadmap parser with disk status - - `milestone complete [--name]` — archive roadmap/requirements/audit - - `validate consistency` — check phase numbering and disk/roadmap sync - - `progress [json|table|bar]` — render progress in various formats - - `todo complete ` — move todo from pending to completed - - `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 - - `insert-phase.md`: 7 manual steps → 1 CLI call + state update - - `complete-milestone.md`: archival delegated to `milestone complete` - - `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](https://github.com/open-gsd/get-shit-done-redux/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](https://github.com/open-gsd/get-shit-done-redux/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](https://github.com/open-gsd/get-shit-done-redux/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) -- 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](https://github.com/open-gsd/get-shit-done-redux/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](https://github.com/open-gsd/get-shit-done-redux/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](https://github.com/open-gsd/get-shit-done-redux/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) -- Auto-create `config.json` when missing during `/gsd:settings` (#264) -- `/gsd:update` respects local vs global install location -- Researcher writes RESEARCH.md regardless of `commit_docs` setting -- Statusline crash handling, color validation, git staging rules -- Statusline.js reference updated during install (#330) -- Parallelization config setting now respected (#379) -- ASCII box-drawing vs text content with diacritics (#289) -- Removed broken gsd-gemini link (404) - -## [1.11.1](https://github.com/open-gsd/get-shit-done-redux/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}`) - - `milestone`: create branch per milestone (`gsd/{version}-{slug}`) -- Squash merge option at milestone completion (recommended) with merge-with-history alternative -- 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](https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.10.1) - 2025-01-30 - -### Fixed - -- Gemini CLI agent loading errors that prevented commands from executing - -## [1.10.0](https://github.com/open-gsd/get-shit-done-redux/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](https://github.com/open-gsd/get-shit-done-redux/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](https://github.com/open-gsd/get-shit-done-redux/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](https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.9.10) - 2026-01-23 - -### Added - -- Discord community link shown in installer completion message - -## [1.9.9](https://github.com/open-gsd/get-shit-done-redux/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](https://github.com/open-gsd/get-shit-done-redux/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](https://github.com/open-gsd/get-shit-done-redux/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](https://github.com/open-gsd/get-shit-done-redux/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](https://github.com/open-gsd/get-shit-done-redux/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](https://github.com/open-gsd/get-shit-done-redux/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](https://github.com/open-gsd/get-shit-done-redux/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 - - Removed SQLite graph database and sql.js dependency (21MB) - - Removed intel hooks (gsd-intel-index.js, gsd-intel-session.js, gsd-intel-prune.js) - - Removed entity file generation and templates - -### Fixed - -- new-project now properly includes model_profile in config - -## [1.9.0](https://github.com/open-gsd/get-shit-done-redux/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](https://github.com/open-gsd/get-shit-done-redux/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](https://github.com/open-gsd/get-shit-done-redux/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](https://github.com/open-gsd/get-shit-done-redux/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 -- Corrected agent name in research-phase heading -- Removed hardcoded 2025 year from search query examples -- Removed dead gsd-researcher agent references -- Integrated unused reference files into documentation - -### Housekeeping - -- Added homepage and bugs fields to package.json - -## [1.6.4](https://github.com/open-gsd/get-shit-done-redux/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](https://github.com/open-gsd/get-shit-done-redux/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](https://github.com/open-gsd/get-shit-done-redux/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](https://github.com/open-gsd/get-shit-done-redux/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](https://github.com/open-gsd/get-shit-done-redux/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](https://github.com/open-gsd/get-shit-done-redux/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](https://github.com/open-gsd/get-shit-done-redux/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](https://github.com/open-gsd/get-shit-done-redux/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](https://github.com/open-gsd/get-shit-done-redux/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](https://github.com/open-gsd/get-shit-done-redux/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](https://github.com/open-gsd/get-shit-done-redux/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](https://github.com/open-gsd/get-shit-done-redux/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](https://github.com/open-gsd/get-shit-done-redux/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](https://github.com/open-gsd/get-shit-done-redux/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](https://github.com/open-gsd/get-shit-done-redux/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 -- Research synthesizer commits all research files together (not individually) -- Project researcher agent can no longer commit (orchestrator handles commits) -- Roadmap requires explicit user approval before committing - -## [1.5.20](https://github.com/open-gsd/get-shit-done-redux/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](https://github.com/open-gsd/get-shit-done-redux/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](https://github.com/open-gsd/get-shit-done-redux/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 - - Max 3 revision iterations before user escalation - - `--skip-verify` flag for experienced users who want to bypass verification -- **Dedicated planner agent** — `gsd-planner` (1,319 lines) consolidates all planning expertise - - Complete methodology: discovery levels, task breakdown, dependency graphs, scope estimation, goal-backward analysis - - Revision mode for handling checker feedback - - TDD integration and checkpoint patterns -- **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) -- Planning references deprecated with redirects to `gsd-planner` agent sections - - `plan-format.md`, `scope-estimation.md`, `goal-backward.md`, `principles.md` - - `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](https://github.com/open-gsd/get-shit-done-redux/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](https://github.com/open-gsd/get-shit-done-redux/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 -- `references/research-pitfalls.md` — consolidated into gsd-researcher agent -- `references/debugging.md` — consolidated into gsd-debugger agent -- `references/debug-investigation.md` — consolidated into gsd-debugger agent - -## [1.5.15](https://github.com/open-gsd/get-shit-done-redux/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](https://github.com/open-gsd/get-shit-done-redux/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](https://github.com/open-gsd/get-shit-done-redux/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](https://github.com/open-gsd/get-shit-done-redux/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 - - `discuss-milestone` is now required before `new-milestone` (creates context file) - - `research-project` is milestone-aware — focuses on new features, ignores already-validated requirements - - `create-roadmap` continues phase numbering from previous milestone - - 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](https://github.com/open-gsd/get-shit-done-redux/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](https://github.com/open-gsd/get-shit-done-redux/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](https://github.com/open-gsd/get-shit-done-redux/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](https://github.com/open-gsd/get-shit-done-redux/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](https://github.com/open-gsd/get-shit-done-redux/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](https://github.com/open-gsd/get-shit-done-redux/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](https://github.com/open-gsd/get-shit-done-redux/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](https://github.com/open-gsd/get-shit-done-redux/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](https://github.com/open-gsd/get-shit-done-redux/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](https://github.com/open-gsd/get-shit-done-redux/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](https://github.com/open-gsd/get-shit-done-redux/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](https://github.com/open-gsd/get-shit-done-redux/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](https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.4.29) - 2026-01-14 - -### Removed - -- Deleted obsolete `_archive/execute-phase.md` and `status.md` commands - -## [1.4.28](https://github.com/open-gsd/get-shit-done-redux/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](https://github.com/open-gsd/get-shit-done-redux/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](https://github.com/open-gsd/get-shit-done-redux/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](https://github.com/open-gsd/get-shit-done-redux/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](https://github.com/open-gsd/get-shit-done-redux/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](https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.4.23) - 2026-01-14 - -### Changed - -- Removed dead ISSUES.md system code - -## [1.4.22](https://github.com/open-gsd/get-shit-done-redux/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](https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.4.21) - 2026-01-14 - -### Fixed - -- SlashCommand tool added to plan-fix allowed-tools - -## [1.4.20](https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.4.20) - 2026-01-14 - -### Fixed - -- Standardized debug file naming convention -- Debug workflow now invokes execute-plan correctly - -## [1.4.19](https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.4.19) - 2026-01-14 - -### Fixed - -- Auto-diagnose issues instead of offering choice in plan-fix - -## [1.4.18](https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.4.18) - 2026-01-14 - -### Added - -- Parallel diagnosis before plan-fix execution - -## [1.4.17](https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.4.17) - 2026-01-14 - -### Changed - -- Redesigned verify-work as conversational UAT with persistent state - -## [1.4.16](https://github.com/open-gsd/get-shit-done-redux/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](https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.4.15) - 2026-01-13 - -### Added - -- Context rot explanation to README header - -## [1.4.14](https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.4.14) - 2026-01-13 - -### Changed - -- YOLO mode is now recommended default in new-project - -## [1.4.13](https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.4.13) - 2026-01-13 - -### Fixed - -- Brownfield flow documentation -- Removed deprecated resume-task references - -## [1.4.12](https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.4.12) - 2026-01-13 - -### Changed - -- execute-phase is now recommended as primary execution command - -## [1.4.11](https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.4.11) - 2026-01-13 - -### Fixed - -- Checkpoints now use fresh continuation agents instead of resume - -## [1.4.10](https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.4.10) - 2026-01-13 - -### Changed - -- execute-plan converted to orchestrator pattern for performance - -## [1.4.9](https://github.com/open-gsd/get-shit-done-redux/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](https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.4.8) - 2026-01-13 - -### Added - -- TDD reasoning explanation restored to plan-phase docs - -## [1.4.7](https://github.com/open-gsd/get-shit-done-redux/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](https://github.com/open-gsd/get-shit-done-redux/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](https://github.com/open-gsd/get-shit-done-redux/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](https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.4.4) - 2026-01-13 - -### Fixed - -- Inline listing for multiple active debug sessions - -## [1.4.3](https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.4.3) - 2026-01-13 - -### Added - -- `/gsd:debug` command for systematic debugging with persistent state - -## [1.4.2](https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.4.2) - 2026-01-13 - -### Fixed - -- Installation verification step clarification - -## [1.4.1](https://github.com/open-gsd/get-shit-done-redux/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 -- Parallelization configuration in config.json -- 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](https://github.com/open-gsd/get-shit-done-redux/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](https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.3.34) - 2026-01-11 - -### Added - -- `/gsd:add-todo` and `/gsd:check-todos` for mid-session idea capture - -## [1.3.33](https://github.com/open-gsd/get-shit-done-redux/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](https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.3.32) - 2026-01-10 - -### Added - -- `/gsd:resume-task` for resuming interrupted subagent executions - -## [1.3.31](https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.3.31) - 2026-01-08 - -### Added - -- Planning principles for security, performance, and observability -- Pro patterns section in README - -## [1.3.30](https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.3.30) - 2026-01-08 - -### Added - -- verify-work option surfaces after plan execution - -## [1.3.29](https://github.com/open-gsd/get-shit-done-redux/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](https://github.com/open-gsd/get-shit-done-redux/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](https://github.com/open-gsd/get-shit-done-redux/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](https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.3.26) - 2026-01-06 - -### Added - -- Claude Code marketplace plugin support - -### Fixed - -- Phase artifacts now committed when created - -## [1.3.25](https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.3.25) - 2026-01-06 - -### Fixed - -- Milestone discussion context persists across /clear - -## [1.3.24](https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.3.24) - 2026-01-06 - -### Added - -- `CLAUDE_CONFIG_DIR` environment variable support - -## [1.3.23](https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.3.23) - 2026-01-06 - -### Added - -- Non-interactive install flags (`--global`, `--local`) for Docker/CI - -## [1.3.22](https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.3.22) - 2026-01-05 - -### Changed - -- Removed unused auto.md command - -## [1.3.21](https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.3.21) - 2026-01-05 - -### Changed - -- TDD features use dedicated plans for full context quality - -## [1.3.20](https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.3.20) - 2026-01-05 - -### Added - -- Per-task atomic commits for better AI observability - -## [1.3.19](https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.3.19) - 2026-01-05 - -### Fixed - -- Clarified create-milestone.md file locations with explicit instructions - -## [1.3.18](https://github.com/open-gsd/get-shit-done-redux/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](https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.3.17) - 2026-01-04 - -### Fixed - -- Clarified depth controls compression, not inflation in planning - -## [1.3.16](https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.3.16) - 2026-01-04 - -### Added - -- Depth parameter for planning thoroughness (`--depth=1-5`) - -## [1.3.15](https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.3.15) - 2026-01-01 - -### Fixed - -- TDD reference loaded directly in commands - -## [1.3.14](https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.3.14) - 2025-12-31 - -### Added - -- TDD integration with detection, annotation, and execution flow - -## [1.3.13](https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.3.13) - 2025-12-29 - -### Fixed - -- Restored deterministic bash commands -- Removed redundant decision_gate - -## [1.3.12](https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.3.12) - 2025-12-29 - -### Fixed - -- Restored plan-format.md as output template - -## [1.3.11](https://github.com/open-gsd/get-shit-done-redux/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](https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.3.10) - 2025-12-29 - -### Fixed - -- Explicit plan count check in offer_next step - -## [1.3.9](https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.3.9) - 2025-12-27 - -### Added - -- Evolutionary PROJECT.md system with incremental updates - -## [1.3.8](https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.3.8) - 2025-12-18 - -### Added - -- Brownfield/existing projects section in README - -## [1.3.7](https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.3.7) - 2025-12-18 - -### Fixed - -- Improved incremental codebase map updates - -## [1.3.6](https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.3.6) - 2025-12-18 - -### Added - -- File paths included in codebase mapping output - -## [1.3.5](https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.3.5) - 2025-12-17 - -### Fixed - -- Removed arbitrary 100-line limit from codebase mapping - -## [1.3.4](https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.3.4) - 2025-12-17 - -### Fixed - -- Inline code for Next Up commands (avoids nesting ambiguity) - -## [1.3.3](https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.3.3) - 2025-12-17 - -### Fixed - -- Check PROJECT.md not .planning/ directory for existing project detection - -## [1.3.2](https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.3.2) - 2025-12-17 - -### Added - -- Git commit step to map-codebase workflow - -## [1.3.1](https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.3.1) - 2025-12-17 - -### Added - -- `/gsd:map-codebase` documentation in help and README - -## [1.3.0](https://github.com/open-gsd/get-shit-done-redux/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](https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.2.13) - 2025-12-17 - -### Added - -- Improved continuation UI with context and visual hierarchy - -## [1.2.12](https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.2.12) - 2025-12-17 - -### Fixed - -- First question should be freeform, not AskUserQuestion - -## [1.2.11](https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.2.11) - 2025-12-17 - -### Fixed - -- Permission errors for non-DSP users (removed shell context) - -## [1.2.10](https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.2.10) - 2025-12-16 - -### Fixed - -- Inline command invocation replaced with clear-then-paste pattern - -## [1.2.9](https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.2.9) - 2025-12-16 - -### Fixed - -- Git init runs in current directory - -## [1.2.8](https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.2.8) - 2025-12-16 - -### Changed - -- Phase count derived from work scope, not arbitrary limits - -## [1.2.7](https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.2.7) - 2025-12-16 - -### Fixed - -- AskUserQuestion mandated for all exploration questions - -## [1.2.6](https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.2.6) - 2025-12-16 - -### Changed - -- Internal refactoring - -## [1.2.5](https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.2.5) - 2025-12-16 - -### Changed - -- `` tags for yolo/interactive branching - -## [1.2.4](https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.2.4) - 2025-12-16 - -### Fixed - -- Stale CONTEXT.md references updated to new vision structure - -## [1.2.3](https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.2.3) - 2025-12-16 - -### Fixed - -- Enterprise language removed from help and discuss-milestone - -## [1.2.2](https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.2.2) - 2025-12-16 - -### Fixed - -- new-project completion presented inline instead of as question - -## [1.2.1](https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.2.1) - 2025-12-16 - -### Fixed - -- AskUserQuestion restored for decision gate in questioning flow - -## [1.2.0 legacy](https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.2.0) - 2025-12-15 - -### Changed - -- Research workflow implemented as Claude Code context injection - -## [1.1.2](https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.1.2) - 2025-12-15 - -### Fixed - -- YOLO mode now skips confirmation gates in plan-phase - -## [1.1.1](https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.1.1) - 2025-12-15 - -### Added - -- README documentation for new research workflow - -## [1.1.0](https://github.com/open-gsd/get-shit-done-redux/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 -- `/gsd:create-roadmap` command with research-aware workflow -- 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](https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.0.11) - 2025-12-15 - -### Added - -- `/gsd:research-phase` for niche domain ecosystem discovery - -## [1.0.10](https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.0.10) - 2025-12-15 - -### Fixed - -- Scope creep prevention in discuss-phase command - -## [1.0.9](https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.0.9) - 2025-12-15 - -### Added - -- Phase CONTEXT.md loaded in plan-phase command - -## [1.0.8](https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.0.8) - 2025-12-15 - -### Changed - -- PLAN.md included in phase completion commits - -## [1.0.7](https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.0.7) - 2025-12-15 - -### Added - -- Path replacement for local installs - -## [1.0.6](https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.0.6) - 2025-12-15 - -### Changed - -- Internal improvements - -## [1.0.5](https://github.com/open-gsd/get-shit-done-redux/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](https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.0.4) - 2025-12-15 - -### Fixed - -- Bin name and circular dependency removed - -## [1.0.3](https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.0.3) - 2025-12-15 - -### Added - -- TDD guidance in planning workflow - -## [1.0.2](https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.0.2) - 2025-12-15 - -### Added - -- Issue triage system to prevent deferred issue pile-up - -## [1.0.1](https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.0.1) - 2025-12-15 - -### Added - -- Initial npm package release - -## [1.0.0](https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.0.0) - 2025-12-14 - -### Added - -- Initial release of GSD Core (Git Ship. 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 -- Phase-based development workflow -- YOLO mode for autonomous execution -- Interactive mode with checkpoints +Those legacy `1.x` numbers belong to the previous package line and predate the current `@opengsd/gsd-core` versioning, which restarts at `1.0.0`. They are preserved verbatim-in-spirit (condensed) in the archive and intentionally kept out of this file so the two version streams cannot collide. [Unreleased]: https://github.com/open-gsd/gsd-core/compare/main...HEAD -[1.42.1]: https://github.com/open-gsd/get-shit-done-redux/compare/v1.41.0...v1.42.1 -[1.38.4]: https://github.com/open-gsd/get-shit-done-redux/compare/v1.38.2...v1.38.4 -[1.38.2]: https://github.com/open-gsd/get-shit-done-redux/compare/v1.37.1...v1.38.2 -[1.37.1]: https://github.com/open-gsd/get-shit-done-redux/compare/v1.37.0...v1.37.1 -[1.37.0]: https://github.com/open-gsd/get-shit-done-redux/compare/v1.36.0...v1.37.0 -[1.36.0]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.36.0 -[1.35.0]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.35.0 -[1.34.2]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.34.2 -[1.34.1]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.34.1 -[1.34.0]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.34.0 -[1.33.0]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.33.0 -[1.30.0]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.30.0 -[1.29.0]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.29.0 -[1.28.0]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.28.0 -[1.27.0]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.27.0 -[1.26.0]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.26.0 -[1.25.0]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.25.0 -[1.24.0]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.24.0 -[1.23.0]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.23.0 -[1.22.4]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.22.4 -[1.22.3]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.22.3 -[1.22.2]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.22.2 -[1.22.1]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.22.1 -[1.22.0]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.22.0 -[1.21.1]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.21.1 -[1.21.0]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.21.0 -[1.20.6]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.20.6 -[1.20.5]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.20.5 -[1.20.4]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.20.4 -[1.20.3]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.20.3 -[1.20.2]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.20.2 -[1.20.1]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.20.1 -[1.20.0]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.20.0 -[1.19.2]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.19.2 -[1.19.1]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.19.1 -[1.19.0]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.19.0 -[1.18.0]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.18.0 -[1.17.0]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.17.0 -[1.16.0]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.16.0 -[1.15.0]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.15.0 -[1.14.0]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.14.0 -[1.13.0]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.13.0 -[1.12.1]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.12.1 -[1.12.0]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.12.0 -[1.11.2]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.11.2 -[1.11.1]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.11.0 -[1.10.1]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.10.1 -[1.10.0]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.10.0 -[1.9.12]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.9.12 -[1.9.11]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.9.11 -[1.9.10]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.9.10 -[1.9.9]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.9.9 -[1.9.8]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.9.8 -[1.9.7]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.9.7 -[1.9.6]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.9.6 -[1.9.5]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.9.5 -[1.9.4]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.9.4 -[1.9.2]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.9.2 -[1.9.0]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.9.0 -[1.8.0]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.8.0 -[1.7.1]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.7.1 -[1.7.0]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.7.0 -[1.6.4]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.6.4 -[1.6.3]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.6.3 -[1.6.2]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.6.2 -[1.6.1]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.6.1 -[1.6.0]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.6.0 -[1.5.30]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.5.30 -[1.5.29]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.5.29 -[1.5.28]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.5.28 -[1.5.27]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.5.27 -[1.5.26]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.5.26 -[1.5.25]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.5.25 -[1.5.24]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.5.24 -[1.5.23]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.5.23 -[1.5.22]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.5.22 -[1.5.21]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.5.21 -[1.5.20]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.5.20 -[1.5.19]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.5.19 -[1.5.18]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.5.18 -[1.5.17]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.5.17 -[1.5.16]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.5.16 -[1.5.15]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.5.15 -[1.5.14]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.5.14 -[1.5.13]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.5.13 -[1.5.12]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.5.12 -[1.5.11]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.5.11 -[1.5.10]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.5.10 -[1.5.9]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.5.9 -[1.5.8]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.5.8 -[1.5.7]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.5.7 -[1.5.6]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.5.6 -[1.5.5]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.5.5 -[1.5.4]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.5.4 -[1.5.3]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.5.3 -[1.5.2]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.5.2 -[1.5.1]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.5.1 -[1.5.0]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.5.0 -[1.4.29]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.4.29 -[1.4.28]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.4.28 -[1.4.27]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.4.27 -[1.4.26]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.4.26 -[1.4.25]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.4.25 -[1.4.24]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.4.24 -[1.4.23]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.4.23 -[1.4.22]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.4.22 -[1.4.21]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.4.21 -[1.4.20]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.4.20 -[1.4.19]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.4.19 -[1.4.18]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.4.18 -[1.4.17]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.4.17 -[1.4.16]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.4.16 -[1.4.15]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.4.15 -[1.4.14]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.4.14 -[1.4.13]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.4.13 -[1.4.12]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.4.12 -[1.4.11]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.4.11 -[1.4.10]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.4.10 -[1.4.9]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.4.9 -[1.4.8]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.4.8 -[1.4.7]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.4.7 -[1.4.6]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.4.6 -[1.4.5]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.4.5 -[1.4.4]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.4.4 -[1.4.3]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.4.3 -[1.4.2]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.4.2 -[1.4.1]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.4.1 -[1.4.0]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.4.0 -[1.3.34]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.3.34 -[1.3.33]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.3.33 -[1.3.32]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.3.32 -[1.3.31]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.3.31 -[1.3.30]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.3.30 -[1.3.29]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.3.29 -[1.3.28]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.3.28 -[1.3.27]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.3.27 -[1.3.26]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.3.26 -[1.3.25]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.3.25 -[1.3.24]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.3.24 -[1.3.23]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.3.23 -[1.3.22]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.3.22 -[1.3.21]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.3.21 -[1.3.20]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.3.20 -[1.3.19]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.3.19 -[1.3.18]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.3.18 -[1.3.17]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.3.17 -[1.3.16]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.3.16 -[1.3.15]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.3.15 -[1.3.14]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.3.14 -[1.3.13]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.3.13 -[1.3.12]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.3.12 -[1.3.11]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.3.11 -[1.3.10]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.3.10 -[1.3.9]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.3.9 -[1.3.8]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.3.8 -[1.3.7]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.3.7 -[1.3.6]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.3.6 -[1.3.5]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.3.5 -[1.3.4]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.3.4 -[1.3.3]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.3.3 -[1.3.2]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.3.2 -[1.3.1]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.3.1 -[1.3.0]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.3.0 -[1.2.13]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.2.13 -[1.2.12]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.2.12 -[1.2.11]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.2.11 -[1.2.10]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.2.10 -[1.2.9]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.2.9 -[1.2.8]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.2.8 -[1.2.7]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.2.7 -[1.2.6]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.2.6 -[1.2.5]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.2.5 -[1.2.4]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.2.4 -[1.2.3]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.2.3 -[1.2.2]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.2.2 -[1.2.1]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.2.1 -[1.2.0]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.2.0 -[1.1.2]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.1.2 -[1.1.1]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.1.1 -[1.1.0]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.1.0 -[1.0.11]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.0.11 -[1.0.10]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.0.10 -[1.0.9]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.0.9 -[1.0.8]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.0.8 -[1.0.7]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.0.7 -[1.0.6]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.0.6 -[1.0.5]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.0.5 -[1.0.4]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.0.4 -[1.0.3]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.0.3 -[1.0.2]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.0.2 -[1.0.1]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.0.1 -[1.0.0]: https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.0.0 diff --git a/docs/CANARY.md b/docs/CANARY.md index 0dd0dd8ef..e6fb1d2f4 100644 --- a/docs/CANARY.md +++ b/docs/CANARY.md @@ -61,6 +61,6 @@ File against the [issue tracker](https://github.com/open-gsd/gsd-core/issues) wi ## Where to look next -- Active canary release notes: [`docs/RELEASE-v1.50.0-canary.1.md`](RELEASE-v1.50.0-canary.1.md) +- Active canary release notes: [`v1.50.0-canary.1` (now in the legacy release-notes archive)](RELEASE-NOTES-LEGACY.md) - Stable release notes: [`CHANGELOG.md`](../CHANGELOG.md) - Stream architecture rationale: discussed across [#2727](https://github.com/open-gsd/gsd-core/issues/2727), [#2773](https://github.com/open-gsd/gsd-core/issues/2773) (codex schema-break and the resulting promotion bottleneck that motivated explicit stream isolation) diff --git a/docs/FEATURES.md b/docs/FEATURES.md index e9c4ee9e6..cdda06ee3 100644 --- a/docs/FEATURES.md +++ b/docs/FEATURES.md @@ -2817,7 +2817,7 @@ Source commit: abc1234 (3 commits behind HEAD) - REQ-PKG-GATE-02: Planner MUST gate unverified or suspicious package installs before execution. - REQ-PKG-GATE-03: Executor MUST NOT auto-substitute package names after failed package-manager installs. -**Reference:** [v1.42.1 Release Notes](RELEASE-v1.42.1.md) +**Reference:** [v1.42.1 Release Notes](RELEASE-NOTES-LEGACY.md) --- diff --git a/docs/RELEASE-NOTES-LEGACY.md b/docs/RELEASE-NOTES-LEGACY.md new file mode 100644 index 000000000..3e8389975 --- /dev/null +++ b/docs/RELEASE-NOTES-LEGACY.md @@ -0,0 +1,1030 @@ +# Legacy Release Notes + +> **Archived history — frozen.** These notes cover the project's first lifecycle under its earlier package names, **`get-shit-done-cc`** and later **`@opengsd/get-shit-done-redux`** (versions `1.0.0` → `1.42.x`, plus pre-release and canary builds up to `1.50.0-canary.1`). The project now ships as **`@opengsd/gsd-core`**, whose version numbering restarts at `1.0.0`. Current release notes live in [`CHANGELOG.md`](../CHANGELOG.md). +> +> Because the `@opengsd/gsd-core` line reuses low version numbers (`1.0.0`, `1.1.0`, `1.2.0`, …), the legacy `1.x` numbers below **will collide** with current ones. Always read a legacy version number as belonging to the retired `get-shit-done-cc` / `get-shit-done-redux` lineage. +> +> **Install commands have been removed.** The retired packages are no longer maintained; historical `npx @opengsd/get-shit-done-redux@…` instructions have been stripped so they cannot be copied by mistake. To install the current tool, see the project README. + +## About this archive + +This document is a condensed, read-only record of every release published before the project was renamed to `@opengsd/gsd-core`. It exists so that the old version history is preserved without its `1.x` numbers colliding with the current package's release notes. + +It rolls up two previously separate sources: the per-version entries that lived in `CHANGELOG.md` under "Legacy Release History", and ten standalone `docs/RELEASE-v*.md` release-note files. Both sources have been removed in favour of this single archive. + +Entries are organised newest-first and condensed to their key points. Dates are shown as originally recorded; where a standalone release note carried no date, the date column shows "—". One historical heading appears as **`1.2.0 legacy`** — it was renamed to avoid colliding with the current `@opengsd/gsd-core@1.2.0`. + +--- + +## Version index + +Stable and patch releases, newest first. Pre-release and canary builds are listed separately in [Pre-release & canary builds](#pre-release--canary-builds). + +| Version | Date | Summary | +| --- | --- | --- | +| 1.42.3 | — | Codex CLI 0.130.0 routability fix and runtime-aware slash formatter | +| 1.42.1 | 2026-05-15 | Phase-dir naming and progress counter fixes | +| 1.41.0 | 2026-05-07 | Hierarchical skill routing, new commands, and extensive bug fixes | +| 1.39.1 | 2026-05-01 | Hotfix: agent-skills output, help accuracy, and Windows SDK shim | +| 1.38.5 | 2026-04-25 | SDK executor writes SUMMARY.md to correct phase directory | +| 1.38.4 | 2026-04-25 | SDK prompt fidelity, plan content, and verification accuracy restored | +| 1.38.2 | 2026-04-19 | SDK ships prebuilt; two new commands added | +| 1.37.1 | 2026-04-17 | UI-phase researcher loads sketch findings to avoid re-asking | +| 1.37.0 | 2026-04-17 | Spike, sketch, and spec commands; SDK Phase 2 caller migration | +| 1.36.0 | 2026-04-14 | SDK query layer Phases 1 & 2; graphify integration and broad fixes | +| 1.35.0 | 2026-04-10 | Cline, CodeBuddy, Qwen runtime support; statusline milestone display | +| 1.34.2 | 2026-04-06 | Node.js minimum restored to 22 | +| 1.34.1 | 2026-04-06 | Catchup publish; v1.33.0 and v1.34.0 now available | +| 1.34.0 | 2026-04-06 | Gates taxonomy, post-merge hunk verification, execution context profiles | +| 1.33.0 | 2026-04-05 | Queryable codebase intel system and typed contribution templates | +| 1.32.0 | 2026-04-04 | Four new runtimes, state commands, autonomous flags, and wide fixes | +| 1.31.0 | 2026-04-01 | Skills migration, docs-update, secure-phase, and worktree fixes | +| 1.30.0 | 2026-03-26 | Headless TypeScript SDK added for autonomous project execution | +| 1.29.0 | 2026-03-25 | Windsurf runtime, skill injection, and multi-language documentation added | +| 1.28.0 | 2026-03-22 | Workstream namespacing and multi-project workspace commands added | +| 1.27.0 | 2026-03-20 | Advisor mode, Cursor runtime, and centralized security hardening added | +| 1.26.0 | 2026-03-18 | Developer profiling pipeline, ship command, and verification debt tracking added | +| 1.25.0 | 2026-03-16 | Antigravity runtime support and new documentation suite added | +| 1.24.0 | 2026-03-15 | Quick research flag, persistent debug knowledge base, and programmatic profile setter added | +| 1.23.0 | 2026-03-15 | UI-phase workflow, stats dashboard, and Copilot CLI runtime added | +| 1.22.4 | 2026-03-03 | Discuss flag for quick mode and Windows temp file resolution fixed | +| 1.22.3 | 2026-03-03 | Cold-start smoke test injection and granularity setting rename | +| 1.22.2 | 2026-03-03 | Extensive state parsing, hook, and multi-runtime installer fixes | +| 1.22.1 | 2026-03-02 | Discuss phase loads prior context before identifying gray areas | +| 1.22.0 | 2026-02-27 | Codex multi-agent support and code-aware discuss phase added | +| 1.21.1 | 2026-02-27 | Test suite, CI pipeline, and cross-platform bug fixes | +| 1.21.0 | 2026-02-25 | YAML frontmatter sync, Codex runtime, and auto-advance improvements | +| 1.20.6 | 2025-02-23 | Context monitor, Nyquist validation, and installer modularization | +| 1.20.5 | 2026-02-19 | Health repair backup and subagent context loading improvements | +| 1.20.4 | 2026-02-17 | Executor now updates ROADMAP and REQUIREMENTS after each plan | +| 1.20.3 | 2026-02-16 | Milestone audit hardened with three-source cross-reference | +| 1.20.2 | 2026-02-16 | Requirements tracking chain and verifier cross-reference fixes | +| 1.20.1 | 2026-02-16 | Auto-mode survives context compaction via persisted config | +| 1.20.0 | 2026-02-15 | Health command, auto-advance chain, and quick-task full flag | +| 1.19.2 | 2026-02-15 | User-level defaults, per-agent model overrides, and phase fixes | +| 1.19.1 | 2026-02-15 | Auto-advance pipeline and deterministic roadmap progress counts | +| 1.19.0 | 2026-02-15 | Brave Search integration, issue templates, and routing fixes | +| 1.18.0 | 2026-02-08 | Auto flag for new-project and Windows hook fixes | +| 1.17.0 | 2026-02-08 | gsd-tools verification suite, frontmatter CRUD, and state progression | +| 1.16.0 | 2026-02-08 | Ten new gsd-tools CLI commands replacing manual AI orchestration | +| 1.15.0 | 2026-02-08 | Token reduction via optimized workflow context loading | +| 1.14.0 | 2026-02-08 | Context-optimizing parse commands and installer JSONC fix | +| 1.13.0 | 2026-02-08 | History digest, phases list, and structured gsd-tools commands | +| 1.12.1 | 2026-02-08 | Consolidated workflow initialization for reduced token usage | +| 1.12.0 | 2026-02-07 | Thin orchestrator pattern and centralized gsd-tools utility | +| 1.11.2 | 2026-02-05 | Security hardening and critical API key commit prevention | +| 1.11.1 | 2026-01-31 | Git branching strategy config and context compliance verification | +| 1.10.1 | 2025-01-30 | Gemini CLI agent loading error fix | +| 1.10.0 | 2026-01-29 | Native Gemini CLI support and context bar scaling fix | +| 1.9.12 | 2025-01-23 | Removed whats-new command, restored auto-release workflow | +| 1.9.11 | 2026-01-23 | Switched to manual npm publish, fixed Discord badge | +| 1.9.10 | 2026-01-23 | Discord community link added to installer completion | +| 1.9.9 | 2026-01-23 | Added join-discord command for community access | +| 1.9.8 | 2025-01-22 | Uninstall flag and context file detection fix | +| 1.9.7 | 2026-01-22 | OpenCode XDG config path and command structure fixes | +| 1.9.6 | 2026-01-22 | Interactive runtime selection and native OpenCode support | +| 1.9.5 | 2025-01-22 | MCP tool access fix and installer cancellation handling | +| 1.9.4 | 2026-01-21 | Checkpoint automation enforces automation-first principle | +| 1.9.2 | 2025-01-21 | Removed overengineered Codebase Intelligence System | +| 1.9.0 | 2025-01-20 | Model profiles and workflow settings command added | +| 1.8.0 | 2026-01-19 | Uncommitted planning mode via config flag | +| 1.7.1 | 2026-01-19 | Fix quick task file naming to use numbered prefix | +| 1.7.0 | 2026-01-19 | Quick Mode for small ad-hoc tasks without optional agents | +| 1.6.4 | 2026-01-17 | Fix WSL2 install, file verification, and orphaned hook cleanup | +| 1.6.3 | 2025-01-17 | Add --gaps-only flag for execute-phase gap closure | +| 1.6.2 | 2025-01-17 | README restructured around clearer six-step workflow | +| 1.6.1 | 2025-01-17 | Installer clean install and update confirmation flow | +| 1.6.0 | 2026-01-17 | Unify new-milestone flow; remove four discrete commands | +| 1.5.30 | 2026-01-17 | Fix output template markdown and next-step routing | +| 1.5.29 | 2025-01-16 | Domain-aware discuss-phase; fix Windows hooks and notifications | +| 1.5.28 | 2026-01-16 | Consolidate milestone workflow; remove execute-plan command | +| 1.5.27 | 2026-01-16 | Fix uncommitted orchestrator corrections between executor waves | +| 1.5.26 | 2026-01-16 | Fix revised plans left uncommitted after checker feedback | +| 1.5.25 | 2026-01-16 | Fix stop-hook stale state and researcher CONTEXT.md loading | +| 1.5.24 | 2026-01-16 | Fix stop-hook STATE.md parsing and planner file loading | +| 1.5.23 | 2025-01-16 | Add cross-platform completion notification; fix phase naming | +| 1.5.22 | 2025-01-16 | Add statusline update indicator; fix planner ROADMAP.md update | +| 1.5.21 | 2026-01-16 | Unified new-project flow with brand system and research synthesizer | +| 1.5.20 | 2026-01-16 | Remove premature research-skip logic from roadmap/planner | +| 1.5.19 | 2026-01-16 | Redesign discuss-phase with intelligent gray area analysis | +| 1.5.18 | 2026-01-16 | Add plan verification loop with planner, checker, and revise cycle | +| 1.5.17 | 2026-01-15 | Add /gsd:update command for in-place version management | +| 1.5.16 | 2026-01-15 | Add researcher, debugger, and codebase-mapper specialist agents | +| 1.5.15 | 2025-01-15 | Fix missing agents/ folder in npm package | +| 1.5.14 | 2025-01-15 | Fix plan-phase routing to execute-phase for single-plan phases | +| 1.5.13 | 2026-01-15 | Fix new-milestone to present research and requirements equally | +| 1.5.12 | 2025-01-15 | Rework milestone cycle for proper requirements flow | +| 1.5.11 | 2025-01-15 | Verifier reuses previous must-haves on re-verification | +| 1.5.10 | 2025-01-15 | Milestone audit reads existing VERIFICATION.md files | +| 1.5.9 | 2025-01-15 | Add milestone audit system with parallel verification agents | +| 1.5.8 | 2025-01-15 | Add verification loop with automatic gap-fix execution | +| 1.5.7 | 2025-01-15 | Add gsd-executor and gsd-verifier goal-backward subagents | +| 1.5.6 | 2025-01-15 | Separate README flow steps; fix phase metadata commit bundling | +| 1.5.5 | 2025-01-15 | Reorganize README commands into seven grouped tables | +| 1.5.4 | 2025-01-15 | Research phase loads REQUIREMENTS.md for focused research | +| 1.5.3 | 2025-01-15 | Add execute-phase narration; offer two new-project paths | +| 1.5.2 | 2026-01-15 | Add requirements traceability with REQ-ID to phase mapping | +| 1.5.1 | 2026-01-14 | Research agents write output files directly instead of returning | +| 1.5.0 | 2026-01-14 | Add research-project and define-requirements pre-roadmap commands | +| 1.4.29 | 2026-01-14 | Deleted obsolete archive and status commands | +| 1.4.28 | 2026-01-14 | Restored checkpoint docs; fixed execute-plan continuation pattern | +| 1.4.27 | 2025-01-14 | Restored next-step routing after plan/phase execution | +| 1.4.26 | 2026-01-14 | Backfilled full changelog history from git | +| 1.4.25 | 2026-01-14 | Added whats-new command and VERSION tracking | +| 1.4.24 | 2026-01-14 | Added USER-SETUP.md; removed ISSUES.md system (breaking) | +| 1.4.23 | 2026-01-14 | Removed dead ISSUES.md system code | +| 1.4.22 | 2026-01-14 | Added subagent isolation for debug; fixed DEBUG_DIR constant | +| 1.4.21 | 2026-01-14 | Fixed SlashCommand tool missing from plan-fix allowed-tools | +| 1.4.20 | 2026-01-14 | Fixed debug file naming and execute-plan invocation | +| 1.4.19 | 2026-01-14 | Auto-diagnose issues instead of prompting choice in plan-fix | +| 1.4.18 | 2026-01-14 | Added parallel diagnosis before plan-fix execution | +| 1.4.17 | 2026-01-14 | Redesigned verify-work as conversational UAT with persistent state | +| 1.4.16 | 2026-01-13 | Added pre-execution summary and pre-computed wave numbers | +| 1.4.15 | 2026-01-13 | Added context rot explanation to README header | +| 1.4.14 | 2026-01-13 | YOLO mode now recommended default in new-project | +| 1.4.13 | 2026-01-13 | Fixed brownfield docs; removed deprecated resume-task references | +| 1.4.12 | 2026-01-13 | execute-phase promoted as primary execution command | +| 1.4.11 | 2026-01-13 | Checkpoints now use fresh continuation agents instead of resume | +| 1.4.10 | 2026-01-13 | execute-plan converted to orchestrator pattern for performance | +| 1.4.9 | 2026-01-13 | Removed subagent-only context; fixed discuss-phase scope question | +| 1.4.8 | 2026-01-13 | Restored TDD reasoning explanation to plan-phase docs | +| 1.4.7 | 2026-01-13 | Added project state loading; parallel execution marked recommended | +| 1.4.6 | 2026-01-13 | Added checkpoint pause/resume and deviation rules to execute-phase | +| 1.4.5 | 2026-01-13 | Added parallel-first planning, checkpoint-resume, and rules directory | +| 1.4.4 | 2026-01-13 | Fixed inline listing for multiple active debug sessions | +| 1.4.3 | 2026-01-13 | Added /gsd:debug command for systematic persistent debugging | +| 1.4.2 | 2026-01-13 | Fixed installation verification step clarification | +| 1.4.1 | 2026-01-13 | Added parallel phase execution, status command, and wave-based planning | +| 1.4.0 | 2026-01-12 | Full parallel phase execution system with dependency scheduling | +| 1.3.34 | 2026-01-11 | Added /gsd:add-todo and /gsd:check-todos for mid-session capture | +| 1.3.33 | 2026-01-11 | Fixed zero-padding for decimal phase numbers; removed .claude-plugin | +| 1.3.32 | 2026-01-10 | Added /gsd:resume-task for resuming interrupted subagent executions | +| 1.3.31 | 2026-01-08 | Added planning principles for security, performance, observability | +| 1.3.30 | 2026-01-08 | verify-work option surfaces after plan execution | +| 1.3.29 | 2026-01-08 | Added /gsd:verify-work, /gsd:plan-fix, and UAT issues template | +| 1.3.28 | 2026-01-07 | Added --config-dir argument and /gsd:remove-phase command | +| 1.3.27 | 2026-01-07 | Added permissions docs; enforced verification before completion routing | +| 1.3.26 | 2026-01-06 | Added marketplace plugin support; fixed phase artifact commits | +| 1.3.25 | 2026-01-06 | Fixed milestone discussion context persisting across /clear | +| 1.3.24 | 2026-01-06 | Added CLAUDE_CONFIG_DIR environment variable support | +| 1.3.23 | 2026-01-06 | Added non-interactive install flags for Docker/CI | +| 1.3.22 | 2026-01-05 | Removed unused auto.md command | +| 1.3.21 | 2026-01-05 | TDD features now use dedicated plans for full context quality | +| 1.3.20 | 2026-01-05 | Added per-task atomic commits for better AI observability | +| 1.3.19 | 2026-01-05 | Clarified create-milestone.md file locations with explicit instructions | +| 1.3.18 | 2026-01-05 | Added YAML frontmatter schema with dependency graph metadata | +| 1.3.17 | 2026-01-04 | Clarified depth controls compression not inflation in planning | +| 1.3.16 | 2026-01-04 | Added depth parameter for planning thoroughness (--depth=1-5) | +| 1.3.15 | 2026-01-01 | Fixed TDD reference loaded directly in commands | +| 1.3.14 | 2025-12-31 | Added TDD integration with detection, annotation, and execution flow | +| 1.3.13 | 2025-12-29 | Restored deterministic bash commands; removed redundant decision_gate | +| 1.3.12 | 2025-12-29 | Restored plan-format.md as output template | +| 1.3.11 | 2025-12-29 | 70% context reduction across plan-phase workflow files | +| 1.3.10 | 2025-12-29 | Fixed explicit plan count check in offer_next step | +| 1.3.9 | 2025-12-27 | Added evolutionary PROJECT.md system with incremental updates | +| 1.3.8 | 2025-12-18 | Added brownfield/existing projects section in README | +| 1.3.7 | 2025-12-18 | Fixed incremental codebase map updates | +| 1.3.6 | 2025-12-18 | Added file paths to codebase mapping output | +| 1.3.5 | 2025-12-17 | Removed arbitrary 100-line limit from codebase mapping | +| 1.3.4 | 2025-12-17 | Fixed inline code for Next Up commands | +| 1.3.3 | 2025-12-17 | Fixed existing project detection to check PROJECT.md | +| 1.3.2 | 2025-12-17 | Added git commit step to map-codebase workflow | +| 1.3.1 | 2025-12-17 | Added /gsd:map-codebase documentation in help and README | +| 1.3.0 | 2025-12-17 | Added /gsd:map-codebase command for brownfield project analysis | +| 1.2.13 | 2025-12-17 | Improved continuation UI with context and visual hierarchy | +| 1.2.12 | 2025-12-17 | Fix first question to use freeform input | +| 1.2.11 | 2025-12-17 | Fix permission errors for non-DSP users | +| 1.2.10 | 2025-12-16 | Replace inline command invocation with clear-then-paste pattern | +| 1.2.9 | 2025-12-16 | Fix git init to run in current directory | +| 1.2.8 | 2025-12-16 | Derive phase count from work scope | +| 1.2.7 | 2025-12-16 | Mandate AskUserQuestion for all exploration questions | +| 1.2.6 | 2025-12-16 | Internal refactoring | +| 1.2.5 | 2025-12-16 | Add if-mode tags for yolo/interactive branching | +| 1.2.4 | 2025-12-16 | Update stale CONTEXT.md references to new vision structure | +| 1.2.3 | 2025-12-16 | Remove enterprise language from help and discuss-milestone | +| 1.2.2 | 2025-12-16 | Fix new-project completion presented inline | +| 1.2.1 | 2025-12-16 | Restore AskUserQuestion for decision gate in questioning flow | +| 1.2.0 legacy | 2025-12-15 | Implement research workflow as Claude Code context injection | +| 1.1.2 | 2025-12-15 | Fix YOLO mode to skip confirmation gates in plan-phase | +| 1.1.1 | 2025-12-15 | Add README documentation for research workflow | +| 1.1.0 | 2025-12-15 | Add pre-roadmap research workflow and new commands | +| 1.0.11 | 2025-12-15 | Add research-phase command for niche domain discovery | +| 1.0.10 | 2025-12-15 | Fix scope creep prevention in discuss-phase | +| 1.0.9 | 2025-12-15 | Add phase CONTEXT.md loading in plan-phase | +| 1.0.8 | 2025-12-15 | Include PLAN.md in phase completion commits | +| 1.0.7 | 2025-12-15 | Add path replacement for local installs | +| 1.0.6 | 2025-12-15 | Internal improvements | +| 1.0.5 | 2025-12-15 | Add global/local install prompt; fix bin path and .DS_Store | +| 1.0.4 | 2025-12-15 | Fix bin name and remove circular dependency | +| 1.0.3 | 2025-12-15 | Add TDD guidance in planning workflow | +| 1.0.2 | 2025-12-15 | Add issue triage system to prevent deferred pile-up | +| 1.0.1 | 2025-12-15 | Initial npm package release | +| 1.0.0 | 2025-12-14 | Initial release of GSD Core meta-prompting system | + +--- + +## Release history + +Stable and patch releases, newest first. + +### 1.42.3 — — +- Codex CLI 0.130.0 compatibility restored: installer writes `~/.codex/skills/gsd-/SKILL.md` for every command; the previous build left zero routable entrypoints. +- `runtime-slash.cjs` introduced: emits `/gsd-` for skills-based runtimes and `$gsd-` for Codex; the deprecated colon form is no longer emitted at runtime. +- `check.ship-ready` git and gh probes now use `execFileSync` with argv arrays, closing a shell-injection class through malicious branch names. +- `init.plan-phase` surfaces `phase_status`; plan-phase short-circuits on `Complete` status to prevent accidental re-planning over shipped code. +- W006/W007 health warnings skip archived and future phases; executor agents are forbidden from `git stash` to preserve worktree isolation. + +### 1.42.1 — 2026-05-15 +- **Fixed:** `/gsd-discuss-phase` and `/gsd-plan-phase` first-touch creation now apply `project_code` prefix consistently, eliminating two-headed phase directory naming. (#3287) +- **Fixed:** `buildStateFrontmatter` counts nested `plans/` files, preventing progress counters from being silently overwritten downward on every state mutation. (#3261) + +### 1.41.0 — 2026-05-07 +- **Fixed:** Atomic writes in `scripts/build-hooks.js` eliminate a race condition that caused installed shell hooks to be observed empty, blocking release CI. (#3190) +- **Fixed:** Homebrew Cellar node paths normalized to stable symlinks, preventing `dyld: Library not loaded` errors after `brew upgrade node`. (#3181) +- **Added:** Six namespace meta-skills with two-stage hierarchical routing cut cold-start system-prompt token overhead from ~2,150 to ~120. (#2792) +- **Added:** `--minimal` install flag writes only core skills, reducing cold-start overhead to ~700 tokens for constrained-context deployments. (#2762) + +### 1.39.1 — 2026-05-01 +- **Fixed:** `gsd-sdk query agent-skills` emits the raw `` block instead of a JSON-quoted string, restoring subagent skill injection. (#2917) +- **Fixed:** `help.md` updated to reflect eight slash commands removed in the #2824 consolidation; unknown-command errors eliminated. (#2954) +- **Fixed:** `--sdk` install on Windows writes callable `gsd-sdk.cmd`, `.ps1`, and Bash shim triples so the binary resolves across all shells. (#2962) + +### 1.38.5 — 2026-04-25 +- **Fixed:** SDK executor agents write `SUMMARY.md` to `.planning/phases/{phase}/` instead of the project root. + +### 1.38.4 — 2026-04-25 +- **Fixed:** SDK loads complete installed agent definitions at runtime instead of stripped-down bundled copies (~17% of real content). +- **Fixed:** SDK executor receives actual plan content; verification reads `VERIFICATION.md` status rather than trusting session exit code alone. +- **Removed:** 13 drifted bundled SDK prompt files deleted; SDK now loads installed agents directly. +- **Added:** `/gsd-map-codebase` (arch focus) produces a richer `ARCHITECTURE.md` with ASCII diagrams, component tables, and data-flow traces. (#2500) + +### 1.38.2 — 2026-04-19 +- **Fixed:** SDK decoupled from build-from-source install; ships as prebuilt `sdk/dist/` inside the parent tarball, eliminating PATH and exec-bit issues. (#2441, #2453) +- **Added:** `/gsd-ingest-docs` command bootstraps or merges a full `.planning/` setup from mixed ADRs, PRDs, SPECs, and DOCs in a single pass. (#2387) +- **Fixed:** `gsd-read-injection-scanner` hook included in the build allowlist and ships to users; was silently omitted since 1.37.0. (#2406) + +### 1.37.1 — 2026-04-17 +- **Fixed:** UI-phase researcher loads sketch findings skills, preventing repeated questions already answered during `/gsd-sketch`. + +### 1.37.0 — 2026-04-17 +- **Added:** `/gsd-spike` and `/gsd-sketch` first-class commands for feasibility spiking and UI design sketching with full GSD planning integration. +- **Added:** `/gsd-spec-phase` Socratic spec refinement with ambiguity scoring; produces a SPEC.md with falsifiable requirements before planning begins. (#2213) +- **Added:** `gsd-read-injection-scanner` PostToolUse hook scans for prompt injection in read file contents. (#2201) +- **Fixed:** Shell hooks falsely flagged as stale on every session; version headers now installed and detected in bash comment syntax. (#2136) + +### 1.36.0 — 2026-04-14 +- **Added:** `@opengsd/gsd-sdk` query layer Phases 1 & 2 — `gsd-sdk query` replaces raw `gsd-tools.cjs` calls with a supported, registry-backed CLI. (#2118, #2122) +- **Added:** `/gsd-graphify` knowledge graph integration for richer context connections between planning artifacts. (#2164) +- **Fixed:** Init ignores archived phases from prior milestones that share a phase number. (#2186) +- **Fixed:** Codex install hardened: strict TOML validation, atomic writes, legacy hook format auto-migration, and `~/.claude/` path elimination. (#2760, #2637) + +### 1.35.0 — 2026-04-10 +- **Added:** Cline, CodeBuddy, and Qwen Code runtime support via rules-based and skills-based install paths. (#1605) +- **Added:** `/gsd-from-gsd2` reverse migration from GSD-2 `.gsd/` format back to v1 `.planning/` format with `--dry-run` and `--force` flags. +- **Added:** Statusline surfaces GSD milestone, phase, and status when no active todo is present. (#628) +- **Fixed:** `normalizePhaseName` preserves letter suffix case (e.g., `1a`, `2B`). (#1963) + +### 1.34.2 — 2026-04-06 +- **Changed:** `engines.node` minimum restored to `>=22.0.0`; Node 22 Active LTS support preserved and CI matrix covers both Node 22 and 24. + +### 1.34.1 — 2026-04-06 +- **Fixed:** Catchup publish — v1.33.0 and v1.34.0 were tagged but never published to npm; all changes now available via the registry. + +### 1.34.0 — 2026-04-06 +- **Added:** Gates taxonomy reference — four canonical gate types (pre-flight, revision, escalation, abort) wired into plan-checker and verifier agents. (#1781) +- **Added:** Post-merge hunk verification in `reapply-patches` detects silently dropped hunks after three-way merge. (#1775) +- **Fixed:** Shell hooks (`hooks/*.sh`) included in npm tarball; were previously excluded by an overly narrow allowlist. (#1852, #1862) + +### 1.33.0 — 2026-04-05 +- **Added:** Queryable codebase intelligence system — persistent `.planning/intel/` store with structured JSON; query via `gsd-tools intel` subcommands. (#1688) +- **Added:** Typed contribution templates — separate Bug, Enhancement, and Feature issue/PR templates with approval gates. (#1673) +- **Fixed:** `MODEL_ALIAS_MAP` updated to current Claude model IDs (`claude-opus-4-6`, `claude-sonnet-4-6`, `claude-haiku-4-5`). (#1691) +- **Fixed:** Cross-platform planning lock replaces shell `sleep` with `Atomics.wait` for Windows compatibility. (#1693) + +### 1.32.0 — 2026-04-04 +- **Added:** Trae, Kilo, Augment, and Cline runtime support; `state validate`, `state sync`, and `state planned-phase` commands. (#1566, #1627) +- **Added:** `--to N` flag for autonomous mode, `--power` flag for discuss-phase, `/gsd-analyze-dependencies`, and research gate blocking planning on unresolved questions. (#1644, #1513, #1607, #1618) +- **Fixed:** Phase resolution prefix collision — `find-phase` uses exact token matching; `1009` no longer matches `1009A`. (#1635) +- **Fixed:** Parallel worktree STATE.md overwrites resolved; orchestrator exclusively owns STATE.md and ROADMAP.md writes. (#1599) + +### 1.31.0 — 2026-04-01 +- **Added:** Claude Code 2.1.88+ skills migration — commands install as `skills/gsd-*/SKILL.md`; legacy directory auto-cleaned on install. +- **Added:** `/gsd:docs-update`, `/gsd:secure-phase`, `--chain` flag for discuss-phase, and `--only N` flag for autonomous mode. +- **Fixed:** Infinite self-discuss loop in auto/headless mode fixed via `max_discuss_passes` config; three-way merge never-skip invariant enforced for reapply-patches. +- **Fixed:** ROADMAP.md Plans column, decimal phase commit regex, and verifier human-needed status all corrected. + +### 1.30.0 — 2026-03-26 +- **Added:** Headless TypeScript SDK (`gsd-sdk`) with `init` and `auto` CLI commands for autonomous project execution. +- **Added:** Optional SDK installation via `--sdk` flag during setup. + +### 1.29.0 — 2026-03-25 +- **Added:** Windsurf runtime support, agent skill injection via `agent_skills` config, and security scanning CI workflows. +- **Added:** Portuguese, Korean, and Japanese documentation. +- **Fixed:** Numerous parser, hook, config, and Windows robustness issues across multiple subsystems. + +### 1.28.0 — 2026-03-22 +- **Added:** Workstream namespacing for parallel milestone work, multi-project workspace commands, and `/gsd:forensics` post-mortem workflow. +- **Added:** Temp file reaper, `--reviews` flag for plan-phase, and text mode support. +- **Fixed:** Windows 8.3 path failures, worktree isolation, path traversal prevention, and pipe truncation. + +### 1.27.0 — 2026-03-20 +- **Added:** Advisor mode for discuss-phase, Cursor CLI runtime support, and seven new slash commands including `/gsd:fast`, `/gsd:review`, and `/gsd:pr-branch`. +- **Added:** Centralized `security.cjs` module with path traversal prevention, prompt injection detection, and safe JSON parsing. +- **Fixed:** Path traversal in `readTextArgOrFile`, Codex config corruption, STATE.md parsing regressions, and Windows HOME sandboxing. + +### 1.26.0 — 2026-03-18 +- **Added:** Developer profiling pipeline via `/gsd:profile-user` generating `USER-PROFILE.md` and `CLAUDE.md` profile sections. +- **Added:** `/gsd:ship` for PR creation from verified phase work, `/gsd:next` for automatic workflow advancement, and structured session handoff via `HANDOFF.json`. +- **Added:** Verification debt tracking with cross-phase health checks, `status: partial`, `result: blocked`, and persistent `HUMAN-UAT.md` files. +- **Fixed:** Phantom `/gsd:transition` command replaced, PROJECT.md drift corrected, and hook lifecycle issues resolved. + +### 1.25.0 — 2026-03-16 +- **Added:** Antigravity AI runtime support, `/gsd:do` natural language router, and `/gsd:note` for zero-friction idea capture. +- **Added:** New `docs/` directory with feature, architecture, agent, command, CLI, and configuration guides. +- **Fixed:** Antigravity `processAttribution` missing from skill copy, health check CWD guard, and stats command reporting. + +### 1.24.0 — 2026-03-15 +- **Added:** `--research` flag for `/gsd:quick`, `inherit` model profile for OpenCode, and persistent debug knowledge base appended to `.planning/debug/knowledge-base.md`. +- **Fixed:** ROADMAP searches scoped to current milestone, OpenCode agent frontmatter conversion, Windows installer EPERM crash, and absolute paths in `gsd-tools.cjs`. + +### 1.23.0 — 2026-03-15 +- **Added:** `/gsd:ui-phase` and `/gsd:ui-review` for UI design contracts and visual audits; `/gsd:stats` project statistics dashboard; Copilot CLI runtime support. +- **Added:** Node repair operator for autonomous recovery on task verification failure, configurable via `workflow.node_repair_budget`. +- **Fixed:** Auto-advance no longer triggers without `--auto`, decimal phase number padding, and WSL/Windows Node.js mismatch detection. + +### 1.22.4 — 2026-03-03 +- **Added:** `--discuss` flag for `/gsd:quick` to gather context before quick tasks. +- **Fixed:** Windows `@file:` protocol resolution for large init payloads exceeding 50 KB. + +### 1.22.3 — 2026-03-03 +- **Added:** Verify-work auto-injects a cold-start smoke test for phases modifying server, database, or startup files. +- **Changed:** `depth` setting renamed to `granularity` with `coarse`/`standard`/`fine` values; existing config auto-migrated. +- **Fixed:** Installer replaces `$HOME/.claude/` paths correctly for non-Claude runtimes. + +### 1.22.2 — 2026-03-03 +- **Fixed:** Codex installer no longer duplicates `[features]` and `[agents]` sections on re-install. +- **Fixed:** State parsing, hook lifecycle, phase counting, multi-runtime config detection, and regex escaping corrected across numerous subsystems. +- **Changed:** Anti-heredoc instruction extended to all file-writing agents; agent definitions include skills frontmatter. + +### 1.22.1 — 2026-03-02 +- **Added:** Discuss phase loads PROJECT.md, REQUIREMENTS.md, STATE.md, and prior CONTEXT.md files before identifying gray areas. +- **Fixed:** Shell snippets use `printf` instead of `echo` to prevent jq parse errors with special characters. + +### 1.22.0 — 2026-02-27 +- **Added:** Codex multi-agent support with `request_user_input` mapping and agent role generation. +- **Added:** Code-aware discuss phase — `/gsd:discuss-phase` scouts relevant source files before asking questions. +- **Fixed:** Update checker cache clearing, statusline migration regex, subagent path expansion, and config loading for `model_overrides` and `nyquist_validation`. + +### 1.21.1 — 2026-02-27 +- **Testing:** 428 tests across 13 files; 9-matrix CI (3 OS × 3 Node); cross-platform test runner added. +- **Fixed:** `getMilestoneInfo()` wrong version when shipped milestones collapsed in `
` blocks. +- **Fixed:** Milestone stats scoped to current milestone only; MILESTONES.md inserts newest-first. +- **Fixed:** Cross-platform path separators, Windows JSON quoting, and model override resolution. + +### 1.21.0 — 2026-02-25 +- **Added:** YAML frontmatter sync to STATE.md; `/gsd:add-tests` command; Codex runtime support. +- **Changed:** Installer suggests `/gsd:new-project`; requirements propagate `phase_req_ids` to agents. +- **Fixed:** Multi-level decimal phase regex, progress bar RangeError, STATE.md decision corruption. + +### 1.20.6 — 2025-02-23 +- **Added:** Context window monitor with WARNING/CRITICAL alerts; Nyquist validation in plan-phase pipeline. +- **Changed:** Installer refactored into 11 domain modules. +- **Fixed:** Auto-advance chain, Gemini CLI TOML conversion, universal phase number parsing. + +### 1.20.5 — 2026-02-19 +- **Fixed:** `/gsd:health --repair` creates a timestamped backup before regenerating STATE.md. +- **Changed:** Subagents discover and load project CLAUDE.md and skills at spawn time. + +### 1.20.4 — 2026-02-17 +- **Fixed:** Executor agents update ROADMAP.md and REQUIREMENTS.md after each plan completes. +- **Added:** `requirements mark-complete` CLI command for per-plan requirement tracking. + +### 1.20.3 — 2026-02-16 +- **Fixed:** Milestone audit cross-references three independent sources instead of single-source checks. +- **Fixed:** Orphaned requirements forced to `unsatisfied`; `complete-milestone` gates on requirements completion. +- **Fixed:** `plan-milestone-gaps` updates REQUIREMENTS.md traceability table and includes it in commit. + +### 1.20.2 — 2026-02-16 +- **Fixed:** Requirements tracking strips bracket syntax; verifier cross-references PLAN frontmatter requirement IDs. +- **Changed:** All requirements references enforce MUST/REQUIRED/CRITICAL language; plan checker now fails (blocking) on missing requirements. + +### 1.20.1 — 2026-02-16 +- **Fixed:** Auto-mode survives context compaction by persisting `workflow.auto_advance` to config.json on disk. +- **Fixed:** Checkpoints no longer block auto-mode; plan-phase passes `--auto` to execute-phase. + +### 1.20.0 — 2026-02-15 +- **Added:** `/gsd:health` command with `--repair` flag; `--full` flag for `/gsd:quick`; `--auto` flag wired through full phase chain. +- **Fixed:** Plans created without user context now warn; OpenCode subagent type conversion; phase directories tracked via `.gitkeep`. + +### 1.19.2 — 2026-02-15 +- **Added:** User-level defaults via `~/.gsd/defaults.json`; per-agent model overrides. +- **Fixed:** OpenCode local installs write to `./.opencode/`; large JSON payloads write to temp files; executor scope boundary and attempt limit added. + +### 1.19.1 — 2026-02-15 +- **Added:** Auto-advance pipeline — `--auto` flag chains discuss → plan → execute without stopping. +- **Fixed:** Phase transition routes to `discuss-phase` when no CONTEXT.md exists; ROADMAP progress counts computed from disk deterministically. + +### 1.19.0 — 2026-02-15 +- **Added:** Brave Search integration for researchers; GitHub issue templates and security policy. +- **Fixed:** UAT gaps auto-resolve after gap-closure execution; ROADMAP fallback when phase directory missing; `{phase_num}` replaces ambiguous `{phase}`. + +### 1.18.0 — 2026-02-08 +- **Added:** `--auto` flag for `/gsd:new-project` runs research → requirements → roadmap automatically. +- **Fixed:** Windows SessionStart hook spawns detached process; research decision persists to config.json. + +### 1.17.0 — 2026-02-08 +- **Added:** gsd-tools verification suite (6 verify commands), frontmatter CRUD, template fill, and state progression commands. +- **Added:** Local patch preservation — installer backs up modified GSD files to `gsd-local-patches/`; `/gsd:reapply-patches` command added. +- **Changed:** Agents use gsd-tools for state updates and verification instead of manual markdown parsing. + +### 1.16.0 — 2026-02-08 +- **Added:** 10 new gsd-tools CLI commands covering phase add/insert/remove/complete, roadmap analyze, milestone complete, validate, progress, todo complete, and scaffold. +- **Changed:** Workflows delegate deterministic operations to gsd-tools, reducing token usage; execute-phase spawns `gsd-executor` subagents correctly. + +### 1.15.0 — 2026-02-08 +- **Changed:** Optimized workflow context loading eliminates redundant file reads, saving ~5,000–10,000 tokens per execution. + +### 1.14.0 — 2026-02-08 +- **Added:** Context-optimizing gsd-tools commands (`phase-plan-index`, `state-snapshot`, `summary-extract`) returning structured JSON. +- **Fixed:** Installer no longer deletes opencode.json on JSONC parse errors; handles comments, trailing commas, and BOM. + +### 1.13.0 — 2026-02-08 +- **Added:** `history-digest`, `phases list`, `roadmap get-phase`, `phase next-decimal`, `state get/patch`, and `template select` gsd-tools commands. +- **Changed:** Planner uses two-step context assembly; agents migrated from bash patterns to structured gsd-tools commands. + +### 1.12.1 — 2026-02-08 +- **Changed:** Workflow initialization consolidated into compound `init` commands; 24 files updated to use single-call context gathering. + +### 1.12.0 — 2026-02-07 +- **Changed:** Thin orchestrator pattern — commands delegate to workflows, reducing command file size ~75%. +- **Added:** `gsd-tools.cjs` CLI utility with 11 functions replacing repetitive bash patterns across 50+ files. + +### 1.11.2 — 2026-02-05 +- **Fixed (CRITICAL):** Prevent API keys from being committed via `/gsd:map-codebase`. +- **Fixed:** Context fidelity enforced in planning pipeline; executor verifies task completion; parallelization config respected. + +### 1.11.1 — 2026-01-31 +- **Added:** Git branching strategy config with `none`/`phase`/`milestone` options and squash merge at milestone completion. +- **Fixed:** CONTEXT.md from `/gsd:discuss-phase` now flows to all downstream agents. + +### 1.10.1 — 2025-01-30 +- **Fixed:** Gemini CLI agent loading errors that prevented commands from executing. + +### 1.10.0 — 2026-01-29 +- **Added:** Native Gemini CLI support via `--gemini` flag; `--all` flag installs for all three runtimes simultaneously. +- **Fixed:** Context bar now correctly shows 100% at the actual 80% limit. + +### 1.9.12 — 2025-01-23 +- **Removed:** `/gsd:whats-new` command — superseded by `/gsd:update`. +- **Fixed:** Auto-release GitHub Actions workflow restored. + +### 1.9.11 — 2026-01-23 +- **Changed:** Switched to manual npm publish workflow, removing GitHub Actions CI/CD. +- **Fixed:** Discord badge uses static format for reliable rendering. + +### 1.9.10 — 2026-01-23 +- **Added:** Discord community link displayed in installer completion message. + +### 1.9.9 — 2026-01-23 +- **Added:** `/gsd:join-discord` command for quick access to the GSD Discord invite link. + +### 1.9.8 — 2025-01-22 +- **Added:** `--uninstall` flag to cleanly remove GSD from global or local installations. +- **Fixed:** Context file detection matches both `CONTEXT.md` and `{phase}-CONTEXT.md` filename variants. + +### 1.9.7 — 2026-01-22 +- **Fixed:** OpenCode installer uses correct XDG-compliant path `~/.config/opencode/`; permissions written to correct opencode.json location. + +### 1.9.6 — 2026-01-22 +- **Added:** Interactive runtime selection; native OpenCode support via `--opencode` flag; `--both` flag for dual-runtime install. +- **Changed:** Installation flow asks for runtime first, then location. + +### 1.9.5 — 2025-01-22 +- **Fixed:** Subagents can now access MCP tools — workaround for Claude Code bug #13898. +- **Fixed:** Installer Escape/Ctrl+C cancels correctly; Windows hook paths fixed. + +### 1.9.4 — 2026-01-21 +- **Changed:** Checkpoint automation enforces automation-first principle — Claude handles server start, CLI installs, and pre-checkpoint failure recovery before presenting checkpoints. + +### 1.9.2 — 2025-01-21 +- **Removed:** Codebase Intelligence System removed — deleted `/gsd:analyze-codebase`, `/gsd:query-intel`, SQLite graph database, sql.js (21 MB), and all intel hooks. + +### 1.9.0 — 2025-01-20 +- **Added:** Model Profiles via `/gsd:set-profile` for quality/balanced/budget configurations. +- **Added:** `/gsd:settings` command for toggling workflow behaviors interactively. + +### 1.8.0 — 2026-01-19 +- **Added:** `planning.commit_docs: false` config option keeps `.planning/` local-only, not committed to git. +- **Added:** `/gsd:new-project` asks about git tracking during initial setup. + +### 1.7.1 — 2026-01-19 +- **Fixed:** Quick task PLAN and SUMMARY files use numbered prefix (`001-PLAN.md`, `001-SUMMARY.md`) matching regular phase convention. + +### 1.7.0 — 2026-01-19 +- **Added:** `/gsd:quick` executes small ad-hoc tasks with GSD guarantees, skipping optional agents; tasks live in `.planning/quick/`. +- **Changed:** Progress bar clamped to 0–100 range; documentation updated with Quick Mode sections. +- **Fixed:** Windows hook console flash, empty `--config-dir` validation, and stale agent references. + +### 1.6.4 — 2026-01-17 +- **Fixed:** WSL2/non-TTY installation detects non-interactive stdin and falls back to global install. +- **Fixed:** Installation verifies copied files before showing success; orphaned `gsd-notify.sh` hook removed automatically. + +### 1.6.3 — 2025-01-17 +- **Added:** `--gaps-only` flag for `/gsd:execute-phase` executes only gap closure plans, eliminating redundant state discovery. + +### 1.6.2 — 2025-01-17 +- **Changed:** README restructured around a clear six-step workflow: init → discuss → plan → execute → verify → complete. +- **Changed:** Phase directories created at discuss/plan-phase instead of during roadmap creation. + +### 1.6.1 — 2025-01-17 +- **Changed:** Installer performs clean install of GSD folders, removing orphaned files from previous versions. +- **Changed:** `/gsd:update` shows changelog and requests confirmation before updating. + +### 1.6.0 — 2026-01-17 +- **Breaking:** `/gsd:new-milestone` now mirrors `/gsd:new-project` in a single unified flow. +- **Breaking Removed:** `/gsd:discuss-milestone`, `/gsd:create-roadmap`, `/gsd:define-requirements`, `/gsd:research-project` consolidated into project/milestone flows. +- **Added:** `/gsd:verify-work` includes next-step routing after verification completes. + +### 1.5.30 — 2026-01-17 +- **Fixed:** Output templates in `plan-phase`, `execute-phase`, and `audit-milestone` render markdown correctly instead of showing literal backticks. +- **Fixed:** Next-step suggestions consistently recommend `/gsd:discuss-phase` before `/gsd:plan-phase`. + +### 1.5.29 — 2025-01-16 +- **Changed:** Discuss-phase uses domain-aware questioning with deeper probing for gray areas. +- **Fixed:** Windows hooks work via Node.js conversion; blocking notification popups removed on all platforms. + +### 1.5.28 — 2026-01-16 +- **Breaking Removed:** `/gsd:execute-plan` command; use `/gsd:execute-phase` instead. +- **Fixed:** Phase directory matching handles both zero-padded and unpadded folder names. + +### 1.5.27 — 2026-01-16 +- **Fixed:** Orchestrator corrections between executor completions are committed instead of left uncommitted. + +### 1.5.26 — 2026-01-16 +- **Fixed:** Revised plans are committed after checker feedback; previously only initial plans were committed. + +### 1.5.25 — 2026-01-16 +- **Fixed:** Stop notification hook uses session-scoped todos only, eliminating stale project state display. +- **Fixed:** Researcher agent reliably loads CONTEXT.md from discuss-phase. + +### 1.5.24 — 2026-01-16 +- **Fixed:** Stop notification hook correctly parses STATE.md fields instead of always showing "Ready for input". +- **Fixed:** Planner agent reliably loads CONTEXT.md and RESEARCH.md files. + +### 1.5.23 — 2025-01-16 +- **Added:** Cross-platform completion notification hook for Mac, Linux, and Windows. +- **Fixed:** Consistent zero-padding for phase directories; restored `{phase}-{plan}-PLAN.md` naming; fixed researcher double-path git add bug. + +### 1.5.22 — 2025-01-16 +- **Added:** Statusline update indicator shows `⬆ /gsd:update` when a new version is available. +- **Fixed:** Planner updates ROADMAP.md placeholders after planning completes. + +### 1.5.21 — 2026-01-16 +- **Added:** GSD brand system for consistent UI; research synthesizer agent consolidates parallel research into SUMMARY.md. +- **Changed:** `/gsd:new-project` unified into a single command handling questions → research → requirements → roadmap. +- **Fixed:** verify-work checkpoint display, planner naming convention, and research synthesizer commit batching. + +### 1.5.20 — 2026-01-16 +- **Fixed:** Research no longer skipped based on premature "Research: Unlikely" predictions from roadmap creation. +- **Removed:** `Research: Likely/Unlikely` fields and roadmap-based research skip logic from planner. + +### 1.5.19 — 2026-01-16 +- **Changed:** `/gsd:discuss-phase` redesigned with intelligent gray area analysis and multi-select user control; CONTEXT.md template restructured. +- **Changed:** `/gsd:plan-phase` spawns `gsd-phase-researcher` before planning unless research exists or `--skip-research` used. + +### 1.5.18 — 2026-01-16 +- **Added:** Plan verification loop — `gsd-plan-checker` agent validates plans across six dimensions with up to three revision iterations. +- **Added:** Dedicated `gsd-planner` agent (1,319 lines) with full planning methodology and TDD integration. +- **Changed:** `/gsd:plan-phase` refactored to thin orchestrator pattern spawning planner and checker agents. + +### 1.5.17 — 2026-01-15 +- **Added:** `/gsd:update` command to check for updates, install, and display changelog of changes. + +### 1.5.16 — 2026-01-15 +- **Added:** `gsd-researcher` agent with four research modes (ecosystem, feasibility, implementation, comparison). +- **Added:** `gsd-debugger` agent with scientific debugging methodology and seven investigation techniques. +- **Added:** `gsd-codebase-mapper` agent for brownfield codebase analysis. +- **Changed:** `/gsd:research-phase` and `/gsd:research-project` refactored to thin orchestrators spawning `gsd-researcher`. + +### 1.5.15 — 2025-01-15 +- **Fixed:** `agents/` folder (gsd-executor, gsd-verifier, gsd-integration-checker, gsd-milestone-auditor) was missing from npm package; now included. +- **Changed:** `/gsd:plan-fix` consolidated into `/gsd:plan-phase --gaps`. + +### 1.5.14 — 2025-01-15 +- **Fixed:** Plan-phase always routes to `/gsd:execute-phase` after planning, including single-plan phases. + +### 1.5.13 — 2026-01-15 +- **Fixed:** `/gsd:new-milestone` presents research and requirements paths as equal options matching `/gsd:new-project` format. + +### 1.5.12 — 2025-01-15 +- **Changed:** Milestone cycle reworked: `complete-milestone` archives and deletes ROADMAP.md and REQUIREMENTS.md; `new-milestone` becomes a brownfield new-project flow. +- **Fixed:** `MILESTONE-AUDIT.md` versioned and archived on completion; `progress` routes correctly between milestones. + +### 1.5.11 — 2025-01-15 +- **Changed:** Verifier reuses previous must-haves on re-verification and focuses deep checks on failed items only. + +### 1.5.10 — 2025-01-15 +- **Changed:** Milestone audit reads existing phase VERIFICATION.md files instead of re-verifying each phase; adds `tech_debt` status. +- **Fixed:** VERIFICATION.md included in phase completion commit. + +### 1.5.9 — 2025-01-15 +- **Added:** `/gsd:audit-milestone` with parallel verification agents for milestone completion checking. +- **Changed:** Checkpoint display improved with box headers and "YOUR ACTION:" prompts; execute-phase recommends audit-milestone at milestone completion. + +### 1.5.8 — 2025-01-15 +- **Added:** Verification loop: when gaps are found, verifier generates fix plans that execute automatically before re-verifying. + +### 1.5.7 — 2025-01-15 +- **Added:** `gsd-executor` subagent for plan execution and `gsd-verifier` subagent for goal-backward phase verification. +- **Added:** Automatic verification runs when a phase completes to catch stubs and incomplete implementations. + +### 1.5.6 — 2025-01-15 +- **Changed:** README separates flow into distinct numbered steps making `research-project` clearly optional. +- **Fixed:** Phase metadata (timing, wave info) bundled into a single commit. + +### 1.5.5 — 2025-01-15 +- **Changed:** README commands section reorganized into seven grouped tables for easier scanning. +- **Changed:** Context Engineering table updated to include `research/` and `REQUIREMENTS.md`. + +### 1.5.4 — 2025-01-15 +- **Changed:** Research phase loads REQUIREMENTS.md to focus on concrete requirements rather than high-level roadmap descriptions. + +### 1.5.3 — 2025-01-15 +- **Changed:** Execute-phase orchestrator narrates what each wave builds and summarizes after completion. +- **Changed:** New-project offers two paths: research-first or define-requirements directly (fast path). +- **Removed:** Dead `/gsd:status` command, unused `agent-history.md` template, and old `_archive/` directory. + +### 1.5.2 — 2026-01-15 +- **Added:** Requirements traceability with `Requirements:` field in roadmap phases listing covered REQ-IDs. +- **Added:** Plan-phase loads REQUIREMENTS.md and marks requirements complete when phase finishes. +- **Changed:** Workflow preferences gathered in a single prompt instead of three separate questions. + +### 1.5.1 — 2026-01-14 +- **Changed:** Research agents write output files (STACK.md, FEATURES.md, ARCHITECTURE.md, PITFALLS.md) directly instead of returning to orchestrator. + +### 1.5.0 — 2026-01-14 +- **Added:** `/gsd:research-project` spawns parallel agents to investigate stack, features, architecture, and pitfalls pre-roadmap. +- **Added:** `/gsd:define-requirements` transforms research findings into scoped v1 requirements with phase traceability. +- **Breaking:** New project flow is now `new-project → research-project → define-requirements → create-roadmap`. + +### 1.4.29 — 2026-01-14 +- **Removed:** Deleted obsolete `_archive/execute-phase.md` and `status.md` commands. + +### 1.4.28 — 2026-01-14 +- **Fixed:** Restored comprehensive checkpoint documentation with full examples for all three checkpoint types. +- **Fixed:** execute-plan uses fresh continuation agents instead of broken resume pattern. +- **Changed:** execute-phase slimmed to properly delegate checkpoint handling to workflow. + +### 1.4.27 — 2025-01-14 +- **Fixed:** Restored copy/paste-ready next-step routing after plan/phase execution completes. + +### 1.4.26 — 2026-01-14 +- **Added:** Full changelog history backfilled from git (66 historical versions, 1.0.0 to 1.4.23). + +### 1.4.25 — 2026-01-14 +- **Added:** `/gsd:whats-new` command shows changes since installed version; VERSION file and CHANGELOG.md included in package. + +### 1.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 +- **Changed:** Removed dead ISSUES.md system code. + +### 1.4.22 — 2026-01-14 +- **Added:** Subagent isolation for debug investigations with checkpoint support. +- **Fixed:** DEBUG_DIR path constant corrected to prevent typos in debug workflow. + +### 1.4.21 — 2026-01-14 +- **Fixed:** SlashCommand tool added to plan-fix allowed-tools list. + +### 1.4.20 — 2026-01-14 +- **Fixed:** Standardized debug file naming convention and corrected execute-plan invocation in debug workflow. + +### 1.4.19 — 2026-01-14 +- **Fixed:** plan-fix auto-diagnoses issues instead of offering the user a choice. + +### 1.4.18 — 2026-01-14 +- **Added:** Parallel diagnosis runs before plan-fix execution. + +### 1.4.17 — 2026-01-14 +- **Changed:** verify-work redesigned as conversational UAT with persistent state. + +### 1.4.16 — 2026-01-13 +- **Added:** Pre-execution summary for interactive mode in execute-plan. +- **Added:** Wave numbers pre-computed at plan time. + +### 1.4.15 — 2026-01-13 +- **Added:** Context rot explanation added to README header. + +### 1.4.14 — 2026-01-13 +- **Changed:** YOLO mode is now the recommended default in new-project workflow. + +### 1.4.13 — 2026-01-13 +- **Fixed:** Brownfield flow documentation corrected; deprecated resume-task references removed. + +### 1.4.12 — 2026-01-13 +- **Changed:** execute-phase promoted as the recommended primary execution command. + +### 1.4.11 — 2026-01-13 +- **Fixed:** Checkpoints spawn fresh continuation agents instead of using resume. + +### 1.4.10 — 2026-01-13 +- **Changed:** execute-plan converted to orchestrator pattern for improved performance. + +### 1.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 +- **Added:** TDD reasoning explanation restored to plan-phase documentation. + +### 1.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 +- **Added:** Checkpoint pause/resume for spawned agents; deviation rules, commit rules, and workflow references added to execute-phase. + +### 1.4.5 — 2026-01-13 +- **Added:** Parallel-first planning with dependency graphs and checkpoint-resume for long-running phases. +- **Added:** `.claude/rules/` directory for auto-loaded contribution rules. +- **Changed:** execute-phase uses wave-based blocking execution. + +### 1.4.4 — 2026-01-13 +- **Fixed:** Inline listing corrected for multiple active debug sessions. + +### 1.4.3 — 2026-01-13 +- **Added:** `/gsd:debug` command for systematic debugging with persistent state. + +### 1.4.2 — 2026-01-13 +- **Fixed:** Installation verification step clarification. + +### 1.4.1 — 2026-01-13 +- **Added:** Parallel phase execution via `/gsd:execute-phase` with wave-based dependency graphs and `/gsd:status` monitoring. +- **Changed:** `execute-phase.md` renamed to `execute-plan.md`; plan frontmatter extended with wave, depends_on, files_modified, autonomous fields. + +### 1.4.0 — 2026-01-12 +- **Added:** Full parallel phase execution system with dependency analysis and agent history schema v1.2. +- **Changed:** Plans specify wave numbers and dependencies; execute-phase orchestrates subagents in waves. + +### 1.3.34 — 2026-01-11 +- **Added:** `/gsd:add-todo` and `/gsd:check-todos` commands for mid-session idea capture. + +### 1.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 +- **Added:** `/gsd:resume-task` command for resuming interrupted subagent executions. + +### 1.3.31 — 2026-01-08 +- **Added:** Planning principles for security, performance, and observability; pro patterns section in README. + +### 1.3.30 — 2026-01-08 +- **Added:** verify-work option surfaces after plan execution completes. + +### 1.3.29 — 2026-01-08 +- **Added:** `/gsd:verify-work` for conversational UAT validation, `/gsd:plan-fix` for fixing UAT issues, and UAT issues template. + +### 1.3.28 — 2026-01-07 +- **Added:** `--config-dir` CLI argument for multi-account setups and `/gsd:remove-phase` command. +- **Fixed:** Validation for --config-dir edge cases. + +### 1.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 +- **Added:** Claude Code marketplace plugin support. +- **Fixed:** Phase artifacts committed when created. + +### 1.3.25 — 2026-01-06 +- **Fixed:** Milestone discussion context persists across `/clear`. + +### 1.3.24 — 2026-01-06 +- **Added:** `CLAUDE_CONFIG_DIR` environment variable support. + +### 1.3.23 — 2026-01-06 +- **Added:** Non-interactive install flags (`--global`, `--local`) for Docker/CI environments. + +### 1.3.22 — 2026-01-05 +- **Changed:** Removed unused `auto.md` command. + +### 1.3.21 — 2026-01-05 +- **Changed:** TDD features use dedicated plans for full context quality. + +### 1.3.20 — 2026-01-05 +- **Added:** Per-task atomic commits for better AI observability. + +### 1.3.19 — 2026-01-05 +- **Fixed:** Clarified create-milestone.md file locations with explicit instructions. + +### 1.3.18 — 2026-01-05 +- **Added:** YAML frontmatter schema with dependency graph metadata for intelligent context assembly. + +### 1.3.17 — 2026-01-04 +- **Fixed:** Clarified that depth parameter controls compression, not inflation, in planning. + +### 1.3.16 — 2026-01-04 +- **Added:** Depth parameter for planning thoroughness (`--depth=1-5`). + +### 1.3.15 — 2026-01-01 +- **Fixed:** TDD reference loaded directly in commands. + +### 1.3.14 — 2025-12-31 +- **Added:** TDD integration with detection, annotation, and execution flow. + +### 1.3.13 — 2025-12-29 +- **Fixed:** Restored deterministic bash commands; removed redundant `decision_gate`. + +### 1.3.12 — 2025-12-29 +- **Fixed:** Restored `plan-format.md` as the output template. + +### 1.3.11 — 2025-12-29 +- **Changed:** 70% context reduction for plan-phase workflow; merged CLI automation into checkpoints; compressed scope-estimation (74%) and plan-phase.md (66%). + +### 1.3.10 — 2025-12-29 +- **Fixed:** Explicit plan count check added in `offer_next` step. + +### 1.3.9 — 2025-12-27 +- **Added:** Evolutionary PROJECT.md system with incremental updates. + +### 1.3.8 — 2025-12-18 +- **Added:** Brownfield/existing projects section in README. + +### 1.3.7 — 2025-12-18 +- **Fixed:** Improved incremental codebase map updates. + +### 1.3.6 — 2025-12-18 +- **Added:** File paths included in codebase mapping output. + +### 1.3.5 — 2025-12-17 +- **Fixed:** Removed arbitrary 100-line limit from codebase mapping. + +### 1.3.4 — 2025-12-17 +- **Fixed:** Inline code used for Next Up commands to avoid nesting ambiguity. + +### 1.3.3 — 2025-12-17 +- **Fixed:** Existing project detection checks PROJECT.md instead of `.planning/` directory. + +### 1.3.2 — 2025-12-17 +- **Added:** Git commit step added to map-codebase workflow. + +### 1.3.1 — 2025-12-17 +- **Added:** `/gsd:map-codebase` documentation added to help and README. + +### 1.3.0 — 2025-12-17 +- **Added:** `/gsd:map-codebase` command for brownfield project analysis with parallel Explore agent orchestration. +- **Added:** Codebase map templates covering stack, architecture, structure, conventions, testing, integrations, and concerns. +- **Fixed:** Permission errors for non-DSP users removed; first question is now freeform. + +### 1.2.13 — 2025-12-17 +- **Added:** Improved continuation UI with context and visual hierarchy. + +### 1.2.12 — 2025-12-17 +- **Fixed:** First question uses freeform input, not AskUserQuestion. + +### 1.2.11 — 2025-12-17 +- **Fixed:** Permission errors for non-DSP users resolved by removing shell context. + +### 1.2.10 — 2025-12-16 +- **Fixed:** Inline command invocation replaced with clear-then-paste pattern. + +### 1.2.9 — 2025-12-16 +- **Fixed:** Git init runs in the current directory. + +### 1.2.8 — 2025-12-16 +- **Changed:** Phase count derived from work scope, not arbitrary limits. + +### 1.2.7 — 2025-12-16 +- **Fixed:** AskUserQuestion mandated for all exploration questions. + +### 1.2.6 — 2025-12-16 +- **Changed:** Internal refactoring. + +### 1.2.5 — 2025-12-16 +- **Changed:** `` tags added for yolo/interactive branching. + +### 1.2.4 — 2025-12-16 +- **Fixed:** Stale CONTEXT.md references updated to new vision structure. + +### 1.2.3 — 2025-12-16 +- **Fixed:** Enterprise language removed from help and discuss-milestone. + +### 1.2.2 — 2025-12-16 +- **Fixed:** New-project completion presented inline instead of as a question. + +### 1.2.1 — 2025-12-16 +- **Fixed:** AskUserQuestion restored for decision gate in questioning flow. + +### 1.2.0 legacy — 2025-12-15 +- **Changed:** Research workflow implemented as Claude Code context injection. (Renamed from `1.2.0` to avoid colliding with `@opengsd/gsd-core@1.2.0`.) + +### 1.1.2 — 2025-12-15 +- **Fixed:** YOLO mode skips confirmation gates in plan-phase. + +### 1.1.1 — 2025-12-15 +- **Added:** README documentation for the new research workflow. + +### 1.1.0 — 2025-12-15 +- **Added:** Pre-roadmap research workflow with `/gsd:research-phase`, `/gsd:research-project`, and `/gsd:create-roadmap` commands. +- **Changed:** new-project split to create only PROJECT.md and config.json; questioning rewritten as thinking partner. + +### 1.0.11 — 2025-12-15 +- **Added:** `/gsd:research-phase` command for niche domain ecosystem discovery. + +### 1.0.10 — 2025-12-15 +- **Fixed:** Scope creep prevention in discuss-phase command. + +### 1.0.9 — 2025-12-15 +- **Added:** Phase CONTEXT.md loaded in plan-phase command. + +### 1.0.8 — 2025-12-15 +- **Changed:** PLAN.md included in phase completion commits. + +### 1.0.7 — 2025-12-15 +- **Added:** Path replacement for local installs. + +### 1.0.6 — 2025-12-15 +- **Changed:** Internal improvements. + +### 1.0.5 — 2025-12-15 +- **Added:** Global/local install prompt during setup. +- **Fixed:** Bin path corrected (removed `./`); `.DS_Store` ignored. + +### 1.0.4 — 2025-12-15 +- **Fixed:** Bin name corrected and circular dependency removed. + +### 1.0.3 — 2025-12-15 +- **Added:** TDD guidance in planning workflow. + +### 1.0.2 — 2025-12-15 +- **Added:** Issue triage system to prevent deferred issue pile-up. + +### 1.0.1 — 2025-12-15 +- **Added:** Initial npm package release. + +### 1.0.0 — 2025-12-14 +- **Added:** Initial release of the GSD Core meta-prompting system with core slash commands, PROJECT.md/STATE.md templates, phase-based workflow, YOLO mode, and interactive mode with checkpoints. + +--- + +## Pre-release & canary builds + +These `-rc` and `-canary` builds were development previews published under the `next` / `canary` dist-tags during the retired package's lifetime. They were never promoted to stable under these version numbers and are retained here only for historical completeness. Newest first. + +| Version | Summary | +| --- | --- | +| 1.50.0-canary.1 | Vertical MVP / TDD / UAT planning track introduced end-to-end | +| 1.42.0-rc.1 | Package legitimacy gate against slopsquatting; SDK and phase seams deepened | +| 1.40.0-rc.1 | Skill-surface consolidated 86→59; six namespace meta-skills replace flat listing | +| 1.39.0-rc.7 | First RC rolling in post-rc.5 main-branch fixes | +| 1.39.0-rc.6 | Version-bump republish of rc.5; no new content | +| 1.39.0-rc.5 | Codex hooks migrator correctness hardening | +| 1.39.0-rc.4 | Minimal install flag and Codex config.toml corruption fix | + +### 1.50.0-canary.1 +- `/gsd plan-phase --mvp` flag enables vertical-slice planning mode; suppresses horizontal-layer language in favour of user-flow-driven decomposition. +- `/gsd mvp-phase ` new top-level command frames a phase as a vertical MVP slice using "As a / I want to / So that" user stories, with SPIDR splitting for oversized stories. +- Execute-phase MVP+TDD gate requires a `test(-):` commit before each corresponding `feat(...)` commit when both modes are active. +- Verify-work flips UAT script framing under MVP mode: user-flow steps appear before technical correctness checks. +- `/gsd new-project` prompts for Vertical MVP vs Horizontal Layers mode; `/gsd-progress`, `/gsd-stats`, and `/gsd-graphify` gain MVP-mode awareness. + +### 1.42.0-rc.1 +- Three-layer package legitimacy gate added across researcher, planner, and executor agents; closes the path where hallucinated package names could flow undetected into `npm install`. +- Researcher runs `slopcheck install --json` and emits a Package Legitimacy Audit table; packages found only via WebSearch are tagged `[ASSUMED]`, never `[VERIFIED]`. +- Planner inserts `checkpoint:human-verify` tasks before any install tagged `[ASSUMED]` or `[SUS]`. +- SDK package seam deepened: legacy package and install-layout compatibility centralized behind a single module; runtime-global skills policy shared across SDK and CJS callers. +- Phase lifecycle refactored into three extracted modules: Phase Numbering Policy, Phase Filesystem Adapter, and Phase Roadmap Mutation. + +### 1.40.0-rc.1 +- Six namespace meta-skills (`gsd:workflow`, `gsd:project`, `gsd:review`, `gsd:context`, `gsd:manage`, `gsd:ideate`) replace the flat 86-skill listing; drops cold-start overhead from ~2,150 to ~120 tokens. +- Skill surface consolidated from 86 to 59 entries; 31 micro-skills removed with all behaviour preserved via flags on parent commands. +- `/gsd-health --context` utilization guard warns at 60% and raises critical at 70% context-window utilization. +- Gemini slash commands use the correct `/gsd:` namespace form; previous `/gsd-` references were unexecutable in Gemini CLI. +- Phase-lifecycle status-line read-side added: `parseStateMd()` reads `active_phase`, `next_action`, `next_phases`, and `progress` frontmatter fields. + +### 1.39.0-rc.7 +- First 1.39.0 RC to sync `release/1.39.0` with `main`; rc.6 was content-identical to rc.5. +- Added manual canary release workflow publishing `{base}-canary.{N}` builds under the `canary` dist-tag via `workflow_dispatch`. +- `extractCurrentMilestone` no longer truncates ROADMAP.md at heading-like lines inside fenced code blocks. +- `gsd-sdk auto` detects Codex runtime correctly; previously ignored `runtime: codex` and routed through the Claude SDK, producing `[FAILED] $0.00 0.1s`. +- `find-phase` returns `null` for archived phases; previously returned the prior-milestone directory, causing wrong-phase work. + +### 1.39.0-rc.6 +- rc.6 is a content-identical republish of rc.5; `release/1.39.0` was bumped without first being merged with `main`. +- The single commit between rc.5 and rc.6 is a version-bump only (`chore: bump to 1.39.0-rc.6`). +- Eight fixes that landed on `main` after rc.5 were not included; they were targeted for rc.7. + +### 1.39.0-rc.5 +- Hardened the `[[hooks.]]` migration path by replacing a bare regex in `parseHooksBody` with the full `parseTomlKey()` parser. +- `buildNestedBlock` emits event-entry blocks only when handler fields are present; previously always emitted a `type = "command"` entry with no `command`. +- `legacyMapSections` filter corrected to use `section.segments.length === 2`, eliminating misclassification of three-segment table headers. +- Regression test added for quoted event names containing dots to prevent `split('.')` misclassification of `[[hooks."before.tool"]]`. + +### 1.39.0-rc.4 +- Added `--minimal` install flag (alias `--core-only`) writing only six core skills; drops cold-start overhead from ~12k to ~700 tokens. +- Codex installer no longer corrupts `~/.codex/config.toml`; strips legacy `[agents]` blocks unconditionally. +- Install writes atomically via temp file and `renameSync`; validates post-write bytes with a strict TOML parser. +- On any pre-write or write-time failure, the pre-install snapshot is restored and the installer aborts with a clear error. diff --git a/docs/RELEASE-v1.39.0-rc.4.md b/docs/RELEASE-v1.39.0-rc.4.md deleted file mode 100644 index 9c1682ffc..000000000 --- a/docs/RELEASE-v1.39.0-rc.4.md +++ /dev/null @@ -1,84 +0,0 @@ -# v1.39.0-rc.4 Release Notes - -Pre-release candidate. Published to npm under the `next` tag. - -``` -npx @opengsd/get-shit-done-redux@next -``` - ---- - -## What's in this release - -### Added - -**`--minimal` install flag** (alias `--core-only`) (#2762) - -Writes only the six core skills needed to run the main workflow loop: -`new-project`, `discuss-phase`, `plan-phase`, `execute-phase`, `help`, `update`. -No `gsd-*` subagents are installed. - -| Mode | Cold-start system-prompt overhead | -|------|-----------------------------------| -| full (default) | ~12k tokens | -| minimal | ~700 tokens | - -Useful for local LLMs with 32K–128K context windows. Sonnet 4.6 / Opus 4.7 users -don't need it — the full surface is the right default for cloud models. - -The install manifest records `mode: "minimal" | "full"`. Run `gsd update` without -`--minimal` at any time to expand to the full skill set. - ---- - -### Fixed - -**Codex install no longer corrupts `~/.codex/config.toml`** (#2760) - -Four users confirmed the same breakage: the previous installer left -`~/.codex/config.toml` in a state that Codex rejected on launch, with manual file -cleanup as the only workaround. - -The installer now: - -- Strips legacy `[agents]` (single-bracket) and `[[agents]]` (sequence) blocks - unconditionally — both are invalid in the current Codex TOML schema, regardless of - whether a GSD marker is present. -- Emits the GSD-managed hook in the shape the user's config already uses: - `[[hooks.]]` namespaced AoT if any existing hook uses that form, otherwise - top-level `[[hooks]]`. -- Migrates any legacy `[hooks.]` (map format) to `[[hooks.]]` (array - format) during write. -- Writes atomically via a temp file + `renameSync` — no partial writes. -- Validates the post-write bytes with a strict TOML parser that rejects duplicate - keys, repeated table headers, trailing bytes after values, and unsupported value - types. -- On any pre-write or write-time failure, restores the pre-install snapshot and aborts - with a clear error instead of warn-and-continue. - ---- - -## Installing the pre-release - -```bash -# npm -npm install -g @opengsd/get-shit-done-redux@next - -# npx (one-shot) -npx @opengsd/get-shit-done-redux@next -``` - -To pin to this exact RC: - -```bash -npm install -g @opengsd/get-shit-done-redux@1.39.0-rc.4 -``` - ---- - -## What's next - -- Run `rc` again on the release branch to publish rc.5 if further fixes land before - finalization. -- Run `finalize` on the release workflow to promote `1.39.0` to `latest` when the RC - is stable. diff --git a/docs/RELEASE-v1.39.0-rc.5.md b/docs/RELEASE-v1.39.0-rc.5.md deleted file mode 100644 index 8b5a18638..000000000 --- a/docs/RELEASE-v1.39.0-rc.5.md +++ /dev/null @@ -1,99 +0,0 @@ -# v1.39.0-rc.5 Release Notes - -Pre-release candidate. Published to npm under the `next` tag. - -```bash -npx @opengsd/get-shit-done-redux@next -``` - ---- - -## What's in this release - -All fixes from rc.4, plus: - -### Fixed - -**Codex hooks migrator correctness hardening** (#2809) - -Five edge-cases in the `[[hooks.]]` → `[[hooks..hooks]]` two-level nested -schema migration path, discovered across five rounds of code review: - -| Finding | Fix | -|---------|-----| -| `parseHooksBody` used a bare regex (`/^([\w.]+)\s*=/`) that silently dropped hyphenated keys such as `status-message` and any quoted TOML key | Replaced with `parseTomlKey()`, the existing full TOML key parser | -| `buildNestedBlock` unconditionally emitted `[[hooks.TYPE.hooks]]` even when no handler fields were present, producing an entry with `type = "command"` but no `command` | Added guard: matcher-only / handler-field-free sections emit only the event-entry block | -| `legacyMapSections` filter used `section.path.startsWith('hooks.')` without checking the segment count, so three-segment tables like `[hooks.SessionStart.hooks]` were misclassified as event entries and re-emitted as bogus nested events | Now uses `section.segments.length === 2` (same fix previously applied to `staleNamespacedAotSections`) | -| No regression test for quoted event names containing dots — `[[hooks."before.tool"]]` has a 2-segment path but 3 dot-parts, and a `split('.')` check would misclassify it | Regression test added; quoted-dot names are correctly treated as a single two-segment namespace | -| Handler command path assertion in install tests used a regex (`/gsd-check-update\.js/`) rather than the exact absolute path | Strengthened to `assert.strictEqual` with `path.join(codexHome, 'hooks', 'gsd-check-update.js')` | - ---- - -## What was in rc.4 - -### Added - -**`--minimal` install flag** (alias `--core-only`) (#2762) - -Writes only the six core skills needed to run the main workflow loop: -`new-project`, `discuss-phase`, `plan-phase`, `execute-phase`, `help`, `update`. -No `gsd-*` subagents are installed. - -| Mode | Cold-start system-prompt overhead | -|------|-----------------------------------| -| full (default) | ~12k tokens | -| minimal | ~700 tokens | - -Useful for local LLMs with 32K–128K context windows. Sonnet 4.6 / Opus 4.7 users -don't need it — the full surface is the right default for cloud models. - -The install manifest records `mode: "minimal" | "full"`. Run `gsd update` without -`--minimal` at any time to expand to the full skill set. - -### Fixed (rc.4) - -**Codex install no longer corrupts `~/.codex/config.toml`** (#2760) - -The installer now: - -- Strips legacy `[agents]` (single-bracket) and `[[agents]]` (sequence) blocks - unconditionally — both are invalid in the current Codex TOML schema, regardless of - whether a GSD marker is present. -- Emits the GSD-managed hook in the shape the user's config already uses: - `[[hooks.]]` namespaced AoT if any existing hook uses that form, otherwise - top-level `[[hooks]]`. -- Migrates any legacy `[hooks.]` (map format) to `[[hooks.]]` (array - format) during write. -- Writes atomically via a temp file + `renameSync` — no partial writes. -- Validates the post-write bytes with a strict TOML parser that rejects duplicate - keys, repeated table headers, trailing bytes after values, and unsupported value - types. -- On any pre-write or write-time failure, restores the pre-install snapshot and aborts - with a clear error instead of warn-and-continue. - ---- - -## Installing the pre-release - -```bash -# npm -npm install -g @opengsd/get-shit-done-redux@next - -# npx (one-shot) -npx @opengsd/get-shit-done-redux@next -``` - -To pin to this exact RC: - -```bash -npm install -g @opengsd/get-shit-done-redux@1.39.0-rc.5 -``` - ---- - -## What's next - -- Run `rc` again on the release branch to publish rc.6 if further fixes land before - finalization. -- Run `finalize` on the release workflow to promote `1.39.0` to `latest` when the RC - is stable. diff --git a/docs/RELEASE-v1.39.0-rc.6.md b/docs/RELEASE-v1.39.0-rc.6.md deleted file mode 100644 index 406c48589..000000000 --- a/docs/RELEASE-v1.39.0-rc.6.md +++ /dev/null @@ -1,116 +0,0 @@ -# v1.39.0-rc.6 Release Notes - -Pre-release candidate. Published to npm under the `next` tag. - -```bash -npx @opengsd/get-shit-done-redux@next -``` - ---- - -## What's in this release - -**rc.6 is a republish of rc.5.** No new fixes were rolled in — `release/1.39.0` -was bumped from `1.39.0-rc.5` to `1.39.0-rc.6` without first being merged with -`main`, so the branch contents at the time of tag are byte-for-byte equivalent -to rc.5 plus the version-bump commit. - -```bash -$ git log v1.39.0-rc.5..v1.39.0-rc.6 --pretty='%h %s' -388118d8 chore: bump to 1.39.0-rc.6 -``` - -If you are already on `1.39.0-rc.5`, there is nothing new to install in rc.6. -The expected next step is an rc.7 cut that first merges `main` into -`release/1.39.0` so the eight fixes that landed after rc.5 reach the registry. - ---- - -## What was in rc.5 - -### Fixed - -**Codex hooks migrator correctness hardening** (#2809) - -Five edge-cases in the `[[hooks.]]` → `[[hooks..hooks]]` two-level -nested schema migration path, discovered across five rounds of code review: - -| Finding | Fix | -|---------|-----| -| `parseHooksBody` used a bare regex (`/^([\w.]+)\s*=/`) that silently dropped hyphenated keys such as `status-message` and any quoted TOML key | Replaced with `parseTomlKey()`, the existing full TOML key parser | -| `buildNestedBlock` unconditionally emitted `[[hooks.TYPE.hooks]]` even when no handler fields were present, producing an entry with `type = "command"` but no `command` | Added guard: matcher-only / handler-field-free sections emit only the event-entry block | -| `legacyMapSections` filter used `section.path.startsWith('hooks.')` without checking the segment count, so three-segment tables like `[hooks.SessionStart.hooks]` were misclassified as event entries and re-emitted as bogus nested events | Now uses `section.segments.length === 2` (same fix previously applied to `staleNamespacedAotSections`) | -| No regression test for quoted event names containing dots — `[[hooks."before.tool"]]` has a 2-segment path but 3 dot-parts, and a `split('.')` check would misclassify it | Regression test added; quoted-dot names are correctly treated as a single two-segment namespace | -| Handler command path assertion in install tests used a regex (`/gsd-check-update\.js/`) rather than the exact absolute path | Strengthened to `assert.strictEqual` with `path.join(codexHome, 'hooks', 'gsd-check-update.js')` | - ---- - -## What was in rc.4 - -### Added - -**`--minimal` install flag** (alias `--core-only`) (#2762) - -Writes only the six core skills needed to run the main workflow loop: -`new-project`, `discuss-phase`, `plan-phase`, `execute-phase`, `help`, `update`. -No `gsd-*` subagents are installed. - -| Mode | Cold-start system-prompt overhead | -|------|-----------------------------------| -| full (default) | ~12k tokens | -| minimal | ~700 tokens | - -Useful for local LLMs with 32K–128K context windows. Sonnet 4.6 / Opus 4.7 users -don't need it — the full surface is the right default for cloud models. - -The install manifest records `mode: "minimal" | "full"`. Run `gsd update` without -`--minimal` at any time to expand to the full skill set. - -### Fixed (rc.4) - -**Codex install no longer corrupts `~/.codex/config.toml`** (#2760) - -The installer now: - -- Strips legacy `[agents]` (single-bracket) and `[[agents]]` (sequence) blocks - unconditionally — both are invalid in the current Codex TOML schema, regardless of - whether a GSD marker is present. -- Emits the GSD-managed hook in the shape the user's config already uses: - `[[hooks.]]` namespaced AoT if any existing hook uses that form, otherwise - top-level `[[hooks]]`. -- Migrates any legacy `[hooks.]` (map format) to `[[hooks.]]` (array - format) during write. -- Writes atomically via a temp file + `renameSync` — no partial writes. -- Validates the post-write bytes with a strict TOML parser that rejects duplicate - keys, repeated table headers, trailing bytes after values, and unsupported value - types. -- On any pre-write or write-time failure, restores the pre-install snapshot and aborts - with a clear error instead of warn-and-continue. - ---- - -## Installing the pre-release - -```bash -# npm -npm install -g @opengsd/get-shit-done-redux@next - -# npx (one-shot) -npx @opengsd/get-shit-done-redux@next -``` - -To pin to this exact RC: - -```bash -npm install -g @opengsd/get-shit-done-redux@1.39.0-rc.6 -``` - ---- - -## What's next - -- **rc.7** — cut from `release/1.39.0` after merging `main` into the release branch, - so the eight fixes that landed after rc.5 (#2828, #2829, #2831, #2832, #2835, - #2836, #2838, #2839) actually reach the registry. -- Run `finalize` on the release workflow to promote `1.39.0` to `latest` once an RC - with the full main-branch contents is stable. diff --git a/docs/RELEASE-v1.39.0-rc.7.md b/docs/RELEASE-v1.39.0-rc.7.md deleted file mode 100644 index 67002e94e..000000000 --- a/docs/RELEASE-v1.39.0-rc.7.md +++ /dev/null @@ -1,185 +0,0 @@ -# v1.39.0-rc.7 Release Notes - -Pre-release candidate. Published to npm under the `next` tag. - -```bash -npx @opengsd/get-shit-done-redux@next -``` - ---- - -## What's in this release - -rc.7 is the first RC in the 1.39.0 train that rolls in the post-rc.5 fixes from -`main`. rc.6 was content-identical to rc.5 (`release/1.39.0` was bumped without -first being merged with `main` — see [#2856](https://github.com/GSD-redux/get-shit-done-redux/issues/2856)). -rc.7 syncs the release branch with `main` so all of the work below actually -reaches the registry. - -### Added - -- **Manual canary release workflow** — `.github/workflows/canary.yml` publishes - `{base}-canary.{N}` builds of `@opengsd/get-shit-done-redux` under the `canary` dist-tag on - demand via `workflow_dispatch` (manual trigger only). Optional `dry_run` boolean. - ([#2828](https://github.com/GSD-redux/get-shit-done-redux/issues/2828)) - -### Fixed - -- **`extractCurrentMilestone` no longer truncates ROADMAP.md at heading-like lines - inside fenced code blocks** — the milestone-end search now scans line-by-line while - tracking ` ``` ` / `~~~` fence state, so a line like `# Ops runbook (v1.0 compat)` - inside a code block no longer acts as a milestone boundary. - ([#2787](https://github.com/GSD-redux/get-shit-done-redux/issues/2787)) -- **`audit-uat` parser reads `human_verification:` from frontmatter array** — the - previous body-only regex was too strict and missed valid UAT items declared in - YAML frontmatter, surfacing false-positive open gaps at every milestone-completion - audit. ([#2788](https://github.com/GSD-redux/get-shit-done-redux/issues/2788)) -- **Skill description anti-patterns trimmed; ≤ 100-char budget enforced** — three - anti-patterns eliminated across `commands/gsd/*.md`: flag documentation already in - `argument-hint:`, `Triggers:` keyword-stuffing lists, and numbered enumeration. New - CI lint gate `npm run lint:descriptions` fails if any description exceeds 100 - chars. ([#2789](https://github.com/GSD-redux/get-shit-done-redux/issues/2789)) -- **`gsd-sdk` binary collision with `@opengsd/gsd-sdk` resolved** — workstream-aware - query registry now respects the `GSD_WORKSTREAM` env var; `gsd-tools` bin alias - added. ([#2791](https://github.com/GSD-redux/get-shit-done-redux/issues/2791)) -- **`OpenCode` agents embed `model_profile_overrides.opencode.`** — per-tier - model overrides set via `/gsd-settings-advanced` are now propagated into generated - agent files. ([#2794](https://github.com/GSD-redux/get-shit-done-redux/issues/2794)) -- **`roadmap update-plan-progress` accepts `--phase` flag form** — SDK arg-parsing - regression in v0.1.0 silently dropped `--phase`/`--name`/`--plans` flags, causing - STATE.md corruption. ([#2796](https://github.com/GSD-redux/get-shit-done-redux/issues/2796)) -- **`context_window` added to `VALID_CONFIG_KEYS` allowlist** — - `/gsd-settings-advanced` could not set `context_window` because the key was missing - from the allowlist used by `config-set` validation. - ([#2798](https://github.com/GSD-redux/get-shit-done-redux/issues/2798)) -- **`gsd-tools init` dispatches `ingest-docs` handler** — `/gsd-ingest-docs` was - broken in v1.38.5 because the workflow called the new tool but no `ingest-docs` - init handler was registered. ([#2801](https://github.com/GSD-redux/get-shit-done-redux/issues/2801)) -- **`config-get` honors `--default ` flag** — fallback for missing keys - ported from CJS into the SDK. ([#2803](https://github.com/GSD-redux/get-shit-done-redux/issues/2803)) -- **`find-phase` returns `null` for archived phases** — when the current-milestone - phase had no directory yet, `init.plan-phase` / `init.execute-phase` returned the - archived prior-milestone directory instead of `null`, causing wrong-phase work. - ([#2805](https://github.com/GSD-redux/get-shit-done-redux/issues/2805)) -- **SKILL.md frontmatter `name:` migrated to hyphen form** — files that still used - the deprecated colon form (`gsd:cmd`) caused autocomplete to suggest `/gsd:command`. - ([#2808](https://github.com/GSD-redux/get-shit-done-redux/issues/2808)) -- **`gsd-sdk` resolvable in local-mode installs** — the previous `isLocal` - short-circuit returned before the PATH probe + self-link could run. When - `sdk/dist/cli.js` is present, local installs now run the same probe-and-link flow - as global installs. ([#2829](https://github.com/GSD-redux/get-shit-done-redux/issues/2829)) -- **OpenCode `@file` references use absolute paths on all platforms** — OpenCode - does not shell-expand `$HOME` in `@file` references on any platform; the - Windows-only guard from #2376 left macOS/Linux producing literal `@$HOME/...` - strings. Guard now applies unconditionally for OpenCode. - ([#2831](https://github.com/GSD-redux/get-shit-done-redux/issues/2831)) -- **`gsd-sdk auto` detects Codex runtime correctly** — `auto` mode ignored - `runtime: codex` and routed through `@anthropic-ai/claude-agent-sdk`, producing - the `[FAILED] $0.00 0.1s` symptom on autonomous runs. New `runtime-gate` raises a - clear error for non-Claude runtimes; `resolveModel()` honours `GSD_RUNTIME` env - precedence and never injects a Claude profile id under non-Claude runtimes. - ([#2832](https://github.com/GSD-redux/get-shit-done-redux/issues/2832)) -- **CR-INTEGRATION tests aligned with hyphen-form skill names** — tests now parse - `Skill(skill="...")` invocations structurally and reject the legacy colon form. - ([#2835](https://github.com/GSD-redux/get-shit-done-redux/issues/2835)) -- **`audit-open` quick-task scanner accepts `${quick_id}-SUMMARY.md`** — the - bare-`SUMMARY.md` check produced false-positive `status: missing` for every - documented quick task. UAT terminal-status enum also adds `resolved` (matches - `execute-phase.md`'s post-gap-closure terminal). - ([#2836](https://github.com/GSD-redux/get-shit-done-redux/issues/2836)) -- **`quick.md` / `execute-phase.md` SUMMARY rescue handles gitignored `.planning/`** — - rescue blocks used `git ls-files --exclude-standard`, silently no-op'ing when - `.planning/` was excluded; the worktree was then deleted with the SUMMARY. - Replaced with filesystem-level `find` + idempotent `cp`. - ([#2838](https://github.com/GSD-redux/get-shit-done-redux/issues/2838)) -- **`/gsd-code-review-fix` cleanup tail is transactional** — JSON recovery sentinel - at `${phase_dir}/.review-fix-recovery-pending.json` is written after `git worktree - add` succeeds and removed only after `git worktree remove` returns. New runs that - find a pre-existing sentinel force-remove the orphan worktree, making the agent - self-healing across crashes. ([#2839](https://github.com/GSD-redux/get-shit-done-redux/issues/2839)) - ---- - -## What was in rc.6 - -```bash -$ git log v1.39.0-rc.5..v1.39.0-rc.6 --pretty='%h %s' -388118d8 chore: bump to 1.39.0-rc.6 -``` - -rc.6 was a republish of rc.5 with no new content — `release/1.39.0` was bumped -without first being merged with `main`. See -[`RELEASE-v1.39.0-rc.6.md`](RELEASE-v1.39.0-rc.6.md) for the full context. - ---- - -## What was in rc.5 - -### Fixed - -**Codex hooks migrator correctness hardening** ([#2809](https://github.com/GSD-redux/get-shit-done-redux/issues/2809)) - -Five edge-cases in the `[[hooks.]]` → `[[hooks..hooks]]` two-level -nested schema migration path, discovered across five rounds of code review: - -| Finding | Fix | -|---------|-----| -| `parseHooksBody` used a bare regex (`/^([\w.]+)\s*=/`) that silently dropped hyphenated keys such as `status-message` and any quoted TOML key | Replaced with `parseTomlKey()`, the existing full TOML key parser | -| `buildNestedBlock` unconditionally emitted `[[hooks.TYPE.hooks]]` even when no handler fields were present, producing an entry with `type = "command"` but no `command` | Added guard: matcher-only / handler-field-free sections emit only the event-entry block | -| `legacyMapSections` filter used `section.path.startsWith('hooks.')` without checking the segment count, so three-segment tables like `[hooks.SessionStart.hooks]` were misclassified as event entries and re-emitted as bogus nested events | Now uses `section.segments.length === 2` (same fix previously applied to `staleNamespacedAotSections`) | -| No regression test for quoted event names containing dots — `[[hooks."before.tool"]]` has a 2-segment path but 3 dot-parts, and a `split('.')` check would misclassify it | Regression test added; quoted-dot names are correctly treated as a single two-segment namespace | -| Handler command path assertion in install tests used a regex (`/gsd-check-update\.js/`) rather than the exact absolute path | Strengthened to `assert.strictEqual` with `path.join(codexHome, 'hooks', 'gsd-check-update.js')` | - ---- - -## What was in rc.4 - -### Added - -**`--minimal` install flag** (alias `--core-only`) ([#2762](https://github.com/GSD-redux/get-shit-done-redux/issues/2762)) - -Writes only the six core skills needed to run the main workflow loop: -`new-project`, `discuss-phase`, `plan-phase`, `execute-phase`, `help`, `update`. -No `gsd-*` subagents are installed. - -| Mode | Cold-start system-prompt overhead | -|------|-----------------------------------| -| full (default) | ~12k tokens | -| minimal | ~700 tokens | - -The install manifest records `mode: "minimal" | "full"`. Run `gsd update` without -`--minimal` at any time to expand to the full skill set. - -### Fixed (rc.4) - -**Codex install no longer corrupts `~/.codex/config.toml`** ([#2760](https://github.com/GSD-redux/get-shit-done-redux/issues/2760)) - -The installer now strips legacy `[agents]` blocks, emits hooks in the user's -existing shape, migrates legacy `[hooks.]` map format to `[[hooks.]]`, -writes atomically via temp-file + `renameSync`, and validates post-write bytes -with a strict TOML parser. - ---- - -## Installing the pre-release - -```bash -# npm -npm install -g @opengsd/get-shit-done-redux@next - -# npx (one-shot) -npx @opengsd/get-shit-done-redux@next -``` - -To pin to this exact RC: - -```bash -npm install -g @opengsd/get-shit-done-redux@1.39.0-rc.7 -``` - ---- - -## What's next - -- Run `finalize` on the release workflow to promote `1.39.0` to `latest` once - rc.7 has soaked. diff --git a/docs/RELEASE-v1.40.0-rc.1.md b/docs/RELEASE-v1.40.0-rc.1.md deleted file mode 100644 index 7d485922d..000000000 --- a/docs/RELEASE-v1.40.0-rc.1.md +++ /dev/null @@ -1,136 +0,0 @@ -# v1.40.0-rc.1 Release Notes - -Pre-release candidate. Published to npm under the `next` tag. - -```bash -npx @opengsd/get-shit-done-redux@next -``` - ---- - -## What's in this release - -rc.1 opens the 1.40.0 train. The headline change is the **skill-surface -consolidation** ([#2790](https://github.com/GSD-redux/get-shit-done-redux/issues/2790)) -and the new **two-stage hierarchical namespace routing** that sits on top of it -([#2792](https://github.com/GSD-redux/get-shit-done-redux/issues/2792)) — together -they drop the cold-start system-prompt overhead from ~2,150 tokens (86 flat skills) -to ~120 tokens (6 namespace routers). The release also adds the read-side of the -phase-lifecycle status-line, hardens multi-runtime installs, and clears a backlog of -correctness fixes for Gemini, Copilot, Codex, and the canary publish workflow. - -### Added - -- **Six namespace meta-skills with keyword-tag descriptions** — replace the flat - 86-skill listing with a two-stage hierarchical routing layer. The model sees 6 - namespace routers (`gsd:workflow`, `gsd:project`, `gsd:review`, `gsd:context`, - `gsd:manage`, `gsd:ideate`) instead of 86 entries; selects a namespace, then routes - to the sub-skill. Existing sub-skills are unchanged and still invocable directly. - ([#2792](https://github.com/GSD-redux/get-shit-done-redux/issues/2792)) - -- **`/gsd-health --context` utilization guard** — context-window quality guard with - two thresholds: 60 % warns ("consider `/gsd-thread`"), 70 % is critical ("reasoning - quality may degrade"). Also exposed as `gsd-tools validate context`. - ([#2792](https://github.com/GSD-redux/get-shit-done-redux/issues/2792)) - -- **Phase-lifecycle status-line — read-side** — `parseStateMd()` now reads four new - STATE.md frontmatter fields: `active_phase`, `next_action`, `next_phases`, and - `progress`. `formatGsdState()` gains scenes for in-flight, idle, and progress - display. Write-side wiring follows in a later RC. - ([#2833](https://github.com/GSD-redux/get-shit-done-redux/issues/2833)) - -- **`--minimal` install flag** (alias `--core-only`) — writes only the six core - skills needed for the main workflow loop; no `gsd-*` subagents. Drops cold-start - overhead from ~12k tokens to ~700. Useful for local LLMs with 32K–128K context. - ([#2762](https://github.com/GSD-redux/get-shit-done-redux/issues/2762)) - -### Changed - -- **Skill surface consolidated 86 → 59 `commands/gsd/*.md` entries** — four new - grouped skills replace clusters of micro-skills (`capture`, `phase`, `config`, - `workspace`); six existing parents absorb wrap-up and sub-operations as flags - (`update --sync/--reapply`, `sketch --wrap-up`, `spike --wrap-up`, - `map-codebase --fast/--query`, `code-review --fix`, `progress --do/--next`). - Zero functional loss — 31 micro-skills deleted, all behavior preserved via flags. - ([#2790](https://github.com/GSD-redux/get-shit-done-redux/issues/2790)) - -- **Canary release workflow now publishes from `dev` branch only** — aligns with - the branch→dist-tag policy (`dev` → `@canary`, `main` → `@next`/`@latest`). - `workflow_dispatch` on `main` now completes build/test/dry-run validation but - skips publish and tag. - ([#2868](https://github.com/GSD-redux/get-shit-done-redux/issues/2868)) - -- **PRs missing `Closes #NNN` are auto-closed** — the `Issue link required` - workflow now auto-closes any PR opened without a closing keyword, posting a - comment that points to the contribution guide. - ([#2872](https://github.com/GSD-redux/get-shit-done-redux/issues/2872)) - -### Fixed - -- **Gemini slash commands now namespaced as `/gsd:` instead of `/gsd-`** — - Gemini CLI namespaces commands under `gsd:` so `/gsd-plan-phase` was unexecutable. - The install path now converts every body-text reference via a roster-checked regex, - consistently rewriting command files, agent bodies, and banners. - ([#2768](https://github.com/GSD-redux/get-shit-done-redux/issues/2768), - [#2783](https://github.com/GSD-redux/get-shit-done-redux/issues/2783)) - -- **GSD slash-command namespace drift cleaned up across docs, workflows, and - autocomplete** — remaining stale `/gsd:` references now use canonical - `/gsd-`; `scripts/fix-slash-commands.cjs` rewrites retired colon syntax. - ([#2858](https://github.com/GSD-redux/get-shit-done-redux/pull/2858)) - -- **`SKILL.md` description quoted for Copilot / Antigravity / Trae / CodeBuddy** — - descriptions starting with a YAML 1.2 flow indicator crashed gh-copilot's strict - YAML loader. Six emission sites now wrap descriptions in `yamlQuote(...)`. - ([#2876](https://github.com/GSD-redux/get-shit-done-redux/issues/2876)) - -- **`gsd-tools` invocations use the absolute installed path** — bare `gsd-tools …` - calls inside skill bodies relied on PATH resolution not guaranteed in every runtime; - replaced with the absolute path emitted at install time. - ([#2851](https://github.com/GSD-redux/get-shit-done-redux/issues/2851)) - -- **Codex installer preserves trailing newline when stripping legacy hooks** — the - legacy-hook strip ran against files with no terminating newline at EOF, breaking - downstream parsers. - ([#2866](https://github.com/GSD-redux/get-shit-done-redux/issues/2866)) - ---- - -## What was in rc.7 - -[`RELEASE-v1.39.0-rc.7.md`](RELEASE-v1.39.0-rc.7.md) — first 1.39.0 RC to roll in -post-rc.5 fixes from `main`. Includes the `extractCurrentMilestone` fenced-code-block -fix ([#2787](https://github.com/GSD-redux/get-shit-done-redux/issues/2787)), `audit-uat` -frontmatter parse fix ([#2788](https://github.com/GSD-redux/get-shit-done-redux/issues/2788)), -skill description budget + lint gate ([#2789](https://github.com/GSD-redux/get-shit-done-redux/issues/2789)), -`gsd-sdk` workstream + binary-collision fixes ([#2791](https://github.com/GSD-redux/get-shit-done-redux/issues/2791)), -and nine additional correctness fixes across OpenCode, Codex, and Gemini runtimes. - ---- - -## Installing the pre-release - -```bash -# npm -npm install -g @opengsd/get-shit-done-redux@next - -# npx (one-shot) -npx @opengsd/get-shit-done-redux@next -``` - -To pin to this exact RC: - -```bash -npm install -g @opengsd/get-shit-done-redux@1.40.0-rc.1 -``` - ---- - -## What's next - -- Soak rc.1 against real installs across Claude Code, Codex, Copilot, Gemini, - OpenCode, and Antigravity runtimes. -- Wire write-side phase-lifecycle status-line on top of the - [#2833](https://github.com/GSD-redux/get-shit-done-redux/issues/2833) read-side. -- Run `finalize` on the release workflow to promote `1.40.0` to `latest` once - the train has soaked. diff --git a/docs/RELEASE-v1.41.0.md b/docs/RELEASE-v1.41.0.md deleted file mode 100644 index f345015f9..000000000 --- a/docs/RELEASE-v1.41.0.md +++ /dev/null @@ -1,199 +0,0 @@ -# v1.41.0 Release Notes - -Stable release. Published to npm under the `latest` tag. - -```bash -npx @opengsd/get-shit-done-redux@latest -``` - ---- - -## What's in this release - -1.41.0 is a quality and infrastructure release. The headline additions are **per-phase-type model selection** and **dynamic routing** — two new config blocks that give you granular cost control without learning the agent taxonomy. The release also ships the **MVP mode SDK resolution layer** (three canonical query verbs replacing per-workflow bash duplication), the **optional update banner** for non-statusline users, and the **issue-driven orchestration guide**. Underneath that, 25+ correctness fixes cover Homebrew node path stability, planner directive fidelity, secure-phase retroactive audit, cross-runtime installs, and statusline parsing. - -### Added - -- **Per-phase-type model selection (`models` block)** — express "Opus for planning, - Sonnet for the rest" in two config lines without learning the agent taxonomy. Six - named slots (`planning` / `discuss` / `research` / `execution` / `verification` / - `completion`) accept tier aliases (`opus` / `sonnet` / `haiku` / `inherit`). Fully - backward compatible. - ([#3023](https://github.com/GSD-redux/get-shit-done-redux/pull/3030)) - -- **Dynamic routing with failure-tier escalation (`dynamic_routing` block)** — start - cheap, escalate only when the orchestrator detects a soft failure (inconclusive - verification, plan-check FLAG). Disabled by default; composes with `model_overrides` - and `models.` via the same precedence chain. - ([#3024](https://github.com/GSD-redux/get-shit-done-redux/pull/3031)) - -- **Optional update banner for non-GSD statusline users** — when the installer detects - no GSD statusline, it offers an opt-in `SessionStart` hook that surfaces update - availability via the existing `~/.cache/gsd/gsd-update-check.json` cache. Silent when - up-to-date; removed cleanly by `--uninstall`. - ([#2795](https://github.com/GSD-redux/get-shit-done-redux/pull/2795)) - -- **Issue-driven orchestration guide** — new - [`docs/issue-driven-orchestration.md`](issue-driven-orchestration.md) recipe that maps - tracker issues (GitHub / Linear / Jira) onto existing GSD primitives: workspace → - discuss → plan → execute → verify → review → ship. - ([#2840](https://github.com/GSD-redux/get-shit-done-redux/pull/2840)) - -### Changed - -- **MVP mode SDK resolution layer — three canonical query verbs** — three new verbs - centralize the MVP-mode predicates previously duplicated across workflows: - `gsd-sdk query phase.mvp-mode ` (precedence resolver), `task.is-behavior-adding` - (Behavior-Adding Task predicate), and `user-story.validate` (User Story regex). All - consuming workflows now call the verb instead of inlining 4–8 bash lines each. Also - fixes a silent SDK bug where `roadmap.get-phase --pick mode` returned `null` for - phases with `**Mode:** mvp` set. - ([#3178](https://github.com/GSD-redux/get-shit-done-redux/pull/3178)) - -- **`/gsd-graphify status` surfaces commit-based staleness** — reads `built_at_commit` - from graphify v0.7+ graphs, compares against `git HEAD`, and adds four new fields - (`built_at_commit`, `current_commit`, `commits_behind`, `commit_stale`). Pre-v0.7 - graphs return `commit_stale: null` and fall back to the existing mtime-based signal. - ([#3170](https://github.com/GSD-redux/get-shit-done-redux/issues/3170)) - -- **MVP concept index and domain glossary** — seven MVP-related terms added to - `CONTEXT.md`; new `references/mvp-concepts.md` indexes the six MVP reference files. - No behavior change. - ([#3176](https://github.com/GSD-redux/get-shit-done-redux/pull/3176)) - -### Fixed - -- **Stable node path on Homebrew** — `resolveNodeRunner()` now maps versioned Cellar - paths to the stable Homebrew symlinks. Prevents `dyld: Library not loaded` errors - after `brew upgrade node`. - ([#3181](https://github.com/GSD-redux/get-shit-done-redux/issues/3181)) - -- **Milestone-archive layout support** — `validate consistency`, `validate health`, and - `find-phase` now scan `.planning/milestones/v*-phases/` in addition to the flat - `.planning/phases/` layout, eliminating spurious W006 warnings. - ([#3164](https://github.com/GSD-redux/get-shit-done-redux/issues/3164)) - -- **`/gsd-graphify build` runs inline instead of spawning a sub-agent** — the - post-extraction clustering phase was SIGTERM'd when the sub-agent exited, leaving no - `graph.json` / `graph.html` / `GRAPH_REPORT.md` artifacts. - ([#3166](https://github.com/GSD-redux/get-shit-done-redux/issues/3166)) - -- **Planner directive language restored** — 10 `CRITICAL`/`MANDATORY`/`MUST` emphasis - markers were silently removed from `gsd-planner.md` in v1.38.4, weakening planner - adherence to user decisions and requirement coverage. All restored. - ([#3138](https://github.com/GSD-redux/get-shit-done-redux/issues/3087)) - -- **`secure-phase` retroactive-STRIDE mode for legacy phases** — phases with no - `` blocks no longer rubber-stamp a clean `SECURITY.md`; the auditor - now builds a register from implementation files before verifying mitigations. - ([#3142](https://github.com/GSD-redux/get-shit-done-redux/issues/3120)) - -- **Global skills resolution now uses the correct runtime home directory** — - `buildAgentSkillsBlock()` hardcoded `~/.claude/skills` for all runtimes. The new - `runtime-homes.cjs` module maps all 15 supported runtimes to their canonical skills - directory. - ([#3126](https://github.com/GSD-redux/get-shit-done-redux/issues/3126)) - -- **`state.begin-phase` is now idempotent** — wave-resume calls no longer overwrite - `Current Plan`, `stopped_at`, or `Last Activity Description` with stale values from - the last `plan-phase` run. - ([#3127](https://github.com/GSD-redux/get-shit-done-redux/issues/3127)) - -- **`gsd-validate-commit.sh` hook catches all git commit forms** — the previous bash - regex missed `git -C /path commit`, `GIT_AUTHOR_NAME=x git commit`, and - `/usr/bin/git commit`. New `hooks/lib/git-cmd.js` token-walk classifier handles all - forms correctly. - ([#3141](https://github.com/GSD-redux/get-shit-done-redux/issues/3129)) - -- **`/gsd-plan-phase` no longer auto-dispatches to a subagent on OpenCode** — the - `agent: gsd-planner` frontmatter directive caused OpenCode to run the orchestrator in - a context where the `Agent` tool is unavailable. Directive removed. - ([#3156](https://github.com/GSD-redux/get-shit-done-redux/issues/3156)) - -- **`/gsd-quick` worktree-merge resurrection guard** — the inverted `PRE_MERGE_FILES` - grep that deleted freshly-created files (including `SUMMARY.md`) is replaced with the - git-history check used by `execute-phase.md`. - ([#3195](https://github.com/GSD-redux/get-shit-done-redux/issues/3195)) - -- **`gsd-health` no longer raises W019 for `RETROSPECTIVE.md`** — registered in - `CANONICAL_EXACT` in `artifacts.cjs` to match its established status as a milestone - completion artifact. - ([#3200](https://github.com/GSD-redux/get-shit-done-redux/issues/3198)) - -- **`--sdk` flag now wired into SDK deployment** — `hasSdk` was parsed but never - passed to `installSdkIfNeeded`, so `--sdk` silently skipped deployment. - ([#3033](https://github.com/GSD-redux/get-shit-done-redux/issues/3033)) - -- **Installer shell-path probe for SDK shim** — no longer prints "✓ GSD SDK ready" - when the shim is unreachable from the user's interactive shells; probes - `$SHELL -lc 'printf %s "$PATH"'` instead of the installer subprocess PATH. - ([#3028](https://github.com/GSD-redux/get-shit-done-redux/issues/3020)) - -- **Windows update-check no longer silently fails** — passes `shell: true` on Windows - so `npm.cmd` resolves via PATHEXT; without this the statusline "⬆ /gsd-update" - indicator never rendered on Windows. - ([#3102](https://github.com/GSD-redux/get-shit-done-redux/issues/3103)) - -- **Community `.sh` hooks use `#!/usr/bin/env bash`** — the previous `#!/bin/bash` - shebang fails on NixOS, minimal Alpine images, and some container runtimes. - ([#3194](https://github.com/GSD-redux/get-shit-done-redux/issues/3194)) - -- **Gemini local install no longer duplicates `/gsd:*` commands** — when GSD is - already installed at user scope, a subsequent `--gemini --local` install skips the - workspace scope. Previously both scopes received all 65 command files and Gemini's - conflict detector renamed everything. - ([#3037](https://github.com/GSD-redux/get-shit-done-redux/issues/3037)) - -- **Workstream resolution in `init.milestone-op` and `roadmap.analyze`** — both - handlers now respect `--ws`, `GSD_WORKSTREAM`, and `.planning/active-workstream`. - Workstream-scoped repos no longer exit with "Nothing left to do" from reading the - root `.planning/` directory. - ([#3196](https://github.com/GSD-redux/get-shit-done-redux/issues/3196), - [#3207](https://github.com/GSD-redux/get-shit-done-redux/pull/3207)) - -- **`gsd-tools config-set workflow._auto_chain_active` no longer rejected** — the key - was added to the SDK schema but not mirrored to `config-schema.cjs`; users routed - through `gsd-tools` saw "Unknown config key." - ([#3197](https://github.com/GSD-redux/get-shit-done-redux/issues/3197)) - -- **Statusline state rendering is type-robust and YAML-list compatible** — milestone - completion renders for numeric and string `percent` values; `next_phases` parses both - flow-array and block-list YAML. - ([#3153](https://github.com/GSD-redux/get-shit-done-redux/issues/3153)) - -- **Codex SessionStart hook uses absolute Node binary path** — bare `node` in - `config.toml` failed with exit 127 under GUI/minimal-PATH runtimes. - ([#3022](https://github.com/GSD-redux/get-shit-done-redux/issues/3017)) - -- **`config-set resolve_model_ids` and `workflow._auto_chain_active` accepted** — both - keys were documented or written by internal workflows but missing from the allowlists. - ([#3162](https://github.com/GSD-redux/get-shit-done-redux/issues/3162)) - ---- - -## What was in 1.40.0 - -[`RELEASE-v1.40.0-rc.1.md`](RELEASE-v1.40.0-rc.1.md) — skill-surface consolidation -(86 → 59, [#2790](https://github.com/GSD-redux/get-shit-done-redux/issues/2790)), six -namespace meta-skills ([#2792](https://github.com/GSD-redux/get-shit-done-redux/issues/2792)), -`/gsd-health --context` utilization guard, phase-lifecycle status-line read-side -([#2833](https://github.com/GSD-redux/get-shit-done-redux/issues/2833)), and Gemini -colon-form slash-command conversion. - ---- - -## Installing - -```bash -# npm (global) -npm install -g @opengsd/get-shit-done-redux@latest - -# npx (one-shot) -npx @opengsd/get-shit-done-redux@latest - -# Pin to this exact version -npm install -g @opengsd/get-shit-done-redux@1.41.0 -``` - -The installer is idempotent — re-running on an existing install updates in-place, -preserving your `.planning/` directory and local patches. diff --git a/docs/RELEASE-v1.42.0-rc.1.md b/docs/RELEASE-v1.42.0-rc.1.md deleted file mode 100644 index 7b8037120..000000000 --- a/docs/RELEASE-v1.42.0-rc.1.md +++ /dev/null @@ -1,100 +0,0 @@ -# v1.42.0-rc.1 Release Notes - -First release candidate for the **1.42.0** train. Published to npm under the `next` dist-tag. - -```bash -npx @opengsd/get-shit-done-redux@next -# or pin exact: -npm install -g @opengsd/get-shit-done-redux@1.42.0-rc1 -``` - -> **Release-candidate stream caveat.** RCs come from `main` and are the staging stream for the next stable `latest`. They are stable enough for everyday use but may carry bake items resolved before the matching `vX.Y.0` is published. See [CANARY.md](CANARY.md) for the stream policy. - ---- - -## What's in this release - -1.42.0-rc.1 is the first cut of the 1.42 train. The headline addition is a **package legitimacy gate against slopsquatting** — a three-layer defense across the research → plan → execute pipeline that prevents AI-hallucinated package names from flowing undetected into `npm install`. Underneath that, two structural refactors deepen the **SDK package seam** and the **phase lifecycle seams** so future work has cleaner module boundaries. - -This RC also rolls up every fix that shipped in [v1.41.1](https://github.com/GSD-redux/get-shit-done-redux/releases/tag/v1.41.1). Those fixes are listed in the v1.41.1 notes and on the GitHub release page; this document is scoped to the **new features** in 1.42.0. - ---- - -## Added - -### Security - -#### Package legitimacy gate against slopsquatting ([#3215](https://github.com/GSD-redux/get-shit-done-redux/pull/3215)) - -A three-layer defense across the research → plan → execute pipeline. Before this release, a hallucinated package name that passed `npm view` could flow undetected into `gsd-executor` running `npm install ` with no human gate. The gate closes that path: - -- **Layer 1 — Researcher (`agents/gsd-phase-researcher.md`).** A new `` block runs `slopcheck install --json` over every recommended package, performs ecosystem-specific verification (`pip index versions` / `npm view` / `cargo search`), and emits a `## Package Legitimacy Audit` table to `RESEARCH.md` with Package, Registry, Age, Downloads, Source Repo, slopcheck, and Disposition columns. Packages discovered solely through WebSearch are tagged `[ASSUMED]` — never `[VERIFIED]`. `[SLOP]` packages are removed from RESEARCH.md and listed under "Packages removed due to slopcheck." -- **Layer 2 — Planner (`agents/gsd-planner.md`).** Reads the Audit table and inserts a `checkpoint:human-verify` task before any install whose package is tagged `[ASSUMED]` or `[SUS]`. Plans that introduce installs gain a `T-{phase}-SC` Tampering / supply-chain row in their `` template. -- **Layer 3 — Executor (`agents/gsd-executor.md`).** RULE 3 amended: package installs (`npm`/`pip`/`cargo`) are excluded from auto-fix scope. Failed installs become `checkpoint:human-verify` with a slopsquatting-risk rationale instead of being silently retried. - -**Hardening.** Every `npx --yes @latest` invocation across the three agent files is replaced with a `command -v ` guard pattern — this closes the same fetch-and-execute hole `npx --yes` opens. - -**Graceful degradation.** When `slopcheck` is unavailable at research time, every recommended package is tagged `[ASSUMED]` and gated with a checkpoint, so the protective behavior degrades safely instead of bypassing the gate. - -**Documentation.** `docs/USER-GUIDE.md` has a new "Package Legitimacy Gate" subsection in the Security section; `docs/COMMANDS.md` notes the gate on `/gsd-plan-phase`; `docs/ARCHITECTURE.md` documents the gate before the Security Hooks section and updates the plan-phase pipeline diagram with the gate steps. - -Closes [#2827](https://github.com/GSD-redux/get-shit-done-redux/issues/2827). - ---- - -## Changed - -### Architecture - -#### SDK package seam deepened; runtime-global skills policy converged ([#3238](https://github.com/GSD-redux/get-shit-done-redux/pull/3238)) - -Concentrates two areas that were previously scattered across the codebase: - -- **SDK Package Seam Module.** Legacy package and install-layout compatibility — previously leaked across `state-project-load`, `verify`, `roadmap`, prompt-loading paths, `agent-skills`, `skill-manifest`, and `generateDevPreferences` — is now centralized behind a single Module. Callers consume legacy-asset discovery and install-layout probing through a thin Adapter; transition-only error messaging lives in one place. -- **Runtime-Global Skills Policy Module.** A single runtime-aware global-skills directory policy is now shared by SDK and CJS callers. Resolves runtime-global skills bases and skill paths from the runtime + env precedence chain, renders display paths for warnings/manifests, and reports unsupported runtimes that lack a skills directory. - -The CONTEXT.md domain glossary is updated with both Module entries so future work points at the canonical seams instead of re-deriving the boundaries. - -Closes [#3237](https://github.com/GSD-redux/get-shit-done-redux/issues/3237). Refs [#3234](https://github.com/GSD-redux/get-shit-done-redux/issues/3234). - -#### Phase lifecycle seams deepened ([#3267](https://github.com/GSD-redux/get-shit-done-redux/pull/3267)) - -`phase-lifecycle.ts` becomes a thin public orchestrator. Three new modules are extracted: - -- **Phase Numbering Policy Module.** Phase-name and project-code validation, slug/ID generation, sequential and decimal phase progression, and roadmap-entry construction. -- **Phase Filesystem Adapter Module.** Directory listing, gitkeep creation, and archive operations for phase directories. -- **Phase Roadmap Mutation Module.** `replaceInCurrentMilestone` and atomic ROADMAP.md read-modify-write under planning lock. - -Backward-compatible re-exports are preserved on `phase-lifecycle.ts` so existing callers continue to work; new callers should import from the dedicated modules. - -Closes [#3270](https://github.com/GSD-redux/get-shit-done-redux/issues/3270). - ---- - -## What was in 1.41.x - -- **[v1.41.1](https://github.com/GSD-redux/get-shit-done-redux/releases/tag/v1.41.1)** — 14-fix hotfix: phase-plan-index DAG correctness, state-snapshot YAML frontmatter precedence, code-review SUMMARY parser hardening (`BL-` / `blocker:` accepted as Critical-tier), Codex install TOML floats + idempotent rollback, persistent SDK reachability probe, shared model-catalog source of truth (ADR-0003), and more. -- **[v1.41.0](https://github.com/GSD-redux/get-shit-done-redux/releases/tag/v1.41.0)** — six namespace meta-skills, `/gsd-health --context` utilization guard, `--minimal` install flag, `/gsd-edit-phase`, post-merge build & test gate, manual canary release workflow, and 25+ correctness fixes. See [`RELEASE-v1.41.0.md`](RELEASE-v1.41.0.md). - ---- - -## Installing - -```bash -# npm (global, RC channel) -npm install -g @opengsd/get-shit-done-redux@next - -# npx (one-shot) -npx @opengsd/get-shit-done-redux@next - -# Pin to this exact RC -npm install -g @opengsd/get-shit-done-redux@1.42.0-rc1 -``` - -The installer is idempotent — re-running on an existing install updates in-place, preserving your `.planning/` directory and local patches. - -To roll back to the latest stable, install with `@latest`: - -```bash -npx @opengsd/get-shit-done-redux@latest -``` diff --git a/docs/RELEASE-v1.42.1.md b/docs/RELEASE-v1.42.1.md deleted file mode 100644 index 51312c348..000000000 --- a/docs/RELEASE-v1.42.1.md +++ /dev/null @@ -1,178 +0,0 @@ -# v1.42.1 Release Notes - -Stable release. Published to npm under the `latest` tag. - -```bash -npx @opengsd/get-shit-done-redux@latest -``` - ---- - -## What's in this release - -1.42.1 is a safety and control-surface release. The headline additions are the -**package legitimacy gate**, **skill-surface budgeting**, and the **installer migration -framework** — three changes that make GSD safer to install, safer to update, and easier -to run in constrained contexts. The release also ships configurable `/gsd-ship` PR body -sections, `/gsd-review` reviewer defaults, optional fallow structural review, and -quota-aware execution recovery. Underneath that, 30+ correctness fixes cover -`project_code` phase directories, phase completion, nested git detection, Codex -install migration, SDK readiness, and decimal-phase dependencies. - -### Added - -- **Package legitimacy gate against slopsquatting** — researchers audit external - packages with `slopcheck`, planners add human verification for unverified packages, - and executors stop on package install failures instead of trying similarly named - alternatives. This closes the path where AI-hallucinated package names could flow - from research into `npm install` / `pip install` / `cargo add`. - ([#3215](https://github.com/GSD-redux/get-shit-done-redux/pull/3215)) - -- **Skill surface budgeting** — install with `--profile=core`, `--profile=standard`, - or the default `full`; profiles persist in `.gsd-profile`. Use `/gsd:surface` to - list, enable, disable, reset, or switch skill clusters without reinstalling. - `--minimal` and `--core-only` remain aliases for `--profile=core`. - ([#3408](https://github.com/GSD-redux/get-shit-done-redux/pull/3456)) - -- **Installer migration framework** — install now has explicit migration records, - baseline scanning, legacy cleanup, user-owned artifact preservation, dry-run - reporting, rollback protection, and ambiguous stale-file guardrails. - ([#3398](https://github.com/GSD-redux/get-shit-done-redux/pull/3398), - [#3399](https://github.com/GSD-redux/get-shit-done-redux/pull/3399), - [#3400](https://github.com/GSD-redux/get-shit-done-redux/pull/3400), - [#3402](https://github.com/GSD-redux/get-shit-done-redux/pull/3402), - [#3404](https://github.com/GSD-redux/get-shit-done-redux/pull/3404)) - -- **Configurable `/gsd-ship` PR body sections** — `ship.pr_body_sections` appends - project-specific PRD-style sections while preserving the required `Summary`, - `Changes`, `Requirements Addressed`, `Verification`, and `Key Decisions` sections. - ([#3391](https://github.com/GSD-redux/get-shit-done-redux/pull/3391)) - -- **`review.default_reviewers`** — no-flag `/gsd-review` can default to a configured - reviewer subset. Explicit reviewer flags and `--all` still take precedence. - ([#3464](https://github.com/GSD-redux/get-shit-done-redux/pull/3464)) - -- **Optional fallow structural review pre-pass** — `code_quality.fallow.*` runs a - structural pass before `/gsd-code-review`, writes `FALLOW.json`, and embeds - structural findings in `REVIEW.md`. - ([#3424](https://github.com/GSD-redux/get-shit-done-redux/pull/3486)) - -- **Structured CLI error mode** — `gsd-tools --json-errors` returns machine-readable - error envelopes for automation and SDK callers while preserving human-readable output - by default. - ([#3255](https://github.com/GSD-redux/get-shit-done-redux/pull/3304)) - -### Changed - -- **Human verification defaults to end-of-phase** — `workflow.human_verify_mode: - "end-of-phase"` keeps human checks in verification blocks instead of scattering - mid-flight checkpoint tasks. Set `"mid-flight"` to restore the previous blocking - checkpoint behavior. - ([#3309](https://github.com/GSD-redux/get-shit-done-redux/pull/3325)) - -- **Quota and rate-limit failures get a distinct recovery path** — execute-phase - classifies provider quota failures (`429`, `rate limit`, `usage limit`, - `RESOURCE_EXHAUSTED`, etc.) and guides wait-and-resume instead of retry-now. - ([#3095](https://github.com/GSD-redux/get-shit-done-redux/pull/3490)) - -- **Milestone tags can be disabled** — `git.create_tag: false` lets projects with - external release automation complete milestones without creating local tags. - Existing tag collisions now fail clearly instead of overwriting tags. - ([#3086](https://github.com/GSD-redux/get-shit-done-redux/pull/3508)) - -- **Statusline context meter can move to the front** — `statusline.context_position: - "front"` renders the context meter after the model name so it stays visible in narrow - terminals. - ([#2937](https://github.com/GSD-redux/get-shit-done-redux/pull/3515)) - -- **Reasoning effort is transported with resolved model IDs** — runtime-aware model - resolution now carries `reasoning_effort` where supported, including Codex config - output and SDK query paths. - ([#3474](https://github.com/GSD-redux/get-shit-done-redux/pull/3483)) - -- **Shell command projection and SDK architecture seams deepened** — hook commands, - path actions, subprocess execution, platform file I/O, SDK compatibility policy, and - runtime skill policy now flow through narrower typed modules. - ([#3238](https://github.com/GSD-redux/get-shit-done-redux/pull/3238), - [#3316](https://github.com/GSD-redux/get-shit-done-redux/pull/3316), - [#3470](https://github.com/GSD-redux/get-shit-done-redux/pull/3470), - [#3476](https://github.com/GSD-redux/get-shit-done-redux/pull/3476), - [#3481](https://github.com/GSD-redux/get-shit-done-redux/pull/3481), - [#3484](https://github.com/GSD-redux/get-shit-done-redux/pull/3484)) - -### Fixed - -- **`project_code` phase directory prefixes apply consistently** — first-touch - `/gsd-discuss-phase`, `/gsd-plan-phase`, import, gap-planning, and backlog creation - paths now create prefixed phase directories consistently. - ([#3287](https://github.com/GSD-redux/get-shit-done-redux/pull/3292), - [#3298](https://github.com/GSD-redux/get-shit-done-redux/pull/3306)) - -- **Phase completion is idempotent and refreshes state** — `state complete-phase` and - `phase.complete` no longer leave stale `STATE.md` progress, focus, or body - frontmatter fields behind. - ([#3489](https://github.com/GSD-redux/get-shit-done-redux/pull/3499), - [#3517](https://github.com/GSD-redux/get-shit-done-redux/pull/3520)) - -- **Nested git worktrees are detected** — `/gsd-new-project` and ingest flows avoid - creating nested `.git` directories when run inside an existing repository or - worktree. - ([#3491](https://github.com/GSD-redux/get-shit-done-redux/pull/3502)) - -- **Codex install and hook migration are safer** — AoT hooks use event-name leaf keys, - duplicate legacy `hooks.json` entries are removed, user hooks are preserved, and - unsupported execute-phase worktrees are blocked. - ([#3346](https://github.com/GSD-redux/get-shit-done-redux/pull/3505), - [#3357](https://github.com/GSD-redux/get-shit-done-redux/pull/3380), - [#3360](https://github.com/GSD-redux/get-shit-done-redux/pull/3380)) - -- **SDK install readiness is durable** — `--sdk` now forces SDK deployment, stale shims - are detected, Windows PATH probing is hardened, and "GSD SDK ready" only prints when - the shim is reachable. - ([#3033](https://github.com/GSD-redux/get-shit-done-redux/issues/3033), - [#3211](https://github.com/GSD-redux/get-shit-done-redux/pull/3282), - [#3231](https://github.com/GSD-redux/get-shit-done-redux/pull/3249), - [#3359](https://github.com/GSD-redux/get-shit-done-redux/pull/3380)) - -- **User custom skills are preserved during update detection** — `detect-custom-files` - now scans `skills/`, preventing user-added skill files from being missed during - patch preservation. - ([#3317](https://github.com/GSD-redux/get-shit-done-redux/pull/3318)) - -- **Decimal-phase `depends_on` references resolve correctly** — SDK phase indexing now - expands same-phase short forms such as `depends_on: [01]` and warns on unresolved - references. - ([#3488](https://github.com/GSD-redux/get-shit-done-redux/pull/3501)) - -- **`gsd-sdk query commit --files --respect-staged` preserves interactive staging** — - respect-staged mode now avoids restaging pathspecs and commits only the already - staged hunks within the requested file scope. - ([#3522](https://github.com/GSD-redux/get-shit-done-redux/pull/3528)) - ---- - -## What was in 1.41.0 - -[`RELEASE-v1.41.0.md`](RELEASE-v1.41.0.md) — per-phase-type model selection, -dynamic routing with failure-tier escalation, the optional update banner, -issue-driven orchestration, MVP mode SDK query verbs, graphify commit-based -staleness, and 25+ correctness fixes across Homebrew node paths, milestone archives, -secure-phase audits, cross-runtime installs, and statusline parsing. - ---- - -## Installing - -```bash -# npm (global) -npm install -g @opengsd/get-shit-done-redux@latest - -# npx (one-shot) -npx @opengsd/get-shit-done-redux@latest - -# Pin to this exact version -npm install -g @opengsd/get-shit-done-redux@1.42.1 -``` - -The installer is idempotent — re-running on an existing install updates in-place, -preserving your `.planning/` directory and local patches. diff --git a/docs/RELEASE-v1.42.3.md b/docs/RELEASE-v1.42.3.md deleted file mode 100644 index 9f86e9741..000000000 --- a/docs/RELEASE-v1.42.3.md +++ /dev/null @@ -1,157 +0,0 @@ -# v1.42.3 Release Notes - -Hotfix release. Published to npm under the `latest` tag. - -```bash -npx @opengsd/get-shit-done-redux@latest -``` - ---- - -## What's in this release - -1.42.3 is a stability hotfix on top of 1.42.2. The headline is **Codex -CLI 0.130.0 install routability** — after `npx @opengsd/get-shit-done-redux@latest ---codex`, `$gsd-*` skills now resolve correctly under Codex 0.130.0 and -later, where the previous build left users with zero routable -entrypoints. The release also ships **runtime-aware slash formatting** -so emitted commands match the install's routing shape (Claude → `/gsd-*`, -Codex → `$gsd-*`) instead of the deprecated colon form, an **argv-based -subprocess** fix for `check.ship-ready` that closes a shell-injection -class through git refnames, the **`phase_status` field on -init.plan-phase** that gates `/gsd:plan-phase` on closed phases, plus -correctness fixes for archived-phase warnings, future-phase warnings, -canonical Codex hooks, and the SDK bridge load path. - -### Fixed - -- **Codex CLI 0.130.0 install now materializes routable skills** — - `bin/install.js` writes `~/.codex/skills/gsd-/SKILL.md` for every - shipped command so `$gsd-*` skills resolve after install. Codex 0.130.0 - dropped the extra-skills-roots discovery the previous build relied on, - leaving users with a successful-looking install and zero usable - commands. Documented minimum Codex CLI version (0.130.0) inline in the - Codex sections of `USER-GUIDE.md` and `CONFIGURATION.md`. - ([#3562](https://github.com/GSD-redux/get-shit-done-redux/pull/3568), - [#3582](https://github.com/GSD-redux/get-shit-done-redux/pull/3609)) - -- **Runtime-aware slash formatter for user-facing emissions** — - `runtime-slash.cjs` produces `/gsd-` for skills-based runtimes - (Claude, Cursor, OpenCode, Kilo, etc.) and `$gsd-` for Codex. - The deprecated colon form `/gsd:` is no longer emitted at - runtime, so the recommendations from `init`, `phase`, `verify`, - `milestone`, `validate-command-router`, `workstream`, `profile-output`, - `drift`, `gsd2-import`, and `commands` now paste cleanly into the - active runtime. - ([#3584](https://github.com/GSD-redux/get-shit-done-redux/pull/3606)) - -- **Argv-based subprocess for `check.ship-ready`** — every git/gh probe - in `sdk/src/query/check-ship-ready.ts` now uses `execFileSync` with an - argv array instead of `execSync` with shell-interpolated strings. - Closes a shell-injection class where a malicious branch name (e.g. - `foo;touch INJ;bar`) interpolated into `git config --get - branch..merge` triggered arbitrary code execution. - ([#3587](https://github.com/GSD-redux/get-shit-done-redux/pull/3611)) - -- **`init.plan-phase` surfaces `phase_status`; `/gsd:plan-phase` gates - on closed phases** — `init.plan-phase` payload now carries the - authoritative phase status (`Pending` / `Planned` / `Executed` / - `Complete`) from `determinePhaseStatus`. The plan-phase workflow - short-circuits on `Complete` (with `--force` override), and - `--reviews` against a closed phase hard-errors with no override. - Prevents accidental re-planning over shipped code. - ([#3569](https://github.com/GSD-redux/get-shit-done-redux/pull/3581)) - -- **Canonical `[features].hooks` for Codex configs, legacy alias - recognized** — Codex config emission uses the canonical - `features.hooks` key while still accepting the legacy `codex_hooks` - shape on read. Fixes the install where the previous key drift left - Codex unable to find managed hooks. - ([#3566](https://github.com/GSD-redux/get-shit-done-redux/pull/3573)) - -- **SDK bridge loads via the public package export** — fixes a stale - internal path that broke SDK dispatch after install on some package - layouts. - ([#3567](https://github.com/GSD-redux/get-shit-done-redux/pull/3574)) - -- **W006/W007 health warnings skip archived and future phases** — - `/gsd:health` no longer flags phases that are intentionally - unimplemented (future) or archived as missing-on-disk or - missing-from-roadmap. - ([#3559](https://github.com/GSD-redux/get-shit-done-redux/pull/3565), - [#3560](https://github.com/GSD-redux/get-shit-done-redux/pull/3564)) - -- **Ultraplan runtime gates on Claude Code markers** — `/gsd:ultraplan` - detects the runtime via Claude Code markers and fails closed when - the version is unavailable, instead of running against an unknown - runtime. - ([#3561](https://github.com/GSD-redux/get-shit-done-redux/pull/3563)) - -- **Padded phase IDs match unpadded ROADMAP prose** — phase routing - through `phaseMarkdownRegexSource` handles `02.7` ↔ `2.7` and - similar padding mismatches so `/gsd:phase complete 02` updates a - ROADMAP that uses the short `### Phase 2:` form. - ([#3537](https://github.com/GSD-redux/get-shit-done-redux/pull/3538)) - -- **W007 ignores archived phase directories** — phases under - `.planning/milestones/v*/` no longer trigger - "exists on disk but not in roadmap" warnings against the active - roadmap. - ([#3560](https://github.com/GSD-redux/get-shit-done-redux/pull/3564)) - -- **Prompt-user migration actions resolve in non-TTY runs** — - `installer-migration-authoring` flows complete cleanly under CI / - non-interactive shells; error grouping clarified. - ([#3541](https://github.com/GSD-redux/get-shit-done-redux/pull/3547)) - -- **Executor agents forbidden from `git stash`** — execution agents - no longer use shared stash storage, which violated worktree - isolation when multiple agents ran in parallel. - ([#3542](https://github.com/GSD-redux/get-shit-done-redux/pull/3546)) - -- **Configuration manifests load from the installed payload** — - `configuration.generated.cjs` looks in the installed - `gsd-core/bin/shared/` path first, then falls back to - source-checkout `sdk/shared/`. Fixes the install where the manifest - loader failed on the runtime layout because the source-tree path - doesn't exist after install. - ([#3571](https://github.com/GSD-redux/get-shit-done-redux/pull/3572)) - ---- - -## What was in 1.42.1 - -[`RELEASE-v1.42.1.md`](RELEASE-v1.42.1.md) — package legitimacy gate -against slopsquatting, skill-surface budgeting (`--profile=core` / -`standard` / `full`), installer migration framework, configurable -`/gsd-ship` PR body sections, `review.default_reviewers`, optional -fallow structural review, structured `--json-errors` CLI mode, plus -30+ correctness fixes across `project_code` phase prefixes, phase -completion idempotency, nested git detection, Codex install migration, -SDK install readiness, and decimal-phase dependencies. - ---- - -## Installing - -```bash -# npm (global) -npm install -g @opengsd/get-shit-done-redux@latest - -# npx (one-shot) -npx @opengsd/get-shit-done-redux@latest - -# Pin to this exact version -npm install -g @opengsd/get-shit-done-redux@1.42.3 -``` - -The installer is idempotent — re-running on an existing install -updates in-place, preserving your `.planning/` directory and local -patches. - -### Codex CLI requirement - -Codex installs (`--codex`) require **Codex CLI 0.130.0 or later**. -Earlier Codex versions used a discovery mechanism that the current -install layout does not target; upgrade Codex first, then re-run the -GSD installer. diff --git a/docs/RELEASE-v1.50.0-canary.1.md b/docs/RELEASE-v1.50.0-canary.1.md deleted file mode 100644 index 1ceb38d7a..000000000 --- a/docs/RELEASE-v1.50.0-canary.1.md +++ /dev/null @@ -1,94 +0,0 @@ -# v1.50.0-canary.1 Release Notes - -First canary cut for the **1.50.0** train. Published to npm under the `canary` dist-tag. - -```bash -npx @opengsd/get-shit-done-redux@canary -# or pin exact: -npm install -g @opengsd/get-shit-done-redux@1.50.0-canary.1 -``` - -> **Canary stream caveat.** Canary builds come from the long-lived `dev` integration branch and may carry rough edges that the `next` (RC) and `latest` (stable) channels never see. Use canary when you want to exercise in-flight features early and report findings; do NOT pin production projects to it. See [CANARY.md](CANARY.md) for the stream policy and rollback path. - ---- - -## Headline: Vertical MVP / TDD / UAT planning track - -The 1.50.0 train opens with a four-phase vertical slice that adds an end-to-end "MVP mode" to the GSD planning pipeline — from project kickoff, through phase planning, through execution, through verification. Issue [#2826](https://github.com/GSD-redux/get-shit-done-redux/issues/2826) is the umbrella PRD. - -### What's new - -#### `/gsd plan-phase --mvp` — vertical-slice planning ([#2867](https://github.com/GSD-redux/get-shit-done-redux/pull/2867)) - -`/gsd plan-phase` learns a `--mvp` flag that flips the planner into vertical-slice mode. The planner reads `**Mode:** mvp` from a phase's ROADMAP entry, an explicit `--mvp` CLI override, or `workflow.mvp_mode` in `.planning/config.json` (precedence in that order, with the CLI flag winning). Under MVP mode the planner: - -- Surfaces a "Walking Skeleton" template for the very first phase of a new project — a thin end-to-end vertical slice that proves the wiring before any horizontal layer is built -- Suppresses horizontal-layer language ("data layer first, then business logic, then UI") in favor of user-flow-driven decomposition -- Emits the user story as a header at the top of `PLAN.md` - -New required-reading injection: `references/planner-mvp-mode.md`. New parser surface: `roadmap.cjs` extracts a `mode` field on every phase lookup. - -#### `/gsd mvp-phase ` — guided user-story phase framing ([#2874](https://github.com/GSD-redux/get-shit-done-redux/pull/2874)) - -A new top-level command that walks the user through framing a phase as a vertical MVP slice before planning. Three structured prompts capture an "As a / I want to / So that" user story. If the story is too large, an interactive SPIDR (Spike / Path / Interface / Data / Rule) splitting flow surfaces a list of `/gsd add-phase` invocations to break the work apart. The command then: - -- Mutates the ROADMAP entry to set `**Mode:** mvp` and replaces `**Goal:**` with the assembled user story -- Delegates to `/gsd plan-phase --mvp ` to produce the plan - -Two new references: [`spidr-splitting.md`](../gsd-core/references/spidr-splitting.md), [`user-story-template.md`](../gsd-core/references/user-story-template.md). - -#### Execute-phase MVP+TDD runtime gate ([#2878](https://github.com/GSD-redux/get-shit-done-redux/pull/2878)) - -When `MVP_MODE` and `TDD_MODE` are both true at execution time, `execute-phase` adds a per-task gate that requires a `test(-):` commit to exist before the corresponding `feat(...)` commit. The reference [`execute-mvp-tdd.md`](../gsd-core/references/execute-mvp-tdd.md) documents the contract; the executor agent (`agents/gsd-executor.md`) gains an MVP+TDD Gate section that explains when the gate trips, what evidence it expects, and how to escalate via the documented escape hatch. - -> **Known canary-bake item.** The current bash gate snippet uses some workflow variables that aren't fully wired (`${PLAN_ID}`, `${TASK_TDD}`) and the documented `--force-mvp-gate` escape hatch is referenced in the user-facing error message but not yet implemented in the argument parser. These are tracked as canary-bake follow-ups; the gate itself is functional for the dominant code path. - -#### Verify-work MVP-mode UAT framing ([#2880](https://github.com/GSD-redux/get-shit-done-redux/pull/2880)) - -Under MVP mode, `verify-work` flips the UAT script's framing so user-flow steps come **before** technical correctness checks — the inverse of the default order. The verifier agent gains a `mvp_mode_verification` section. New reference: [`verify-mvp-mode.md`](../gsd-core/references/verify-mvp-mode.md). - -A user-story format guard at the top of `extract_tests` will halt verification if a phase claims `**Mode:** mvp` but its `**Goal:**` doesn't parse as `As a … I want to … so that …` — pointing the user at `/gsd mvp-phase ` to repair. - -#### Discovery & progress surfaces ([#2883](https://github.com/GSD-redux/get-shit-done-redux/pull/2883)) - -The MVP slice closes out with read-side surfaces: - -- **`/gsd new-project`** prompts up front for **Vertical MVP** vs **Horizontal Layers** mode and seeds the milestone accordingly -- **`/gsd-progress`** emits a "User-flow next up" panel for MVP-mode phases, surfacing user-visible task names ahead of internal scaffolding -- **`/gsd-stats`** adds an "MVP phases: N" summary line when the roadmap contains any -- **`/gsd-graphify`** visually differentiates MVP-mode phase nodes from horizontal-layer phases in the rendered graph - ---- - -## Bonus fixes also in this canary - -- **`/gsd-progress` no longer cites stale CLAUDE.md project blocks** as the source for the "Next Up" section ([#2912](https://github.com/GSD-redux/get-shit-done-redux/issues/2912)) — explicit context-authority directive added to the report step. - -(Other recent main-stream fixes — agent-skills CLI JSON wrap, audit-open ReferenceError, execute-phase branching, Hermes runtime — target the `next` stream and will arrive in the canary when they land in `dev`.) - ---- - -## Install / upgrade - -```bash -# Try the canary -npx @opengsd/get-shit-done-redux@canary - -# Or pin exact -npm install -g @opengsd/get-shit-done-redux@1.50.0-canary.1 -``` - -The installer's defensive purge will rewrite stale config blocks left by older GSD versions on first run. No manual cleanup needed. - -## Reporting issues - -If something breaks on canary, file against [the issue tracker](https://github.com/GSD-redux/get-shit-done-redux/issues) with the `bug` template and mention `1.50.0-canary.1` so it gets routed back into the dev stream rather than the stable stream. - -## What ships next in this train - -Pending dev-stream merges that should land before promotion to `next`: -- Resolve canary-bake items in the MVP+TDD gate (variable wiring + `--force-mvp-gate` parser) -- Sync recent main-stream fixes (`#2918`, `#2919`, `#2921`, `#2917`, `#2920`) into dev -- Ride a few canary cycles for real-user MVP/TDD/UAT feedback - -When the dev stream stabilizes, the train promotes to `main` as `v1.50.0-rc.1` (the `next` channel).