#16 P3 — Failure-growth-loop: targeted successor preregistration (three pinned changes)
- project
- hyperhash
- status
- done
- holder
- laptop-runner
- created by
- owner
- runner kind
- laptop
- lease
- budget usd
- 8.0
- created
- updated
Instructions
Return rule "P3 requires revision" (`docs/architecture/ARCHITECT_RULING_2026_10_04_OVERNIGHT_TASKS_TAKEN.md` §1): one targeted preregistration revision, not a redesign. Every defect the audit found is a protocol issue. Surface: `failure_growth_loop`. Documentation only: build no runner, run nothing. Read first: `docs/architecture/FAILURE_GROWTH_LOOP_PREREG_REVIEW_2026_10_04.md` (the audit; its section "The targeted successor change" is the whole scope of this task), `docs/architecture/FAILURE_GROWTH_LOOP_PREREGISTRATION_2026_10_04.md` (FROZEN; never edit it), the architect's P3 text in `docs/architecture/ARCHITECT_RULING_2026_10_04_HUB_TASK_REVIEW_TAKEN.md` §2, and CLAUDE.md §7. Write `docs/architecture/FAILURE_GROWTH_LOOP_PREREGISTRATION_SUCCESSOR_<date>.md`, a dated successor that makes exactly these three changes, quoted from the audit, and states that everything else stands as frozen: 1. **Seeds (Q3):** replace "31–40 unused" by seeds no `tools/test_math_lab*` file names (e.g. 41–50), stating the grep as the check, and add a descriptive count of D-failure rules recurring in H and X. 2. **Control (Q2):** state the expected R3 reading on control failures (`EXHAUSTED-EMPTY` at the registered size cap, candidate cap not truncating), route a task with a residual decomposition to RAR before the vocabulary ask, and fix the deletion rule (the entry and its transitive dependents, with `INVOKES` expanded in the superset check). 3. **Operator (D3, with Q1's two flags):** define step 1 as exact residual lookup against the lab's table (no k−1 clause), pin the skeleton ops to M-Σ's without `mul`, and require P1's entry to contain `x`. Rules: run the seed grep and report its output in the successor; nothing widens the operator's expressiveness (language, caps and cover unchanged); say the changes were made after the audit and why; add nothing else. Commit it, then freeze it (record the freezing commit in the file's header in the same way the A-24 successor did). Then, in the same file, add a short section "Shakedown scope for authorization": the bounded cost-only shakedown (`D4`: wall clock and permitted structural counts only, constructing no leg of the decision statistic), its cost bound and stop conditions. Do not run it; the architect authorizes it. Submission: the commit, the seed-grep result, and whether any of the three changes could not be made as written (if so, its class: protocol issue, infrastructure issue, insufficient evidence, or actual hypothesis failure). Claim with `tools/loop_budget.py claim --surface failure_growth_loop --experiment p3_successor_prereg --lease-min 240`, release when done, commit, push. 🏷️ `INVENTION ENGINE — NOT RSI`.
Submissions (1)
laptop-runner
**P3 successor preregistration is written and frozen at commit `7dd83aecf`** (pushed on `runner/laptop`; surface `failure_growth_loop` claimed and released). File: `docs/architecture/FAILURE_GROWTH_LOOP_PREREGISTRATION_SUCCESSOR_2026_10_04.md`. The frozen original is untouched. - **Header hash:** the header says "frozen at the commit that adds this file", as the A-24 successor does, because a file can't contain its own hash. The hash is `7dd83aecf`. - **Seed grep:** `grep -nE '\b(4[1-9]|50)\b' tools/test_math_lab*.py` returns 12 lines, none a seed. They are `RAND_TAG` 41/43 (rng stream tags), selftest cells and inputs, and `[:50]` slices. No seed list or `range()` names 41–50, so H = 41–45 and X = 46–50. The successor tabulates all 12 hits. - **Recurrence count:** D has 42 unsolved tasks carrying 22 distinct rules. Tasks carrying a D-failure rule, counted from `gen`/`params` only, out of 105 per seed set: | set | seeds | tasks | |---|---|---| | H (burned) | 31–35 | 40 | | X (burned) | 36–40 | 50 | | H (registered) | 41–45 | 41 | | X (registered) | 46–50 | 37 | Fresh seeds don't remove the recurrence. It is reported only, and no threshold uses it. - **Three changes, all made as written.** None is blocked. Nothing widens the language, caps or cover. 1. Seeds moved to 41–50, with the grep as the check and the recurrence count added. 2. The control's expected R3 reading is `EXHAUSTED-EMPTY` at size cap 9 with the candidate cap not truncating. A task with a decomposition goes to RAR before the vocabulary ask. The deletion rule removes the entry and its transitive dependents, with `INVOKES` expanded in the superset check. 3. Step 1 is an exact residual lookup with no k−1 clause. Skeleton ops are `add`, `sub`, `div` (M-Σ without `mul`, passed explicitly). P1's entry must contain `x`. - **Two interpretive choices for the architect to check:** - Step 1's `S` is any table row, but an `S` over the body cap of 7 isn't proposed. That applies the frozen cap and adds nothing. - For the ops, the audit says "M-Σ without `sum`" and the task says "without `mul`". `OPS_SIGMA` has no `mul`, so I pinned it minus `sum` and `ifpos`. - **Shakedown scope for authorization:** the section is in the file and was not run. It is cost-only under D4: wall clock and structural counts only, with no leg of the decision statistic. The bound is 0.5 CPU-hours and 30 minutes, with peak RSS under 8 GB. There are seven stop conditions, including a truncated table, a D set that isn't 42 tasks with 22 rules, a new seed hit, and a projection over the 4 CPU-hour cap, which triggers an amendment rather than a failure.