chore: rebrand to GSD-redux/get-shit-done-redux

Mirror of code, issues, and PRs from the upstream gsd-build/get-shit-done,
which appears compromised or abandoned (maintainer unreachable since
2026-04-01; $GSD token linked to rug-pull).

- Adds rebrand notice block at top of English README
- Removes $GSD token badge and @gsd_foundation X badge (keeps Discord)
- Renames npm packages: get-shit-done-cc -> get-shit-done-redux,
  @gsd-build/sdk -> @gsd-redux/sdk
- Updates all repo URLs across docs, workflows, package.json, bin/
- Updates ci@gsd-build -> ci@gsd-redux in workflow git identities
- Leaves CHANGELOG and .changeset/* alone (historical, time-stamped)
This commit is contained in:
Tom Boucher
2026-05-22 08:27:07 -04:00
parent e1582a5f1b
commit dff176bfd2
132 changed files with 902 additions and 876 deletions

View File

@@ -120,7 +120,7 @@ User-facing entry points. Each file contains YAML frontmatter (name, description
**Total commands:** see [`docs/INVENTORY.md`](INVENTORY.md#commands) for the authoritative count and full roster.
#### Two-stage hierarchical routing (v1.40, [#2792](https://github.com/gsd-build/get-shit-done/issues/2792))
#### Two-stage hierarchical routing (v1.40, [#2792](https://github.com/GSD-redux/get-shit-done-redux/issues/2792))
To keep the eager skill-listing token cost low, v1.40 introduces six namespace **meta-skills** (`gsd-workflow`, `gsd-project`, `gsd-quality`, `gsd-context`, `gsd-manage`, `gsd-ideate` — sourced from `commands/gsd/ns-*.md`, but the invocable `name:` is the bare form shown here) layered above the concrete sub-skills. The model sees 6 namespace routers (~120 tokens) instead of a flat 86-skill listing (~2,150 tokens), selects a namespace, then routes to the concrete sub-skill via a routing table embedded in the namespace router's body. Namespace skills are **additive** — every concrete command is still directly invocable.

View File

@@ -20,13 +20,13 @@ A canary build NEVER becomes a `next` build directly, and a `next` build NEVER b
```bash
# One-off invocation (npx)
npx get-shit-done-cc@canary
npx get-shit-done-redux@canary
# Pin to the canary dist-tag globally
npm install -g get-shit-done-cc@canary
npm install -g get-shit-done-redux@canary
# Pin to an exact canary version
npm install -g get-shit-done-cc@1.50.0-canary.1
npm install -g get-shit-done-redux@1.50.0-canary.1
```
The CC installer's defensive purge rewrites stale config blocks left by older GSD versions, so reinstalling on top of an existing project is safe.
@@ -47,20 +47,20 @@ The CC installer's defensive purge rewrites stale config blocks left by older GS
```bash
# Back to the current stable
npm install -g get-shit-done-cc@latest
npm install -g get-shit-done-redux@latest
# Or to the next/RC train
npm install -g get-shit-done-cc@next
npm install -g get-shit-done-redux@next
```
If you have a local project that interacted with canary-only features (for instance, an MVP-mode phase planned by 1.50.0-canary), the planner artifacts in `.planning/` remain valid — older GSD versions will just ignore the `**Mode:** mvp` field on phases.
## Reporting issues against canary
File against the [issue tracker](https://github.com/gsd-build/get-shit-done/issues) with the `bug` template. Include the exact canary version (`get-shit-done-cc --version` reports it) so triage can route the report back into the `dev` stream rather than the stable stream.
File against the [issue tracker](https://github.com/GSD-redux/get-shit-done-redux/issues) with the `bug` template. Include the exact canary version (`get-shit-done-redux --version` reports it) so triage can route the report back into the `dev` stream rather than the stable stream.
## Where to look next
- Active canary release notes: [`docs/RELEASE-v1.50.0-canary.1.md`](RELEASE-v1.50.0-canary.1.md)
- Stable release notes: [`CHANGELOG.md`](../CHANGELOG.md)
- Stream architecture rationale: discussed across [#2727](https://github.com/gsd-build/get-shit-done/issues/2727), [#2773](https://github.com/gsd-build/get-shit-done/issues/2773) (codex schema-break and the resulting promotion bottleneck that motivated explicit stream isolation)
- Stream architecture rationale: discussed across [#2727](https://github.com/GSD-redux/get-shit-done-redux/issues/2727), [#2773](https://github.com/GSD-redux/get-shit-done-redux/issues/2773) (codex schema-break and the resulting promotion bottleneck that motivated explicit stream isolation)

View File

@@ -1,6 +1,6 @@
# GSD CLI Tools Reference
> Surface-area reference for `get-shit-done/bin/gsd-tools.cjs` (legacy Node CLI). Workflows and agents should prefer `gsd-sdk query` or `@gsd-build/sdk` where a handler exists — see [SDK and programmatic access](#sdk-and-programmatic-access). For slash commands and user flows, see [Command Reference](COMMANDS.md).
> Surface-area reference for `get-shit-done/bin/gsd-tools.cjs` (legacy Node CLI). Workflows and agents should prefer `gsd-sdk query` or `@gsd-redux/sdk` where a handler exists — see [SDK and programmatic access](#sdk-and-programmatic-access). For slash commands and user flows, see [Command Reference](COMMANDS.md).
---
@@ -43,7 +43,7 @@ Use this when authoring workflows, not when you only need the command list below
- Resolves argv with the same **longest-prefix** rules as the typed registry (`resolveQueryArgv` in `sdk/src/query/registry.ts`). Unregistered commands **fail fast** — use `node …/gsd-tools.cjs` only for handlers not in the registry.
- Full matrix (CJS command → registry key, CLI-only tools, aliases, golden tiers): [sdk/src/query/QUERY-HANDLERS.md](../sdk/src/query/QUERY-HANDLERS.md).
**2. TypeScript — `@gsd-build/sdk` (`GSDTools`, `createRegistry`)**
**2. TypeScript — `@gsd-redux/sdk` (`GSDTools`, `createRegistry`)**
- `GSDTools` now routes through the **SDK Runtime Bridge Module** (`sdk/src/query-runtime-bridge.ts`). Native registry dispatch is preferred; subprocess fallback is explicit policy (`allowFallbackToSubprocess`) and can be disabled for strict SDK-only execution.
- `strictSdk` mode fails fast when a command has no native adapter, making SDK publish/readiness checks deterministic.

View File

@@ -16,7 +16,7 @@ The hyphen and colon forms are *runtime-specific spellings of the same command*.
## Namespace Meta-Skills
Six namespace routers ship as the first-stage entry points in v1.40. They keep the eager skill-listing token cost low (~120 tokens for 6 routers vs ~2,150 for a flat 86-skill listing) while the full surface remains directly invocable. The model selects a namespace, then routes to the concrete sub-skill. See [#2792](https://github.com/gsd-build/get-shit-done/issues/2792).
Six namespace routers ship as the first-stage entry points in v1.40. They keep the eager skill-listing token cost low (~120 tokens for 6 routers vs ~2,150 for a flat 86-skill listing) while the full surface remains directly invocable. The model selects a namespace, then routes to the concrete sub-skill. See [#2792](https://github.com/GSD-redux/get-shit-done-redux/issues/2792).
| Command | Routes to |
|---------|-----------|
@@ -757,7 +757,7 @@ Generate a developer behavioral profile from Claude Code session analysis across
Validate `.planning/` directory integrity. With `--context`, probes the
context-window utilization guard against the 60 % / 70 % thresholds (added
v1.40.0, [#2792](https://github.com/gsd-build/get-shit-done/issues/2792)).
v1.40.0, [#2792](https://github.com/GSD-redux/get-shit-done-redux/issues/2792)).
| Flag | Description |
|------|-------------|

View File

@@ -136,11 +136,11 @@ GSD stores project settings in `.planning/config.json`. Created during `/gsd-new
|---------|------|---------|---------|-------------|
| `mode` | enum | `interactive`, `yolo` | `interactive` | `yolo` auto-approves decisions; `interactive` confirms at each step |
| `granularity` | enum | `coarse`, `standard`, `fine` | `standard` | Controls phase count: `coarse` (3-5), `standard` (5-8), `fine` (8-12) |
| `model_profile` | enum | `quality`, `balanced`, `budget`, `adaptive`, `inherit` | `balanced` | Model tier for each agent (see [Model Profiles](#model-profiles)). `adaptive` was added per [#1713](https://github.com/gsd-build/get-shit-done/issues/1713) / [#1806](https://github.com/gsd-build/get-shit-done/issues/1806) and resolves the same way as the other tiers under runtime-aware profiles. |
| `runtime` | string | `claude`, `codex`, or any string | (none) | Active runtime for [runtime-aware profile resolution](#runtime-aware-profiles-2517). When set, profile tiers (opus/sonnet/haiku) resolve to runtime-native model IDs. Today only the Codex install path emits per-agent model IDs from this resolver; other runtimes (`opencode`, `gemini`, `qwen`, `copilot`, …) consume the resolver at spawn time and gain dedicated install-path support in [#2612](https://github.com/gsd-build/get-shit-done/issues/2612). When unset (default), behavior is unchanged from prior versions. Added in v1.39 |
| `model_profile` | enum | `quality`, `balanced`, `budget`, `adaptive`, `inherit` | `balanced` | Model tier for each agent (see [Model Profiles](#model-profiles)). `adaptive` was added per [#1713](https://github.com/GSD-redux/get-shit-done-redux/issues/1713) / [#1806](https://github.com/GSD-redux/get-shit-done-redux/issues/1806) and resolves the same way as the other tiers under runtime-aware profiles. |
| `runtime` | string | `claude`, `codex`, or any string | (none) | Active runtime for [runtime-aware profile resolution](#runtime-aware-profiles-2517). When set, profile tiers (opus/sonnet/haiku) resolve to runtime-native model IDs. Today only the Codex install path emits per-agent model IDs from this resolver; other runtimes (`opencode`, `gemini`, `qwen`, `copilot`, …) consume the resolver at spawn time and gain dedicated install-path support in [#2612](https://github.com/GSD-redux/get-shit-done-redux/issues/2612). When unset (default), behavior is unchanged from prior versions. Added in v1.39 |
| `model_profile_overrides.<runtime>.<tier>` | string \| object | per-runtime tier override | (none) | Override the runtime-aware tier mapping for a specific `(runtime, tier)`. Tier is one of `opus`, `sonnet`, `haiku`. Value is either a model ID string (e.g. `"gpt-5-pro"`) or `{ model, reasoning_effort }`. See [Runtime-Aware Profiles](#runtime-aware-profiles-2517). Added in v1.39 |
| `models.<phase_type>` | enum | `opus`, `sonnet`, `haiku`, `inherit` | (none) | Per-phase-type model tier. Six accepted slots: `planning`, `discuss`, `research`, `execution`, `verification`, `completion`. Lets you tune at the phase level ("Opus for planning, Sonnet for the rest") without learning agent names. Resolves between `model_overrides` (higher) and `model_profile` (lower); see [Per-Phase-Type Models](#per-phase-type-models-models--added-in-v140). Added in v1.40 ([#3023](https://github.com/gsd-build/get-shit-done/pull/3030)) |
| `dynamic_routing.enabled` | boolean | `true`, `false` | `false` | Master switch for [dynamic routing with failure-tier escalation](#dynamic-routing-with-failure-tier-escalation-dynamic_routing--added-in-v140). When `true`, agents resolve to `tier_models[default_tier]` and escalate one tier up on orchestrator-detected soft failure. Added in v1.40 ([#3024](https://github.com/gsd-build/get-shit-done/pull/3031)) |
| `models.<phase_type>` | enum | `opus`, `sonnet`, `haiku`, `inherit` | (none) | Per-phase-type model tier. Six accepted slots: `planning`, `discuss`, `research`, `execution`, `verification`, `completion`. Lets you tune at the phase level ("Opus for planning, Sonnet for the rest") without learning agent names. Resolves between `model_overrides` (higher) and `model_profile` (lower); see [Per-Phase-Type Models](#per-phase-type-models-models--added-in-v140). Added in v1.40 ([#3023](https://github.com/GSD-redux/get-shit-done-redux/pull/3030)) |
| `dynamic_routing.enabled` | boolean | `true`, `false` | `false` | Master switch for [dynamic routing with failure-tier escalation](#dynamic-routing-with-failure-tier-escalation-dynamic_routing--added-in-v140). When `true`, agents resolve to `tier_models[default_tier]` and escalate one tier up on orchestrator-detected soft failure. Added in v1.40 ([#3024](https://github.com/GSD-redux/get-shit-done-redux/pull/3031)) |
| `dynamic_routing.tier_models.<tier>` | enum | `opus`, `sonnet`, `haiku` | (none) | Tier alias for `light`, `standard`, or `heavy`. Used when `dynamic_routing.enabled: true`. Added in v1.40 |
| `dynamic_routing.escalate_on_failure` | boolean | `true`, `false` | `true` | When `false`, escalation is disabled even if `enabled: true` — every attempt uses the default tier. Added in v1.40 |
| `dynamic_routing.max_escalations` | integer | `0`, `1`, `2`, … | `1` | Hard cap on retries per agent invocation. Beyond the cap the resolver returns the cap-tier model. Added in v1.40 |
@@ -258,7 +258,7 @@ All workflow toggles follow the **absent = enabled** pattern. If a key is missin
| `executor.stall_detect_interval_minutes` | number | `5` | Minutes between executor stall checks while an executor agent is active. The execute-phase orchestrator uses this cadence to inspect recent commits and avoid waiting forever on a silent agent. |
| `executor.stall_threshold_minutes` | number | `10` | Minutes without executor completion or expected-branch commit activity before execute-phase offers recovery choices for a possible stalled executor. |
| `workflow.inline_plan_threshold` | number | `3` | Maximum number of tasks in a phase before the planner generates a separate PLAN.md file instead of inlining tasks in the prompt |
| `workflow.drift_threshold` | number | `3` | Minimum number of new structural elements (new directories, barrel exports, migrations, route modules) introduced during a phase before the post-execute codebase-drift gate takes action. See [#2003](https://github.com/gsd-build/get-shit-done/issues/2003). Added in v1.39 |
| `workflow.drift_threshold` | number | `3` | Minimum number of new structural elements (new directories, barrel exports, migrations, route modules) introduced during a phase before the post-execute codebase-drift gate takes action. See [#2003](https://github.com/GSD-redux/get-shit-done-redux/issues/2003). Added in v1.39 |
| `workflow.drift_action` | string | `warn` | What to do when `workflow.drift_threshold` is exceeded after `/gsd-execute-phase`. `warn` prints a message suggesting `/gsd-map-codebase --paths …`; `auto-remap` spawns `gsd-codebase-mapper` scoped to the affected paths. Added in v1.39 |
| `workflow.build_command` | string | (none) | Shell command to build the project in the post-merge build gate (Step A of step 5.6 in execute-phase). When unset, the gate auto-detects: Xcode (`.xcodeproj` present) → `xcodebuild build`, `Makefile` with `build:` target → `make build`, Justfile → `just build`, `Cargo.toml` → `cargo build`, `go.mod` → `go build ./...`, Python → `python -m py_compile`, `package.json` with `build` script → `npm run build`. Runs with a 5-minute timeout; failure increments `WAVE_FAILURE_COUNT`. Added in v1.39 |
| `workflow.test_command` | string | (none) | Shell command to run the project's test suite in the post-merge test gate (Step B of step 5.6 in execute-phase) and the regression gate. When unset, the gate auto-detects: Xcode (`.xcodeproj` present) → `xcodebuild test`, `Makefile` with `test:` target → `make test`, Justfile → `just test`, `package.json` → `npm test`, `Cargo.toml` → `cargo test`, `go.mod` → `go test ./...`, Python → `python -m pytest`. Runs with a 5-minute timeout; failure increments `WAVE_FAILURE_COUNT`. Added in v1.39 |
@@ -811,7 +811,7 @@ for the change to take effect. See issue #2256.
### Per-Phase-Type Models (`models`) — added in v1.41
> Express tuning at the **phase** level (planning, research, execution, verification) without learning the agent taxonomy. Added in [#3023](https://github.com/gsd-build/get-shit-done/pull/3030).
> Express tuning at the **phase** level (planning, research, execution, verification) without learning the agent taxonomy. Added in [#3023](https://github.com/GSD-redux/get-shit-done-redux/pull/3030).
`model_overrides` is per-**agent** (precise but verbose; you have to know that `gsd-codebase-mapper` is research and `gsd-doc-writer` is execution). The `models` block lets you say "Opus for planning and execution, Sonnet for the rest" in two lines:
@@ -895,7 +895,7 @@ Direct edits to `.planning/config.json` are looser — the resolver simply ignor
### Dynamic Routing with Failure-Tier Escalation (`dynamic_routing`) — added in v1.41
> Start cheap, escalate only when the agent fails the gate. Added in [#3024](https://github.com/gsd-build/get-shit-done/pull/3031).
> Start cheap, escalate only when the agent fails the gate. Added in [#3024](https://github.com/GSD-redux/get-shit-done-redux/pull/3031).
`dynamic_routing` lets you pay for the cheap tier by default and only escalate to the more expensive tier when the orchestrator detects a soft failure (verification inconclusive, plan-check FLAG, etc.).
@@ -974,7 +974,7 @@ The `dynamic_routing` block is **disabled by default** — `enabled: false` (or
### Non-Claude Runtimes (Codex, OpenCode, Gemini CLI, Kilo)
> **Codex CLI minimum supported version: `0.130.0`** (issue [#3562](https://github.com/gsd-build/get-shit-done/issues/3562)).
> **Codex CLI minimum supported version: `0.130.0`** (issue [#3562](https://github.com/GSD-redux/get-shit-done-redux/issues/3562)).
>
> [Codex CLI 0.130.0](https://github.com/openai/codex/releases/tag/rust-v0.130.0) (released 2026-05-08) removed extra-skills-roots discovery via [openai/codex#21485](https://github.com/openai/codex/pull/21485). From this version forward, Codex CLI only scans `~/.codex/skills/<name>/SKILL.md`, `<project>/.codex/skills/`, and registered plugin roots for invocable skills. GSD installs the `$gsd-*` surface as `~/.codex/skills/gsd-<name>/SKILL.md` so commands resolve after a Codex restart. Earlier Codex CLI versions can show a duplicate listing (the legacy extra-roots scan plus the user-root copies) — restart Codex and either upgrade to ≥ 0.130.0 or accept the duplicates until you do.

View File

@@ -1054,7 +1054,7 @@ When the user declines (or keeps a non-GSD) statusline, the installer offers a S
GSD update available: 1.39.0 → 1.40.0. Run /gsd-update.
```
The banner is silent when up-to-date and rate-limits "check failed" diagnostics to once per 24 hours. Removed cleanly by `npx get-shit-done-cc --uninstall` or by deleting the SessionStart entry that references `gsd-update-banner.js`.
The banner is silent when up-to-date and rate-limits "check failed" diagnostics to once per 24 hours. Removed cleanly by `npx get-shit-done-redux --uninstall` or by deleting the SessionStart entry that references `gsd-update-banner.js`.
### 38. Developer Profiling
@@ -1436,7 +1436,7 @@ Test suite that scans all agent, workflow, and command files for embedded inject
### 55. Multi-Runtime Installer Selection
**Part of:** `npx get-shit-done-cc`
**Part of:** `npx get-shit-done-redux`
**Purpose:** Select multiple runtimes in a single interactive install session.
@@ -1455,7 +1455,7 @@ Test suite that scans all agent, workflow, and command files for embedded inject
### 56. Windsurf Runtime Support
**Part of:** `npx get-shit-done-cc`
**Part of:** `npx get-shit-done-redux`
**Purpose:** Add Windsurf as a supported AI CLI runtime for GSD installation and execution.
@@ -1695,7 +1695,7 @@ Test suite that scans all agent, workflow, and command files for embedded inject
### 68. Claude Code Skills Migration
**Part of:** `npx get-shit-done-cc`
**Part of:** `npx get-shit-done-redux`
**Purpose:** Migrate GSD commands to Claude Code 2.1.88+ skills format with backward compatibility.
@@ -1959,7 +1959,7 @@ Test suite that scans all agent, workflow, and command files for embedded inject
### 85. New Runtime Support (Trae, Cline, Augment Code)
**Part of:** `npx get-shit-done-cc`
**Part of:** `npx get-shit-done-redux`
**Purpose:** Extend GSD installation to Trae IDE, Cline, and Augment Code runtimes.
@@ -2301,7 +2301,7 @@ Test suite that scans all agent, workflow, and command files for embedded inject
### 104. New Runtime Support (Cline, CodeBuddy, Qwen Code)
**Part of:** `npx get-shit-done-cc`
**Part of:** `npx get-shit-done-redux`
**Purpose:** Extend GSD installation to Cline, CodeBuddy, and Qwen Code runtimes.
@@ -2644,7 +2644,7 @@ Users who run a memory / knowledge-base MCP server (for example, ExoCortex-style
- REQ-CONSOLIDATE-03: Deleted micro-skill slash forms (the bare `gsd-add-todo`, `gsd-add-backlog`, `gsd-plant-seed`, `gsd-check-todos`, `gsd-add-phase`, `gsd-insert-phase`, `gsd-remove-phase`, `gsd-edit-phase`, `gsd-new-workspace`, `gsd-list-workspaces`, `gsd-remove-workspace`, `gsd-settings-advanced`, `gsd-settings-integrations`, `gsd-set-profile`, `gsd-sketch-wrap-up`, `gsd-spike-wrap-up`, `gsd-reapply-patches`, `gsd-code-review-fix`, …) MUST resolve to "Unknown command" — no shadow stubs.
- REQ-CONSOLIDATE-04: `autonomous.md` invokes `/gsd-code-review --fix` (was previously calling the deleted `gsd-code-review-fix`).
**Reference issue:** [#2790](https://github.com/gsd-build/get-shit-done/issues/2790)
**Reference issue:** [#2790](https://github.com/GSD-redux/get-shit-done-redux/issues/2790)
---
@@ -2672,7 +2672,7 @@ Users who run a memory / knowledge-base MCP server (for example, ExoCortex-style
- REQ-NS-02: Existing sub-skills are unchanged and still invocable directly — namespace skills are additive, not a replacement for direct slash forms.
- REQ-NS-03: The body of each namespace router contains a routing table that maps user intent to the correct concrete sub-skill on the post-#2790 consolidated surface.
**Reference issue:** [#2792](https://github.com/gsd-build/get-shit-done/issues/2792)
**Reference issue:** [#2792](https://github.com/GSD-redux/get-shit-done-redux/issues/2792)
---
@@ -2687,7 +2687,7 @@ Users who run a memory / knowledge-base MCP server (for example, ExoCortex-style
- REQ-CTX-GUARD-02: The same triage is exposed as `gsd-sdk query validate.context --tokens-used <int> --context-window <int>` — a structured envelope for status-line and hook callers (#125). Both flags are required; the handler returns the same `{ percent, state }` envelope as the pure classifier in REQ-CTX-GUARD-03.
- REQ-CTX-GUARD-03: The classifier (`bin/lib/context-utilization.cjs`) is pure: input `(tokensUsed, contextWindow)`, output `{ percent, state }`. Easy to unit-test, easy to reuse from any caller.
**Reference issue:** [#2792](https://github.com/gsd-build/get-shit-done/issues/2792)
**Reference issue:** [#2792](https://github.com/GSD-redux/get-shit-done-redux/issues/2792)
---
@@ -2704,7 +2704,7 @@ Users who run a memory / knowledge-base MCP server (for example, ExoCortex-style
- REQ-LIFECYCLE-02: `formatGsdState()` checks the lifecycle fields in priority order and emits the first matching scene (Phase active → Idle next-recommended → Milestone complete → Default fallback).
- REQ-LIFECYCLE-03: All four fields default to undefined; existing STATE.md files render byte-for-byte identically.
**Reference issue:** [#2833](https://github.com/gsd-build/get-shit-done/issues/2833) — see [`docs/STATE-MD-LIFECYCLE.md`](STATE-MD-LIFECYCLE.md) for the full field reference and rendering rules.
**Reference issue:** [#2833](https://github.com/GSD-redux/get-shit-done-redux/issues/2833) — see [`docs/STATE-MD-LIFECYCLE.md`](STATE-MD-LIFECYCLE.md) for the full field reference and rendering rules.
---
@@ -2744,7 +2744,7 @@ Users who run a memory / knowledge-base MCP server (for example, ExoCortex-style
- REQ-PHASE-MODELS-02: Configs without a `models` block behave byte-for-byte identically to pre-v1.41 behavior.
- REQ-PHASE-MODELS-03: `discuss` and `completion` are accepted by the schema for forward compatibility; setting them today is a no-op until a subagent maps to each.
**Reference issue:** [#3023](https://github.com/gsd-build/get-shit-done/pull/3030)
**Reference issue:** [#3023](https://github.com/GSD-redux/get-shit-done-redux/pull/3030)
---
@@ -2765,7 +2765,7 @@ Users who run a memory / knowledge-base MCP server (for example, ExoCortex-style
- REQ-DYNROUTE-02: New resolver `resolveModelForTier(cwd, agent, attempt)` in `core.cjs` is the single call-site for orchestrator integration.
- REQ-DYNROUTE-03: `max_escalations` caps the escalation chain to prevent runaway cost.
**Reference issue:** [#3024](https://github.com/gsd-build/get-shit-done/pull/3031)
**Reference issue:** [#3024](https://github.com/GSD-redux/get-shit-done-redux/pull/3031)
---
@@ -2778,14 +2778,14 @@ Users who run a memory / knowledge-base MCP server (for example, ExoCortex-style
- The hook reads the existing `~/.cache/gsd/gsd-update-check.json` cache — the same cache used by the statusline — and prints a banner only when an update is available.
- Silent when up-to-date.
- Failure diagnostics rate-limited to once per 24 h.
- Cleanly removed by `npx get-shit-done-cc --uninstall`.
- Cleanly removed by `npx get-shit-done-redux --uninstall`.
**Requirements:**
- REQ-BANNER-01: Banner does not install without explicit opt-in.
- REQ-BANNER-02: No additional network requests — reuses the existing background update-check cache.
- REQ-BANNER-03: Uninstall path removes the banner hook.
**Reference issue:** [#2795](https://github.com/gsd-build/get-shit-done/pull/2795)
**Reference issue:** [#2795](https://github.com/GSD-redux/get-shit-done-redux/pull/2795)
---
@@ -2804,7 +2804,7 @@ Users who run a memory / knowledge-base MCP server (for example, ExoCortex-style
No new commands or daemon process — purely a documentation artifact that maps existing primitives onto a tracker-driven workflow.
**Reference issue:** [#2840](https://github.com/gsd-build/get-shit-done/pull/2840)
**Reference issue:** [#2840](https://github.com/GSD-redux/get-shit-done-redux/pull/2840)
---
@@ -2832,7 +2832,7 @@ Source commit: abc1234 (3 commits behind HEAD)
**Fallback:** pre-v0.7 graphs and non-git checkouts return `commit_stale: null`; callers fall back to the existing mtime-based `stale` flag. No behavior change for existing users.
**Reference issue:** [#3170](https://github.com/gsd-build/get-shit-done/issues/3170)
**Reference issue:** [#3170](https://github.com/GSD-redux/get-shit-done-redux/issues/3170)
---
@@ -2853,7 +2853,7 @@ CLI flag → ROADMAP `**Mode:** mvp` → `workflow.mvp_mode` config → `false`
**Bug fix:** `roadmap.get-phase --pick mode` in the SDK's `roadmap.ts` previously returned `null` for phases with `**Mode:** mvp`, causing MVP_MODE to silently fall through to false on the native dispatch path. Restores parity with the CJS implementation.
**Reference issue:** [#3178](https://github.com/gsd-build/get-shit-done/pull/3178)
**Reference issue:** [#3178](https://github.com/GSD-redux/get-shit-done-redux/pull/3178)
---

View File

@@ -60,7 +60,7 @@ Full roster at `commands/gsd/*.md`. The groupings below mirror `docs/COMMANDS.md
### Namespace Meta-Skills
These six routers are descriptor-only entries that the model picks first; the body of each contains a routing table that points at the correct concrete sub-skill. They exist to keep the eager skill-listing token cost low while the full surface remains reachable. See [#2792](https://github.com/gsd-build/get-shit-done/issues/2792) for the rationale; the routing tables target the post-[#2790](https://github.com/gsd-build/get-shit-done/issues/2790) consolidated surface.
These six routers are descriptor-only entries that the model picks first; the body of each contains a routing table that points at the correct concrete sub-skill. They exist to keep the eager skill-listing token cost low while the full surface remains reachable. See [#2792](https://github.com/GSD-redux/get-shit-done-redux/issues/2792) for the rationale; the routing tables target the post-[#2790](https://github.com/GSD-redux/get-shit-done-redux/issues/2790) consolidated surface.
| Command | Role | Source |
|---------|------|--------|

View File

@@ -3,7 +3,7 @@
Pre-release candidate. Published to npm under the `next` tag.
```
npx get-shit-done-cc@next
npx get-shit-done-redux@next
```
---
@@ -62,16 +62,16 @@ The installer now:
```bash
# npm
npm install -g get-shit-done-cc@next
npm install -g get-shit-done-redux@next
# npx (one-shot)
npx get-shit-done-cc@next
npx get-shit-done-redux@next
```
To pin to this exact RC:
```bash
npm install -g get-shit-done-cc@1.39.0-rc.4
npm install -g get-shit-done-redux@1.39.0-rc.4
```
---

View File

@@ -3,7 +3,7 @@
Pre-release candidate. Published to npm under the `next` tag.
```bash
npx get-shit-done-cc@next
npx get-shit-done-redux@next
```
---
@@ -77,16 +77,16 @@ The installer now:
```bash
# npm
npm install -g get-shit-done-cc@next
npm install -g get-shit-done-redux@next
# npx (one-shot)
npx get-shit-done-cc@next
npx get-shit-done-redux@next
```
To pin to this exact RC:
```bash
npm install -g get-shit-done-cc@1.39.0-rc.5
npm install -g get-shit-done-redux@1.39.0-rc.5
```
---

View File

@@ -3,7 +3,7 @@
Pre-release candidate. Published to npm under the `next` tag.
```bash
npx get-shit-done-cc@next
npx get-shit-done-redux@next
```
---
@@ -93,16 +93,16 @@ The installer now:
```bash
# npm
npm install -g get-shit-done-cc@next
npm install -g get-shit-done-redux@next
# npx (one-shot)
npx get-shit-done-cc@next
npx get-shit-done-redux@next
```
To pin to this exact RC:
```bash
npm install -g get-shit-done-cc@1.39.0-rc.6
npm install -g get-shit-done-redux@1.39.0-rc.6
```
---

View File

@@ -3,7 +3,7 @@
Pre-release candidate. Published to npm under the `next` tag.
```bash
npx get-shit-done-cc@next
npx get-shit-done-redux@next
```
---
@@ -12,16 +12,16 @@ npx get-shit-done-cc@next
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-build/get-shit-done/issues/2856)).
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 `get-shit-done-cc` under the `canary` dist-tag on
`{base}-canary.{N}` builds of `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-build/get-shit-done/issues/2828))
([#2828](https://github.com/GSD-redux/get-shit-done-redux/issues/2828))
### Fixed
@@ -29,74 +29,74 @@ reaches the registry.
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-build/get-shit-done/issues/2787))
([#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-build/get-shit-done/issues/2788))
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-build/get-shit-done/issues/2789))
- **`gsd-sdk` binary collision with `@gsd-build/sdk` resolved** — workstream-aware
chars. ([#2789](https://github.com/GSD-redux/get-shit-done-redux/issues/2789))
- **`gsd-sdk` binary collision with `@gsd-redux/sdk` resolved** — workstream-aware
query registry now respects the `GSD_WORKSTREAM` env var; `gsd-tools` bin alias
added. ([#2791](https://github.com/gsd-build/get-shit-done/issues/2791))
added. ([#2791](https://github.com/GSD-redux/get-shit-done-redux/issues/2791))
- **`OpenCode` agents embed `model_profile_overrides.opencode.<tier>`** — per-tier
model overrides set via `/gsd-settings-advanced` are now propagated into generated
agent files. ([#2794](https://github.com/gsd-build/get-shit-done/issues/2794))
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-build/get-shit-done/issues/2796))
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-build/get-shit-done/issues/2798))
([#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-build/get-shit-done/issues/2801))
init handler was registered. ([#2801](https://github.com/GSD-redux/get-shit-done-redux/issues/2801))
- **`config-get` honors `--default <value>` flag** — fallback for missing keys
ported from CJS into the SDK. ([#2803](https://github.com/gsd-build/get-shit-done/issues/2803))
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-build/get-shit-done/issues/2805))
([#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-build/get-shit-done/issues/2808))
([#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-build/get-shit-done/issues/2829))
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-build/get-shit-done/issues/2831))
([#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-build/get-shit-done/issues/2832))
([#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-build/get-shit-done/issues/2835))
([#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-build/get-shit-done/issues/2836))
([#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-build/get-shit-done/issues/2838))
([#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-build/get-shit-done/issues/2839))
self-healing across crashes. ([#2839](https://github.com/GSD-redux/get-shit-done-redux/issues/2839))
---
@@ -117,7 +117,7 @@ without first being merged with `main`. See
### Fixed
**Codex hooks migrator correctness hardening** ([#2809](https://github.com/gsd-build/get-shit-done/issues/2809))
**Codex hooks migrator correctness hardening** ([#2809](https://github.com/GSD-redux/get-shit-done-redux/issues/2809))
Five edge-cases in the `[[hooks.<Event>]]` → `[[hooks.<Event>.hooks]]` two-level
nested schema migration path, discovered across five rounds of code review:
@@ -136,7 +136,7 @@ nested schema migration path, discovered across five rounds of code review:
### Added
**`--minimal` install flag** (alias `--core-only`) ([#2762](https://github.com/gsd-build/get-shit-done/issues/2762))
**`--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`.
@@ -152,7 +152,7 @@ The install manifest records `mode: "minimal" | "full"`. Run `gsd update` withou
### Fixed (rc.4)
**Codex install no longer corrupts `~/.codex/config.toml`** ([#2760](https://github.com/gsd-build/get-shit-done/issues/2760))
**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.<Event>]` map format to `[[hooks.<Event>]]`,
@@ -165,16 +165,16 @@ with a strict TOML parser.
```bash
# npm
npm install -g get-shit-done-cc@next
npm install -g get-shit-done-redux@next
# npx (one-shot)
npx get-shit-done-cc@next
npx get-shit-done-redux@next
```
To pin to this exact RC:
```bash
npm install -g get-shit-done-cc@1.39.0-rc.7
npm install -g get-shit-done-redux@1.39.0-rc.7
```
---

View File

@@ -3,7 +3,7 @@
Pre-release candidate. Published to npm under the `next` tag.
```bash
npx get-shit-done-cc@next
npx get-shit-done-redux@next
```
---
@@ -11,9 +11,9 @@ npx get-shit-done-cc@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-build/get-shit-done/issues/2790))
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-build/get-shit-done/issues/2792)) — together
([#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
@@ -26,23 +26,23 @@ correctness fixes for Gemini, Copilot, Codex, and the canary publish workflow.
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-build/get-shit-done/issues/2792))
([#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-build/get-shit-done/issues/2792))
([#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-build/get-shit-done/issues/2833))
([#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-build/get-shit-done/issues/2762))
([#2762](https://github.com/GSD-redux/get-shit-done-redux/issues/2762))
### Changed
@@ -52,18 +52,18 @@ correctness fixes for Gemini, Copilot, Codex, and the canary publish workflow.
(`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-build/get-shit-done/issues/2790))
([#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-build/get-shit-done/issues/2868))
([#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-build/get-shit-done/issues/2872))
([#2872](https://github.com/GSD-redux/get-shit-done-redux/issues/2872))
### Fixed
@@ -71,28 +71,28 @@ correctness fixes for Gemini, Copilot, Codex, and the canary publish workflow.
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-build/get-shit-done/issues/2768),
[#2783](https://github.com/gsd-build/get-shit-done/issues/2783))
([#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:<cmd>` references now use canonical
`/gsd-<cmd>`; `scripts/fix-slash-commands.cjs` rewrites retired colon syntax.
([#2858](https://github.com/gsd-build/get-shit-done/pull/2858))
([#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-build/get-shit-done/issues/2876))
([#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-build/get-shit-done/issues/2851))
([#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-build/get-shit-done/issues/2866))
([#2866](https://github.com/GSD-redux/get-shit-done-redux/issues/2866))
---
@@ -100,10 +100,10 @@ correctness fixes for Gemini, Copilot, Codex, and the canary publish workflow.
[`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-build/get-shit-done/issues/2787)), `audit-uat`
frontmatter parse fix ([#2788](https://github.com/gsd-build/get-shit-done/issues/2788)),
skill description budget + lint gate ([#2789](https://github.com/gsd-build/get-shit-done/issues/2789)),
`gsd-sdk` workstream + binary-collision fixes ([#2791](https://github.com/gsd-build/get-shit-done/issues/2791)),
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.
---
@@ -112,16 +112,16 @@ and nine additional correctness fixes across OpenCode, Codex, and Gemini runtime
```bash
# npm
npm install -g get-shit-done-cc@next
npm install -g get-shit-done-redux@next
# npx (one-shot)
npx get-shit-done-cc@next
npx get-shit-done-redux@next
```
To pin to this exact RC:
```bash
npm install -g get-shit-done-cc@1.40.0-rc.1
npm install -g get-shit-done-redux@1.40.0-rc.1
```
---
@@ -131,6 +131,6 @@ npm install -g get-shit-done-cc@1.40.0-rc.1
- 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-build/get-shit-done/issues/2833) read-side.
[#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.

View File

@@ -3,7 +3,7 @@
Stable release. Published to npm under the `latest` tag.
```bash
npx get-shit-done-cc@latest
npx get-shit-done-redux@latest
```
---
@@ -19,25 +19,25 @@ npx get-shit-done-cc@latest
named slots (`planning` / `discuss` / `research` / `execution` / `verification` /
`completion`) accept tier aliases (`opus` / `sonnet` / `haiku` / `inherit`). Fully
backward compatible.
([#3023](https://github.com/gsd-build/get-shit-done/pull/3030))
([#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.<phase_type>` via the same precedence chain.
([#3024](https://github.com/gsd-build/get-shit-done/pull/3031))
([#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-build/get-shit-done/pull/2795))
([#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-build/get-shit-done/pull/2840))
([#2840](https://github.com/GSD-redux/get-shit-done-redux/pull/2840))
### Changed
@@ -48,136 +48,136 @@ npx get-shit-done-cc@latest
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-build/get-shit-done/pull/3178))
([#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-build/get-shit-done/issues/3170))
([#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-build/get-shit-done/pull/3176))
([#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-build/get-shit-done/issues/3181))
([#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-build/get-shit-done/issues/3164))
([#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-build/get-shit-done/issues/3166))
([#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-build/get-shit-done/issues/3087))
([#3138](https://github.com/GSD-redux/get-shit-done-redux/issues/3087))
- **`secure-phase` retroactive-STRIDE mode for legacy phases** — phases with no
`<threat_model>` 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-build/get-shit-done/issues/3120))
([#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-build/get-shit-done/issues/3126))
([#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-build/get-shit-done/issues/3127))
([#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-build/get-shit-done/issues/3129))
([#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-build/get-shit-done/issues/3156))
([#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-build/get-shit-done/issues/3195))
([#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-build/get-shit-done/issues/3198))
([#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-build/get-shit-done/issues/3033))
([#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-build/get-shit-done/issues/3020))
([#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-build/get-shit-done/issues/3103))
([#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-build/get-shit-done/issues/3194))
([#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-build/get-shit-done/issues/3037))
([#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-build/get-shit-done/issues/3196),
[#3207](https://github.com/gsd-build/get-shit-done/pull/3207))
([#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-build/get-shit-done/issues/3197))
([#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-build/get-shit-done/issues/3153))
([#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-build/get-shit-done/issues/3017))
([#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-build/get-shit-done/issues/3162))
([#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-build/get-shit-done/issues/2790)), six
namespace meta-skills ([#2792](https://github.com/gsd-build/get-shit-done/issues/2792)),
(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-build/get-shit-done/issues/2833)), and Gemini
([#2833](https://github.com/GSD-redux/get-shit-done-redux/issues/2833)), and Gemini
colon-form slash-command conversion.
---
@@ -186,13 +186,13 @@ colon-form slash-command conversion.
```bash
# npm (global)
npm install -g get-shit-done-cc@latest
npm install -g get-shit-done-redux@latest
# npx (one-shot)
npx get-shit-done-cc@latest
npx get-shit-done-redux@latest
# Pin to this exact version
npm install -g get-shit-done-cc@1.41.0
npm install -g get-shit-done-redux@1.41.0
```
The installer is idempotent — re-running on an existing install updates in-place,

View File

@@ -3,9 +3,9 @@
First release candidate for the **1.42.0** train. Published to npm under the `next` dist-tag.
```bash
npx get-shit-done-cc@next
npx get-shit-done-redux@next
# or pin exact:
npm install -g get-shit-done-cc@1.42.0-rc1
npm install -g 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.
@@ -16,7 +16,7 @@ npm install -g get-shit-done-cc@1.42.0-rc1
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-build/get-shit-done/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.
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.
---
@@ -24,7 +24,7 @@ This RC also rolls up every fix that shipped in [v1.41.1](https://github.com/gsd
### Security
#### Package legitimacy gate against slopsquatting ([#3215](https://github.com/gsd-build/get-shit-done/pull/3215))
#### 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 <malicious-pkg>` with no human gate. The gate closes that path:
@@ -38,7 +38,7 @@ A three-layer defense across the research → plan → execute pipeline. Before
**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-build/get-shit-done/issues/2827).
Closes [#2827](https://github.com/GSD-redux/get-shit-done-redux/issues/2827).
---
@@ -46,7 +46,7 @@ Closes [#2827](https://github.com/gsd-build/get-shit-done/issues/2827).
### Architecture
#### SDK package seam deepened; runtime-global skills policy converged ([#3238](https://github.com/gsd-build/get-shit-done/pull/3238))
#### 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:
@@ -55,9 +55,9 @@ Concentrates two areas that were previously scattered across the codebase:
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-build/get-shit-done/issues/3237). Refs [#3234](https://github.com/gsd-build/get-shit-done/issues/3234).
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-build/get-shit-done/pull/3267))
#### 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:
@@ -67,14 +67,14 @@ Closes [#3237](https://github.com/gsd-build/get-shit-done/issues/3237). Refs [#3
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-build/get-shit-done/issues/3270).
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-build/get-shit-done/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-build/get-shit-done/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).
- **[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).
---
@@ -82,13 +82,13 @@ Closes [#3270](https://github.com/gsd-build/get-shit-done/issues/3270).
```bash
# npm (global, RC channel)
npm install -g get-shit-done-cc@next
npm install -g get-shit-done-redux@next
# npx (one-shot)
npx get-shit-done-cc@next
npx get-shit-done-redux@next
# Pin to this exact RC
npm install -g get-shit-done-cc@1.42.0-rc1
npm install -g 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.
@@ -96,5 +96,5 @@ The installer is idempotent — re-running on an existing install updates in-pla
To roll back to the latest stable, install with `@latest`:
```bash
npx get-shit-done-cc@latest
npx get-shit-done-redux@latest
```

View File

@@ -3,7 +3,7 @@
Stable release. Published to npm under the `latest` tag.
```bash
npx get-shit-done-cc@latest
npx get-shit-done-redux@latest
```
---
@@ -26,41 +26,41 @@ install migration, SDK readiness, and decimal-phase dependencies.
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-build/get-shit-done/pull/3215))
([#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-build/get-shit-done/pull/3456))
([#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-build/get-shit-done/pull/3398),
[#3399](https://github.com/gsd-build/get-shit-done/pull/3399),
[#3400](https://github.com/gsd-build/get-shit-done/pull/3400),
[#3402](https://github.com/gsd-build/get-shit-done/pull/3402),
[#3404](https://github.com/gsd-build/get-shit-done/pull/3404))
([#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-build/get-shit-done/pull/3391))
([#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-build/get-shit-done/pull/3464))
([#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-build/get-shit-done/pull/3486))
([#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-build/get-shit-done/pull/3304))
([#3255](https://github.com/GSD-redux/get-shit-done-redux/pull/3304))
### Changed
@@ -68,86 +68,86 @@ install migration, SDK readiness, and decimal-phase dependencies.
"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-build/get-shit-done/pull/3325))
([#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-build/get-shit-done/pull/3490))
([#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-build/get-shit-done/pull/3508))
([#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-build/get-shit-done/pull/3515))
([#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-build/get-shit-done/pull/3483))
([#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-build/get-shit-done/pull/3238),
[#3316](https://github.com/gsd-build/get-shit-done/pull/3316),
[#3470](https://github.com/gsd-build/get-shit-done/pull/3470),
[#3476](https://github.com/gsd-build/get-shit-done/pull/3476),
[#3481](https://github.com/gsd-build/get-shit-done/pull/3481),
[#3484](https://github.com/gsd-build/get-shit-done/pull/3484))
([#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-build/get-shit-done/pull/3292),
[#3298](https://github.com/gsd-build/get-shit-done/pull/3306))
([#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-build/get-shit-done/pull/3499),
[#3517](https://github.com/gsd-build/get-shit-done/pull/3520))
([#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-build/get-shit-done/pull/3502))
([#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-build/get-shit-done/pull/3505),
[#3357](https://github.com/gsd-build/get-shit-done/pull/3380),
[#3360](https://github.com/gsd-build/get-shit-done/pull/3380))
([#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-build/get-shit-done/issues/3033),
[#3211](https://github.com/gsd-build/get-shit-done/pull/3282),
[#3231](https://github.com/gsd-build/get-shit-done/pull/3249),
[#3359](https://github.com/gsd-build/get-shit-done/pull/3380))
([#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-build/get-shit-done/pull/3318))
([#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-build/get-shit-done/pull/3501))
([#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-build/get-shit-done/pull/3528))
([#3522](https://github.com/GSD-redux/get-shit-done-redux/pull/3528))
---
@@ -165,13 +165,13 @@ secure-phase audits, cross-runtime installs, and statusline parsing.
```bash
# npm (global)
npm install -g get-shit-done-cc@latest
npm install -g get-shit-done-redux@latest
# npx (one-shot)
npx get-shit-done-cc@latest
npx get-shit-done-redux@latest
# Pin to this exact version
npm install -g get-shit-done-cc@1.42.1
npm install -g get-shit-done-redux@1.42.1
```
The installer is idempotent — re-running on an existing install updates in-place,

View File

@@ -3,7 +3,7 @@
Hotfix release. Published to npm under the `latest` tag.
```bash
npx get-shit-done-cc@latest
npx get-shit-done-redux@latest
```
---
@@ -11,7 +11,7 @@ npx get-shit-done-cc@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 get-shit-done-cc@latest
CLI 0.130.0 install routability** — after `npx 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**
@@ -32,8 +32,8 @@ canonical Codex hooks, and the SDK bridge load path.
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-build/get-shit-done/pull/3568),
[#3582](https://github.com/gsd-build/get-shit-done/pull/3609))
([#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-<cmd>` for skills-based runtimes
@@ -43,7 +43,7 @@ canonical Codex hooks, and the SDK bridge load path.
`milestone`, `validate-command-router`, `workstream`, `profile-output`,
`drift`, `gsd2-import`, and `commands` now paste cleanly into the
active runtime.
([#3584](https://github.com/gsd-build/get-shit-done/pull/3606))
([#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
@@ -51,7 +51,7 @@ canonical Codex hooks, and the SDK bridge load path.
Closes a shell-injection class where a malicious branch name (e.g.
`foo;touch INJ;bar`) interpolated into `git config --get
branch.<name>.merge` triggered arbitrary code execution.
([#3587](https://github.com/gsd-build/get-shit-done/pull/3611))
([#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
@@ -60,54 +60,54 @@ canonical Codex hooks, and the SDK bridge load path.
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-build/get-shit-done/pull/3581))
([#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-build/get-shit-done/pull/3573))
([#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-build/get-shit-done/pull/3574))
([#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-build/get-shit-done/pull/3565),
[#3560](https://github.com/gsd-build/get-shit-done/pull/3564))
([#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-build/get-shit-done/pull/3563))
([#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-build/get-shit-done/pull/3538))
([#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-build/get-shit-done/pull/3564))
([#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-build/get-shit-done/pull/3547))
([#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-build/get-shit-done/pull/3546))
([#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
@@ -115,7 +115,7 @@ canonical Codex hooks, and the SDK bridge load path.
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-build/get-shit-done/pull/3572))
([#3571](https://github.com/GSD-redux/get-shit-done-redux/pull/3572))
---
@@ -136,13 +136,13 @@ SDK install readiness, and decimal-phase dependencies.
```bash
# npm (global)
npm install -g get-shit-done-cc@latest
npm install -g get-shit-done-redux@latest
# npx (one-shot)
npx get-shit-done-cc@latest
npx get-shit-done-redux@latest
# Pin to this exact version
npm install -g get-shit-done-cc@1.42.3
npm install -g get-shit-done-redux@1.42.3
```
The installer is idempotent — re-running on an existing install

View File

@@ -3,9 +3,9 @@
First canary cut for the **1.50.0** train. Published to npm under the `canary` dist-tag.
```bash
npx get-shit-done-cc@canary
npx get-shit-done-redux@canary
# or pin exact:
npm install -g get-shit-done-cc@1.50.0-canary.1
npm install -g 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.
@@ -14,11 +14,11 @@ npm install -g get-shit-done-cc@1.50.0-canary.1
## 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-build/get-shit-done/issues/2826) is the umbrella PRD.
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-build/get-shit-done/pull/2867))
#### `/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:
@@ -28,7 +28,7 @@ The 1.50.0 train opens with a four-phase vertical slice that adds an end-to-end
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 <N>` — guided user-story phase framing ([#2874](https://github.com/gsd-build/get-shit-done/pull/2874))
#### `/gsd mvp-phase <N>` — 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:
@@ -37,19 +37,19 @@ A new top-level command that walks the user through framing a phase as a vertica
Two new references: [`spidr-splitting.md`](../get-shit-done/references/spidr-splitting.md), [`user-story-template.md`](../get-shit-done/references/user-story-template.md).
#### Execute-phase MVP+TDD runtime gate ([#2878](https://github.com/gsd-build/get-shit-done/pull/2878))
#### 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(<phase>-<plan>):` commit to exist before the corresponding `feat(...)` commit. The reference [`execute-mvp-tdd.md`](../get-shit-done/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-build/get-shit-done/pull/2880))
#### 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`](../get-shit-done/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 <N>` to repair.
#### Discovery & progress surfaces ([#2883](https://github.com/gsd-build/get-shit-done/pull/2883))
#### Discovery & progress surfaces ([#2883](https://github.com/GSD-redux/get-shit-done-redux/pull/2883))
The MVP slice closes out with read-side surfaces:
@@ -62,7 +62,7 @@ The MVP slice closes out with read-side surfaces:
## 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-build/get-shit-done/issues/2912)) — explicit context-authority directive added to the report step.
- **`/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`.)
@@ -72,17 +72,17 @@ The MVP slice closes out with read-side surfaces:
```bash
# Try the canary
npx get-shit-done-cc@canary
npx get-shit-done-redux@canary
# Or pin exact
npm install -g get-shit-done-cc@1.50.0-canary.1
npm install -g 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-build/get-shit-done/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.
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

View File

@@ -1,7 +1,7 @@
# STATE.md Phase Lifecycle Frontmatter
> **Status:** Read-side shipped in v1.40.0 (issue
> [#2833](https://github.com/gsd-build/get-shit-done/issues/2833)).
> [#2833](https://github.com/GSD-redux/get-shit-done-redux/issues/2833)).
> `parseStateMd()` reads the four frontmatter fields below and
> `formatGsdState()` renders the in-flight / idle / progress scenes.
> SDK write-side support to maintain the fields automatically is tracked

View File

@@ -2,7 +2,7 @@
This project's `tests/` directory uses **filename suffix markers** to group tests into named suites. The harness `scripts/run-tests.cjs` filters by suite when given `--suite <name>`. Without a flag it runs every `*.test.cjs` file (the historical default — unchanged).
> Tracked by issue [#3597](https://github.com/gsd-build/get-shit-done/issues/3597).
> Tracked by issue [#3597](https://github.com/GSD-redux/get-shit-done-redux/issues/3597).
## Suites

View File

@@ -1219,7 +1219,7 @@ For the full audit, harness reference, and the composition note with `model_prof
### Using Non-Claude Runtimes (Codex, OpenCode, Gemini CLI, Kilo)
> **Codex CLI minimum supported version: `0.130.0`** (issue [#3562](https://github.com/gsd-build/get-shit-done/issues/3562)).
> **Codex CLI minimum supported version: `0.130.0`** (issue [#3562](https://github.com/GSD-redux/get-shit-done-redux/issues/3562)).
>
> Codex CLI [0.130.0](https://github.com/openai/codex/releases/tag/rust-v0.130.0) (released 2026-05-08) removed extra-skills-roots discovery via [openai/codex#21485](https://github.com/openai/codex/pull/21485). From that version onward, Codex only discovers commands from `~/.codex/skills/<name>/SKILL.md` (user root), `<project>/.codex/skills/` (cwd root), and registered plugin roots. The GSD installer writes `~/.codex/skills/gsd-<name>/SKILL.md` directly so `$gsd-help`, `$gsd-new-project`, etc. are discoverable after restart.
>
@@ -1263,10 +1263,10 @@ Cline uses a rules-based integration — GSD installs as `.clinerules` rather th
```bash
# Global install (applies to all projects)
npx get-shit-done-cc --cline --global
npx get-shit-done-redux --cline --global
# Local install (this project only)
npx get-shit-done-cc --cline --local
npx get-shit-done-redux --cline --local
```
Global installs write to `~/.cline/`. Local installs write to `./.cline/`. No custom slash commands are registered — GSD rules are loaded automatically by Cline from the rules file.
@@ -1276,7 +1276,7 @@ Global installs write to `~/.cline/`. Local installs write to `./.cline/`. No cu
CodeBuddy uses a skills-based integration.
```bash
npx get-shit-done-cc --codebuddy --global
npx get-shit-done-redux --codebuddy --global
```
Skills are installed to `~/.codebuddy/skills/gsd-*/SKILL.md`.
@@ -1286,7 +1286,7 @@ Skills are installed to `~/.codebuddy/skills/gsd-*/SKILL.md`.
Qwen Code uses the same open skills standard as Claude Code 2.1.88+.
```bash
npx get-shit-done-cc --qwen --global
npx get-shit-done-redux --qwen --global
```
Skills are installed to `~/.qwen/skills/gsd-*/SKILL.md`. Use the `QWEN_CONFIG_DIR` environment variable to override the default install path.
@@ -1295,12 +1295,12 @@ Skills are installed to `~/.qwen/skills/gsd-*/SKILL.md`. Use the `QWEN_CONFIG_DI
Many supported runtimes ship a prerelease edition alongside their stable release — Windsurf Next, Cursor Nightly, VS Code Insiders, Codex preview channels, JetBrains EAP, and so on. Prerelease editions read from a sibling configuration directory, so the default install path won't reach them.
GSD does not enumerate prerelease editions as separate named runtimes. They are accommodated through the existing `<RUNTIME>_CONFIG_DIR` environment variables and the free-string runtime policy (see [#2517](https://github.com/gsd-build/get-shit-done/issues/2517)) — installs work, paths resolve, GSD operates. Prerelease editions are **best-effort and not separately tested** as part of release CI.
GSD does not enumerate prerelease editions as separate named runtimes. They are accommodated through the existing `<RUNTIME>_CONFIG_DIR` environment variables and the free-string runtime policy (see [#2517](https://github.com/GSD-redux/get-shit-done-redux/issues/2517)) — installs work, paths resolve, GSD operates. Prerelease editions are **best-effort and not separately tested** as part of release CI.
**Pattern.** Set the runtime's `*_CONFIG_DIR` env var to the prerelease directory before running the installer:
```bash
WINDSURF_CONFIG_DIR=~/.codeium/windsurf-next npx get-shit-done-cc@latest --windsurf --global
WINDSURF_CONFIG_DIR=~/.codeium/windsurf-next npx get-shit-done-redux@latest --windsurf --global
```
Select the corresponding stable runtime in the installer prompt. Skills land in the prerelease directory; commands appear in the prerelease editor.
@@ -1340,7 +1340,7 @@ Since v1.17, the installer backs up locally modified files to `gsd-local-patches
### Cannot Update via npm
If `npx get-shit-done-cc` fails due to npm outages or network restrictions, see [docs/manual-update.md](manual-update.md) for a step-by-step manual update procedure that works without npm access.
If `npx get-shit-done-redux` fails due to npm outages or network restrictions, see [docs/manual-update.md](manual-update.md) for a step-by-step manual update procedure that works without npm access.
### Surface GSD Update Notifications Without GSD's Statusline
@@ -1362,7 +1362,7 @@ GSD update available: 1.39.0 → 1.40.0. Run /gsd-update.
The banner is silent when no update is available. If the cache file is corrupt, GSD emits one diagnostic line (`GSD update check failed.`) and stays silent for 24 hours so a broken cache does not nag every session.
**Opt-out / removal:** delete the SessionStart hook entry that references `gsd-update-banner.js` from your runtime's `settings.json` (Claude Code: `~/.claude/settings.json`; Gemini: `~/.gemini/settings.json`). `npx get-shit-done-cc --uninstall` removes both the script and the registration in one pass.
**Opt-out / removal:** delete the SessionStart hook entry that references `gsd-update-banner.js` from your runtime's `settings.json` (Claude Code: `~/.claude/settings.json`; Gemini: `~/.gemini/settings.json`). `npx get-shit-done-redux --uninstall` removes both the script and the registration in one pass.
The banner is not offered when GSD's statusline is installed — that channel already surfaces update info, so re-prompting would be noise.

View File

@@ -30,8 +30,8 @@ The catalog owns:
- agent → dynamic-routing default tier mapping
The canonical file lives in a location both packages ship:
- repo root package (`get-shit-done-cc`) includes it
- standalone SDK package (`@gsd-build/sdk`) includes it
- repo root package (`get-shit-done-redux`) includes it
- standalone SDK package (`@gsd-redux/sdk`) includes it
Both CJS and SDK load this exact file. Neither package keeps its own independent list.

View File

@@ -1,8 +1,8 @@
# SDK Package Seam Module owns SDK-to-get-shit-done-cc compatibility
# SDK Package Seam Module owns SDK-to-get-shit-done-redux compatibility
- **Status:** Accepted
- **Date:** 2026-05-07
We decided to define one explicit SDK Package Seam Module for the `@gsd-build/sdk` → `get-shit-done-cc` transition. During this transition, install-layout probing, legacy `gsd-tools.cjs` discovery, legacy `core.cjs` discovery, and compatibility-only missing-asset diagnostics must live behind one seam instead of leaking across SDK Modules. This keeps callers thin, raises leverage for standalone-SDK testing, and improves locality by making package-readiness bugs land in one place. First tracer-bullet slice: add one compatibility Adapter Module at this seam and migrate current legacy asset callers onto it before broader native replacement work.
We decided to define one explicit SDK Package Seam Module for the `@gsd-redux/sdk` → `get-shit-done-redux` transition. During this transition, install-layout probing, legacy `gsd-tools.cjs` discovery, legacy `core.cjs` discovery, and compatibility-only missing-asset diagnostics must live behind one seam instead of leaking across SDK Modules. This keeps callers thin, raises leverage for standalone-SDK testing, and improves locality by making package-readiness bugs land in one place. First tracer-bullet slice: add one compatibility Adapter Module at this seam and migrate current legacy asset callers onto it before broader native replacement work.
Runtime-global skills directory resolution is explicitly out of scope for this seam. That policy varies by runtime (`claude`, `codex`, `cline`, etc.) rather than by legacy package/install layout, so it now lives in a separate Runtime-Global Skills Policy Module consumed by `agent-skills` and `skill-manifest`.

View File

@@ -48,4 +48,4 @@ Future direction (deferred): the hub should consult `manifest` to detect per-sub
## References
- Extends ADR-0001 (Dispatch Policy Module) — the hub implements the no-throw + structured-result contract ADR-0001 established for the SDK query layer, applying it to the CJS adapter layer.
- Issue: [#3788](https://github.com/gsd-build/get-shit-done/issues/3788)
- Issue: [#3788](https://github.com/GSD-redux/get-shit-done-redux/issues/3788)

View File

@@ -2,7 +2,7 @@
- **Status:** Proposed
- **Date:** 2026-05-14
- **Tracking issue:** [#3524](https://github.com/gsd-build/get-shit-done/issues/3524)
- **Tracking issue:** [#3524](https://github.com/GSD-redux/get-shit-done-redux/issues/3524)
- **Related PRD:** [`docs/prd/3524-cjs-sdk-hard-seam.md`](../prd/3524-cjs-sdk-hard-seam.md)
- **Extends:** ADR-0005 (seam map) — adds the **Shared-Module Source Policy** to the seam family
- **Defers to:** ADR-0001 (Dispatch Policy Module), ADR-0003 (Model Catalog Module), ADR-0004 (Planning Workspace Module), ADR-0006 (Planning Path Projection Module), ADR-0009 (Shell Command Projection Module — post-Phase 3–4, also subsuming superseded ADR-0010)

View File

@@ -36,7 +36,7 @@ See **[CONTRIBUTING.md — "Proposing an ADR or PRD"](../../CONTRIBUTING.md#prop
| [0004-worktree-workstream-seam-module.md](0004-worktree-workstream-seam-module.md) | Planning Workspace Module as single seam for worktree and workstream state | Accepted |
| [0005-sdk-architecture-seam-map.md](0005-sdk-architecture-seam-map.md) | SDK Architecture seam map for query/runtime surfaces | Accepted |
| [0006-planning-path-projection-module.md](0006-planning-path-projection-module.md) | Planning Path Projection Module for SDK query handlers | Accepted |
| [0007-sdk-package-seam-module.md](0007-sdk-package-seam-module.md) | SDK Package Seam Module owns SDK-to-get-shit-done-cc compatibility | Accepted |
| [0007-sdk-package-seam-module.md](0007-sdk-package-seam-module.md) | SDK Package Seam Module owns SDK-to-get-shit-done-redux compatibility | Accepted |
| [0008-installer-migration-module.md](0008-installer-migration-module.md) | Installer Migration Module owns install-time upgrade safety | Accepted |
| [0009-shell-command-projection-module.md](0009-shell-command-projection-module.md) | Shell Command Projection Module owns runtime-aware OS command rendering | Accepted |
| [0010-file-operation-engine-module.md](0010-file-operation-engine-module.md) | File Operation Engine Module owns safe runtime/config file mutations | Proposed |

View File

@@ -9,13 +9,13 @@ The CJS↔SDK hard-seam migration (#3524) eliminates a class of config-schema dr
| Phase | PR | Summary |
|-------|----|---------|
| Phase 1 | [#3531](https://github.com/gsd-build/get-shit-done/pull/3531) | `state-document` Shared Module — source-of-truth at `sdk/src/state-document/`, generator, freshness check, CJS Adapter (`state-document.generated.cjs`). Worked example for the pattern. |
| Phase 2 | [#3540](https://github.com/gsd-build/get-shit-done/pull/3540) | `configuration` Shared Module — `sdk/shared/config-schema.manifest.json` + `sdk/shared/config-defaults.manifest.json` as data manifests; generator + freshness check + CJS Adapter. |
| Phase 3 | [#3548](https://github.com/gsd-build/get-shit-done/pull/3548) | `workstream-inventory` Shared Module — source-of-truth at `sdk/src/workstream-inventory/`, builder, generator, freshness check, CJS Adapter. |
| Phase 4 | [#3554](https://github.com/gsd-build/get-shit-done/pull/3554) | `project-root` Shared Module — source-of-truth at `sdk/src/project-root/`, generator, freshness check, CJS Adapter. |
| Phase 5.0 | [#3558](https://github.com/gsd-build/get-shit-done/pull/3558) | `runtime-bridge-sync` worker — enables CJS-side execution of SDK native handlers; state.* family initial router delegation via `executeForCjs`. |
| Phase 5.1 | [#3574](https://github.com/gsd-build/get-shit-done/pull/3574) | `state.*` router delegation complete — all known state subcommands delegated via `executeForCjs`; Phase 5.0 worker bug fix. |
| Phase 6 | [#3577](https://github.com/gsd-build/get-shit-done/pull/3577) (closes [#3575](https://github.com/gsd-build/get-shit-done/issues/3575)) | Enforcement hardening + Final completion — hand-sync drift lint, CODEOWNERS, 6 family-router migrations, 5 Shared Module migrations (plan-scan, secrets, schema-detect, decisions, workstream-name-policy), workstream native support, parity fixes. Migration feature-complete: 22 cooperating siblings, 0 backlog pairs. |
| Phase 1 | [#3531](https://github.com/GSD-redux/get-shit-done-redux/pull/3531) | `state-document` Shared Module — source-of-truth at `sdk/src/state-document/`, generator, freshness check, CJS Adapter (`state-document.generated.cjs`). Worked example for the pattern. |
| Phase 2 | [#3540](https://github.com/GSD-redux/get-shit-done-redux/pull/3540) | `configuration` Shared Module — `sdk/shared/config-schema.manifest.json` + `sdk/shared/config-defaults.manifest.json` as data manifests; generator + freshness check + CJS Adapter. |
| Phase 3 | [#3548](https://github.com/GSD-redux/get-shit-done-redux/pull/3548) | `workstream-inventory` Shared Module — source-of-truth at `sdk/src/workstream-inventory/`, builder, generator, freshness check, CJS Adapter. |
| Phase 4 | [#3554](https://github.com/GSD-redux/get-shit-done-redux/pull/3554) | `project-root` Shared Module — source-of-truth at `sdk/src/project-root/`, generator, freshness check, CJS Adapter. |
| Phase 5.0 | [#3558](https://github.com/GSD-redux/get-shit-done-redux/pull/3558) | `runtime-bridge-sync` worker — enables CJS-side execution of SDK native handlers; state.* family initial router delegation via `executeForCjs`. |
| Phase 5.1 | [#3574](https://github.com/GSD-redux/get-shit-done-redux/pull/3574) | `state.*` router delegation complete — all known state subcommands delegated via `executeForCjs`; Phase 5.0 worker bug fix. |
| Phase 6 | [#3577](https://github.com/GSD-redux/get-shit-done-redux/pull/3577) (closes [#3575](https://github.com/GSD-redux/get-shit-done-redux/issues/3575)) | Enforcement hardening + Final completion — hand-sync drift lint, CODEOWNERS, 6 family-router migrations, 5 Shared Module migrations (plan-scan, secrets, schema-detect, decisions, workstream-name-policy), workstream native support, parity fixes. Migration feature-complete: 22 cooperating siblings, 0 backlog pairs. |
---
@@ -203,13 +203,13 @@ If the module affects `CONTEXT.md`'s module inventory, update that section. Also
Add the new source-of-truth path to `.github/CODEOWNERS` under the Phase 6 block to make the architectural ownership explicit.
**Reference:** Phase 1 PR [#3531](https://github.com/gsd-build/get-shit-done/pull/3531) — `state-document` migration.
**Reference:** Phase 1 PR [#3531](https://github.com/GSD-redux/get-shit-done-redux/pull/3531) — `state-document` migration.
---
## Guide: Adding a new canonical command
Use this when adding a new `gsd-sdk query <family>.<subcommand>` that should be handled natively in the SDK (not delegated to CJS). Phase 5.1's `state.update` migration (PR [#3574](https://github.com/gsd-build/get-shit-done/pull/3574)) is the worked example.
Use this when adding a new `gsd-sdk query <family>.<subcommand>` that should be handled natively in the SDK (not delegated to CJS). Phase 5.1's `state.update` migration (PR [#3574](https://github.com/GSD-redux/get-shit-done-redux/pull/3574)) is the worked example.
**Step 1 — Declare in the command manifest**
@@ -232,7 +232,7 @@ Add a test in `tests/<family>-command-router.test.cjs` (or a new file if the fam
This test enforces that the delegate and the native handler stay aligned.
**Reference:** Phase 5.1 PR [#3574](https://github.com/gsd-build/get-shit-done/pull/3574) — `state.update` delegation.
**Reference:** Phase 5.1 PR [#3574](https://github.com/GSD-redux/get-shit-done-redux/pull/3574) — `state.update` delegation.
---

View File

@@ -1,6 +1,6 @@
# Issue tracker: GitHub
Issues for this repo live in **GitHub Issues** at `gsd-build/get-shit-done`.
Issues for this repo live in **GitHub Issues** at `GSD-redux/get-shit-done-redux`.
## Auth
@@ -9,19 +9,19 @@ repo-local `.envrc` before running `gh`.
## Conventions
- **Create**: `gh issue create --repo gsd-build/get-shit-done --title "..." --body "..."`
- **Read**: `gh issue view <number> --repo gsd-build/get-shit-done --comments`
- **List**: `gh issue list --repo gsd-build/get-shit-done --state open --json number,title,labels --jq '...'`
- **Comment**: `gh issue comment <number> --repo gsd-build/get-shit-done --body "..."`
- **Label**: `gh issue edit <number> --repo gsd-build/get-shit-done --add-label "..." --remove-label "..."`
- **Close**: `gh issue close <number> --repo gsd-build/get-shit-done --comment "..."`
- **Create**: `gh issue create --repo GSD-redux/get-shit-done-redux --title "..." --body "..."`
- **Read**: `gh issue view <number> --repo GSD-redux/get-shit-done-redux --comments`
- **List**: `gh issue list --repo GSD-redux/get-shit-done-redux --state open --json number,title,labels --jq '...'`
- **Comment**: `gh issue comment <number> --repo GSD-redux/get-shit-done-redux --body "..."`
- **Label**: `gh issue edit <number> --repo GSD-redux/get-shit-done-redux --add-label "..." --remove-label "..."`
- **Close**: `gh issue close <number> --repo GSD-redux/get-shit-done-redux --comment "..."`
Always pass `--repo gsd-build/get-shit-done` explicitly — the local clone has multiple remotes and `gh` may resolve to the wrong one.
Always pass `--repo GSD-redux/get-shit-done-redux` explicitly — the local clone has multiple remotes and `gh` may resolve to the wrong one.
## When a skill says "publish to the issue tracker"
Create a GitHub issue at `gsd-build/get-shit-done`.
Create a GitHub issue at `GSD-redux/get-shit-done-redux`.
## When a skill says "fetch the relevant ticket"
Run `gh issue view <number> --repo gsd-build/get-shit-done --comments`.
Run `gh issue view <number> --repo GSD-redux/get-shit-done-redux --comments`.

View File

@@ -1,6 +1,6 @@
# Triage Labels
Maps the five canonical triage roles to the actual label strings in `gsd-build/get-shit-done`.
Maps the five canonical triage roles to the actual label strings in `GSD-redux/get-shit-done-redux`.
| Canonical role | Label in this repo | Notes |
|-------------------|--------------------------|----------------------------------------------------------------|

View File

@@ -60,7 +60,7 @@ GSD's `/gsd-pause-work` command saves execution state. The WARNING message sugge
## Setup
Both hooks are automatically registered during `npx get-shit-done-cc` installation:
Both hooks are automatically registered during `npx get-shit-done-redux` installation:
- **Statusline** (writes bridge file): Registered as `statusLine` in settings.json
- **Context Monitor** (reads bridge file): Registered as `PostToolUse` hook in settings.json (`AfterTool` for Gemini)

View File

@@ -72,7 +72,7 @@ Currently accepted ADRs:
| `0004-worktree-workstream-seam-module.md` | Planning Workspace Module as single seam for worktree and workstream state |
| `0005-sdk-architecture-seam-map.md` | SDK Architecture seam map for query/runtime surfaces |
| `0006-planning-path-projection-module.md` | Planning Path Projection Module for SDK query handlers |
| `0007-sdk-package-seam-module.md` | SDK Package Seam Module owns SDK-to-get-shit-done-cc compatibility |
| `0007-sdk-package-seam-module.md` | SDK Package Seam Module owns SDK-to-get-shit-done-redux compatibility |
### When an ADR is required

View File

@@ -28,7 +28,7 @@ Currently, Grok Build is only supported via its Claude compatibility layer. This
## 2. Current Multi-Runtime Setup (as of May 2026)
### Development Source (Single Source of Truth)
- **Path:** `/home/cristian/bum/get-shit-done` (this repo — your working fork of `gsd-build/get-shit-done`)
- **Path:** `/home/cristian/bum/get-shit-done` (this repo — your working fork of `GSD-redux/get-shit-done-redux`)
### Installed Locations
- `~/.agents/get-shit-done/` — Core workflows, references, templates, `gsd-tools.cjs`, `bin/`

View File

@@ -4,7 +4,7 @@ Copy-paste friendly for Discord and GitHub comments.
---
**@gsd-build/sdk** replaces the untyped, monolithic `gsd-tools.cjs` subprocess with a typed, tested, registry-based query system and **`gsd-sdk query`**, giving GSD structured results, classified errors (`GSDError` with `ErrorClassification`), and golden-verified parity with the old CLI. That gives the framework one stable contract instead of a fragile, very large CLI that every workflow had to spawn and parse by hand.
**@gsd-redux/sdk** replaces the untyped, monolithic `gsd-tools.cjs` subprocess with a typed, tested, registry-based query system and **`gsd-sdk query`**, giving GSD structured results, classified errors (`GSDError` with `ErrorClassification`), and golden-verified parity with the old CLI. That gives the framework one stable contract instead of a fragile, very large CLI that every workflow had to spawn and parse by hand.
**What users can expect**

View File

@@ -1308,7 +1308,7 @@ Claude が GSD ワークフローコンテキスト外でファイル編集を
### 55. マルチランタイムインストーラー選択
**対象:** `npx get-shit-done-cc`
**対象:** `npx get-shit-done-redux`
**目的:** 1回のインタラクティブなインストールセッションで複数のランタイムを選択します。
@@ -1327,7 +1327,7 @@ Claude が GSD ワークフローコンテキスト外でファイル編集を
### 56. Windsurf ランタイムサポート
**対象:** `npx get-shit-done-cc`
**対象:** `npx get-shit-done-redux`
**目的:** Windsurf AI IDE のサポートを追加します。
@@ -1568,7 +1568,7 @@ Claude が GSD ワークフローコンテキスト外でファイル編集を
### 68. Claude Code スキルマイグレーション
**対象:** `npx get-shit-done-cc`
**対象:** `npx get-shit-done-redux`
**目的:** GSD コマンドを Claude Code 2.1.88+ のスキル形式に後方互換性を維持してマイグレーションします。
@@ -1831,7 +1831,7 @@ Claude が GSD ワークフローコンテキスト外でファイル編集を
### 85. 新規ランタイムサポート (Trae, Cline, Augment Code)
**対象:** `npx get-shit-done-cc`
**対象:** `npx get-shit-done-redux`
**目的:** Trae IDE、Cline、Augment Code ランタイムへの GSD インストールを拡張します。

View File

@@ -60,7 +60,7 @@ GSD の `/gsd-pause-work` コマンドは実行状態を保存します。WARNIN
## セットアップ
両フックは `npx get-shit-done-cc` のインストール時に自動的に登録されます:
両フックは `npx get-shit-done-redux` のインストール時に自動的に登録されます:
- **ステータスライン**(ブリッジファイルの書き込み): settings.json の `statusLine` として登録
- **コンテキストモニター**(ブリッジファイルの読み取り): settings.json の `PostToolUse` フックとして登録(Gemini では `AfterTool`)

View File

@@ -1308,7 +1308,7 @@ Claude가 GSD 워크플로우 컨텍스트 밖에서 파일 편집을 시도하
### 55. Multi-Runtime Installer Selection
**일부:** `npx get-shit-done-cc`
**일부:** `npx get-shit-done-redux`
**목적:** 단일 대화형 설치 세션에서 여러 런타임을 선택합니다.
@@ -1327,7 +1327,7 @@ Claude가 GSD 워크플로우 컨텍스트 밖에서 파일 편집을 시도하
### 56. Windsurf 런타임 지원
**대상:** `npx get-shit-done-cc`
**대상:** `npx get-shit-done-redux`
**목적:** Windsurf AI IDE 지원을 추가합니다.
@@ -1568,7 +1568,7 @@ Claude가 GSD 워크플로우 컨텍스트 밖에서 파일 편집을 시도하
### 68. Claude Code 스킬 마이그레이션
**대상:** `npx get-shit-done-cc`
**대상:** `npx get-shit-done-redux`
**목적:** GSD 명령어를 하위 호환성을 유지하면서 Claude Code 2.1.88+ 스킬 형식으로 마이그레이션합니다.
@@ -1831,7 +1831,7 @@ Claude가 GSD 워크플로우 컨텍스트 밖에서 파일 편집을 시도하
### 85. 신규 런타임 지원 (Trae, Cline, Augment Code)
**대상:** `npx get-shit-done-cc`
**대상:** `npx get-shit-done-redux`
**목적:** Trae IDE, Cline, Augment Code 런타임으로 GSD 설치를 확장합니다.

View File

@@ -60,7 +60,7 @@ GSD의 `/gsd-pause-work` 명령어는 실행 상태를 저장합니다. WARNING
## 설정
두 훅 모두 `npx get-shit-done-cc` 설치 중에 자동으로 등록됩니다.
두 훅 모두 `npx get-shit-done-redux` 설치 중에 자동으로 등록됩니다.
- **Statusline** (브리지 파일 기록): settings.json에 `statusLine`으로 등록
- **Context Monitor** (브리지 파일 읽기): settings.json에 `PostToolUse` 훅으로 등록 (Gemini의 경우 `AfterTool`)

View File

@@ -1,11 +1,11 @@
# Manual Update (Non-npm Install)
Use this procedure when `npx get-shit-done-cc@latest` is unavailable — e.g. during a publish outage or if you are working directly from the source repo.
Use this procedure when `npx get-shit-done-redux@latest` is unavailable — e.g. during a publish outage or if you are working directly from the source repo.
## Prerequisites
- Node.js installed
- This repo cloned locally (`git clone https://github.com/gsd-build/get-shit-done`)
- This repo cloned locally (`git clone https://github.com/GSD-redux/get-shit-done-redux`)
## Steps

View File

@@ -2,7 +2,7 @@
- **Status:** Reference
- **Date:** 2026-05-14
- **Tracking issue:** [#3524](https://github.com/gsd-build/get-shit-done/issues/3524)
- **Tracking issue:** [#3524](https://github.com/GSD-redux/get-shit-done-redux/issues/3524)
- **Related ADR:** [`docs/adr/3524-cjs-sdk-hard-seam.md`](../adr/3524-cjs-sdk-hard-seam.md)
## Why this PRD exists
@@ -11,7 +11,7 @@ The ADR defines the target architecture — one source of truth per Shared Modul
## Problem statement
The CJS↔SDK boundary in `gsd-build/get-shit-done` is structurally permeable. Multiple Shared Modules — STATE.md Document Module, Workstream Inventory Module, and several others — exist today as **hand-synced pairs** of `.cjs` and `.ts` files with character-identical implementations. Constants (`CONFIG_DEFAULTS`, `VALID_CONFIG_KEYS`) are likewise defined twice. The boundary is policed only by:
The CJS↔SDK boundary in `GSD-redux/get-shit-done-redux` is structurally permeable. Multiple Shared Modules — STATE.md Document Module, Workstream Inventory Module, and several others — exist today as **hand-synced pairs** of `.cjs` and `.ts` files with character-identical implementations. Constants (`CONFIG_DEFAULTS`, `VALID_CONFIG_KEYS`) are likewise defined twice. The boundary is policed only by:
- A naming-parity test (`tests/config-schema-sdk-parity.test.cjs`)
- Output-parity golden tests for read-only handlers (`sdk/src/golden/read-only-parity.integration.test.ts`)
@@ -209,7 +209,7 @@ Phase 5 specifically preserves the in-process model: `QueryRuntimeBridge.execute
### Build/install pipeline impact
- Each generator runs at build time on the developer machine (and in CI for the freshness check). No runtime generator execution.
- The published `get-shit-done-cc` package already includes both `get-shit-done/bin/` and `sdk/dist/`. The generated `.cjs` files are committed to the repo (like `command-aliases.generated.cjs` today), so the install flow is unchanged — no on-install code generation.
- The published `get-shit-done-redux` package already includes both `get-shit-done/bin/` and `sdk/dist/`. The generated `.cjs` files are committed to the repo (like `command-aliases.generated.cjs` today), so the install flow is unchanged — no on-install code generation.
- `npm run build:sdk` continues to do what it does. Generators are invoked via `npm run gen:<module>` per the existing precedent.
### Risks

View File

@@ -1,7 +1,7 @@
# Referência de Ferramentas CLI
Resumo em Português das ferramentas CLI do GSD.
Para API completa (assinaturas, argumentos e comportamento detalhado), consulte [CLI-TOOLS.md em inglês](../CLI-TOOLS.md) — inclui a secção **SDK and programmatic access** (`gsd-sdk query`, `@gsd-build/sdk`).
Para API completa (assinaturas, argumentos e comportamento detalhado), consulte [CLI-TOOLS.md em inglês](../CLI-TOOLS.md) — inclui a secção **SDK and programmatic access** (`gsd-sdk query`, `@gsd-redux/sdk`).
---

View File

@@ -1,7 +1,7 @@
# Skill surface budget — research memo
**Date:** 2026-05-12
**Author:** triage analysis for issue [#3408](https://github.com/gsd-build/get-shit-done/issues/3408)
**Author:** triage analysis for issue [#3408](https://github.com/GSD-redux/get-shit-done-redux/issues/3408)
**Status:** Research input for ADR-0010
**Reading time:** ~15 min
@@ -186,11 +186,11 @@ Instead of one shared `skillListingBudgetFraction`, give each plugin a dedicated
### Option F — Sub-plugins / split distribution
Publish GSD as multiple npm packages: `get-shit-done-cc-core`, `get-shit-done-cc-milestones`, `get-shit-done-cc-research`, etc. Users install only what they need.
Publish GSD as multiple npm packages: `get-shit-done-redux-core`, `get-shit-done-redux-milestones`, `get-shit-done-redux-research`, etc. Users install only what they need.
| Dimension | Assessment |
|---|---|
| User UX | Reasonable for advanced users; confusing for first-time installers. Needs a meta-package (`get-shit-done-cc`) that depends on the slim ones — analogous to VS Code extension packs. |
| User UX | Reasonable for advanced users; confusing for first-time installers. Needs a meta-package (`get-shit-done-redux`) that depends on the slim ones — analogous to VS Code extension packs. |
| Implementation cost | **High.** Multi-package build pipeline, version sync across packages, changelog routing, install-script forking. |
| Dependency safety | npm semver carries the contract; cross-package refs become real `require()` calls. |
| Token savings | Same as Option A in practice — token savings come from choosing not to install, not from the package boundary. |
@@ -260,7 +260,7 @@ Phase 2 — runtime surface command (follow-up ADR or amendment):
## 10. References
- Issue: [#3408](https://github.com/gsd-build/get-shit-done/issues/3408)
- Issue: [#3408](https://github.com/GSD-redux/get-shit-done-redux/issues/3408)
- Existing seam: `get-shit-done/bin/lib/install-profiles.cjs`
- Description lint: `scripts/lint-descriptions.cjs`
- Install dispatcher: `bin/install.js:123` (mode parsing), `bin/install.js:8167-8207` (minimal staging)

View File

@@ -6,19 +6,19 @@
**解决上下文衰减 —— 即 Claude 填充上下文窗口时发生的质量退化问题。**
[![npm version](https://img.shields.io/npm/v/get-shit-done-cc?style=for-the-badge&logo=npm&logoColor=white&color=CB3837)](https://www.npmjs.com/package/get-shit-done-cc)
[![npm downloads](https://img.shields.io/npm/dm/get-shit-done-cc?style=for-the-badge&logo=npm&logoColor=white&color=CB3837)](https://www.npmjs.com/package/get-shit-done-cc)
[![Tests](https://img.shields.io/github/actions/workflow/status/gsd-build/get-shit-done/test.yml?branch=main&style=for-the-badge&logo=github&label=Tests)](https://github.com/gsd-build/get-shit-done/actions/workflows/test.yml)
[![npm version](https://img.shields.io/npm/v/get-shit-done-redux?style=for-the-badge&logo=npm&logoColor=white&color=CB3837)](https://www.npmjs.com/package/get-shit-done-redux)
[![npm downloads](https://img.shields.io/npm/dm/get-shit-done-redux?style=for-the-badge&logo=npm&logoColor=white&color=CB3837)](https://www.npmjs.com/package/get-shit-done-redux)
[![Tests](https://img.shields.io/github/actions/workflow/status/GSD-redux/get-shit-done-redux/test.yml?branch=main&style=for-the-badge&logo=github&label=Tests)](https://github.com/GSD-redux/get-shit-done-redux/actions/workflows/test.yml)
[![Discord](https://img.shields.io/badge/Discord-Join-5865F2?style=for-the-badge&logo=discord&logoColor=white)](https://discord.gg/mYgfVNfA2r)
[![X (Twitter)](https://img.shields.io/badge/X-@gsd__foundation-000000?style=for-the-badge&logo=x&logoColor=white)](https://x.com/gsd_foundation)
[![$GSD Token](https://img.shields.io/badge/$GSD-Dexscreener-1C1C1C?style=for-the-badge&logo=data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgZmlsbD0iIzAwRkYwMCIvPjwvc3ZnPg==&logoColor=00FF00)](https://dexscreener.com/solana/dwudwjvan7bzkw9zwlbyv6kspdlvhwzrqy6ebk8xzxkv)
[![GitHub stars](https://img.shields.io/github/stars/gsd-build/get-shit-done?style=for-the-badge&logo=github&color=181717)](https://github.com/gsd-build/get-shit-done)
[![GitHub stars](https://img.shields.io/github/stars/GSD-redux/get-shit-done-redux?style=for-the-badge&logo=github&color=181717)](https://github.com/GSD-redux/get-shit-done-redux)
[![License](https://img.shields.io/badge/license-MIT-blue?style=for-the-badge)](LICENSE)
<br>
```bash
npx get-shit-done-cc@latest
npx get-shit-done-redux@latest
```
**支持 Mac、Windows 和 Linux。**
@@ -78,7 +78,7 @@ GSD 解决了这个问题。它是让 Claude Code 变得可靠的上下文工程
## 快速开始
```bash
npx get-shit-done-cc@latest
npx get-shit-done-redux@latest
```
安装程序会提示你选择:
@@ -99,7 +99,7 @@ npx get-shit-done-cc@latest
GSD 快速迭代。定期更新:
```bash
npx get-shit-done-cc@latest
npx get-shit-done-redux@latest
```
<details>
@@ -107,25 +107,25 @@ npx get-shit-done-cc@latest
```bash
# Claude Code
npx get-shit-done-cc --claude --global # 安装到 ~/.claude/
npx get-shit-done-cc --claude --local # 安装到 ./.claude/
npx get-shit-done-redux --claude --global # 安装到 ~/.claude/
npx get-shit-done-redux --claude --local # 安装到 ./.claude/
# OpenCode
npx get-shit-done-cc --opencode --global # 安装到 ~/.config/opencode/
npx get-shit-done-redux --opencode --global # 安装到 ~/.config/opencode/
# Gemini CLI
npx get-shit-done-cc --gemini --global # 安装到 ~/.gemini/
npx get-shit-done-redux --gemini --global # 安装到 ~/.gemini/
# Kilo
npx get-shit-done-cc --kilo --global # 安装到 ~/.config/kilo/
npx get-shit-done-cc --kilo --local # 安装到 ./.kilo/
npx get-shit-done-redux --kilo --global # 安装到 ~/.config/kilo/
npx get-shit-done-redux --kilo --local # 安装到 ./.kilo/
# Codex
npx get-shit-done-cc --codex --global # 安装到 ~/.codex/
npx get-shit-done-cc --codex --local # 安装到 ./.codex/
npx get-shit-done-redux --codex --global # 安装到 ~/.codex/
npx get-shit-done-redux --codex --local # 安装到 ./.codex/
# 所有运行时
npx get-shit-done-cc --all --global # 安装到所有目录
npx get-shit-done-redux --all --global # 安装到所有目录
```
使用 `--global`(`-g`)或 `--local`(`-l`)跳过位置提示。
@@ -139,7 +139,7 @@ npx get-shit-done-cc --all --global # 安装到所有目录
克隆仓库并本地运行安装程序:
```bash
git clone https://github.com/gsd-build/get-shit-done.git
git clone https://github.com/GSD-redux/get-shit-done-redux.git
cd get-shit-done
node bin/install.js --claude --local
```
@@ -652,18 +652,18 @@ GSD 的代码库映射和分析命令读取文件以了解你的项目。**保
**命令没有按预期工作?**
- 运行 `/gsd-help` 验证安装
- 重新运行 `npx get-shit-done-cc` 重新安装
- 重新运行 `npx get-shit-done-redux` 重新安装
**更新到最新版本?**
```bash
npx get-shit-done-cc@latest
npx get-shit-done-redux@latest
```
**使用 Docker 或容器化环境?**
如果用波浪号路径(`~/.claude/...`)读取文件失败,在安装前设置 `CLAUDE_CONFIG_DIR`:
```bash
CLAUDE_CONFIG_DIR=/home/youruser/.claude npx get-shit-done-cc --global
CLAUDE_CONFIG_DIR=/home/youruser/.claude npx get-shit-done-redux --global
```
这确保使用绝对路径而不是 `~`,后者在容器中可能无法正确展开。
@@ -673,16 +673,16 @@ CLAUDE_CONFIG_DIR=/home/youruser/.claude npx get-shit-done-cc --global
```bash
# 全局安装
npx get-shit-done-cc --claude --global --uninstall
npx get-shit-done-cc --opencode --global --uninstall
npx get-shit-done-cc --kilo --global --uninstall
npx get-shit-done-cc --codex --global --uninstall
npx get-shit-done-redux --claude --global --uninstall
npx get-shit-done-redux --opencode --global --uninstall
npx get-shit-done-redux --kilo --global --uninstall
npx get-shit-done-redux --codex --global --uninstall
# 本地安装(当前项目)
npx get-shit-done-cc --claude --local --uninstall
npx get-shit-done-cc --opencode --local --uninstall
npx get-shit-done-cc --kilo --local --uninstall
npx get-shit-done-cc --codex --local --uninstall
npx get-shit-done-redux --claude --local --uninstall
npx get-shit-done-redux --opencode --local --uninstall
npx get-shit-done-redux --kilo --local --uninstall
npx get-shit-done-redux --codex --local --uninstall
```
这删除所有 GSD 命令、代理、钩子和设置,同时保留你的其他配置。
@@ -691,7 +691,7 @@ npx get-shit-done-cc --codex --local --uninstall
## 社区移植
OpenCode、Gemini CLI、Kilo 和 Codex 现在通过 `npx get-shit-done-cc` 原生支持。
OpenCode、Gemini CLI、Kilo 和 Codex 现在通过 `npx get-shit-done-redux` 原生支持。
这些社区移植开创了多运行时支持:
@@ -704,11 +704,11 @@ OpenCode、Gemini CLI、Kilo 和 Codex 现在通过 `npx get-shit-done-cc` 原
## Star 历史
<a href="https://star-history.com/#gsd-build/get-shit-done&Date">
<a href="https://star-history.com/#GSD-redux/get-shit-done-redux&Date">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=gsd-build/get-shit-done&type=Date&theme=dark" />
<source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=gsd-build/get-shit-done&type=Date" />
<img alt="Star History Chart" src="https://api.star-history.com/svg?repos=gsd-build/get-shit-done&type=Date" />
<source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=GSD-redux/get-shit-done-redux&type=Date&theme=dark" />
<source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=GSD-redux/get-shit-done-redux&type=Date" />
<img alt="Star History Chart" src="https://api.star-history.com/svg?repos=GSD-redux/get-shit-done-redux&type=Date" />
</picture>
</a>