# Timeout Budget and Rerun Hygiene Report > Date: 2026-04-19 > Plan: `docs/superpowers/plans/2026-04-19-timeout-budget-rerun-hygiene-plan.md` > Source diagnostic: `tests/fixtures/generated_scene/timeout_regression_diagnostic_2026-04-19.json` ## Scope This plan only converts the three timeout diagnostic records into a rerun-hygiene layer. It does not: 1. change analyzer or generator code 2. update `scene_execution_board_2026-04-18.json` 3. promote scenes 4. rerun the full `102` sweep 5. treat rerun success as validated scene pass ## Frozen Diagnostic Input | Diagnostic label | Count | | --- | ---: | | `timeout-rerun-pass` | 2 | | `timeout-rerun-fail-closed` | 1 | | Total | 3 | ## Hygiene Mapping | Diagnostic label | Hygiene status | | --- | --- | | `timeout-rerun-pass` | `rerun-resolved-pass` | | `timeout-rerun-fail-closed` | `rerun-resolved-fail-closed` | | `timeout-rerun-timeout` | `rerun-still-timeout` | | `timeout-rerun-error` | `rerun-error` | | `timeout-large-source` | `rerun-still-timeout` | | `timeout-command-hang` | `rerun-still-timeout` | | `timeout-nondeterministic` | `rerun-error` | | `timeout-source-scan-heavy` | `rerun-still-timeout` | | `timeout-unknown` | `rerun-error` | ## Hygiene Results | Scene id | Scene | Diagnostic label | Hygiene status | Elapsed seconds | Result | | --- | --- | --- | --- | ---: | --- | | `sweep-015-scene` | `????` | `timeout-rerun-pass` | `rerun-resolved-pass` | 74.76 | readiness `A` | | `sweep-025-scene` | `??????????` | `timeout-rerun-pass` | `rerun-resolved-pass` | 49.03 | readiness `A` | | `sweep-040-scene` | `?????` | `timeout-rerun-fail-closed` | `rerun-resolved-fail-closed` | 45.91 | fail-closed, readiness `C` | ## Summary | Hygiene status | Count | | --- | ---: | | `rerun-resolved-pass` | 2 | | `rerun-resolved-fail-closed` | 1 | | `rerun-still-timeout` | 0 | | `rerun-error` | 0 | ## Interpretation 1. The timeout bucket should not be treated as a single unreadable category. 2. Two timeout records are budget-sensitive pass candidates under the bounded rerun budget. 3. `sweep-040-scene` should not stay grouped with hard unreadable inputs. Under rerun hygiene, it belongs to `rerun-resolved-fail-closed`, which means it should feed the structured fail-closed layer rather than the unreadable bucket. 4. This remains a hygiene layer only. None of these three records are promoted or merged into the execution board by this report. ## Recommendation Use the rerun hygiene layer before any timeout implementation work or execution-board update. The highest-value follow-up is to apply this hygiene rule to future sweeps so budget-sensitive scenes are separated into: 1. `rerun-resolved-pass` 2. `rerun-resolved-fail-closed` 3. `rerun-still-timeout` 4. `rerun-error` instead of collapsing all timeout outcomes into `source-unreadable`.