Security-motivated migration of all stale repository and npm-scope references. Three categories of changes (58 files, 174 substitutions): 1. gsd-build → open-gsd (security-critical): - .github/workflows/release-sdk.yml — npm token comment, tarball filename pattern - .github/workflows/hotfix.yml — same - .changeset/fix-3406-detect-stale-sdk-shadow.md — @gsd-build/sdk → @open-gsd/sdk - .changeset/sharp-quails-leap.md — same - get-shit-done/workflows/update.md — CHANGELOG raw GitHub URL 2. GSD-redux org slug → open-gsd (canonical rename): - package.json + sdk/package.json — repository/homepage/bugs metadata - All README.*.md — live badge and link sections - CONTRIBUTING.md, CONTEXT.md, QUICK-WINS-CONFIRMED-BUGS.md - .coderabbit.yaml, .release-monitor.sh, scripts/sync-rulesets.sh - docs/** — all live agent/ADR/user-facing documentation - tests/** — repo slug assertions and test fixtures - scripts/changeset/cli.cjs + github-release-notes.cjs - .github/ISSUE_TEMPLATE/*, .github/pull_request_template.md - bin/install.js, get-shit-done/bin/lib/model-catalog.cjs - sdk/HANDOVER-*.md, sdk/src/*.test.ts 3. CLAUDE.md (gitignored local file — not in this commit): Updated separately outside git: --repo gsd-build/get-shit-done → --repo open-gsd/get-shit-done-redux with security warning. Intentionally unchanged: CHANGELOG.md, docs/RELEASE-*.md, .changeset/README.md, .changeset/build-hooks-atomic-write.md, README.md migration table (historical fork record), tests/changeset-serialize.test.cjs line 78 (serialization fixture). The gsd-build/get-shit-done repo is compromised (rug-pull documented in README.md). Do not push to or interact with that repo. Closes #120
This commit is contained in:
@@ -2,4 +2,4 @@
|
||||
type: Fixed
|
||||
pr: 3641
|
||||
---
|
||||
**Install-time warning when a stale `@gsd-build/sdk` shadows the bundled `gsd-sdk` shim** — global installs now run `npm ls -g @gsd-build/sdk` and, if the standalone 0.1.0 package is present (it never received `query` subcommand support), print a clear remediation block before the install completes. Detection is fail-closed: any npm/exec error silently returns no-stale. Gated by `GSD_SKIP_STALE_SDK_CHECK=1` for CI/test environments. Resolves #3406.
|
||||
**Install-time warning when a stale `@open-gsd/sdk` shadows the bundled `gsd-sdk` shim** — global installs now run `npm ls -g @open-gsd/sdk` and, if the standalone 0.1.0 package is present (it never received `query` subcommand support), print a clear remediation block before the install completes. Detection is fail-closed: any npm/exec error silently returns no-stale. Gated by `GSD_SKIP_STALE_SDK_CHECK=1` for CI/test environments. Resolves #3406.
|
||||
|
||||
@@ -2,4 +2,4 @@
|
||||
type: Added
|
||||
pr: 3558
|
||||
---
|
||||
**`executeForCjs` synchronous primitive on the SDK runtime bridge** — new sync entry point at `@gsd-build/sdk/dist/runtime-bridge-sync` that lets CJS callers (the `gsd-tools.cjs` dispatcher and per-family `*-command-router.cjs` files) invoke SDK query handlers in-process without spawning a subprocess and without breaking the synchronous CJS contract that ~21 CJS test files and 100+ consumers depend on. Implemented with `synckit` (Atomics.wait on a SharedArrayBuffer in a pooled Worker thread). First-call cost ~80ms (Worker startup + native bridge construction); steady-state ~0.1ms per call after the Worker warms. Returns a typed sync result `{ ok, data | errorKind, exitCode, errorDetails?, stderrLines }` aligned with the ADR-0001 Dispatch Policy Module error taxonomy. Foundation for the Phase 5 per-family CJS router migrations (state.*, verify.*, init.*, phase.*, phases.*, validate.*, roadmap.*, frontmatter.*, config.*) that follow as separate enhancements.
|
||||
**`executeForCjs` synchronous primitive on the SDK runtime bridge** — new sync entry point at `@open-gsd/sdk/dist/runtime-bridge-sync` that lets CJS callers (the `gsd-tools.cjs` dispatcher and per-family `*-command-router.cjs` files) invoke SDK query handlers in-process without spawning a subprocess and without breaking the synchronous CJS contract that ~21 CJS test files and 100+ consumers depend on. Implemented with `synckit` (Atomics.wait on a SharedArrayBuffer in a pooled Worker thread). First-call cost ~80ms (Worker startup + native bridge construction); steady-state ~0.1ms per call after the Worker warms. Returns a typed sync result `{ ok, data | errorKind, exitCode, errorDetails?, stderrLines }` aligned with the ADR-0001 Dispatch Policy Module error taxonomy. Foundation for the Phase 5 per-family CJS router migrations (state.*, verify.*, init.*, phase.*, phases.*, validate.*, roadmap.*, frontmatter.*, config.*) that follow as separate enhancements.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# CodeRabbit configuration — GSD-redux/get-shit-done-redux
|
||||
# CodeRabbit configuration — open-gsd/get-shit-done-redux
|
||||
#
|
||||
# Schema: https://docs.coderabbit.ai/reference/yaml-template/
|
||||
#
|
||||
|
||||
4
.github/ISSUE_TEMPLATE/config.yml
vendored
4
.github/ISSUE_TEMPLATE/config.yml
vendored
@@ -1,11 +1,11 @@
|
||||
blank_issues_enabled: false
|
||||
contact_links:
|
||||
- name: "⚠️ v1.31.0 not on npm yet (known issue — workaround inside)"
|
||||
url: https://github.com/GSD-redux/get-shit-done-redux/discussions
|
||||
url: https://github.com/open-gsd/get-shit-done-redux/discussions
|
||||
about: v1.31.0 was not published to npm due to a hardware failure. Read the pinned announcement for the workaround before opening an issue.
|
||||
- name: Discord Community
|
||||
url: https://discord.gg/mYgfVNfA2r
|
||||
about: Ask questions and get help from the community
|
||||
- name: Discussions
|
||||
url: https://github.com/GSD-redux/get-shit-done-redux/discussions
|
||||
url: https://github.com/open-gsd/get-shit-done-redux/discussions
|
||||
about: Share ideas or ask general questions
|
||||
|
||||
2
.github/ISSUE_TEMPLATE/feature_request.yml
vendored
2
.github/ISSUE_TEMPLATE/feature_request.yml
vendored
@@ -11,7 +11,7 @@ body:
|
||||
A feature adds something new to GSD — a new command, workflow, concept, or integration. Features have the **highest bar** for acceptance because every feature adds permanent maintenance burden to a project built for solo developers.
|
||||
|
||||
**Before opening this issue:**
|
||||
- Check [Discussions](https://github.com/GSD-redux/get-shit-done-redux/discussions) — has this been proposed and declined before?
|
||||
- Check [Discussions](https://github.com/open-gsd/get-shit-done-redux/discussions) — has this been proposed and declined before?
|
||||
- Read [CONTRIBUTING.md](../../CONTRIBUTING.md#-feature) — understand what "approved-feature" means and why you must wait for it before writing code.
|
||||
- Ask yourself: *does this solve a real problem for a solo developer working with an AI coding tool, or is it a feature I personally want?*
|
||||
|
||||
|
||||
2
.github/pull_request_template.md
vendored
2
.github/pull_request_template.md
vendored
@@ -17,7 +17,7 @@ Select the template that matches your PR:
|
||||
- If it **corrects broken behavior** → Fix
|
||||
- If it **improves existing behavior** without adding new commands or concepts → Enhancement
|
||||
- If it **adds something that doesn't exist today** → Feature
|
||||
- If you are not sure → open a [Discussion](https://github.com/GSD-redux/get-shit-done-redux/discussions) first
|
||||
- If you are not sure → open a [Discussion](https://github.com/open-gsd/get-shit-done-redux/discussions) first
|
||||
|
||||
---
|
||||
|
||||
|
||||
4
.github/workflows/hotfix.yml
vendored
4
.github/workflows/hotfix.yml
vendored
@@ -18,7 +18,7 @@ name: Hotfix Release
|
||||
# - install-smoke gate (cross-platform, parity with release.yml/release-sdk.yml)
|
||||
# - Bundles SDK as both loose tree (sdk/dist/cli.js) and recoverable tarball
|
||||
# (sdk-bundle/gsd-sdk.tgz) — parity with release-sdk.yml so a hotfix shipped
|
||||
# during the @gsd-build-token outage carries the same payload shape.
|
||||
# during the @open-gsd-token outage carries the same payload shape.
|
||||
# - Publishes to @latest, tags vX.YY.Z, re-points @next → vX.YY.Z, opens
|
||||
# merge-back PR.
|
||||
|
||||
@@ -332,7 +332,7 @@ jobs:
|
||||
set -e
|
||||
cd sdk
|
||||
npm pack
|
||||
TARBALL="gsd-build-sdk-${VERSION}.tgz"
|
||||
TARBALL="open-gsd-sdk-${VERSION}.tgz"
|
||||
if [ ! -f "$TARBALL" ]; then
|
||||
echo "::error::Expected $TARBALL but npm pack did not produce it."
|
||||
ls -la
|
||||
|
||||
6
.github/workflows/release-sdk.yml
vendored
6
.github/workflows/release-sdk.yml
vendored
@@ -6,7 +6,7 @@
|
||||
# per run.
|
||||
#
|
||||
# Why this exists: @gsd-redux/sdk publishes from canary.yml and release.yml
|
||||
# fail because the @gsd-build npm token is currently unavailable. CC users
|
||||
# fail because the @open-gsd npm token is currently unavailable. CC users
|
||||
# do not consume @gsd-redux/sdk directly — bin/gsd-sdk.js resolves
|
||||
# sdk/dist/cli.js from inside the installed CC package, so the bundled
|
||||
# copy is sufficient for full functionality. This workflow ships CC alone
|
||||
@@ -579,8 +579,8 @@ jobs:
|
||||
set -e
|
||||
cd sdk
|
||||
npm pack
|
||||
# npm pack emits gsd-build-sdk-<version>.tgz in the cwd
|
||||
TARBALL="gsd-build-sdk-${VERSION}.tgz"
|
||||
# npm pack emits open-gsd-sdk-<version>.tgz in the cwd
|
||||
TARBALL="open-gsd-sdk-${VERSION}.tgz"
|
||||
if [ ! -f "$TARBALL" ]; then
|
||||
echo "::error::Expected $TARBALL but npm pack did not produce it. Listing sdk/:"
|
||||
ls -la
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# Render agent definitions from templates at install/config-change time
|
||||
|
||||
**Source:** [#2758](https://github.com/GSD-redux/get-shit-done-redux/issues/2758)
|
||||
**Source:** [#2758](https://github.com/open-gsd/get-shit-done-redux/issues/2758)
|
||||
**Decision:** wontfix — closed on the technical merits
|
||||
**Date:** 2026-05-02
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# Temporal context as a first-class GSD signal
|
||||
|
||||
**Source:** [#2756](https://github.com/GSD-redux/get-shit-done-redux/issues/2756)
|
||||
**Source:** [#2756](https://github.com/open-gsd/get-shit-done-redux/issues/2756)
|
||||
**Decision:** wontfix — closed without further engagement
|
||||
**Date:** 2026-05-02
|
||||
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
#!/usr/bin/env bash
|
||||
# Release monitor for GSD-redux/get-shit-done-redux
|
||||
# Release monitor for open-gsd/get-shit-done-redux
|
||||
# Checks every 15 minutes, writes new release info to a signal file
|
||||
|
||||
REPO="GSD-redux/get-shit-done-redux"
|
||||
REPO="open-gsd/get-shit-done-redux"
|
||||
SIGNAL_FILE="/tmp/gsd-new-release.json"
|
||||
STATE_FILE="/tmp/gsd-monitor-last-tag"
|
||||
LOG_FILE="/tmp/gsd-monitor.log"
|
||||
|
||||
10
CONTEXT.md
10
CONTEXT.md
@@ -193,7 +193,7 @@ Five-axis story decomposition discipline (**S**pike, **P**aths, **I**nterfaces,
|
||||
## Workspace seams (machine-oriented predicates)
|
||||
|
||||
`RULESET.GH.AUTH.DEFAULT=source .envrc GITHUB_TOKEN before gh; exception=ambient allowed only when user explicitly says machine-only fallback`
|
||||
`RULESET.CODERABBIT.GUARD.OPEN_PRS=gh pr list --repo GSD-redux/get-shit-done-redux --author @me --state open; repeat near end because open PR set can change mid-run`
|
||||
`RULESET.CODERABBIT.GUARD.OPEN_PRS=gh pr list --repo open-gsd/get-shit-done-redux --author @me --state open; repeat near end because open PR set can change mid-run`
|
||||
`RULESET.CODERABBIT.GUARD.COMPLETE=required_checks_green && coderabbit_check_pass && graphQL(reviewThreads.unresolved_count)==0`
|
||||
`RULESET.CODERABBIT.GUARD.GRAPHQL=reviewThreads(first:100){nodes{id isResolved comments{nodes{author body path line originalLine url}}}}; use unresolved threads as authoritative, not badge text alone`
|
||||
`RULESET.CODERABBIT.GUARD.RERUN=after every push wait for CodeRabbit completion, then re-query unresolved threads; CodeRabbit can add new findings after earlier threads were resolved`
|
||||
@@ -256,7 +256,7 @@ Five-axis story decomposition discipline (**S**pike, **P**aths, **I**nterfaces,
|
||||
`RELEASE-NOTES.STANDARD.footer.hotfix=Install/upgrade: \`npx get-shit-done-redux@latest\``
|
||||
`RELEASE-NOTES.STANDARD.footer.rc=Install for testing: \`npx get-shit-done-redux@next\` (per branch->dist-tag policy)`
|
||||
`RELEASE-NOTES.STANDARD.footer.canary=Install: \`npx get-shit-done-redux@canary\``
|
||||
`RELEASE-NOTES.STANDARD.footer.full-changelog=**Full Changelog**: https://github.com/GSD-redux/get-shit-done-redux/compare/<prev>...<this>`
|
||||
`RELEASE-NOTES.STANDARD.footer.full-changelog=**Full Changelog**: https://github.com/open-gsd/get-shit-done-redux/compare/<prev>...<this>`
|
||||
`RELEASE-NOTES.STANDARD.intro=optional one-paragraph framing for RC/feature releases; omit for pure-fix hotfixes`
|
||||
|
||||
`RELEASE-NOTES.SOURCE.commits=git log <prev-tag>..<this-tag> --pretty=format:'%s%n%n%b' --no-merges`
|
||||
@@ -273,8 +273,8 @@ Five-axis story decomposition discipline (**S**pike, **P**aths, **I**nterfaces,
|
||||
`RELEASE-NOTES.ANTI-PATTERN.implementation-first=do not lead bullet with file path or function name; lead with symptom/user-visible behavior`
|
||||
`RELEASE-NOTES.ANTI-PATTERN.risk-commentary=do not include "may break", "be careful", "test thoroughly" - per global CLAUDE.md no-risk-commentary rule`
|
||||
|
||||
`RELEASE-NOTES.EXAMPLE.hotfix=v1.41.1 (https://github.com/GSD-redux/get-shit-done-redux/releases/tag/v1.41.1) - 14 fixes grouped by 6 subgroups`
|
||||
`RELEASE-NOTES.EXAMPLE.rc=v1.42.0-rc1 (https://github.com/GSD-redux/get-shit-done-redux/releases/tag/v1.42.0-rc1) - intro + Added/Changed/Fixed/Documentation taxonomy`
|
||||
`RELEASE-NOTES.EXAMPLE.hotfix=v1.41.1 (https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.41.1) - 14 fixes grouped by 6 subgroups`
|
||||
`RELEASE-NOTES.EXAMPLE.rc=v1.42.0-rc1 (https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.42.0-rc1) - intro + Added/Changed/Fixed/Documentation taxonomy`
|
||||
`RELEASE-NOTES.EXAMPLE.minor-auto-acceptable=v1.41.0 - kept auto-generated body; many small fixes with clean conventional-commit titles`
|
||||
|
||||
`RELEASE-NOTES.TEMPLATE.hotfix=## Fixed\n\n### <subgroup>\n- **<bold change>** — <explanation>. (#<PR>)\n\n---\n\nInstall/upgrade: \`npx get-shit-done-redux@latest\`\n\n**Full Changelog**: <compare-url>`
|
||||
@@ -594,7 +594,7 @@ Migration plan: Phase 1 (#3465) seam additions complete; Phase 2 (#3466) targets
|
||||
`DEFECT.GSD-TEST-CONCURRENT-OUTPUT-COLLISION.root-cause=gsd-test-summary lines 126-127 default LOCAL_OUT/DOCKER_OUT to fixed /tmp/gsd-test-{local,docker}.jsonl; concurrent line-buffered writers interleave bytes mid-multibyte → split UTF-8 sequence → decoder explodes on f.read()`
|
||||
`DEFECT.GSD-TEST-CONCURRENT-OUTPUT-COLLISION.detect=two gsd-test-summary --both runs in flight; UnicodeDecodeError in parse_events_from_string traceback; /tmp/gsd-test-*.jsonl size mismatch vs total events emitted`
|
||||
`DEFECT.GSD-TEST-CONCURRENT-OUTPUT-COLLISION.fix-forward=set per-invocation LOCAL_OUT=/tmp/gsd-test-<tag>-local.jsonl DOCKER_OUT=/tmp/gsd-test-<tag>-docker.jsonl env vars; or serialize the runs; upstream fix tracked in #3545 (default to tempfile.mkstemp + advisory flock)`
|
||||
`DEFECT.GSD-TEST-CONCURRENT-OUTPUT-COLLISION.upstream=GSD-redux/get-shit-done-redux#3545`
|
||||
`DEFECT.GSD-TEST-CONCURRENT-OUTPUT-COLLISION.upstream=open-gsd/get-shit-done-redux#3545`
|
||||
`DEFECT.SUBAGENT-LONG-RUNNING-BG-STALL.symptom=spawned sub-agent kicks off gsd-test-summary --both via Bash run_in_background, then stops on the harness "you will be notified" message; never receives the notification because cross-turn task-notifications are only delivered to the top-level orchestrator`
|
||||
`DEFECT.SUBAGENT-LONG-RUNNING-BG-STALL.detect=sub-agent returns prematurely with text like "I should wait for the notification per CLAUDE.md" and incomplete work in its worktree (commits absent, push absent, PR absent)`
|
||||
`DEFECT.SUBAGENT-LONG-RUNNING-BG-STALL.fix-forward=keep gsd-test-summary --both at the top-level orchestrator; sub-agents either run it foreground with timeout: 1500000 (25min) and block, OR delegate the test step back to the orchestrator (write commits + return); never have a sub-agent fire-and-await a backgrounded long task`
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
```bash
|
||||
# Clone the repo
|
||||
git clone https://github.com/GSD-redux/get-shit-done-redux.git
|
||||
git clone https://github.com/open-gsd/get-shit-done-redux.git
|
||||
cd get-shit-done
|
||||
|
||||
# Install dependencies
|
||||
@@ -25,7 +25,7 @@ GSD accepts three types of contributions. Each type has a different process and
|
||||
A fix corrects something that is broken, crashes, produces wrong output, or behaves contrary to documented behavior.
|
||||
|
||||
**Process:**
|
||||
1. Open a [Bug Report issue](https://github.com/GSD-redux/get-shit-done-redux/issues/new?template=bug_report.yml) — fill it out completely.
|
||||
1. Open a [Bug Report issue](https://github.com/open-gsd/get-shit-done-redux/issues/new?template=bug_report.yml) — fill it out completely.
|
||||
2. Wait for a maintainer to confirm it is a bug (label: `confirmed-bug`). For obvious, reproducible bugs this is typically fast.
|
||||
3. Fix it. Write a test that would have caught the bug.
|
||||
4. Open a PR using the [Fix PR template](.github/PULL_REQUEST_TEMPLATE/fix.md) — link the confirmed issue.
|
||||
@@ -41,7 +41,7 @@ An enhancement improves an existing feature — better output, faster execution,
|
||||
**The bar:** Enhancements must have a scoped written proposal approved by a maintainer before any code is written. A PR for an enhancement will be closed without review if the linked issue does not carry the `approved-enhancement` label.
|
||||
|
||||
**Process:**
|
||||
1. Open an [Enhancement issue](https://github.com/GSD-redux/get-shit-done-redux/issues/new?template=enhancement.yml) with the full proposal. The issue template requires: the problem being solved, the concrete benefit, the scope of changes, and alternatives considered.
|
||||
1. Open an [Enhancement issue](https://github.com/open-gsd/get-shit-done-redux/issues/new?template=enhancement.yml) with the full proposal. The issue template requires: the problem being solved, the concrete benefit, the scope of changes, and alternatives considered.
|
||||
2. **Wait for maintainer approval.** A maintainer must label the issue `approved-enhancement` before you write a single line of code. Do not open a PR against an unapproved enhancement issue — it will be closed.
|
||||
3. Write the code. Keep the scope exactly as approved. If scope creep occurs, comment on the issue and get re-approval before continuing.
|
||||
4. Open a PR using the [Enhancement PR template](.github/PULL_REQUEST_TEMPLATE/enhancement.md) — link the approved issue.
|
||||
@@ -57,8 +57,8 @@ A feature adds something new — a new command, a new workflow, a new concept, a
|
||||
**The bar:** Features require a complete written specification approved by a maintainer before any code is written. A PR for a feature will be closed without review if the linked issue does not carry the `approved-feature` label. Incomplete specs are closed, not revised by maintainers.
|
||||
|
||||
**Process:**
|
||||
1. **Discuss first** — check [Discussions](https://github.com/GSD-redux/get-shit-done-redux/discussions) to see if the idea has been raised. If it has and was declined, don't open a new issue.
|
||||
2. Open a [Feature Request issue](https://github.com/GSD-redux/get-shit-done-redux/issues/new?template=feature_request.yml) with the complete spec. The template requires: the solo-developer problem being solved, what is being added, full scope of affected files and systems, user stories, acceptance criteria, and assessment of maintenance burden.
|
||||
1. **Discuss first** — check [Discussions](https://github.com/open-gsd/get-shit-done-redux/discussions) to see if the idea has been raised. If it has and was declined, don't open a new issue.
|
||||
2. Open a [Feature Request issue](https://github.com/open-gsd/get-shit-done-redux/issues/new?template=feature_request.yml) with the complete spec. The template requires: the solo-developer problem being solved, what is being added, full scope of affected files and systems, user stories, acceptance criteria, and assessment of maintenance burden.
|
||||
3. **Wait for maintainer approval.** A maintainer must label the issue `approved-feature` before you write a single line of code. Approval is not guaranteed — GSD is intentionally lean and many valid ideas are declined because they conflict with the project's design philosophy.
|
||||
4. Write the code. Implement exactly the approved spec. Changes to scope require re-approval.
|
||||
5. Open a PR using the [Feature PR template](.github/PULL_REQUEST_TEMPLATE/feature.md) — link the approved issue.
|
||||
@@ -146,7 +146,7 @@ npm run changeset -- --type Fixed --pr <YOUR_PR_NUMBER> \
|
||||
|
||||
This writes `.changeset/<adjective>-<noun>-<noun>.md`. Three random words → concurrent PRs never collide. Allowed `type:` values follow [Keep a Changelog](https://keepachangelog.com/): `Added`, `Changed`, `Deprecated`, `Removed`, `Fixed`, `Security`.
|
||||
|
||||
Fragments are consolidated into `CHANGELOG.md` at release time by the release workflow. See [`.changeset/README.md`](.changeset/README.md) for the format spec and [#2975](https://github.com/GSD-redux/get-shit-done-redux/issues/2975) for the rationale.
|
||||
Fragments are consolidated into `CHANGELOG.md` at release time by the release workflow. See [`.changeset/README.md`](.changeset/README.md) for the format spec and [#2975](https://github.com/open-gsd/get-shit-done-redux/issues/2975) for the rationale.
|
||||
|
||||
**CI enforcement:** the `Changeset Required` workflow (`scripts/changeset/lint.cjs`) fails any PR that touches `bin/`, `get-shit-done/`, `agents/`, `commands/`, `hooks/`, or `sdk/src/` without a `.changeset/*.md` fragment.
|
||||
|
||||
@@ -154,7 +154,7 @@ Fragments are consolidated into `CHANGELOG.md` at release time by the release wo
|
||||
|
||||
## Documentation Updates — Update the Relevant Docs
|
||||
|
||||
If your PR adds, changes, deprecates, or removes user-visible behavior, you **must** update the relevant documentation in `docs/`. CI will fail any PR whose changeset fragment is typed `Added`, `Changed`, `Deprecated`, or `Removed` without also modifying at least one file under `docs/` ([#3213](https://github.com/GSD-redux/get-shit-done-redux/issues/3213)).
|
||||
If your PR adds, changes, deprecates, or removes user-visible behavior, you **must** update the relevant documentation in `docs/`. CI will fail any PR whose changeset fragment is typed `Added`, `Changed`, `Deprecated`, or `Removed` without also modifying at least one file under `docs/` ([#3213](https://github.com/open-gsd/get-shit-done-redux/issues/3213)).
|
||||
|
||||
`Fixed` and `Security` fragments do not trigger this lint — bug fixes restore documented behavior, they do not introduce new behavior to document. (Edit the docs anyway if a fix corrects something the docs got wrong.)
|
||||
|
||||
|
||||
@@ -15,12 +15,12 @@ All six issues carry the `confirmed-bug` label, meaning the bug has been verifie
|
||||
|
||||
| # | Issue | Short Title | Type | Recommended Flow | Est. Effort | Status | Notes |
|
||||
|---|-------|-------------|------|------------------|-------------|--------|-------|
|
||||
| 1 | [#3583](https://github.com/GSD-redux/get-shit-done-redux/issues/3583) | Claude skill install leaves `/gsd:<cmd>` in `SKILL.md` body | Installer / Command namespace | PR 3629 (our branch) + competing 3586 | Small (1 file + test) | PR opened / Review | **Leading PR: 3629** (cristianuibar) — reviewed + hardened with CodeRabbit feedback (left-boundary regex + body-scoped guard). Competing PR 3586 has "needs changes" + "ci: failing". Issue still carries `confirmed-bug`. |
|
||||
| 2 | [#3579](https://github.com/GSD-redux/get-shit-done-redux/issues/3579) | `build-hooks.js` + npm publish omit graphify auto-update hook | Packaging / Build | `/gsd-quick` | Small | Not started | Classic "new feature missed in release artifact". Easy local verification. |
|
||||
| 3 | [#3496](https://github.com/GSD-redux/get-shit-done-redux/issues/3496) | `/gsd:update` changelog extraction skips intermediate versions | Workflow / Update logic | `/gsd-quick` or lightweight plan | Medium-small | Not started | Needs deterministic version-range helper. |
|
||||
| 4 | [#3588](https://github.com/GSD-redux/get-shit-done-redux/issues/3588) | Production `npm audit` has 1 high + 5 moderate advisories | Security / Dependencies | Direct + careful review | Medium | Not started | Transitive via `@anthropic-ai/claude-agent-sdk`. May need overrides. |
|
||||
| 5 | [#3584](https://github.com/GSD-redux/get-shit-done-redux/issues/3584) | Runtime `bin/lib/*.cjs` still emit `/gsd:<cmd>` (larger piece deferred from #3583) | Runtime output / Slash formatter | Short plan first, then execute | Medium-Large | Not started | 16+ files. Design a centralized runtime-aware formatter. Do after #3583. |
|
||||
| 6 | [#3340](https://github.com/GSD-redux/get-shit-done-redux/issues/3340) | SDK publish lag — agent dir fix never shipped in `@gsd-redux/sdk@0.1.0` | Release / SDK publishing | Plan + coordination | Medium (release-focused) | Not started | Oldest. Mostly a publishing/versioning task. |
|
||||
| 1 | [#3583](https://github.com/open-gsd/get-shit-done-redux/issues/3583) | Claude skill install leaves `/gsd:<cmd>` in `SKILL.md` body | Installer / Command namespace | PR 3629 (our branch) + competing 3586 | Small (1 file + test) | PR opened / Review | **Leading PR: 3629** (cristianuibar) — reviewed + hardened with CodeRabbit feedback (left-boundary regex + body-scoped guard). Competing PR 3586 has "needs changes" + "ci: failing". Issue still carries `confirmed-bug`. |
|
||||
| 2 | [#3579](https://github.com/open-gsd/get-shit-done-redux/issues/3579) | `build-hooks.js` + npm publish omit graphify auto-update hook | Packaging / Build | `/gsd-quick` | Small | Not started | Classic "new feature missed in release artifact". Easy local verification. |
|
||||
| 3 | [#3496](https://github.com/open-gsd/get-shit-done-redux/issues/3496) | `/gsd:update` changelog extraction skips intermediate versions | Workflow / Update logic | `/gsd-quick` or lightweight plan | Medium-small | Not started | Needs deterministic version-range helper. |
|
||||
| 4 | [#3588](https://github.com/open-gsd/get-shit-done-redux/issues/3588) | Production `npm audit` has 1 high + 5 moderate advisories | Security / Dependencies | Direct + careful review | Medium | Not started | Transitive via `@anthropic-ai/claude-agent-sdk`. May need overrides. |
|
||||
| 5 | [#3584](https://github.com/open-gsd/get-shit-done-redux/issues/3584) | Runtime `bin/lib/*.cjs` still emit `/gsd:<cmd>` (larger piece deferred from #3583) | Runtime output / Slash formatter | Short plan first, then execute | Medium-Large | Not started | 16+ files. Design a centralized runtime-aware formatter. Do after #3583. |
|
||||
| 6 | [#3340](https://github.com/open-gsd/get-shit-done-redux/issues/3340) | SDK publish lag — agent dir fix never shipped in `@gsd-redux/sdk@0.1.0` | Release / SDK publishing | Plan + coordination | Medium (release-focused) | Not started | Oldest. Mostly a publishing/versioning task. |
|
||||
|
||||
## Execution Rules for This Batch
|
||||
|
||||
|
||||
@@ -12,9 +12,9 @@
|
||||
|
||||
[](https://www.npmjs.com/package/get-shit-done-redux)
|
||||
[](https://www.npmjs.com/package/get-shit-done-redux)
|
||||
[](https://github.com/GSD-redux/get-shit-done-redux/actions/workflows/test.yml)
|
||||
[](https://github.com/open-gsd/get-shit-done-redux/actions/workflows/test.yml)
|
||||
[](https://discord.gg/mYgfVNfA2r)
|
||||
[](https://github.com/GSD-redux/get-shit-done-redux)
|
||||
[](https://github.com/open-gsd/get-shit-done-redux)
|
||||
[](LICENSE)
|
||||
|
||||
<br>
|
||||
@@ -77,7 +77,7 @@ GSDはそれを解決します。Claude Codeを信頼性の高いものにする
|
||||
|
||||
### v1.39.0 ハイライト
|
||||
|
||||
完全なリストは [v1.39.0 リリースノート](https://github.com/GSD-redux/get-shit-done-redux/releases/tag/v1.39.0) を参照してください。
|
||||
完全なリストは [v1.39.0 リリースノート](https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.39.0) を参照してください。
|
||||
|
||||
- **`--minimal` インストールプロファイル** — エイリアス `--core-only`。メインループの6スキル(`new-project`、`discuss-phase`、`plan-phase`、`execute-phase`、`help`、`update`)のみをインストールし、`gsd-*` サブエージェントはゼロ。コールドスタート時のシステムプロンプトのオーバーヘッドを ~12kトークンから ~700トークンへ削減(≥94%減)。32K〜128Kコンテキストのローカル LLM やトークン課金 API に有効。
|
||||
- **`/gsd-phase --edit`** — `ROADMAP.md` 上の既存フェーズの任意フィールドをその場で編集(番号や位置は変更されない)。`--force` で確認 diff をスキップ、`depends_on` の参照を検証し、書き込み時に `STATE.md` も更新。
|
||||
@@ -180,7 +180,7 @@ npx get-shit-done-redux --all --global # すべてのディレクトリに
|
||||
リポジトリをクローンしてインストーラーをローカルで実行します:
|
||||
|
||||
```bash
|
||||
git clone https://github.com/GSD-redux/get-shit-done-redux.git
|
||||
git clone https://github.com/open-gsd/get-shit-done-redux.git
|
||||
cd get-shit-done
|
||||
node bin/install.js --claude --local
|
||||
```
|
||||
@@ -847,11 +847,11 @@ OpenCode、Gemini CLI、Kilo、Codexは `npx get-shit-done-redux` でネイテ
|
||||
|
||||
## スター履歴
|
||||
|
||||
<a href="https://star-history.com/#GSD-redux/get-shit-done-redux&Date">
|
||||
<a href="https://star-history.com/#open-gsd/get-shit-done-redux&Date">
|
||||
<picture>
|
||||
<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" />
|
||||
<source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=open-gsd/get-shit-done-redux&type=Date&theme=dark" />
|
||||
<source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=open-gsd/get-shit-done-redux&type=Date" />
|
||||
<img alt="Star History Chart" src="https://api.star-history.com/svg?repos=open-gsd/get-shit-done-redux&type=Date" />
|
||||
</picture>
|
||||
</a>
|
||||
|
||||
|
||||
@@ -12,9 +12,9 @@
|
||||
|
||||
[](https://www.npmjs.com/package/get-shit-done-redux)
|
||||
[](https://www.npmjs.com/package/get-shit-done-redux)
|
||||
[](https://github.com/GSD-redux/get-shit-done-redux/actions/workflows/test.yml)
|
||||
[](https://github.com/open-gsd/get-shit-done-redux/actions/workflows/test.yml)
|
||||
[](https://discord.gg/mYgfVNfA2r)
|
||||
[](https://github.com/GSD-redux/get-shit-done-redux)
|
||||
[](https://github.com/open-gsd/get-shit-done-redux)
|
||||
[](LICENSE)
|
||||
|
||||
<br>
|
||||
@@ -77,7 +77,7 @@ GSD가 그걸 고칩니다. Claude Code를 신뢰할 수 있게 만드는 컨텍
|
||||
|
||||
### v1.39.0 하이라이트
|
||||
|
||||
전체 목록은 [v1.39.0 릴리스 노트](https://github.com/GSD-redux/get-shit-done-redux/releases/tag/v1.39.0)를 참고하세요.
|
||||
전체 목록은 [v1.39.0 릴리스 노트](https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.39.0)를 참고하세요.
|
||||
|
||||
- **`--minimal` 설치 프로파일** — 별칭 `--core-only`. 메인 루프 6개 스킬(`new-project`, `discuss-phase`, `plan-phase`, `execute-phase`, `help`, `update`)만 설치하고 `gsd-*` 서브에이전트는 설치하지 않음. 콜드 스타트 시스템 프롬프트 오버헤드를 ~12k 토큰에서 ~700 토큰으로 축소(≥94% 감소). 32K–128K 컨텍스트의 로컬 LLM이나 토큰 과금 API에 유용.
|
||||
- **`/gsd-phase --edit`** — `ROADMAP.md`에 있는 기존 단계의 임의 필드를 그 자리에서 수정(번호와 위치는 변경되지 않음). `--force`는 확인 diff를 건너뛰고, `depends_on` 참조를 검증하며 쓰기 시 `STATE.md`도 갱신.
|
||||
@@ -180,7 +180,7 @@ npx get-shit-done-redux --all --global # 모든 디렉터리에 설치
|
||||
저장소를 클론하고 설치 프로그램을 로컬에서 실행합니다:
|
||||
|
||||
```bash
|
||||
git clone https://github.com/GSD-redux/get-shit-done-redux.git
|
||||
git clone https://github.com/open-gsd/get-shit-done-redux.git
|
||||
cd get-shit-done
|
||||
node bin/install.js --claude --local
|
||||
```
|
||||
@@ -838,11 +838,11 @@ OpenCode, Gemini CLI, Kilo, Codex는 이제 `npx get-shit-done-redux`를 통해
|
||||
|
||||
## 스타 히스토리
|
||||
|
||||
<a href="https://star-history.com/#GSD-redux/get-shit-done-redux&Date">
|
||||
<a href="https://star-history.com/#open-gsd/get-shit-done-redux&Date">
|
||||
<picture>
|
||||
<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" />
|
||||
<source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=open-gsd/get-shit-done-redux&type=Date&theme=dark" />
|
||||
<source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=open-gsd/get-shit-done-redux&type=Date" />
|
||||
<img alt="Star History Chart" src="https://api.star-history.com/svg?repos=open-gsd/get-shit-done-redux&type=Date" />
|
||||
</picture>
|
||||
</a>
|
||||
|
||||
|
||||
12
README.md
12
README.md
@@ -40,9 +40,9 @@
|
||||
|
||||
[](https://www.npmjs.com/package/get-shit-done-redux)
|
||||
[](https://www.npmjs.com/package/get-shit-done-redux)
|
||||
[](https://github.com/GSD-redux/get-shit-done-redux/actions/workflows/test.yml)
|
||||
[](https://github.com/open-gsd/get-shit-done-redux/actions/workflows/test.yml)
|
||||
[](https://discord.gg/mYgfVNfA2r)
|
||||
[](https://github.com/GSD-redux/get-shit-done-redux)
|
||||
[](https://github.com/open-gsd/get-shit-done-redux)
|
||||
[](LICENSE)
|
||||
|
||||
<br>
|
||||
@@ -277,11 +277,11 @@ Full troubleshooting and uninstall instructions in **[docs/USER-GUIDE.md](docs/U
|
||||
|
||||
## Star History
|
||||
|
||||
<a href="https://star-history.com/#GSD-redux/get-shit-done-redux&Date">
|
||||
<a href="https://star-history.com/#open-gsd/get-shit-done-redux&Date">
|
||||
<picture>
|
||||
<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" />
|
||||
<source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=open-gsd/get-shit-done-redux&type=Date&theme=dark" />
|
||||
<source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=open-gsd/get-shit-done-redux&type=Date" />
|
||||
<img alt="Star History Chart" src="https://api.star-history.com/svg?repos=open-gsd/get-shit-done-redux&type=Date" />
|
||||
</picture>
|
||||
</a>
|
||||
|
||||
|
||||
@@ -12,9 +12,9 @@
|
||||
|
||||
[](https://www.npmjs.com/package/get-shit-done-redux)
|
||||
[](https://www.npmjs.com/package/get-shit-done-redux)
|
||||
[](https://github.com/GSD-redux/get-shit-done-redux/actions/workflows/test.yml)
|
||||
[](https://github.com/open-gsd/get-shit-done-redux/actions/workflows/test.yml)
|
||||
[](https://discord.gg/mYgfVNfA2r)
|
||||
[](https://github.com/GSD-redux/get-shit-done-redux)
|
||||
[](https://github.com/open-gsd/get-shit-done-redux)
|
||||
[](LICENSE)
|
||||
|
||||
<br>
|
||||
@@ -75,7 +75,7 @@ Quality gates embutidos capturam problemas reais: detecção de schema drift sin
|
||||
|
||||
### Destaques v1.39.0
|
||||
|
||||
Lista completa nas [notas de release v1.39.0](https://github.com/GSD-redux/get-shit-done-redux/releases/tag/v1.39.0).
|
||||
Lista completa nas [notas de release v1.39.0](https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.39.0).
|
||||
|
||||
- **Perfil de instalação `--minimal`** — alias `--core-only`. Instala apenas os 6 skills do loop principal (`new-project`, `discuss-phase`, `plan-phase`, `execute-phase`, `help`, `update`) e nenhum subagente `gsd-*`. Reduz o overhead do system prompt no cold-start de ~12k para ~700 tokens (≥94% de redução). Útil para LLMs locais com contexto de 32K–128K e APIs cobradas por token.
|
||||
- **`/gsd-phase --edit`** — edita qualquer campo de uma fase existente em `ROADMAP.md` no lugar, sem alterar o número ou a posição. `--force` pula o diff de confirmação; referências em `depends_on` são validadas e o `STATE.md` é atualizado na escrita.
|
||||
@@ -469,11 +469,11 @@ OpenCode, Gemini CLI, Kilo e Codex agora são suportados nativamente via `npx ge
|
||||
|
||||
## Star History
|
||||
|
||||
<a href="https://star-history.com/#GSD-redux/get-shit-done-redux&Date">
|
||||
<a href="https://star-history.com/#open-gsd/get-shit-done-redux&Date">
|
||||
<picture>
|
||||
<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" />
|
||||
<source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=open-gsd/get-shit-done-redux&type=Date&theme=dark" />
|
||||
<source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=open-gsd/get-shit-done-redux&type=Date" />
|
||||
<img alt="Star History Chart" src="https://api.star-history.com/svg?repos=open-gsd/get-shit-done-redux&type=Date" />
|
||||
</picture>
|
||||
</a>
|
||||
|
||||
|
||||
@@ -12,9 +12,9 @@
|
||||
|
||||
[](https://www.npmjs.com/package/get-shit-done-redux)
|
||||
[](https://www.npmjs.com/package/get-shit-done-redux)
|
||||
[](https://github.com/GSD-redux/get-shit-done-redux/actions/workflows/test.yml)
|
||||
[](https://github.com/open-gsd/get-shit-done-redux/actions/workflows/test.yml)
|
||||
[](https://discord.gg/mYgfVNfA2r)
|
||||
[](https://github.com/GSD-redux/get-shit-done-redux)
|
||||
[](https://github.com/open-gsd/get-shit-done-redux)
|
||||
[](LICENSE)
|
||||
|
||||
<br>
|
||||
@@ -75,7 +75,7 @@ GSD 解决的就是这个问题。它是让 Claude Code 变得可靠的上下文
|
||||
|
||||
### v1.39.0 亮点
|
||||
|
||||
完整列表请参阅 [v1.39.0 发行说明](https://github.com/GSD-redux/get-shit-done-redux/releases/tag/v1.39.0)。
|
||||
完整列表请参阅 [v1.39.0 发行说明](https://github.com/open-gsd/get-shit-done-redux/releases/tag/v1.39.0)。
|
||||
|
||||
- **`--minimal` 安装档** — 别名 `--core-only`。仅安装主循环的 6 个核心技能(`new-project`、`discuss-phase`、`plan-phase`、`execute-phase`、`help`、`update`),不安装任何 `gsd-*` 子代理。将冷启动系统提示开销从 ~12k token 降至 ~700 token(≥94% 减少)。适合 32K–128K 上下文的本地 LLM 和按 token 计费的 API。
|
||||
- **`/gsd-phase --edit`** — 就地修改 `ROADMAP.md` 中已有阶段的任意字段,不改变其编号或位置。`--force` 跳过确认 diff,验证 `depends_on` 引用,并在写入时更新 `STATE.md`。
|
||||
@@ -182,7 +182,7 @@ npx get-shit-done-redux --all --global # 安装到所有目录
|
||||
克隆仓库并在本地运行安装器:
|
||||
|
||||
```bash
|
||||
git clone https://github.com/GSD-redux/get-shit-done-redux.git
|
||||
git clone https://github.com/open-gsd/get-shit-done-redux.git
|
||||
cd get-shit-done
|
||||
node bin/install.js --claude --local
|
||||
```
|
||||
@@ -819,11 +819,11 @@ OpenCode、Gemini CLI、Kilo 和 Codex 现在都已经通过 `npx get-shit-done-
|
||||
|
||||
## Star History
|
||||
|
||||
<a href="https://star-history.com/#GSD-redux/get-shit-done-redux&Date">
|
||||
<a href="https://star-history.com/#open-gsd/get-shit-done-redux&Date">
|
||||
<picture>
|
||||
<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" />
|
||||
<source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=open-gsd/get-shit-done-redux&type=Date&theme=dark" />
|
||||
<source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=open-gsd/get-shit-done-redux&type=Date" />
|
||||
<img alt="Star History Chart" src="https://api.star-history.com/svg?repos=open-gsd/get-shit-done-redux&type=Date" />
|
||||
</picture>
|
||||
</a>
|
||||
|
||||
|
||||
@@ -8553,7 +8553,7 @@ function install(isGlobal, runtime = 'claude', options = {}) {
|
||||
// Copy agents to agents directory.
|
||||
// Skipped under --minimal: gsd-* subagent descriptions are eagerly loaded
|
||||
// into the runtime's Agent tool schema, costing ~6k tokens per turn even
|
||||
// when no GSD workflow is active. See GSD-redux/get-shit-done-redux#2762.
|
||||
// when no GSD workflow is active. See open-gsd/get-shit-done-redux#2762.
|
||||
// Note: agentsSrc is declared as let before the enclosing try block so it
|
||||
// is accessible by installCodexConfig() in the Codex config section below.
|
||||
agentsSrc = _stageAgents(path.join(src, 'agents'));
|
||||
@@ -10425,14 +10425,14 @@ function renderSdkFailFastReport(ir) {
|
||||
console.error(` Or, if you prefer a one-shot run, clear the npx cache first:`);
|
||||
console.error(` ${cyan}npx --yes get-shit-done-redux@latest${reset}`);
|
||||
console.error(` Or build from source (git clone):`);
|
||||
console.error(` ${cyan}git clone https://github.com/GSD-redux/get-shit-done-redux && cd get-shit-done/sdk && npm install && npm run build${reset}`);
|
||||
console.error(` ${cyan}git clone https://github.com/open-gsd/get-shit-done-redux && cd get-shit-done/sdk && npm install && npm run build${reset}`);
|
||||
} else if (ir.context === 'tarball') {
|
||||
console.error(` The published tarball appears to be missing sdk/dist/ (see #2647).`);
|
||||
console.error('');
|
||||
console.error(` Fix: install a version that ships sdk/dist/ globally:`);
|
||||
console.error(` ${cyan}${ir.fix_command}${reset}`);
|
||||
console.error(` Or build from source (git clone):`);
|
||||
console.error(` ${cyan}git clone https://github.com/GSD-redux/get-shit-done-redux && cd get-shit-done/sdk && npm install && npm run build${reset}`);
|
||||
console.error(` ${cyan}git clone https://github.com/open-gsd/get-shit-done-redux && cd get-shit-done/sdk && npm install && npm run build${reset}`);
|
||||
} else {
|
||||
console.error(` Running from a git clone — build the SDK first:`);
|
||||
console.error(` ${cyan}${ir.fix_command}${reset}`);
|
||||
@@ -10688,7 +10688,7 @@ function formatStaleStandaloneSdkWarning(info) {
|
||||
' npm uninstall -g @gsd-redux/sdk',
|
||||
' npx -y get-shit-done-redux@latest --<runtime> --global',
|
||||
'',
|
||||
' Tracking: #3406 — https://github.com/GSD-redux/get-shit-done-redux/issues/3406',
|
||||
' Tracking: #3406 — https://github.com/open-gsd/get-shit-done-redux/issues/3406',
|
||||
].join('\n');
|
||||
}
|
||||
|
||||
|
||||
@@ -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-redux/get-shit-done-redux/issues/2792))
|
||||
#### Two-stage hierarchical routing (v1.40, [#2792](https://github.com/open-gsd/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.
|
||||
|
||||
|
||||
@@ -57,10 +57,10 @@ If you have a local project that interacted with canary-only features (for insta
|
||||
|
||||
## Reporting issues against canary
|
||||
|
||||
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.
|
||||
File against the [issue tracker](https://github.com/open-gsd/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-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)
|
||||
- Stream architecture rationale: discussed across [#2727](https://github.com/open-gsd/get-shit-done-redux/issues/2727), [#2773](https://github.com/open-gsd/get-shit-done-redux/issues/2773) (codex schema-break and the resulting promotion bottleneck that motivated explicit stream isolation)
|
||||
|
||||
@@ -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-redux/get-shit-done-redux/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/open-gsd/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-redux/get-shit-done-redux/issues/2792)).
|
||||
v1.40.0, [#2792](https://github.com/open-gsd/get-shit-done-redux/issues/2792)).
|
||||
|
||||
| Flag | Description |
|
||||
|------|-------------|
|
||||
|
||||
@@ -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-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` | 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/open-gsd/get-shit-done-redux/issues/1713) / [#1806](https://github.com/open-gsd/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/open-gsd/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-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)) |
|
||||
| `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/open-gsd/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/open-gsd/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-redux/get-shit-done-redux/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/open-gsd/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-redux/get-shit-done-redux/pull/3030).
|
||||
> Express tuning at the **phase** level (planning, research, execution, verification) without learning the agent taxonomy. Added in [#3023](https://github.com/open-gsd/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-redux/get-shit-done-redux/pull/3031).
|
||||
> Start cheap, escalate only when the agent fails the gate. Added in [#3024](https://github.com/open-gsd/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-redux/get-shit-done-redux/issues/3562)).
|
||||
> **Codex CLI minimum supported version: `0.130.0`** (issue [#3562](https://github.com/open-gsd/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.
|
||||
|
||||
|
||||
@@ -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-redux/get-shit-done-redux/issues/2790)
|
||||
**Reference issue:** [#2790](https://github.com/open-gsd/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-redux/get-shit-done-redux/issues/2792)
|
||||
**Reference issue:** [#2792](https://github.com/open-gsd/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-redux/get-shit-done-redux/issues/2792)
|
||||
**Reference issue:** [#2792](https://github.com/open-gsd/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-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.
|
||||
**Reference issue:** [#2833](https://github.com/open-gsd/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-redux/get-shit-done-redux/pull/3030)
|
||||
**Reference issue:** [#3023](https://github.com/open-gsd/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-redux/get-shit-done-redux/pull/3031)
|
||||
**Reference issue:** [#3024](https://github.com/open-gsd/get-shit-done-redux/pull/3031)
|
||||
|
||||
---
|
||||
|
||||
@@ -2785,7 +2785,7 @@ Users who run a memory / knowledge-base MCP server (for example, ExoCortex-style
|
||||
- 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-redux/get-shit-done-redux/pull/2795)
|
||||
**Reference issue:** [#2795](https://github.com/open-gsd/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-redux/get-shit-done-redux/pull/2840)
|
||||
**Reference issue:** [#2840](https://github.com/open-gsd/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-redux/get-shit-done-redux/issues/3170)
|
||||
**Reference issue:** [#3170](https://github.com/open-gsd/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-redux/get-shit-done-redux/pull/3178)
|
||||
**Reference issue:** [#3178](https://github.com/open-gsd/get-shit-done-redux/pull/3178)
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -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-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.
|
||||
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/open-gsd/get-shit-done-redux/issues/2792) for the rationale; the routing tables target the post-[#2790](https://github.com/open-gsd/get-shit-done-redux/issues/2790) consolidated surface.
|
||||
|
||||
| Command | Role | Source |
|
||||
|---------|------|--------|
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# STATE.md Phase Lifecycle Frontmatter
|
||||
|
||||
> **Status:** Read-side shipped in v1.40.0 (issue
|
||||
> [#2833](https://github.com/GSD-redux/get-shit-done-redux/issues/2833)).
|
||||
> [#2833](https://github.com/open-gsd/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
|
||||
|
||||
@@ -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-redux/get-shit-done-redux/issues/3597).
|
||||
> Tracked by issue [#3597](https://github.com/open-gsd/get-shit-done-redux/issues/3597).
|
||||
|
||||
## Suites
|
||||
|
||||
|
||||
@@ -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-redux/get-shit-done-redux/issues/3562)).
|
||||
> **Codex CLI minimum supported version: `0.130.0`** (issue [#3562](https://github.com/open-gsd/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.
|
||||
>
|
||||
@@ -1295,7 +1295,7 @@ 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-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.
|
||||
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/open-gsd/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:
|
||||
|
||||
|
||||
@@ -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-redux/get-shit-done-redux/issues/3788)
|
||||
- Issue: [#3788](https://github.com/open-gsd/get-shit-done-redux/issues/3788)
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
- **Status:** Proposed
|
||||
- **Date:** 2026-05-14
|
||||
- **Tracking issue:** [#3524](https://github.com/GSD-redux/get-shit-done-redux/issues/3524)
|
||||
- **Tracking issue:** [#3524](https://github.com/open-gsd/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)
|
||||
|
||||
@@ -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-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. |
|
||||
| Phase 1 | [#3531](https://github.com/open-gsd/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/open-gsd/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/open-gsd/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/open-gsd/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/open-gsd/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/open-gsd/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/open-gsd/get-shit-done-redux/pull/3577) (closes [#3575](https://github.com/open-gsd/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-redux/get-shit-done-redux/pull/3531) — `state-document` migration.
|
||||
**Reference:** Phase 1 PR [#3531](https://github.com/open-gsd/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-redux/get-shit-done-redux/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/open-gsd/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-redux/get-shit-done-redux/pull/3574) — `state.update` delegation.
|
||||
**Reference:** Phase 5.1 PR [#3574](https://github.com/open-gsd/get-shit-done-redux/pull/3574) — `state.update` delegation.
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# Issue tracker: GitHub
|
||||
|
||||
Issues for this repo live in **GitHub Issues** at `GSD-redux/get-shit-done-redux`.
|
||||
Issues for this repo live in **GitHub Issues** at `open-gsd/get-shit-done-redux`.
|
||||
|
||||
## Auth
|
||||
|
||||
@@ -9,19 +9,19 @@ repo-local `.envrc` before running `gh`.
|
||||
|
||||
## Conventions
|
||||
|
||||
- **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 "..."`
|
||||
- **Create**: `gh issue create --repo open-gsd/get-shit-done-redux --title "..." --body "..."`
|
||||
- **Read**: `gh issue view <number> --repo open-gsd/get-shit-done-redux --comments`
|
||||
- **List**: `gh issue list --repo open-gsd/get-shit-done-redux --state open --json number,title,labels --jq '...'`
|
||||
- **Comment**: `gh issue comment <number> --repo open-gsd/get-shit-done-redux --body "..."`
|
||||
- **Label**: `gh issue edit <number> --repo open-gsd/get-shit-done-redux --add-label "..." --remove-label "..."`
|
||||
- **Close**: `gh issue close <number> --repo open-gsd/get-shit-done-redux --comment "..."`
|
||||
|
||||
Always pass `--repo GSD-redux/get-shit-done-redux` explicitly — the local clone has multiple remotes and `gh` may resolve to the wrong one.
|
||||
Always pass `--repo open-gsd/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-redux/get-shit-done-redux`.
|
||||
Create a GitHub issue at `open-gsd/get-shit-done-redux`.
|
||||
|
||||
## When a skill says "fetch the relevant ticket"
|
||||
|
||||
Run `gh issue view <number> --repo GSD-redux/get-shit-done-redux --comments`.
|
||||
Run `gh issue view <number> --repo open-gsd/get-shit-done-redux --comments`.
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# Triage Labels
|
||||
|
||||
Maps the five canonical triage roles to the actual label strings in `GSD-redux/get-shit-done-redux`.
|
||||
Maps the five canonical triage roles to the actual label strings in `open-gsd/get-shit-done-redux`.
|
||||
|
||||
| Canonical role | Label in this repo | Notes |
|
||||
|-------------------|--------------------------|----------------------------------------------------------------|
|
||||
|
||||
@@ -36,13 +36,13 @@ immutable once created. Tag creation is unrestricted.
|
||||
|
||||
```bash
|
||||
# Dry-run (evaluate mode — logs violations, does not block)
|
||||
REPO=GSD-redux/get-shit-done-redux ENFORCEMENT=evaluate bash scripts/sync-rulesets.sh
|
||||
REPO=open-gsd/get-shit-done-redux ENFORCEMENT=evaluate bash scripts/sync-rulesets.sh
|
||||
|
||||
# Activate protection
|
||||
REPO=GSD-redux/get-shit-done-redux ENFORCEMENT=active bash scripts/sync-rulesets.sh
|
||||
REPO=open-gsd/get-shit-done-redux ENFORCEMENT=active bash scripts/sync-rulesets.sh
|
||||
|
||||
# Roll back to disabled
|
||||
REPO=GSD-redux/get-shit-done-redux ENFORCEMENT=disabled bash scripts/sync-rulesets.sh
|
||||
REPO=open-gsd/get-shit-done-redux ENFORCEMENT=disabled bash scripts/sync-rulesets.sh
|
||||
```
|
||||
|
||||
The script is idempotent: running it twice with the same `ENFORCEMENT` value
|
||||
@@ -53,7 +53,7 @@ is a no-op semantically (PUT with identical body).
|
||||
After applying with `evaluate`, check which PRs/pushes would have been blocked:
|
||||
|
||||
```bash
|
||||
REPO=GSD-redux/get-shit-done-redux
|
||||
REPO=open-gsd/get-shit-done-redux
|
||||
RULESET_ID=$(gh api repos/$REPO/rulesets --jq '.[] | select(.name=="main-protection") | .id')
|
||||
gh api repos/$REPO/rulesets/$RULESET_ID/rule-suites
|
||||
```
|
||||
|
||||
@@ -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-redux/get-shit-done-redux`)
|
||||
- **Path:** `/home/cristian/bum/get-shit-done` (this repo — your working fork of `open-gsd/get-shit-done-redux`)
|
||||
|
||||
### Installed Locations
|
||||
- `~/.agents/get-shit-done/` — Core workflows, references, templates, `gsd-tools.cjs`, `bin/`
|
||||
|
||||
@@ -5,7 +5,7 @@ Use this procedure when `npx get-shit-done-redux@latest` is unavailable — e.g.
|
||||
## Prerequisites
|
||||
|
||||
- Node.js installed
|
||||
- This repo cloned locally (`git clone https://github.com/GSD-redux/get-shit-done-redux`)
|
||||
- This repo cloned locally (`git clone https://github.com/open-gsd/get-shit-done-redux`)
|
||||
|
||||
## Steps
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
- **Status:** Reference
|
||||
- **Date:** 2026-05-14
|
||||
- **Tracking issue:** [#3524](https://github.com/GSD-redux/get-shit-done-redux/issues/3524)
|
||||
- **Tracking issue:** [#3524](https://github.com/open-gsd/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-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:
|
||||
The CJS↔SDK boundary in `open-gsd/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`)
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# Skill surface budget — research memo
|
||||
|
||||
**Date:** 2026-05-12
|
||||
**Author:** triage analysis for issue [#3408](https://github.com/GSD-redux/get-shit-done-redux/issues/3408)
|
||||
**Author:** triage analysis for issue [#3408](https://github.com/open-gsd/get-shit-done-redux/issues/3408)
|
||||
**Status:** Research input for ADR-0010
|
||||
**Reading time:** ~15 min
|
||||
|
||||
@@ -260,7 +260,7 @@ Phase 2 — runtime surface command (follow-up ADR or amendment):
|
||||
|
||||
## 10. References
|
||||
|
||||
- Issue: [#3408](https://github.com/GSD-redux/get-shit-done-redux/issues/3408)
|
||||
- Issue: [#3408](https://github.com/open-gsd/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)
|
||||
|
||||
@@ -11,7 +11,7 @@ const path = require('node:path');
|
||||
//
|
||||
// 2. Source-repo dev path — sdk/shared/model-catalog.json
|
||||
// Three levels up from bin/lib/: works when running directly from the
|
||||
// GSD-redux/get-shit-done-redux clone (the original path introduced by #3230).
|
||||
// open-gsd/get-shit-done-redux clone (the original path introduced by #3230).
|
||||
//
|
||||
// 3. GSD_MODEL_CATALOG env override — allows test harnesses and custom
|
||||
// deployments to point at an arbitrary catalog file.
|
||||
|
||||
@@ -256,14 +256,14 @@ If actionable anomalies were found (HIGH or MEDIUM confidence):
|
||||
If confirmed:
|
||||
```bash
|
||||
# Check if "bug" label exists before using it
|
||||
BUG_LABEL=$(gh label list --repo GSD-redux/get-shit-done-redux --search "bug" --json name -q '.[0].name' 2>/dev/null)
|
||||
BUG_LABEL=$(gh label list --repo open-gsd/get-shit-done-redux --search "bug" --json name -q '.[0].name' 2>/dev/null)
|
||||
LABEL_FLAG=""
|
||||
if [ -n "$BUG_LABEL" ]; then
|
||||
LABEL_FLAG="--label bug"
|
||||
fi
|
||||
|
||||
gh issue create \
|
||||
--repo GSD-redux/get-shit-done-redux \
|
||||
--repo open-gsd/get-shit-done-redux \
|
||||
--title "bug: {concise description from anomaly}" \
|
||||
$LABEL_FLAG \
|
||||
--body "{formatted findings from report}"
|
||||
|
||||
@@ -377,8 +377,8 @@ Exit.
|
||||
|
||||
```bash
|
||||
CHANGELOG_TMP="/tmp/gsd-changelog-$$.md"
|
||||
curl -fsSL "https://raw.githubusercontent.com/gsd-build/get-shit-done/main/CHANGELOG.md" -o "$CHANGELOG_TMP" 2>/dev/null \
|
||||
|| wget -qO "$CHANGELOG_TMP" "https://raw.githubusercontent.com/gsd-build/get-shit-done/main/CHANGELOG.md" 2>/dev/null
|
||||
curl -fsSL "https://raw.githubusercontent.com/open-gsd/get-shit-done-redux/main/CHANGELOG.md" -o "$CHANGELOG_TMP" 2>/dev/null \
|
||||
|| wget -qO "$CHANGELOG_TMP" "https://raw.githubusercontent.com/open-gsd/get-shit-done-redux/main/CHANGELOG.md" 2>/dev/null
|
||||
|
||||
EXTRACT_JSON=$(node "$GSD_DIR/get-shit-done/scripts/changeset/cli.cjs" extract \
|
||||
--from "$INSTALLED_VERSION" \
|
||||
@@ -631,7 +631,7 @@ Format completion message (changelog was already shown in confirmation step):
|
||||
|
||||
⚠️ Restart your runtime to pick up the new commands.
|
||||
|
||||
[View full changelog](https://github.com/GSD-redux/get-shit-done-redux/blob/main/CHANGELOG.md)
|
||||
[View full changelog](https://github.com/open-gsd/get-shit-done-redux/blob/main/CHANGELOG.md)
|
||||
```
|
||||
</step>
|
||||
|
||||
|
||||
@@ -38,11 +38,11 @@
|
||||
"license": "MIT",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git+https://github.com/GSD-redux/get-shit-done-redux.git"
|
||||
"url": "git+https://github.com/open-gsd/get-shit-done-redux.git"
|
||||
},
|
||||
"homepage": "https://github.com/GSD-redux/get-shit-done-redux",
|
||||
"homepage": "https://github.com/open-gsd/get-shit-done-redux",
|
||||
"bugs": {
|
||||
"url": "https://github.com/GSD-redux/get-shit-done-redux/issues"
|
||||
"url": "https://github.com/open-gsd/get-shit-done-redux/issues"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=22.0.0"
|
||||
|
||||
@@ -32,7 +32,7 @@ function parseArgs(argv) {
|
||||
toRef: null,
|
||||
changelog: null,
|
||||
output: null,
|
||||
repoSlug: 'GSD-redux/get-shit-done-redux',
|
||||
repoSlug: 'open-gsd/get-shit-done-redux',
|
||||
installCommand: 'npx get-shit-done-redux@latest',
|
||||
json: false,
|
||||
};
|
||||
|
||||
@@ -145,7 +145,7 @@ function serializeGithubReleaseNotes({
|
||||
ir,
|
||||
fromRef,
|
||||
toRef,
|
||||
repoSlug = 'GSD-redux/get-shit-done-redux',
|
||||
repoSlug = 'open-gsd/get-shit-done-redux',
|
||||
installCommand = 'npx get-shit-done-redux@latest',
|
||||
}) {
|
||||
if (installCommand.includes('`')) {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
REPO="${REPO:-GSD-redux/get-shit-done-redux}"
|
||||
REPO="${REPO:-open-gsd/get-shit-done-redux}"
|
||||
ENFORCEMENT="${ENFORCEMENT:-evaluate}"
|
||||
|
||||
case "$ENFORCEMENT" in
|
||||
|
||||
@@ -55,7 +55,7 @@ Use this document at the start of a new session so work continues in context wit
|
||||
|
||||
- **Workspace:** `D:\Repos\get-shit-done` (GSD PBR backport initiative).
|
||||
- **Feature branch:** `feat/sdk-phase3-query-layer` (62 commits ahead of `main`; confirm against `origin` before merging).
|
||||
- **Upstream PRs:** `GSD-redux/get-shit-done-redux` issue #2302.
|
||||
- **Upstream PRs:** `open-gsd/get-shit-done-redux` issue #2302.
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -11,14 +11,14 @@ Paste this document (or `@sdk/HANDOVER-PARITY-DOCS.md`) at the start of a new ch
|
||||
|
||||
## Parent tracking
|
||||
|
||||
- **Issue:** [GSD-redux/get-shit-done-redux#2302](https://github.com/GSD-redux/get-shit-done-redux/issues/2302) — Phase 3 SDK query parity, registry, docs (parent umbrella #2007).
|
||||
- **Issue:** [open-gsd/get-shit-done-redux#2302](https://github.com/open-gsd/get-shit-done-redux/issues/2302) — Phase 3 SDK query parity, registry, docs (parent umbrella #2007).
|
||||
- **Acceptance criteria touched here:** parity coverage/exceptions documented; registry audit reflected in a **matrix** (issue wording: “every required CJS surface either has a handler or appears in the CJS-only matrix with justification”).
|
||||
|
||||
## Repo / branch
|
||||
|
||||
- **Workspace:** `D:\Repos\get-shit-done` (PBR backport); adjust path if different machine.
|
||||
- **Feature branch (typical):** `feat/sdk-phase3-query-layer` — confirm with `git branch` before editing.
|
||||
- **Upstream:** `GSD-redux/get-shit-done-redux`.
|
||||
- **Upstream:** `open-gsd/get-shit-done-redux`.
|
||||
|
||||
## What already exists (do not duplicate blindly)
|
||||
|
||||
|
||||
@@ -4,17 +4,17 @@ Paste this document (or `@sdk/HANDOVER-QUERY-LAYER.md`) at the start of a new se
|
||||
|
||||
## Parent tracking
|
||||
|
||||
- **Issue:** [GSD-redux/get-shit-done-redux#2302](https://github.com/GSD-redux/get-shit-done-redux/issues/2302) — Phase 3 SDK query parity, registry, docs (umbrella #2007).
|
||||
- **Workspace:** `D:\Repos\get-shit-done` (PBR backport). **Upstream:** `GSD-redux/get-shit-done-redux`. Confirm branch with `git branch` (typical: `feat/sdk-phase3-query-layer`).
|
||||
- **Issue:** [open-gsd/get-shit-done-redux#2302](https://github.com/open-gsd/get-shit-done-redux/issues/2302) — Phase 3 SDK query parity, registry, docs (umbrella #2007).
|
||||
- **Workspace:** `D:\Repos\get-shit-done` (PBR backport). **Upstream:** `open-gsd/get-shit-done-redux`. Confirm branch with `git branch` (typical: `feat/sdk-phase3-query-layer`).
|
||||
|
||||
### Scope anchors (do not confuse issues)
|
||||
|
||||
|
||||
| Role | GitHub | Notes |
|
||||
| --------------------------------------- | -------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| **Product / requirements anchor** | [#2007](https://github.com/GSD-redux/get-shit-done-redux/issues/2007) | Problem statement, user stories, and target architecture for the SDK-first migration. **Do not** treat its original acceptance-checklist boxes as proof of what is merged upstream; work was split into phased PRs after maintainer review. |
|
||||
| **Phase 3 execution scope** | [#2302](https://github.com/GSD-redux/get-shit-done-redux/issues/2302) **+ this handover** | What this branch is actually doing now: registry/CLI parity, docs, harness gaps, runner alignment follow-ups as listed below. |
|
||||
| **Patch mine (if local tree is short)** | [PR #2008](https://github.com/GSD-redux/get-shit-done-redux/pull/2008) and matching branches | Large pre-phasing PR; cherry-pick or compare when something looks missing vs that line of work. |
|
||||
| **Product / requirements anchor** | [#2007](https://github.com/open-gsd/get-shit-done-redux/issues/2007) | Problem statement, user stories, and target architecture for the SDK-first migration. **Do not** treat its original acceptance-checklist boxes as proof of what is merged upstream; work was split into phased PRs after maintainer review. |
|
||||
| **Phase 3 execution scope** | [#2302](https://github.com/open-gsd/get-shit-done-redux/issues/2302) **+ this handover** | What this branch is actually doing now: registry/CLI parity, docs, harness gaps, runner alignment follow-ups as listed below. |
|
||||
| **Patch mine (if local tree is short)** | [PR #2008](https://github.com/open-gsd/get-shit-done-redux/pull/2008) and matching branches | Large pre-phasing PR; cherry-pick or compare when something looks missing vs that line of work. |
|
||||
|
||||
|
||||
---
|
||||
|
||||
@@ -21,12 +21,12 @@
|
||||
],
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git+https://github.com/GSD-redux/get-shit-done-redux.git",
|
||||
"url": "git+https://github.com/open-gsd/get-shit-done-redux.git",
|
||||
"directory": "sdk"
|
||||
},
|
||||
"homepage": "https://github.com/GSD-redux/get-shit-done-redux/tree/main/sdk",
|
||||
"homepage": "https://github.com/open-gsd/get-shit-done-redux/tree/main/sdk",
|
||||
"bugs": {
|
||||
"url": "https://github.com/GSD-redux/get-shit-done-redux/issues"
|
||||
"url": "https://github.com/open-gsd/get-shit-done-redux/issues"
|
||||
},
|
||||
"author": "TÂCHES",
|
||||
"license": "MIT",
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
* prompt, so any `agent_skills.<correct-slug>` configuration in
|
||||
* `.planning/config.json` is silently ignored. This test prevents regression.
|
||||
*
|
||||
* Related: https://github.com/GSD-redux/get-shit-done-redux/issues/2615
|
||||
* Related: https://github.com/open-gsd/get-shit-done-redux/issues/2615
|
||||
*/
|
||||
import { describe, it, expect } from 'vitest';
|
||||
import { readFileSync, readdirSync, statSync } from 'node:fs';
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
* Validates that all agent .md files use the standardized <required_reading>
|
||||
* pattern and that no legacy <files_to_read> blocks remain.
|
||||
*
|
||||
* See: https://github.com/GSD-redux/get-shit-done-redux/issues/2168
|
||||
* See: https://github.com/open-gsd/get-shit-done-redux/issues/2168
|
||||
*/
|
||||
|
||||
const { test, describe } = require('node:test');
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
* rationale in the PR, and make sure the bloat is not duplicated content
|
||||
* that belongs in `get-shit-done/references/`.
|
||||
*
|
||||
* See: https://github.com/GSD-redux/get-shit-done-redux/issues/2361
|
||||
* See: https://github.com/open-gsd/get-shit-done-redux/issues/2361
|
||||
*/
|
||||
|
||||
const { test, describe } = require('node:test');
|
||||
|
||||
@@ -42,7 +42,7 @@
|
||||
* truly un-reclaimable lock, must still throw with a useful message naming
|
||||
* the holder PID. (This guards against over-reclamation.)
|
||||
*
|
||||
* @see https://github.com/GSD-redux/get-shit-done-redux/issues/3670
|
||||
* @see https://github.com/open-gsd/get-shit-done-redux/issues/3670
|
||||
*/
|
||||
|
||||
'use strict';
|
||||
|
||||
@@ -105,9 +105,9 @@ const INTERNAL_COMPONENT_SLUGS = new Set([
|
||||
// a real command token.
|
||||
'init-',
|
||||
|
||||
// gsd-build — GitHub organization name: "github.com/GSD-redux/get-shit-done-redux".
|
||||
// gsd-build — GitHub organization name: "github.com/open-gsd/get-shit-done-redux".
|
||||
// Every occurrence of "/gsd-build" in docs is the path component of a GitHub URL
|
||||
// (e.g., "[#2792](https://github.com/GSD-redux/get-shit-done-redux/issues/2792)").
|
||||
// (e.g., "[#2792](https://github.com/open-gsd/get-shit-done-redux/issues/2792)").
|
||||
// The regex captures "/gsd-build" from the URL path. Not a slash command.
|
||||
'build',
|
||||
|
||||
|
||||
@@ -143,25 +143,25 @@ describe('forensics workflow', () => {
|
||||
);
|
||||
});
|
||||
|
||||
test('workflow submits issues to GSD-redux/get-shit-done-redux, not the current repo', () => {
|
||||
test('workflow submits issues to open-gsd/get-shit-done-redux, not the current repo', () => {
|
||||
const content = fs.readFileSync(workflowPath, 'utf-8');
|
||||
// Scope check to the gh issue create invocation — a whole-file search would
|
||||
// pass even if gh issue create lacked --repo, because gh label list also
|
||||
// contains the repo string.
|
||||
assert.match(
|
||||
content,
|
||||
/gh issue create[\s\S]{0,250}--repo\s+GSD-redux\/get-shit-done-redux/,
|
||||
'gh issue create must use --repo GSD-redux/get-shit-done-redux to avoid submitting to the user\'s current project repo'
|
||||
/gh issue create[\s\S]{0,250}--repo\s+open-gsd/get-shit-done-redux/,
|
||||
'gh issue create must use --repo open-gsd/get-shit-done-redux to avoid submitting to the user\'s current project repo'
|
||||
);
|
||||
});
|
||||
|
||||
test('workflow checks bug label in GSD-redux/get-shit-done-redux, not the current repo', () => {
|
||||
test('workflow checks bug label in open-gsd/get-shit-done-redux, not the current repo', () => {
|
||||
const content = fs.readFileSync(workflowPath, 'utf-8');
|
||||
// Regex is more robust than a fixed-length slice to formatting changes
|
||||
assert.match(
|
||||
content,
|
||||
/gh label list[\s\S]{0,250}--repo\s+GSD-redux\/get-shit-done-redux/,
|
||||
'gh label list must target GSD-redux/get-shit-done-redux'
|
||||
/gh label list[\s\S]{0,250}--repo\s+open-gsd/get-shit-done-redux/,
|
||||
'gh label list must target open-gsd/get-shit-done-redux'
|
||||
);
|
||||
});
|
||||
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
* 4. findProjectRoot detects .git at same level as .planning/
|
||||
* 5. @file: handoff present in all workflows that call init
|
||||
*
|
||||
* Regression tests for: https://github.com/GSD-redux/get-shit-done-redux/issues/1343
|
||||
* Regression tests for: https://github.com/open-gsd/get-shit-done-redux/issues/1343
|
||||
*/
|
||||
|
||||
const { test, describe } = require('node:test');
|
||||
|
||||
@@ -21,8 +21,8 @@
|
||||
* pattern introduced by #2551).
|
||||
*
|
||||
* See:
|
||||
* - https://github.com/GSD-redux/get-shit-done-redux/issues/2551 (this test)
|
||||
* - https://github.com/GSD-redux/get-shit-done-redux/issues/2361 (agent budget)
|
||||
* - https://github.com/open-gsd/get-shit-done-redux/issues/2551 (this test)
|
||||
* - https://github.com/open-gsd/get-shit-done-redux/issues/2361 (agent budget)
|
||||
*/
|
||||
|
||||
const { test, describe } = require('node:test');
|
||||
|
||||
Reference in New Issue
Block a user