Skip to content

workshop-2: seal the Phase 1 position and the push-trigger test - #97

Merged
PipFoweraker merged 3 commits into
mainfrom
workshop/2-position
Aug 28, 2026
Merged

PipFoweraker merged 3 commits into
mainfrom
workshop/2-position

Conversation

@PipFoweraker

Copy link
Copy Markdown
Owner

Branch left on the remote before the Singapore departure, never PR'd. Merged with current main, no conflicts, all 28 gating checks pass.

Two documents, both records rather than proposals:

  • docs/workshop-2/position.md -- this seat's Phase 1 position for Workshop 2, sealed 2026-08-09 before 08:45 AEST, written without reading any other seat's position.
  • docs/workshop-2/PUSH_TRIGGER_TEST.md -- the push-trigger test written down rather than run, because the ruling was that a seat may not run it.

The dated claim is deliberately left standing

position.md says "main has not been CI-verified for 69 hours ... two merge commits produced NO check runs at all". That was true on 2026-08-09 and is not true today -- main is currently green with runs on every commit.

It is left as written on the same reasoning #90 applied to HYGIENE_2026-08-15.md: a sealed, dated position is a record of what was actually held at seal time, and editing it to agree with today would falsify that record. The document states its seal date and its instrument (coordination#47) in its own header, so a reader cannot mistake it for a live status.

The finding it raised is still live in substance, though: "green is what the previous run said, and nothing distinguishes passed from never ran" is the C5 push-receipt bet, and no such check exists yet.

PipFoweraker and others added 3 commits August 9, 2026 08:35
…CI for 69 hours and nothing shows red

Two merge commits on main (1c8678c, 1ac7169) carry zero check runs, while PR
head commits on the same days carry three each. Every surface a reader consults
shows the previous run's green.

Votes against coordination#44's single-generator claim on C2, with three
generators and the evidence for each, and states the C5 bet with a cost and a
falsifier.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
…s that a seat may not run it

Seven hypotheses eliminated, dispatch proven working (run 31287938301), and the
one remaining test needs a write to main. Printed simplex for Pip 2026-08-09.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@PipFoweraker
PipFoweraker merged commit d2aa37a into main Aug 28, 2026
4 checks passed
@PipFoweraker
PipFoweraker deleted the workshop/2-position branch August 28, 2026 22:06
PipFoweraker added a commit that referenced this pull request Aug 29, 2026
…s claim records nobody has (#99)

* receipt: nothing distinguished "passed" from "never ran", so now something does

C5 from this seat's sealed Workshop 2 position, merged yesterday as #97 and
unbuilt since 2026-08-09:

    main has not been CI-verified for 69 hours, and the reason is not that a
    check failed. Two merge commits produced NO check runs at all. Every
    surface a reader consults -- the Actions tab, `gh run list`, the last
    recorded conclusion -- shows green, because green is what the PREVIOUS run
    said and nothing distinguishes "passed" from "never ran".

Absence is the failure mode. A workflow can fail to start for reasons that
produce no artifact at all: a YAML error above the trigger, a disabled
workflow, a skipped merge commit, an outage, a billing stop. Every tool that
reads the last conclusion is blind to all of them.

check_push_receipt.py reads which workflows OUGHT to run on push from the
committed .github/workflows/, and whether they DID from the GitHub API,
against one exact SHA. Two sources, neither able to make the other agree with
it -- the pdoom1#1075 rule, both clauses. The inverted form is asking the API
what ran and asserting those passed, which cannot see a workflow that never
started and so passes precisely when it should fail.

IT REFUSES TO RUN INSIDE GITHUB ACTIONS, exit 2. That is load-bearing rather
than hygiene: a receipt check executing as a workflow step is a system
reporting on its own liveness, and the run that would prove absence is the run
that did not happen. Invoke it from a seat or a cron.

The first draft was wrong in the way this repo keeps finding. It compared
workflow names from the YAML against JOB names from commits/<sha>/check-runs
-- "Data Integrity" against "Assert data and pipeline invariants" -- and
reported both workflows missing on a commit that had run both successfully.
Caught by running it rather than by reading it. The fix is the actions/runs
endpoint, and the mismatch is now a test case, because a receipt check that
cries wolf gets muted and a muted check is what this replaces.

Verified against live main: exit 0 on the current tip, exit 1 on an old commit
with no Data Integrity run, exit 2 under GITHUB_ACTIONS=true.

The live check cannot be gated -- it needs the network and a token, and
gating it inside CI is the exact thing it refuses to do. Its decision logic is
offline and deterministic, so tests/test_push_receipt_gate.py stubs the API
and gates that: 11 cases, 3 must-not-fire, 6 must-fire, plus the refusal and
the name-mismatch regression.

Also in this commit: the corpus-review sitting can actually start. Its
2026-08-24 abstract dump was a committed _metadata.json claiming
"record_count": 150 with no data.jsonl beside it, so the tool had nothing to
show. Re-fetched from the ids already in the frame -- 150 of 150, 0 missing --
and the sample is byte-identical, which is the seed doing its job. The frame's
`created` stamps are deliberately NOT updated to today: the draw preceded the
fetch by six days and that ordering is the frame's whole evidentiary value.

Refs pdoom-data#97 (C5), pdoom-data#98.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VCAwQ2dTCtpR8rTrEfv5ee

* dumps: eight tracked dumps claim records the repository cannot account for

Found while fixing the corpus-review sitting, and it is wider than that one
dump. data/raw/arxiv_abstracts/dumps/2026-08-24_010736/_metadata.json is
COMMITTED, says "record_count": 150, and has no data.jsonl beside it. The
metadata asserted 150 records; zero existed; the sitting had nothing to show
and nothing noticed, because nothing compares a dump's claim to its contents.

The gitignore excluding these data files is correct and deliberate -- real
arXiv abstracts carry mathematics and author names the ASCII gate would reject.
But an intentional exclusion and a fetch that never happened look IDENTICAL on
a fresh clone: a metadata file claiming N records with nothing next to it,
either way. So the rule is that a tracked dump either ships its data or its
metadata says in one field how to reproduce it, and the two cases become
distinguishable by reading.

Writing the check turned three cases into eight, and one of them matters more
than the one I was chasing:

    alignment_research/dumps/2025-12-24_063313   claims 6549, absent
    funding_sources/sff/dumps/2025-10-30_225651  claims 3,    absent
    mit_airr/dumps/2026-07-25_053210             claims null, absent
    arxiv_abstracts/dumps/2026-08-24_010736      claims 150,  absent

The alignment_research dump is the raw provenance for the 1,166 bulk records
that are 97.7% of the served timeline. It is not tracked and it is not on this
machine. That is the same gap pdoom-data#89 named from the other side -- "the
serveable-zone file feeding 97.7% of the corpus has no dump behind it" -- and
this is the measurement. The funding_sources one is pdoom-data#94's subject
arriving through a different door.

REPORTING, not gating. Four of the eight predate the rule and I will not invent
a regeneration command for a dump I did not fetch -- that is the guess this
repo keeps paying for. It is wired into check_all anyway rather than left
sitting unrun, because a checker nothing invokes is the estate's most-repeated
failure: check_claims.py and check_estate.py both run correctly and are run by
nothing. Promote to GATING when the four are declared or tombstoned.

_templates directories are exempt by name: they claim zero records and hold
zero, which is consistent rather than missing.

Declared for the two dumps fetched today, with the exact commands that
reproduce them.

Refs pdoom-data#94, pdoom-data#89.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VCAwQ2dTCtpR8rTrEfv5ee

---------

Co-authored-by: Pip Foweraker <pip@beacongcr.org>
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
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