Skip to content

coresearch: "CE64 is like BF16 for thinking" — exploration map + 5 .arxiv harvests #1383

coresearch: "CE64 is like BF16 for thinking" — exploration map + 5 .arxiv harvests

coresearch: "CE64 is like BF16 for thinking" — exploration map + 5 .arxiv harvests #1383

name: Supersession index is current
on:
push:
branches:
- main
pull_request:
paths:
# The generator's INPUTS, not just the generator. A plan or a ruled-symbol
# verdict is what makes the committed table stale -- that is how it went
# stale the first time (#1047 added a plan naming two ruled symbols, and
# nothing noticed).
- .claude/plans/**
- .claude/v3/COMPONENT-MAP.md
- .claude/tools/supersession_index.py
- .claude/board/SUPERSESSION-INDEX.md
- .github/workflows/supersession-index.yml
# The BOARD is an input too, and was missing from this list. The
# generator's "board coverage" column counts each plan's D-ids cited in
# `board/entries/*.md` + `EPIPHANIES.md` (supersession_index.py:48-49,
# read at :85), so a PR that only PREPENDS an epiphany citing a D-id
# moves the table while the gate stayed silent -- CI green over a stale
# index, which is the one thing this workflow exists to prevent.
# Measured on #1123: an EPIPHANIES-only PR ran no `regenerate-and-diff`
# at all. `CLAUDE.md` already named the board among the inputs; the
# filter had not caught up.
- .claude/board/entries/**
- .claude/board/EPIPHANIES.md
# The entries tier's OWN generator + index. Added 2026-09-20 with
# `entries_index.py`: the index was hand-maintained, its header claimed
# 135 entries against 144 files, and its own falsifier #2 was red on two
# stranded files -- invisible because the three checks were shell
# snippets in a README that nothing executed.
- .claude/tools/entries_index.py
- .claude/board/entries/README.md
# The findings watermark + the provenance gate. An EPIPHANIES addition
# after the baseline must cite the entry it was promoted from, so both
# the marker and the checker are inputs to that claim.
- .claude/tools/epiphany_provenance.py
- .claude/board/PROCESSED_THROUGH
# `crates/` decides the "live" column (:27 globs it per symbol). Broad,
# and deliberately so: a symbol deleted from the tree changes the table,
# and the generator takes ~15 s, so the gate is cheap next to the Rust
# jobs it runs beside.
- crates/**
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
permissions:
contents: read
jobs:
regenerate-and-diff:
runs-on: ubuntu-latest
steps:
# fetch-depth: 0 is REQUIRED by the provenance gate, not a convenience.
# `actions/checkout@v4` defaults to depth 1, and MEASURED: a depth-1
# clone whose head is ahead of the baseline does not contain the
# baseline commit at all (`git rev-list --count HEAD` == 1). The gate
# fails CLOSED on an unreachable baseline -- correctly -- so with the
# default depth it would go red on every PR after the baseline landed,
# for want of history rather than for want of provenance.
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Regenerate and compare
run: |
python3 .claude/tools/supersession_index.py > /tmp/regen.md
if ! diff -u .claude/board/SUPERSESSION-INDEX.md /tmp/regen.md; then
echo
echo "::error::SUPERSESSION-INDEX.md is stale."
echo "It is GENERATED from ALL of:"
echo " .claude/plans/ + crates/ + .claude/v3/COMPONENT-MAP.md"
echo " .claude/board/entries/ + .claude/board/EPIPHANIES.md"
echo "so a plan naming a ruled symbol, a symbol added or deleted in"
echo "crates/, OR a board entry citing a D-id can make it stale."
echo "Regenerate and commit:"
echo " python3 .claude/tools/supersession_index.py > .claude/board/SUPERSESSION-INDEX.md"
exit 1
fi
echo "index is current"
# The transient tier's index is generated too, and by a SEPARATE
# generator: `supersession_index.py` reads `entries/*.md` only to count
# D-id coverage and never writes this table. One step, both gates --
# staleness AND the three structural falsifiers (row with no file / file
# with no row / duplicate id), which until now existed only as prose.
- name: Entries index is current and structurally sound
run: python3 .claude/tools/entries_index.py --check
- name: Entries index generator self-test
run: python3 .claude/tools/entries_index.py --self-test
# Provenance for anything promoted to EPIPHANIES.md since the findings
# baseline: the heading must name an entries/ file that EXISTS. Purely
# structural -- it proves the route, never that the content is a Eureka
# (that stays the closeout admission rule). Fails CLOSED if the baseline
# revision is unreachable in a shallow clone, because an invisible delta
# is not an empty one.
- name: Post-baseline epiphanies cite their originating entry
run: python3 .claude/tools/epiphany_provenance.py
- name: Provenance gate self-test
run: python3 .claude/tools/epiphany_provenance.py --self-test