github open-gsd/gsd-core v1.5.0

7 hours ago

Install

npm i @opengsd/gsd-core@1.5.0
# or
npm i @opengsd/gsd-core@latest

What's Changed

Feature

  • 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
  • feat(#1014): add Claude Fable 5 model config by @Solvely-Colin in #1015
  • feat(#1023): first phase-6 cutover — ui-review (verify:post) → loop.render-hooks dispatch — ADR-857 by @trek-e in #1024
  • feat(#1026): §5.6/ui-phase cutover — first gate dispatch (plan:pre step + blocking gate) — ADR-857 by @trek-e in #1028
  • feat(#1031): autonomous §3a.5 plan:pre ui-phase cutover — last inlined ui-phase site (step-only) — ADR-857 by @trek-e in #1033
  • feat(#1035): phase 5a — author 16 role:runtime capability descriptors (registry-only) — ADR-857/1016 by @trek-e in #1039
  • feat(#1040): phase 5b — drive configHome from the runtime descriptor — ADR-857/1016 by @trek-e in #1043
  • feat(#1046): phase 5c — drive commandStyle from the runtime descriptor — ADR-857/1016 by @trek-e in #1048
  • feat(#435): full Cartesian matrix cross-product expansion in workflow-policy linter by @trek-e in #1050
  • feat(#1049): phase 5d — drive artifactLayout from the runtime descriptor (retire the 128-LOC switch) — ADR-857/1016 by @trek-e in #1053
  • feat(#1056): phase 5e — close ConverterName enum + configFormat↔installSurface parity guard — ADR-857/1016 by @trek-e in #1057
  • feat(#429): HARD GATE on negative-grep literals echoed in plan bodies by @trek-e in #1062
  • feat(#247): runtime-neutral phase uat-passed predicate from HUMAN-UAT results by @trek-e in #1063
  • feat(#767): inject disallowedTools deny-list into Claude read-only verifier/auditor agents by @trek-e in #1081
  • feat(#792): add devin-desktop runtime alias for windsurf by @trek-e in #1086
  • feat(#1082): complete phase 5 — descriptor-drive all install surfaces + materialize the InstallPlan — ADR-857/1016/58 by @trek-e in #1080
  • feat(#791): migrate antigravity workspace base dir .agent → .agents by @trek-e in #1090
  • feat(#1085): migrate windsurf workspace skills to .devin/ + fix global content refs by @trek-e in #1093
  • feat(spec-phase): spec-completeness edge-probe (#550) by @davesienkowski in #584
  • feat(#1123,#1124): enforce duplicate-producer invariant + fail-loud loadCentralConfigKeys in gen-capability-registry by @trek-e in #1131
  • feat(#1132): complete contribution hook prerequisite by @trek-e in #1134
  • feat(#1135): migrate planning hooks to capabilities by @trek-e in #1141
  • feat(#1137): migrate review verification hooks to capabilities by @trek-e in #1147
  • feat(#1136): consume resolved capability state by @trek-e in #1153
  • feat(#1138): make runtime descriptors authoritative by @trek-e in #1157
  • feat(#1180): hard-gate the GSD Version requirement on bug reports by @trek-e in #1181
  • feat(#1169): complete ADR-857 phase 6 — migrate features to Capabilities, revive dead gates, harden conformance gate by @trek-e in #1183
  • feat(#956): add MemPalace memory capability (ADR-857 feature plug-in) by @trek-e in #1201
  • feat(#1187): per-module Stryker mutation-score ratchet (ADR-456 80% floor) by @trek-e in #1200
  • feat(#1165): async external_job_waiting half-state + resume/pause contract (split of #1105) by @trek-e in #1221
  • feat(#1213): Capability State Writer — write-side inverse of the resolver by @trek-e in #1225
  • feat(#1173): wire agent converters into descriptor-driven install path by @trek-e in #1227
  • feat(#1190): wire --converge primary surface into /gsd:progress --next (ADR-15) by @trek-e in #1237
  • feat(#1245): capability ecosystem — ADR, PRD & developer documentation (Phase 0 of #1244) by @trek-e in #1248
  • feat(#1188): branch-coverage floors + promote no-source-grep to error on tests/** by @trek-e in #1250
  • feat(spec-phase): prohibition probe — surface "must-NOT" constraints (#644) by @davesienkowski in #1149
  • feat(#1304): add optional activationKey capability manifest field by @trek-e in #1309
  • feat(#1305): per-capability active tri-state + isCapabilityActive in Capability State Resolver by @trek-e in #1311
  • feat(#1355): detect-and-warn guard for claude-code agent-teams by @trek-e in #1371

Enhancement

  • 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
  • chore: merge release v1.4.0 to main by @trek-e in #884
  • 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: merge release v1.4.1 to main by @trek-e in #919
  • chore(#930): remove self-masking next dist-tag repoint from release finalize by @trek-e in #931
  • chore: merge release v1.4.2 to main by @trek-e in #932
  • chore: merge release v1.4.3 to main by @trek-e in #940
  • 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
  • chore: merge release v1.4.4 to main by @trek-e in #1017
  • docs(#1016): ADR-1016 runtime capability descriptor (ADR-857 phase 5 design) by @trek-e in #1019
  • test(#1018): hook-firing de-risk spike — structural off-means-off proof + cutover contract by @trek-e in #1020
  • docs(#1022): resolve step-vs-gate model question (steps additive, gates block) — ADR-857/894 by @trek-e in #1025
  • refactor(#1059): phase 5f-1 — extract standalone hook-surface writers into a module — ADR-857/1016 by @trek-e in #1064
  • docs(#1065): record DEFECT.INVENTORY-MERGE-UNDERCOUNT in CONTEXT.md by @trek-e in #1066
  • refactor(#1067): phase 5f-1b — extract the settings-json hook block (applySettingsJsonHooks) — ADR-857/1016 by @trek-e in #1075
  • chore(#1087): Windows test-portability lint + n/no-path-concat + LF normalization by @trek-e in #1088
  • docs(#793): disambiguate Trae IDE vs trae-agent in runtime notes by @trek-e in #1083
  • test(#1074): add additive per-file workflow size baseline guard (PR 1/3) by @davesienkowski in #1089
  • test(#1074): swap workflow size enforcement to baseline + loose hard caps (PR 2/3) by @davesienkowski in #1096
  • test(#1074): agent-size-budget per-file baseline + line→byte rebase (PR 3/3) by @davesienkowski in #1097
  • enhance(spec-phase): edge-probe precision probe should name tie-breaking / rounding-mode by @davesienkowski in #1108
  • ci(#1104): keep next package.json in sync with the last published release by @trek-e in #1109
  • chore: sync next package version to 1.5.0-rc.2 by @trek-e in #1112
  • docs(857): settle phase-6 predicate boundary — verification substrate vs. plug-in tier by @trek-e in #1121
  • docs(857): refresh stale 'out of scope' comments — render-hooks/capability-state are now consumed by @trek-e in #1126
  • docs(context): codify audit search-discipline — verify enforcement in the source/generator, not the generated artifact by @trek-e in #1128
  • chore: merge release v1.4.5 to main by @trek-e in #1142
  • docs(#1143): ADR-1143 Claude orchestration capability (Workflow/ultracode) [proposal] by @trek-e in #1155
  • test(#1139): add phase 6 capstone conformance gate by @trek-e in #1158
  • refactor(#1099): extract runtime artifact conversion module by @trek-e in #1100
  • test(#1168): honest phase-6 conformance gate (RED by design) + wire dead ship:pre gate (#1167) by @trek-e in #1174
  • test(#1171): parity guard for primary/advanced agent classification by @trek-e in #1176
  • refactor(#1170): remove hand-maintained INVENTORY count scalars by @trek-e in #1179
  • chore: sync next package version to 1.5.0-rc.3 by @trek-e in #1208
  • docs(#1209): map ready-for-agent to confirmed-bug in triage-labels by @trek-e in #1210
  • ci(#1212): shard windows full-test lane to remove timeout cliff by @trek-e in #1222
  • test(#1189): cover ADR-0006 planningPaths() consumption in init handlers by @trek-e in #1226
  • chore(#1175): remove dead tool-name converters + fix unused-arg lint by @trek-e in #1234
  • refactor(#1190): extract ADR-230 PR-target branch policy into a tested, fork-safe seam by @trek-e in #1246
  • docs(#1239): ADR — GSD as an embeddable orchestration engine by @trek-e in #1241
  • refactor(#1190): extract ADR-22 drift-guard decision logic into a testable seam by @trek-e in #1242
  • refactor(#1191): inject clock/reset testability seams + handle valid-null settings by @trek-e in #1233
  • docs(#1235): ADR — migrate agent conversion to the descriptor-driven install path by @trek-e in #1253
  • enhance(spec-phase): surface zero-classification edge-probe requirements as "unclassified — review manually" instead of silent drop by @davesienkowski in #1117
  • enh(#1243): consume Claude plugin-provided skills in agent_skills (epic #1258 Phase B) by @trek-e in #1261
  • chore: sync next package version to 1.5.0-rc.4 by @trek-e in #1262
  • refactor(#1268): re-home core re-export-spine squatters + migration-convergence lint by @trek-e in #1272
  • enh(#966): gate behavior-dependent truths on behavioral evidence in gsd-verifier by @trek-e in #1271
  • refactor(#1277): T1 — decouple agent-install-check + git-base-branch from the core spine by @trek-e in #1280
  • enhance(verify-phase): enforce test-tier prohibitions — wire the deferred negative-test gate (#1259, ADR-550 D5d) by @davesienkowski in #1273
  • refactor(#1281): T2 — migrate 12 single-leaf callers off the core spine (batch 1) by @trek-e in #1282
  • refactor(#1283): T3 — migrate 9 multi-leaf callers off the core spine (batch 2) by @trek-e in #1285
  • refactor(#1286): T4 — migrate 5 large destructure callers off the core spine (batch 3) by @trek-e in #1287
  • refactor(#1289): T5 — migrate the final idiom-hard callers off the core spine by @trek-e in #1290
  • refactor(#1291): T6 — migrate test files off the core spine ahead of deletion by @trek-e in #1293
  • refactor(#1294): T-final — delete the core.cjs re-export spine (epic #1267 complete) by @trek-e in #1295
  • enhance(execute): isolated-executor rejected/over-reaching run fails safe — never default recovery to main (#1292) by @trek-e in #1303
  • refactor(#1306): gate graphify on isCapabilityActive (tri-state, runtime-aware) by @trek-e in #1313
  • enhance(verify-phase): deterministic auto-locate of the prohibition check descriptor (#1278) by @davesienkowski in #1301
  • refactor(#1307): gate intel on isCapabilityActive + loop-resolver honors capability active by @trek-e in #1315
  • enhance(#968): region-scoped negative-grep idiom + cross-task conflict warning by @trek-e in #1320
  • refactor(#1308): consolidate config-key precedence engine into single owner by @trek-e in #1322
  • chore(build): untrack tsc-generated git-base-branch.cjs artifact (#1321) by @trek-e in #1323
  • chore: sync next package version to 1.5.0-rc.5 by @trek-e in #1327
  • chore: align LICENSE copyright with open-gsd ownership (match gsd-pi) by @trek-e in #1334
  • chore: remove orphaned/dead files at repo root (SDK + next-branch rollout residue) by @trek-e in #1333
  • chore(release): back-merge main → next — reconcile CHANGELOG + prune released fragments by @trek-e in #1337
  • chore(deps): bump js-yaml to 4.2.0 — clear GHSA-h67p-54hq-rp68 (dev-scope DoS) by @trek-e in #1338
  • ci: harden auto-backmerge main→next — never-conflict reconcile + review gate by @trek-e in #1340
  • enhance(verify-phase): machine-proven fail-first for test-tier prohibition enforcement (#1279) by @davesienkowski in #1314

Fix

  • 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
  • fix(#1008): tolerate EAGAIN + short writes in io output()/error() by @davesienkowski in #1009
  • fix(#1004): detect http-route hook registrations in installer presence check by @trek-e in #1032
  • fix(#1000): align gsd-intel-updater output to canonical intel filenames by @trek-e in #1037
  • fix(#1013): resolve worktree.baseRef from user/global settings cascade by @trek-e in #1038
  • fix(#222): orchestrator self-heal when synthesizer returns SUMMARY.md inline by @trek-e in #1042
  • fix(#1012): invoke fallow with its real CLI and wire the report normalizer by @trek-e in #1044
  • fix(#1041): route all source agents through the canonical multi-runtime gsd-tools resolver by @trek-e in #1045
  • fix(#1034): correct stale intel.cts comments to canonical INTEL_FILES names by @trek-e in #1036
  • fix(#779): correct stale model-catalog model IDs verified against live providers by @trek-e in #1047
  • fix(#1051): force-exit + per-chunk timeout for the windows full-test lane; close leaked test handles by @trek-e in #1054
  • fix(#1070): recognize "Complete ✓" terminal status in planned-phase transition by @trek-e in #1078
  • fix(#1058): cross-reference install manifest in validate agents to catch .md/.toml pair drift by @trek-e in #1079
  • fix(#381): make gsd_run launcher reachable in fresh-shell-per-block runtimes by @trek-e in #1084
  • fix(#1091): thread install scope into skill converters so local Antigravity/Copilot installs use workspace paths by @trek-e in #1092
  • fix(#1103): preserve newline before Plans: header in roadmap.annotate-dependencies by @trek-e in #1111
  • fix(#1101): record-session updates ## Session Continuity in place, no duplicate block by @trek-e in #1113
  • fix(#1114): write-profile resolves the active runtime config home for USER-PROFILE.md by @trek-e in #1119
  • fix(#1107): progress consults verification.status before reporting a phase complete by @trek-e in #1116
  • fix(#1115): capability-probe codex hook-trust bypass flag in /gsd:review; fail loud on empty output by @trek-e in #1122
  • fix(#1098): guard generate-claude-md against clobbering; redirect default to .claude/CLAUDE.md by @trek-e in #1118
  • fix: route nested sub_repos by longest prefix, not first array-order match (#391) by @trek-e in #1130
  • fix(#1133): honor model_policy on the claude runtime (forward-port to next) by @trek-e in #1144
  • fix(#1140): implement state add-roadmap-evolution CJS handler by @trek-e in #1148
  • fix(#1151): drive codex sandbox_mode emission from runtime descriptor sandboxTier axis by @trek-e in #1152
  • fix(#1161): make phase complete idempotent for roadmap completion dates by @trek-e in #1177
  • fix(#1156): support table-format STATE.md and insert missing roadmap plan rows by @trek-e in #1172
  • fix(#1145): implement query user-story.validate handler by @trek-e in #1193
  • fix: recover silently-excluded test dirs + test-architecture audit hardening by @trek-e in #1195
  • fix(#1159): phase complete ignores historical/deferred requirement metadata by @trek-e in #1197
  • fix(#1196): wire discuss loop step for capability hooks by @trek-e in #1199
  • fix(#1146): single base-branch resolver across forking workflows by @trek-e in #1198
  • fix(#1160): resolve capability surface from installed skill layouts by @trek-e in #1206
  • fix(#997): ensure canonical ~/.claude/gsd-core path for plugin installs by @trek-e in #1207
  • fix(#1186): guard hotfix version regex against leading zeros (ADR-218) by @trek-e in #1214
  • fix(#1194): correct inverted statusline auto-compact buffer math by @trek-e in #1211
  • fix(#1205): roadmapper applies phase_id_convention to generated phase IDs by @trek-e in #1215
  • fix(#1202): make verify key-links wave-aware for planned future files by @trek-e in #1219
  • fix(#1203): gate free-form ROADMAP deprecation warning on phase_id_convention by @trek-e in #1218
  • fix(#1182): extract agent converters + tool-name tables into conversion module by @trek-e in #1220
  • fix(#1224): accept --pr 0 placeholder at changeset creation by @trek-e in #1231
  • fix(#1217): bound acquireStateLock retries on recoverable errno (no busy-spin) by @trek-e in #1236
  • fix(#1223): install scripts/fix-slash-commands.cjs so gsd-tools loads by @trek-e in #1240
  • fix(#1238): keep node resolvable in bug-891 PATH isolation (home-fallback subtests false-fail when node co-locates with global gsd-tools) by @trek-e in #1247
  • fix(#1229): count bullet-only phases so phase.add stops reusing an existing phase number by @trek-e in #1249
  • fix(#1230): preserve frontmatter status/stopped_at when a state write doesn't change the body source by @trek-e in #1252
  • fix(#1255): advance frontmatter status for pipe-table STATE.md on begin/complete-phase by @trek-e in #1256
  • fix(#1257): update pipe-table Status/Phase/Plan cells in planned-phase + begin-phase by @trek-e in #1260
  • fix(#1274): bump ws to ^8.21.0 to clear advisory GHSA-96hv-2xvq-fx4p by @trek-e in #1275
  • fix(#1284): grant mcp__perplexity__* to researcher agents + dispatch-table parity guard by @trek-e in #1288
  • fix(#1296): align config docs/prompts/schema with consumers by @trek-e in #1299
  • fix(#1329): existence-filter scoped-CI fallback so a deleted test can't crash the lane by @trek-e in #1332
  • fix(#1263): restore init phase requirements from flat Phase Details by @trek-e in #1344
  • fix(#1264): preserve curated progress during state patch by @trek-e in #1345
  • fix(#1265): allow quick worktree parent plan base by @trek-e in #1347
  • fix(#1297): have executor self-report worktree metadata by @trek-e in #1349
  • fix(#1300): resume UAT checkpoint from paused placeholder by @trek-e in #1350
  • fix(#1316): preserve prose STATE phase names by @trek-e in #1351
  • fix(#1319): use portable Claude skill effort by @trek-e in #1352
  • fix(#1359): migrate workflows off deprecated TaskOutput to Read(outputFile) by @trek-e in #1362
  • fix(#1326): stop emitting Codex agents/openai.yaml sidecars; clean up stale ones by @trek-e in #1360
  • fix(#1343): parse decision bullets with text before the colon by @trek-e in #1358
  • fix(#1325): scope update backup detection by @trek-e in #1354
  • fix(#1324): resolve glued phase tokens by @trek-e in #1353
  • fix(#1342): scope worktree-path-guard to GSD executor runs; fail open for no-repo targets by @trek-e in #1361
  • fix(#1348): canonicalize Codex hooks.json writes to the nested { hooks } shape by @trek-e in #1363
  • fix(#1356): rewrite bare ~/.claude paths in the Cursor install branch by @trek-e in #1368

New Contributors

Full Changelog: v1.4.4...v1.5.0

Don't miss a new gsd-core release

NewReleases is sending notifications on new releases.