Split from core PR #185, half (a): survivor test attribution. doyle ruling JXNHA3FW. Half (b), the readiness wait, is PARKED and written fresh only if a flake appears.

## What
- `reap-census.sh`: `nextest_test_of` reads each survivor's inherited `NEXTEST_TEST_NAME` from `/proc/<pid>/environ`. A survivor row now names the test that spawned it; an unreadable or unnamed one says so and names nobody.
- `reap-census.sh attribution-control`: drives the real `spt daemon run` spawn/re-exec path with a known name, and fails unless BOTH broker and brain kept it, or if its own cleanup is unproven.
- `golden.yml`: runs that control on Linux before the battery.
- Mints `REQ-CI-CENSUS-TEST-ATTRIBUTION` [impl, unit].

Applied from #185 head `afa5af35` (main has not touched `reap-census` since #185's base); only the tags are new.

## Evidence
- `traceable-reqs check`: 0, and `REQ-CI-CENSUS-TEST-ATTRIBUTION` reads `[OK] +impl +unit`.
- Selftest on kitsubito: 48 ok, rc 0.
- Mutation control: `nextest_test_of`'s extractor replaced with `true` fails exactly `nextest identity is read from the descendant rather than inferred from timing` (got `<not-nextest-or-unreadable>`); restored, rc 0.
- attribution-control on kitsubito: PROVEN at this sha (02d024c4, rebased onto 2e52677a) in a kitsubito rig: `CI-CENSUS attribution control OK: broker and brain retained NEXTEST_TEST_NAME across the production daemon spawn path`, rc 0, 0 leftover spt procs. Negative control with the same built spt, extractor mutated to `true`: `::error::CI-CENSUS attribution control FAILED: broker=<not-nextest-or-unreadable> brain=<not-nextest-or-unreadable>`, rc 1. Premise holds: the daemon starts under an invalid node.key seed and brain.ready carries pid. Records: `.spt/preserved/331/hertz/185a-attribution-proof/`.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

https://claude.ai/code/session_01KR5QdzrHXYGL1djRTBNKEG
