github open-gsd/gsd-core v1.11.0

2 hours ago

Install

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

What's Changed

Feature

Enhancement

  • enhance(#3248): disclose capability skills as an instruction surface by @trek-e in #3253
  • enhance(#2596): validate a wave branch's committed diff stays in its declared scope by @trek-e in #3264
  • enhance(#2704): resolve documentation links and compare H1 status brackets in the ADR gate by @trek-e in #3266
  • enhance(#3241): omit the codex per-agent model by default by @trek-e in #3276
  • enhance(#3242): validate codex .toml model posture, not just presence by @trek-e in #3290
  • enhance(#2229): add three-way claim disposition (admit/refute/abstain) to /gsd-explore research pass by @davesienkowski in #2543
  • enhance(#3243): sync installed codex .toml model/effort to the passive posture by @trek-e in #3296
  • enhance(#3245): report the detected host runtime in init by @trek-e in #3307
  • enhance(#2872): record scope and runtime in the install manifest by @trek-e in #3323
  • enhance(#2573): stamp STATE.md with its commit and surface a freshness hint by @davesienkowski in #2622
  • enhance(#2483): stop the claude reviewer lane from inheriting CLAUDE.md + auto-memory by @0xdhx in #2493
  • enhance(#3180): one code, one rule, one subject, with a typed remedy — Phase 11 by @trek-e in #3405
  • enhance(#3180): the sibling validators share one envelope and one owner — Phase 12 by @trek-e in #3407
  • enhance(#2115): replace bare eval with llm eval and drop ai system in the AI-integration gate by @0xdhx in #3431
  • enhance(#2873): detect cross-scope shadowing and reach the project-local spec tree by @trek-e in #3537
  • enhance(#2874): return the executed plan and route install IO through a seam by @trek-e in #3568
  • enh(#3565): sentinel/contract registry + check:contract-drift lint by @trek-e in #3571
  • enhance(#2142): archive quick tasks at milestone close-out by @trek-e in #3592
  • enh(#2875): materialization primitives — durable user-artifact staging and descriptor-authoritative agents by @trek-e in #3600
  • enhance(#3587): add a per-phase commit_docs override by @trek-e in #3601
  • enhance(#3588): add an opt-in commit_docs pre-commit hook by @trek-e in #3609
  • enh(#2876): retire the dead and pass-through exports from bin/install.js by @trek-e in #3615
  • enhance(#3617): one canonical Windows binary resolver in the platform seam (epic #3411 Phase 1) by @trek-e in #3621
  • enhance(#3618): fold fallow-runner onto the canonical binary resolver (epic #3411 Phase 2) by @trek-e in #3633
  • enhance(#3619): ratchet the platform seam with local/no-private-binary-resolution (epic #3411 Phase 3) by @trek-e in #3636
  • enhance(#2295): record the resolved model per reviewer in REVIEWS.md frontmatter by @trek-e in #3649

Fix

  • fix(#3174): read quick's verification status via the verification.status query by @0xdhx in #3205
  • fix(#3156): derive the config-location scrub set and close the leaks it cannot reach by @0xdhx in #2677
  • fix(#3204): milestone sectioning is vocabulary, not heading position by @trek-e in #3230
  • fix(#3238): bump js-yaml to the patched 4.3.1 (high-severity devDep advisory) by @trek-e in #3246
  • fix(#2359): CHANGELOG 1.4.0 Cursor commands entry cites #805, not #803 by @trek-e in #3252
  • fix(#2725): repoint the pre-commit alias guard at sources git can actually stage, drop nine dead ones by @trek-e in #3273
  • fix(#3177): correct the stale Claude Code Agent() dispatch claim in two workflows by @trek-e in #3281
  • fix(#3271): delete 25 duplicated folded test suites and fix three runner defects found doing it by @trek-e in #3285
  • fix(#2652): gate quick/diagnose dispatch on dispatch.isolation, not the runtime name by @behruznassre in #2728
  • fix(#3162): resolve active state phase before drift scan by @denniyahh in #3208
  • fix(#2783): address wedged PRs in ship note protocol by @denniyahh in #2818
  • fix(#3207): create-and-switch on the first phase/milestone commit by @trek-e in #3363
  • fix(#3213): segment-boundary membership for letter-named phase dirs by @trek-e in #3368
  • fix(#3224): register WINDOWS.md as a canonical .planning/ artifact by @trek-e in #3369
  • fix(#3225): guard W006/W007 + consistency loops with isSentinelPhaseId by @trek-e in #3371
  • fix(#3233): no-op state update-progress when the milestone scan finds zero plans by @trek-e in #3375
  • fix(#3255): updateTableCell scans for the table carrying the requested column by @trek-e in #3377
  • fix(#3257): preserve full-line frontmatter comments through the parse→reconstruct pair + syncStateFrontmatter by @trek-e in #3387
  • fix(#3133): keep global Claude @-references on tilde, not $HOME by @trek-e in #3393
  • fix(#3321): exclude .claude/.planning from no-phantom-issue-refs SKIP_DIRS by @trek-e in #3396
  • fix(#3102): render edge-probe coverage report so the resolution loop consumes it by @davesienkowski in #3391
  • fix(#3203): stop npm-global installs validating bundled agents against themselves by @0xdhx in #3229
  • fix(#2528): resolve digit-leading phase directories by bare number by @JusticeWay in #2559
  • fix(#2486): do not recommend or persist Claude-only worktree isolation on non-Claude runtimes by @behruznassre in #2531
  • fix(#2570): parse leading date from last_activity so stale_activity fires with a description suffix by @davesienkowski in #2571
  • fix(#3320): widen c8 --include glob to cover nested gsd-core/bin/lib dirs by @trek-e in #3397
  • fix(#3319): mutation-gate has_work=false renders skipped, not success by @trek-e in #3399
  • fix(#3163): scope phase.add insertion to the current milestone by @trek-e in #3400
  • fix(#3170): anchor milestone one-liner extraction to a summary-shaped heading by @trek-e in #3401
  • fix(#3025): refuse cross-runtime skill sync in sync-skills by @trek-e in #3404
  • fix(#3367): expectedQuickId derives UTC values to match the TZ-pinned subprocess by @bshiggins in #3398
  • fix(#1526): delegate auto-chain post-completion to transition workflow by @trek-e in #3419
  • fix(#3151): stop emitting effort: into skill frontmatter (prompt-cache invalidation) by @trek-e in #3425
  • fix(#3165): recover phase_count when scoped window is truncated by @trek-e in #3428
  • fix(#3171): init execute-phase emits display name, not directory slug by @trek-e in #3429
  • fix(#3188): null absent planning-doc paths in init phase queries by @trek-e in #3430
  • fix(#3193): tolerate attributes on plan-task child tags by @trek-e in #3433
  • fix(#3190): commit review.md in --auto loop; fix report env var by @trek-e in #3434
  • fix(#3194): verify source-grounded lane evidence from review output by @trek-e in #3436
  • fix(#3191): anchor remaining diff-base greps, portably by @trek-e in #3437
  • fix(#3189): drop non-id prose from phase_req_ids before gap check by @trek-e in #3438
  • fix(#3263): warn in roadmap validate on truncated milestone window by @trek-e in #3444
  • fix(#3262): guard phase writes against milestone-scope headings by @trek-e in #3446
  • fix(#3258): honor all field-classification preservation rows by @trek-e in #3447
  • fix(#3275): resolve reviewer lane binaries via shared pathext scan by @trek-e in #3445
  • fix(#3303): correct code_review_depth doc; add agent_skills array form by @trek-e in #3449
  • fix(#3280): read frontmatter current_phase in w011 and de-force w027 worktree advice by @trek-e in #3452
  • fix(#3297): project --gaps mode onto next-up execute command by @trek-e in #3453
  • fix(#3300): guard build_prompt optional sections against nullglob by @trek-e in #3454
  • fix(#3311): milestone lock makes parallel-phase state conflicts visible by @trek-e in #3455
  • fix(#3440): retire GAP CLOSURE PLANS CREATED marker, document artifact return contract by @trek-e in #3443
  • fix(#3312): require static frontend evidence before ui-plan-gate blocks by @trek-e in #3451
  • fix(#3302): return per-agent worktree metadata from workflow scripts by @trek-e in #3450
  • fix(#3345): stop counting blocked summaries as completed plans by @trek-e in #3459
  • fix(#3324): build-time embed execution context instead of literal @-includes by @trek-e in #3462
  • fix(#3329): reconcile stale managed .sh hook commands on install/update by @trek-e in #3460
  • fix(#1884): surface planning-lock mkdir failures, not a phantom timeout by @trek-e in #3472
  • fix(#3427): teach full-form depends_on ids in phase-prompt template by @trek-e in #3475
  • fix(#3448): thread next_action through debug auto-resume respawn by @trek-e in #3476
  • fix(#3354): preserve stored total_phases when milestone is unbounded by @trek-e in #3480
  • fix(#3350): prefer lowest outstanding phase over positional next in phase complete by @trek-e in #3482
  • fix(#3370): state checkpoint gate semantics in executor dispatch prompts by @trek-e in #3478
  • fix(#3384): strip mcp__* tool grants from zcode-installed subagents by @trek-e in #3483
  • fix(#3456): render /gsd command output via ctx.ui.notify in pi by @trek-e in #3485
  • fix(#3355): pick phase-dir dedup survivor from content, not mtime by @trek-e in #3486
  • fix(#3351): reconcile state.patch report with persisted state.md by @trek-e in #3487
  • fix(#3426): anchor rule 3 gate tests on heading structure not token scan by @trek-e in #3489
  • fix(#3395): own the phase line in planned-phase and persist --name by @trek-e in #3490
  • fix(#3457): split deferred items on leaf headings, not bullets by @trek-e in #3488
  • fix(#3374): phase.complete stops harvesting stale body stopped_at by @trek-e in #3491
  • fix(#3498): escapeRegex falls back below Node 24 (no RegExp.escape) by @trek-e in #3499
  • fix(#3477): run untrusted key_links patterns on a linear-time engine by @trek-e in #3496
  • fix(#3423): standardize on <required_reading>, retire the files_to_read emit tag by @trek-e in #3432
  • fix(#3493): confine key_links from:/to: to the project directory by @trek-e in #3506
  • fix(#3357): one phase-pinned resolver for verification-report discovery by @trek-e in #3513
  • fix(#3515): disclose the intentional mcp unconfined posture by @trek-e in #3517
  • fix(#3504): harden hook injection patterns and force-add guard by @trek-e in #3510
  • fix(#3514): deny internal fetch hosts; disclose unverified integrity by @trek-e in #3516
  • fix(#3497): unescape double-quoted scalars on parse so round-trips stop doubling backslashes by @trek-e in #3521
  • fix(#3481): resolve add-roadmap-evolution's phase from STATE.md, not a literal ? by @trek-e in #3522
  • fix(#3518): pin uat_path to the phase's own UAT artifact via the shared phase-pinned resolver by @trek-e in #3525
  • fix(#3503): derive the code-review diff base from GSD's own commit scopes, not prose mentions by @trek-e in #3526
  • fix(#3479): treat absent default-true mempalace keys as enabled in every prose gate by @trek-e in #3527
  • fix(#3210): gate unmet preconditions as blocking-human; cap blocker retries at needs_human by @trek-e in #3528
  • fix(#3534): resolve-execution reports resolved and effective effort by @trek-e in #3542
  • fix(#3533): effort inherit — expressible, omitted at writers, never re-added by @trek-e in #3541
  • fix(#3532): warn when global defaults keys are shadowed by a project config by @trek-e in #3540
  • fix(#3511): scope every phase-directory scan to the phase it belongs to by @trek-e in #3535
  • fix(#3531): merge routing_tier_defaults over manifest tier defaults by @trek-e in #3539
  • fix(#3544): restore tilde form for at-refs in the global spec tree by @trek-e in #3551
  • fix(#3458): scan archived milestone phases, and make [A] Acknowledge actually suppress by @trek-e in #3555
  • fix(#3561): route /gsd-map-codebase --fast to a scan.md path the runtime can resolve by @trek-e in #3562
  • fix(#3543): bake no tier model when the effective model_profile is unverifiable by @trek-e in #3563
  • fix(#3547): exercise the real global config-home shape in the install harness by @trek-e in #3567
  • fix(#3557): accept claude code session id in the workstream session probe by @trek-e in #3570
  • fix(#3206): define "explicit evidence" inline at verifier 5b; repair stale honest-verifier cites by @0xdhx in #3435
  • fix(#3566): read the per-install .gsd-runtime marker above host-wide defaults in the isolation guards by @trek-e in #3589
  • fix(#3569): require a digit-bearing phase id in the stats heading scan by @trek-e in #3591
  • fix(#3572): keep phase remove's STATE.md write single-block and drop the removed heading by @trek-e in #3594
  • fix(#3585): close raw-git bypasses of the commit_docs gate by @trek-e in #3590
  • fix(#3573): keep the stored total_phases when the roadmap is absent at state-write time by @trek-e in #3595
  • fix(#3576): repair all 43 dead references/ cites and gate the canonical resolvable form by @trek-e in #3596
  • fix(#3586): warn when .planning/ is gitignored but still tracked by @trek-e in #3598
  • fix(#3577): recognize markdown-table phase rows across the roadmap enumeration family by @trek-e in #3599
  • fix(#3581): derive init.progress's next_phase from roadmap order, not artifact presence by @trek-e in #3603
  • fix(#3559): dispatch every ship:pre capability gate, not two hardcoded capIds by @trek-e in #3608
  • fix(#3597): count scenario expectation failures in the QA gate, and fix the workstream scope split it exposed by @trek-e in #3607
  • fix(#3578): derive milestone status from phase counters, not phase-completion prose by @trek-e in #3614
  • fix(#3579): a pointer-less session inherits the repo active-workstream marker by @trek-e in #3616
  • fix(#3582): route every hook's compiled-module require through the self-heal build seam by @trek-e in #3629
  • fix(#3583): one percent per write — route update-progress through the shared computation by @trek-e in #3634
  • fix(#3584): the verb owns the count token and nothing else by @trek-e in #3635
  • fix(#3618): update the Windows fallow assertions to the behavior #3618 chose by @trek-e in #3654
  • fix(#3631): exclude only pycache-resident bytecode from the consent digest by @trek-e in #3650
  • fix(#3582): stop the cold-tree fixture racing concurrent hook builds by @trek-e in #3656
  • fix(#3620): point the docs at files that actually exist by @trek-e in #3658
  • fix(#3582): stop the cold-tree guard from racing the builders it guards against by @trek-e in #3665

New Contributors

Full Changelog: v1.10.0...v1.11.0

Don't miss a new gsd-core release

NewReleases is sending notifications on new releases.