Write split-plan-<slug>.md following this schema. Definitions: review.md. Execution: execution.md.
Phase 3 self-check: every PR block has all 7 fields below.
- Header table — baseline (
upstream/main), branch, date, plan path, single chain note - Feature context — 1–2 sentences; design reviewed
- Hotspots — omit if none; file, issue, resolution
- Ownership map — team, files summary, PR #, primary reviewer
- Summary table — PR #, title, review question, bucket, risk tags, attention, file count, merge priority, depends on
- Stack mermaid + suggested merge order (foundations vs behavioral)
- Per-PR blocks — repeat for each PR
- Leftover / deferred — omit if empty
- NEEDS DECISION — omit if empty
- Splittability edits summary — stack-level code not in current diff; omit if none
Bucket, attention, merge priority, depends-on live in Summary only—not duplicated per PR.
Each PR: ## PR n — <title> then:
| # | Section | Content |
|---|---|---|
| 1 | Review question | One sentence |
| 2 | Out of scope | What later PRs add |
| 3 | Surprise audit | None identified or bullets + hints |
| 4 | Risk tags + hints | Tags; 1–2 imperative hints |
| 5 | Files | Paths; cross-PR hunk map inline if needed |
| 6 | Mergeability + splittability edits | Why safe alone; flag/dark-ship state; none or edits in this PR; PR # removing scaffolding |
| 7 | Validation | Command + Outcome: not run — slice not materialized; run in Phase 5 after commit |
Per-PR metadata (base, team, modules, change class) — one line under the title if needed:
Base: upstream/main · Team: @elastic/... · Modules: @kbn/... · Class: mechanical|behavioral|mixed
After Phase 5, append execution log (branch, SHA, outcome pass|fail) under Validation.
## PR 3 — Dark-ship new backoff behind useNewRetry
Base: PR2 branch · Team: @elastic/kibana-management · Modules: @kbn/task-manager · Class: behavioral
Is the new backoff correct when enabled, and fully inactive when useNewRetry is false?
Enabling flag (PR4); type extraction (PR1).
task_runner.ts also in PR2 (wiring) and PR4 (flip)—hunk map in Files.
concurrency, tests
- Trace
runTask()—useNewRetrybranch unreachable at default. - Unit tests cover both policies without timing flakes.
packages/.../retry_policy.ts— new backoff implpackages/.../task_runner.ts— PR3 only:useNewRetrybranch (default false)- Hunk map:
task_runner.ts— PR2: wiring; PR3:useNewRetry; PR4: remove legacy
Dark-ship off at default; production path unchanged. Add const useNewRetry = false and NewRetryPolicy. Scaffolding removed in PR4.
- Command:
node scripts/check --scope branch --base-ref upstream/main - Outcome: not run — slice not materialized; run in Phase 5 after commit