chore: rebrand to GSD-redux/get-shit-done-redux
Mirror of code, issues, and PRs from the upstream gsd-build/get-shit-done, which appears compromised or abandoned (maintainer unreachable since 2026-04-01; $GSD token linked to rug-pull). - Adds rebrand notice block at top of English README - Removes $GSD token badge and @gsd_foundation X badge (keeps Discord) - Renames npm packages: get-shit-done-cc -> get-shit-done-redux, @gsd-build/sdk -> @gsd-redux/sdk - Updates all repo URLs across docs, workflows, package.json, bin/ - Updates ci@gsd-build -> ci@gsd-redux in workflow git identities - Leaves CHANGELOG and .changeset/* alone (historical, time-stamped)
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
# CodeRabbit configuration — gsd-build/get-shit-done
|
||||
# CodeRabbit configuration — GSD-redux/get-shit-done-redux
|
||||
#
|
||||
# Schema: https://docs.coderabbit.ai/reference/yaml-template/
|
||||
#
|
||||
|
||||
10
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
10
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
@@ -17,7 +17,7 @@ body:
|
||||
id: version
|
||||
attributes:
|
||||
label: GSD Version
|
||||
description: "Run: `npm list -g get-shit-done-cc` or check `npx get-shit-done-cc --version`"
|
||||
description: "Run: `npm list -g get-shit-done-redux` or check `npx get-shit-done-redux --version`"
|
||||
placeholder: "e.g., 1.18.0"
|
||||
validations:
|
||||
required: true
|
||||
@@ -78,8 +78,8 @@ body:
|
||||
attributes:
|
||||
label: Installation Method
|
||||
options:
|
||||
- npx get-shit-done-cc@latest (fresh run)
|
||||
- npm install -g get-shit-done-cc
|
||||
- npx get-shit-done-redux@latest (fresh run)
|
||||
- npm install -g get-shit-done-redux
|
||||
- Updated from a previous version
|
||||
validations:
|
||||
required: true
|
||||
@@ -109,7 +109,7 @@ body:
|
||||
description: |
|
||||
Exact steps to reproduce the issue. Include the GSD command used.
|
||||
placeholder: |
|
||||
1. Install GSD with `npx get-shit-done-cc@latest`
|
||||
1. Install GSD with `npx get-shit-done-redux@latest`
|
||||
2. Select runtime: Claude Code
|
||||
3. Run `/gsd-init` with a new project
|
||||
4. Run `/gsd-plan`
|
||||
@@ -215,7 +215,7 @@ body:
|
||||
Anything else — screenshots, screen recordings, related issues, or links.
|
||||
|
||||
**Useful diagnostics to include (if applicable):**
|
||||
- `npm list -g get-shit-done-cc` — confirms installed version
|
||||
- `npm list -g get-shit-done-redux` — confirms installed version
|
||||
- `ls -la ~/.claude/get-shit-done/` — confirms installation files (Claude Code)
|
||||
- `cat ~/.claude/get-shit-done/gsd-file-manifest.json` — file manifest for debugging install issues
|
||||
- `ls -la .planning/` — confirms planning directory state
|
||||
|
||||
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-build/get-shit-done/discussions
|
||||
url: https://github.com/GSD-redux/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-build/get-shit-done/discussions
|
||||
url: https://github.com/GSD-redux/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-build/get-shit-done/discussions) — has this been proposed and declined before?
|
||||
- Check [Discussions](https://github.com/GSD-redux/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-build/get-shit-done/discussions) first
|
||||
- If you are not sure → open a [Discussion](https://github.com/GSD-redux/get-shit-done-redux/discussions) first
|
||||
|
||||
---
|
||||
|
||||
|
||||
14
.github/workflows/canary.yml
vendored
14
.github/workflows/canary.yml
vendored
@@ -116,8 +116,8 @@ jobs:
|
||||
PUBLISHED="NOT_FOUND"
|
||||
SDK_PUBLISHED="NOT_FOUND"
|
||||
for delay in 5 10 20 30 45; do
|
||||
PUBLISHED=$(npm view get-shit-done-cc@"$CANARY_VERSION" version 2>/dev/null || echo "NOT_FOUND")
|
||||
SDK_PUBLISHED=$(npm view @gsd-build/sdk@"$CANARY_VERSION" version 2>/dev/null || echo "NOT_FOUND")
|
||||
PUBLISHED=$(npm view get-shit-done-redux@"$CANARY_VERSION" version 2>/dev/null || echo "NOT_FOUND")
|
||||
SDK_PUBLISHED=$(npm view @gsd-redux/sdk@"$CANARY_VERSION" version 2>/dev/null || echo "NOT_FOUND")
|
||||
if [ "$PUBLISHED" = "$CANARY_VERSION" ] && [ "$SDK_PUBLISHED" = "$CANARY_VERSION" ]; then
|
||||
break
|
||||
fi
|
||||
@@ -128,13 +128,13 @@ jobs:
|
||||
echo "::error::Published version verification failed. Expected $CANARY_VERSION, got $PUBLISHED"
|
||||
exit 1
|
||||
fi
|
||||
echo "Verified: get-shit-done-cc@$CANARY_VERSION is live on npm"
|
||||
echo "Verified: get-shit-done-redux@$CANARY_VERSION is live on npm"
|
||||
if [ "$SDK_PUBLISHED" != "$CANARY_VERSION" ]; then
|
||||
echo "::error::SDK version verification failed. Expected $CANARY_VERSION, got $SDK_PUBLISHED"
|
||||
exit 1
|
||||
fi
|
||||
echo "Verified: @gsd-build/sdk@$CANARY_VERSION is live on npm"
|
||||
CANARY_TAG=$(npm dist-tag ls get-shit-done-cc 2>/dev/null | grep "canary:" | awk '{print $2}')
|
||||
echo "Verified: @gsd-redux/sdk@$CANARY_VERSION is live on npm"
|
||||
CANARY_TAG=$(npm dist-tag ls get-shit-done-redux 2>/dev/null | grep "canary:" | awk '{print $2}')
|
||||
echo "canary dist-tag points to: $CANARY_TAG"
|
||||
|
||||
- name: Summary
|
||||
@@ -151,7 +151,7 @@ jobs:
|
||||
echo "**VALIDATION ONLY** — publish/tag skipped for \`${BRANCH_REF}\`; canary publish is gated to \`refs/heads/dev\`." >> "$GITHUB_STEP_SUMMARY"
|
||||
else
|
||||
echo "- Published to npm as \`canary\`" >> "$GITHUB_STEP_SUMMARY"
|
||||
echo "- SDK also published: \`@gsd-build/sdk@${CANARY_VERSION}\` on \`canary\`" >> "$GITHUB_STEP_SUMMARY"
|
||||
echo "- SDK also published: \`@gsd-redux/sdk@${CANARY_VERSION}\` on \`canary\`" >> "$GITHUB_STEP_SUMMARY"
|
||||
echo "- Tagged \`v${CANARY_VERSION}\`" >> "$GITHUB_STEP_SUMMARY"
|
||||
echo "- Install: \`npx get-shit-done-cc@canary\`" >> "$GITHUB_STEP_SUMMARY"
|
||||
echo "- Install: \`npx get-shit-done-redux@canary\`" >> "$GITHUB_STEP_SUMMARY"
|
||||
fi
|
||||
|
||||
12
.github/workflows/hotfix.yml
vendored
12
.github/workflows/hotfix.yml
vendored
@@ -306,9 +306,9 @@ jobs:
|
||||
env:
|
||||
VERSION: ${{ inputs.version }}
|
||||
run: |
|
||||
EXISTING=$(npm view get-shit-done-cc@"$VERSION" version 2>/dev/null || true)
|
||||
EXISTING=$(npm view get-shit-done-redux@"$VERSION" version 2>/dev/null || true)
|
||||
if [ -n "$EXISTING" ]; then
|
||||
echo "::warning::get-shit-done-cc@${VERSION} is already on the registry — entering reconciliation mode (skip publish, continue with tag/release/PR/dist-tag)."
|
||||
echo "::warning::get-shit-done-redux@${VERSION} is already on the registry — entering reconciliation mode (skip publish, continue with tag/release/PR/dist-tag)."
|
||||
echo "skip_publish=true" >> "$GITHUB_OUTPUT"
|
||||
else
|
||||
echo "skip_publish=false" >> "$GITHUB_OUTPUT"
|
||||
@@ -409,7 +409,7 @@ jobs:
|
||||
VERSION: ${{ inputs.version }}
|
||||
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
|
||||
run: |
|
||||
npm dist-tag add "get-shit-done-cc@${VERSION}" next
|
||||
npm dist-tag add "get-shit-done-redux@${VERSION}" next
|
||||
echo "✅ next dist-tag re-pointed to v${VERSION} (matches latest)"
|
||||
|
||||
- name: Create GitHub Release (idempotent)
|
||||
@@ -455,7 +455,7 @@ jobs:
|
||||
run: |
|
||||
PUBLISHED="NOT_FOUND"
|
||||
for delay in 5 10 20 30 45; do
|
||||
PUBLISHED=$(npm view get-shit-done-cc@"$VERSION" version 2>/dev/null || echo "NOT_FOUND")
|
||||
PUBLISHED=$(npm view get-shit-done-redux@"$VERSION" version 2>/dev/null || echo "NOT_FOUND")
|
||||
if [ "$PUBLISHED" = "$VERSION" ]; then
|
||||
break
|
||||
fi
|
||||
@@ -466,12 +466,12 @@ jobs:
|
||||
echo "::error::Version $VERSION did not appear on the registry within timeout"
|
||||
exit 1
|
||||
fi
|
||||
LATEST_VER=$(npm view get-shit-done-cc dist-tags.latest 2>/dev/null || echo "NOT_FOUND")
|
||||
LATEST_VER=$(npm view get-shit-done-redux dist-tags.latest 2>/dev/null || echo "NOT_FOUND")
|
||||
if [ "$LATEST_VER" != "$VERSION" ]; then
|
||||
echo "::error::dist-tag 'latest' resolves to '$LATEST_VER', expected '$VERSION'"
|
||||
exit 1
|
||||
fi
|
||||
echo "✓ Verified: get-shit-done-cc@$VERSION is live on @latest"
|
||||
echo "✓ Verified: get-shit-done-redux@$VERSION is live on @latest"
|
||||
|
||||
- name: Summary
|
||||
env:
|
||||
|
||||
16
.github/workflows/install-smoke.yml
vendored
16
.github/workflows/install-smoke.yml
vendored
@@ -102,7 +102,7 @@ jobs:
|
||||
shell: bash
|
||||
run: |
|
||||
set -euo pipefail
|
||||
git config user.email "ci@gsd-build"
|
||||
git config user.email "ci@gsd-redux"
|
||||
git config user.name "CI Rebase Check"
|
||||
git fetch origin main
|
||||
if ! git merge --no-edit --no-ff origin/main; then
|
||||
@@ -148,7 +148,7 @@ jobs:
|
||||
run: |
|
||||
set -euo pipefail
|
||||
npm pack --silent
|
||||
TARBALL=$(ls get-shit-done-cc-*.tgz | head -1)
|
||||
TARBALL=$(ls get-shit-done-redux-*.tgz | head -1)
|
||||
echo "tarball=$TARBALL" >> "$GITHUB_OUTPUT"
|
||||
echo "Packed: $TARBALL"
|
||||
|
||||
@@ -171,13 +171,13 @@ jobs:
|
||||
TMPDIR_ROOT=$(mktemp -d)
|
||||
cd "$TMPDIR_ROOT"
|
||||
npm install -g "$WORKSPACE/$TARBALL"
|
||||
command -v get-shit-done-cc
|
||||
command -v get-shit-done-redux
|
||||
# `--claude --local` is the non-interactive code path. Don't swallow
|
||||
# non-zero exit — if the installer fails, that IS the CI failure, and
|
||||
# its own error message is more useful than the downstream "shim
|
||||
# regression" assertion masking the real cause.
|
||||
if ! get-shit-done-cc --claude --local; then
|
||||
echo "::error::get-shit-done-cc --claude --local failed. See the install.js output above for the real error (SDK build, PATH resolution, chmod, etc.)."
|
||||
if ! get-shit-done-redux --claude --local; then
|
||||
echo "::error::get-shit-done-redux --claude --local failed. See the install.js output above for the real error (SDK build, PATH resolution, chmod, etc.)."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
@@ -245,7 +245,7 @@ jobs:
|
||||
shell: bash
|
||||
run: |
|
||||
set -euo pipefail
|
||||
git config user.email "ci@gsd-build"
|
||||
git config user.email "ci@gsd-redux"
|
||||
git config user.name "CI Rebase Check"
|
||||
git fetch origin main
|
||||
if ! git merge --no-edit --no-ff origin/main; then
|
||||
@@ -290,8 +290,8 @@ jobs:
|
||||
TMPDIR_ROOT=$(mktemp -d)
|
||||
cd "$TMPDIR_ROOT"
|
||||
npm install -g "$GITHUB_WORKSPACE"
|
||||
command -v get-shit-done-cc
|
||||
get-shit-done-cc --claude --local || true
|
||||
command -v get-shit-done-redux
|
||||
get-shit-done-redux --claude --local || true
|
||||
|
||||
- name: Assert gsd-sdk resolves on PATH after unpacked install
|
||||
shell: bash
|
||||
|
||||
26
.github/workflows/release-sdk.yml
vendored
26
.github/workflows/release-sdk.yml
vendored
@@ -1,22 +1,22 @@
|
||||
# Release SDK Bundle
|
||||
#
|
||||
# Stopgap workflow_dispatch publish path: builds get-shit-done-cc with the
|
||||
# Stopgap workflow_dispatch publish path: builds get-shit-done-redux with the
|
||||
# compiled SDK and the SDK .tgz bundled inside the CC tarball, then
|
||||
# publishes the CC package to ONE chosen dist-tag (dev | next | latest)
|
||||
# per run.
|
||||
#
|
||||
# Why this exists: @gsd-build/sdk publishes from canary.yml and release.yml
|
||||
# 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
|
||||
# do not consume @gsd-build/sdk directly — bin/gsd-sdk.js resolves
|
||||
# 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
|
||||
# (no separate @gsd-build/sdk publish attempt) and additionally bakes a
|
||||
# (no separate @gsd-redux/sdk publish attempt) and additionally bakes a
|
||||
# bundled gsd-sdk-<version>.tgz at sdk-bundle/gsd-sdk.tgz inside the CC
|
||||
# tarball as a recoverable npm-installable artifact.
|
||||
#
|
||||
# Existing canary.yml and release.yml are intentionally untouched. They
|
||||
# remain the canonical two-package publish path; restore them to primary
|
||||
# use once @gsd-build/sdk ownership is recovered.
|
||||
# use once @gsd-redux/sdk ownership is recovered.
|
||||
#
|
||||
# Tracking issues: #2925 (initial workflow), #2929 (CI-gate parity with release.yml)
|
||||
|
||||
@@ -519,9 +519,9 @@ jobs:
|
||||
env:
|
||||
VERSION: ${{ steps.ver.outputs.version }}
|
||||
run: |
|
||||
EXISTING=$(npm view get-shit-done-cc@"$VERSION" version 2>/dev/null || true)
|
||||
EXISTING=$(npm view get-shit-done-redux@"$VERSION" version 2>/dev/null || true)
|
||||
if [ -n "$EXISTING" ]; then
|
||||
echo "::warning::get-shit-done-cc@${VERSION} is already on the registry — entering reconciliation mode (skip publish, continue with tag/release/PR/dist-tag)."
|
||||
echo "::warning::get-shit-done-redux@${VERSION} is already on the registry — entering reconciliation mode (skip publish, continue with tag/release/PR/dist-tag)."
|
||||
echo "skip_publish=true" >> "$GITHUB_OUTPUT"
|
||||
else
|
||||
echo "skip_publish=false" >> "$GITHUB_OUTPUT"
|
||||
@@ -670,7 +670,7 @@ jobs:
|
||||
VERSION: ${{ steps.ver.outputs.version }}
|
||||
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
|
||||
run: |
|
||||
npm dist-tag add "get-shit-done-cc@${VERSION}" next
|
||||
npm dist-tag add "get-shit-done-redux@${VERSION}" next
|
||||
echo "✅ next dist-tag re-pointed to v${VERSION} (matches latest)"
|
||||
|
||||
- name: Create GitHub Release (idempotent)
|
||||
@@ -728,7 +728,7 @@ jobs:
|
||||
run: |
|
||||
PUBLISHED="NOT_FOUND"
|
||||
for delay in 5 10 20 30 45; do
|
||||
PUBLISHED=$(npm view get-shit-done-cc@"$VERSION" version 2>/dev/null || echo "NOT_FOUND")
|
||||
PUBLISHED=$(npm view get-shit-done-redux@"$VERSION" version 2>/dev/null || echo "NOT_FOUND")
|
||||
if [ "$PUBLISHED" = "$VERSION" ]; then
|
||||
break
|
||||
fi
|
||||
@@ -739,12 +739,12 @@ jobs:
|
||||
echo "::error::Version $VERSION did not appear on the registry within timeout"
|
||||
exit 1
|
||||
fi
|
||||
TAG_VERSION=$(npm view get-shit-done-cc dist-tags."$TAG" 2>/dev/null || echo "NOT_FOUND")
|
||||
TAG_VERSION=$(npm view get-shit-done-redux dist-tags."$TAG" 2>/dev/null || echo "NOT_FOUND")
|
||||
if [ "$TAG_VERSION" != "$VERSION" ]; then
|
||||
echo "::error::dist-tag '$TAG' resolves to '$TAG_VERSION', expected '$VERSION'"
|
||||
exit 1
|
||||
fi
|
||||
echo "✅ get-shit-done-cc@${VERSION} live on dist-tag '${TAG}'"
|
||||
echo "✅ get-shit-done-redux@${VERSION} live on dist-tag '${TAG}'"
|
||||
|
||||
- name: Summary
|
||||
env:
|
||||
@@ -768,7 +768,7 @@ jobs:
|
||||
if [ "$DRY_RUN" = "true" ]; then
|
||||
echo "**DRY RUN** — npm publish, git tag, push, and GitHub Release were skipped."
|
||||
else
|
||||
echo "- Published \`get-shit-done-cc@${VERSION}\` to dist-tag \`${TAG}\`"
|
||||
echo "- Published \`get-shit-done-redux@${VERSION}\` to dist-tag \`${TAG}\`"
|
||||
echo "- SDK bundled inside the CC tarball at:"
|
||||
echo " - \`sdk/dist/cli.js\` (loose tree, consumed by \`bin/gsd-sdk.js\` shim)"
|
||||
echo " - \`sdk-bundle/gsd-sdk.tgz\` (npm-installable artifact)"
|
||||
@@ -785,6 +785,6 @@ jobs:
|
||||
# that was never opened.
|
||||
echo "- No merge-back PR (auto-picked commits are already on main)"
|
||||
fi
|
||||
echo "- Install: \`npm install -g get-shit-done-cc@${TAG}\`"
|
||||
echo "- Install: \`npm install -g get-shit-done-redux@${TAG}\`"
|
||||
fi
|
||||
} >> "$GITHUB_STEP_SUMMARY"
|
||||
|
||||
32
.github/workflows/release.yml
vendored
32
.github/workflows/release.yml
vendored
@@ -250,20 +250,20 @@ jobs:
|
||||
PRE_VERSION: ${{ steps.prerelease.outputs.pre_version }}
|
||||
run: |
|
||||
sleep 10
|
||||
PUBLISHED=$(npm view get-shit-done-cc@"$PRE_VERSION" version 2>/dev/null || echo "NOT_FOUND")
|
||||
PUBLISHED=$(npm view get-shit-done-redux@"$PRE_VERSION" version 2>/dev/null || echo "NOT_FOUND")
|
||||
if [ "$PUBLISHED" != "$PRE_VERSION" ]; then
|
||||
echo "::error::Published version verification failed. Expected $PRE_VERSION, got $PUBLISHED"
|
||||
exit 1
|
||||
fi
|
||||
echo "✓ Verified: get-shit-done-cc@$PRE_VERSION is live on npm"
|
||||
SDK_PUBLISHED=$(npm view @gsd-build/sdk@"$PRE_VERSION" version 2>/dev/null || echo "NOT_FOUND")
|
||||
echo "✓ Verified: get-shit-done-redux@$PRE_VERSION is live on npm"
|
||||
SDK_PUBLISHED=$(npm view @gsd-redux/sdk@"$PRE_VERSION" version 2>/dev/null || echo "NOT_FOUND")
|
||||
if [ "$SDK_PUBLISHED" != "$PRE_VERSION" ]; then
|
||||
echo "::error::SDK version verification failed. Expected $PRE_VERSION, got $SDK_PUBLISHED"
|
||||
exit 1
|
||||
fi
|
||||
echo "✓ Verified: @gsd-build/sdk@$PRE_VERSION is live on npm"
|
||||
echo "✓ Verified: @gsd-redux/sdk@$PRE_VERSION is live on npm"
|
||||
# Also verify dist-tag
|
||||
NEXT_TAG=$(npm dist-tag ls get-shit-done-cc 2>/dev/null | grep "next:" | awk '{print $2}')
|
||||
NEXT_TAG=$(npm dist-tag ls get-shit-done-redux 2>/dev/null | grep "next:" | awk '{print $2}')
|
||||
echo "✓ next tag points to: $NEXT_TAG"
|
||||
|
||||
- name: Summary
|
||||
@@ -276,8 +276,8 @@ jobs:
|
||||
echo "**DRY RUN** — npm publish, tagging, and push skipped" >> "$GITHUB_STEP_SUMMARY"
|
||||
else
|
||||
echo "- Published to npm as \`next\`" >> "$GITHUB_STEP_SUMMARY"
|
||||
echo "- SDK also published: \`@gsd-build/sdk@${PRE_VERSION}\` on \`next\`" >> "$GITHUB_STEP_SUMMARY"
|
||||
echo "- Install: \`npx get-shit-done-cc@next\`" >> "$GITHUB_STEP_SUMMARY"
|
||||
echo "- SDK also published: \`@gsd-redux/sdk@${PRE_VERSION}\` on \`next\`" >> "$GITHUB_STEP_SUMMARY"
|
||||
echo "- Install: \`npx get-shit-done-redux@next\`" >> "$GITHUB_STEP_SUMMARY"
|
||||
fi
|
||||
echo "" >> "$GITHUB_STEP_SUMMARY"
|
||||
echo "To publish another pre-release: run \`rc\` again" >> "$GITHUB_STEP_SUMMARY"
|
||||
@@ -426,8 +426,8 @@ jobs:
|
||||
run: |
|
||||
# Point next to the stable release so @next never returns something
|
||||
# older than @latest. This prevents stale pre-release installs.
|
||||
npm dist-tag add "get-shit-done-cc@${VERSION}" next 2>/dev/null || true
|
||||
npm dist-tag add "@gsd-build/sdk@${VERSION}" next 2>/dev/null || true
|
||||
npm dist-tag add "get-shit-done-redux@${VERSION}" next 2>/dev/null || true
|
||||
npm dist-tag add "@gsd-redux/sdk@${VERSION}" next 2>/dev/null || true
|
||||
echo "✓ next dist-tag updated to v${VERSION}"
|
||||
|
||||
- name: Verify publish
|
||||
@@ -436,20 +436,20 @@ jobs:
|
||||
VERSION: ${{ inputs.version }}
|
||||
run: |
|
||||
sleep 10
|
||||
PUBLISHED=$(npm view get-shit-done-cc@"$VERSION" version 2>/dev/null || echo "NOT_FOUND")
|
||||
PUBLISHED=$(npm view get-shit-done-redux@"$VERSION" version 2>/dev/null || echo "NOT_FOUND")
|
||||
if [ "$PUBLISHED" != "$VERSION" ]; then
|
||||
echo "::error::Published version verification failed. Expected $VERSION, got $PUBLISHED"
|
||||
exit 1
|
||||
fi
|
||||
echo "✓ Verified: get-shit-done-cc@$VERSION is live on npm"
|
||||
SDK_PUBLISHED=$(npm view @gsd-build/sdk@"$VERSION" version 2>/dev/null || echo "NOT_FOUND")
|
||||
echo "✓ Verified: get-shit-done-redux@$VERSION is live on npm"
|
||||
SDK_PUBLISHED=$(npm view @gsd-redux/sdk@"$VERSION" version 2>/dev/null || echo "NOT_FOUND")
|
||||
if [ "$SDK_PUBLISHED" != "$VERSION" ]; then
|
||||
echo "::error::SDK version verification failed. Expected $VERSION, got $SDK_PUBLISHED"
|
||||
exit 1
|
||||
fi
|
||||
echo "✓ Verified: @gsd-build/sdk@$VERSION is live on npm"
|
||||
echo "✓ Verified: @gsd-redux/sdk@$VERSION is live on npm"
|
||||
# Verify latest tag
|
||||
LATEST_TAG=$(npm dist-tag ls get-shit-done-cc 2>/dev/null | grep "latest:" | awk '{print $2}')
|
||||
LATEST_TAG=$(npm dist-tag ls get-shit-done-redux 2>/dev/null | grep "latest:" | awk '{print $2}')
|
||||
echo "✓ latest tag points to: $LATEST_TAG"
|
||||
|
||||
- name: Summary
|
||||
@@ -462,8 +462,8 @@ jobs:
|
||||
echo "**DRY RUN** — npm publish, tagging, and push skipped" >> "$GITHUB_STEP_SUMMARY"
|
||||
else
|
||||
echo "- Published to npm as \`latest\`" >> "$GITHUB_STEP_SUMMARY"
|
||||
echo "- SDK also published: \`@gsd-build/sdk@${VERSION}\` as \`latest\`" >> "$GITHUB_STEP_SUMMARY"
|
||||
echo "- SDK also published: \`@gsd-redux/sdk@${VERSION}\` as \`latest\`" >> "$GITHUB_STEP_SUMMARY"
|
||||
echo "- Tagged \`v${VERSION}\`" >> "$GITHUB_STEP_SUMMARY"
|
||||
echo "- PR created to merge back to main" >> "$GITHUB_STEP_SUMMARY"
|
||||
echo "- Install: \`npx get-shit-done-cc@latest\`" >> "$GITHUB_STEP_SUMMARY"
|
||||
echo "- Install: \`npx get-shit-done-redux@latest\`" >> "$GITHUB_STEP_SUMMARY"
|
||||
fi
|
||||
|
||||
4
.github/workflows/test.yml
vendored
4
.github/workflows/test.yml
vendored
@@ -71,7 +71,7 @@ jobs:
|
||||
shell: bash
|
||||
run: |
|
||||
set -euo pipefail
|
||||
git config user.email "ci@gsd-build"
|
||||
git config user.email "ci@gsd-redux"
|
||||
git config user.name "CI Rebase Check"
|
||||
git fetch origin main
|
||||
if ! git merge --no-edit --no-ff origin/main; then
|
||||
@@ -208,7 +208,7 @@ jobs:
|
||||
shell: bash
|
||||
run: |
|
||||
set -euo pipefail
|
||||
git config user.email "ci@gsd-build"
|
||||
git config user.email "ci@gsd-redux"
|
||||
git config user.name "CI Rebase Check"
|
||||
git fetch origin main
|
||||
if ! git merge --no-edit --no-ff origin/main; then
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# Render agent definitions from templates at install/config-change time
|
||||
|
||||
**Source:** [#2758](https://github.com/gsd-build/get-shit-done/issues/2758)
|
||||
**Source:** [#2758](https://github.com/GSD-redux/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-build/get-shit-done/issues/2756)
|
||||
**Source:** [#2756](https://github.com/GSD-redux/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-build/get-shit-done
|
||||
# Release monitor for GSD-redux/get-shit-done-redux
|
||||
# Checks every 15 minutes, writes new release info to a signal file
|
||||
|
||||
REPO="gsd-build/get-shit-done"
|
||||
REPO="GSD-redux/get-shit-done-redux"
|
||||
SIGNAL_FILE="/tmp/gsd-new-release.json"
|
||||
STATE_FILE="/tmp/gsd-monitor-last-tag"
|
||||
LOG_FILE="/tmp/gsd-monitor.log"
|
||||
|
||||
24
CONTEXT.md
24
CONTEXT.md
@@ -95,7 +95,7 @@ Workflow contract seam covering agent worktree lifecycle orchestration rules emb
|
||||
Adapter Module owning linked-worktree root mapping and metadata-prune policy (`git worktree prune` non-destructive default) for planning/workstream callers.
|
||||
|
||||
### SDK Package Seam Module
|
||||
Module owning SDK-to-`get-shit-done-cc` compatibility policy: legacy asset discovery, install-layout probing, transition-only error messaging, and thin Adapter access for CJS-era assets that native SDK Modules have not replaced yet.
|
||||
Module owning SDK-to-`get-shit-done-redux` compatibility policy: legacy asset discovery, install-layout probing, transition-only error messaging, and thin Adapter access for CJS-era assets that native SDK Modules have not replaced yet.
|
||||
|
||||
### Runtime-Global Skills Policy Module
|
||||
Module owning runtime-aware global skills directory policy for SDK query surfaces. Resolves runtime-global skills bases/skill paths from runtime + env precedence, renders display paths for warnings/manifests, and reports unsupported runtimes with no skills directory.
|
||||
@@ -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-build/get-shit-done --author @me --state open; repeat near end because open PR set can change mid-run`
|
||||
`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.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`
|
||||
@@ -253,10 +253,10 @@ Five-axis story decomposition discipline (**S**pike, **P**aths, **I**nterfaces,
|
||||
`RELEASE-NOTES.STANDARD.heading-level=## for category, ### for subgroup (area), - for bullet`
|
||||
`RELEASE-NOTES.STANDARD.bullet-shape=**Bold user-visible change** — explanation of what was broken or what's new, leading with symptom not implementation. Trailing (#NNN) PR ref.`
|
||||
`RELEASE-NOTES.STANDARD.subgroups=phase-planning-state | workstream | query-dispatch-cli | code-review | install | capture | docs | architecture | security`
|
||||
`RELEASE-NOTES.STANDARD.footer.hotfix=Install/upgrade: \`npx get-shit-done-cc@latest\``
|
||||
`RELEASE-NOTES.STANDARD.footer.rc=Install for testing: \`npx get-shit-done-cc@next\` (per branch->dist-tag policy)`
|
||||
`RELEASE-NOTES.STANDARD.footer.canary=Install: \`npx get-shit-done-cc@canary\``
|
||||
`RELEASE-NOTES.STANDARD.footer.full-changelog=**Full Changelog**: https://github.com/gsd-build/get-shit-done/compare/<prev>...<this>`
|
||||
`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.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,12 +273,12 @@ 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-build/get-shit-done/releases/tag/v1.41.1) - 14 fixes grouped by 6 subgroups`
|
||||
`RELEASE-NOTES.EXAMPLE.rc=v1.42.0-rc1 (https://github.com/gsd-build/get-shit-done/releases/tag/v1.42.0-rc1) - intro + Added/Changed/Fixed/Documentation taxonomy`
|
||||
`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.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-cc@latest\`\n\n**Full Changelog**: <compare-url>`
|
||||
`RELEASE-NOTES.TEMPLATE.rc=<one-paragraph intro>\n\n## Added\n### <subgroup>\n- **<change>** — <explanation>. (#<PR>)\n\n## Changed\n### Architecture\n- **<refactor>** — <user-visible benefit>. (#<PR>)\n\n## Fixed\n### <subgroup>\n- **<fix>** — <explanation>. (#<PR>)\n\n## Documentation\n- **<docs change>** — <reason>. (#<PR>)\n\n---\n\nThis is a release candidate. Install for testing:\n\`\`\`bash\nnpx get-shit-done-cc@next\n\`\`\`\n\n**Full Changelog**: <compare-url>`
|
||||
`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>`
|
||||
`RELEASE-NOTES.TEMPLATE.rc=<one-paragraph intro>\n\n## Added\n### <subgroup>\n- **<change>** — <explanation>. (#<PR>)\n\n## Changed\n### Architecture\n- **<refactor>** — <user-visible benefit>. (#<PR>)\n\n## Fixed\n### <subgroup>\n- **<fix>** — <explanation>. (#<PR>)\n\n## Documentation\n- **<docs change>** — <reason>. (#<PR>)\n\n---\n\nThis is a release candidate. Install for testing:\n\`\`\`bash\nnpx get-shit-done-redux@next\n\`\`\`\n\n**Full Changelog**: <compare-url>`
|
||||
|
||||
`RELEASE-NOTES.RELEASE-STREAM.dev-branch=canary dist-tag (only); install via @canary`
|
||||
`RELEASE-NOTES.RELEASE-STREAM.main-branch=next (RCs) + latest (stable); install via @next or @latest`
|
||||
@@ -553,7 +553,7 @@ Migration plan: Phase 1 (#3465) seam additions complete; Phase 2 (#3466) targets
|
||||
`DEFECT.STACKED-PR-CANNOT-STAND-ALONE.anti-pattern=blindly running git rebase --onto origin/main on the patch branch — produces "conflicts" that are really "the scaffolding doesn't exist yet"; resolving them means reinventing the upstream PR's contribution, which duplicates work and creates merge hazards. Recognize the shape early via cat-file probe before rebasing`
|
||||
|
||||
`DEFECT.CANARY-VERSION-LEAK.symptom=package.json version on main carries a -canary.<N> suffix that per release policy belongs to the dev branch only; nothing publishable depends on the version string at runtime, but every consumer of the version metadata (release flow, install banners, statusline) sees the dev-channel label`
|
||||
`DEFECT.CANARY-VERSION-LEAK.examples=2026-05-16 audit found origin/main + origin/feat/3575-enforcement-hardening both at "version": "1.50.0-canary.0" in sdk/package.json AND root package.json; npm view @gsd-build/sdk versions returned ["0.1.0"] only, dist-tag latest=0.1.0, @1.50.0-canary.0 404 — confirms the string is metadata-only, never published. git log -S '"version": "1.50.0-canary.0"' origin/main blamed commit 2d32ad82 fix(plan-phase)... (#3206), a fix PR that accidentally carried the version bump from a dev-branch base`
|
||||
`DEFECT.CANARY-VERSION-LEAK.examples=2026-05-16 audit found origin/main + origin/feat/3575-enforcement-hardening both at "version": "1.50.0-canary.0" in sdk/package.json AND root package.json; npm view @gsd-redux/sdk versions returned ["0.1.0"] only, dist-tag latest=0.1.0, @1.50.0-canary.0 404 — confirms the string is metadata-only, never published. git log -S '"version": "1.50.0-canary.0"' origin/main blamed commit 2d32ad82 fix(plan-phase)... (#3206), a fix PR that accidentally carried the version bump from a dev-branch base`
|
||||
`DEFECT.CANARY-VERSION-LEAK.detect=jq -r .version package.json sdk/package.json on origin/main shows a -canary suffix; OR npm view <pkg> dist-tags shows latest != main's version`
|
||||
`DEFECT.CANARY-VERSION-LEAK.fix-forward=open a chore/* PR against main that resets the version strings to the canonical pre-canary stable; rebase open PRs to pick it up; gate at PR open with a CI check that rejects -canary versions on PRs targeting main`
|
||||
`DEFECT.CANARY-VERSION-LEAK.cross-ref=RELEASE-NOTES.RELEASE-STREAM.dev-branch=canary dist-tag (only); this defect is the live counter-example to that rule`
|
||||
@@ -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-build/get-shit-done#3545`
|
||||
`DEFECT.GSD-TEST-CONCURRENT-OUTPUT-COLLISION.upstream=GSD-redux/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-build/get-shit-done.git
|
||||
git clone https://github.com/GSD-redux/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-build/get-shit-done/issues/new?template=bug_report.yml) — fill it out completely.
|
||||
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.
|
||||
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-build/get-shit-done/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/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.
|
||||
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-build/get-shit-done/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-build/get-shit-done/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/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.
|
||||
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-build/get-shit-done/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/GSD-redux/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-build/get-shit-done/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/GSD-redux/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-build/get-shit-done/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-build/get-shit-done/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-build/get-shit-done/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-build/get-shit-done/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-build/get-shit-done/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-build/get-shit-done/issues/3340) | SDK publish lag — agent dir fix never shipped in `@gsd-build/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/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. |
|
||||
|
||||
## Execution Rules for This Batch
|
||||
|
||||
|
||||
118
README.ja-JP.md
118
README.ja-JP.md
@@ -1,3 +1,5 @@
|
||||
> ⚠️ This is an active fork. See the [English README](README.md) for the full notice about the original repo.
|
||||
|
||||
<div align="center">
|
||||
|
||||
# GET SHIT DONE
|
||||
@@ -8,19 +10,17 @@
|
||||
|
||||
**コンテキストロット(Claudeがコンテキストウィンドウを消費するにつれ品質が劣化する現象)を解決します。**
|
||||
|
||||
[](https://www.npmjs.com/package/get-shit-done-cc)
|
||||
[](https://www.npmjs.com/package/get-shit-done-cc)
|
||||
[](https://github.com/gsd-build/get-shit-done/actions/workflows/test.yml)
|
||||
[](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://discord.gg/mYgfVNfA2r)
|
||||
[](https://x.com/gsd_foundation)
|
||||
[](https://dexscreener.com/solana/dwudwjvan7bzkw9zwlbyv6kspdlvhwzrqy6ebk8xzxkv)
|
||||
[](https://github.com/gsd-build/get-shit-done)
|
||||
[](https://github.com/GSD-redux/get-shit-done-redux)
|
||||
[](LICENSE)
|
||||
|
||||
<br>
|
||||
|
||||
```bash
|
||||
npx get-shit-done-cc@latest
|
||||
npx get-shit-done-redux@latest
|
||||
```
|
||||
|
||||
**Mac、Windows、Linuxで動作します。**
|
||||
@@ -77,14 +77,14 @@ GSDはそれを解決します。Claude Codeを信頼性の高いものにする
|
||||
|
||||
### v1.39.0 ハイライト
|
||||
|
||||
完全なリストは [v1.39.0 リリースノート](https://github.com/gsd-build/get-shit-done/releases/tag/v1.39.0) を参照してください。
|
||||
完全なリストは [v1.39.0 リリースノート](https://github.com/GSD-redux/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` も更新。
|
||||
- **マージ後ビルド & テストゲート** — `execute-phase` のステップ 5.6 が `workflow.build_command` の設定を自動検出し、無ければ Xcode(`.xcodeproj`)、Makefile、Justfile、Cargo、Go、Python、npm の順にフォールバック。Xcode/iOS プロジェクトでは `xcodebuild build` と `xcodebuild test` を自動実行。並列・直列両モードで動作。
|
||||
- **ランタイム別レビューモデル選択** — `review.models.<cli>` で各外部レビュー CLI(codex、gemini など)が使うモデルをプランナー/実行プロファイルとは独立に指定可能。
|
||||
- **ワークストリーム設定の継承** — `GSD_WORKSTREAM` が設定されている場合、ルートの `.planning/config.json` を先に読み込み、ワークストリーム設定をディープマージ(衝突時はワークストリーム側が優先)。ワークストリーム設定で明示的に `null` を指定するとルート値を上書き可能。
|
||||
- **手動カナリアリリースワークフロー** — `.github/workflows/canary.yml` が `workflow_dispatch` 経由で `dev` ブランチから `{base}-canary.{N}` ビルドを `@canary` dist-tag に手動公開(`get-shit-done-cc` と `@gsd-build/sdk`)。
|
||||
- **手動カナリアリリースワークフロー** — `.github/workflows/canary.yml` が `workflow_dispatch` 経由で `dev` ブランチから `{base}-canary.{N}` ビルドを `@canary` dist-tag に手動公開(`get-shit-done-redux` と `@gsd-redux/sdk`)。
|
||||
- **スキルの統合:86 → 59** — 4つの新しいグループ化スキル(`capture`、`phase`、`config`、`workspace`)が31のマイクロスキルを吸収。既存の親スキル6つはラップアップやサブ操作をフラグ化:`update --sync/--reapply`、`sketch --wrap-up`、`spike --wrap-up`、`map-codebase --fast/--query`、`code-review --fix`、`progress --do/--next`。機能の欠損なし。
|
||||
|
||||
---
|
||||
@@ -92,7 +92,7 @@ GSDはそれを解決します。Claude Codeを信頼性の高いものにする
|
||||
## はじめに
|
||||
|
||||
```bash
|
||||
npx get-shit-done-cc@latest
|
||||
npx get-shit-done-redux@latest
|
||||
```
|
||||
|
||||
インストーラーが以下の選択を求めます:
|
||||
@@ -116,7 +116,7 @@ npx get-shit-done-cc@latest
|
||||
GSDは急速に進化しています。定期的にアップデートしてください:
|
||||
|
||||
```bash
|
||||
npx get-shit-done-cc@latest
|
||||
npx get-shit-done-redux@latest
|
||||
```
|
||||
|
||||
<details>
|
||||
@@ -124,49 +124,49 @@ npx get-shit-done-cc@latest
|
||||
|
||||
```bash
|
||||
# Claude Code
|
||||
npx get-shit-done-cc --claude --global # ~/.claude/ にインストール
|
||||
npx get-shit-done-cc --claude --local # ./.claude/ にインストール
|
||||
npx get-shit-done-redux --claude --global # ~/.claude/ にインストール
|
||||
npx get-shit-done-redux --claude --local # ./.claude/ にインストール
|
||||
|
||||
# OpenCode
|
||||
npx get-shit-done-cc --opencode --global # ~/.config/opencode/ にインストール
|
||||
npx get-shit-done-redux --opencode --global # ~/.config/opencode/ にインストール
|
||||
|
||||
# Gemini CLI
|
||||
npx get-shit-done-cc --gemini --global # ~/.gemini/ にインストール
|
||||
npx get-shit-done-redux --gemini --global # ~/.gemini/ にインストール
|
||||
|
||||
# Kilo
|
||||
npx get-shit-done-cc --kilo --global # ~/.config/kilo/ にインストール
|
||||
npx get-shit-done-cc --kilo --local # ./.kilo/ にインストール
|
||||
npx get-shit-done-redux --kilo --global # ~/.config/kilo/ にインストール
|
||||
npx get-shit-done-redux --kilo --local # ./.kilo/ にインストール
|
||||
|
||||
# Codex
|
||||
npx get-shit-done-cc --codex --global # ~/.codex/ にインストール
|
||||
npx get-shit-done-cc --codex --local # ./.codex/ にインストール
|
||||
npx get-shit-done-redux --codex --global # ~/.codex/ にインストール
|
||||
npx get-shit-done-redux --codex --local # ./.codex/ にインストール
|
||||
|
||||
# Copilot
|
||||
npx get-shit-done-cc --copilot --global # ~/.github/ にインストール
|
||||
npx get-shit-done-cc --copilot --local # ./.github/ にインストール
|
||||
npx get-shit-done-redux --copilot --global # ~/.github/ にインストール
|
||||
npx get-shit-done-redux --copilot --local # ./.github/ にインストール
|
||||
|
||||
# Cursor CLI
|
||||
npx get-shit-done-cc --cursor --global # ~/.cursor/ にインストール
|
||||
npx get-shit-done-cc --cursor --local # ./.cursor/ にインストール
|
||||
npx get-shit-done-redux --cursor --global # ~/.cursor/ にインストール
|
||||
npx get-shit-done-redux --cursor --local # ./.cursor/ にインストール
|
||||
|
||||
# Antigravity
|
||||
npx get-shit-done-cc --antigravity --global # ~/.gemini/antigravity/ にインストール
|
||||
npx get-shit-done-cc --antigravity --local # ./.agent/ にインストール
|
||||
npx get-shit-done-redux --antigravity --global # ~/.gemini/antigravity/ にインストール
|
||||
npx get-shit-done-redux --antigravity --local # ./.agent/ にインストール
|
||||
|
||||
# Augment
|
||||
npx get-shit-done-cc --augment --global # ~/.augment/ にインストール
|
||||
npx get-shit-done-cc --augment --local # ./.augment/ にインストール
|
||||
npx get-shit-done-redux --augment --global # ~/.augment/ にインストール
|
||||
npx get-shit-done-redux --augment --local # ./.augment/ にインストール
|
||||
|
||||
# Trae
|
||||
npx get-shit-done-cc --trae --global # ~/.trae/ にインストール
|
||||
npx get-shit-done-cc --trae --local # ./.trae/ にインストール
|
||||
npx get-shit-done-redux --trae --global # ~/.trae/ にインストール
|
||||
npx get-shit-done-redux --trae --local # ./.trae/ にインストール
|
||||
|
||||
# Cline
|
||||
npx get-shit-done-cc --cline --global # ~/.cline/ にインストール
|
||||
npx get-shit-done-cc --cline --local # ./.clinerules にインストール
|
||||
npx get-shit-done-redux --cline --global # ~/.cline/ にインストール
|
||||
npx get-shit-done-redux --cline --local # ./.clinerules にインストール
|
||||
|
||||
# 全ランタイム
|
||||
npx get-shit-done-cc --all --global # すべてのディレクトリにインストール
|
||||
npx get-shit-done-redux --all --global # すべてのディレクトリにインストール
|
||||
```
|
||||
|
||||
`--global`(`-g`)または `--local`(`-l`)でインストール先の質問をスキップできます。
|
||||
@@ -180,7 +180,7 @@ npx get-shit-done-cc --all --global # すべてのディレクトリにイ
|
||||
リポジトリをクローンしてインストーラーをローカルで実行します:
|
||||
|
||||
```bash
|
||||
git clone https://github.com/gsd-build/get-shit-done.git
|
||||
git clone https://github.com/GSD-redux/get-shit-done-redux.git
|
||||
cd get-shit-done
|
||||
node bin/install.js --claude --local
|
||||
```
|
||||
@@ -785,18 +785,18 @@ GSDのコードベースマッピングおよび分析コマンドは、プロ
|
||||
|
||||
**コマンドが期待通りに動作しない?**
|
||||
- `/gsd-help` を実行してインストールを確認してください
|
||||
- `npx get-shit-done-cc` を再実行して再インストールしてください
|
||||
- `npx get-shit-done-redux` を再実行して再インストールしてください
|
||||
|
||||
**最新バージョンへのアップデート?**
|
||||
```bash
|
||||
npx get-shit-done-cc@latest
|
||||
npx get-shit-done-redux@latest
|
||||
```
|
||||
|
||||
**Dockerまたはコンテナ化環境を使用している?**
|
||||
|
||||
チルダパス(`~/.claude/...`)でファイル読み取りが失敗する場合、インストール前に `CLAUDE_CONFIG_DIR` を設定してください:
|
||||
```bash
|
||||
CLAUDE_CONFIG_DIR=/home/youruser/.claude npx get-shit-done-cc --global
|
||||
CLAUDE_CONFIG_DIR=/home/youruser/.claude npx get-shit-done-redux --global
|
||||
```
|
||||
これにより、コンテナ内で正しく展開されない可能性がある `~` の代わりに絶対パスが使用されます。
|
||||
|
||||
@@ -806,26 +806,26 @@ GSDを完全に削除するには:
|
||||
|
||||
```bash
|
||||
# グローバルインストール
|
||||
npx get-shit-done-cc --claude --global --uninstall
|
||||
npx get-shit-done-cc --opencode --global --uninstall
|
||||
npx get-shit-done-cc --gemini --global --uninstall
|
||||
npx get-shit-done-cc --kilo --global --uninstall
|
||||
npx get-shit-done-cc --codex --global --uninstall
|
||||
npx get-shit-done-cc --copilot --global --uninstall
|
||||
npx get-shit-done-cc --cursor --global --uninstall
|
||||
npx get-shit-done-cc --antigravity --global --uninstall
|
||||
npx get-shit-done-cc --trae --global --uninstall
|
||||
npx get-shit-done-redux --claude --global --uninstall
|
||||
npx get-shit-done-redux --opencode --global --uninstall
|
||||
npx get-shit-done-redux --gemini --global --uninstall
|
||||
npx get-shit-done-redux --kilo --global --uninstall
|
||||
npx get-shit-done-redux --codex --global --uninstall
|
||||
npx get-shit-done-redux --copilot --global --uninstall
|
||||
npx get-shit-done-redux --cursor --global --uninstall
|
||||
npx get-shit-done-redux --antigravity --global --uninstall
|
||||
npx get-shit-done-redux --trae --global --uninstall
|
||||
|
||||
# ローカルインストール(現在のプロジェクト)
|
||||
npx get-shit-done-cc --claude --local --uninstall
|
||||
npx get-shit-done-cc --opencode --local --uninstall
|
||||
npx get-shit-done-cc --gemini --local --uninstall
|
||||
npx get-shit-done-cc --kilo --local --uninstall
|
||||
npx get-shit-done-cc --codex --local --uninstall
|
||||
npx get-shit-done-cc --copilot --local --uninstall
|
||||
npx get-shit-done-cc --cursor --local --uninstall
|
||||
npx get-shit-done-cc --antigravity --local --uninstall
|
||||
npx get-shit-done-cc --trae --local --uninstall
|
||||
npx get-shit-done-redux --claude --local --uninstall
|
||||
npx get-shit-done-redux --opencode --local --uninstall
|
||||
npx get-shit-done-redux --gemini --local --uninstall
|
||||
npx get-shit-done-redux --kilo --local --uninstall
|
||||
npx get-shit-done-redux --codex --local --uninstall
|
||||
npx get-shit-done-redux --copilot --local --uninstall
|
||||
npx get-shit-done-redux --cursor --local --uninstall
|
||||
npx get-shit-done-redux --antigravity --local --uninstall
|
||||
npx get-shit-done-redux --trae --local --uninstall
|
||||
```
|
||||
|
||||
これにより、他の設定を保持しながら、すべてのGSDコマンド、エージェント、フック、設定が削除されます。
|
||||
@@ -834,7 +834,7 @@ npx get-shit-done-cc --trae --local --uninstall
|
||||
|
||||
## コミュニティポート
|
||||
|
||||
OpenCode、Gemini CLI、Kilo、Codexは `npx get-shit-done-cc` でネイティブサポートされています。
|
||||
OpenCode、Gemini CLI、Kilo、Codexは `npx get-shit-done-redux` でネイティブサポートされています。
|
||||
|
||||
以下のコミュニティポートがマルチランタイムサポートの先駆けとなりました:
|
||||
|
||||
@@ -847,11 +847,11 @@ OpenCode、Gemini CLI、Kilo、Codexは `npx get-shit-done-cc` でネイティ
|
||||
|
||||
## スター履歴
|
||||
|
||||
<a href="https://star-history.com/#gsd-build/get-shit-done&Date">
|
||||
<a href="https://star-history.com/#GSD-redux/get-shit-done-redux&Date">
|
||||
<picture>
|
||||
<source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=gsd-build/get-shit-done&type=Date&theme=dark" />
|
||||
<source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=gsd-build/get-shit-done&type=Date" />
|
||||
<img alt="Star History Chart" src="https://api.star-history.com/svg?repos=gsd-build/get-shit-done&type=Date" />
|
||||
<source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=GSD-redux/get-shit-done-redux&type=Date&theme=dark" />
|
||||
<source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=GSD-redux/get-shit-done-redux&type=Date" />
|
||||
<img alt="Star History Chart" src="https://api.star-history.com/svg?repos=GSD-redux/get-shit-done-redux&type=Date" />
|
||||
</picture>
|
||||
</a>
|
||||
|
||||
|
||||
118
README.ko-KR.md
118
README.ko-KR.md
@@ -1,3 +1,5 @@
|
||||
> ⚠️ This is an active fork. See the [English README](README.md) for the full notice about the original repo.
|
||||
|
||||
<div align="center">
|
||||
|
||||
# GET SHIT DONE
|
||||
@@ -8,19 +10,17 @@
|
||||
|
||||
**컨텍스트 rot를 해결합니다 — Claude의 컨텍스트 창이 채워질수록 품질이 저하되는 문제.**
|
||||
|
||||
[](https://www.npmjs.com/package/get-shit-done-cc)
|
||||
[](https://www.npmjs.com/package/get-shit-done-cc)
|
||||
[](https://github.com/gsd-build/get-shit-done/actions/workflows/test.yml)
|
||||
[](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://discord.gg/mYgfVNfA2r)
|
||||
[](https://x.com/gsd_foundation)
|
||||
[](https://dexscreener.com/solana/dwudwjvan7bzkw9zwlbyv6kspdlvhwzrqy6ebk8xzxkv)
|
||||
[](https://github.com/gsd-build/get-shit-done)
|
||||
[](https://github.com/GSD-redux/get-shit-done-redux)
|
||||
[](LICENSE)
|
||||
|
||||
<br>
|
||||
|
||||
```bash
|
||||
npx get-shit-done-cc@latest
|
||||
npx get-shit-done-redux@latest
|
||||
```
|
||||
|
||||
**Mac, Windows, Linux 모두 지원.**
|
||||
@@ -77,14 +77,14 @@ GSD가 그걸 고칩니다. Claude Code를 신뢰할 수 있게 만드는 컨텍
|
||||
|
||||
### v1.39.0 하이라이트
|
||||
|
||||
전체 목록은 [v1.39.0 릴리스 노트](https://github.com/gsd-build/get-shit-done/releases/tag/v1.39.0)를 참고하세요.
|
||||
전체 목록은 [v1.39.0 릴리스 노트](https://github.com/GSD-redux/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`도 갱신.
|
||||
- **머지 후 빌드 & 테스트 게이트** — `execute-phase` 5.6 단계가 `workflow.build_command` 설정을 우선 자동 감지하고, 없으면 Xcode(`.xcodeproj`), Makefile, Justfile, Cargo, Go, Python, npm 순으로 폴백. Xcode/iOS 프로젝트는 `xcodebuild build` 및 `xcodebuild test`를 자동 실행. 병렬·직렬 모드 모두에서 동작.
|
||||
- **런타임별 리뷰 모델 선택** — `review.models.<cli>`로 각 외부 리뷰 CLI(codex, gemini 등)가 플래너/실행 프로파일과 독립적으로 자체 모델을 선택할 수 있음.
|
||||
- **워크스트림 설정 상속** — `GSD_WORKSTREAM`이 설정되면 루트 `.planning/config.json`을 먼저 로드한 뒤 워크스트림 설정을 딥 머지(충돌 시 워크스트림 우선). 워크스트림 설정에서 명시적 `null`은 루트 값을 덮어씀.
|
||||
- **수동 카나리 릴리스 워크플로** — `.github/workflows/canary.yml`이 `workflow_dispatch`로 `dev` 브랜치에서 `{base}-canary.{N}` 빌드를 `@canary` dist-tag로 수동 게시(`get-shit-done-cc`와 `@gsd-build/sdk`).
|
||||
- **수동 카나리 릴리스 워크플로** — `.github/workflows/canary.yml`이 `workflow_dispatch`로 `dev` 브랜치에서 `{base}-canary.{N}` 빌드를 `@canary` dist-tag로 수동 게시(`get-shit-done-redux`와 `@gsd-redux/sdk`).
|
||||
- **스킬 통합: 86 → 59** — 4개의 새로운 그룹 스킬(`capture`, `phase`, `config`, `workspace`)이 31개의 마이크로 스킬을 흡수. 기존 6개의 부모 스킬은 래퍼업/하위 동작을 플래그로 흡수: `update --sync/--reapply`, `sketch --wrap-up`, `spike --wrap-up`, `map-codebase --fast/--query`, `code-review --fix`, `progress --do/--next`. 기능 손실 없음.
|
||||
|
||||
---
|
||||
@@ -92,7 +92,7 @@ GSD가 그걸 고칩니다. Claude Code를 신뢰할 수 있게 만드는 컨텍
|
||||
## 시작하기
|
||||
|
||||
```bash
|
||||
npx get-shit-done-cc@latest
|
||||
npx get-shit-done-redux@latest
|
||||
```
|
||||
|
||||
설치 중에 다음을 선택합니다:
|
||||
@@ -116,7 +116,7 @@ npx get-shit-done-cc@latest
|
||||
GSD는 빠르게 발전합니다. 주기적으로 업데이트하세요:
|
||||
|
||||
```bash
|
||||
npx get-shit-done-cc@latest
|
||||
npx get-shit-done-redux@latest
|
||||
```
|
||||
|
||||
<details>
|
||||
@@ -124,49 +124,49 @@ npx get-shit-done-cc@latest
|
||||
|
||||
```bash
|
||||
# Claude Code
|
||||
npx get-shit-done-cc --claude --global # ~/.claude/에 설치
|
||||
npx get-shit-done-cc --claude --local # ./.claude/에 설치
|
||||
npx get-shit-done-redux --claude --global # ~/.claude/에 설치
|
||||
npx get-shit-done-redux --claude --local # ./.claude/에 설치
|
||||
|
||||
# OpenCode
|
||||
npx get-shit-done-cc --opencode --global # ~/.config/opencode/에 설치
|
||||
npx get-shit-done-redux --opencode --global # ~/.config/opencode/에 설치
|
||||
|
||||
# Gemini CLI
|
||||
npx get-shit-done-cc --gemini --global # ~/.gemini/에 설치
|
||||
npx get-shit-done-redux --gemini --global # ~/.gemini/에 설치
|
||||
|
||||
# Kilo
|
||||
npx get-shit-done-cc --kilo --global # ~/.config/kilo/에 설치
|
||||
npx get-shit-done-cc --kilo --local # ./.kilo/에 설치
|
||||
npx get-shit-done-redux --kilo --global # ~/.config/kilo/에 설치
|
||||
npx get-shit-done-redux --kilo --local # ./.kilo/에 설치
|
||||
|
||||
# Codex
|
||||
npx get-shit-done-cc --codex --global # ~/.codex/에 설치
|
||||
npx get-shit-done-cc --codex --local # ./.codex/에 설치
|
||||
npx get-shit-done-redux --codex --global # ~/.codex/에 설치
|
||||
npx get-shit-done-redux --codex --local # ./.codex/에 설치
|
||||
|
||||
# Copilot
|
||||
npx get-shit-done-cc --copilot --global # ~/.github/에 설치
|
||||
npx get-shit-done-cc --copilot --local # ./.github/에 설치
|
||||
npx get-shit-done-redux --copilot --global # ~/.github/에 설치
|
||||
npx get-shit-done-redux --copilot --local # ./.github/에 설치
|
||||
|
||||
# Cursor CLI
|
||||
npx get-shit-done-cc --cursor --global # ~/.cursor/에 설치
|
||||
npx get-shit-done-cc --cursor --local # ./.cursor/에 설치
|
||||
npx get-shit-done-redux --cursor --global # ~/.cursor/에 설치
|
||||
npx get-shit-done-redux --cursor --local # ./.cursor/에 설치
|
||||
|
||||
# Antigravity
|
||||
npx get-shit-done-cc --antigravity --global # ~/.gemini/antigravity/에 설치
|
||||
npx get-shit-done-cc --antigravity --local # ./.agent/에 설치
|
||||
npx get-shit-done-redux --antigravity --global # ~/.gemini/antigravity/에 설치
|
||||
npx get-shit-done-redux --antigravity --local # ./.agent/에 설치
|
||||
|
||||
# Augment
|
||||
npx get-shit-done-cc --augment --global # ~/.augment/에 설치
|
||||
npx get-shit-done-cc --augment --local # ./.augment/에 설치
|
||||
npx get-shit-done-redux --augment --global # ~/.augment/에 설치
|
||||
npx get-shit-done-redux --augment --local # ./.augment/에 설치
|
||||
|
||||
# Trae
|
||||
npx get-shit-done-cc --trae --global # ~/.trae/에 설치
|
||||
npx get-shit-done-cc --trae --local # ./.trae/에 설치
|
||||
npx get-shit-done-redux --trae --global # ~/.trae/에 설치
|
||||
npx get-shit-done-redux --trae --local # ./.trae/에 설치
|
||||
|
||||
# Cline
|
||||
npx get-shit-done-cc --cline --global # ~/.cline/에 설치
|
||||
npx get-shit-done-cc --cline --local # ./.clinerules에 설치
|
||||
npx get-shit-done-redux --cline --global # ~/.cline/에 설치
|
||||
npx get-shit-done-redux --cline --local # ./.clinerules에 설치
|
||||
|
||||
# 전체 런타임
|
||||
npx get-shit-done-cc --all --global # 모든 디렉터리에 설치
|
||||
npx get-shit-done-redux --all --global # 모든 디렉터리에 설치
|
||||
```
|
||||
|
||||
위치 프롬프트 건너뛰기: `--global` (`-g`) 또는 `--local` (`-l`).
|
||||
@@ -180,7 +180,7 @@ npx get-shit-done-cc --all --global # 모든 디렉터리에 설치
|
||||
저장소를 클론하고 설치 프로그램을 로컬에서 실행합니다:
|
||||
|
||||
```bash
|
||||
git clone https://github.com/gsd-build/get-shit-done.git
|
||||
git clone https://github.com/GSD-redux/get-shit-done-redux.git
|
||||
cd get-shit-done
|
||||
node bin/install.js --claude --local
|
||||
```
|
||||
@@ -776,18 +776,18 @@ GSD의 코드베이스 매핑 및 분석 명령어는 프로젝트를 이해하
|
||||
|
||||
**명령어가 예상대로 작동하지 않나요?**
|
||||
- `/gsd-help`를 실행해 설치 확인
|
||||
- `npx get-shit-done-cc`를 다시 실행해 재설치
|
||||
- `npx get-shit-done-redux`를 다시 실행해 재설치
|
||||
|
||||
**최신 버전으로 업데이트하나요?**
|
||||
```bash
|
||||
npx get-shit-done-cc@latest
|
||||
npx get-shit-done-redux@latest
|
||||
```
|
||||
|
||||
**Docker 또는 컨테이너 환경을 사용하나요?**
|
||||
|
||||
파일 읽기가 틸드 경로(`~/.claude/...`)로 실패하면 설치 전에 `CLAUDE_CONFIG_DIR`를 설정하세요:
|
||||
```bash
|
||||
CLAUDE_CONFIG_DIR=/home/youruser/.claude npx get-shit-done-cc --global
|
||||
CLAUDE_CONFIG_DIR=/home/youruser/.claude npx get-shit-done-redux --global
|
||||
```
|
||||
컨테이너에서 올바르게 확장되지 않을 수 있는 `~` 대신 절대 경로가 사용됩니다.
|
||||
|
||||
@@ -797,26 +797,26 @@ GSD를 완전히 제거하려면:
|
||||
|
||||
```bash
|
||||
# 전역 설치
|
||||
npx get-shit-done-cc --claude --global --uninstall
|
||||
npx get-shit-done-cc --opencode --global --uninstall
|
||||
npx get-shit-done-cc --gemini --global --uninstall
|
||||
npx get-shit-done-cc --kilo --global --uninstall
|
||||
npx get-shit-done-cc --codex --global --uninstall
|
||||
npx get-shit-done-cc --copilot --global --uninstall
|
||||
npx get-shit-done-cc --cursor --global --uninstall
|
||||
npx get-shit-done-cc --antigravity --global --uninstall
|
||||
npx get-shit-done-cc --trae --global --uninstall
|
||||
npx get-shit-done-redux --claude --global --uninstall
|
||||
npx get-shit-done-redux --opencode --global --uninstall
|
||||
npx get-shit-done-redux --gemini --global --uninstall
|
||||
npx get-shit-done-redux --kilo --global --uninstall
|
||||
npx get-shit-done-redux --codex --global --uninstall
|
||||
npx get-shit-done-redux --copilot --global --uninstall
|
||||
npx get-shit-done-redux --cursor --global --uninstall
|
||||
npx get-shit-done-redux --antigravity --global --uninstall
|
||||
npx get-shit-done-redux --trae --global --uninstall
|
||||
|
||||
# 로컬 설치 (현재 프로젝트)
|
||||
npx get-shit-done-cc --claude --local --uninstall
|
||||
npx get-shit-done-cc --opencode --local --uninstall
|
||||
npx get-shit-done-cc --gemini --local --uninstall
|
||||
npx get-shit-done-cc --kilo --local --uninstall
|
||||
npx get-shit-done-cc --codex --local --uninstall
|
||||
npx get-shit-done-cc --copilot --local --uninstall
|
||||
npx get-shit-done-cc --cursor --local --uninstall
|
||||
npx get-shit-done-cc --antigravity --local --uninstall
|
||||
npx get-shit-done-cc --trae --local --uninstall
|
||||
npx get-shit-done-redux --claude --local --uninstall
|
||||
npx get-shit-done-redux --opencode --local --uninstall
|
||||
npx get-shit-done-redux --gemini --local --uninstall
|
||||
npx get-shit-done-redux --kilo --local --uninstall
|
||||
npx get-shit-done-redux --codex --local --uninstall
|
||||
npx get-shit-done-redux --copilot --local --uninstall
|
||||
npx get-shit-done-redux --cursor --local --uninstall
|
||||
npx get-shit-done-redux --antigravity --local --uninstall
|
||||
npx get-shit-done-redux --trae --local --uninstall
|
||||
```
|
||||
|
||||
다른 설정은 그대로 유지하면서 GSD의 모든 명령어, 에이전트, 훅, 설정을 제거합니다.
|
||||
@@ -825,7 +825,7 @@ npx get-shit-done-cc --trae --local --uninstall
|
||||
|
||||
## 커뮤니티 포트
|
||||
|
||||
OpenCode, Gemini CLI, Kilo, Codex는 이제 `npx get-shit-done-cc`를 통해 기본 지원됩니다.
|
||||
OpenCode, Gemini CLI, Kilo, Codex는 이제 `npx get-shit-done-redux`를 통해 기본 지원됩니다.
|
||||
|
||||
이 커뮤니티 포트들이 멀티 런타임 지원의 선구자였습니다:
|
||||
|
||||
@@ -838,11 +838,11 @@ OpenCode, Gemini CLI, Kilo, Codex는 이제 `npx get-shit-done-cc`를 통해 기
|
||||
|
||||
## 스타 히스토리
|
||||
|
||||
<a href="https://star-history.com/#gsd-build/get-shit-done&Date">
|
||||
<a href="https://star-history.com/#GSD-redux/get-shit-done-redux&Date">
|
||||
<picture>
|
||||
<source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=gsd-build/get-shit-done&type=Date&theme=dark" />
|
||||
<source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=gsd-build/get-shit-done&type=Date" />
|
||||
<img alt="Star History Chart" src="https://api.star-history.com/svg?repos=gsd-build/get-shit-done&type=Date" />
|
||||
<source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=GSD-redux/get-shit-done-redux&type=Date&theme=dark" />
|
||||
<source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=GSD-redux/get-shit-done-redux&type=Date" />
|
||||
<img alt="Star History Chart" src="https://api.star-history.com/svg?repos=GSD-redux/get-shit-done-redux&type=Date" />
|
||||
</picture>
|
||||
</a>
|
||||
|
||||
|
||||
54
README.md
54
README.md
@@ -1,3 +1,31 @@
|
||||
> # ⚠️ This is the active fork
|
||||
>
|
||||
> The original repo at [gsd-build/get-shit-done](https://github.com/gsd-build/get-shit-done) appears compromised or abandoned. The maintainer (TÂCHES) has not been reachable since **2026-04-01**. TÂCHES social accounts appear deleted, and a **`$GSD` token associated with the project has been linked publicly to a rug-pull**.
|
||||
>
|
||||
> I have **no inside information** beyond what is publicly visible. I am stating absence-of-information deliberately — absence of news is not the same as evidence.
|
||||
>
|
||||
> ### What I can confirm
|
||||
>
|
||||
> - No contact with the original maintainer since 2026-04-01.
|
||||
> - TÂCHES social accounts appear deleted or unreachable.
|
||||
> - The `$GSD` token has been linked publicly to a rug-pull.
|
||||
> - The repo at `gsd-build/get-shit-done` continues to exist but I cannot vouch for any changes pushed there from this point forward.
|
||||
>
|
||||
> ### What changed
|
||||
>
|
||||
> | | Before | After |
|
||||
> |---|---|---|
|
||||
> | GitHub | `gsd-build/get-shit-done` | `GSD-redux/get-shit-done-redux` |
|
||||
> | npm (main) | `get-shit-done-cc` | `get-shit-done-redux` |
|
||||
> | npm (sdk) | `@gsd-build/sdk` | `@gsd-redux/sdk` |
|
||||
> | Issue numbers | per source | renumbered; original is in body as `[from gsd-build/get-shit-done#N]` |
|
||||
>
|
||||
> If you can reach the original maintainer, please open an issue here and CC them. If you have technical evidence that materially changes the picture above, please share it in an issue.
|
||||
>
|
||||
> — trek-e, fork maintainer
|
||||
>
|
||||
> ---
|
||||
|
||||
<div align="center">
|
||||
|
||||
# GET SHIT DONE
|
||||
@@ -8,19 +36,17 @@
|
||||
|
||||
**Solves context rot — the quality degradation that happens as your AI fills its context window.**
|
||||
|
||||
[](https://www.npmjs.com/package/get-shit-done-cc)
|
||||
[](https://www.npmjs.com/package/get-shit-done-cc)
|
||||
[](https://github.com/gsd-build/get-shit-done/actions/workflows/test.yml)
|
||||
[](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://discord.gg/mYgfVNfA2r)
|
||||
[](https://x.com/gsd_foundation)
|
||||
[](https://dexscreener.com/solana/dwudwjvan7bzkw9zwlbyv6kspdlvhwzrqy6ebk8xzxkv)
|
||||
[](https://github.com/gsd-build/get-shit-done)
|
||||
[](https://github.com/GSD-redux/get-shit-done-redux)
|
||||
[](LICENSE)
|
||||
|
||||
<br>
|
||||
|
||||
```bash
|
||||
npx get-shit-done-cc@latest
|
||||
npx get-shit-done-redux@latest
|
||||
```
|
||||
|
||||
**Works on Mac, Windows, and Linux.**
|
||||
@@ -131,7 +157,7 @@ Loop discuss → plan → execute → verify → ship until the milestone is don
|
||||
## Getting Started
|
||||
|
||||
```bash
|
||||
npx get-shit-done-cc@latest
|
||||
npx get-shit-done-redux@latest
|
||||
```
|
||||
|
||||
The installer prompts for your runtime (Claude Code, OpenCode, Gemini CLI, Kilo, Codex, Copilot, Cursor, Windsurf, and more) and whether to install globally or locally.
|
||||
@@ -226,12 +252,12 @@ For the full configuration reference — all settings, git branching strategies,
|
||||
|
||||
**Something broken?** Re-run the installer — it's idempotent:
|
||||
```bash
|
||||
npx get-shit-done-cc@latest
|
||||
npx get-shit-done-redux@latest
|
||||
```
|
||||
|
||||
**Containers or Docker?** Set `CLAUDE_CONFIG_DIR` before installing to avoid tilde-expansion issues:
|
||||
```bash
|
||||
CLAUDE_CONFIG_DIR=/home/youruser/.claude npx get-shit-done-cc --global
|
||||
CLAUDE_CONFIG_DIR=/home/youruser/.claude npx get-shit-done-redux --global
|
||||
```
|
||||
|
||||
Full troubleshooting and uninstall instructions in **[docs/USER-GUIDE.md](docs/USER-GUIDE.md#troubleshooting)**.
|
||||
@@ -249,11 +275,11 @@ Full troubleshooting and uninstall instructions in **[docs/USER-GUIDE.md](docs/U
|
||||
|
||||
## Star History
|
||||
|
||||
<a href="https://star-history.com/#gsd-build/get-shit-done&Date">
|
||||
<a href="https://star-history.com/#GSD-redux/get-shit-done-redux&Date">
|
||||
<picture>
|
||||
<source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=gsd-build/get-shit-done&type=Date&theme=dark" />
|
||||
<source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=gsd-build/get-shit-done&type=Date" />
|
||||
<img alt="Star History Chart" src="https://api.star-history.com/svg?repos=gsd-build/get-shit-done&type=Date" />
|
||||
<source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=GSD-redux/get-shit-done-redux&type=Date&theme=dark" />
|
||||
<source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=GSD-redux/get-shit-done-redux&type=Date" />
|
||||
<img alt="Star History Chart" src="https://api.star-history.com/svg?repos=GSD-redux/get-shit-done-redux&type=Date" />
|
||||
</picture>
|
||||
</a>
|
||||
|
||||
|
||||
122
README.pt-BR.md
122
README.pt-BR.md
@@ -1,3 +1,5 @@
|
||||
> ⚠️ This is an active fork. See the [English README](README.md) for the full notice about the original repo.
|
||||
|
||||
<div align="center">
|
||||
|
||||
# GET SHIT DONE
|
||||
@@ -8,19 +10,17 @@
|
||||
|
||||
**Resolve context rot — a degradação de qualidade que acontece conforme o Claude enche a janela de contexto.**
|
||||
|
||||
[](https://www.npmjs.com/package/get-shit-done-cc)
|
||||
[](https://www.npmjs.com/package/get-shit-done-cc)
|
||||
[](https://github.com/gsd-build/get-shit-done/actions/workflows/test.yml)
|
||||
[](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://discord.gg/mYgfVNfA2r)
|
||||
[](https://x.com/gsd_foundation)
|
||||
[](https://dexscreener.com/solana/dwudwjvan7bzkw9zwlbyv6kspdlvhwzrqy6ebk8xzxkv)
|
||||
[](https://github.com/gsd-build/get-shit-done)
|
||||
[](https://github.com/GSD-redux/get-shit-done-redux)
|
||||
[](LICENSE)
|
||||
|
||||
<br>
|
||||
|
||||
```bash
|
||||
npx get-shit-done-cc@latest
|
||||
npx get-shit-done-redux@latest
|
||||
```
|
||||
|
||||
**Funciona em Mac, Windows e Linux.**
|
||||
@@ -75,14 +75,14 @@ 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-build/get-shit-done/releases/tag/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).
|
||||
|
||||
- **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.
|
||||
- **Build & test gate pós-merge** — o passo 5.6 de `execute-phase` agora detecta automaticamente o comando de build em `workflow.build_command`, com fallback para Xcode (`.xcodeproj`), Makefile, Justfile, Cargo, Go, Python ou npm. Projetos Xcode/iOS rodam `xcodebuild build` e `xcodebuild test` automaticamente. Funciona em modo paralelo e serial.
|
||||
- **Modelo de review por runtime** — `review.models.<cli>` permite que cada CLI externa de review (codex, gemini, etc.) escolha seu próprio modelo, independente do perfil de planner/executor.
|
||||
- **Herança de configuração de workstream** — quando `GSD_WORKSTREAM` está definido, o `.planning/config.json` raiz é carregado primeiro e merge-deep com o config da workstream (workstream vence em conflito). Um `null` explícito no config da workstream sobrescreve corretamente o valor raiz.
|
||||
- **Workflow manual de canary release** — `.github/workflows/canary.yml` publica builds `{base}-canary.{N}` de `get-shit-done-cc` e `@gsd-build/sdk` na dist-tag `@canary` a partir de `dev`, sob demanda via `workflow_dispatch`.
|
||||
- **Workflow manual de canary release** — `.github/workflows/canary.yml` publica builds `{base}-canary.{N}` de `get-shit-done-redux` e `@gsd-redux/sdk` na dist-tag `@canary` a partir de `dev`, sob demanda via `workflow_dispatch`.
|
||||
- **Consolidação de skills: 86 → 59** — 4 novos skills agrupados (`capture`, `phase`, `config`, `workspace`) absorvem 31 micro-skills. 6 skills pais existentes absorvem wrap-up e sub-operações como flags: `update --sync/--reapply`, `sketch --wrap-up`, `spike --wrap-up`, `map-codebase --fast/--query`, `code-review --fix`, `progress --do/--next`. Sem perda funcional.
|
||||
|
||||
---
|
||||
@@ -90,7 +90,7 @@ Lista completa nas [notas de release v1.39.0](https://github.com/gsd-build/get-s
|
||||
## Primeiros passos
|
||||
|
||||
```bash
|
||||
npx get-shit-done-cc@latest
|
||||
npx get-shit-done-redux@latest
|
||||
```
|
||||
|
||||
O instalador pede:
|
||||
@@ -112,7 +112,7 @@ Verifique com:
|
||||
### Mantendo atualizado
|
||||
|
||||
```bash
|
||||
npx get-shit-done-cc@latest
|
||||
npx get-shit-done-redux@latest
|
||||
```
|
||||
|
||||
<details>
|
||||
@@ -120,49 +120,49 @@ npx get-shit-done-cc@latest
|
||||
|
||||
```bash
|
||||
# Claude Code
|
||||
npx get-shit-done-cc --claude --global
|
||||
npx get-shit-done-cc --claude --local
|
||||
npx get-shit-done-redux --claude --global
|
||||
npx get-shit-done-redux --claude --local
|
||||
|
||||
# OpenCode
|
||||
npx get-shit-done-cc --opencode --global
|
||||
npx get-shit-done-redux --opencode --global
|
||||
|
||||
# Gemini CLI
|
||||
npx get-shit-done-cc --gemini --global
|
||||
npx get-shit-done-redux --gemini --global
|
||||
|
||||
# Kilo
|
||||
npx get-shit-done-cc --kilo --global
|
||||
npx get-shit-done-cc --kilo --local
|
||||
npx get-shit-done-redux --kilo --global
|
||||
npx get-shit-done-redux --kilo --local
|
||||
|
||||
# Codex
|
||||
npx get-shit-done-cc --codex --global
|
||||
npx get-shit-done-cc --codex --local
|
||||
npx get-shit-done-redux --codex --global
|
||||
npx get-shit-done-redux --codex --local
|
||||
|
||||
# Copilot
|
||||
npx get-shit-done-cc --copilot --global
|
||||
npx get-shit-done-cc --copilot --local
|
||||
npx get-shit-done-redux --copilot --global
|
||||
npx get-shit-done-redux --copilot --local
|
||||
|
||||
# Cursor
|
||||
npx get-shit-done-cc --cursor --global
|
||||
npx get-shit-done-cc --cursor --local
|
||||
npx get-shit-done-redux --cursor --global
|
||||
npx get-shit-done-redux --cursor --local
|
||||
|
||||
# Antigravity
|
||||
npx get-shit-done-cc --antigravity --global
|
||||
npx get-shit-done-cc --antigravity --local
|
||||
npx get-shit-done-redux --antigravity --global
|
||||
npx get-shit-done-redux --antigravity --local
|
||||
|
||||
# Augment
|
||||
npx get-shit-done-cc --augment --global # Install to ~/.augment/
|
||||
npx get-shit-done-cc --augment --local # Install to ./.augment/
|
||||
npx get-shit-done-redux --augment --global # Install to ~/.augment/
|
||||
npx get-shit-done-redux --augment --local # Install to ./.augment/
|
||||
|
||||
# Trae
|
||||
npx get-shit-done-cc --trae --global # Install to ~/.trae/
|
||||
npx get-shit-done-cc --trae --local # Install to ./.trae/
|
||||
npx get-shit-done-redux --trae --global # Install to ~/.trae/
|
||||
npx get-shit-done-redux --trae --local # Install to ./.trae/
|
||||
|
||||
# Cline
|
||||
npx get-shit-done-cc --cline --global # Install to ~/.cline/
|
||||
npx get-shit-done-cc --cline --local # Install to ./.clinerules
|
||||
npx get-shit-done-redux --cline --global # Install to ~/.cline/
|
||||
npx get-shit-done-redux --cline --local # Install to ./.clinerules
|
||||
|
||||
# Todos
|
||||
npx get-shit-done-cc --all --global
|
||||
npx get-shit-done-redux --all --global
|
||||
```
|
||||
|
||||
Use `--global` (`-g`) ou `--local` (`-l`) para pular a pergunta de local.
|
||||
@@ -415,50 +415,50 @@ Adicione padrões sensíveis ao deny list do Claude Code:
|
||||
|
||||
**Comandos não funcionam como esperado?**
|
||||
- Rode `/gsd-help`
|
||||
- Reinstale com `npx get-shit-done-cc@latest`
|
||||
- Reinstale com `npx get-shit-done-redux@latest`
|
||||
|
||||
**Em Docker/container?**
|
||||
- Defina `CLAUDE_CONFIG_DIR` antes da instalação:
|
||||
|
||||
```bash
|
||||
CLAUDE_CONFIG_DIR=/home/youruser/.claude npx get-shit-done-cc --global
|
||||
CLAUDE_CONFIG_DIR=/home/youruser/.claude npx get-shit-done-redux --global
|
||||
```
|
||||
|
||||
### Desinstalar
|
||||
|
||||
```bash
|
||||
# Instalações globais
|
||||
npx get-shit-done-cc --claude --global --uninstall
|
||||
npx get-shit-done-cc --opencode --global --uninstall
|
||||
npx get-shit-done-cc --gemini --global --uninstall
|
||||
npx get-shit-done-cc --kilo --global --uninstall
|
||||
npx get-shit-done-cc --codex --global --uninstall
|
||||
npx get-shit-done-cc --copilot --global --uninstall
|
||||
npx get-shit-done-cc --cursor --global --uninstall
|
||||
npx get-shit-done-cc --antigravity --global --uninstall
|
||||
npx get-shit-done-cc --augment --global --uninstall
|
||||
npx get-shit-done-cc --trae --global --uninstall
|
||||
npx get-shit-done-cc --cline --global --uninstall
|
||||
npx get-shit-done-redux --claude --global --uninstall
|
||||
npx get-shit-done-redux --opencode --global --uninstall
|
||||
npx get-shit-done-redux --gemini --global --uninstall
|
||||
npx get-shit-done-redux --kilo --global --uninstall
|
||||
npx get-shit-done-redux --codex --global --uninstall
|
||||
npx get-shit-done-redux --copilot --global --uninstall
|
||||
npx get-shit-done-redux --cursor --global --uninstall
|
||||
npx get-shit-done-redux --antigravity --global --uninstall
|
||||
npx get-shit-done-redux --augment --global --uninstall
|
||||
npx get-shit-done-redux --trae --global --uninstall
|
||||
npx get-shit-done-redux --cline --global --uninstall
|
||||
|
||||
# Instalações locais (projeto atual)
|
||||
npx get-shit-done-cc --claude --local --uninstall
|
||||
npx get-shit-done-cc --opencode --local --uninstall
|
||||
npx get-shit-done-cc --gemini --local --uninstall
|
||||
npx get-shit-done-cc --kilo --local --uninstall
|
||||
npx get-shit-done-cc --codex --local --uninstall
|
||||
npx get-shit-done-cc --copilot --local --uninstall
|
||||
npx get-shit-done-cc --cursor --local --uninstall
|
||||
npx get-shit-done-cc --antigravity --local --uninstall
|
||||
npx get-shit-done-cc --augment --local --uninstall
|
||||
npx get-shit-done-cc --trae --local --uninstall
|
||||
npx get-shit-done-cc --cline --local --uninstall
|
||||
npx get-shit-done-redux --claude --local --uninstall
|
||||
npx get-shit-done-redux --opencode --local --uninstall
|
||||
npx get-shit-done-redux --gemini --local --uninstall
|
||||
npx get-shit-done-redux --kilo --local --uninstall
|
||||
npx get-shit-done-redux --codex --local --uninstall
|
||||
npx get-shit-done-redux --copilot --local --uninstall
|
||||
npx get-shit-done-redux --cursor --local --uninstall
|
||||
npx get-shit-done-redux --antigravity --local --uninstall
|
||||
npx get-shit-done-redux --augment --local --uninstall
|
||||
npx get-shit-done-redux --trae --local --uninstall
|
||||
npx get-shit-done-redux --cline --local --uninstall
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Community Ports
|
||||
|
||||
OpenCode, Gemini CLI, Kilo e Codex agora são suportados nativamente via `npx get-shit-done-cc`.
|
||||
OpenCode, Gemini CLI, Kilo e Codex agora são suportados nativamente via `npx get-shit-done-redux`.
|
||||
|
||||
| Projeto | Plataforma | Descrição |
|
||||
|---------|------------|-----------|
|
||||
@@ -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-build/get-shit-done&Date">
|
||||
<a href="https://star-history.com/#GSD-redux/get-shit-done-redux&Date">
|
||||
<picture>
|
||||
<source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=gsd-build/get-shit-done&type=Date&theme=dark" />
|
||||
<source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=gsd-build/get-shit-done&type=Date" />
|
||||
<img alt="Star History Chart" src="https://api.star-history.com/svg?repos=gsd-build/get-shit-done&type=Date" />
|
||||
<source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=GSD-redux/get-shit-done-redux&type=Date&theme=dark" />
|
||||
<source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=GSD-redux/get-shit-done-redux&type=Date" />
|
||||
<img alt="Star History Chart" src="https://api.star-history.com/svg?repos=GSD-redux/get-shit-done-redux&type=Date" />
|
||||
</picture>
|
||||
</a>
|
||||
|
||||
|
||||
130
README.zh-CN.md
130
README.zh-CN.md
@@ -1,3 +1,5 @@
|
||||
> ⚠️ This is an active fork. See the [English README](README.md) for the full notice about the original repo.
|
||||
|
||||
<div align="center">
|
||||
|
||||
# GET SHIT DONE
|
||||
@@ -8,19 +10,17 @@
|
||||
|
||||
**它解决的是 context rot:随着 Claude 的上下文窗口被填满,输出质量逐步劣化的问题。**
|
||||
|
||||
[](https://www.npmjs.com/package/get-shit-done-cc)
|
||||
[](https://www.npmjs.com/package/get-shit-done-cc)
|
||||
[](https://github.com/gsd-build/get-shit-done/actions/workflows/test.yml)
|
||||
[](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://discord.gg/mYgfVNfA2r)
|
||||
[](https://x.com/gsd_foundation)
|
||||
[](https://dexscreener.com/solana/dwudwjvan7bzkw9zwlbyv6kspdlvhwzrqy6ebk8xzxkv)
|
||||
[](https://github.com/gsd-build/get-shit-done)
|
||||
[](https://github.com/GSD-redux/get-shit-done-redux)
|
||||
[](LICENSE)
|
||||
|
||||
<br>
|
||||
|
||||
```bash
|
||||
npx get-shit-done-cc@latest
|
||||
npx get-shit-done-redux@latest
|
||||
```
|
||||
|
||||
**支持 Mac、Windows 和 Linux。**
|
||||
@@ -75,14 +75,14 @@ GSD 解决的就是这个问题。它是让 Claude Code 变得可靠的上下文
|
||||
|
||||
### v1.39.0 亮点
|
||||
|
||||
完整列表请参阅 [v1.39.0 发行说明](https://github.com/gsd-build/get-shit-done/releases/tag/v1.39.0)。
|
||||
完整列表请参阅 [v1.39.0 发行说明](https://github.com/GSD-redux/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`。
|
||||
- **合并后构建与测试门** — `execute-phase` 步骤 5.6 优先自动检测 `workflow.build_command` 配置,否则按 Xcode(`.xcodeproj`)、Makefile、Justfile、Cargo、Go、Python、npm 顺序回退。Xcode/iOS 项目自动运行 `xcodebuild build` 和 `xcodebuild test`。在并行与串行模式下均生效。
|
||||
- **每运行时评审模型选择** — `review.models.<cli>` 让每个外部评审 CLI(codex、gemini 等)独立于规划/执行档选择自己的模型。
|
||||
- **工作流设置继承** — 设置 `GSD_WORKSTREAM` 后,先加载根 `.planning/config.json`,再与该工作流的配置进行深合并(冲突时工作流优先)。工作流配置中显式 `null` 会覆盖根值。
|
||||
- **手动 canary 发布工作流** — `.github/workflows/canary.yml` 通过 `workflow_dispatch` 从 `dev` 分支按需将 `{base}-canary.{N}` 构建(`get-shit-done-cc` 与 `@gsd-build/sdk`)发布到 `@canary` dist-tag。
|
||||
- **手动 canary 发布工作流** — `.github/workflows/canary.yml` 通过 `workflow_dispatch` 从 `dev` 分支按需将 `{base}-canary.{N}` 构建(`get-shit-done-redux` 与 `@gsd-redux/sdk`)发布到 `@canary` dist-tag。
|
||||
- **技能整合:86 → 59** — 4 个新分组技能(`capture`、`phase`、`config`、`workspace`)吸收了 31 个微技能。6 个已有父技能将收尾与子操作合并为标志:`update --sync/--reapply`、`sketch --wrap-up`、`spike --wrap-up`、`map-codebase --fast/--query`、`code-review --fix`、`progress --do/--next`。功能无损失。
|
||||
|
||||
---
|
||||
@@ -90,7 +90,7 @@ GSD 解决的就是这个问题。它是让 Claude Code 变得可靠的上下文
|
||||
## 快速开始
|
||||
|
||||
```bash
|
||||
npx get-shit-done-cc@latest
|
||||
npx get-shit-done-redux@latest
|
||||
```
|
||||
|
||||
安装器会提示你选择:
|
||||
@@ -114,7 +114,7 @@ npx get-shit-done-cc@latest
|
||||
GSD 迭代很快,建议定期更新:
|
||||
|
||||
```bash
|
||||
npx get-shit-done-cc@latest
|
||||
npx get-shit-done-redux@latest
|
||||
```
|
||||
|
||||
<details>
|
||||
@@ -122,53 +122,53 @@ npx get-shit-done-cc@latest
|
||||
|
||||
```bash
|
||||
# Claude Code
|
||||
npx get-shit-done-cc --claude --global # 安装到 ~/.claude/
|
||||
npx get-shit-done-cc --claude --local # 安装到 ./.claude/
|
||||
npx get-shit-done-redux --claude --global # 安装到 ~/.claude/
|
||||
npx get-shit-done-redux --claude --local # 安装到 ./.claude/
|
||||
|
||||
# OpenCode
|
||||
npx get-shit-done-cc --opencode --global # 安装到 ~/.config/opencode/
|
||||
npx get-shit-done-redux --opencode --global # 安装到 ~/.config/opencode/
|
||||
|
||||
# Gemini CLI
|
||||
npx get-shit-done-cc --gemini --global # 安装到 ~/.gemini/
|
||||
npx get-shit-done-redux --gemini --global # 安装到 ~/.gemini/
|
||||
|
||||
# Kilo
|
||||
npx get-shit-done-cc --kilo --global # 安装到 ~/.config/kilo/
|
||||
npx get-shit-done-cc --kilo --local # 安装到 ./.kilo/
|
||||
npx get-shit-done-redux --kilo --global # 安装到 ~/.config/kilo/
|
||||
npx get-shit-done-redux --kilo --local # 安装到 ./.kilo/
|
||||
|
||||
# Codex
|
||||
npx get-shit-done-cc --codex --global # 安装到 ~/.codex/
|
||||
npx get-shit-done-cc --codex --local # 安装到 ./.codex/
|
||||
npx get-shit-done-redux --codex --global # 安装到 ~/.codex/
|
||||
npx get-shit-done-redux --codex --local # 安装到 ./.codex/
|
||||
|
||||
# Copilot
|
||||
npx get-shit-done-cc --copilot --global # 安装到 ~/.github/
|
||||
npx get-shit-done-cc --copilot --local # 安装到 ./.github/
|
||||
npx get-shit-done-redux --copilot --global # 安装到 ~/.github/
|
||||
npx get-shit-done-redux --copilot --local # 安装到 ./.github/
|
||||
|
||||
# Cursor CLI
|
||||
npx get-shit-done-cc --cursor --global # 安装到 ~/.cursor/
|
||||
npx get-shit-done-cc --cursor --local # 安装到 ./.cursor/
|
||||
npx get-shit-done-redux --cursor --global # 安装到 ~/.cursor/
|
||||
npx get-shit-done-redux --cursor --local # 安装到 ./.cursor/
|
||||
|
||||
# Antigravity
|
||||
npx get-shit-done-cc --antigravity --global # 安装到 ~/.gemini/antigravity/
|
||||
npx get-shit-done-cc --antigravity --local # 安装到 ./.agent/
|
||||
npx get-shit-done-redux --antigravity --global # 安装到 ~/.gemini/antigravity/
|
||||
npx get-shit-done-redux --antigravity --local # 安装到 ./.agent/
|
||||
|
||||
# Augment
|
||||
npx get-shit-done-cc --augment --global # 安装到 ~/.augment/
|
||||
npx get-shit-done-cc --augment --local # 安装到 ./.augment/
|
||||
npx get-shit-done-redux --augment --global # 安装到 ~/.augment/
|
||||
npx get-shit-done-redux --augment --local # 安装到 ./.augment/
|
||||
|
||||
# Trae
|
||||
npx get-shit-done-cc --trae --global # 安装到 ~/.trae/
|
||||
npx get-shit-done-cc --trae --local # 安装到 ./.trae/
|
||||
npx get-shit-done-redux --trae --global # 安装到 ~/.trae/
|
||||
npx get-shit-done-redux --trae --local # 安装到 ./.trae/
|
||||
|
||||
# CodeBuddy
|
||||
npx get-shit-done-cc --codebuddy --global # 安装到 ~/.codebuddy/
|
||||
npx get-shit-done-cc --codebuddy --local # 安装到 ./.codebuddy/
|
||||
npx get-shit-done-redux --codebuddy --global # 安装到 ~/.codebuddy/
|
||||
npx get-shit-done-redux --codebuddy --local # 安装到 ./.codebuddy/
|
||||
|
||||
# Cline
|
||||
npx get-shit-done-cc --cline --global # 安装到 ~/.cline/
|
||||
npx get-shit-done-cc --cline --local # 安装到 ./.clinerules
|
||||
npx get-shit-done-redux --cline --global # 安装到 ~/.cline/
|
||||
npx get-shit-done-redux --cline --local # 安装到 ./.clinerules
|
||||
|
||||
# 所有运行时
|
||||
npx get-shit-done-cc --all --global # 安装到所有目录
|
||||
npx get-shit-done-redux --all --global # 安装到所有目录
|
||||
```
|
||||
|
||||
使用 `--global`(`-g`)或 `--local`(`-l`)可以跳过安装位置提示。
|
||||
@@ -182,7 +182,7 @@ npx get-shit-done-cc --all --global # 安装到所有目录
|
||||
克隆仓库并在本地运行安装器:
|
||||
|
||||
```bash
|
||||
git clone https://github.com/gsd-build/get-shit-done.git
|
||||
git clone https://github.com/GSD-redux/get-shit-done-redux.git
|
||||
cd get-shit-done
|
||||
node bin/install.js --claude --local
|
||||
```
|
||||
@@ -753,18 +753,18 @@ GSD 的代码库映射和分析命令会读取文件来理解你的项目。**
|
||||
|
||||
**命令行为不符合预期?**
|
||||
- 运行 `/gsd-help` 确认安装成功
|
||||
- 重新执行 `npx get-shit-done-cc` 进行重装
|
||||
- 重新执行 `npx get-shit-done-redux` 进行重装
|
||||
|
||||
**想更新到最新版本?**
|
||||
```bash
|
||||
npx get-shit-done-cc@latest
|
||||
npx get-shit-done-redux@latest
|
||||
```
|
||||
|
||||
**在 Docker 或容器环境中使用?**
|
||||
|
||||
如果使用波浪线路径(`~/.claude/...`)时读取失败,请在安装前设置 `CLAUDE_CONFIG_DIR`:
|
||||
```bash
|
||||
CLAUDE_CONFIG_DIR=/home/youruser/.claude npx get-shit-done-cc --global
|
||||
CLAUDE_CONFIG_DIR=/home/youruser/.claude npx get-shit-done-redux --global
|
||||
```
|
||||
这样可以确保使用绝对路径,而不是在容器里可能无法正确展开的 `~`。
|
||||
|
||||
@@ -774,30 +774,30 @@ CLAUDE_CONFIG_DIR=/home/youruser/.claude npx get-shit-done-cc --global
|
||||
|
||||
```bash
|
||||
# 全局安装
|
||||
npx get-shit-done-cc --claude --global --uninstall
|
||||
npx get-shit-done-cc --opencode --global --uninstall
|
||||
npx get-shit-done-cc --gemini --global --uninstall
|
||||
npx get-shit-done-cc --kilo --global --uninstall
|
||||
npx get-shit-done-cc --codex --global --uninstall
|
||||
npx get-shit-done-cc --copilot --global --uninstall
|
||||
npx get-shit-done-cc --cursor --global --uninstall
|
||||
npx get-shit-done-cc --antigravity --global --uninstall
|
||||
npx get-shit-done-cc --augment --global --uninstall
|
||||
npx get-shit-done-cc --trae --global --uninstall
|
||||
npx get-shit-done-cc --cline --global --uninstall
|
||||
npx get-shit-done-redux --claude --global --uninstall
|
||||
npx get-shit-done-redux --opencode --global --uninstall
|
||||
npx get-shit-done-redux --gemini --global --uninstall
|
||||
npx get-shit-done-redux --kilo --global --uninstall
|
||||
npx get-shit-done-redux --codex --global --uninstall
|
||||
npx get-shit-done-redux --copilot --global --uninstall
|
||||
npx get-shit-done-redux --cursor --global --uninstall
|
||||
npx get-shit-done-redux --antigravity --global --uninstall
|
||||
npx get-shit-done-redux --augment --global --uninstall
|
||||
npx get-shit-done-redux --trae --global --uninstall
|
||||
npx get-shit-done-redux --cline --global --uninstall
|
||||
|
||||
# 本地安装(当前项目)
|
||||
npx get-shit-done-cc --claude --local --uninstall
|
||||
npx get-shit-done-cc --opencode --local --uninstall
|
||||
npx get-shit-done-cc --gemini --local --uninstall
|
||||
npx get-shit-done-cc --kilo --local --uninstall
|
||||
npx get-shit-done-cc --codex --local --uninstall
|
||||
npx get-shit-done-cc --copilot --local --uninstall
|
||||
npx get-shit-done-cc --cursor --local --uninstall
|
||||
npx get-shit-done-cc --antigravity --local --uninstall
|
||||
npx get-shit-done-cc --augment --local --uninstall
|
||||
npx get-shit-done-cc --trae --local --uninstall
|
||||
npx get-shit-done-cc --cline --local --uninstall
|
||||
npx get-shit-done-redux --claude --local --uninstall
|
||||
npx get-shit-done-redux --opencode --local --uninstall
|
||||
npx get-shit-done-redux --gemini --local --uninstall
|
||||
npx get-shit-done-redux --kilo --local --uninstall
|
||||
npx get-shit-done-redux --codex --local --uninstall
|
||||
npx get-shit-done-redux --copilot --local --uninstall
|
||||
npx get-shit-done-redux --cursor --local --uninstall
|
||||
npx get-shit-done-redux --antigravity --local --uninstall
|
||||
npx get-shit-done-redux --augment --local --uninstall
|
||||
npx get-shit-done-redux --trae --local --uninstall
|
||||
npx get-shit-done-redux --cline --local --uninstall
|
||||
```
|
||||
|
||||
这会移除所有 GSD 命令、代理、hooks 和设置,但会保留你其他配置。
|
||||
@@ -806,7 +806,7 @@ npx get-shit-done-cc --cline --local --uninstall
|
||||
|
||||
## 社区移植版本
|
||||
|
||||
OpenCode、Gemini CLI、Kilo 和 Codex 现在都已经通过 `npx get-shit-done-cc` 获得原生支持。
|
||||
OpenCode、Gemini CLI、Kilo 和 Codex 现在都已经通过 `npx get-shit-done-redux` 获得原生支持。
|
||||
|
||||
这些社区移植版本曾率先探索多运行时支持:
|
||||
|
||||
@@ -819,11 +819,11 @@ OpenCode、Gemini CLI、Kilo 和 Codex 现在都已经通过 `npx get-shit-done-
|
||||
|
||||
## Star History
|
||||
|
||||
<a href="https://star-history.com/#gsd-build/get-shit-done&Date">
|
||||
<a href="https://star-history.com/#GSD-redux/get-shit-done-redux&Date">
|
||||
<picture>
|
||||
<source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=gsd-build/get-shit-done&type=Date&theme=dark" />
|
||||
<source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=gsd-build/get-shit-done&type=Date" />
|
||||
<img alt="Star History Chart" src="https://api.star-history.com/svg?repos=gsd-build/get-shit-done&type=Date" />
|
||||
<source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=GSD-redux/get-shit-done-redux&type=Date&theme=dark" />
|
||||
<source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=GSD-redux/get-shit-done-redux&type=Date" />
|
||||
<img alt="Star History Chart" src="https://api.star-history.com/svg?repos=GSD-redux/get-shit-done-redux&type=Date" />
|
||||
</picture>
|
||||
</a>
|
||||
|
||||
|
||||
@@ -6,9 +6,9 @@ GSD follows [Semantic Versioning 2.0.0](https://semver.org/) with three release
|
||||
|
||||
| Tier | What ships | Version format | npm tag | Branch | Install |
|
||||
|------|-----------|---------------|---------|--------|---------|
|
||||
| **Patch** | Bug fixes only | `1.27.1` | `latest` | `hotfix/1.27.1` | `npx get-shit-done-cc@latest` |
|
||||
| **Minor** | Fixes + enhancements | `1.28.0` | `latest` (after RC) | `release/1.28.0` | `npx get-shit-done-cc@next` (RC) |
|
||||
| **Major** | Fixes + enhancements + features | `2.0.0` | `latest` (after beta) | `release/2.0.0` | `npx get-shit-done-cc@next` (beta) |
|
||||
| **Patch** | Bug fixes only | `1.27.1` | `latest` | `hotfix/1.27.1` | `npx get-shit-done-redux@latest` |
|
||||
| **Minor** | Fixes + enhancements | `1.28.0` | `latest` (after RC) | `release/1.28.0` | `npx get-shit-done-redux@next` (RC) |
|
||||
| **Major** | Fixes + enhancements + features | `2.0.0` | `latest` (after beta) | `release/2.0.0` | `npx get-shit-done-redux@next` (beta) |
|
||||
|
||||
## npm Dist-Tags
|
||||
|
||||
@@ -16,8 +16,8 @@ Only two tags, following Angular/Next.js convention:
|
||||
|
||||
| Tag | Meaning | Installed by |
|
||||
|-----|---------|-------------|
|
||||
| `latest` | Stable production release | `npm install get-shit-done-cc` (default) |
|
||||
| `next` | Pre-release (RC or beta) | `npm install get-shit-done-cc@next` (opt-in) |
|
||||
| `latest` | Stable production release | `npm install get-shit-done-redux` (default) |
|
||||
| `next` | Pre-release (RC or beta) | `npm install get-shit-done-redux@next` (opt-in) |
|
||||
|
||||
The version string (`-rc.1` vs `-beta.1`) communicates stability level. Users never get pre-releases unless they explicitly opt in.
|
||||
|
||||
@@ -91,7 +91,7 @@ A hotfix `vX.YY.Z` cumulatively includes everything in `vX.YY.{Z-1}` plus every
|
||||
|
||||
**Path B — `release-sdk.yml` (stopgap, one-shot):**
|
||||
|
||||
Active while the `@gsd-build/sdk` npm token is unavailable; bundles the SDK inside the CC tarball.
|
||||
Active while the `@gsd-redux/sdk` npm token is unavailable; bundles the SDK inside the CC tarball.
|
||||
|
||||
1. Trigger `release-sdk.yml` with `action=hotfix`, `version=1.27.1`, `auto_cherry_pick=true`.
|
||||
- The `prepare` job creates the branch and cherry-picks (same logic as Path A).
|
||||
@@ -107,7 +107,7 @@ For accumulated fixes and enhancements.
|
||||
1. Trigger `release.yml` with action `create` and version (e.g., `1.28.0`)
|
||||
2. Workflow creates `release/1.28.0` branch from main, bumps package.json
|
||||
3. Trigger `release.yml` with action `rc` to publish `1.28.0-rc.1` to `next`
|
||||
4. Test the RC: `npx get-shit-done-cc@next`
|
||||
4. Test the RC: `npx get-shit-done-redux@next`
|
||||
5. If issues found: fix on release branch, publish `rc.2`, `rc.3`, etc.
|
||||
6. Trigger `release.yml` with action `finalize` — publishes `1.28.0` to `latest`
|
||||
7. Merge release branch to main
|
||||
@@ -145,5 +145,5 @@ npm publish
|
||||
npm publish --tag next
|
||||
|
||||
# Verify what latest and next point to
|
||||
npm dist-tag ls get-shit-done-cc
|
||||
npm dist-tag ls get-shit-done-redux
|
||||
```
|
||||
|
||||
@@ -59,11 +59,11 @@ The /gsd:map-codebase --query command has already confirmed that intel.enabled i
|
||||
|
||||
<!-- Layout detection: only meaningful when analysing the GSD framework's own repo (#3290). -->
|
||||
|
||||
**Runtime layout detection (GSD framework repo only):** If `package.json` `"name"` equals `"get-shit-done-cc"`, this project IS the GSD framework. In that case, detect the runtime root to choose canonical paths:
|
||||
**Runtime layout detection (GSD framework repo only):** If `package.json` `"name"` equals `"get-shit-done-redux"`, this project IS the GSD framework. In that case, detect the runtime root to choose canonical paths:
|
||||
|
||||
```bash
|
||||
# Only run layout detection when analysing the GSD framework repo itself.
|
||||
if [[ "$(jq -r '.name // ""' package.json 2>/dev/null)" == "get-shit-done-cc" ]]; then
|
||||
if [[ "$(jq -r '.name // ""' package.json 2>/dev/null)" == "get-shit-done-redux" ]]; then
|
||||
ls -d .kilo 2>/dev/null && echo "kilo" || (ls -d .claude/get-shit-done 2>/dev/null && echo "claude") || echo "unknown"
|
||||
fi
|
||||
```
|
||||
|
||||
@@ -38,7 +38,7 @@
|
||||
<!-- Prompt line -->
|
||||
<text class="text prompt" font-size="15" y="0">~</text>
|
||||
<text class="text dim" font-size="15" x="16" y="0">$</text>
|
||||
<text class="text command" font-size="15" x="36" y="0">npx get-shit-done-cc</text>
|
||||
<text class="text command" font-size="15" x="36" y="0">npx get-shit-done-redux</text>
|
||||
|
||||
<!-- Banner -->
|
||||
<text class="text cyan" font-size="14" y="48" xml:space="preserve"> ██████╗ ███████╗██████╗</text>
|
||||
|
||||
|
Before Width: | Height: | Size: 3.5 KiB After Width: | Height: | Size: 3.5 KiB |
@@ -2,13 +2,13 @@
|
||||
/**
|
||||
* bin/gsd-sdk.js — back-compat shim for external callers of `gsd-sdk`.
|
||||
*
|
||||
* When the parent package is installed globally (`npm install -g get-shit-done-cc`)
|
||||
* When the parent package is installed globally (`npm install -g get-shit-done-redux`)
|
||||
* npm creates a `gsd-sdk` symlink in the global bin directory pointing at this
|
||||
* file. npm correctly chmods bin entries from a tarball, so the execute-bit
|
||||
* problem that afflicted the sub-install approach (issue #2453) cannot occur here.
|
||||
*
|
||||
* NOTE (#2775): `npx get-shit-done-cc` does NOT link this shim — npx only
|
||||
* exposes the package's primary bin (`get-shit-done-cc`). For npx-based usage,
|
||||
* NOTE (#2775): `npx get-shit-done-redux` does NOT link this shim — npx only
|
||||
* exposes the package's primary bin (`get-shit-done-redux`). For npx-based usage,
|
||||
* the installer (`bin/install.js#installSdkIfNeeded`) self-symlinks `gsd-sdk`
|
||||
* into `~/.local/bin` when needed and verifies PATH callability before
|
||||
* reporting `✓ GSD SDK ready`.
|
||||
@@ -19,7 +19,7 @@
|
||||
*
|
||||
* Call sites (slash commands, agent prompts, hook scripts) continue to work without
|
||||
* changes because `gsd-sdk` still resolves on PATH — it just comes from this shim
|
||||
* in the parent package rather than from a separately installed @gsd-build/sdk.
|
||||
* in the parent package rather than from a separately installed @gsd-redux/sdk.
|
||||
*/
|
||||
|
||||
'use strict';
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -120,7 +120,7 @@ User-facing entry points. Each file contains YAML frontmatter (name, description
|
||||
|
||||
**Total commands:** see [`docs/INVENTORY.md`](INVENTORY.md#commands) for the authoritative count and full roster.
|
||||
|
||||
#### Two-stage hierarchical routing (v1.40, [#2792](https://github.com/gsd-build/get-shit-done/issues/2792))
|
||||
#### Two-stage hierarchical routing (v1.40, [#2792](https://github.com/GSD-redux/get-shit-done-redux/issues/2792))
|
||||
|
||||
To keep the eager skill-listing token cost low, v1.40 introduces six namespace **meta-skills** (`gsd-workflow`, `gsd-project`, `gsd-quality`, `gsd-context`, `gsd-manage`, `gsd-ideate` — sourced from `commands/gsd/ns-*.md`, but the invocable `name:` is the bare form shown here) layered above the concrete sub-skills. The model sees 6 namespace routers (~120 tokens) instead of a flat 86-skill listing (~2,150 tokens), selects a namespace, then routes to the concrete sub-skill via a routing table embedded in the namespace router's body. Namespace skills are **additive** — every concrete command is still directly invocable.
|
||||
|
||||
|
||||
@@ -20,13 +20,13 @@ A canary build NEVER becomes a `next` build directly, and a `next` build NEVER b
|
||||
|
||||
```bash
|
||||
# One-off invocation (npx)
|
||||
npx get-shit-done-cc@canary
|
||||
npx get-shit-done-redux@canary
|
||||
|
||||
# Pin to the canary dist-tag globally
|
||||
npm install -g get-shit-done-cc@canary
|
||||
npm install -g get-shit-done-redux@canary
|
||||
|
||||
# Pin to an exact canary version
|
||||
npm install -g get-shit-done-cc@1.50.0-canary.1
|
||||
npm install -g get-shit-done-redux@1.50.0-canary.1
|
||||
```
|
||||
|
||||
The CC installer's defensive purge rewrites stale config blocks left by older GSD versions, so reinstalling on top of an existing project is safe.
|
||||
@@ -47,20 +47,20 @@ The CC installer's defensive purge rewrites stale config blocks left by older GS
|
||||
|
||||
```bash
|
||||
# Back to the current stable
|
||||
npm install -g get-shit-done-cc@latest
|
||||
npm install -g get-shit-done-redux@latest
|
||||
|
||||
# Or to the next/RC train
|
||||
npm install -g get-shit-done-cc@next
|
||||
npm install -g get-shit-done-redux@next
|
||||
```
|
||||
|
||||
If you have a local project that interacted with canary-only features (for instance, an MVP-mode phase planned by 1.50.0-canary), the planner artifacts in `.planning/` remain valid — older GSD versions will just ignore the `**Mode:** mvp` field on phases.
|
||||
|
||||
## Reporting issues against canary
|
||||
|
||||
File against the [issue tracker](https://github.com/gsd-build/get-shit-done/issues) with the `bug` template. Include the exact canary version (`get-shit-done-cc --version` reports it) so triage can route the report back into the `dev` stream rather than the stable stream.
|
||||
File against the [issue tracker](https://github.com/GSD-redux/get-shit-done-redux/issues) with the `bug` template. Include the exact canary version (`get-shit-done-redux --version` reports it) so triage can route the report back into the `dev` stream rather than the stable stream.
|
||||
|
||||
## Where to look next
|
||||
|
||||
- Active canary release notes: [`docs/RELEASE-v1.50.0-canary.1.md`](RELEASE-v1.50.0-canary.1.md)
|
||||
- Stable release notes: [`CHANGELOG.md`](../CHANGELOG.md)
|
||||
- Stream architecture rationale: discussed across [#2727](https://github.com/gsd-build/get-shit-done/issues/2727), [#2773](https://github.com/gsd-build/get-shit-done/issues/2773) (codex schema-break and the resulting promotion bottleneck that motivated explicit stream isolation)
|
||||
- Stream architecture rationale: discussed across [#2727](https://github.com/GSD-redux/get-shit-done-redux/issues/2727), [#2773](https://github.com/GSD-redux/get-shit-done-redux/issues/2773) (codex schema-break and the resulting promotion bottleneck that motivated explicit stream isolation)
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# GSD CLI Tools Reference
|
||||
|
||||
> Surface-area reference for `get-shit-done/bin/gsd-tools.cjs` (legacy Node CLI). Workflows and agents should prefer `gsd-sdk query` or `@gsd-build/sdk` where a handler exists — see [SDK and programmatic access](#sdk-and-programmatic-access). For slash commands and user flows, see [Command Reference](COMMANDS.md).
|
||||
> Surface-area reference for `get-shit-done/bin/gsd-tools.cjs` (legacy Node CLI). Workflows and agents should prefer `gsd-sdk query` or `@gsd-redux/sdk` where a handler exists — see [SDK and programmatic access](#sdk-and-programmatic-access). For slash commands and user flows, see [Command Reference](COMMANDS.md).
|
||||
|
||||
---
|
||||
|
||||
@@ -43,7 +43,7 @@ Use this when authoring workflows, not when you only need the command list below
|
||||
- Resolves argv with the same **longest-prefix** rules as the typed registry (`resolveQueryArgv` in `sdk/src/query/registry.ts`). Unregistered commands **fail fast** — use `node …/gsd-tools.cjs` only for handlers not in the registry.
|
||||
- Full matrix (CJS command → registry key, CLI-only tools, aliases, golden tiers): [sdk/src/query/QUERY-HANDLERS.md](../sdk/src/query/QUERY-HANDLERS.md).
|
||||
|
||||
**2. TypeScript — `@gsd-build/sdk` (`GSDTools`, `createRegistry`)**
|
||||
**2. TypeScript — `@gsd-redux/sdk` (`GSDTools`, `createRegistry`)**
|
||||
|
||||
- `GSDTools` now routes through the **SDK Runtime Bridge Module** (`sdk/src/query-runtime-bridge.ts`). Native registry dispatch is preferred; subprocess fallback is explicit policy (`allowFallbackToSubprocess`) and can be disabled for strict SDK-only execution.
|
||||
- `strictSdk` mode fails fast when a command has no native adapter, making SDK publish/readiness checks deterministic.
|
||||
|
||||
@@ -16,7 +16,7 @@ The hyphen and colon forms are *runtime-specific spellings of the same command*.
|
||||
|
||||
## Namespace Meta-Skills
|
||||
|
||||
Six namespace routers ship as the first-stage entry points in v1.40. They keep the eager skill-listing token cost low (~120 tokens for 6 routers vs ~2,150 for a flat 86-skill listing) while the full surface remains directly invocable. The model selects a namespace, then routes to the concrete sub-skill. See [#2792](https://github.com/gsd-build/get-shit-done/issues/2792).
|
||||
Six namespace routers ship as the first-stage entry points in v1.40. They keep the eager skill-listing token cost low (~120 tokens for 6 routers vs ~2,150 for a flat 86-skill listing) while the full surface remains directly invocable. The model selects a namespace, then routes to the concrete sub-skill. See [#2792](https://github.com/GSD-redux/get-shit-done-redux/issues/2792).
|
||||
|
||||
| Command | Routes to |
|
||||
|---------|-----------|
|
||||
@@ -757,7 +757,7 @@ Generate a developer behavioral profile from Claude Code session analysis across
|
||||
|
||||
Validate `.planning/` directory integrity. With `--context`, probes the
|
||||
context-window utilization guard against the 60 % / 70 % thresholds (added
|
||||
v1.40.0, [#2792](https://github.com/gsd-build/get-shit-done/issues/2792)).
|
||||
v1.40.0, [#2792](https://github.com/GSD-redux/get-shit-done-redux/issues/2792)).
|
||||
|
||||
| Flag | Description |
|
||||
|------|-------------|
|
||||
|
||||
@@ -136,11 +136,11 @@ GSD stores project settings in `.planning/config.json`. Created during `/gsd-new
|
||||
|---------|------|---------|---------|-------------|
|
||||
| `mode` | enum | `interactive`, `yolo` | `interactive` | `yolo` auto-approves decisions; `interactive` confirms at each step |
|
||||
| `granularity` | enum | `coarse`, `standard`, `fine` | `standard` | Controls phase count: `coarse` (3-5), `standard` (5-8), `fine` (8-12) |
|
||||
| `model_profile` | enum | `quality`, `balanced`, `budget`, `adaptive`, `inherit` | `balanced` | Model tier for each agent (see [Model Profiles](#model-profiles)). `adaptive` was added per [#1713](https://github.com/gsd-build/get-shit-done/issues/1713) / [#1806](https://github.com/gsd-build/get-shit-done/issues/1806) and resolves the same way as the other tiers under runtime-aware profiles. |
|
||||
| `runtime` | string | `claude`, `codex`, or any string | (none) | Active runtime for [runtime-aware profile resolution](#runtime-aware-profiles-2517). When set, profile tiers (opus/sonnet/haiku) resolve to runtime-native model IDs. Today only the Codex install path emits per-agent model IDs from this resolver; other runtimes (`opencode`, `gemini`, `qwen`, `copilot`, …) consume the resolver at spawn time and gain dedicated install-path support in [#2612](https://github.com/gsd-build/get-shit-done/issues/2612). When unset (default), behavior is unchanged from prior versions. Added in v1.39 |
|
||||
| `model_profile` | enum | `quality`, `balanced`, `budget`, `adaptive`, `inherit` | `balanced` | Model tier for each agent (see [Model Profiles](#model-profiles)). `adaptive` was added per [#1713](https://github.com/GSD-redux/get-shit-done-redux/issues/1713) / [#1806](https://github.com/GSD-redux/get-shit-done-redux/issues/1806) and resolves the same way as the other tiers under runtime-aware profiles. |
|
||||
| `runtime` | string | `claude`, `codex`, or any string | (none) | Active runtime for [runtime-aware profile resolution](#runtime-aware-profiles-2517). When set, profile tiers (opus/sonnet/haiku) resolve to runtime-native model IDs. Today only the Codex install path emits per-agent model IDs from this resolver; other runtimes (`opencode`, `gemini`, `qwen`, `copilot`, …) consume the resolver at spawn time and gain dedicated install-path support in [#2612](https://github.com/GSD-redux/get-shit-done-redux/issues/2612). When unset (default), behavior is unchanged from prior versions. Added in v1.39 |
|
||||
| `model_profile_overrides.<runtime>.<tier>` | string \| object | per-runtime tier override | (none) | Override the runtime-aware tier mapping for a specific `(runtime, tier)`. Tier is one of `opus`, `sonnet`, `haiku`. Value is either a model ID string (e.g. `"gpt-5-pro"`) or `{ model, reasoning_effort }`. See [Runtime-Aware Profiles](#runtime-aware-profiles-2517). Added in v1.39 |
|
||||
| `models.<phase_type>` | enum | `opus`, `sonnet`, `haiku`, `inherit` | (none) | Per-phase-type model tier. Six accepted slots: `planning`, `discuss`, `research`, `execution`, `verification`, `completion`. Lets you tune at the phase level ("Opus for planning, Sonnet for the rest") without learning agent names. Resolves between `model_overrides` (higher) and `model_profile` (lower); see [Per-Phase-Type Models](#per-phase-type-models-models--added-in-v140). Added in v1.40 ([#3023](https://github.com/gsd-build/get-shit-done/pull/3030)) |
|
||||
| `dynamic_routing.enabled` | boolean | `true`, `false` | `false` | Master switch for [dynamic routing with failure-tier escalation](#dynamic-routing-with-failure-tier-escalation-dynamic_routing--added-in-v140). When `true`, agents resolve to `tier_models[default_tier]` and escalate one tier up on orchestrator-detected soft failure. Added in v1.40 ([#3024](https://github.com/gsd-build/get-shit-done/pull/3031)) |
|
||||
| `models.<phase_type>` | enum | `opus`, `sonnet`, `haiku`, `inherit` | (none) | Per-phase-type model tier. Six accepted slots: `planning`, `discuss`, `research`, `execution`, `verification`, `completion`. Lets you tune at the phase level ("Opus for planning, Sonnet for the rest") without learning agent names. Resolves between `model_overrides` (higher) and `model_profile` (lower); see [Per-Phase-Type Models](#per-phase-type-models-models--added-in-v140). Added in v1.40 ([#3023](https://github.com/GSD-redux/get-shit-done-redux/pull/3030)) |
|
||||
| `dynamic_routing.enabled` | boolean | `true`, `false` | `false` | Master switch for [dynamic routing with failure-tier escalation](#dynamic-routing-with-failure-tier-escalation-dynamic_routing--added-in-v140). When `true`, agents resolve to `tier_models[default_tier]` and escalate one tier up on orchestrator-detected soft failure. Added in v1.40 ([#3024](https://github.com/GSD-redux/get-shit-done-redux/pull/3031)) |
|
||||
| `dynamic_routing.tier_models.<tier>` | enum | `opus`, `sonnet`, `haiku` | (none) | Tier alias for `light`, `standard`, or `heavy`. Used when `dynamic_routing.enabled: true`. Added in v1.40 |
|
||||
| `dynamic_routing.escalate_on_failure` | boolean | `true`, `false` | `true` | When `false`, escalation is disabled even if `enabled: true` — every attempt uses the default tier. Added in v1.40 |
|
||||
| `dynamic_routing.max_escalations` | integer | `0`, `1`, `2`, … | `1` | Hard cap on retries per agent invocation. Beyond the cap the resolver returns the cap-tier model. Added in v1.40 |
|
||||
@@ -258,7 +258,7 @@ All workflow toggles follow the **absent = enabled** pattern. If a key is missin
|
||||
| `executor.stall_detect_interval_minutes` | number | `5` | Minutes between executor stall checks while an executor agent is active. The execute-phase orchestrator uses this cadence to inspect recent commits and avoid waiting forever on a silent agent. |
|
||||
| `executor.stall_threshold_minutes` | number | `10` | Minutes without executor completion or expected-branch commit activity before execute-phase offers recovery choices for a possible stalled executor. |
|
||||
| `workflow.inline_plan_threshold` | number | `3` | Maximum number of tasks in a phase before the planner generates a separate PLAN.md file instead of inlining tasks in the prompt |
|
||||
| `workflow.drift_threshold` | number | `3` | Minimum number of new structural elements (new directories, barrel exports, migrations, route modules) introduced during a phase before the post-execute codebase-drift gate takes action. See [#2003](https://github.com/gsd-build/get-shit-done/issues/2003). Added in v1.39 |
|
||||
| `workflow.drift_threshold` | number | `3` | Minimum number of new structural elements (new directories, barrel exports, migrations, route modules) introduced during a phase before the post-execute codebase-drift gate takes action. See [#2003](https://github.com/GSD-redux/get-shit-done-redux/issues/2003). Added in v1.39 |
|
||||
| `workflow.drift_action` | string | `warn` | What to do when `workflow.drift_threshold` is exceeded after `/gsd-execute-phase`. `warn` prints a message suggesting `/gsd-map-codebase --paths …`; `auto-remap` spawns `gsd-codebase-mapper` scoped to the affected paths. Added in v1.39 |
|
||||
| `workflow.build_command` | string | (none) | Shell command to build the project in the post-merge build gate (Step A of step 5.6 in execute-phase). When unset, the gate auto-detects: Xcode (`.xcodeproj` present) → `xcodebuild build`, `Makefile` with `build:` target → `make build`, Justfile → `just build`, `Cargo.toml` → `cargo build`, `go.mod` → `go build ./...`, Python → `python -m py_compile`, `package.json` with `build` script → `npm run build`. Runs with a 5-minute timeout; failure increments `WAVE_FAILURE_COUNT`. Added in v1.39 |
|
||||
| `workflow.test_command` | string | (none) | Shell command to run the project's test suite in the post-merge test gate (Step B of step 5.6 in execute-phase) and the regression gate. When unset, the gate auto-detects: Xcode (`.xcodeproj` present) → `xcodebuild test`, `Makefile` with `test:` target → `make test`, Justfile → `just test`, `package.json` → `npm test`, `Cargo.toml` → `cargo test`, `go.mod` → `go test ./...`, Python → `python -m pytest`. Runs with a 5-minute timeout; failure increments `WAVE_FAILURE_COUNT`. Added in v1.39 |
|
||||
@@ -811,7 +811,7 @@ for the change to take effect. See issue #2256.
|
||||
|
||||
### Per-Phase-Type Models (`models`) — added in v1.41
|
||||
|
||||
> Express tuning at the **phase** level (planning, research, execution, verification) without learning the agent taxonomy. Added in [#3023](https://github.com/gsd-build/get-shit-done/pull/3030).
|
||||
> Express tuning at the **phase** level (planning, research, execution, verification) without learning the agent taxonomy. Added in [#3023](https://github.com/GSD-redux/get-shit-done-redux/pull/3030).
|
||||
|
||||
`model_overrides` is per-**agent** (precise but verbose; you have to know that `gsd-codebase-mapper` is research and `gsd-doc-writer` is execution). The `models` block lets you say "Opus for planning and execution, Sonnet for the rest" in two lines:
|
||||
|
||||
@@ -895,7 +895,7 @@ Direct edits to `.planning/config.json` are looser — the resolver simply ignor
|
||||
|
||||
### Dynamic Routing with Failure-Tier Escalation (`dynamic_routing`) — added in v1.41
|
||||
|
||||
> Start cheap, escalate only when the agent fails the gate. Added in [#3024](https://github.com/gsd-build/get-shit-done/pull/3031).
|
||||
> Start cheap, escalate only when the agent fails the gate. Added in [#3024](https://github.com/GSD-redux/get-shit-done-redux/pull/3031).
|
||||
|
||||
`dynamic_routing` lets you pay for the cheap tier by default and only escalate to the more expensive tier when the orchestrator detects a soft failure (verification inconclusive, plan-check FLAG, etc.).
|
||||
|
||||
@@ -974,7 +974,7 @@ The `dynamic_routing` block is **disabled by default** — `enabled: false` (or
|
||||
|
||||
### Non-Claude Runtimes (Codex, OpenCode, Gemini CLI, Kilo)
|
||||
|
||||
> **Codex CLI minimum supported version: `0.130.0`** (issue [#3562](https://github.com/gsd-build/get-shit-done/issues/3562)).
|
||||
> **Codex CLI minimum supported version: `0.130.0`** (issue [#3562](https://github.com/GSD-redux/get-shit-done-redux/issues/3562)).
|
||||
>
|
||||
> [Codex CLI 0.130.0](https://github.com/openai/codex/releases/tag/rust-v0.130.0) (released 2026-05-08) removed extra-skills-roots discovery via [openai/codex#21485](https://github.com/openai/codex/pull/21485). From this version forward, Codex CLI only scans `~/.codex/skills/<name>/SKILL.md`, `<project>/.codex/skills/`, and registered plugin roots for invocable skills. GSD installs the `$gsd-*` surface as `~/.codex/skills/gsd-<name>/SKILL.md` so commands resolve after a Codex restart. Earlier Codex CLI versions can show a duplicate listing (the legacy extra-roots scan plus the user-root copies) — restart Codex and either upgrade to ≥ 0.130.0 or accept the duplicates until you do.
|
||||
|
||||
|
||||
@@ -1054,7 +1054,7 @@ When the user declines (or keeps a non-GSD) statusline, the installer offers a S
|
||||
GSD update available: 1.39.0 → 1.40.0. Run /gsd-update.
|
||||
```
|
||||
|
||||
The banner is silent when up-to-date and rate-limits "check failed" diagnostics to once per 24 hours. Removed cleanly by `npx get-shit-done-cc --uninstall` or by deleting the SessionStart entry that references `gsd-update-banner.js`.
|
||||
The banner is silent when up-to-date and rate-limits "check failed" diagnostics to once per 24 hours. Removed cleanly by `npx get-shit-done-redux --uninstall` or by deleting the SessionStart entry that references `gsd-update-banner.js`.
|
||||
|
||||
### 38. Developer Profiling
|
||||
|
||||
@@ -1436,7 +1436,7 @@ Test suite that scans all agent, workflow, and command files for embedded inject
|
||||
|
||||
### 55. Multi-Runtime Installer Selection
|
||||
|
||||
**Part of:** `npx get-shit-done-cc`
|
||||
**Part of:** `npx get-shit-done-redux`
|
||||
|
||||
**Purpose:** Select multiple runtimes in a single interactive install session.
|
||||
|
||||
@@ -1455,7 +1455,7 @@ Test suite that scans all agent, workflow, and command files for embedded inject
|
||||
|
||||
### 56. Windsurf Runtime Support
|
||||
|
||||
**Part of:** `npx get-shit-done-cc`
|
||||
**Part of:** `npx get-shit-done-redux`
|
||||
|
||||
**Purpose:** Add Windsurf as a supported AI CLI runtime for GSD installation and execution.
|
||||
|
||||
@@ -1695,7 +1695,7 @@ Test suite that scans all agent, workflow, and command files for embedded inject
|
||||
|
||||
### 68. Claude Code Skills Migration
|
||||
|
||||
**Part of:** `npx get-shit-done-cc`
|
||||
**Part of:** `npx get-shit-done-redux`
|
||||
|
||||
**Purpose:** Migrate GSD commands to Claude Code 2.1.88+ skills format with backward compatibility.
|
||||
|
||||
@@ -1959,7 +1959,7 @@ Test suite that scans all agent, workflow, and command files for embedded inject
|
||||
|
||||
### 85. New Runtime Support (Trae, Cline, Augment Code)
|
||||
|
||||
**Part of:** `npx get-shit-done-cc`
|
||||
**Part of:** `npx get-shit-done-redux`
|
||||
|
||||
**Purpose:** Extend GSD installation to Trae IDE, Cline, and Augment Code runtimes.
|
||||
|
||||
@@ -2301,7 +2301,7 @@ Test suite that scans all agent, workflow, and command files for embedded inject
|
||||
|
||||
### 104. New Runtime Support (Cline, CodeBuddy, Qwen Code)
|
||||
|
||||
**Part of:** `npx get-shit-done-cc`
|
||||
**Part of:** `npx get-shit-done-redux`
|
||||
|
||||
**Purpose:** Extend GSD installation to Cline, CodeBuddy, and Qwen Code runtimes.
|
||||
|
||||
@@ -2644,7 +2644,7 @@ Users who run a memory / knowledge-base MCP server (for example, ExoCortex-style
|
||||
- REQ-CONSOLIDATE-03: Deleted micro-skill slash forms (the bare `gsd-add-todo`, `gsd-add-backlog`, `gsd-plant-seed`, `gsd-check-todos`, `gsd-add-phase`, `gsd-insert-phase`, `gsd-remove-phase`, `gsd-edit-phase`, `gsd-new-workspace`, `gsd-list-workspaces`, `gsd-remove-workspace`, `gsd-settings-advanced`, `gsd-settings-integrations`, `gsd-set-profile`, `gsd-sketch-wrap-up`, `gsd-spike-wrap-up`, `gsd-reapply-patches`, `gsd-code-review-fix`, …) MUST resolve to "Unknown command" — no shadow stubs.
|
||||
- REQ-CONSOLIDATE-04: `autonomous.md` invokes `/gsd-code-review --fix` (was previously calling the deleted `gsd-code-review-fix`).
|
||||
|
||||
**Reference issue:** [#2790](https://github.com/gsd-build/get-shit-done/issues/2790)
|
||||
**Reference issue:** [#2790](https://github.com/GSD-redux/get-shit-done-redux/issues/2790)
|
||||
|
||||
---
|
||||
|
||||
@@ -2672,7 +2672,7 @@ Users who run a memory / knowledge-base MCP server (for example, ExoCortex-style
|
||||
- REQ-NS-02: Existing sub-skills are unchanged and still invocable directly — namespace skills are additive, not a replacement for direct slash forms.
|
||||
- REQ-NS-03: The body of each namespace router contains a routing table that maps user intent to the correct concrete sub-skill on the post-#2790 consolidated surface.
|
||||
|
||||
**Reference issue:** [#2792](https://github.com/gsd-build/get-shit-done/issues/2792)
|
||||
**Reference issue:** [#2792](https://github.com/GSD-redux/get-shit-done-redux/issues/2792)
|
||||
|
||||
---
|
||||
|
||||
@@ -2687,7 +2687,7 @@ Users who run a memory / knowledge-base MCP server (for example, ExoCortex-style
|
||||
- REQ-CTX-GUARD-02: The same triage is exposed as `gsd-sdk query validate.context --tokens-used <int> --context-window <int>` — a structured envelope for status-line and hook callers (#125). Both flags are required; the handler returns the same `{ percent, state }` envelope as the pure classifier in REQ-CTX-GUARD-03.
|
||||
- REQ-CTX-GUARD-03: The classifier (`bin/lib/context-utilization.cjs`) is pure: input `(tokensUsed, contextWindow)`, output `{ percent, state }`. Easy to unit-test, easy to reuse from any caller.
|
||||
|
||||
**Reference issue:** [#2792](https://github.com/gsd-build/get-shit-done/issues/2792)
|
||||
**Reference issue:** [#2792](https://github.com/GSD-redux/get-shit-done-redux/issues/2792)
|
||||
|
||||
---
|
||||
|
||||
@@ -2704,7 +2704,7 @@ Users who run a memory / knowledge-base MCP server (for example, ExoCortex-style
|
||||
- REQ-LIFECYCLE-02: `formatGsdState()` checks the lifecycle fields in priority order and emits the first matching scene (Phase active → Idle next-recommended → Milestone complete → Default fallback).
|
||||
- REQ-LIFECYCLE-03: All four fields default to undefined; existing STATE.md files render byte-for-byte identically.
|
||||
|
||||
**Reference issue:** [#2833](https://github.com/gsd-build/get-shit-done/issues/2833) — see [`docs/STATE-MD-LIFECYCLE.md`](STATE-MD-LIFECYCLE.md) for the full field reference and rendering rules.
|
||||
**Reference issue:** [#2833](https://github.com/GSD-redux/get-shit-done-redux/issues/2833) — see [`docs/STATE-MD-LIFECYCLE.md`](STATE-MD-LIFECYCLE.md) for the full field reference and rendering rules.
|
||||
|
||||
---
|
||||
|
||||
@@ -2744,7 +2744,7 @@ Users who run a memory / knowledge-base MCP server (for example, ExoCortex-style
|
||||
- REQ-PHASE-MODELS-02: Configs without a `models` block behave byte-for-byte identically to pre-v1.41 behavior.
|
||||
- REQ-PHASE-MODELS-03: `discuss` and `completion` are accepted by the schema for forward compatibility; setting them today is a no-op until a subagent maps to each.
|
||||
|
||||
**Reference issue:** [#3023](https://github.com/gsd-build/get-shit-done/pull/3030)
|
||||
**Reference issue:** [#3023](https://github.com/GSD-redux/get-shit-done-redux/pull/3030)
|
||||
|
||||
---
|
||||
|
||||
@@ -2765,7 +2765,7 @@ Users who run a memory / knowledge-base MCP server (for example, ExoCortex-style
|
||||
- REQ-DYNROUTE-02: New resolver `resolveModelForTier(cwd, agent, attempt)` in `core.cjs` is the single call-site for orchestrator integration.
|
||||
- REQ-DYNROUTE-03: `max_escalations` caps the escalation chain to prevent runaway cost.
|
||||
|
||||
**Reference issue:** [#3024](https://github.com/gsd-build/get-shit-done/pull/3031)
|
||||
**Reference issue:** [#3024](https://github.com/GSD-redux/get-shit-done-redux/pull/3031)
|
||||
|
||||
---
|
||||
|
||||
@@ -2778,14 +2778,14 @@ Users who run a memory / knowledge-base MCP server (for example, ExoCortex-style
|
||||
- The hook reads the existing `~/.cache/gsd/gsd-update-check.json` cache — the same cache used by the statusline — and prints a banner only when an update is available.
|
||||
- Silent when up-to-date.
|
||||
- Failure diagnostics rate-limited to once per 24 h.
|
||||
- Cleanly removed by `npx get-shit-done-cc --uninstall`.
|
||||
- Cleanly removed by `npx get-shit-done-redux --uninstall`.
|
||||
|
||||
**Requirements:**
|
||||
- REQ-BANNER-01: Banner does not install without explicit opt-in.
|
||||
- REQ-BANNER-02: No additional network requests — reuses the existing background update-check cache.
|
||||
- REQ-BANNER-03: Uninstall path removes the banner hook.
|
||||
|
||||
**Reference issue:** [#2795](https://github.com/gsd-build/get-shit-done/pull/2795)
|
||||
**Reference issue:** [#2795](https://github.com/GSD-redux/get-shit-done-redux/pull/2795)
|
||||
|
||||
---
|
||||
|
||||
@@ -2804,7 +2804,7 @@ Users who run a memory / knowledge-base MCP server (for example, ExoCortex-style
|
||||
|
||||
No new commands or daemon process — purely a documentation artifact that maps existing primitives onto a tracker-driven workflow.
|
||||
|
||||
**Reference issue:** [#2840](https://github.com/gsd-build/get-shit-done/pull/2840)
|
||||
**Reference issue:** [#2840](https://github.com/GSD-redux/get-shit-done-redux/pull/2840)
|
||||
|
||||
---
|
||||
|
||||
@@ -2832,7 +2832,7 @@ Source commit: abc1234 (3 commits behind HEAD)
|
||||
|
||||
**Fallback:** pre-v0.7 graphs and non-git checkouts return `commit_stale: null`; callers fall back to the existing mtime-based `stale` flag. No behavior change for existing users.
|
||||
|
||||
**Reference issue:** [#3170](https://github.com/gsd-build/get-shit-done/issues/3170)
|
||||
**Reference issue:** [#3170](https://github.com/GSD-redux/get-shit-done-redux/issues/3170)
|
||||
|
||||
---
|
||||
|
||||
@@ -2853,7 +2853,7 @@ CLI flag → ROADMAP `**Mode:** mvp` → `workflow.mvp_mode` config → `false`
|
||||
|
||||
**Bug fix:** `roadmap.get-phase --pick mode` in the SDK's `roadmap.ts` previously returned `null` for phases with `**Mode:** mvp`, causing MVP_MODE to silently fall through to false on the native dispatch path. Restores parity with the CJS implementation.
|
||||
|
||||
**Reference issue:** [#3178](https://github.com/gsd-build/get-shit-done/pull/3178)
|
||||
**Reference issue:** [#3178](https://github.com/GSD-redux/get-shit-done-redux/pull/3178)
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -60,7 +60,7 @@ Full roster at `commands/gsd/*.md`. The groupings below mirror `docs/COMMANDS.md
|
||||
|
||||
### Namespace Meta-Skills
|
||||
|
||||
These six routers are descriptor-only entries that the model picks first; the body of each contains a routing table that points at the correct concrete sub-skill. They exist to keep the eager skill-listing token cost low while the full surface remains reachable. See [#2792](https://github.com/gsd-build/get-shit-done/issues/2792) for the rationale; the routing tables target the post-[#2790](https://github.com/gsd-build/get-shit-done/issues/2790) consolidated surface.
|
||||
These six routers are descriptor-only entries that the model picks first; the body of each contains a routing table that points at the correct concrete sub-skill. They exist to keep the eager skill-listing token cost low while the full surface remains reachable. See [#2792](https://github.com/GSD-redux/get-shit-done-redux/issues/2792) for the rationale; the routing tables target the post-[#2790](https://github.com/GSD-redux/get-shit-done-redux/issues/2790) consolidated surface.
|
||||
|
||||
| Command | Role | Source |
|
||||
|---------|------|--------|
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
Pre-release candidate. Published to npm under the `next` tag.
|
||||
|
||||
```
|
||||
npx get-shit-done-cc@next
|
||||
npx get-shit-done-redux@next
|
||||
```
|
||||
|
||||
---
|
||||
@@ -62,16 +62,16 @@ The installer now:
|
||||
|
||||
```bash
|
||||
# npm
|
||||
npm install -g get-shit-done-cc@next
|
||||
npm install -g get-shit-done-redux@next
|
||||
|
||||
# npx (one-shot)
|
||||
npx get-shit-done-cc@next
|
||||
npx get-shit-done-redux@next
|
||||
```
|
||||
|
||||
To pin to this exact RC:
|
||||
|
||||
```bash
|
||||
npm install -g get-shit-done-cc@1.39.0-rc.4
|
||||
npm install -g get-shit-done-redux@1.39.0-rc.4
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
Pre-release candidate. Published to npm under the `next` tag.
|
||||
|
||||
```bash
|
||||
npx get-shit-done-cc@next
|
||||
npx get-shit-done-redux@next
|
||||
```
|
||||
|
||||
---
|
||||
@@ -77,16 +77,16 @@ The installer now:
|
||||
|
||||
```bash
|
||||
# npm
|
||||
npm install -g get-shit-done-cc@next
|
||||
npm install -g get-shit-done-redux@next
|
||||
|
||||
# npx (one-shot)
|
||||
npx get-shit-done-cc@next
|
||||
npx get-shit-done-redux@next
|
||||
```
|
||||
|
||||
To pin to this exact RC:
|
||||
|
||||
```bash
|
||||
npm install -g get-shit-done-cc@1.39.0-rc.5
|
||||
npm install -g get-shit-done-redux@1.39.0-rc.5
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
Pre-release candidate. Published to npm under the `next` tag.
|
||||
|
||||
```bash
|
||||
npx get-shit-done-cc@next
|
||||
npx get-shit-done-redux@next
|
||||
```
|
||||
|
||||
---
|
||||
@@ -93,16 +93,16 @@ The installer now:
|
||||
|
||||
```bash
|
||||
# npm
|
||||
npm install -g get-shit-done-cc@next
|
||||
npm install -g get-shit-done-redux@next
|
||||
|
||||
# npx (one-shot)
|
||||
npx get-shit-done-cc@next
|
||||
npx get-shit-done-redux@next
|
||||
```
|
||||
|
||||
To pin to this exact RC:
|
||||
|
||||
```bash
|
||||
npm install -g get-shit-done-cc@1.39.0-rc.6
|
||||
npm install -g get-shit-done-redux@1.39.0-rc.6
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
Pre-release candidate. Published to npm under the `next` tag.
|
||||
|
||||
```bash
|
||||
npx get-shit-done-cc@next
|
||||
npx get-shit-done-redux@next
|
||||
```
|
||||
|
||||
---
|
||||
@@ -12,16 +12,16 @@ npx get-shit-done-cc@next
|
||||
|
||||
rc.7 is the first RC in the 1.39.0 train that rolls in the post-rc.5 fixes from
|
||||
`main`. rc.6 was content-identical to rc.5 (`release/1.39.0` was bumped without
|
||||
first being merged with `main` — see [#2856](https://github.com/gsd-build/get-shit-done/issues/2856)).
|
||||
first being merged with `main` — see [#2856](https://github.com/GSD-redux/get-shit-done-redux/issues/2856)).
|
||||
rc.7 syncs the release branch with `main` so all of the work below actually
|
||||
reaches the registry.
|
||||
|
||||
### Added
|
||||
|
||||
- **Manual canary release workflow** — `.github/workflows/canary.yml` publishes
|
||||
`{base}-canary.{N}` builds of `get-shit-done-cc` under the `canary` dist-tag on
|
||||
`{base}-canary.{N}` builds of `get-shit-done-redux` under the `canary` dist-tag on
|
||||
demand via `workflow_dispatch` (manual trigger only). Optional `dry_run` boolean.
|
||||
([#2828](https://github.com/gsd-build/get-shit-done/issues/2828))
|
||||
([#2828](https://github.com/GSD-redux/get-shit-done-redux/issues/2828))
|
||||
|
||||
### Fixed
|
||||
|
||||
@@ -29,74 +29,74 @@ reaches the registry.
|
||||
inside fenced code blocks** — the milestone-end search now scans line-by-line while
|
||||
tracking ` ``` ` / `~~~` fence state, so a line like `# Ops runbook (v1.0 compat)`
|
||||
inside a code block no longer acts as a milestone boundary.
|
||||
([#2787](https://github.com/gsd-build/get-shit-done/issues/2787))
|
||||
([#2787](https://github.com/GSD-redux/get-shit-done-redux/issues/2787))
|
||||
- **`audit-uat` parser reads `human_verification:` from frontmatter array** — the
|
||||
previous body-only regex was too strict and missed valid UAT items declared in
|
||||
YAML frontmatter, surfacing false-positive open gaps at every milestone-completion
|
||||
audit. ([#2788](https://github.com/gsd-build/get-shit-done/issues/2788))
|
||||
audit. ([#2788](https://github.com/GSD-redux/get-shit-done-redux/issues/2788))
|
||||
- **Skill description anti-patterns trimmed; ≤ 100-char budget enforced** — three
|
||||
anti-patterns eliminated across `commands/gsd/*.md`: flag documentation already in
|
||||
`argument-hint:`, `Triggers:` keyword-stuffing lists, and numbered enumeration. New
|
||||
CI lint gate `npm run lint:descriptions` fails if any description exceeds 100
|
||||
chars. ([#2789](https://github.com/gsd-build/get-shit-done/issues/2789))
|
||||
- **`gsd-sdk` binary collision with `@gsd-build/sdk` resolved** — workstream-aware
|
||||
chars. ([#2789](https://github.com/GSD-redux/get-shit-done-redux/issues/2789))
|
||||
- **`gsd-sdk` binary collision with `@gsd-redux/sdk` resolved** — workstream-aware
|
||||
query registry now respects the `GSD_WORKSTREAM` env var; `gsd-tools` bin alias
|
||||
added. ([#2791](https://github.com/gsd-build/get-shit-done/issues/2791))
|
||||
added. ([#2791](https://github.com/GSD-redux/get-shit-done-redux/issues/2791))
|
||||
- **`OpenCode` agents embed `model_profile_overrides.opencode.<tier>`** — per-tier
|
||||
model overrides set via `/gsd-settings-advanced` are now propagated into generated
|
||||
agent files. ([#2794](https://github.com/gsd-build/get-shit-done/issues/2794))
|
||||
agent files. ([#2794](https://github.com/GSD-redux/get-shit-done-redux/issues/2794))
|
||||
- **`roadmap update-plan-progress` accepts `--phase` flag form** — SDK arg-parsing
|
||||
regression in v0.1.0 silently dropped `--phase`/`--name`/`--plans` flags, causing
|
||||
STATE.md corruption. ([#2796](https://github.com/gsd-build/get-shit-done/issues/2796))
|
||||
STATE.md corruption. ([#2796](https://github.com/GSD-redux/get-shit-done-redux/issues/2796))
|
||||
- **`context_window` added to `VALID_CONFIG_KEYS` allowlist** —
|
||||
`/gsd-settings-advanced` could not set `context_window` because the key was missing
|
||||
from the allowlist used by `config-set` validation.
|
||||
([#2798](https://github.com/gsd-build/get-shit-done/issues/2798))
|
||||
([#2798](https://github.com/GSD-redux/get-shit-done-redux/issues/2798))
|
||||
- **`gsd-tools init` dispatches `ingest-docs` handler** — `/gsd-ingest-docs` was
|
||||
broken in v1.38.5 because the workflow called the new tool but no `ingest-docs`
|
||||
init handler was registered. ([#2801](https://github.com/gsd-build/get-shit-done/issues/2801))
|
||||
init handler was registered. ([#2801](https://github.com/GSD-redux/get-shit-done-redux/issues/2801))
|
||||
- **`config-get` honors `--default <value>` flag** — fallback for missing keys
|
||||
ported from CJS into the SDK. ([#2803](https://github.com/gsd-build/get-shit-done/issues/2803))
|
||||
ported from CJS into the SDK. ([#2803](https://github.com/GSD-redux/get-shit-done-redux/issues/2803))
|
||||
- **`find-phase` returns `null` for archived phases** — when the current-milestone
|
||||
phase had no directory yet, `init.plan-phase` / `init.execute-phase` returned the
|
||||
archived prior-milestone directory instead of `null`, causing wrong-phase work.
|
||||
([#2805](https://github.com/gsd-build/get-shit-done/issues/2805))
|
||||
([#2805](https://github.com/GSD-redux/get-shit-done-redux/issues/2805))
|
||||
- **SKILL.md frontmatter `name:` migrated to hyphen form** — files that still used
|
||||
the deprecated colon form (`gsd:cmd`) caused autocomplete to suggest `/gsd:command`.
|
||||
([#2808](https://github.com/gsd-build/get-shit-done/issues/2808))
|
||||
([#2808](https://github.com/GSD-redux/get-shit-done-redux/issues/2808))
|
||||
- **`gsd-sdk` resolvable in local-mode installs** — the previous `isLocal`
|
||||
short-circuit returned before the PATH probe + self-link could run. When
|
||||
`sdk/dist/cli.js` is present, local installs now run the same probe-and-link flow
|
||||
as global installs. ([#2829](https://github.com/gsd-build/get-shit-done/issues/2829))
|
||||
as global installs. ([#2829](https://github.com/GSD-redux/get-shit-done-redux/issues/2829))
|
||||
- **OpenCode `@file` references use absolute paths on all platforms** — OpenCode
|
||||
does not shell-expand `$HOME` in `@file` references on any platform; the
|
||||
Windows-only guard from #2376 left macOS/Linux producing literal `@$HOME/...`
|
||||
strings. Guard now applies unconditionally for OpenCode.
|
||||
([#2831](https://github.com/gsd-build/get-shit-done/issues/2831))
|
||||
([#2831](https://github.com/GSD-redux/get-shit-done-redux/issues/2831))
|
||||
- **`gsd-sdk auto` detects Codex runtime correctly** — `auto` mode ignored
|
||||
`runtime: codex` and routed through `@anthropic-ai/claude-agent-sdk`, producing
|
||||
the `[FAILED] $0.00 0.1s` symptom on autonomous runs. New `runtime-gate` raises a
|
||||
clear error for non-Claude runtimes; `resolveModel()` honours `GSD_RUNTIME` env
|
||||
precedence and never injects a Claude profile id under non-Claude runtimes.
|
||||
([#2832](https://github.com/gsd-build/get-shit-done/issues/2832))
|
||||
([#2832](https://github.com/GSD-redux/get-shit-done-redux/issues/2832))
|
||||
- **CR-INTEGRATION tests aligned with hyphen-form skill names** — tests now parse
|
||||
`Skill(skill="...")` invocations structurally and reject the legacy colon form.
|
||||
([#2835](https://github.com/gsd-build/get-shit-done/issues/2835))
|
||||
([#2835](https://github.com/GSD-redux/get-shit-done-redux/issues/2835))
|
||||
- **`audit-open` quick-task scanner accepts `${quick_id}-SUMMARY.md`** — the
|
||||
bare-`SUMMARY.md` check produced false-positive `status: missing` for every
|
||||
documented quick task. UAT terminal-status enum also adds `resolved` (matches
|
||||
`execute-phase.md`'s post-gap-closure terminal).
|
||||
([#2836](https://github.com/gsd-build/get-shit-done/issues/2836))
|
||||
([#2836](https://github.com/GSD-redux/get-shit-done-redux/issues/2836))
|
||||
- **`quick.md` / `execute-phase.md` SUMMARY rescue handles gitignored `.planning/`** —
|
||||
rescue blocks used `git ls-files --exclude-standard`, silently no-op'ing when
|
||||
`.planning/` was excluded; the worktree was then deleted with the SUMMARY.
|
||||
Replaced with filesystem-level `find` + idempotent `cp`.
|
||||
([#2838](https://github.com/gsd-build/get-shit-done/issues/2838))
|
||||
([#2838](https://github.com/GSD-redux/get-shit-done-redux/issues/2838))
|
||||
- **`/gsd-code-review-fix` cleanup tail is transactional** — JSON recovery sentinel
|
||||
at `${phase_dir}/.review-fix-recovery-pending.json` is written after `git worktree
|
||||
add` succeeds and removed only after `git worktree remove` returns. New runs that
|
||||
find a pre-existing sentinel force-remove the orphan worktree, making the agent
|
||||
self-healing across crashes. ([#2839](https://github.com/gsd-build/get-shit-done/issues/2839))
|
||||
self-healing across crashes. ([#2839](https://github.com/GSD-redux/get-shit-done-redux/issues/2839))
|
||||
|
||||
---
|
||||
|
||||
@@ -117,7 +117,7 @@ without first being merged with `main`. See
|
||||
|
||||
### Fixed
|
||||
|
||||
**Codex hooks migrator correctness hardening** ([#2809](https://github.com/gsd-build/get-shit-done/issues/2809))
|
||||
**Codex hooks migrator correctness hardening** ([#2809](https://github.com/GSD-redux/get-shit-done-redux/issues/2809))
|
||||
|
||||
Five edge-cases in the `[[hooks.<Event>]]` → `[[hooks.<Event>.hooks]]` two-level
|
||||
nested schema migration path, discovered across five rounds of code review:
|
||||
@@ -136,7 +136,7 @@ nested schema migration path, discovered across five rounds of code review:
|
||||
|
||||
### Added
|
||||
|
||||
**`--minimal` install flag** (alias `--core-only`) ([#2762](https://github.com/gsd-build/get-shit-done/issues/2762))
|
||||
**`--minimal` install flag** (alias `--core-only`) ([#2762](https://github.com/GSD-redux/get-shit-done-redux/issues/2762))
|
||||
|
||||
Writes only the six core skills needed to run the main workflow loop:
|
||||
`new-project`, `discuss-phase`, `plan-phase`, `execute-phase`, `help`, `update`.
|
||||
@@ -152,7 +152,7 @@ The install manifest records `mode: "minimal" | "full"`. Run `gsd update` withou
|
||||
|
||||
### Fixed (rc.4)
|
||||
|
||||
**Codex install no longer corrupts `~/.codex/config.toml`** ([#2760](https://github.com/gsd-build/get-shit-done/issues/2760))
|
||||
**Codex install no longer corrupts `~/.codex/config.toml`** ([#2760](https://github.com/GSD-redux/get-shit-done-redux/issues/2760))
|
||||
|
||||
The installer now strips legacy `[agents]` blocks, emits hooks in the user's
|
||||
existing shape, migrates legacy `[hooks.<Event>]` map format to `[[hooks.<Event>]]`,
|
||||
@@ -165,16 +165,16 @@ with a strict TOML parser.
|
||||
|
||||
```bash
|
||||
# npm
|
||||
npm install -g get-shit-done-cc@next
|
||||
npm install -g get-shit-done-redux@next
|
||||
|
||||
# npx (one-shot)
|
||||
npx get-shit-done-cc@next
|
||||
npx get-shit-done-redux@next
|
||||
```
|
||||
|
||||
To pin to this exact RC:
|
||||
|
||||
```bash
|
||||
npm install -g get-shit-done-cc@1.39.0-rc.7
|
||||
npm install -g get-shit-done-redux@1.39.0-rc.7
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
Pre-release candidate. Published to npm under the `next` tag.
|
||||
|
||||
```bash
|
||||
npx get-shit-done-cc@next
|
||||
npx get-shit-done-redux@next
|
||||
```
|
||||
|
||||
---
|
||||
@@ -11,9 +11,9 @@ npx get-shit-done-cc@next
|
||||
## What's in this release
|
||||
|
||||
rc.1 opens the 1.40.0 train. The headline change is the **skill-surface
|
||||
consolidation** ([#2790](https://github.com/gsd-build/get-shit-done/issues/2790))
|
||||
consolidation** ([#2790](https://github.com/GSD-redux/get-shit-done-redux/issues/2790))
|
||||
and the new **two-stage hierarchical namespace routing** that sits on top of it
|
||||
([#2792](https://github.com/gsd-build/get-shit-done/issues/2792)) — together
|
||||
([#2792](https://github.com/GSD-redux/get-shit-done-redux/issues/2792)) — together
|
||||
they drop the cold-start system-prompt overhead from ~2,150 tokens (86 flat skills)
|
||||
to ~120 tokens (6 namespace routers). The release also adds the read-side of the
|
||||
phase-lifecycle status-line, hardens multi-runtime installs, and clears a backlog of
|
||||
@@ -26,23 +26,23 @@ correctness fixes for Gemini, Copilot, Codex, and the canary publish workflow.
|
||||
namespace routers (`gsd:workflow`, `gsd:project`, `gsd:review`, `gsd:context`,
|
||||
`gsd:manage`, `gsd:ideate`) instead of 86 entries; selects a namespace, then routes
|
||||
to the sub-skill. Existing sub-skills are unchanged and still invocable directly.
|
||||
([#2792](https://github.com/gsd-build/get-shit-done/issues/2792))
|
||||
([#2792](https://github.com/GSD-redux/get-shit-done-redux/issues/2792))
|
||||
|
||||
- **`/gsd-health --context` utilization guard** — context-window quality guard with
|
||||
two thresholds: 60 % warns ("consider `/gsd-thread`"), 70 % is critical ("reasoning
|
||||
quality may degrade"). Also exposed as `gsd-tools validate context`.
|
||||
([#2792](https://github.com/gsd-build/get-shit-done/issues/2792))
|
||||
([#2792](https://github.com/GSD-redux/get-shit-done-redux/issues/2792))
|
||||
|
||||
- **Phase-lifecycle status-line — read-side** — `parseStateMd()` now reads four new
|
||||
STATE.md frontmatter fields: `active_phase`, `next_action`, `next_phases`, and
|
||||
`progress`. `formatGsdState()` gains scenes for in-flight, idle, and progress
|
||||
display. Write-side wiring follows in a later RC.
|
||||
([#2833](https://github.com/gsd-build/get-shit-done/issues/2833))
|
||||
([#2833](https://github.com/GSD-redux/get-shit-done-redux/issues/2833))
|
||||
|
||||
- **`--minimal` install flag** (alias `--core-only`) — writes only the six core
|
||||
skills needed for the main workflow loop; no `gsd-*` subagents. Drops cold-start
|
||||
overhead from ~12k tokens to ~700. Useful for local LLMs with 32K–128K context.
|
||||
([#2762](https://github.com/gsd-build/get-shit-done/issues/2762))
|
||||
([#2762](https://github.com/GSD-redux/get-shit-done-redux/issues/2762))
|
||||
|
||||
### Changed
|
||||
|
||||
@@ -52,18 +52,18 @@ correctness fixes for Gemini, Copilot, Codex, and the canary publish workflow.
|
||||
(`update --sync/--reapply`, `sketch --wrap-up`, `spike --wrap-up`,
|
||||
`map-codebase --fast/--query`, `code-review --fix`, `progress --do/--next`).
|
||||
Zero functional loss — 31 micro-skills deleted, all behavior preserved via flags.
|
||||
([#2790](https://github.com/gsd-build/get-shit-done/issues/2790))
|
||||
([#2790](https://github.com/GSD-redux/get-shit-done-redux/issues/2790))
|
||||
|
||||
- **Canary release workflow now publishes from `dev` branch only** — aligns with
|
||||
the branch→dist-tag policy (`dev` → `@canary`, `main` → `@next`/`@latest`).
|
||||
`workflow_dispatch` on `main` now completes build/test/dry-run validation but
|
||||
skips publish and tag.
|
||||
([#2868](https://github.com/gsd-build/get-shit-done/issues/2868))
|
||||
([#2868](https://github.com/GSD-redux/get-shit-done-redux/issues/2868))
|
||||
|
||||
- **PRs missing `Closes #NNN` are auto-closed** — the `Issue link required`
|
||||
workflow now auto-closes any PR opened without a closing keyword, posting a
|
||||
comment that points to the contribution guide.
|
||||
([#2872](https://github.com/gsd-build/get-shit-done/issues/2872))
|
||||
([#2872](https://github.com/GSD-redux/get-shit-done-redux/issues/2872))
|
||||
|
||||
### Fixed
|
||||
|
||||
@@ -71,28 +71,28 @@ correctness fixes for Gemini, Copilot, Codex, and the canary publish workflow.
|
||||
Gemini CLI namespaces commands under `gsd:` so `/gsd-plan-phase` was unexecutable.
|
||||
The install path now converts every body-text reference via a roster-checked regex,
|
||||
consistently rewriting command files, agent bodies, and banners.
|
||||
([#2768](https://github.com/gsd-build/get-shit-done/issues/2768),
|
||||
[#2783](https://github.com/gsd-build/get-shit-done/issues/2783))
|
||||
([#2768](https://github.com/GSD-redux/get-shit-done-redux/issues/2768),
|
||||
[#2783](https://github.com/GSD-redux/get-shit-done-redux/issues/2783))
|
||||
|
||||
- **GSD slash-command namespace drift cleaned up across docs, workflows, and
|
||||
autocomplete** — remaining stale `/gsd:<cmd>` references now use canonical
|
||||
`/gsd-<cmd>`; `scripts/fix-slash-commands.cjs` rewrites retired colon syntax.
|
||||
([#2858](https://github.com/gsd-build/get-shit-done/pull/2858))
|
||||
([#2858](https://github.com/GSD-redux/get-shit-done-redux/pull/2858))
|
||||
|
||||
- **`SKILL.md` description quoted for Copilot / Antigravity / Trae / CodeBuddy** —
|
||||
descriptions starting with a YAML 1.2 flow indicator crashed gh-copilot's strict
|
||||
YAML loader. Six emission sites now wrap descriptions in `yamlQuote(...)`.
|
||||
([#2876](https://github.com/gsd-build/get-shit-done/issues/2876))
|
||||
([#2876](https://github.com/GSD-redux/get-shit-done-redux/issues/2876))
|
||||
|
||||
- **`gsd-tools` invocations use the absolute installed path** — bare `gsd-tools …`
|
||||
calls inside skill bodies relied on PATH resolution not guaranteed in every runtime;
|
||||
replaced with the absolute path emitted at install time.
|
||||
([#2851](https://github.com/gsd-build/get-shit-done/issues/2851))
|
||||
([#2851](https://github.com/GSD-redux/get-shit-done-redux/issues/2851))
|
||||
|
||||
- **Codex installer preserves trailing newline when stripping legacy hooks** — the
|
||||
legacy-hook strip ran against files with no terminating newline at EOF, breaking
|
||||
downstream parsers.
|
||||
([#2866](https://github.com/gsd-build/get-shit-done/issues/2866))
|
||||
([#2866](https://github.com/GSD-redux/get-shit-done-redux/issues/2866))
|
||||
|
||||
---
|
||||
|
||||
@@ -100,10 +100,10 @@ correctness fixes for Gemini, Copilot, Codex, and the canary publish workflow.
|
||||
|
||||
[`RELEASE-v1.39.0-rc.7.md`](RELEASE-v1.39.0-rc.7.md) — first 1.39.0 RC to roll in
|
||||
post-rc.5 fixes from `main`. Includes the `extractCurrentMilestone` fenced-code-block
|
||||
fix ([#2787](https://github.com/gsd-build/get-shit-done/issues/2787)), `audit-uat`
|
||||
frontmatter parse fix ([#2788](https://github.com/gsd-build/get-shit-done/issues/2788)),
|
||||
skill description budget + lint gate ([#2789](https://github.com/gsd-build/get-shit-done/issues/2789)),
|
||||
`gsd-sdk` workstream + binary-collision fixes ([#2791](https://github.com/gsd-build/get-shit-done/issues/2791)),
|
||||
fix ([#2787](https://github.com/GSD-redux/get-shit-done-redux/issues/2787)), `audit-uat`
|
||||
frontmatter parse fix ([#2788](https://github.com/GSD-redux/get-shit-done-redux/issues/2788)),
|
||||
skill description budget + lint gate ([#2789](https://github.com/GSD-redux/get-shit-done-redux/issues/2789)),
|
||||
`gsd-sdk` workstream + binary-collision fixes ([#2791](https://github.com/GSD-redux/get-shit-done-redux/issues/2791)),
|
||||
and nine additional correctness fixes across OpenCode, Codex, and Gemini runtimes.
|
||||
|
||||
---
|
||||
@@ -112,16 +112,16 @@ and nine additional correctness fixes across OpenCode, Codex, and Gemini runtime
|
||||
|
||||
```bash
|
||||
# npm
|
||||
npm install -g get-shit-done-cc@next
|
||||
npm install -g get-shit-done-redux@next
|
||||
|
||||
# npx (one-shot)
|
||||
npx get-shit-done-cc@next
|
||||
npx get-shit-done-redux@next
|
||||
```
|
||||
|
||||
To pin to this exact RC:
|
||||
|
||||
```bash
|
||||
npm install -g get-shit-done-cc@1.40.0-rc.1
|
||||
npm install -g get-shit-done-redux@1.40.0-rc.1
|
||||
```
|
||||
|
||||
---
|
||||
@@ -131,6 +131,6 @@ npm install -g get-shit-done-cc@1.40.0-rc.1
|
||||
- Soak rc.1 against real installs across Claude Code, Codex, Copilot, Gemini,
|
||||
OpenCode, and Antigravity runtimes.
|
||||
- Wire write-side phase-lifecycle status-line on top of the
|
||||
[#2833](https://github.com/gsd-build/get-shit-done/issues/2833) read-side.
|
||||
[#2833](https://github.com/GSD-redux/get-shit-done-redux/issues/2833) read-side.
|
||||
- Run `finalize` on the release workflow to promote `1.40.0` to `latest` once
|
||||
the train has soaked.
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
Stable release. Published to npm under the `latest` tag.
|
||||
|
||||
```bash
|
||||
npx get-shit-done-cc@latest
|
||||
npx get-shit-done-redux@latest
|
||||
```
|
||||
|
||||
---
|
||||
@@ -19,25 +19,25 @@ npx get-shit-done-cc@latest
|
||||
named slots (`planning` / `discuss` / `research` / `execution` / `verification` /
|
||||
`completion`) accept tier aliases (`opus` / `sonnet` / `haiku` / `inherit`). Fully
|
||||
backward compatible.
|
||||
([#3023](https://github.com/gsd-build/get-shit-done/pull/3030))
|
||||
([#3023](https://github.com/GSD-redux/get-shit-done-redux/pull/3030))
|
||||
|
||||
- **Dynamic routing with failure-tier escalation (`dynamic_routing` block)** — start
|
||||
cheap, escalate only when the orchestrator detects a soft failure (inconclusive
|
||||
verification, plan-check FLAG). Disabled by default; composes with `model_overrides`
|
||||
and `models.<phase_type>` via the same precedence chain.
|
||||
([#3024](https://github.com/gsd-build/get-shit-done/pull/3031))
|
||||
([#3024](https://github.com/GSD-redux/get-shit-done-redux/pull/3031))
|
||||
|
||||
- **Optional update banner for non-GSD statusline users** — when the installer detects
|
||||
no GSD statusline, it offers an opt-in `SessionStart` hook that surfaces update
|
||||
availability via the existing `~/.cache/gsd/gsd-update-check.json` cache. Silent when
|
||||
up-to-date; removed cleanly by `--uninstall`.
|
||||
([#2795](https://github.com/gsd-build/get-shit-done/pull/2795))
|
||||
([#2795](https://github.com/GSD-redux/get-shit-done-redux/pull/2795))
|
||||
|
||||
- **Issue-driven orchestration guide** — new
|
||||
[`docs/issue-driven-orchestration.md`](issue-driven-orchestration.md) recipe that maps
|
||||
tracker issues (GitHub / Linear / Jira) onto existing GSD primitives: workspace →
|
||||
discuss → plan → execute → verify → review → ship.
|
||||
([#2840](https://github.com/gsd-build/get-shit-done/pull/2840))
|
||||
([#2840](https://github.com/GSD-redux/get-shit-done-redux/pull/2840))
|
||||
|
||||
### Changed
|
||||
|
||||
@@ -48,136 +48,136 @@ npx get-shit-done-cc@latest
|
||||
consuming workflows now call the verb instead of inlining 4–8 bash lines each. Also
|
||||
fixes a silent SDK bug where `roadmap.get-phase --pick mode` returned `null` for
|
||||
phases with `**Mode:** mvp` set.
|
||||
([#3178](https://github.com/gsd-build/get-shit-done/pull/3178))
|
||||
([#3178](https://github.com/GSD-redux/get-shit-done-redux/pull/3178))
|
||||
|
||||
- **`/gsd-graphify status` surfaces commit-based staleness** — reads `built_at_commit`
|
||||
from graphify v0.7+ graphs, compares against `git HEAD`, and adds four new fields
|
||||
(`built_at_commit`, `current_commit`, `commits_behind`, `commit_stale`). Pre-v0.7
|
||||
graphs return `commit_stale: null` and fall back to the existing mtime-based signal.
|
||||
([#3170](https://github.com/gsd-build/get-shit-done/issues/3170))
|
||||
([#3170](https://github.com/GSD-redux/get-shit-done-redux/issues/3170))
|
||||
|
||||
- **MVP concept index and domain glossary** — seven MVP-related terms added to
|
||||
`CONTEXT.md`; new `references/mvp-concepts.md` indexes the six MVP reference files.
|
||||
No behavior change.
|
||||
([#3176](https://github.com/gsd-build/get-shit-done/pull/3176))
|
||||
([#3176](https://github.com/GSD-redux/get-shit-done-redux/pull/3176))
|
||||
|
||||
### Fixed
|
||||
|
||||
- **Stable node path on Homebrew** — `resolveNodeRunner()` now maps versioned Cellar
|
||||
paths to the stable Homebrew symlinks. Prevents `dyld: Library not loaded` errors
|
||||
after `brew upgrade node`.
|
||||
([#3181](https://github.com/gsd-build/get-shit-done/issues/3181))
|
||||
([#3181](https://github.com/GSD-redux/get-shit-done-redux/issues/3181))
|
||||
|
||||
- **Milestone-archive layout support** — `validate consistency`, `validate health`, and
|
||||
`find-phase` now scan `.planning/milestones/v*-phases/` in addition to the flat
|
||||
`.planning/phases/` layout, eliminating spurious W006 warnings.
|
||||
([#3164](https://github.com/gsd-build/get-shit-done/issues/3164))
|
||||
([#3164](https://github.com/GSD-redux/get-shit-done-redux/issues/3164))
|
||||
|
||||
- **`/gsd-graphify build` runs inline instead of spawning a sub-agent** — the
|
||||
post-extraction clustering phase was SIGTERM'd when the sub-agent exited, leaving no
|
||||
`graph.json` / `graph.html` / `GRAPH_REPORT.md` artifacts.
|
||||
([#3166](https://github.com/gsd-build/get-shit-done/issues/3166))
|
||||
([#3166](https://github.com/GSD-redux/get-shit-done-redux/issues/3166))
|
||||
|
||||
- **Planner directive language restored** — 10 `CRITICAL`/`MANDATORY`/`MUST` emphasis
|
||||
markers were silently removed from `gsd-planner.md` in v1.38.4, weakening planner
|
||||
adherence to user decisions and requirement coverage. All restored.
|
||||
([#3138](https://github.com/gsd-build/get-shit-done/issues/3087))
|
||||
([#3138](https://github.com/GSD-redux/get-shit-done-redux/issues/3087))
|
||||
|
||||
- **`secure-phase` retroactive-STRIDE mode for legacy phases** — phases with no
|
||||
`<threat_model>` blocks no longer rubber-stamp a clean `SECURITY.md`; the auditor
|
||||
now builds a register from implementation files before verifying mitigations.
|
||||
([#3142](https://github.com/gsd-build/get-shit-done/issues/3120))
|
||||
([#3142](https://github.com/GSD-redux/get-shit-done-redux/issues/3120))
|
||||
|
||||
- **Global skills resolution now uses the correct runtime home directory** —
|
||||
`buildAgentSkillsBlock()` hardcoded `~/.claude/skills` for all runtimes. The new
|
||||
`runtime-homes.cjs` module maps all 15 supported runtimes to their canonical skills
|
||||
directory.
|
||||
([#3126](https://github.com/gsd-build/get-shit-done/issues/3126))
|
||||
([#3126](https://github.com/GSD-redux/get-shit-done-redux/issues/3126))
|
||||
|
||||
- **`state.begin-phase` is now idempotent** — wave-resume calls no longer overwrite
|
||||
`Current Plan`, `stopped_at`, or `Last Activity Description` with stale values from
|
||||
the last `plan-phase` run.
|
||||
([#3127](https://github.com/gsd-build/get-shit-done/issues/3127))
|
||||
([#3127](https://github.com/GSD-redux/get-shit-done-redux/issues/3127))
|
||||
|
||||
- **`gsd-validate-commit.sh` hook catches all git commit forms** — the previous bash
|
||||
regex missed `git -C /path commit`, `GIT_AUTHOR_NAME=x git commit`, and
|
||||
`/usr/bin/git commit`. New `hooks/lib/git-cmd.js` token-walk classifier handles all
|
||||
forms correctly.
|
||||
([#3141](https://github.com/gsd-build/get-shit-done/issues/3129))
|
||||
([#3141](https://github.com/GSD-redux/get-shit-done-redux/issues/3129))
|
||||
|
||||
- **`/gsd-plan-phase` no longer auto-dispatches to a subagent on OpenCode** — the
|
||||
`agent: gsd-planner` frontmatter directive caused OpenCode to run the orchestrator in
|
||||
a context where the `Agent` tool is unavailable. Directive removed.
|
||||
([#3156](https://github.com/gsd-build/get-shit-done/issues/3156))
|
||||
([#3156](https://github.com/GSD-redux/get-shit-done-redux/issues/3156))
|
||||
|
||||
- **`/gsd-quick` worktree-merge resurrection guard** — the inverted `PRE_MERGE_FILES`
|
||||
grep that deleted freshly-created files (including `SUMMARY.md`) is replaced with the
|
||||
git-history check used by `execute-phase.md`.
|
||||
([#3195](https://github.com/gsd-build/get-shit-done/issues/3195))
|
||||
([#3195](https://github.com/GSD-redux/get-shit-done-redux/issues/3195))
|
||||
|
||||
- **`gsd-health` no longer raises W019 for `RETROSPECTIVE.md`** — registered in
|
||||
`CANONICAL_EXACT` in `artifacts.cjs` to match its established status as a milestone
|
||||
completion artifact.
|
||||
([#3200](https://github.com/gsd-build/get-shit-done/issues/3198))
|
||||
([#3200](https://github.com/GSD-redux/get-shit-done-redux/issues/3198))
|
||||
|
||||
- **`--sdk` flag now wired into SDK deployment** — `hasSdk` was parsed but never
|
||||
passed to `installSdkIfNeeded`, so `--sdk` silently skipped deployment.
|
||||
([#3033](https://github.com/gsd-build/get-shit-done/issues/3033))
|
||||
([#3033](https://github.com/GSD-redux/get-shit-done-redux/issues/3033))
|
||||
|
||||
- **Installer shell-path probe for SDK shim** — no longer prints "✓ GSD SDK ready"
|
||||
when the shim is unreachable from the user's interactive shells; probes
|
||||
`$SHELL -lc 'printf %s "$PATH"'` instead of the installer subprocess PATH.
|
||||
([#3028](https://github.com/gsd-build/get-shit-done/issues/3020))
|
||||
([#3028](https://github.com/GSD-redux/get-shit-done-redux/issues/3020))
|
||||
|
||||
- **Windows update-check no longer silently fails** — passes `shell: true` on Windows
|
||||
so `npm.cmd` resolves via PATHEXT; without this the statusline "⬆ /gsd-update"
|
||||
indicator never rendered on Windows.
|
||||
([#3102](https://github.com/gsd-build/get-shit-done/issues/3103))
|
||||
([#3102](https://github.com/GSD-redux/get-shit-done-redux/issues/3103))
|
||||
|
||||
- **Community `.sh` hooks use `#!/usr/bin/env bash`** — the previous `#!/bin/bash`
|
||||
shebang fails on NixOS, minimal Alpine images, and some container runtimes.
|
||||
([#3194](https://github.com/gsd-build/get-shit-done/issues/3194))
|
||||
([#3194](https://github.com/GSD-redux/get-shit-done-redux/issues/3194))
|
||||
|
||||
- **Gemini local install no longer duplicates `/gsd:*` commands** — when GSD is
|
||||
already installed at user scope, a subsequent `--gemini --local` install skips the
|
||||
workspace scope. Previously both scopes received all 65 command files and Gemini's
|
||||
conflict detector renamed everything.
|
||||
([#3037](https://github.com/gsd-build/get-shit-done/issues/3037))
|
||||
([#3037](https://github.com/GSD-redux/get-shit-done-redux/issues/3037))
|
||||
|
||||
- **Workstream resolution in `init.milestone-op` and `roadmap.analyze`** — both
|
||||
handlers now respect `--ws`, `GSD_WORKSTREAM`, and `.planning/active-workstream`.
|
||||
Workstream-scoped repos no longer exit with "Nothing left to do" from reading the
|
||||
root `.planning/` directory.
|
||||
([#3196](https://github.com/gsd-build/get-shit-done/issues/3196),
|
||||
[#3207](https://github.com/gsd-build/get-shit-done/pull/3207))
|
||||
([#3196](https://github.com/GSD-redux/get-shit-done-redux/issues/3196),
|
||||
[#3207](https://github.com/GSD-redux/get-shit-done-redux/pull/3207))
|
||||
|
||||
- **`gsd-tools config-set workflow._auto_chain_active` no longer rejected** — the key
|
||||
was added to the SDK schema but not mirrored to `config-schema.cjs`; users routed
|
||||
through `gsd-tools` saw "Unknown config key."
|
||||
([#3197](https://github.com/gsd-build/get-shit-done/issues/3197))
|
||||
([#3197](https://github.com/GSD-redux/get-shit-done-redux/issues/3197))
|
||||
|
||||
- **Statusline state rendering is type-robust and YAML-list compatible** — milestone
|
||||
completion renders for numeric and string `percent` values; `next_phases` parses both
|
||||
flow-array and block-list YAML.
|
||||
([#3153](https://github.com/gsd-build/get-shit-done/issues/3153))
|
||||
([#3153](https://github.com/GSD-redux/get-shit-done-redux/issues/3153))
|
||||
|
||||
- **Codex SessionStart hook uses absolute Node binary path** — bare `node` in
|
||||
`config.toml` failed with exit 127 under GUI/minimal-PATH runtimes.
|
||||
([#3022](https://github.com/gsd-build/get-shit-done/issues/3017))
|
||||
([#3022](https://github.com/GSD-redux/get-shit-done-redux/issues/3017))
|
||||
|
||||
- **`config-set resolve_model_ids` and `workflow._auto_chain_active` accepted** — both
|
||||
keys were documented or written by internal workflows but missing from the allowlists.
|
||||
([#3162](https://github.com/gsd-build/get-shit-done/issues/3162))
|
||||
([#3162](https://github.com/GSD-redux/get-shit-done-redux/issues/3162))
|
||||
|
||||
---
|
||||
|
||||
## What was in 1.40.0
|
||||
|
||||
[`RELEASE-v1.40.0-rc.1.md`](RELEASE-v1.40.0-rc.1.md) — skill-surface consolidation
|
||||
(86 → 59, [#2790](https://github.com/gsd-build/get-shit-done/issues/2790)), six
|
||||
namespace meta-skills ([#2792](https://github.com/gsd-build/get-shit-done/issues/2792)),
|
||||
(86 → 59, [#2790](https://github.com/GSD-redux/get-shit-done-redux/issues/2790)), six
|
||||
namespace meta-skills ([#2792](https://github.com/GSD-redux/get-shit-done-redux/issues/2792)),
|
||||
`/gsd-health --context` utilization guard, phase-lifecycle status-line read-side
|
||||
([#2833](https://github.com/gsd-build/get-shit-done/issues/2833)), and Gemini
|
||||
([#2833](https://github.com/GSD-redux/get-shit-done-redux/issues/2833)), and Gemini
|
||||
colon-form slash-command conversion.
|
||||
|
||||
---
|
||||
@@ -186,13 +186,13 @@ colon-form slash-command conversion.
|
||||
|
||||
```bash
|
||||
# npm (global)
|
||||
npm install -g get-shit-done-cc@latest
|
||||
npm install -g get-shit-done-redux@latest
|
||||
|
||||
# npx (one-shot)
|
||||
npx get-shit-done-cc@latest
|
||||
npx get-shit-done-redux@latest
|
||||
|
||||
# Pin to this exact version
|
||||
npm install -g get-shit-done-cc@1.41.0
|
||||
npm install -g get-shit-done-redux@1.41.0
|
||||
```
|
||||
|
||||
The installer is idempotent — re-running on an existing install updates in-place,
|
||||
|
||||
@@ -3,9 +3,9 @@
|
||||
First release candidate for the **1.42.0** train. Published to npm under the `next` dist-tag.
|
||||
|
||||
```bash
|
||||
npx get-shit-done-cc@next
|
||||
npx get-shit-done-redux@next
|
||||
# or pin exact:
|
||||
npm install -g get-shit-done-cc@1.42.0-rc1
|
||||
npm install -g get-shit-done-redux@1.42.0-rc1
|
||||
```
|
||||
|
||||
> **Release-candidate stream caveat.** RCs come from `main` and are the staging stream for the next stable `latest`. They are stable enough for everyday use but may carry bake items resolved before the matching `vX.Y.0` is published. See [CANARY.md](CANARY.md) for the stream policy.
|
||||
@@ -16,7 +16,7 @@ npm install -g get-shit-done-cc@1.42.0-rc1
|
||||
|
||||
1.42.0-rc.1 is the first cut of the 1.42 train. The headline addition is a **package legitimacy gate against slopsquatting** — a three-layer defense across the research → plan → execute pipeline that prevents AI-hallucinated package names from flowing undetected into `npm install`. Underneath that, two structural refactors deepen the **SDK package seam** and the **phase lifecycle seams** so future work has cleaner module boundaries.
|
||||
|
||||
This RC also rolls up every fix that shipped in [v1.41.1](https://github.com/gsd-build/get-shit-done/releases/tag/v1.41.1). Those fixes are listed in the v1.41.1 notes and on the GitHub release page; this document is scoped to the **new features** in 1.42.0.
|
||||
This RC also rolls up every fix that shipped in [v1.41.1](https://github.com/GSD-redux/get-shit-done-redux/releases/tag/v1.41.1). Those fixes are listed in the v1.41.1 notes and on the GitHub release page; this document is scoped to the **new features** in 1.42.0.
|
||||
|
||||
---
|
||||
|
||||
@@ -24,7 +24,7 @@ This RC also rolls up every fix that shipped in [v1.41.1](https://github.com/gsd
|
||||
|
||||
### Security
|
||||
|
||||
#### Package legitimacy gate against slopsquatting ([#3215](https://github.com/gsd-build/get-shit-done/pull/3215))
|
||||
#### Package legitimacy gate against slopsquatting ([#3215](https://github.com/GSD-redux/get-shit-done-redux/pull/3215))
|
||||
|
||||
A three-layer defense across the research → plan → execute pipeline. Before this release, a hallucinated package name that passed `npm view` could flow undetected into `gsd-executor` running `npm install <malicious-pkg>` with no human gate. The gate closes that path:
|
||||
|
||||
@@ -38,7 +38,7 @@ A three-layer defense across the research → plan → execute pipeline. Before
|
||||
|
||||
**Documentation.** `docs/USER-GUIDE.md` has a new "Package Legitimacy Gate" subsection in the Security section; `docs/COMMANDS.md` notes the gate on `/gsd-plan-phase`; `docs/ARCHITECTURE.md` documents the gate before the Security Hooks section and updates the plan-phase pipeline diagram with the gate steps.
|
||||
|
||||
Closes [#2827](https://github.com/gsd-build/get-shit-done/issues/2827).
|
||||
Closes [#2827](https://github.com/GSD-redux/get-shit-done-redux/issues/2827).
|
||||
|
||||
---
|
||||
|
||||
@@ -46,7 +46,7 @@ Closes [#2827](https://github.com/gsd-build/get-shit-done/issues/2827).
|
||||
|
||||
### Architecture
|
||||
|
||||
#### SDK package seam deepened; runtime-global skills policy converged ([#3238](https://github.com/gsd-build/get-shit-done/pull/3238))
|
||||
#### SDK package seam deepened; runtime-global skills policy converged ([#3238](https://github.com/GSD-redux/get-shit-done-redux/pull/3238))
|
||||
|
||||
Concentrates two areas that were previously scattered across the codebase:
|
||||
|
||||
@@ -55,9 +55,9 @@ Concentrates two areas that were previously scattered across the codebase:
|
||||
|
||||
The CONTEXT.md domain glossary is updated with both Module entries so future work points at the canonical seams instead of re-deriving the boundaries.
|
||||
|
||||
Closes [#3237](https://github.com/gsd-build/get-shit-done/issues/3237). Refs [#3234](https://github.com/gsd-build/get-shit-done/issues/3234).
|
||||
Closes [#3237](https://github.com/GSD-redux/get-shit-done-redux/issues/3237). Refs [#3234](https://github.com/GSD-redux/get-shit-done-redux/issues/3234).
|
||||
|
||||
#### Phase lifecycle seams deepened ([#3267](https://github.com/gsd-build/get-shit-done/pull/3267))
|
||||
#### Phase lifecycle seams deepened ([#3267](https://github.com/GSD-redux/get-shit-done-redux/pull/3267))
|
||||
|
||||
`phase-lifecycle.ts` becomes a thin public orchestrator. Three new modules are extracted:
|
||||
|
||||
@@ -67,14 +67,14 @@ Closes [#3237](https://github.com/gsd-build/get-shit-done/issues/3237). Refs [#3
|
||||
|
||||
Backward-compatible re-exports are preserved on `phase-lifecycle.ts` so existing callers continue to work; new callers should import from the dedicated modules.
|
||||
|
||||
Closes [#3270](https://github.com/gsd-build/get-shit-done/issues/3270).
|
||||
Closes [#3270](https://github.com/GSD-redux/get-shit-done-redux/issues/3270).
|
||||
|
||||
---
|
||||
|
||||
## What was in 1.41.x
|
||||
|
||||
- **[v1.41.1](https://github.com/gsd-build/get-shit-done/releases/tag/v1.41.1)** — 14-fix hotfix: phase-plan-index DAG correctness, state-snapshot YAML frontmatter precedence, code-review SUMMARY parser hardening (`BL-` / `blocker:` accepted as Critical-tier), Codex install TOML floats + idempotent rollback, persistent SDK reachability probe, shared model-catalog source of truth (ADR-0003), and more.
|
||||
- **[v1.41.0](https://github.com/gsd-build/get-shit-done/releases/tag/v1.41.0)** — six namespace meta-skills, `/gsd-health --context` utilization guard, `--minimal` install flag, `/gsd-edit-phase`, post-merge build & test gate, manual canary release workflow, and 25+ correctness fixes. See [`RELEASE-v1.41.0.md`](RELEASE-v1.41.0.md).
|
||||
- **[v1.41.1](https://github.com/GSD-redux/get-shit-done-redux/releases/tag/v1.41.1)** — 14-fix hotfix: phase-plan-index DAG correctness, state-snapshot YAML frontmatter precedence, code-review SUMMARY parser hardening (`BL-` / `blocker:` accepted as Critical-tier), Codex install TOML floats + idempotent rollback, persistent SDK reachability probe, shared model-catalog source of truth (ADR-0003), and more.
|
||||
- **[v1.41.0](https://github.com/GSD-redux/get-shit-done-redux/releases/tag/v1.41.0)** — six namespace meta-skills, `/gsd-health --context` utilization guard, `--minimal` install flag, `/gsd-edit-phase`, post-merge build & test gate, manual canary release workflow, and 25+ correctness fixes. See [`RELEASE-v1.41.0.md`](RELEASE-v1.41.0.md).
|
||||
|
||||
---
|
||||
|
||||
@@ -82,13 +82,13 @@ Closes [#3270](https://github.com/gsd-build/get-shit-done/issues/3270).
|
||||
|
||||
```bash
|
||||
# npm (global, RC channel)
|
||||
npm install -g get-shit-done-cc@next
|
||||
npm install -g get-shit-done-redux@next
|
||||
|
||||
# npx (one-shot)
|
||||
npx get-shit-done-cc@next
|
||||
npx get-shit-done-redux@next
|
||||
|
||||
# Pin to this exact RC
|
||||
npm install -g get-shit-done-cc@1.42.0-rc1
|
||||
npm install -g get-shit-done-redux@1.42.0-rc1
|
||||
```
|
||||
|
||||
The installer is idempotent — re-running on an existing install updates in-place, preserving your `.planning/` directory and local patches.
|
||||
@@ -96,5 +96,5 @@ The installer is idempotent — re-running on an existing install updates in-pla
|
||||
To roll back to the latest stable, install with `@latest`:
|
||||
|
||||
```bash
|
||||
npx get-shit-done-cc@latest
|
||||
npx get-shit-done-redux@latest
|
||||
```
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
Stable release. Published to npm under the `latest` tag.
|
||||
|
||||
```bash
|
||||
npx get-shit-done-cc@latest
|
||||
npx get-shit-done-redux@latest
|
||||
```
|
||||
|
||||
---
|
||||
@@ -26,41 +26,41 @@ install migration, SDK readiness, and decimal-phase dependencies.
|
||||
and executors stop on package install failures instead of trying similarly named
|
||||
alternatives. This closes the path where AI-hallucinated package names could flow
|
||||
from research into `npm install` / `pip install` / `cargo add`.
|
||||
([#3215](https://github.com/gsd-build/get-shit-done/pull/3215))
|
||||
([#3215](https://github.com/GSD-redux/get-shit-done-redux/pull/3215))
|
||||
|
||||
- **Skill surface budgeting** — install with `--profile=core`, `--profile=standard`,
|
||||
or the default `full`; profiles persist in `.gsd-profile`. Use `/gsd:surface` to
|
||||
list, enable, disable, reset, or switch skill clusters without reinstalling.
|
||||
`--minimal` and `--core-only` remain aliases for `--profile=core`.
|
||||
([#3408](https://github.com/gsd-build/get-shit-done/pull/3456))
|
||||
([#3408](https://github.com/GSD-redux/get-shit-done-redux/pull/3456))
|
||||
|
||||
- **Installer migration framework** — install now has explicit migration records,
|
||||
baseline scanning, legacy cleanup, user-owned artifact preservation, dry-run
|
||||
reporting, rollback protection, and ambiguous stale-file guardrails.
|
||||
([#3398](https://github.com/gsd-build/get-shit-done/pull/3398),
|
||||
[#3399](https://github.com/gsd-build/get-shit-done/pull/3399),
|
||||
[#3400](https://github.com/gsd-build/get-shit-done/pull/3400),
|
||||
[#3402](https://github.com/gsd-build/get-shit-done/pull/3402),
|
||||
[#3404](https://github.com/gsd-build/get-shit-done/pull/3404))
|
||||
([#3398](https://github.com/GSD-redux/get-shit-done-redux/pull/3398),
|
||||
[#3399](https://github.com/GSD-redux/get-shit-done-redux/pull/3399),
|
||||
[#3400](https://github.com/GSD-redux/get-shit-done-redux/pull/3400),
|
||||
[#3402](https://github.com/GSD-redux/get-shit-done-redux/pull/3402),
|
||||
[#3404](https://github.com/GSD-redux/get-shit-done-redux/pull/3404))
|
||||
|
||||
- **Configurable `/gsd-ship` PR body sections** — `ship.pr_body_sections` appends
|
||||
project-specific PRD-style sections while preserving the required `Summary`,
|
||||
`Changes`, `Requirements Addressed`, `Verification`, and `Key Decisions` sections.
|
||||
([#3391](https://github.com/gsd-build/get-shit-done/pull/3391))
|
||||
([#3391](https://github.com/GSD-redux/get-shit-done-redux/pull/3391))
|
||||
|
||||
- **`review.default_reviewers`** — no-flag `/gsd-review` can default to a configured
|
||||
reviewer subset. Explicit reviewer flags and `--all` still take precedence.
|
||||
([#3464](https://github.com/gsd-build/get-shit-done/pull/3464))
|
||||
([#3464](https://github.com/GSD-redux/get-shit-done-redux/pull/3464))
|
||||
|
||||
- **Optional fallow structural review pre-pass** — `code_quality.fallow.*` runs a
|
||||
structural pass before `/gsd-code-review`, writes `FALLOW.json`, and embeds
|
||||
structural findings in `REVIEW.md`.
|
||||
([#3424](https://github.com/gsd-build/get-shit-done/pull/3486))
|
||||
([#3424](https://github.com/GSD-redux/get-shit-done-redux/pull/3486))
|
||||
|
||||
- **Structured CLI error mode** — `gsd-tools --json-errors` returns machine-readable
|
||||
error envelopes for automation and SDK callers while preserving human-readable output
|
||||
by default.
|
||||
([#3255](https://github.com/gsd-build/get-shit-done/pull/3304))
|
||||
([#3255](https://github.com/GSD-redux/get-shit-done-redux/pull/3304))
|
||||
|
||||
### Changed
|
||||
|
||||
@@ -68,86 +68,86 @@ install migration, SDK readiness, and decimal-phase dependencies.
|
||||
"end-of-phase"` keeps human checks in verification blocks instead of scattering
|
||||
mid-flight checkpoint tasks. Set `"mid-flight"` to restore the previous blocking
|
||||
checkpoint behavior.
|
||||
([#3309](https://github.com/gsd-build/get-shit-done/pull/3325))
|
||||
([#3309](https://github.com/GSD-redux/get-shit-done-redux/pull/3325))
|
||||
|
||||
- **Quota and rate-limit failures get a distinct recovery path** — execute-phase
|
||||
classifies provider quota failures (`429`, `rate limit`, `usage limit`,
|
||||
`RESOURCE_EXHAUSTED`, etc.) and guides wait-and-resume instead of retry-now.
|
||||
([#3095](https://github.com/gsd-build/get-shit-done/pull/3490))
|
||||
([#3095](https://github.com/GSD-redux/get-shit-done-redux/pull/3490))
|
||||
|
||||
- **Milestone tags can be disabled** — `git.create_tag: false` lets projects with
|
||||
external release automation complete milestones without creating local tags.
|
||||
Existing tag collisions now fail clearly instead of overwriting tags.
|
||||
([#3086](https://github.com/gsd-build/get-shit-done/pull/3508))
|
||||
([#3086](https://github.com/GSD-redux/get-shit-done-redux/pull/3508))
|
||||
|
||||
- **Statusline context meter can move to the front** — `statusline.context_position:
|
||||
"front"` renders the context meter after the model name so it stays visible in narrow
|
||||
terminals.
|
||||
([#2937](https://github.com/gsd-build/get-shit-done/pull/3515))
|
||||
([#2937](https://github.com/GSD-redux/get-shit-done-redux/pull/3515))
|
||||
|
||||
- **Reasoning effort is transported with resolved model IDs** — runtime-aware model
|
||||
resolution now carries `reasoning_effort` where supported, including Codex config
|
||||
output and SDK query paths.
|
||||
([#3474](https://github.com/gsd-build/get-shit-done/pull/3483))
|
||||
([#3474](https://github.com/GSD-redux/get-shit-done-redux/pull/3483))
|
||||
|
||||
- **Shell command projection and SDK architecture seams deepened** — hook commands,
|
||||
path actions, subprocess execution, platform file I/O, SDK compatibility policy, and
|
||||
runtime skill policy now flow through narrower typed modules.
|
||||
([#3238](https://github.com/gsd-build/get-shit-done/pull/3238),
|
||||
[#3316](https://github.com/gsd-build/get-shit-done/pull/3316),
|
||||
[#3470](https://github.com/gsd-build/get-shit-done/pull/3470),
|
||||
[#3476](https://github.com/gsd-build/get-shit-done/pull/3476),
|
||||
[#3481](https://github.com/gsd-build/get-shit-done/pull/3481),
|
||||
[#3484](https://github.com/gsd-build/get-shit-done/pull/3484))
|
||||
([#3238](https://github.com/GSD-redux/get-shit-done-redux/pull/3238),
|
||||
[#3316](https://github.com/GSD-redux/get-shit-done-redux/pull/3316),
|
||||
[#3470](https://github.com/GSD-redux/get-shit-done-redux/pull/3470),
|
||||
[#3476](https://github.com/GSD-redux/get-shit-done-redux/pull/3476),
|
||||
[#3481](https://github.com/GSD-redux/get-shit-done-redux/pull/3481),
|
||||
[#3484](https://github.com/GSD-redux/get-shit-done-redux/pull/3484))
|
||||
|
||||
### Fixed
|
||||
|
||||
- **`project_code` phase directory prefixes apply consistently** — first-touch
|
||||
`/gsd-discuss-phase`, `/gsd-plan-phase`, import, gap-planning, and backlog creation
|
||||
paths now create prefixed phase directories consistently.
|
||||
([#3287](https://github.com/gsd-build/get-shit-done/pull/3292),
|
||||
[#3298](https://github.com/gsd-build/get-shit-done/pull/3306))
|
||||
([#3287](https://github.com/GSD-redux/get-shit-done-redux/pull/3292),
|
||||
[#3298](https://github.com/GSD-redux/get-shit-done-redux/pull/3306))
|
||||
|
||||
- **Phase completion is idempotent and refreshes state** — `state complete-phase` and
|
||||
`phase.complete` no longer leave stale `STATE.md` progress, focus, or body
|
||||
frontmatter fields behind.
|
||||
([#3489](https://github.com/gsd-build/get-shit-done/pull/3499),
|
||||
[#3517](https://github.com/gsd-build/get-shit-done/pull/3520))
|
||||
([#3489](https://github.com/GSD-redux/get-shit-done-redux/pull/3499),
|
||||
[#3517](https://github.com/GSD-redux/get-shit-done-redux/pull/3520))
|
||||
|
||||
- **Nested git worktrees are detected** — `/gsd-new-project` and ingest flows avoid
|
||||
creating nested `.git` directories when run inside an existing repository or
|
||||
worktree.
|
||||
([#3491](https://github.com/gsd-build/get-shit-done/pull/3502))
|
||||
([#3491](https://github.com/GSD-redux/get-shit-done-redux/pull/3502))
|
||||
|
||||
- **Codex install and hook migration are safer** — AoT hooks use event-name leaf keys,
|
||||
duplicate legacy `hooks.json` entries are removed, user hooks are preserved, and
|
||||
unsupported execute-phase worktrees are blocked.
|
||||
([#3346](https://github.com/gsd-build/get-shit-done/pull/3505),
|
||||
[#3357](https://github.com/gsd-build/get-shit-done/pull/3380),
|
||||
[#3360](https://github.com/gsd-build/get-shit-done/pull/3380))
|
||||
([#3346](https://github.com/GSD-redux/get-shit-done-redux/pull/3505),
|
||||
[#3357](https://github.com/GSD-redux/get-shit-done-redux/pull/3380),
|
||||
[#3360](https://github.com/GSD-redux/get-shit-done-redux/pull/3380))
|
||||
|
||||
- **SDK install readiness is durable** — `--sdk` now forces SDK deployment, stale shims
|
||||
are detected, Windows PATH probing is hardened, and "GSD SDK ready" only prints when
|
||||
the shim is reachable.
|
||||
([#3033](https://github.com/gsd-build/get-shit-done/issues/3033),
|
||||
[#3211](https://github.com/gsd-build/get-shit-done/pull/3282),
|
||||
[#3231](https://github.com/gsd-build/get-shit-done/pull/3249),
|
||||
[#3359](https://github.com/gsd-build/get-shit-done/pull/3380))
|
||||
([#3033](https://github.com/GSD-redux/get-shit-done-redux/issues/3033),
|
||||
[#3211](https://github.com/GSD-redux/get-shit-done-redux/pull/3282),
|
||||
[#3231](https://github.com/GSD-redux/get-shit-done-redux/pull/3249),
|
||||
[#3359](https://github.com/GSD-redux/get-shit-done-redux/pull/3380))
|
||||
|
||||
- **User custom skills are preserved during update detection** — `detect-custom-files`
|
||||
now scans `skills/`, preventing user-added skill files from being missed during
|
||||
patch preservation.
|
||||
([#3317](https://github.com/gsd-build/get-shit-done/pull/3318))
|
||||
([#3317](https://github.com/GSD-redux/get-shit-done-redux/pull/3318))
|
||||
|
||||
- **Decimal-phase `depends_on` references resolve correctly** — SDK phase indexing now
|
||||
expands same-phase short forms such as `depends_on: [01]` and warns on unresolved
|
||||
references.
|
||||
([#3488](https://github.com/gsd-build/get-shit-done/pull/3501))
|
||||
([#3488](https://github.com/GSD-redux/get-shit-done-redux/pull/3501))
|
||||
|
||||
- **`gsd-sdk query commit --files --respect-staged` preserves interactive staging** —
|
||||
respect-staged mode now avoids restaging pathspecs and commits only the already
|
||||
staged hunks within the requested file scope.
|
||||
([#3522](https://github.com/gsd-build/get-shit-done/pull/3528))
|
||||
([#3522](https://github.com/GSD-redux/get-shit-done-redux/pull/3528))
|
||||
|
||||
---
|
||||
|
||||
@@ -165,13 +165,13 @@ secure-phase audits, cross-runtime installs, and statusline parsing.
|
||||
|
||||
```bash
|
||||
# npm (global)
|
||||
npm install -g get-shit-done-cc@latest
|
||||
npm install -g get-shit-done-redux@latest
|
||||
|
||||
# npx (one-shot)
|
||||
npx get-shit-done-cc@latest
|
||||
npx get-shit-done-redux@latest
|
||||
|
||||
# Pin to this exact version
|
||||
npm install -g get-shit-done-cc@1.42.1
|
||||
npm install -g get-shit-done-redux@1.42.1
|
||||
```
|
||||
|
||||
The installer is idempotent — re-running on an existing install updates in-place,
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
Hotfix release. Published to npm under the `latest` tag.
|
||||
|
||||
```bash
|
||||
npx get-shit-done-cc@latest
|
||||
npx get-shit-done-redux@latest
|
||||
```
|
||||
|
||||
---
|
||||
@@ -11,7 +11,7 @@ npx get-shit-done-cc@latest
|
||||
## What's in this release
|
||||
|
||||
1.42.3 is a stability hotfix on top of 1.42.2. The headline is **Codex
|
||||
CLI 0.130.0 install routability** — after `npx get-shit-done-cc@latest
|
||||
CLI 0.130.0 install routability** — after `npx get-shit-done-redux@latest
|
||||
--codex`, `$gsd-*` skills now resolve correctly under Codex 0.130.0 and
|
||||
later, where the previous build left users with zero routable
|
||||
entrypoints. The release also ships **runtime-aware slash formatting**
|
||||
@@ -32,8 +32,8 @@ canonical Codex hooks, and the SDK bridge load path.
|
||||
leaving users with a successful-looking install and zero usable
|
||||
commands. Documented minimum Codex CLI version (0.130.0) inline in the
|
||||
Codex sections of `USER-GUIDE.md` and `CONFIGURATION.md`.
|
||||
([#3562](https://github.com/gsd-build/get-shit-done/pull/3568),
|
||||
[#3582](https://github.com/gsd-build/get-shit-done/pull/3609))
|
||||
([#3562](https://github.com/GSD-redux/get-shit-done-redux/pull/3568),
|
||||
[#3582](https://github.com/GSD-redux/get-shit-done-redux/pull/3609))
|
||||
|
||||
- **Runtime-aware slash formatter for user-facing emissions** —
|
||||
`runtime-slash.cjs` produces `/gsd-<cmd>` for skills-based runtimes
|
||||
@@ -43,7 +43,7 @@ canonical Codex hooks, and the SDK bridge load path.
|
||||
`milestone`, `validate-command-router`, `workstream`, `profile-output`,
|
||||
`drift`, `gsd2-import`, and `commands` now paste cleanly into the
|
||||
active runtime.
|
||||
([#3584](https://github.com/gsd-build/get-shit-done/pull/3606))
|
||||
([#3584](https://github.com/GSD-redux/get-shit-done-redux/pull/3606))
|
||||
|
||||
- **Argv-based subprocess for `check.ship-ready`** — every git/gh probe
|
||||
in `sdk/src/query/check-ship-ready.ts` now uses `execFileSync` with an
|
||||
@@ -51,7 +51,7 @@ canonical Codex hooks, and the SDK bridge load path.
|
||||
Closes a shell-injection class where a malicious branch name (e.g.
|
||||
`foo;touch INJ;bar`) interpolated into `git config --get
|
||||
branch.<name>.merge` triggered arbitrary code execution.
|
||||
([#3587](https://github.com/gsd-build/get-shit-done/pull/3611))
|
||||
([#3587](https://github.com/GSD-redux/get-shit-done-redux/pull/3611))
|
||||
|
||||
- **`init.plan-phase` surfaces `phase_status`; `/gsd:plan-phase` gates
|
||||
on closed phases** — `init.plan-phase` payload now carries the
|
||||
@@ -60,54 +60,54 @@ canonical Codex hooks, and the SDK bridge load path.
|
||||
short-circuits on `Complete` (with `--force` override), and
|
||||
`--reviews` against a closed phase hard-errors with no override.
|
||||
Prevents accidental re-planning over shipped code.
|
||||
([#3569](https://github.com/gsd-build/get-shit-done/pull/3581))
|
||||
([#3569](https://github.com/GSD-redux/get-shit-done-redux/pull/3581))
|
||||
|
||||
- **Canonical `[features].hooks` for Codex configs, legacy alias
|
||||
recognized** — Codex config emission uses the canonical
|
||||
`features.hooks` key while still accepting the legacy `codex_hooks`
|
||||
shape on read. Fixes the install where the previous key drift left
|
||||
Codex unable to find managed hooks.
|
||||
([#3566](https://github.com/gsd-build/get-shit-done/pull/3573))
|
||||
([#3566](https://github.com/GSD-redux/get-shit-done-redux/pull/3573))
|
||||
|
||||
- **SDK bridge loads via the public package export** — fixes a stale
|
||||
internal path that broke SDK dispatch after install on some package
|
||||
layouts.
|
||||
([#3567](https://github.com/gsd-build/get-shit-done/pull/3574))
|
||||
([#3567](https://github.com/GSD-redux/get-shit-done-redux/pull/3574))
|
||||
|
||||
- **W006/W007 health warnings skip archived and future phases** —
|
||||
`/gsd:health` no longer flags phases that are intentionally
|
||||
unimplemented (future) or archived as missing-on-disk or
|
||||
missing-from-roadmap.
|
||||
([#3559](https://github.com/gsd-build/get-shit-done/pull/3565),
|
||||
[#3560](https://github.com/gsd-build/get-shit-done/pull/3564))
|
||||
([#3559](https://github.com/GSD-redux/get-shit-done-redux/pull/3565),
|
||||
[#3560](https://github.com/GSD-redux/get-shit-done-redux/pull/3564))
|
||||
|
||||
- **Ultraplan runtime gates on Claude Code markers** — `/gsd:ultraplan`
|
||||
detects the runtime via Claude Code markers and fails closed when
|
||||
the version is unavailable, instead of running against an unknown
|
||||
runtime.
|
||||
([#3561](https://github.com/gsd-build/get-shit-done/pull/3563))
|
||||
([#3561](https://github.com/GSD-redux/get-shit-done-redux/pull/3563))
|
||||
|
||||
- **Padded phase IDs match unpadded ROADMAP prose** — phase routing
|
||||
through `phaseMarkdownRegexSource` handles `02.7` ↔ `2.7` and
|
||||
similar padding mismatches so `/gsd:phase complete 02` updates a
|
||||
ROADMAP that uses the short `### Phase 2:` form.
|
||||
([#3537](https://github.com/gsd-build/get-shit-done/pull/3538))
|
||||
([#3537](https://github.com/GSD-redux/get-shit-done-redux/pull/3538))
|
||||
|
||||
- **W007 ignores archived phase directories** — phases under
|
||||
`.planning/milestones/v*/` no longer trigger
|
||||
"exists on disk but not in roadmap" warnings against the active
|
||||
roadmap.
|
||||
([#3560](https://github.com/gsd-build/get-shit-done/pull/3564))
|
||||
([#3560](https://github.com/GSD-redux/get-shit-done-redux/pull/3564))
|
||||
|
||||
- **Prompt-user migration actions resolve in non-TTY runs** —
|
||||
`installer-migration-authoring` flows complete cleanly under CI /
|
||||
non-interactive shells; error grouping clarified.
|
||||
([#3541](https://github.com/gsd-build/get-shit-done/pull/3547))
|
||||
([#3541](https://github.com/GSD-redux/get-shit-done-redux/pull/3547))
|
||||
|
||||
- **Executor agents forbidden from `git stash`** — execution agents
|
||||
no longer use shared stash storage, which violated worktree
|
||||
isolation when multiple agents ran in parallel.
|
||||
([#3542](https://github.com/gsd-build/get-shit-done/pull/3546))
|
||||
([#3542](https://github.com/GSD-redux/get-shit-done-redux/pull/3546))
|
||||
|
||||
- **Configuration manifests load from the installed payload** —
|
||||
`configuration.generated.cjs` looks in the installed
|
||||
@@ -115,7 +115,7 @@ canonical Codex hooks, and the SDK bridge load path.
|
||||
source-checkout `sdk/shared/`. Fixes the install where the manifest
|
||||
loader failed on the runtime layout because the source-tree path
|
||||
doesn't exist after install.
|
||||
([#3571](https://github.com/gsd-build/get-shit-done/pull/3572))
|
||||
([#3571](https://github.com/GSD-redux/get-shit-done-redux/pull/3572))
|
||||
|
||||
---
|
||||
|
||||
@@ -136,13 +136,13 @@ SDK install readiness, and decimal-phase dependencies.
|
||||
|
||||
```bash
|
||||
# npm (global)
|
||||
npm install -g get-shit-done-cc@latest
|
||||
npm install -g get-shit-done-redux@latest
|
||||
|
||||
# npx (one-shot)
|
||||
npx get-shit-done-cc@latest
|
||||
npx get-shit-done-redux@latest
|
||||
|
||||
# Pin to this exact version
|
||||
npm install -g get-shit-done-cc@1.42.3
|
||||
npm install -g get-shit-done-redux@1.42.3
|
||||
```
|
||||
|
||||
The installer is idempotent — re-running on an existing install
|
||||
|
||||
@@ -3,9 +3,9 @@
|
||||
First canary cut for the **1.50.0** train. Published to npm under the `canary` dist-tag.
|
||||
|
||||
```bash
|
||||
npx get-shit-done-cc@canary
|
||||
npx get-shit-done-redux@canary
|
||||
# or pin exact:
|
||||
npm install -g get-shit-done-cc@1.50.0-canary.1
|
||||
npm install -g get-shit-done-redux@1.50.0-canary.1
|
||||
```
|
||||
|
||||
> **Canary stream caveat.** Canary builds come from the long-lived `dev` integration branch and may carry rough edges that the `next` (RC) and `latest` (stable) channels never see. Use canary when you want to exercise in-flight features early and report findings; do NOT pin production projects to it. See [CANARY.md](CANARY.md) for the stream policy and rollback path.
|
||||
@@ -14,11 +14,11 @@ npm install -g get-shit-done-cc@1.50.0-canary.1
|
||||
|
||||
## Headline: Vertical MVP / TDD / UAT planning track
|
||||
|
||||
The 1.50.0 train opens with a four-phase vertical slice that adds an end-to-end "MVP mode" to the GSD planning pipeline — from project kickoff, through phase planning, through execution, through verification. Issue [#2826](https://github.com/gsd-build/get-shit-done/issues/2826) is the umbrella PRD.
|
||||
The 1.50.0 train opens with a four-phase vertical slice that adds an end-to-end "MVP mode" to the GSD planning pipeline — from project kickoff, through phase planning, through execution, through verification. Issue [#2826](https://github.com/GSD-redux/get-shit-done-redux/issues/2826) is the umbrella PRD.
|
||||
|
||||
### What's new
|
||||
|
||||
#### `/gsd plan-phase --mvp` — vertical-slice planning ([#2867](https://github.com/gsd-build/get-shit-done/pull/2867))
|
||||
#### `/gsd plan-phase --mvp` — vertical-slice planning ([#2867](https://github.com/GSD-redux/get-shit-done-redux/pull/2867))
|
||||
|
||||
`/gsd plan-phase` learns a `--mvp` flag that flips the planner into vertical-slice mode. The planner reads `**Mode:** mvp` from a phase's ROADMAP entry, an explicit `--mvp` CLI override, or `workflow.mvp_mode` in `.planning/config.json` (precedence in that order, with the CLI flag winning). Under MVP mode the planner:
|
||||
|
||||
@@ -28,7 +28,7 @@ The 1.50.0 train opens with a four-phase vertical slice that adds an end-to-end
|
||||
|
||||
New required-reading injection: `references/planner-mvp-mode.md`. New parser surface: `roadmap.cjs` extracts a `mode` field on every phase lookup.
|
||||
|
||||
#### `/gsd mvp-phase <N>` — guided user-story phase framing ([#2874](https://github.com/gsd-build/get-shit-done/pull/2874))
|
||||
#### `/gsd mvp-phase <N>` — guided user-story phase framing ([#2874](https://github.com/GSD-redux/get-shit-done-redux/pull/2874))
|
||||
|
||||
A new top-level command that walks the user through framing a phase as a vertical MVP slice before planning. Three structured prompts capture an "As a / I want to / So that" user story. If the story is too large, an interactive SPIDR (Spike / Path / Interface / Data / Rule) splitting flow surfaces a list of `/gsd add-phase` invocations to break the work apart. The command then:
|
||||
|
||||
@@ -37,19 +37,19 @@ A new top-level command that walks the user through framing a phase as a vertica
|
||||
|
||||
Two new references: [`spidr-splitting.md`](../get-shit-done/references/spidr-splitting.md), [`user-story-template.md`](../get-shit-done/references/user-story-template.md).
|
||||
|
||||
#### Execute-phase MVP+TDD runtime gate ([#2878](https://github.com/gsd-build/get-shit-done/pull/2878))
|
||||
#### Execute-phase MVP+TDD runtime gate ([#2878](https://github.com/GSD-redux/get-shit-done-redux/pull/2878))
|
||||
|
||||
When `MVP_MODE` and `TDD_MODE` are both true at execution time, `execute-phase` adds a per-task gate that requires a `test(<phase>-<plan>):` commit to exist before the corresponding `feat(...)` commit. The reference [`execute-mvp-tdd.md`](../get-shit-done/references/execute-mvp-tdd.md) documents the contract; the executor agent (`agents/gsd-executor.md`) gains an MVP+TDD Gate section that explains when the gate trips, what evidence it expects, and how to escalate via the documented escape hatch.
|
||||
|
||||
> **Known canary-bake item.** The current bash gate snippet uses some workflow variables that aren't fully wired (`${PLAN_ID}`, `${TASK_TDD}`) and the documented `--force-mvp-gate` escape hatch is referenced in the user-facing error message but not yet implemented in the argument parser. These are tracked as canary-bake follow-ups; the gate itself is functional for the dominant code path.
|
||||
|
||||
#### Verify-work MVP-mode UAT framing ([#2880](https://github.com/gsd-build/get-shit-done/pull/2880))
|
||||
#### Verify-work MVP-mode UAT framing ([#2880](https://github.com/GSD-redux/get-shit-done-redux/pull/2880))
|
||||
|
||||
Under MVP mode, `verify-work` flips the UAT script's framing so user-flow steps come **before** technical correctness checks — the inverse of the default order. The verifier agent gains a `mvp_mode_verification` section. New reference: [`verify-mvp-mode.md`](../get-shit-done/references/verify-mvp-mode.md).
|
||||
|
||||
A user-story format guard at the top of `extract_tests` will halt verification if a phase claims `**Mode:** mvp` but its `**Goal:**` doesn't parse as `As a … I want to … so that …` — pointing the user at `/gsd mvp-phase <N>` to repair.
|
||||
|
||||
#### Discovery & progress surfaces ([#2883](https://github.com/gsd-build/get-shit-done/pull/2883))
|
||||
#### Discovery & progress surfaces ([#2883](https://github.com/GSD-redux/get-shit-done-redux/pull/2883))
|
||||
|
||||
The MVP slice closes out with read-side surfaces:
|
||||
|
||||
@@ -62,7 +62,7 @@ The MVP slice closes out with read-side surfaces:
|
||||
|
||||
## Bonus fixes also in this canary
|
||||
|
||||
- **`/gsd-progress` no longer cites stale CLAUDE.md project blocks** as the source for the "Next Up" section ([#2912](https://github.com/gsd-build/get-shit-done/issues/2912)) — explicit context-authority directive added to the report step.
|
||||
- **`/gsd-progress` no longer cites stale CLAUDE.md project blocks** as the source for the "Next Up" section ([#2912](https://github.com/GSD-redux/get-shit-done-redux/issues/2912)) — explicit context-authority directive added to the report step.
|
||||
|
||||
(Other recent main-stream fixes — agent-skills CLI JSON wrap, audit-open ReferenceError, execute-phase branching, Hermes runtime — target the `next` stream and will arrive in the canary when they land in `dev`.)
|
||||
|
||||
@@ -72,17 +72,17 @@ The MVP slice closes out with read-side surfaces:
|
||||
|
||||
```bash
|
||||
# Try the canary
|
||||
npx get-shit-done-cc@canary
|
||||
npx get-shit-done-redux@canary
|
||||
|
||||
# Or pin exact
|
||||
npm install -g get-shit-done-cc@1.50.0-canary.1
|
||||
npm install -g get-shit-done-redux@1.50.0-canary.1
|
||||
```
|
||||
|
||||
The installer's defensive purge will rewrite stale config blocks left by older GSD versions on first run. No manual cleanup needed.
|
||||
|
||||
## Reporting issues
|
||||
|
||||
If something breaks on canary, file against [the issue tracker](https://github.com/gsd-build/get-shit-done/issues) with the `bug` template and mention `1.50.0-canary.1` so it gets routed back into the dev stream rather than the stable stream.
|
||||
If something breaks on canary, file against [the issue tracker](https://github.com/GSD-redux/get-shit-done-redux/issues) with the `bug` template and mention `1.50.0-canary.1` so it gets routed back into the dev stream rather than the stable stream.
|
||||
|
||||
## What ships next in this train
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# STATE.md Phase Lifecycle Frontmatter
|
||||
|
||||
> **Status:** Read-side shipped in v1.40.0 (issue
|
||||
> [#2833](https://github.com/gsd-build/get-shit-done/issues/2833)).
|
||||
> [#2833](https://github.com/GSD-redux/get-shit-done-redux/issues/2833)).
|
||||
> `parseStateMd()` reads the four frontmatter fields below and
|
||||
> `formatGsdState()` renders the in-flight / idle / progress scenes.
|
||||
> SDK write-side support to maintain the fields automatically is tracked
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
This project's `tests/` directory uses **filename suffix markers** to group tests into named suites. The harness `scripts/run-tests.cjs` filters by suite when given `--suite <name>`. Without a flag it runs every `*.test.cjs` file (the historical default — unchanged).
|
||||
|
||||
> Tracked by issue [#3597](https://github.com/gsd-build/get-shit-done/issues/3597).
|
||||
> Tracked by issue [#3597](https://github.com/GSD-redux/get-shit-done-redux/issues/3597).
|
||||
|
||||
## Suites
|
||||
|
||||
|
||||
@@ -1219,7 +1219,7 @@ For the full audit, harness reference, and the composition note with `model_prof
|
||||
|
||||
### Using Non-Claude Runtimes (Codex, OpenCode, Gemini CLI, Kilo)
|
||||
|
||||
> **Codex CLI minimum supported version: `0.130.0`** (issue [#3562](https://github.com/gsd-build/get-shit-done/issues/3562)).
|
||||
> **Codex CLI minimum supported version: `0.130.0`** (issue [#3562](https://github.com/GSD-redux/get-shit-done-redux/issues/3562)).
|
||||
>
|
||||
> Codex CLI [0.130.0](https://github.com/openai/codex/releases/tag/rust-v0.130.0) (released 2026-05-08) removed extra-skills-roots discovery via [openai/codex#21485](https://github.com/openai/codex/pull/21485). From that version onward, Codex only discovers commands from `~/.codex/skills/<name>/SKILL.md` (user root), `<project>/.codex/skills/` (cwd root), and registered plugin roots. The GSD installer writes `~/.codex/skills/gsd-<name>/SKILL.md` directly so `$gsd-help`, `$gsd-new-project`, etc. are discoverable after restart.
|
||||
>
|
||||
@@ -1263,10 +1263,10 @@ Cline uses a rules-based integration — GSD installs as `.clinerules` rather th
|
||||
|
||||
```bash
|
||||
# Global install (applies to all projects)
|
||||
npx get-shit-done-cc --cline --global
|
||||
npx get-shit-done-redux --cline --global
|
||||
|
||||
# Local install (this project only)
|
||||
npx get-shit-done-cc --cline --local
|
||||
npx get-shit-done-redux --cline --local
|
||||
```
|
||||
|
||||
Global installs write to `~/.cline/`. Local installs write to `./.cline/`. No custom slash commands are registered — GSD rules are loaded automatically by Cline from the rules file.
|
||||
@@ -1276,7 +1276,7 @@ Global installs write to `~/.cline/`. Local installs write to `./.cline/`. No cu
|
||||
CodeBuddy uses a skills-based integration.
|
||||
|
||||
```bash
|
||||
npx get-shit-done-cc --codebuddy --global
|
||||
npx get-shit-done-redux --codebuddy --global
|
||||
```
|
||||
|
||||
Skills are installed to `~/.codebuddy/skills/gsd-*/SKILL.md`.
|
||||
@@ -1286,7 +1286,7 @@ Skills are installed to `~/.codebuddy/skills/gsd-*/SKILL.md`.
|
||||
Qwen Code uses the same open skills standard as Claude Code 2.1.88+.
|
||||
|
||||
```bash
|
||||
npx get-shit-done-cc --qwen --global
|
||||
npx get-shit-done-redux --qwen --global
|
||||
```
|
||||
|
||||
Skills are installed to `~/.qwen/skills/gsd-*/SKILL.md`. Use the `QWEN_CONFIG_DIR` environment variable to override the default install path.
|
||||
@@ -1295,12 +1295,12 @@ Skills are installed to `~/.qwen/skills/gsd-*/SKILL.md`. Use the `QWEN_CONFIG_DI
|
||||
|
||||
Many supported runtimes ship a prerelease edition alongside their stable release — Windsurf Next, Cursor Nightly, VS Code Insiders, Codex preview channels, JetBrains EAP, and so on. Prerelease editions read from a sibling configuration directory, so the default install path won't reach them.
|
||||
|
||||
GSD does not enumerate prerelease editions as separate named runtimes. They are accommodated through the existing `<RUNTIME>_CONFIG_DIR` environment variables and the free-string runtime policy (see [#2517](https://github.com/gsd-build/get-shit-done/issues/2517)) — installs work, paths resolve, GSD operates. Prerelease editions are **best-effort and not separately tested** as part of release CI.
|
||||
GSD does not enumerate prerelease editions as separate named runtimes. They are accommodated through the existing `<RUNTIME>_CONFIG_DIR` environment variables and the free-string runtime policy (see [#2517](https://github.com/GSD-redux/get-shit-done-redux/issues/2517)) — installs work, paths resolve, GSD operates. Prerelease editions are **best-effort and not separately tested** as part of release CI.
|
||||
|
||||
**Pattern.** Set the runtime's `*_CONFIG_DIR` env var to the prerelease directory before running the installer:
|
||||
|
||||
```bash
|
||||
WINDSURF_CONFIG_DIR=~/.codeium/windsurf-next npx get-shit-done-cc@latest --windsurf --global
|
||||
WINDSURF_CONFIG_DIR=~/.codeium/windsurf-next npx get-shit-done-redux@latest --windsurf --global
|
||||
```
|
||||
|
||||
Select the corresponding stable runtime in the installer prompt. Skills land in the prerelease directory; commands appear in the prerelease editor.
|
||||
@@ -1340,7 +1340,7 @@ Since v1.17, the installer backs up locally modified files to `gsd-local-patches
|
||||
|
||||
### Cannot Update via npm
|
||||
|
||||
If `npx get-shit-done-cc` fails due to npm outages or network restrictions, see [docs/manual-update.md](manual-update.md) for a step-by-step manual update procedure that works without npm access.
|
||||
If `npx get-shit-done-redux` fails due to npm outages or network restrictions, see [docs/manual-update.md](manual-update.md) for a step-by-step manual update procedure that works without npm access.
|
||||
|
||||
### Surface GSD Update Notifications Without GSD's Statusline
|
||||
|
||||
@@ -1362,7 +1362,7 @@ GSD update available: 1.39.0 → 1.40.0. Run /gsd-update.
|
||||
|
||||
The banner is silent when no update is available. If the cache file is corrupt, GSD emits one diagnostic line (`GSD update check failed.`) and stays silent for 24 hours so a broken cache does not nag every session.
|
||||
|
||||
**Opt-out / removal:** delete the SessionStart hook entry that references `gsd-update-banner.js` from your runtime's `settings.json` (Claude Code: `~/.claude/settings.json`; Gemini: `~/.gemini/settings.json`). `npx get-shit-done-cc --uninstall` removes both the script and the registration in one pass.
|
||||
**Opt-out / removal:** delete the SessionStart hook entry that references `gsd-update-banner.js` from your runtime's `settings.json` (Claude Code: `~/.claude/settings.json`; Gemini: `~/.gemini/settings.json`). `npx get-shit-done-redux --uninstall` removes both the script and the registration in one pass.
|
||||
|
||||
The banner is not offered when GSD's statusline is installed — that channel already surfaces update info, so re-prompting would be noise.
|
||||
|
||||
|
||||
@@ -30,8 +30,8 @@ The catalog owns:
|
||||
- agent → dynamic-routing default tier mapping
|
||||
|
||||
The canonical file lives in a location both packages ship:
|
||||
- repo root package (`get-shit-done-cc`) includes it
|
||||
- standalone SDK package (`@gsd-build/sdk`) includes it
|
||||
- repo root package (`get-shit-done-redux`) includes it
|
||||
- standalone SDK package (`@gsd-redux/sdk`) includes it
|
||||
|
||||
Both CJS and SDK load this exact file. Neither package keeps its own independent list.
|
||||
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
# SDK Package Seam Module owns SDK-to-get-shit-done-cc compatibility
|
||||
# SDK Package Seam Module owns SDK-to-get-shit-done-redux compatibility
|
||||
|
||||
- **Status:** Accepted
|
||||
- **Date:** 2026-05-07
|
||||
|
||||
We decided to define one explicit SDK Package Seam Module for the `@gsd-build/sdk` → `get-shit-done-cc` transition. During this transition, install-layout probing, legacy `gsd-tools.cjs` discovery, legacy `core.cjs` discovery, and compatibility-only missing-asset diagnostics must live behind one seam instead of leaking across SDK Modules. This keeps callers thin, raises leverage for standalone-SDK testing, and improves locality by making package-readiness bugs land in one place. First tracer-bullet slice: add one compatibility Adapter Module at this seam and migrate current legacy asset callers onto it before broader native replacement work.
|
||||
We decided to define one explicit SDK Package Seam Module for the `@gsd-redux/sdk` → `get-shit-done-redux` transition. During this transition, install-layout probing, legacy `gsd-tools.cjs` discovery, legacy `core.cjs` discovery, and compatibility-only missing-asset diagnostics must live behind one seam instead of leaking across SDK Modules. This keeps callers thin, raises leverage for standalone-SDK testing, and improves locality by making package-readiness bugs land in one place. First tracer-bullet slice: add one compatibility Adapter Module at this seam and migrate current legacy asset callers onto it before broader native replacement work.
|
||||
|
||||
Runtime-global skills directory resolution is explicitly out of scope for this seam. That policy varies by runtime (`claude`, `codex`, `cline`, etc.) rather than by legacy package/install layout, so it now lives in a separate Runtime-Global Skills Policy Module consumed by `agent-skills` and `skill-manifest`.
|
||||
|
||||
@@ -48,4 +48,4 @@ Future direction (deferred): the hub should consult `manifest` to detect per-sub
|
||||
## References
|
||||
|
||||
- Extends ADR-0001 (Dispatch Policy Module) — the hub implements the no-throw + structured-result contract ADR-0001 established for the SDK query layer, applying it to the CJS adapter layer.
|
||||
- Issue: [#3788](https://github.com/gsd-build/get-shit-done/issues/3788)
|
||||
- Issue: [#3788](https://github.com/GSD-redux/get-shit-done-redux/issues/3788)
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
- **Status:** Proposed
|
||||
- **Date:** 2026-05-14
|
||||
- **Tracking issue:** [#3524](https://github.com/gsd-build/get-shit-done/issues/3524)
|
||||
- **Tracking issue:** [#3524](https://github.com/GSD-redux/get-shit-done-redux/issues/3524)
|
||||
- **Related PRD:** [`docs/prd/3524-cjs-sdk-hard-seam.md`](../prd/3524-cjs-sdk-hard-seam.md)
|
||||
- **Extends:** ADR-0005 (seam map) — adds the **Shared-Module Source Policy** to the seam family
|
||||
- **Defers to:** ADR-0001 (Dispatch Policy Module), ADR-0003 (Model Catalog Module), ADR-0004 (Planning Workspace Module), ADR-0006 (Planning Path Projection Module), ADR-0009 (Shell Command Projection Module — post-Phase 3–4, also subsuming superseded ADR-0010)
|
||||
|
||||
@@ -36,7 +36,7 @@ See **[CONTRIBUTING.md — "Proposing an ADR or PRD"](../../CONTRIBUTING.md#prop
|
||||
| [0004-worktree-workstream-seam-module.md](0004-worktree-workstream-seam-module.md) | Planning Workspace Module as single seam for worktree and workstream state | Accepted |
|
||||
| [0005-sdk-architecture-seam-map.md](0005-sdk-architecture-seam-map.md) | SDK Architecture seam map for query/runtime surfaces | Accepted |
|
||||
| [0006-planning-path-projection-module.md](0006-planning-path-projection-module.md) | Planning Path Projection Module for SDK query handlers | Accepted |
|
||||
| [0007-sdk-package-seam-module.md](0007-sdk-package-seam-module.md) | SDK Package Seam Module owns SDK-to-get-shit-done-cc compatibility | Accepted |
|
||||
| [0007-sdk-package-seam-module.md](0007-sdk-package-seam-module.md) | SDK Package Seam Module owns SDK-to-get-shit-done-redux compatibility | Accepted |
|
||||
| [0008-installer-migration-module.md](0008-installer-migration-module.md) | Installer Migration Module owns install-time upgrade safety | Accepted |
|
||||
| [0009-shell-command-projection-module.md](0009-shell-command-projection-module.md) | Shell Command Projection Module owns runtime-aware OS command rendering | Accepted |
|
||||
| [0010-file-operation-engine-module.md](0010-file-operation-engine-module.md) | File Operation Engine Module owns safe runtime/config file mutations | Proposed |
|
||||
|
||||
@@ -9,13 +9,13 @@ The CJS↔SDK hard-seam migration (#3524) eliminates a class of config-schema dr
|
||||
|
||||
| Phase | PR | Summary |
|
||||
|-------|----|---------|
|
||||
| Phase 1 | [#3531](https://github.com/gsd-build/get-shit-done/pull/3531) | `state-document` Shared Module — source-of-truth at `sdk/src/state-document/`, generator, freshness check, CJS Adapter (`state-document.generated.cjs`). Worked example for the pattern. |
|
||||
| Phase 2 | [#3540](https://github.com/gsd-build/get-shit-done/pull/3540) | `configuration` Shared Module — `sdk/shared/config-schema.manifest.json` + `sdk/shared/config-defaults.manifest.json` as data manifests; generator + freshness check + CJS Adapter. |
|
||||
| Phase 3 | [#3548](https://github.com/gsd-build/get-shit-done/pull/3548) | `workstream-inventory` Shared Module — source-of-truth at `sdk/src/workstream-inventory/`, builder, generator, freshness check, CJS Adapter. |
|
||||
| Phase 4 | [#3554](https://github.com/gsd-build/get-shit-done/pull/3554) | `project-root` Shared Module — source-of-truth at `sdk/src/project-root/`, generator, freshness check, CJS Adapter. |
|
||||
| Phase 5.0 | [#3558](https://github.com/gsd-build/get-shit-done/pull/3558) | `runtime-bridge-sync` worker — enables CJS-side execution of SDK native handlers; state.* family initial router delegation via `executeForCjs`. |
|
||||
| Phase 5.1 | [#3574](https://github.com/gsd-build/get-shit-done/pull/3574) | `state.*` router delegation complete — all known state subcommands delegated via `executeForCjs`; Phase 5.0 worker bug fix. |
|
||||
| Phase 6 | [#3577](https://github.com/gsd-build/get-shit-done/pull/3577) (closes [#3575](https://github.com/gsd-build/get-shit-done/issues/3575)) | Enforcement hardening + Final completion — hand-sync drift lint, CODEOWNERS, 6 family-router migrations, 5 Shared Module migrations (plan-scan, secrets, schema-detect, decisions, workstream-name-policy), workstream native support, parity fixes. Migration feature-complete: 22 cooperating siblings, 0 backlog pairs. |
|
||||
| Phase 1 | [#3531](https://github.com/GSD-redux/get-shit-done-redux/pull/3531) | `state-document` Shared Module — source-of-truth at `sdk/src/state-document/`, generator, freshness check, CJS Adapter (`state-document.generated.cjs`). Worked example for the pattern. |
|
||||
| Phase 2 | [#3540](https://github.com/GSD-redux/get-shit-done-redux/pull/3540) | `configuration` Shared Module — `sdk/shared/config-schema.manifest.json` + `sdk/shared/config-defaults.manifest.json` as data manifests; generator + freshness check + CJS Adapter. |
|
||||
| Phase 3 | [#3548](https://github.com/GSD-redux/get-shit-done-redux/pull/3548) | `workstream-inventory` Shared Module — source-of-truth at `sdk/src/workstream-inventory/`, builder, generator, freshness check, CJS Adapter. |
|
||||
| Phase 4 | [#3554](https://github.com/GSD-redux/get-shit-done-redux/pull/3554) | `project-root` Shared Module — source-of-truth at `sdk/src/project-root/`, generator, freshness check, CJS Adapter. |
|
||||
| Phase 5.0 | [#3558](https://github.com/GSD-redux/get-shit-done-redux/pull/3558) | `runtime-bridge-sync` worker — enables CJS-side execution of SDK native handlers; state.* family initial router delegation via `executeForCjs`. |
|
||||
| Phase 5.1 | [#3574](https://github.com/GSD-redux/get-shit-done-redux/pull/3574) | `state.*` router delegation complete — all known state subcommands delegated via `executeForCjs`; Phase 5.0 worker bug fix. |
|
||||
| Phase 6 | [#3577](https://github.com/GSD-redux/get-shit-done-redux/pull/3577) (closes [#3575](https://github.com/GSD-redux/get-shit-done-redux/issues/3575)) | Enforcement hardening + Final completion — hand-sync drift lint, CODEOWNERS, 6 family-router migrations, 5 Shared Module migrations (plan-scan, secrets, schema-detect, decisions, workstream-name-policy), workstream native support, parity fixes. Migration feature-complete: 22 cooperating siblings, 0 backlog pairs. |
|
||||
|
||||
---
|
||||
|
||||
@@ -203,13 +203,13 @@ If the module affects `CONTEXT.md`'s module inventory, update that section. Also
|
||||
|
||||
Add the new source-of-truth path to `.github/CODEOWNERS` under the Phase 6 block to make the architectural ownership explicit.
|
||||
|
||||
**Reference:** Phase 1 PR [#3531](https://github.com/gsd-build/get-shit-done/pull/3531) — `state-document` migration.
|
||||
**Reference:** Phase 1 PR [#3531](https://github.com/GSD-redux/get-shit-done-redux/pull/3531) — `state-document` migration.
|
||||
|
||||
---
|
||||
|
||||
## Guide: Adding a new canonical command
|
||||
|
||||
Use this when adding a new `gsd-sdk query <family>.<subcommand>` that should be handled natively in the SDK (not delegated to CJS). Phase 5.1's `state.update` migration (PR [#3574](https://github.com/gsd-build/get-shit-done/pull/3574)) is the worked example.
|
||||
Use this when adding a new `gsd-sdk query <family>.<subcommand>` that should be handled natively in the SDK (not delegated to CJS). Phase 5.1's `state.update` migration (PR [#3574](https://github.com/GSD-redux/get-shit-done-redux/pull/3574)) is the worked example.
|
||||
|
||||
**Step 1 — Declare in the command manifest**
|
||||
|
||||
@@ -232,7 +232,7 @@ Add a test in `tests/<family>-command-router.test.cjs` (or a new file if the fam
|
||||
|
||||
This test enforces that the delegate and the native handler stay aligned.
|
||||
|
||||
**Reference:** Phase 5.1 PR [#3574](https://github.com/gsd-build/get-shit-done/pull/3574) — `state.update` delegation.
|
||||
**Reference:** Phase 5.1 PR [#3574](https://github.com/GSD-redux/get-shit-done-redux/pull/3574) — `state.update` delegation.
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# Issue tracker: GitHub
|
||||
|
||||
Issues for this repo live in **GitHub Issues** at `gsd-build/get-shit-done`.
|
||||
Issues for this repo live in **GitHub Issues** at `GSD-redux/get-shit-done-redux`.
|
||||
|
||||
## Auth
|
||||
|
||||
@@ -9,19 +9,19 @@ repo-local `.envrc` before running `gh`.
|
||||
|
||||
## Conventions
|
||||
|
||||
- **Create**: `gh issue create --repo gsd-build/get-shit-done --title "..." --body "..."`
|
||||
- **Read**: `gh issue view <number> --repo gsd-build/get-shit-done --comments`
|
||||
- **List**: `gh issue list --repo gsd-build/get-shit-done --state open --json number,title,labels --jq '...'`
|
||||
- **Comment**: `gh issue comment <number> --repo gsd-build/get-shit-done --body "..."`
|
||||
- **Label**: `gh issue edit <number> --repo gsd-build/get-shit-done --add-label "..." --remove-label "..."`
|
||||
- **Close**: `gh issue close <number> --repo gsd-build/get-shit-done --comment "..."`
|
||||
- **Create**: `gh issue create --repo GSD-redux/get-shit-done-redux --title "..." --body "..."`
|
||||
- **Read**: `gh issue view <number> --repo GSD-redux/get-shit-done-redux --comments`
|
||||
- **List**: `gh issue list --repo GSD-redux/get-shit-done-redux --state open --json number,title,labels --jq '...'`
|
||||
- **Comment**: `gh issue comment <number> --repo GSD-redux/get-shit-done-redux --body "..."`
|
||||
- **Label**: `gh issue edit <number> --repo GSD-redux/get-shit-done-redux --add-label "..." --remove-label "..."`
|
||||
- **Close**: `gh issue close <number> --repo GSD-redux/get-shit-done-redux --comment "..."`
|
||||
|
||||
Always pass `--repo gsd-build/get-shit-done` explicitly — the local clone has multiple remotes and `gh` may resolve to the wrong one.
|
||||
Always pass `--repo GSD-redux/get-shit-done-redux` explicitly — the local clone has multiple remotes and `gh` may resolve to the wrong one.
|
||||
|
||||
## When a skill says "publish to the issue tracker"
|
||||
|
||||
Create a GitHub issue at `gsd-build/get-shit-done`.
|
||||
Create a GitHub issue at `GSD-redux/get-shit-done-redux`.
|
||||
|
||||
## When a skill says "fetch the relevant ticket"
|
||||
|
||||
Run `gh issue view <number> --repo gsd-build/get-shit-done --comments`.
|
||||
Run `gh issue view <number> --repo GSD-redux/get-shit-done-redux --comments`.
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# Triage Labels
|
||||
|
||||
Maps the five canonical triage roles to the actual label strings in `gsd-build/get-shit-done`.
|
||||
Maps the five canonical triage roles to the actual label strings in `GSD-redux/get-shit-done-redux`.
|
||||
|
||||
| Canonical role | Label in this repo | Notes |
|
||||
|-------------------|--------------------------|----------------------------------------------------------------|
|
||||
|
||||
@@ -60,7 +60,7 @@ GSD's `/gsd-pause-work` command saves execution state. The WARNING message sugge
|
||||
|
||||
## Setup
|
||||
|
||||
Both hooks are automatically registered during `npx get-shit-done-cc` installation:
|
||||
Both hooks are automatically registered during `npx get-shit-done-redux` installation:
|
||||
|
||||
- **Statusline** (writes bridge file): Registered as `statusLine` in settings.json
|
||||
- **Context Monitor** (reads bridge file): Registered as `PostToolUse` hook in settings.json (`AfterTool` for Gemini)
|
||||
|
||||
@@ -72,7 +72,7 @@ Currently accepted ADRs:
|
||||
| `0004-worktree-workstream-seam-module.md` | Planning Workspace Module as single seam for worktree and workstream state |
|
||||
| `0005-sdk-architecture-seam-map.md` | SDK Architecture seam map for query/runtime surfaces |
|
||||
| `0006-planning-path-projection-module.md` | Planning Path Projection Module for SDK query handlers |
|
||||
| `0007-sdk-package-seam-module.md` | SDK Package Seam Module owns SDK-to-get-shit-done-cc compatibility |
|
||||
| `0007-sdk-package-seam-module.md` | SDK Package Seam Module owns SDK-to-get-shit-done-redux compatibility |
|
||||
|
||||
### When an ADR is required
|
||||
|
||||
|
||||
@@ -28,7 +28,7 @@ Currently, Grok Build is only supported via its Claude compatibility layer. This
|
||||
## 2. Current Multi-Runtime Setup (as of May 2026)
|
||||
|
||||
### Development Source (Single Source of Truth)
|
||||
- **Path:** `/home/cristian/bum/get-shit-done` (this repo — your working fork of `gsd-build/get-shit-done`)
|
||||
- **Path:** `/home/cristian/bum/get-shit-done` (this repo — your working fork of `GSD-redux/get-shit-done-redux`)
|
||||
|
||||
### Installed Locations
|
||||
- `~/.agents/get-shit-done/` — Core workflows, references, templates, `gsd-tools.cjs`, `bin/`
|
||||
|
||||
@@ -4,7 +4,7 @@ Copy-paste friendly for Discord and GitHub comments.
|
||||
|
||||
---
|
||||
|
||||
**@gsd-build/sdk** replaces the untyped, monolithic `gsd-tools.cjs` subprocess with a typed, tested, registry-based query system and **`gsd-sdk query`**, giving GSD structured results, classified errors (`GSDError` with `ErrorClassification`), and golden-verified parity with the old CLI. That gives the framework one stable contract instead of a fragile, very large CLI that every workflow had to spawn and parse by hand.
|
||||
**@gsd-redux/sdk** replaces the untyped, monolithic `gsd-tools.cjs` subprocess with a typed, tested, registry-based query system and **`gsd-sdk query`**, giving GSD structured results, classified errors (`GSDError` with `ErrorClassification`), and golden-verified parity with the old CLI. That gives the framework one stable contract instead of a fragile, very large CLI that every workflow had to spawn and parse by hand.
|
||||
|
||||
**What users can expect**
|
||||
|
||||
|
||||
@@ -1308,7 +1308,7 @@ Claude が GSD ワークフローコンテキスト外でファイル編集を
|
||||
|
||||
### 55. マルチランタイムインストーラー選択
|
||||
|
||||
**対象:** `npx get-shit-done-cc`
|
||||
**対象:** `npx get-shit-done-redux`
|
||||
|
||||
**目的:** 1回のインタラクティブなインストールセッションで複数のランタイムを選択します。
|
||||
|
||||
@@ -1327,7 +1327,7 @@ Claude が GSD ワークフローコンテキスト外でファイル編集を
|
||||
|
||||
### 56. Windsurf ランタイムサポート
|
||||
|
||||
**対象:** `npx get-shit-done-cc`
|
||||
**対象:** `npx get-shit-done-redux`
|
||||
|
||||
**目的:** Windsurf AI IDE のサポートを追加します。
|
||||
|
||||
@@ -1568,7 +1568,7 @@ Claude が GSD ワークフローコンテキスト外でファイル編集を
|
||||
|
||||
### 68. Claude Code スキルマイグレーション
|
||||
|
||||
**対象:** `npx get-shit-done-cc`
|
||||
**対象:** `npx get-shit-done-redux`
|
||||
|
||||
**目的:** GSD コマンドを Claude Code 2.1.88+ のスキル形式に後方互換性を維持してマイグレーションします。
|
||||
|
||||
@@ -1831,7 +1831,7 @@ Claude が GSD ワークフローコンテキスト外でファイル編集を
|
||||
|
||||
### 85. 新規ランタイムサポート (Trae, Cline, Augment Code)
|
||||
|
||||
**対象:** `npx get-shit-done-cc`
|
||||
**対象:** `npx get-shit-done-redux`
|
||||
|
||||
**目的:** Trae IDE、Cline、Augment Code ランタイムへの GSD インストールを拡張します。
|
||||
|
||||
|
||||
@@ -60,7 +60,7 @@ GSD の `/gsd-pause-work` コマンドは実行状態を保存します。WARNIN
|
||||
|
||||
## セットアップ
|
||||
|
||||
両フックは `npx get-shit-done-cc` のインストール時に自動的に登録されます:
|
||||
両フックは `npx get-shit-done-redux` のインストール時に自動的に登録されます:
|
||||
|
||||
- **ステータスライン**(ブリッジファイルの書き込み): settings.json の `statusLine` として登録
|
||||
- **コンテキストモニター**(ブリッジファイルの読み取り): settings.json の `PostToolUse` フックとして登録(Gemini では `AfterTool`)
|
||||
|
||||
@@ -1308,7 +1308,7 @@ Claude가 GSD 워크플로우 컨텍스트 밖에서 파일 편집을 시도하
|
||||
|
||||
### 55. Multi-Runtime Installer Selection
|
||||
|
||||
**일부:** `npx get-shit-done-cc`
|
||||
**일부:** `npx get-shit-done-redux`
|
||||
|
||||
**목적:** 단일 대화형 설치 세션에서 여러 런타임을 선택합니다.
|
||||
|
||||
@@ -1327,7 +1327,7 @@ Claude가 GSD 워크플로우 컨텍스트 밖에서 파일 편집을 시도하
|
||||
|
||||
### 56. Windsurf 런타임 지원
|
||||
|
||||
**대상:** `npx get-shit-done-cc`
|
||||
**대상:** `npx get-shit-done-redux`
|
||||
|
||||
**목적:** Windsurf AI IDE 지원을 추가합니다.
|
||||
|
||||
@@ -1568,7 +1568,7 @@ Claude가 GSD 워크플로우 컨텍스트 밖에서 파일 편집을 시도하
|
||||
|
||||
### 68. Claude Code 스킬 마이그레이션
|
||||
|
||||
**대상:** `npx get-shit-done-cc`
|
||||
**대상:** `npx get-shit-done-redux`
|
||||
|
||||
**목적:** GSD 명령어를 하위 호환성을 유지하면서 Claude Code 2.1.88+ 스킬 형식으로 마이그레이션합니다.
|
||||
|
||||
@@ -1831,7 +1831,7 @@ Claude가 GSD 워크플로우 컨텍스트 밖에서 파일 편집을 시도하
|
||||
|
||||
### 85. 신규 런타임 지원 (Trae, Cline, Augment Code)
|
||||
|
||||
**대상:** `npx get-shit-done-cc`
|
||||
**대상:** `npx get-shit-done-redux`
|
||||
|
||||
**목적:** Trae IDE, Cline, Augment Code 런타임으로 GSD 설치를 확장합니다.
|
||||
|
||||
|
||||
@@ -60,7 +60,7 @@ GSD의 `/gsd-pause-work` 명령어는 실행 상태를 저장합니다. WARNING
|
||||
|
||||
## 설정
|
||||
|
||||
두 훅 모두 `npx get-shit-done-cc` 설치 중에 자동으로 등록됩니다.
|
||||
두 훅 모두 `npx get-shit-done-redux` 설치 중에 자동으로 등록됩니다.
|
||||
|
||||
- **Statusline** (브리지 파일 기록): settings.json에 `statusLine`으로 등록
|
||||
- **Context Monitor** (브리지 파일 읽기): settings.json에 `PostToolUse` 훅으로 등록 (Gemini의 경우 `AfterTool`)
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
# Manual Update (Non-npm Install)
|
||||
|
||||
Use this procedure when `npx get-shit-done-cc@latest` is unavailable — e.g. during a publish outage or if you are working directly from the source repo.
|
||||
Use this procedure when `npx get-shit-done-redux@latest` is unavailable — e.g. during a publish outage or if you are working directly from the source repo.
|
||||
|
||||
## Prerequisites
|
||||
|
||||
- Node.js installed
|
||||
- This repo cloned locally (`git clone https://github.com/gsd-build/get-shit-done`)
|
||||
- This repo cloned locally (`git clone https://github.com/GSD-redux/get-shit-done-redux`)
|
||||
|
||||
## Steps
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
- **Status:** Reference
|
||||
- **Date:** 2026-05-14
|
||||
- **Tracking issue:** [#3524](https://github.com/gsd-build/get-shit-done/issues/3524)
|
||||
- **Tracking issue:** [#3524](https://github.com/GSD-redux/get-shit-done-redux/issues/3524)
|
||||
- **Related ADR:** [`docs/adr/3524-cjs-sdk-hard-seam.md`](../adr/3524-cjs-sdk-hard-seam.md)
|
||||
|
||||
## Why this PRD exists
|
||||
@@ -11,7 +11,7 @@ The ADR defines the target architecture — one source of truth per Shared Modul
|
||||
|
||||
## Problem statement
|
||||
|
||||
The CJS↔SDK boundary in `gsd-build/get-shit-done` is structurally permeable. Multiple Shared Modules — STATE.md Document Module, Workstream Inventory Module, and several others — exist today as **hand-synced pairs** of `.cjs` and `.ts` files with character-identical implementations. Constants (`CONFIG_DEFAULTS`, `VALID_CONFIG_KEYS`) are likewise defined twice. The boundary is policed only by:
|
||||
The CJS↔SDK boundary in `GSD-redux/get-shit-done-redux` is structurally permeable. Multiple Shared Modules — STATE.md Document Module, Workstream Inventory Module, and several others — exist today as **hand-synced pairs** of `.cjs` and `.ts` files with character-identical implementations. Constants (`CONFIG_DEFAULTS`, `VALID_CONFIG_KEYS`) are likewise defined twice. The boundary is policed only by:
|
||||
|
||||
- A naming-parity test (`tests/config-schema-sdk-parity.test.cjs`)
|
||||
- Output-parity golden tests for read-only handlers (`sdk/src/golden/read-only-parity.integration.test.ts`)
|
||||
@@ -209,7 +209,7 @@ Phase 5 specifically preserves the in-process model: `QueryRuntimeBridge.execute
|
||||
### Build/install pipeline impact
|
||||
|
||||
- Each generator runs at build time on the developer machine (and in CI for the freshness check). No runtime generator execution.
|
||||
- The published `get-shit-done-cc` package already includes both `get-shit-done/bin/` and `sdk/dist/`. The generated `.cjs` files are committed to the repo (like `command-aliases.generated.cjs` today), so the install flow is unchanged — no on-install code generation.
|
||||
- The published `get-shit-done-redux` package already includes both `get-shit-done/bin/` and `sdk/dist/`. The generated `.cjs` files are committed to the repo (like `command-aliases.generated.cjs` today), so the install flow is unchanged — no on-install code generation.
|
||||
- `npm run build:sdk` continues to do what it does. Generators are invoked via `npm run gen:<module>` per the existing precedent.
|
||||
|
||||
### Risks
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# Referência de Ferramentas CLI
|
||||
|
||||
Resumo em Português das ferramentas CLI do GSD.
|
||||
Para API completa (assinaturas, argumentos e comportamento detalhado), consulte [CLI-TOOLS.md em inglês](../CLI-TOOLS.md) — inclui a secção **SDK and programmatic access** (`gsd-sdk query`, `@gsd-build/sdk`).
|
||||
Para API completa (assinaturas, argumentos e comportamento detalhado), consulte [CLI-TOOLS.md em inglês](../CLI-TOOLS.md) — inclui a secção **SDK and programmatic access** (`gsd-sdk query`, `@gsd-redux/sdk`).
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# Skill surface budget — research memo
|
||||
|
||||
**Date:** 2026-05-12
|
||||
**Author:** triage analysis for issue [#3408](https://github.com/gsd-build/get-shit-done/issues/3408)
|
||||
**Author:** triage analysis for issue [#3408](https://github.com/GSD-redux/get-shit-done-redux/issues/3408)
|
||||
**Status:** Research input for ADR-0010
|
||||
**Reading time:** ~15 min
|
||||
|
||||
@@ -186,11 +186,11 @@ Instead of one shared `skillListingBudgetFraction`, give each plugin a dedicated
|
||||
|
||||
### Option F — Sub-plugins / split distribution
|
||||
|
||||
Publish GSD as multiple npm packages: `get-shit-done-cc-core`, `get-shit-done-cc-milestones`, `get-shit-done-cc-research`, etc. Users install only what they need.
|
||||
Publish GSD as multiple npm packages: `get-shit-done-redux-core`, `get-shit-done-redux-milestones`, `get-shit-done-redux-research`, etc. Users install only what they need.
|
||||
|
||||
| Dimension | Assessment |
|
||||
|---|---|
|
||||
| User UX | Reasonable for advanced users; confusing for first-time installers. Needs a meta-package (`get-shit-done-cc`) that depends on the slim ones — analogous to VS Code extension packs. |
|
||||
| User UX | Reasonable for advanced users; confusing for first-time installers. Needs a meta-package (`get-shit-done-redux`) that depends on the slim ones — analogous to VS Code extension packs. |
|
||||
| Implementation cost | **High.** Multi-package build pipeline, version sync across packages, changelog routing, install-script forking. |
|
||||
| Dependency safety | npm semver carries the contract; cross-package refs become real `require()` calls. |
|
||||
| Token savings | Same as Option A in practice — token savings come from choosing not to install, not from the package boundary. |
|
||||
@@ -260,7 +260,7 @@ Phase 2 — runtime surface command (follow-up ADR or amendment):
|
||||
|
||||
## 10. References
|
||||
|
||||
- Issue: [#3408](https://github.com/gsd-build/get-shit-done/issues/3408)
|
||||
- Issue: [#3408](https://github.com/GSD-redux/get-shit-done-redux/issues/3408)
|
||||
- Existing seam: `get-shit-done/bin/lib/install-profiles.cjs`
|
||||
- Description lint: `scripts/lint-descriptions.cjs`
|
||||
- Install dispatcher: `bin/install.js:123` (mode parsing), `bin/install.js:8167-8207` (minimal staging)
|
||||
|
||||
@@ -6,19 +6,19 @@
|
||||
|
||||
**解决上下文衰减 —— 即 Claude 填充上下文窗口时发生的质量退化问题。**
|
||||
|
||||
[](https://www.npmjs.com/package/get-shit-done-cc)
|
||||
[](https://www.npmjs.com/package/get-shit-done-cc)
|
||||
[](https://github.com/gsd-build/get-shit-done/actions/workflows/test.yml)
|
||||
[](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://discord.gg/mYgfVNfA2r)
|
||||
[](https://x.com/gsd_foundation)
|
||||
[](https://dexscreener.com/solana/dwudwjvan7bzkw9zwlbyv6kspdlvhwzrqy6ebk8xzxkv)
|
||||
[](https://github.com/gsd-build/get-shit-done)
|
||||
[](https://github.com/GSD-redux/get-shit-done-redux)
|
||||
[](LICENSE)
|
||||
|
||||
<br>
|
||||
|
||||
```bash
|
||||
npx get-shit-done-cc@latest
|
||||
npx get-shit-done-redux@latest
|
||||
```
|
||||
|
||||
**支持 Mac、Windows 和 Linux。**
|
||||
@@ -78,7 +78,7 @@ GSD 解决了这个问题。它是让 Claude Code 变得可靠的上下文工程
|
||||
## 快速开始
|
||||
|
||||
```bash
|
||||
npx get-shit-done-cc@latest
|
||||
npx get-shit-done-redux@latest
|
||||
```
|
||||
|
||||
安装程序会提示你选择:
|
||||
@@ -99,7 +99,7 @@ npx get-shit-done-cc@latest
|
||||
GSD 快速迭代。定期更新:
|
||||
|
||||
```bash
|
||||
npx get-shit-done-cc@latest
|
||||
npx get-shit-done-redux@latest
|
||||
```
|
||||
|
||||
<details>
|
||||
@@ -107,25 +107,25 @@ npx get-shit-done-cc@latest
|
||||
|
||||
```bash
|
||||
# Claude Code
|
||||
npx get-shit-done-cc --claude --global # 安装到 ~/.claude/
|
||||
npx get-shit-done-cc --claude --local # 安装到 ./.claude/
|
||||
npx get-shit-done-redux --claude --global # 安装到 ~/.claude/
|
||||
npx get-shit-done-redux --claude --local # 安装到 ./.claude/
|
||||
|
||||
# OpenCode
|
||||
npx get-shit-done-cc --opencode --global # 安装到 ~/.config/opencode/
|
||||
npx get-shit-done-redux --opencode --global # 安装到 ~/.config/opencode/
|
||||
|
||||
# Gemini CLI
|
||||
npx get-shit-done-cc --gemini --global # 安装到 ~/.gemini/
|
||||
npx get-shit-done-redux --gemini --global # 安装到 ~/.gemini/
|
||||
|
||||
# Kilo
|
||||
npx get-shit-done-cc --kilo --global # 安装到 ~/.config/kilo/
|
||||
npx get-shit-done-cc --kilo --local # 安装到 ./.kilo/
|
||||
npx get-shit-done-redux --kilo --global # 安装到 ~/.config/kilo/
|
||||
npx get-shit-done-redux --kilo --local # 安装到 ./.kilo/
|
||||
|
||||
# Codex
|
||||
npx get-shit-done-cc --codex --global # 安装到 ~/.codex/
|
||||
npx get-shit-done-cc --codex --local # 安装到 ./.codex/
|
||||
npx get-shit-done-redux --codex --global # 安装到 ~/.codex/
|
||||
npx get-shit-done-redux --codex --local # 安装到 ./.codex/
|
||||
|
||||
# 所有运行时
|
||||
npx get-shit-done-cc --all --global # 安装到所有目录
|
||||
npx get-shit-done-redux --all --global # 安装到所有目录
|
||||
```
|
||||
|
||||
使用 `--global`(`-g`)或 `--local`(`-l`)跳过位置提示。
|
||||
@@ -139,7 +139,7 @@ npx get-shit-done-cc --all --global # 安装到所有目录
|
||||
克隆仓库并本地运行安装程序:
|
||||
|
||||
```bash
|
||||
git clone https://github.com/gsd-build/get-shit-done.git
|
||||
git clone https://github.com/GSD-redux/get-shit-done-redux.git
|
||||
cd get-shit-done
|
||||
node bin/install.js --claude --local
|
||||
```
|
||||
@@ -652,18 +652,18 @@ GSD 的代码库映射和分析命令读取文件以了解你的项目。**保
|
||||
|
||||
**命令没有按预期工作?**
|
||||
- 运行 `/gsd-help` 验证安装
|
||||
- 重新运行 `npx get-shit-done-cc` 重新安装
|
||||
- 重新运行 `npx get-shit-done-redux` 重新安装
|
||||
|
||||
**更新到最新版本?**
|
||||
```bash
|
||||
npx get-shit-done-cc@latest
|
||||
npx get-shit-done-redux@latest
|
||||
```
|
||||
|
||||
**使用 Docker 或容器化环境?**
|
||||
|
||||
如果用波浪号路径(`~/.claude/...`)读取文件失败,在安装前设置 `CLAUDE_CONFIG_DIR`:
|
||||
```bash
|
||||
CLAUDE_CONFIG_DIR=/home/youruser/.claude npx get-shit-done-cc --global
|
||||
CLAUDE_CONFIG_DIR=/home/youruser/.claude npx get-shit-done-redux --global
|
||||
```
|
||||
这确保使用绝对路径而不是 `~`,后者在容器中可能无法正确展开。
|
||||
|
||||
@@ -673,16 +673,16 @@ CLAUDE_CONFIG_DIR=/home/youruser/.claude npx get-shit-done-cc --global
|
||||
|
||||
```bash
|
||||
# 全局安装
|
||||
npx get-shit-done-cc --claude --global --uninstall
|
||||
npx get-shit-done-cc --opencode --global --uninstall
|
||||
npx get-shit-done-cc --kilo --global --uninstall
|
||||
npx get-shit-done-cc --codex --global --uninstall
|
||||
npx get-shit-done-redux --claude --global --uninstall
|
||||
npx get-shit-done-redux --opencode --global --uninstall
|
||||
npx get-shit-done-redux --kilo --global --uninstall
|
||||
npx get-shit-done-redux --codex --global --uninstall
|
||||
|
||||
# 本地安装(当前项目)
|
||||
npx get-shit-done-cc --claude --local --uninstall
|
||||
npx get-shit-done-cc --opencode --local --uninstall
|
||||
npx get-shit-done-cc --kilo --local --uninstall
|
||||
npx get-shit-done-cc --codex --local --uninstall
|
||||
npx get-shit-done-redux --claude --local --uninstall
|
||||
npx get-shit-done-redux --opencode --local --uninstall
|
||||
npx get-shit-done-redux --kilo --local --uninstall
|
||||
npx get-shit-done-redux --codex --local --uninstall
|
||||
```
|
||||
|
||||
这删除所有 GSD 命令、代理、钩子和设置,同时保留你的其他配置。
|
||||
@@ -691,7 +691,7 @@ npx get-shit-done-cc --codex --local --uninstall
|
||||
|
||||
## 社区移植
|
||||
|
||||
OpenCode、Gemini CLI、Kilo 和 Codex 现在通过 `npx get-shit-done-cc` 原生支持。
|
||||
OpenCode、Gemini CLI、Kilo 和 Codex 现在通过 `npx get-shit-done-redux` 原生支持。
|
||||
|
||||
这些社区移植开创了多运行时支持:
|
||||
|
||||
@@ -704,11 +704,11 @@ OpenCode、Gemini CLI、Kilo 和 Codex 现在通过 `npx get-shit-done-cc` 原
|
||||
|
||||
## Star 历史
|
||||
|
||||
<a href="https://star-history.com/#gsd-build/get-shit-done&Date">
|
||||
<a href="https://star-history.com/#GSD-redux/get-shit-done-redux&Date">
|
||||
<picture>
|
||||
<source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=gsd-build/get-shit-done&type=Date&theme=dark" />
|
||||
<source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=gsd-build/get-shit-done&type=Date" />
|
||||
<img alt="Star History Chart" src="https://api.star-history.com/svg?repos=gsd-build/get-shit-done&type=Date" />
|
||||
<source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=GSD-redux/get-shit-done-redux&type=Date&theme=dark" />
|
||||
<source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=GSD-redux/get-shit-done-redux&type=Date" />
|
||||
<img alt="Star History Chart" src="https://api.star-history.com/svg?repos=GSD-redux/get-shit-done-redux&type=Date" />
|
||||
</picture>
|
||||
</a>
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
* Deterministic latest-version check for /gsd-update (#2992).
|
||||
*
|
||||
* The /gsd-update workflow's check_latest_version step was previously
|
||||
* prescribed in LLM-driven prose ("run `npm view get-shit-done-cc
|
||||
* prescribed in LLM-driven prose ("run `npm view get-shit-done-redux
|
||||
* version`"). The executing model could shortcut the prescription and
|
||||
* invent npm queries against wrong-shaped names (`@get-shit-done/cli`,
|
||||
* `get-shit-done-cli`, `gsd`), all of which 404 or — worse — return an
|
||||
@@ -24,7 +24,7 @@ const { execNpm } = require('./lib/shell-command-projection.cjs');
|
||||
|
||||
// Hardcoded. Do not parameterise — the whole point of this script is that
|
||||
// the package name is not a runtime choice for the caller.
|
||||
const PACKAGE_NAME = 'get-shit-done-cc';
|
||||
const PACKAGE_NAME = 'get-shit-done-redux';
|
||||
|
||||
const CHECK_REASON = Object.freeze({
|
||||
OK: 'ok',
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
/**
|
||||
* @deprecated The supported programmatic surface is `gsd-sdk query` (SDK query registry)
|
||||
* and the `@gsd-build/sdk` package. This Node CLI remains the compatibility implementation
|
||||
* and the `@gsd-redux/sdk` package. This Node CLI remains the compatibility implementation
|
||||
* for shell scripts and older workflows; prefer calling the SDK from agents and automation.
|
||||
*
|
||||
* GSD Tools — CLI utility for GSD workflow operations
|
||||
|
||||
@@ -11,17 +11,17 @@
|
||||
* stop, applied to the SDK-load logic itself).
|
||||
*
|
||||
* Load path policy: the bridge resolves the bundled SDK by package-relative
|
||||
* filesystem path, NOT by the `@gsd-build/sdk` package name. The package name
|
||||
* filesystem path, NOT by the `@gsd-redux/sdk` package name. The package name
|
||||
* is not installed in the root `node_modules` (it lives as a sibling workspace
|
||||
* package, not a dependency), and the SDK's public entry doesn't re-export
|
||||
* `executeForCjs` or `formatStateLoadRawStdout` anyway. Using the relative
|
||||
* path means the loader works identically in (a) the development checkout
|
||||
* (`<repo>/sdk/dist/...`) and (b) the published package layout
|
||||
* (`node_modules/get-shit-done-cc/sdk/dist/...`) because the `files` array in
|
||||
* (`node_modules/get-shit-done-redux/sdk/dist/...`) because the `files` array in
|
||||
* `package.json` keeps `sdk/dist` at the same path inside the published
|
||||
* tarball.
|
||||
*
|
||||
* The previous implementation used `require('@gsd-build/sdk')`, which always
|
||||
* The previous implementation used `require('@gsd-redux/sdk')`, which always
|
||||
* failed because the package was unresolvable from the consumer location.
|
||||
* That cached `_loadFailed = true` for the lifetime of the process and made
|
||||
* every router silently fall through to CJS — defeating Phase 5/6's entire
|
||||
|
||||
@@ -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-build/get-shit-done clone (the original path introduced by #3230).
|
||||
// GSD-redux/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.
|
||||
|
||||
@@ -350,12 +350,12 @@ function formatSdkPathDiagnostic({ shimDir, platform, runDir }) {
|
||||
} else {
|
||||
actionLines.push('Could not locate a writable PATH directory to install the shim.');
|
||||
actionLines.push('Install globally to materialize the bin symlink:');
|
||||
actionLines.push('npm install -g get-shit-done-cc');
|
||||
actionLines.push('npm install -g get-shit-done-redux');
|
||||
}
|
||||
const npxNoteLines = isNpx
|
||||
? [
|
||||
"Note: you're running via npx. For a persistent shim,",
|
||||
'install globally instead: npm install -g get-shit-done-cc',
|
||||
'install globally instead: npm install -g get-shit-done-redux',
|
||||
]
|
||||
: [];
|
||||
return { shimLocationLine, actionLines, shellActions, npxNoteLines, isNpx, isWin32 };
|
||||
|
||||
@@ -821,11 +821,11 @@ function cmdValidateHealth(cwd, options, raw) {
|
||||
if (agentStatus.installed_agents.length === 0) {
|
||||
addIssue('warning', 'W010',
|
||||
`No GSD agents found in ${agentStatus.agents_dir} — Task(subagent_type="gsd-*") will fall back to general-purpose`,
|
||||
'Run the GSD installer: npx get-shit-done-cc@latest');
|
||||
'Run the GSD installer: npx get-shit-done-redux@latest');
|
||||
} else {
|
||||
addIssue('warning', 'W010',
|
||||
`Missing ${agentStatus.missing_agents.length} GSD agents: ${agentStatus.missing_agents.join(', ')} — affected workflows will fall back to general-purpose`,
|
||||
'Run the GSD installer: npx get-shit-done-cc@latest');
|
||||
'Run the GSD installer: npx get-shit-done-redux@latest');
|
||||
}
|
||||
}
|
||||
} catch { /* intentionally empty — agent check is non-blocking */ }
|
||||
|
||||
@@ -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-build/get-shit-done --search "bug" --json name -q '.[0].name' 2>/dev/null)
|
||||
BUG_LABEL=$(gh label list --repo GSD-redux/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-build/get-shit-done \
|
||||
--repo GSD-redux/get-shit-done-redux \
|
||||
--title "bug: {concise description from anomaly}" \
|
||||
$LABEL_FLAG \
|
||||
--body "{formatted findings from report}"
|
||||
|
||||
@@ -45,6 +45,6 @@ Topics: `workflow` · `planning` · `execute` · `quick` · `debug` · `capture`
|
||||
## Update GSD
|
||||
|
||||
```bash
|
||||
npx get-shit-done-cc@latest
|
||||
npx get-shit-done-redux@latest
|
||||
```
|
||||
</reference>
|
||||
|
||||
@@ -18,7 +18,7 @@ Display the complete GSD command reference. Output ONLY the reference content. D
|
||||
GSD evolves fast. Update periodically:
|
||||
|
||||
```bash
|
||||
npx get-shit-done-cc@latest
|
||||
npx get-shit-done-redux@latest
|
||||
```
|
||||
|
||||
## Core Workflow
|
||||
@@ -560,7 +560,7 @@ Update GSD to latest version with changelog preview.
|
||||
- Displays changelog entries for versions you've missed
|
||||
- Highlights breaking changes
|
||||
- Confirms before running install
|
||||
- Better than raw `npx get-shit-done-cc`
|
||||
- Better than raw `npx get-shit-done-redux`
|
||||
|
||||
Usage: `/gsd:update`
|
||||
|
||||
|
||||
@@ -235,7 +235,7 @@ Extract from init JSON: `researcher_model`, `synthesizer_model`, `roadmapper_mod
|
||||
Subagent spawns (gsd-project-researcher, gsd-research-synthesizer, gsd-roadmapper) will fail
|
||||
with "agent type not found". Run the installer with --global to make agents available:
|
||||
|
||||
npx get-shit-done-cc@latest --global
|
||||
npx get-shit-done-redux@latest --global
|
||||
|
||||
Proceeding without research subagents — roadmap will be generated inline.
|
||||
```
|
||||
|
||||
@@ -86,7 +86,7 @@ definitions to be installed for this runtime.
|
||||
Subagent spawns (gsd-project-researcher, gsd-research-synthesizer, gsd-roadmapper) will fail
|
||||
with "agent type not found" if `required_agents_installed` is false. Run the installer with --global to make agents available:
|
||||
|
||||
npx get-shit-done-cc@latest --global
|
||||
npx get-shit-done-redux@latest --global
|
||||
|
||||
Proceeding without research subagents — roadmap will be generated inline.
|
||||
```
|
||||
|
||||
@@ -129,7 +129,7 @@ if ! command -v gsd-sdk &>/dev/null; then
|
||||
echo "⚠ gsd-sdk not found in PATH — /gsd:quick requires it."
|
||||
echo ""
|
||||
echo "Install the query-capable GSD SDK CLI:"
|
||||
echo " npm install -g get-shit-done-cc"
|
||||
echo " npm install -g get-shit-done-redux"
|
||||
echo ""
|
||||
echo "Or update GSD to get the latest packages:"
|
||||
echo " /gsd:update"
|
||||
|
||||
@@ -326,7 +326,7 @@ fi
|
||||
```text
|
||||
Couldn't check for updates (reason: {LATEST_REASON}, exit: {LATEST_STATUS}).
|
||||
|
||||
To update manually: `npx -y --package=get-shit-done-cc@latest -- get-shit-done-cc --global`
|
||||
To update manually: `npx -y --package=get-shit-done-redux@latest -- get-shit-done-redux --global`
|
||||
```
|
||||
|
||||
Exit.
|
||||
@@ -527,17 +527,17 @@ RUNTIME_FLAG="--$TARGET_RUNTIME"
|
||||
|
||||
**If LOCAL install:**
|
||||
```bash
|
||||
npx -y --package=get-shit-done-cc@latest -- get-shit-done-cc "$RUNTIME_FLAG" --local
|
||||
npx -y --package=get-shit-done-redux@latest -- get-shit-done-redux "$RUNTIME_FLAG" --local
|
||||
```
|
||||
|
||||
**If GLOBAL install:**
|
||||
```bash
|
||||
npx -y --package=get-shit-done-cc@latest -- get-shit-done-cc "$RUNTIME_FLAG" --global
|
||||
npx -y --package=get-shit-done-redux@latest -- get-shit-done-redux "$RUNTIME_FLAG" --global
|
||||
```
|
||||
|
||||
**If UNKNOWN install:**
|
||||
```bash
|
||||
npx -y --package=get-shit-done-cc@latest -- get-shit-done-cc --claude --global
|
||||
npx -y --package=get-shit-done-redux@latest -- get-shit-done-redux --claude --global
|
||||
```
|
||||
|
||||
Capture output. If install fails, show error and exit.
|
||||
@@ -611,7 +611,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-build/get-shit-done/blob/main/CHANGELOG.md)
|
||||
[View full changelog](https://github.com/GSD-redux/get-shit-done-redux/blob/main/CHANGELOG.md)
|
||||
```
|
||||
</step>
|
||||
|
||||
|
||||
@@ -90,7 +90,7 @@ if (configDir) {
|
||||
|
||||
let latest = null;
|
||||
try {
|
||||
latest = execFileSync('npm', ['view', 'get-shit-done-cc', 'version'], {
|
||||
latest = execFileSync('npm', ['view', 'get-shit-done-redux', 'version'], {
|
||||
encoding: 'utf8',
|
||||
timeout: 10000,
|
||||
windowsHide: true,
|
||||
|
||||
6
package-lock.json
generated
6
package-lock.json
generated
@@ -1,11 +1,11 @@
|
||||
{
|
||||
"name": "get-shit-done-cc",
|
||||
"name": "get-shit-done-redux",
|
||||
"version": "1.50.0-canary.0",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "get-shit-done-cc",
|
||||
"name": "get-shit-done-redux",
|
||||
"version": "1.50.0-canary.0",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
@@ -13,7 +13,7 @@
|
||||
"ws": "8.20.1"
|
||||
},
|
||||
"bin": {
|
||||
"get-shit-done-cc": "bin/install.js",
|
||||
"get-shit-done-redux": "bin/install.js",
|
||||
"gsd-sdk": "bin/gsd-sdk.js",
|
||||
"gsd-tools": "bin/gsd-sdk.js"
|
||||
},
|
||||
|
||||
10
package.json
10
package.json
@@ -1,9 +1,9 @@
|
||||
{
|
||||
"name": "get-shit-done-cc",
|
||||
"name": "get-shit-done-redux",
|
||||
"version": "1.50.0-canary.0",
|
||||
"description": "A meta-prompting, context engineering and spec-driven development system for Claude Code, OpenCode, Gemini and Codex by TÂCHES.",
|
||||
"bin": {
|
||||
"get-shit-done-cc": "bin/install.js",
|
||||
"get-shit-done-redux": "bin/install.js",
|
||||
"gsd-sdk": "bin/gsd-sdk.js",
|
||||
"gsd-tools": "bin/gsd-sdk.js"
|
||||
},
|
||||
@@ -38,11 +38,11 @@
|
||||
"license": "MIT",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git+https://github.com/gsd-build/get-shit-done.git"
|
||||
"url": "git+https://github.com/GSD-redux/get-shit-done-redux.git"
|
||||
},
|
||||
"homepage": "https://github.com/gsd-build/get-shit-done",
|
||||
"homepage": "https://github.com/GSD-redux/get-shit-done-redux",
|
||||
"bugs": {
|
||||
"url": "https://github.com/gsd-build/get-shit-done/issues"
|
||||
"url": "https://github.com/GSD-redux/get-shit-done-redux/issues"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=22.0.0"
|
||||
|
||||
@@ -31,8 +31,8 @@ function parseArgs(argv) {
|
||||
fromRef: null,
|
||||
toRef: null,
|
||||
output: null,
|
||||
repoSlug: 'gsd-build/get-shit-done',
|
||||
installCommand: 'npx get-shit-done-cc@latest',
|
||||
repoSlug: 'GSD-redux/get-shit-done-redux',
|
||||
installCommand: 'npx get-shit-done-redux@latest',
|
||||
json: false,
|
||||
};
|
||||
if (argv.length === 0) return { ok: true, opts };
|
||||
|
||||
@@ -145,8 +145,8 @@ function serializeGithubReleaseNotes({
|
||||
ir,
|
||||
fromRef,
|
||||
toRef,
|
||||
repoSlug = 'gsd-build/get-shit-done',
|
||||
installCommand = 'npx get-shit-done-cc@latest',
|
||||
repoSlug = 'GSD-redux/get-shit-done-redux',
|
||||
installCommand = 'npx get-shit-done-redux@latest',
|
||||
}) {
|
||||
if (installCommand.includes('`')) {
|
||||
throw new Error('installCommand cannot contain backtick characters');
|
||||
|
||||
@@ -30,7 +30,7 @@
|
||||
* - Assert commands/gsd/<cmd>.md exists in the installed package
|
||||
* - Parse the .md for a workflow @-import or inline reference
|
||||
* - Assert the referenced workflow .md exists in the installed package
|
||||
* If 'init' is in lifecycleCommands, runs `get-shit-done-cc --local --claude`
|
||||
* If 'init' is in lifecycleCommands, runs `get-shit-done-redux --local --claude`
|
||||
* in fixtureDir to verify the installer is callable (INIT_FAILED on crash).
|
||||
* Non-interactive: --local --claude flags skip all prompts.
|
||||
*
|
||||
@@ -78,14 +78,14 @@ const SMOKE = Object.freeze({
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
/**
|
||||
* Locate the lib/node_modules/get-shit-done-cc package root inside an
|
||||
* Locate the lib/node_modules/get-shit-done-redux package root inside an
|
||||
* npm --prefix install directory.
|
||||
*/
|
||||
function pkgRoot(installPrefix) {
|
||||
// POSIX: <prefix>/lib/node_modules/get-shit-done-cc
|
||||
// Windows: <prefix>/node_modules/get-shit-done-cc
|
||||
const posix = path.join(installPrefix, 'lib', 'node_modules', 'get-shit-done-cc');
|
||||
const win = path.join(installPrefix, 'node_modules', 'get-shit-done-cc');
|
||||
// POSIX: <prefix>/lib/node_modules/get-shit-done-redux
|
||||
// Windows: <prefix>/node_modules/get-shit-done-redux
|
||||
const posix = path.join(installPrefix, 'lib', 'node_modules', 'get-shit-done-redux');
|
||||
const win = path.join(installPrefix, 'node_modules', 'get-shit-done-redux');
|
||||
return fs.existsSync(posix) ? posix : win;
|
||||
}
|
||||
|
||||
@@ -108,7 +108,7 @@ function findGsdSdkBin(installPrefix) {
|
||||
}
|
||||
|
||||
/**
|
||||
* Locate the get-shit-done-cc installer binary (the symlink in <prefix>/bin/).
|
||||
* Locate the get-shit-done-redux installer binary (the symlink in <prefix>/bin/).
|
||||
*/
|
||||
function findInstallerBin(installPrefix) {
|
||||
const binDir = process.platform === 'win32'
|
||||
@@ -116,8 +116,8 @@ function findInstallerBin(installPrefix) {
|
||||
: path.join(installPrefix, 'bin');
|
||||
|
||||
const candidates = process.platform === 'win32'
|
||||
? [path.join(binDir, 'get-shit-done-cc.cmd'), path.join(binDir, 'get-shit-done-cc')]
|
||||
: [path.join(binDir, 'get-shit-done-cc')];
|
||||
? [path.join(binDir, 'get-shit-done-redux.cmd'), path.join(binDir, 'get-shit-done-redux')]
|
||||
: [path.join(binDir, 'get-shit-done-redux')];
|
||||
|
||||
for (const c of candidates) {
|
||||
if (fs.existsSync(c)) return c;
|
||||
@@ -386,7 +386,7 @@ function runSmoke({
|
||||
code: SMOKE.INIT_FAILED,
|
||||
details: {
|
||||
...details,
|
||||
reason: 'get-shit-done-cc binary not found in installPrefix',
|
||||
reason: 'get-shit-done-redux binary not found in installPrefix',
|
||||
installPrefix,
|
||||
},
|
||||
};
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#!/usr/bin/env bash
|
||||
# Verify the published get-shit-done-cc tarball actually contains
|
||||
# Verify the published get-shit-done-redux tarball actually contains
|
||||
# sdk/dist/cli.js and that the `query` subcommand is exposed.
|
||||
#
|
||||
# Guards regression of bug #2647: v1.38.3 shipped without sdk/dist/
|
||||
|
||||
@@ -30,7 +30,7 @@ Use this document at the start of a new session so work continues in context wit
|
||||
- `QUERY-HANDLERS.md` is maintained and current.
|
||||
|
||||
3. **Track D — CJS deprecation headers** (done)
|
||||
- `gsd-tools.cjs` already has `@deprecated` JSDoc header (lines 3-6) pointing to `gsd-sdk query` and `@gsd-build/sdk`.
|
||||
- `gsd-tools.cjs` already has `@deprecated` JSDoc header (lines 3-6) pointing to `gsd-sdk query` and `@gsd-redux/sdk`.
|
||||
- No additional CJS file deletion in scope per #2302.
|
||||
|
||||
4. **CI verification** (should run before any PR)
|
||||
@@ -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-build/get-shit-done` issue #2302.
|
||||
- **Upstream PRs:** `GSD-redux/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-build/get-shit-done#2302](https://github.com/gsd-build/get-shit-done/issues/2302) — Phase 3 SDK query parity, registry, docs (parent umbrella #2007).
|
||||
- **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).
|
||||
- **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-build/get-shit-done`.
|
||||
- **Upstream:** `GSD-redux/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-build/get-shit-done#2302](https://github.com/gsd-build/get-shit-done/issues/2302) — Phase 3 SDK query parity, registry, docs (umbrella #2007).
|
||||
- **Workspace:** `D:\Repos\get-shit-done` (PBR backport). **Upstream:** `gsd-build/get-shit-done`. Confirm branch with `git branch` (typical: `feat/sdk-phase3-query-layer`).
|
||||
- **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`).
|
||||
|
||||
### Scope anchors (do not confuse issues)
|
||||
|
||||
|
||||
| Role | GitHub | Notes |
|
||||
| --------------------------------------- | -------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| **Product / requirements anchor** | [#2007](https://github.com/gsd-build/get-shit-done/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-build/get-shit-done/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-build/get-shit-done/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/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. |
|
||||
|
||||
|
||||
---
|
||||
@@ -47,7 +47,7 @@ Previously `state.json` and `state.load` were easy to confuse: CJS has two diffe
|
||||
|
||||
- `stateJson` — `sdk/src/query/state.ts`; registry key `state.json`.
|
||||
- `stateProjectLoad` — `sdk/src/query/state-project-load.ts`; registry key `state.load`. Uses `createRequire` to call `core.cjs` `loadConfig(projectDir)` from the same resolution paths as a normal install (bundled monorepo path, `projectDir/.claude/get-shit-done/...`, `~/.claude/get-shit-done/...`). `GSDTools.stateLoad()` and `formatRegistryRawStdout` for `--raw` no longer force a subprocess solely for this command.
|
||||
- **Risk:** If `core.cjs` is absent (e.g. some `@gsd-build/sdk`-only layouts), `state.load` throws `GSDError` — document; future option is a TS `loadConfig` port or bundling.
|
||||
- **Risk:** If `core.cjs` is absent (e.g. some `@gsd-redux/sdk`-only layouts), `state.load` throws `GSDError` — document; future option is a TS `loadConfig` port or bundling.
|
||||
- **Goldens:** `read-only-parity.integration.test.ts` — one block compares `state.json` to `state json` (strip `last_updated`); another compares `state.load` to `state load` (full `toEqual`). `read-only-golden-rows.ts` `readOnlyGoldenCanonicals()` includes both `state.json` and `state.load`.
|
||||
|
||||
---
|
||||
@@ -140,7 +140,7 @@ Source: `.planning/research/decision-routing-audit.md` §3. **Tier** = priority
|
||||
(Strategic ordering of **parity vs decision offloading** is in **Roadmap** above.)
|
||||
|
||||
1. ~~**Golden test for `phase.add-batch`**~~ — Done: `sdk/src/golden/mutation-subprocess.integration.test.ts` (`phase.add-batch` JSON parity vs CJS).
|
||||
2. ~~**Re-export `normalizeQueryCommand`**~~ — Done: exported from `sdk/src/query/index.ts` and `sdk/src/index.ts` (`@gsd-build/sdk`).
|
||||
2. ~~**Re-export `normalizeQueryCommand`**~~ — Done: exported from `sdk/src/query/index.ts` and `sdk/src/index.ts` (`@gsd-redux/sdk`).
|
||||
3. **Issue #2302 follow-ups** — Runner alignment (`GSDTools` → registry where appropriate). **`configGet`** now uses `dispatchNativeJson` with canonical `config-get` (fixes subprocess argv vs real `gsd-tools.cjs`, which has no `config` + `get` top-level). Keep `graphify` / `from-gsd2` out of scope unless product reopens.
|
||||
4. **Drift check** — When adding CJS commands, update `QUERY-HANDLERS.md` matrix and golden docs in the same PR.
|
||||
|
||||
|
||||
@@ -1,17 +1,17 @@
|
||||
# @gsd-build/sdk
|
||||
# @gsd-redux/sdk
|
||||
|
||||
TypeScript SDK for **Get Shit Done**: deterministic query/mutation handlers, plan execution, and event-stream telemetry so agents focus on judgment, not shell plumbing.
|
||||
|
||||
## Install
|
||||
|
||||
```bash
|
||||
npm install @gsd-build/sdk
|
||||
npm install @gsd-redux/sdk
|
||||
```
|
||||
|
||||
## Quickstart — programmatic
|
||||
|
||||
```typescript
|
||||
import { GSD, createRegistry } from '@gsd-build/sdk';
|
||||
import { GSD, createRegistry } from '@gsd-redux/sdk';
|
||||
|
||||
const gsd = new GSD({ projectDir: process.cwd(), sessionId: 'my-run' });
|
||||
const tools = gsd.createTools();
|
||||
@@ -25,8 +25,8 @@ const { data } = await registry.dispatch('state.json', [], process.cwd());
|
||||
From a project that depends on this package, **invoke the CLI with Node** (recommended in CI and local dev):
|
||||
|
||||
```bash
|
||||
node ./node_modules/@gsd-build/sdk/dist/cli.js query state.json
|
||||
node ./node_modules/@gsd-build/sdk/dist/cli.js query roadmap.analyze
|
||||
node ./node_modules/@gsd-redux/sdk/dist/cli.js query state.json
|
||||
node ./node_modules/@gsd-redux/sdk/dist/cli.js query roadmap.analyze
|
||||
```
|
||||
|
||||
If no native handler is registered for a command, the CLI can transparently shell out to `get-shit-done/bin/gsd-tools.cjs` (see stderr warning), unless `GSD_QUERY_FALLBACK=off`.
|
||||
|
||||
4
sdk/package-lock.json
generated
4
sdk/package-lock.json
generated
@@ -1,11 +1,11 @@
|
||||
{
|
||||
"name": "@gsd-build/sdk",
|
||||
"name": "@gsd-redux/sdk",
|
||||
"version": "1.50.0-canary.0",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "@gsd-build/sdk",
|
||||
"name": "@gsd-redux/sdk",
|
||||
"version": "1.50.0-canary.0",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"name": "@gsd-build/sdk",
|
||||
"name": "@gsd-redux/sdk",
|
||||
"version": "1.50.0-canary.0",
|
||||
"description": "GSD SDK — programmatic interface for running GSD plans via the Agent SDK",
|
||||
"type": "module",
|
||||
@@ -21,12 +21,12 @@
|
||||
],
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git+https://github.com/gsd-build/get-shit-done.git",
|
||||
"url": "git+https://github.com/GSD-redux/get-shit-done-redux.git",
|
||||
"directory": "sdk"
|
||||
},
|
||||
"homepage": "https://github.com/gsd-build/get-shit-done/tree/main/sdk",
|
||||
"homepage": "https://github.com/GSD-redux/get-shit-done-redux/tree/main/sdk",
|
||||
"bugs": {
|
||||
"url": "https://github.com/gsd-build/get-shit-done/issues"
|
||||
"url": "https://github.com/GSD-redux/get-shit-done-redux/issues"
|
||||
},
|
||||
"author": "TÂCHES",
|
||||
"license": "MIT",
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
*
|
||||
* @example
|
||||
* ```typescript
|
||||
* import { GSD } from '@gsd-build/sdk';
|
||||
* import { GSD } from '@gsd-redux/sdk';
|
||||
*
|
||||
* const gsd = new GSD({ projectDir: '/path/to/project' });
|
||||
* const result = await gsd.executePlan('.planning/phases/01-auth/01-auth-01-PLAN.md');
|
||||
|
||||
@@ -35,7 +35,7 @@ CJS routing seams mirror these families with thin adapters (`state/verify/init/p
|
||||
|
||||
## `gsd-sdk query` routing
|
||||
|
||||
1. **`normalizeQueryCommand()`** (`query-command-resolution-strategy.ts`) — maps the first argv tokens to the same **command + subcommand** patterns as `gsd-tools` `runCommand()` where needed (e.g. `state json` → `state.json`, `init execute-phase 9` → `init.execute-phase` with args `['9']`, `scaffold …` → `phase.scaffold`). Re-exported from **`@gsd-build/sdk`** and **`createRegistry`’s module** (`sdk/src/query/index.ts`) so programmatic callers can mirror CLI tokenization without importing a deep path.
|
||||
1. **`normalizeQueryCommand()`** (`query-command-resolution-strategy.ts`) — maps the first argv tokens to the same **command + subcommand** patterns as `gsd-tools` `runCommand()` where needed (e.g. `state json` → `state.json`, `init execute-phase 9` → `init.execute-phase` with args `['9']`, `scaffold …` → `phase.scaffold`). Re-exported from **`@gsd-redux/sdk`** and **`createRegistry`’s module** (`sdk/src/query/index.ts`) so programmatic callers can mirror CLI tokenization without importing a deep path.
|
||||
2. **`resolveQueryArgv()`** (`registry.ts`) — **longest-prefix match** on the normalized argv: tries joined keys `a.b.c` then `a b c` for each prefix length, longest first. Example: `state update status X` → handler `state.update` with args `[status, X]`.
|
||||
3. **Dotted single token**: one token like `init.new-project` matches the registry; if the first pass finds no handler, a single dotted token is split and matching runs again.
|
||||
4. **CJS fallback (CLI)**: if nothing matches a registered handler and `GSD_QUERY_FALLBACK` is not `off`/`never`/`false`/`0`, the CLI shells out to `gsd-tools.cjs` with argv derived from the normalized tokens (dotted commands are split into CJS-style segments). stderr receives a short bridge warning. Set `GSD_QUERY_FALLBACK=off` for strict mode (parity tests). CLI-only commands such as `graphify` rely on this path until native handlers exist.
|
||||
@@ -107,7 +107,7 @@ Handlers for `**state.signal-waiting`**, `**state.signal-resume**`, `**state.val
|
||||
**`state.json` vs `state.load` (different CJS commands):**
|
||||
|
||||
- **`state.json`** / `state json` — port of **`cmdStateJson`** (`state.ts` `stateJson`): rebuilt STATE.md frontmatter JSON. Read-only golden: `read-only-parity.integration.test.ts` compares to CJS `state json` with **`last_updated`** stripped.
|
||||
- **`state.load`** / `state load` — port of **`cmdStateLoad`** (`state-project-load.ts` `stateProjectLoad`): `{ config, state_raw, state_exists, roadmap_exists, config_exists }`; **`config`** comes from **`get-shit-done/bin/lib/core.cjs`** `loadConfig`, but discovery now routes through the **SDK Package Seam Module** (`sdk-package-compatibility.ts`) so install-layout probing stays behind one compatibility Adapter. Read-only golden: full `toEqual` vs `state load`. If `core.cjs` cannot be resolved, dispatch throws **`GSDError`** with the checked probe list (document for minimal `@gsd-build/sdk`-only installs).
|
||||
- **`state.load`** / `state load` — port of **`cmdStateLoad`** (`state-project-load.ts` `stateProjectLoad`): `{ config, state_raw, state_exists, roadmap_exists, config_exists }`; **`config`** comes from **`get-shit-done/bin/lib/core.cjs`** `loadConfig`, but discovery now routes through the **SDK Package Seam Module** (`sdk-package-compatibility.ts`) so install-layout probing stays behind one compatibility Adapter. Read-only golden: full `toEqual` vs `state load`. If `core.cjs` cannot be resolved, dispatch throws **`GSDError`** with the checked probe list (document for minimal `@gsd-redux/sdk`-only installs).
|
||||
|
||||
`stateExtractField` in `state-document.ts` (re-exported by `helpers.ts`) uses **horizontal whitespace only** after `Field:` so YAML keys such as lowercase `progress:` in frontmatter are not mistaken for the body `Progress:` line (see `get-shit-done/bin/lib/state-document.cjs` — same rule).
|
||||
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
* ## CJS consumption
|
||||
*
|
||||
* ```js
|
||||
* const { executeForCjs } = require('@gsd-build/sdk/dist/runtime-bridge-sync/index.js');
|
||||
* const { executeForCjs } = require('@gsd-redux/sdk/dist/runtime-bridge-sync/index.js');
|
||||
* const result = executeForCjs({ registryCommand: 'generate-slug', registryArgs: ['My Phase'], ... });
|
||||
* if (result.ok) console.log(result.data); // { slug: 'my-phase' }
|
||||
* ```
|
||||
@@ -135,7 +135,7 @@ function getSyncFn(): (input: RuntimeBridgeExecuteInput) => RuntimeBridgeSyncRes
|
||||
*
|
||||
* @example
|
||||
* ```js
|
||||
* const { executeForCjs } = require('@gsd-build/sdk/dist/runtime-bridge-sync/index.js');
|
||||
* const { executeForCjs } = require('@gsd-redux/sdk/dist/runtime-bridge-sync/index.js');
|
||||
* const result = executeForCjs({
|
||||
* registryCommand: 'generate-slug',
|
||||
* registryArgs: ['My Phase'],
|
||||
|
||||
@@ -113,7 +113,7 @@ function missingLegacyCoreMessage(resolution: LegacySdkAssetResolution): string
|
||||
return [
|
||||
'state load: get-shit-done/bin/lib/core.cjs not found.',
|
||||
`Checked: ${resolution.probes.join(', ')}`,
|
||||
'Install GSD (e.g. npm i -g get-shit-done-cc) or clone with get-shit-done next to the SDK.',
|
||||
'Install GSD (e.g. npm i -g get-shit-done-redux) or clone with get-shit-done next to the SDK.',
|
||||
].join(' ');
|
||||
}
|
||||
|
||||
|
||||
@@ -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-build/get-shit-done/issues/2615
|
||||
* Related: https://github.com/GSD-redux/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-build/get-shit-done/issues/2168
|
||||
* See: https://github.com/GSD-redux/get-shit-done-redux/issues/2168
|
||||
*/
|
||||
|
||||
const { test, describe } = require('node:test');
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user