← ClaudeAtlas

speed-budgetslisted

Cross-cutting contract for the test-readiness pipeline. Specifies per-layer test speed budgets (unit / integration / smoke / E2E) as 95p targets, per-test hard caps, and per-layer suite-wall targets. Used by system-design as a Phase 2 output and by migration as a Phase 3 bucketing criterion — a test that violates its layer's hard cap is almost certainly mis-layered and goes to the `rebuild` bucket.
app-vitals/shipwright · ★ 6 · Code & Development · score 71
Install: claude install-skill app-vitals/shipwright
# speed-budgets skill ## Purpose Encode speed as a first-class design constraint, not an emergent property. Slow tests are not run; tests not run are not coverage. ## The default budgets | Layer | Per-test 95p target | Per-test hard cap | Full-layer suite target | |---|---|---|---| | Unit | <50 ms | <200 ms | <30 s | | Integration | <2 s | <10 s | <3 min | | Smoke | <5 s | <15 s | <30 s sequential / <60 s full | | E2E | <30 s | <90 s | <10 min | | Full PR pipeline | — | — | **<15 min** | | Canary suite | — | — | **<60 s** | A repo may tighten budgets in Phase 2 (`test-system.md`). It may never loosen them below these defaults — that's the point of "default." **Source of truth:** the per-layer speed budgets below are this skill's own content, but the testing-domain principle that justifies them — `t6_layer_speed_mismatch` — lives in `references/principles.md`. Tests must sit in the correct speed tier; a test exceeding its layer's hard cap is at the wrong layer regardless of correctness. Treat `references/principles.md` as canonical. ## Rationale baked in ### Why speed = trust The closer to the keystroke, the more trustworthy the validation: - Unit suite <30s → runs on every save - Layer suite <3min → runs before every commit - Pipeline <15min → runs before every push - Pipeline >20min → engineers route around it Autonomous programming cannot tolerate "route around." The feedback loop must be tight enough that the agent gets a verdict in seconds, not minutes. ### Wh