Install
This pre-release is published to npm under the next dist-tag.
npm i @opengsd/gsd-core@1.5.0-rc.1
# or
npm i @opengsd/gsd-core@nextWhat's Changed
Feature
- feat(#656): Research module — content-addressed cache + provider seam + registry-API legitimacy by @trek-e in #664
- feat(#717): re-base workflow size budget on bytes + document quality rationale by @trek-e in #719
- feat(#159): auto-use existing RESEARCH.md in /gsd:plan-phase --research-phase by @trek-e in #718
- feat(#703): add --granularity override flag to /gsd:plan-phase by @trek-e in #750
- feat(#25): scope gsd-verifier Step 7b to enumerate-or-single-test; forbid full-suite re-runs by @trek-e in #753
- feat(#52): add agent_skills_security.trusted_global_roots allowlist for global skills by @trek-e in #754
- feat(#759): non-destructive CHANGELOG preview in the rc release job by @trek-e in #763
- feat(#761): scheduled base-context sweep to close SHA-branch-evading draft PRs by @trek-e in #765
- feat(#764): skip cross-platform test matrix for docs-only and inert-CI PRs by @trek-e in #798
- feat(#766): distribute gsd-core as a native Claude Code plugin by @trek-e in #797
- feat(#786): elevate GitHub Copilot installer — lifecycle hook + AGENTS.md by @trek-e in #804
- feat(#785): write .cursor/commands/ Cursor 1.6 slash-command surface by @trek-e in #805
- feat(#787): elevate Cline — .clinerules/ dir form, PreToolUse hook, AGENTS.md by @trek-e in #803
- feat(#788): expand Qwen Code hook-event coverage by @trek-e in #807
- feat(#790): emit Augment slash commands by @trek-e in #808
- feat(#773): add --ephemeral and --dangerously-bypass-hook-trust to automated codex exec wrappers by @trek-e in #824
- feat(#775): ship a gemini-extension.json extension package for one-step Gemini install by @trek-e in #818
- feat(#768): pre-populate settings.json permissions.allow/deny for Claude Code by @trek-e in #819
- feat(#774): emit service_tier/model_verbosity in Codex agent TOML + agents/openai.yaml skill chip by @trek-e in #828
- feat(#769): adopt context:fork + effort on heavy workflow skills by @trek-e in #820
- feat(#772): adopt stable Codex hook events + commandWindows for Windows parity by @trek-e in #827
- feat(#778): cross-runtime command enrichment (Gemini {{args}}/!{}, Qwen priority) by @trek-e in #825
- feat(#789): elevate CodeBuddy — slash commands by @trek-e in #830
- feat(#776): Gemini hook events (BeforeAgent/AfterAgent/BeforeModel) + hooksConfig.enabled check by @trek-e in #829
- feat(#777): register Cursor-native hooks (.cursor/hooks.json) for session-start/post-tool parity by @trek-e in #831
- feat(#815): add /gsd-update --next to install the @next RC channel by @trek-e in #839
- feat(#836): no-LLM duplicate-issue detection + challenge + 1-day auto-close by @trek-e in #843
- feat(#770): register Claude Code lifecycle hooks (SubagentStop/Stop/PreCompact/FileChanged) by @trek-e in #821
- feat(#69): complete namespace meta-skill architecture — nest concrete skills under routers by @trek-e in #883
- feat(#896): Capability Registry generator + UI pilot (ADR-857 phase 3a-impl) by @trek-e in #902
- feat(#903): generate Loop Host Contract from workflow markers (ADR-857 phase 3a-impl-2) by @trek-e in #906
- feat(#910): federated config merge in config-loader (ADR-857 phase 3b) by @trek-e in #914
- feat(#918): loop.render-hooks resolver — consume the Capability Registry (ADR-857 phase 3c) by @trek-e in #920
- feat(#744): add Kimi CLI runtime support by @viktorplus in #743
- feat(#942): tier→profile/cluster derivation + consistency gate (ADR-857 phase 4a) by @trek-e in #943
- feat(#945): unified capability-state resolver (ADR-857 phase 4b) by @trek-e in #946
- feat(#949): install/surface consume derived profiles/clusters (UI→tier:full, proven no-op) — ADR-857 phase 4c by @trek-e in #954
- feat(#961): capability command mechanism (commandFamilies index + default-case dispatch) — ADR-857 phase 4d-impl-1 by @trek-e in #964
- feat(#972): graphify command cutover — first capability owning a command family (ADR-857 phase 4d-impl-2) by @trek-e in #975
- feat(#981): audit-uat + audit-open command cutover — commands-only capability (ADR-857 phase 4d-impl-3) by @trek-e in #984
- feat(#985): intel command cutover — commands-only capability, last first-party family (ADR-857 phase 4d-impl-4) by @trek-e in #988
- feat(templates): add optional Business Context section to PROJECT.md template by @jslitzkerttcu in #756
Enhancement
- docs: promote README/branding fixes from next to main by @trek-e in #540
- [codex] docs: promote README version cleanup to main by @jeremymcs in #545
- docs(#546): promote changelog update to main by @jeremymcs in #548
- chore: merge release v1.3.0 to main by @trek-e in #662
- chore: back-merge main into next after v1.3.0 release by @trek-e in #671
- chore(#660): bump next to 1.3.1-dev.0 (-dev stream per ADR 660) by @trek-e in #672
- ci(#660): scoped GSD_BOT_PR_TOKEN for backmerge & release merge-back PR creation by @trek-e in #673
- chore: merge hotfix v1.3.1 back to main by @trek-e in #681
- chore: back-merge main (v1.3.1 hotfix) to next + hono advisory bump by @trek-e in #682
- chore: back-merge main → next (051588f, #690 CHANGELOG fast-track) by @trek-e in #697
- chore: back-merge main → next (3e0578a) by @trek-e in #701
- chore(release): archive 463 shipped changeset fragments before wiring render (#690 follow-up) by @trek-e in #714
- chore(release): wire CHANGELOG render into release finalize job (#690 follow-up) by @trek-e in #715
- docs(#695): document --only and --text flags for /gsd-autonomous by @trek-e in #716
- chore: clean up clear-cut ESLint warnings (#732) by @trek-e in #734
- chore(lint): justify intentional no-control-regex (ANSI strip) + ratchet to error by @trek-e in #737
- chore(lint): eliminate magic-sleep test warnings + ratchet rules to error by @trek-e in #735
- refactor(scripts): replace process.exit() with ExitError + runMain handler (part 1 of #738) by @trek-e in #740
- refactor(bin): replace process.exit() in CLI entrypoints + ratchet n/no-process-exit to error (part 2 of #738) by @trek-e in #741
- refactor(#720): lazy-load MVP-only reference bodies on non-MVP runs by @trek-e in #746
- refactor(#712): replace Codex slash-command denylist lookbehind with positive-boundary match by @trek-e in #747
- refactor(#651): consolidate verification-status routing into one queryable seam by @trek-e in #755
- docs(#58): add ADR for Runtime Install Policy Module boundary by @trek-e in #762
- test(#339): regression guard for gsd-sdk refs in runtime surfaces by @jslitzkerttcu in #691
- refactor(#60): make runtime config adapter registry explicit by @trek-e in #795
- refactor(#56): retire legacy runtime directory helpers into runtime-homes projection by @trek-e in #802
- enhancement(#782): emit gsd skills to ~/.cline/skills for Cline >= v3.48 by @trek-e in #809
- enh(#784): emit native skills for OpenCode + Kilo runtimes by @trek-e in #810
- chore(#771): convert agent color: hex/magenta values to documented named colors by @trek-e in #823
- docs(#832): add how-to guide for minimal install / skill profiles by @trek-e in #835
- chore(#846): remove unused PR-size labeler (size/S–XL) workflow by @trek-e in #848
- docs(#849): capture 1.4.0 release features across the docs base by @trek-e in #850
- docs(#857): ADR-857 Capability system — five-step loop core, features as plug-ins by @trek-e in #858
- refactor(#859): extract CLI I/O primitives from core.cts into io.cts by @trek-e in #864
- refactor(#865): extract pure phase-id helpers from core.cts into phase-id.cts by @trek-e in #868
- ci(#869): raise full-test Windows lane timeout 15m→20m by @trek-e in #871
- chore(#57): add runtime install no-drift guard tests by @trek-e in #867
- refactor(#870): extract ROADMAP.md parsing into roadmap-parser.cts by @trek-e in #876
- refactor(#877): extract shared low-level utilities into core-utils.cts by @trek-e in #878
- refactor(#881): extract phase-locator fs-search into phase-locator.cts by @trek-e in #882
- refactor(#885): extract loadConfig cluster into config-loader.cts by @trek-e in #886
- refactor(#887): consolidate duplicated CHILD_ROUTER test maps into shared helper by @trek-e in #889
- refactor(#888): extract model+effort resolution into model-resolver.cts by @trek-e in #890
- docs(#894): ADR-894 Capability declaration format + registry generation by @trek-e in #895
- chore(#899): auto-close unsolicited fork PRs with no linked issue by @trek-e in #901
- chore(#893): remove dead loadConfig from configuration.cts by @trek-e in #912
- chore(#930): remove self-masking next dist-tag repoint from release finalize by @trek-e in #931
- docs(#956): MemPalace capability pre-proposal (PRD/ADR draft) by @trek-e in #957
- docs(#959): ADR-959 capability command contribution (ADR-857 phase 4d design) by @trek-e in #960
- ci(#962): pipeline audit fixes — scoped matrix, merged coverage gate, suite seeding, bug-* ratchet by @Solvely-Colin in #963
- test(#969): fix stale-build flake (incremental + re-emit-on-missing) and harden runGsdTools against subprocess kills by @trek-e in #996
Fix
- fix(#663): resolve open CodeQL/Dependabot security alerts (ReDoS, prototype pollution, workflow perms, qs DoS) by @trek-e in #665
- fix: accept published installer migration checksums by @Solvely-Colin in #674
- fix(#670): tolerate installer-migration checksum drift on upgrade by @trek-e in #675
- fix(#676): consolidate hotfix into release.yml (delete standalone hotfix workflow) by @trek-e in #678
- fix(#676): update tests/docs referencing deleted hotfix.yml by @trek-e in #680
- fix(#690): promote CHANGELOG 1.3.x + gate release-notes promotion by @trek-e in #694
- fix(#690): backfill CHANGELOG 1.3.x on main for /gsd:update preview by @trek-e in #696
- fix(#698): make auto-backmerge main→next actually land (admin-merge via PAT) by @trek-e in #699
- fix(#698): sync main's auto-backmerge.yml to next (hardened admin-merge + scoped PAT) by @trek-e in #700
- fix(#637): route 3 more workflows through gsd_run launcher (hardcoded $HOME sweep) by @jslitzkerttcu in #642
- fix(#705): route hardcoded $HOME gsd-tools invocations in agents/commands through gsd_run by @trek-e in #707
- fix(#685): set windowsHide on all Windows child-process spawns by @trek-e in #688
- fix(#687): cap agy -p with a hard wall-clock timeout (no indefinite hang) by @trek-e in #689
- fix(#669): /gsd-review --cursor actually invokes cursor-agent by @trek-e in #686
- fix(#704): exclude } and ) from Codex path-rewrite lookbehind (no literal $gsd-core in installs) by @trek-e in #710
- fix(#706): skip rescue of already-committed SUMMARY to avoid worktree cleanup merge_failed by @trek-e in #709
- fix(#730): scope current-milestone Phase Details section in roadmap parser by @trek-e in #748
- fix(#683): auto-degrade phase execution to sequential on worktree base mismatch by @trek-e in #749
- fix(#751): recognise config-set prototype-pollution guard in CodeQL + test dynamic-key vectors by @trek-e in #752
- fix(#758): trigger draft-PR auto-close on pull_request_target by @trek-e in #760
- fix(ci): repair Discord release changelog announcements by @Solvely-Colin in #780
- fix(#783): resolve Kilo global skills base to ~/.kilo/skills by @trek-e in #806
- fix(#812): honor COPILOT_HOME in Copilot global config-dir resolution by @trek-e in #814
- fix(#813): apply per-runtime skill path rewrites in applySurface by @trek-e in #817
- fix(#816): mirror install command-prefix handling in _syncGsdDir by @trek-e in #822
- fix(#837): three-dot diff in ci-test-scope so docs-only PRs skip the heavy matrix by @trek-e in #841
- fix(#844): sync runtime manifest versions on npm version bump by @trek-e in #845
- fix(#834): derive installer --help skill counts from PROFILES by @trek-e in #847
- fix(#856): remove gsd-cmd-rewrites temp dirs after install by @trek-e in #862
- fix(#853): gate manager/autonomous background dispatch by runtime by @trek-e in #863
- fix(#872): make roadmap-phase-fallback tests hermetic against ambient GSD env by @trek-e in #873
- fix(#866): route profile-pipeline temp output under reaped root + fixture teardown by @trek-e in #879
- fix(#875): make getMilestonePhaseFilter fence-aware by @trek-e in #880
- fix(#904): normalize phase number in init.execute-phase branch_name by @trek-e in #909
- fix(#891): probe non-Claude runtime homes in gsd-tools launcher shim detection by @trek-e in #911
- fix(#892): parse checklist-style roadmap phases in validate/verify by @trek-e in #908
- fix(#905): preserve STATE.md frontmatter scalars in syncStateFrontmatter by @trek-e in #907
- fix(#913): guard top-level Claude Code plan-phase against role collapse by @trek-e in #915
- fix(#916): deterministic phase-complete subprocess in regression tests by @trek-e in #917
- fix(#925): context monitor echoes the invoking hook event name by @trek-e in #927
- fix(#921,#922): orchestrators must not fork; plan-phase Agent gate is attempt-based by @trek-e in #926
- fix(#924): revert Claude to flat skill layout so concrete skills are discoverable by @trek-e in #928
- fix(#929): cmdSkillManifest discovers nested concrete skills by @trek-e in #933
- fix(#935): install changeset CLI so /gsd-update changelog preview works by @trek-e in #938
- fix(#936): run plan-phase inline in convergence; guard against nested spawner wraps by @trek-e in #939
- fix(#934): reapply verifier handles missing pristine baseline post-rename by @trek-e in #937
- fix(#941): track managed-hooks-registry.cjs in file manifest by @trek-e in #953
- fix(#948): guard STATE.md no-op writes; preserve milestone_name/stopped_at (closes #944) by @trek-e in #952
- fix(#950): emit status: complete in quick-task SUMMARY frontmatter by @trek-e in #951
- fix(#947): restore gsd- prefix on Hermes skills for canonical dispatch by @trek-e in #955
- fix(#851): correct Codex quick adapter for generic multi_agent_v1 schema by @trek-e in #958
- fix(#970): ratchet --update drift repair + inherited-drift guidance by @Solvely-Colin in #971
- fix(#978): parse --force in milestone complete dispatcher so the guard's documented override works by @trek-e in #982
- fix(#965): emit structured json error for unexpected handler throws under --json-errors by @trek-e in #987
- fix(#973): add Edit to gsd-planner tools and forbid whole-file Write of ROADMAP.md by @trek-e in #989
- fix(#976): detect command+args (wrapped) hook registrations in installer presence checks by @trek-e in #994
- fix(#974): error on graphify --budget with missing/non-numeric value instead of silent NaN no-op by @trek-e in #986
- fix(#967): make verify key-links docs author-strict (from:/to: are file paths; symbols go in via:) by @trek-e in #990
- fix(#977): map ephemeral fnm multishell execPath to a stable fnm alias in normalizeNodePath by @trek-e in #992
- fix(codex): avoid partial model effort pinning by @radioflyer28 in #842
- fix(#983): rewrite bare .claude paths in Trae/Windsurf converters (Codex/Cline parity) by @trek-e in #995
- fix(#1001): make bug-969 hardening tests hermetic + move build tsbuildinfo out of shipped tree (regression from #996) by @trek-e in #1002
- fix(#991): inject configured agent_skills into code-review family subagents by @trek-e in #1005
- fix(#725): route Codex gsd-tools calls through shim by @jeremymcs in #731
- fix(#724): block convergence on actionable review findings by @jeremymcs in #728
- fix(#1006): rc CHANGELOG preview crash on malformed changeset fragment + validate fragment content at the gate by @trek-e in #1007
- fix(#711): wire autonomous convergence flag by @jeremymcs in #729
New Contributors
- @viktorplus made their first contribution in #743
- @radioflyer28 made their first contribution in #842
Full Changelog: v1.3.1...v1.5.0-rc.1