4.7 KiB
Timeout Regression Diagnostic Plan
Date: 2026-04-19 Status: Draft Upstream Design:
docs/superpowers/specs/2026-04-19-timeout-regression-diagnostic-design.mdUpstream Follow-up:tests/fixtures/generated_scene/structured_fail_closed_improvement_followup_2026-04-19.json
Plan Intent
Run a bounded diagnostic for the three timeout records after the structured fail-closed improvement follow-up sweep.
This plan only diagnoses timeout behavior. It does not implement fixes.
Scope Guardrails
- do not modify
src/generated_scene/analyzer.rs - do not modify
src/generated_scene/generator.rs - do not update
scene_execution_board_2026-04-18.json - do not promote scenes
- do not add family baselines
- do not handle the remaining structured fail-closed records
- do not handle adjudicated host-bridge records
- do not treat diagnostic rerun success as validated scene pass
Fixed Input
The fixed input is:
tests/fixtures/generated_scene/structured_fail_closed_improvement_followup_2026-04-19.json
Only records with followupStatus = source-unreadable and reason generator timeout after 45s enter this plan.
Expected fixed set:
| Scene id | Scene | Type |
|---|---|---|
sweep-015-scene |
任务报表 |
persistent timeout |
sweep-025-scene |
力禾动环系统巡视记录 |
persistent timeout |
sweep-040-scene |
嘉峪关日报 |
regression timeout |
Phase 0: Freeze Timeout Inputs
Objective
Freeze the exact timeout set before diagnostics.
Tasks
- read the follow-up sweep JSON
- filter
source-unreadabletimeout records - verify the count is exactly
3 - identify
sweep-040-sceneas the regression timeout
Deliverables
- frozen timeout input list
Acceptance Criteria
- exactly
3timeout records enter diagnostics - no non-timeout record enters diagnostics
Phase 1: Source Directory Diagnostics
Objective
Determine whether timeout records are likely caused by source scale or source structure.
Tasks
- inspect each source directory
- count all files
- count HTML files
- count JavaScript files
- compute total source bytes
- record the largest files
Deliverables
- per-scene source diagnostics in JSON
Acceptance Criteria
- all
3timeout records have source diagnostics - missing directories are reported explicitly
Phase 2: Bounded Diagnostic Rerun
Objective
Check whether each timeout completes under a longer diagnostic budget.
Tasks
- rerun each timeout scene with a diagnostic timeout budget
- write output under
examples/timeout_regression_diagnostic_2026-04-19 - capture exit code
- capture elapsed seconds
- record whether a
generation-report.jsonis produced - do not update any execution status based on the result
Deliverables
- diagnostic rerun result per timeout scene
Acceptance Criteria
- each timeout has exactly one diagnostic rerun result
- rerun success is marked only as diagnostic evidence
- rerun failure is categorized, not fixed
Phase 3: Timeout Labeling
Objective
Assign each timeout one final diagnostic label.
Tasks
- assign one primary diagnostic label:
timeout-rerun-passtimeout-rerun-fail-closedtimeout-large-sourcetimeout-command-hangtimeout-nondeterministictimeout-source-scan-heavytimeout-unknown
- attach secondary labels when useful
- distinguish persistent timeouts from regression timeout
Deliverables
- labeled timeout diagnostic JSON
Acceptance Criteria
- all
3records have exactly one primary diagnostic label sweep-040-sceneremains clearly identified as the regression timeout
Phase 4: Diagnostic Report
Objective
Publish diagnostic results without starting implementation.
Tasks
- write
tests/fixtures/generated_scene/timeout_regression_diagnostic_2026-04-19.json - write
docs/superpowers/reports/2026-04-19-timeout-regression-diagnostic-report.md - summarize whether the next step should be timeout implementation, rerun hygiene, or no action
Deliverables
tests/fixtures/generated_scene/timeout_regression_diagnostic_2026-04-19.jsondocs/superpowers/reports/2026-04-19-timeout-regression-diagnostic-report.md
Acceptance Criteria
- diagnostic output exists
- report exists
- no implementation changes are made
- no execution board update is made
Completion Criteria
This plan is complete when:
- the three timeout records are frozen
- each has source diagnostics
- each has one diagnostic rerun result
- each has one final diagnostic label
- JSON and report are published
Stop Statement
Stop after publishing the timeout diagnostic JSON and report.
Do not start timeout implementation or status promotion inside this plan.