Add docs/RELEASE-v1.40.0-rc.1.md following the rc.7 format. Cover the 11 commits on main since v1.39.0-rc.7's release notes landed: - #2790 — skill surface consolidated 86 → 59 - #2792 — namespace meta-skills + keyword-tag descriptions + context guard - #2833 — phase-lifecycle status-line read-side - #2876 — yamlQuote SKILL.md description (Copilot/Antigravity/Trae/CodeBuddy) - #2768 — Gemini slash command namespace - #2858 — gsd slash namespace drift cleanup - #2851 — bare gsd-tools → absolute path - #2866 — Codex installer trailing-newline preservation - #2868 — canary publish moved from main to dev - #2872 — auto-close PRs without issue link Update CHANGELOG.md [Unreleased] with the same 1.40.0-rc.1 entries. Closes #2888
11 KiB
v1.40.0-rc.1 Release Notes
Pre-release candidate. Published to npm under the next tag.
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) and the new two-stage hierarchical routing that sits on top of it (#2792) — together they take the cold-start system-prompt overhead from listing 86 flat skills down to 6 namespace routers. The release also adds the read-side of the phase-lifecycle status-line, hardens the multi-runtime install converters, and clears a backlog of small correctness fixes against Gemini, Copilot, Codex, and the canary publish workflow.
Added
-
Six namespace meta-skills with keyword-tag descriptions (#2792) — replace the flat eager skill listing with a two-stage hierarchical routing layer. The model sees 6 namespace routers instead of 86 entries, selects a namespace, then routes to the sub-skill. Namespaces:
gsd:workflow(phase pipeline),gsd:project(project lifecycle),gsd:review(quality gates),gsd:context(codebase intelligence),gsd:manage(config / workspace / workstreams),gsd:ideate(exploration / capture). Descriptions use pipe-separated keyword tags (≤ 60 chars) per the Tool Attention research showing keyword-dense tags outperform prose for routing at ~40% the token cost.Entries Approx tokens Pre-1.40 full install 86 ~2,150 Namespace meta-skills 6 ~120 Existing sub-skills are unchanged and still invocable directly — the namespace skills are additive.
-
/gsd-health --contextutilization guard (#2792) — adds a context-window quality guard with two thresholds: 60 % utilization warns ("consider/gsd-thread"), 70 % is critical ("reasoning quality may degrade"; matches the fracture-point per recent context-attention research). Exposed via/gsd-health --contextand as a structuredgsd-tools validate contextcommand for status-line / hook callers. -
Phase-lifecycle status-line — read-side (#2833) —
parseStateMd()now reads four new STATE.md frontmatter fields:active_phase(phase number when orchestrator is in-flight),next_action(recommended next command when idle),next_phases(YAML flow array of next phase numbers), andprogress(nested completed/total/percent block).formatGsdState()gains scenes for in-flight, idle, and progress display. All fields default to undefined, so existing STATE.md files keep rendering as before. Write-side and status-line wiring follow in a later RC.
Changed
-
Skill surface consolidated 86 → 59
commands/gsd/*.mdentries (#2790) — four new grouped skills replace clusters of micro-skills:capture— folds add-todo (default), note (--note), add-backlog (--backlog), plant-seed (--seed), check-todos (--list)phase— folds add-phase (default), insert-phase (--insert), remove-phase (--remove), edit-phase (--edit)config— folds settings-advanced (--advanced), settings-integrations (--integrations), set-profile (--profile)workspace— folds new-workspace (--new), list-workspaces (--list), remove-workspace (--remove)
Six existing parents absorb wrap-up and sub-operations as flags:
update --sync / --reapply,sketch --wrap-up,spike --wrap-up,map-codebase --fast / --query,code-review --fix,progress --do / --next. Zero functional loss — every removed micro-skill's behavior survives via a flag on a consolidated parent. 31 micro-skills deleted outright;autonomous.mdcorrected to callgsd:code-review --fix(was invoking deletedgsd:code-review-fix). -
Canary release workflow now publishes from
devbranch only (#2868) —.github/workflows/canary.ymlswaps its four publish-step guards fromrefs/heads/maintorefs/heads/dev, aligning with the new branch → dist-tag policy (dev→@canary,main→@next/@latest).workflow_dispatchruns onmain(or any other branch) now complete build / test / dry-run validation but skip publish + tag, instead of the prior behaviour wheremainpublished anddevsilently no-op'd. -
PRs missing
Closes #NNNare auto-closed (#2872) — theIssue link requiredworkflow now auto-closes any PR opened without a closing keyword that links a tracking issue, posting a comment that points to the contribution guide. Matches the documented project gate.
Fixed
-
Gemini slash commands are namespaced as
/gsd:<cmd>instead of/gsd-<cmd>(#2768, #2783) — Gemini CLI namespaces commands undergsd:so/gsd-plan-phasewas unexecutable. The Gemini install path now converts every body-text reference via a roster-checked regex (boundary lookbehind + extension- aware lookahead + roster lookup, defense-in-depth) and consistently rewrites command files, agent bodies, and final-banner / patch-reapply hints to colon form. The roster fail-loud guard prevents silent no-op'ing if the sourcecommands/gsd/directory is ever missing. -
GSD slash-command namespace drift cleaned up across docs, workflows and autocomplete (#2858) — remaining stale
/gsd:<cmd>references in active surfaces now use canonical/gsd-<cmd>, escaped workflowSkill(skill="gsd:...")prompts now use hyphenated skill names,scripts/fix-slash-commands.cjsrewrites retired colon syntax to hyphen syntax, and the extract- learnings command file is nowextract-learnings.mdso generated Claude / Qwen skill autocomplete exposesgsd-extract-learningsinstead ofgsd-extract_learnings. -
SKILL.mddescription quoted for Copilot / Antigravity / Trae / CodeBuddy (#2876) — descriptions starting with a YAML 1.2 flow indicator ([BETA] …,{,*,&,!,|,>,%,@, backtick) are parsed as flow sequences / mappings by strict YAML loaders and crash gh-copilot's frontmatter loader. Six emission sites now wrap the description inyamlQuote(...)(=JSON.stringify, a valid YAML 1.2 double-quoted scalar). The Claude variant already routed throughyamlQuote; the others are now in line. -
gsd-toolsinvocations use the absolute installed path (#2851) — baregsd-tools …calls inside skill bodies relied on PATH resolution that is not guaranteed in every runtime; replaced with the absolute path emitted at install time. -
Codex installer preserves trailing newline when stripping legacy hooks (#2866) — the legacy-hook strip in the Codex installer ran against files with no terminating newline at EOF and emitted a config that lost the newline, breaking downstream parsers. Strip path now normalises EOF.
What was in rc.7
RELEASE-v1.39.0-rc.7.md — first 1.39.0 RC to
roll the post-rc.5 fixes from main into the release branch. Includes
the extractCurrentMilestone fenced-code-block fix
(#2787),
audit-uat frontmatter parse fix
(#2788), the
≤ 100-char skill description budget + lint gate
(#2789), the
gsd-sdk workstream + binary-collision fixes
(#2791),
OpenCode per-tier model overrides
(#2794),
roadmap update-plan-progress --phase flag handling
(#2796),
context_window allowlist entry
(#2798),
/gsd-ingest-docs init dispatch
(#2801),
config-get --default flag
(#2803),
find-phase archived-phase null
(#2805),
SKILL.md hyphen-form name migration
(#2808),
canary workflow workflow_dispatch
(#2828),
gsd-sdk local-mode resolve
(#2829),
OpenCode @file HOME expansion
(#2831),
gsd-sdk auto Codex detection
(#2832),
CR-INTEGRATION hyphen alignment
(#2835),
audit-open SUMMARY filename + UAT terminal status
(#2836),
SUMMARY rescue with gitignored .planning/
(#2838),
transactional cleanup tail for /gsd-code-review-fix
(#2839).
What was in rc.5 / rc.6
RELEASE-v1.39.0-rc.5.md and
RELEASE-v1.39.0-rc.6.md. rc.6 was a
content-identical republish of rc.5; rc.5 hardened the Codex hooks
migrator across five edge-cases
(#2809).
What was in rc.4
RELEASE-v1.39.0-rc.4.md — the --minimal
install flag landed
(#2762) along
with the Codex ~/.codex/config.toml corruption fix
(#2760).
Installing the pre-release
# npm
npm install -g get-shit-done-cc@next
# npx (one-shot)
npx get-shit-done-cc@next
To pin to this exact RC:
npm install -g get-shit-done-cc@1.40.0-rc.1
What's next
- Soak rc.1 against real installs across Claude Code, Codex, Copilot, Gemini, OpenCode, and Antigravity runtimes.
- Wire write-side phase-lifecycle status-line on top of the #2833 read-side.
- Run
finalizeon the release workflow to promote1.40.0tolatestonce the train has soaked.