Activation Contract
Load this skill when a planned PR may exceed 400 changed lines, SDD forecasts 400-line budget risk: High or Chained PRs recommended: Yes, or the user asks for chained/stacked PRs, review slices, or reviewer-load control.
Hard Rules
- Split PRs over 400 changed lines unless a maintainer explicitly accepts
size:exception.
- The budget constrains how work is sliced, never the code itself. Never delete comments, blank lines, docs, or tests, and never compress or restyle code, to fit under the budget.
- Slicing is bounded: make one honest slicing pass. If no cohesive split brings every slice within budget, stop iterating, keep the best cohesive split, and report the final line count with a
size:exception recommendation.
- Keep each PR reviewable in about ≤60 minutes.
- Use one deliverable work unit per PR; keep tests/docs with the unit they verify.
- State start, end, prior dependencies, follow-up work, and out-of-scope items in every chained PR.
- Every child PR must include a dependency diagram marking the current PR with
📍.
- In Feature Branch Chain, create a draft/no-merge tracker PR; child PR #1 targets the tracker branch, later children target the immediate parent branch.
- Treat polluted diffs as base bugs: retarget or rebase until only the current work unit appears.
- Do not mix chain strategies after the user chooses one.
Decision Gates
| Condition |
Action |
| PR ≤400 changed lines and focused |
Keep single PR. |
| PR >400, each slice can land independently |
Use Stacked PRs to main. |
| PR >400, feature must integrate before main |
Use Feature Branch Chain with tracker. |
| Generated/vendor/migration diff cannot split cleanly |
Ask maintainer for size:exception. |
| No cohesive split fits the budget after one slicing pass |
Stop; deliver the best split, report the overage and why it cannot shrink further, and recommend size:exception. |
SDD provides delivery_strategy |
Follow it before apply/PR creation. |
Execution Steps
- Estimate changed lines and identify independent work units.
- Ask for a chain strategy when none is cached and the budget is exceeded.
- Create branches/PRs using the chosen strategy only.
- Add Chain Context to each PR without replacing the repo PR template.
- Verify each PR independently: CI/tests/docs/manual checks, rollback scope, and clean diff.
- Keep tracker PR draft/no-merge until all child PRs are reviewed and integrated.
Output Contract
Return the chosen strategy, PR order, current PR boundary, dependency diagram, review budget (additions + deletions), verification plan, and any size:exception rationale.
References
- references/chaining-details.md — strategy diagrams, PR body section, branch commands, and reviewer guidance.
1---2name: chained-pr3description: Trigger: PRs over 400 lines, stacked PRs, review slices. Split oversized changes into chained PRs that protect review focus.4license: Apache-2.05---6
7## Activation Contract
8
9Load this skill when a planned PR may exceed **400 changed lines**, SDD forecasts `400-line budget risk: High` or `Chained PRs recommended: Yes`, or the user asks for chained/stacked PRs, review slices, or reviewer-load control.
10
11## Hard Rules
12
13- Split PRs over **400 changed lines** unless a maintainer explicitly accepts `size:exception`.
14- The budget constrains how work is **sliced**, never the code itself. Never delete comments, blank lines, docs, or tests, and never compress or restyle code, to fit under the budget.
15- Slicing is bounded: make **one** honest slicing pass. If no cohesive split brings every slice within budget, stop iterating, keep the best cohesive split, and report the final line count with a `size:exception` recommendation.
16- Keep each PR reviewable in about **≤60 minutes**.
17- Use one deliverable work unit per PR; keep tests/docs with the unit they verify.
18- State start, end, prior dependencies, follow-up work, and out-of-scope items in every chained PR.
19- Every child PR must include a dependency diagram marking the current PR with `📍`.
20- In Feature Branch Chain, create a draft/no-merge tracker PR; child PR #1 targets the tracker branch, later children target the immediate parent branch.
21- Treat polluted diffs as base bugs: retarget or rebase until only the current work unit appears.
22- Do not mix chain strategies after the user chooses one.
23
24## Decision Gates
25
26| Condition | Action |
27|---|---|
28| PR ≤400 changed lines and focused | Keep single PR. |
29| PR >400, each slice can land independently | Use Stacked PRs to main. |
30| PR >400, feature must integrate before main | Use Feature Branch Chain with tracker. |
31| Generated/vendor/migration diff cannot split cleanly | Ask maintainer for `size:exception`. |
32| No cohesive split fits the budget after one slicing pass | Stop; deliver the best split, report the overage and why it cannot shrink further, and recommend `size:exception`. |
33| SDD provides `delivery_strategy` | Follow it before apply/PR creation. |
34
35## Execution Steps
36
371. Estimate changed lines and identify independent work units.
382. Ask for a chain strategy when none is cached and the budget is exceeded.
393. Create branches/PRs using the chosen strategy only.
404. Add Chain Context to each PR without replacing the repo PR template.
415. Verify each PR independently: CI/tests/docs/manual checks, rollback scope, and clean diff.
426. Keep tracker PR draft/no-merge until all child PRs are reviewed and integrated.
43
44## Output Contract
45
46Return the chosen strategy, PR order, current PR boundary, dependency diagram, review budget (`additions + deletions`), verification plan, and any `size:exception` rationale.
47
48## References
49
50- [references/chaining-details.md](references/chaining-details.md) — strategy diagrams, PR body section, branch commands, and reviewer guidance.