Skip to content

Resolves the release recipe's carriers at read time - #219

Merged
johnnyt merged 1 commit into
mainfrom
px-jci-release-readme-pin
Sep 5, 2026
Merged

Resolves the release recipe's carriers at read time#219
johnnyt merged 1 commit into
mainfrom
px-jci-release-readme-pin

Conversation

@johnnyt

@johnnyt johnnyt commented Sep 5, 2026

Copy link
Copy Markdown
Member

What

.claude/wurk/release.md's "Where the fields live" section named the README
install pin by a literal version and a literal README line number. Both had
rotted: the version was several majors behind the published one, and the line
had moved down as the README grew. The version file's line number was still
correct today but rots by exactly the same mechanism, so it goes with it.

Both carriers are now described by shape and resolved with a grep the reader
runs at read time:

grep -n '@version "' mix.exs
grep -n 'predicator, "~>' README.md

Each resolves to exactly one line on main today. A paragraph in "The README
pin's exact form" records why this file carries no version string and no line
number anywhere, and what to do if the two carriers ever disagree on major or
minor.

This is the same rotting-reference class the sibling recipes fixed in sb-0id2
(statifier_blocks) and sui-040 (statifier-ui), and their files are the
precedent this one follows.

What this does not touch

mix.exs, README.md, CHANGELOG.md, changelog.d/ and the manifest are all
unchanged. The recipe document is the only file in the diff. No changelog
fragment: changelog.d/README.md excludes agent-tooling and documentation
changes.

Provenance

Beyond the README pin the bead names, the same edit removes the mix.exs:5
line reference in the adjacent bullet. The bead's second acceptance criterion
asks for every other version-specific claim in the file to be checked, and a
file that resolves one carrier by grep while pinning the other by line number
would have re-grown the defect at the next insert. Reported here rather than
made silently.

Verification

Docs-only under CLAUDE.md's authority table (a change touching no Elixir code
has no gate to run and commits on review of the diff); CI runs the gate on the
branch. Acceptance criteria machine-checked against the committed file:

  • no version-like string (grep -nE '[0-9]+\.[0-9]+') and no file:line
    reference (grep -nE '\.(exs|ex|md|json):[0-9]+') remain in the file - both
    greps return nothing; the only digits left are the two cited bead ids and an
    ADR number;
  • both resolver greps return exactly one line each on this branch;
  • every other claim in the file re-verified against the tree: the manifest's
    release.readme_pin is true, the pin drops its patch component,
    CHANGELOG.md carries no ## [Unreleased] heading, changelog.d/ holds only
    its README.md, and docs/adr/0006-* exists.

Refs: px-jci

The "Where the fields live" section named the README pin by a literal
version and a literal README line. Both had rotted: the version was
several majors behind and the line had moved down as the README grew.
The version file's line number was correct today and rots the same way,
so it goes with it.

Both carriers are now described by shape and resolved with a grep the
reader runs, and a paragraph in "The README pin's exact form" says why
this file carries no version string and no line number at all. Same
rotting-reference class the sibling recipes fixed in sb-0id2 and
sui-040.

No mix.exs, README, or changelog change: the recipe document is the
only file touched.

Refs: px-jci
@johnnyt
johnnyt merged commit 4458b6e into main Sep 5, 2026
1 check passed
@johnnyt
johnnyt deleted the px-jci-release-readme-pin branch September 5, 2026 19:04
@codecov

codecov Bot commented Sep 5, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

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