Skip to content

chore(release): delivery hygiene — pinned dogfood engine, lint gate, node matrix, idempotent write-back - #32

Merged
tcballard merged 4 commits into
mainfrom
claude/delivery-hygiene
Jul 2, 2026
Merged

chore(release): delivery hygiene — pinned dogfood engine, lint gate, node matrix, idempotent write-back#32
tcballard merged 4 commits into
mainfrom
claude/delivery-hygiene

Conversation

@tcballard

@tcballard tcballard commented Jul 1, 2026

Copy link
Copy Markdown
Contributor

Batch 4 (final) of the technical-review fixes. Stacked on #31 (→ #30#29) — merge in order; GitHub retargets automatically.

What

Supply chain & CI

  • The Dogfood gate installs rac-core pinned to a commit SHA — an unpinned default-branch install executed whatever landed on rac-core main in this repo's CI on every push, and made the gate non-reproducible. Bump policy documented inline.
  • ci.yml and dogfood.yml gain permissions: contents: read (previously default token scope; only release.yml was least-privilege).
  • The build job fans out over Node 20/22/24engines says >=20 and the release builds on 24, but only 20 was ever tested.
  • New lint gate: Biome (single pinned dev dep, lint-only, formatter off). Recommended rules at zero diagnostics, with two recorded house-style exceptions (useLiteralKeys, noNonNullAssertion — the codebase's deliberate bracket-access and post-validation ! idioms) plus useTemplate off to avoid churn. npm run lint runs in CI.

Config correctness

  • parseConfig now validates cross-references with the offender named: duplicate capability ids, a defaultTarget or capability environment naming no defined environment, a persona reference naming no defined persona. A typo'd environment previously fell back to the default URL silently at run time.

Idempotent write-back (GitHub layer)

  • An existing head branch is re-pointed to the fresh base instead of failing with 422; an already-open PR for the head is returned instead of thrown; comment listing paginates past 100 so the marked comment is updated, never duplicated.
  • linksFromResults POSIX-normalizes spec/trace paths — a ## Verified By reference written from Windows must resolve for every consumer.

Small fixes: parseCoverageArgs gets the same requireValue guard as every other parser; a few lint-driven cleanups.

Corpus (dogfood)

req-delivery-hygiene + design-delivery-hygiene, roadmap initiative, ## Verified By → the four pinning test files. Gates green: rac validate (35/35), relationships 51/51 (0 issues), self-coverage 17/17.

Verification

  • Unit: 307 passed (9 new); npm run lint zero diagnostics; npm run typecheck / build green.
  • This PR's own CI exercises the new matrix, lint step, permissions, and pinned dogfood install.

tcballard added 4 commits July 1, 2026 22:35
…ix, lint gate [roadmap:autonomous-qa-enhancements]

- dogfood.yml installs rac-core at a commit SHA (reproducible; a
  default-branch install executed whatever landed upstream in this CI
  on every push), with the bump policy in a comment
- ci.yml and dogfood.yml run with permissions: contents: read
- the build job fans out over Node 20/22/24 (engines says >=20 and the
  release builds on 24 — test what users run, not only the floor) and
  gains a lint step
- lint is Biome, lint-only (formatter off), recommended rules at zero
  diagnostics with two recorded house-style exceptions

Signed-off-by: Tom Ballard <tom@armytage.co>
…idempotent [roadmap:autonomous-qa-enhancements]

- parseConfig validates cross-references with the offender named:
  duplicate capability ids, a defaultTarget or capability environment
  naming no defined environment, a persona reference naming no defined
  persona — a typo no longer degrades silently to the fallback URL at
  run time
- the GitHub gateway re-points an existing head branch instead of
  failing 422, returns the already-open PR for a head instead of
  failing, and paginates comment listing past the first hundred so the
  marked comment is updated, never duplicated
- linksFromResults POSIX-normalizes spec/trace paths before they become
  corpus Verified By references
- parseCoverageArgs uses the same requireValue guard as every other
  parser; lint-driven cleanups (explicit block bodies, no assignment in
  expressions)

Signed-off-by: Tom Ballard <tom@armytage.co>
…e paths [roadmap:autonomous-qa-enhancements]

Pins parse-time rejection of duplicate ids and unknown
environment/persona/defaultTarget references, branch re-pointing and
existing-PR reuse on 422, comment pagination past one hundred,
POSIX-normalized write-back links, and the coverage parser's value
guard.

Signed-off-by: Tom Ballard <tom@armytage.co>
…dmap:autonomous-qa-enhancements]

Implements lore-proofkeeper/requirements/req-delivery-hygiene.md.

Adds the requirement and design artifacts, the roadmap initiative, and
the changelog entry.

Signed-off-by: Tom Ballard <tom@armytage.co>
@tcballard
tcballard changed the base branch from claude/resilience to main July 2, 2026 04:39
@tcballard
tcballard merged commit c930695 into main Jul 2, 2026
12 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant