Context
Phase 2 of epic #19655, graduated from D#19599. This leaf is blocked by #19656, the dev-push burn-in. It starts only once that burn-in's receipts show hosted time per shard within the ceiling, together with a green streak on dev in which every red is dispositioned.
The Problem
The Brain-gated tier exists to catch dock and multi-window regressions before merge. After #19559, a regression sat on dev for about 14 hours. The tier helps only if it runs on PRs and blocks when it fails. A non-required check is not an alternative, because current consumers (validateMergeReady and the review audit) already treat any red as blocking.
The Architectural Reality
- The impact boundary:
classify-test-scope.yml already holds the E2E impact boundary: src/, navigated apps and examples, themes and build scripts, Playwright support, harness apps, dependencies, and the workflow and classifier themselves. externalBrainSelection.mjs classifies fixture dependence, not transitive impact.
- Merge readiness: Brain's
validateMergeReady reports nonRequiredFailures as blocking, and compareRequiredAndEmittedContexts reports absent required contexts.
- The job: the burn-in job from #19656 supplies provisioning, the Brain-tip resolution and the receipt fields.
The Fix
- Add
pull_request to the job from #19656. The job always reports, and chooses full or smoke inside itself.
- Full tier when the E2E impact boundary matches, or when grid, AI-client or NL fixture/spec/config files change. Smoke subset otherwise.
- The summary records the selected population, so a green smoke is never read as full-tier evidence.
- A red blocks exactly as any red does. No
continue-on-error.
WhiteboxE2E.md states that the tier gates Engine PRs.
Contract Ledger
| Target surface |
Source of authority |
Proposed behavior |
Fallback / edge case |
Docs |
Evidence |
The Brain-gated e2e job on pull_request |
D#19599 graduation (#19655) |
Always runs and reports; full or smoke chosen inside; population and SHAs recorded |
A Brain dev break shows as an attributable red (Brain SHA recorded) and blocks, as the graduation accepted |
WhiteboxE2E.md |
A deliberately failing run carried through the real reporting path |
WhiteboxE2E.md |
This leaf |
States that the tier gates Engine PRs |
— |
itself |
Diff |
Acceptance Criteria
Out of Scope
Provisioning and receipts (#19656), option B (D#18775), and headed-only specs (local, at the cut).
Avoided Traps
- Masking reds with
continue-on-error or an advisory contract the consumers haven't adopted.
- A path-filtered required check: it strands PRs, as neomjs/neo-agent-brain#972 did.
Related
#19655 (epic) · #19656 (blocked by) · D#19599 · #17844
unowned-rationale: blocked by #19656. Ada stewards the epic.
Origin Session ID: daac81df-5205-405e-a3af-aec56e5cca45
Retrieval Hint: "Brain-gated e2e tier every PR blocking full smoke selection classify-test-scope"
Context
Phase 2 of epic #19655, graduated from D#19599. This leaf is blocked by #19656, the
dev-push burn-in. It starts only once that burn-in's receipts show hosted time per shard within the ceiling, together with a green streak ondevin which every red is dispositioned.The Problem
The Brain-gated tier exists to catch dock and multi-window regressions before merge. After #19559, a regression sat on
devfor about 14 hours. The tier helps only if it runs on PRs and blocks when it fails. A non-required check is not an alternative, because current consumers (validateMergeReadyand the review audit) already treat any red as blocking.The Architectural Reality
classify-test-scope.ymlalready holds the E2E impact boundary:src/, navigated apps and examples, themes and build scripts, Playwright support, harness apps, dependencies, and the workflow and classifier themselves.externalBrainSelection.mjsclassifies fixture dependence, not transitive impact.validateMergeReadyreportsnonRequiredFailuresas blocking, andcompareRequiredAndEmittedContextsreports absent required contexts.The Fix
pull_requestto the job from #19656. The job always reports, and chooses full or smoke inside itself.continue-on-error.WhiteboxE2E.mdstates that the tier gates Engine PRs.Contract Ledger
pull_requestdevbreak shows as an attributable red (Brain SHA recorded) and blocks, as the graduation acceptedWhiteboxE2E.mdWhiteboxE2E.mdAcceptance Criteria
pull_requesttodev, always reports, and selects full or smoke inside itself.validateMergeReady. Nocontinue-on-errorexists on the path.devwith every red dispositioned (#17844's set included).WhiteboxE2E.mdstates that the tier gates Engine PRs.Out of Scope
Provisioning and receipts (#19656), option B (D#18775), and headed-only specs (local, at the cut).
Avoided Traps
continue-on-erroror an advisory contract the consumers haven't adopted.Related
#19655 (epic) · #19656 (blocked by) · D#19599 · #17844
unowned-rationale: blocked by #19656. Ada stewards the epic.
Origin Session ID: daac81df-5205-405e-a3af-aec56e5cca45 Retrieval Hint: "Brain-gated e2e tier every PR blocking full smoke selection classify-test-scope"