Files
claw/docs/superpowers/plans/2026-04-19-timeout-budget-rerun-hygiene-plan.md

145 lines
3.7 KiB
Markdown

# Timeout Budget and Rerun Hygiene Plan
> Date: 2026-04-19
> Status: Draft
> Upstream Design: `docs/superpowers/specs/2026-04-19-timeout-budget-rerun-hygiene-design.md`
> Upstream Diagnostic: `docs/superpowers/reports/2026-04-19-timeout-regression-diagnostic-report.md`
## Plan Intent
Create a bounded timeout-budget and rerun-hygiene layer so budget-sensitive scenes are not collapsed into a single `source-unreadable` bucket.
This plan is classification and reporting only. It does not change analyzer or generator code.
## Scope Guardrails
1. do not modify `src/generated_scene/analyzer.rs`
2. do not modify `src/generated_scene/generator.rs`
3. do not update `scene_execution_board_2026-04-18.json`
4. do not promote scenes
5. do not rerun the full `102` sweep
6. do not treat rerun success as validated pass
7. do not start timeout implementation fixes
## Fixed Input
The fixed input is:
`tests/fixtures/generated_scene/timeout_regression_diagnostic_2026-04-19.json`
Only the three diagnosed timeout records enter this plan.
## Phase 0: Freeze Timeout Diagnostic Input
### Objective
Freeze the timeout diagnostic records before hygiene mapping.
### Tasks
1. read the timeout diagnostic JSON
2. verify total timeout records is `3`
3. verify the label set is:
- `timeout-rerun-pass = 2`
- `timeout-rerun-fail-closed = 1`
### Deliverables
1. frozen timeout diagnostic baseline
### Acceptance Criteria
1. exactly `3` records enter this hygiene plan
2. no non-timeout scene enters the plan
## Phase 1: Define Hygiene Mapping
### Objective
Map timeout diagnostic results to explicit rerun hygiene statuses.
### Tasks
1. map `timeout-rerun-pass` to `rerun-resolved-pass`
2. map `timeout-rerun-fail-closed` to `rerun-resolved-fail-closed`
3. preserve any future timeout as `rerun-still-timeout`
4. preserve any future unexpected exit as `rerun-error`
### Deliverables
1. explicit rerun hygiene mapping table
### Acceptance Criteria
1. each timeout diagnostic label maps to one hygiene status
2. pass-like rerun and fail-closed rerun remain distinct
## Phase 2: Build Hygiene Output
### Objective
Publish a hygiene-layer view for the three timeout records.
### Tasks
1. write `tests/fixtures/generated_scene/timeout_budget_rerun_hygiene_2026-04-19.json`
2. include:
- original timeout status
- diagnostic label
- rerun hygiene status
- elapsed seconds
- report presence
- readiness if present
3. summarize how many records are:
- `rerun-resolved-pass`
- `rerun-resolved-fail-closed`
- `rerun-still-timeout`
- `rerun-error`
### Deliverables
1. timeout budget hygiene JSON
### Acceptance Criteria
1. all three timeout records appear in the hygiene JSON
2. each has exactly one hygiene status
## Phase 3: Publish Report
### Objective
Publish the bounded timeout hygiene report without changing scene status.
### Tasks
1. write `docs/superpowers/reports/2026-04-19-timeout-budget-rerun-hygiene-report.md`
2. explain why `sweep-040-scene` should not be counted the same way as a hard unreadable source
3. explain why `sweep-015-scene` and `sweep-025-scene` are budget-sensitive pass candidates
4. state that this remains a hygiene layer, not a promotion layer
### Deliverables
1. timeout budget and rerun hygiene report
### Acceptance Criteria
1. report exists
2. no execution board update is made
3. no implementation change is made
## Completion Criteria
This plan is complete when:
1. timeout diagnostic input is frozen
2. rerun hygiene mapping is defined
3. hygiene JSON is published
4. hygiene report is published
## Stop Statement
Stop after publishing the timeout hygiene JSON and report.
Do not start timeout implementation or scene promotion inside this plan.