v1.23.0: step 25d — a prompt index row rots on a different clock from the page it points at - #20
Merged
Merged
Conversation
…om its page Step 26a makes the next prompt reachable. Nothing made it true. A one-row-per-prompt index and the pages it links to are two copies of the same claim, written by different sessions at different times, and the row is what a fresh session reads first. Measured 2026-08-07: both rows on one index were wrong in OPPOSITE directions while both pages were current. One advertised finished work as the remaining work — "four files and five ledger entries, verified absent from main" when all four were present and the page's own foot said "the file restoration is finished" — so the actual remainder, a content audit nobody had started, went unadvertised. The other said "expect main to be red for reasons of its own (#839)" when #839 was closed and main measured green. That is the dangerous direction: a stale "expect it to be broken" does not merely misinform, it disables a check, because the reader has been pre-authorised to ignore red. 25d sits beside 25c deliberately — 25c checks your own work survived, 25d checks the pointer to the next work. Three checks: re-derive the row's claim instead of re-reading it; confirm the row agrees with its own page; grep the figure across the repo, because the same stale sentence was also pasted into a ledger entry. Plus closing the row when you close the item, and one structural check — whether the page's remaining work is at the TOP, since a prompt that grows by appending dated corrections ends as a finished job with the live work in a coda. Written against the repo's own gate rather than from memory, and it earned that: the version lives in FIVE places and my first pass found three. `npm test` caught the SKILL.md frontmatter (grep for '"version"' misses YAML `version:`), then the marketplace manifest and the README history entry. 77 passed, 0 failed. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Step 26a makes the next prompt reachable. Nothing made it true.
A one-row-per-prompt index (
docs/handoffs/next_session_prompt.mdand its equivalents) and the pages it links to are two copies of the same claim, written by different sessions at different times — and the row is what a fresh session reads first. Nothing forces them to agree, and the skill had zero coverage of this (0 hits for "index row" across 1,446 lines).Measured 2026-08-07: both rows on one index wrong, in opposite directions, while both pages were current
main"mainto be red for reasons of its own (#839)"mainmeasured greenThe second is the dangerous direction. A stale "expect it to be broken" does not merely misinform — it disables a check. That is how a real failure gets waved through, and it is why the step calls out any row that lowers a future reader's guard as load-bearing.
The step
25d, placed beside 25c on purpose: 25c checks your own work survived; 25d checks the pointer to the next work is accurate. Three cheap checks —
origin/main. "mainis red" → run the suite, or check the issue is still open.Plus two things the same defect produces:
The gate earned its keep, which is the other half of this
I wrote it against
npm testrather than from memory, and that caught what memory would not: the version lives in five places and my first pass found three.npm testfailed on SKILL.md frontmatter — mygrep '"version"'missed it because YAML isversion:, not"version":. Sweep-by-value, caught by your gate rather than by me.Final: 77 passed, 0 failed, 2 skipped.
Note on a sibling PR
Open PR #18 is also labelled v1.22.0, which
origin/mainalready shipped (as #19). It will need renumbering — this PR takes 1.23.0. That is the collision your ownsession-handoff-number-collision-with-unmerged-siblingskill describes.Authored in a dedicated worktree rather than in the repo's checkout, which was sitting on another branch (
learn/own-work-survival-check).🤖 Generated with Claude Code