# Planning Report: {N} Tickets

## Sprint Goal Candidate
> Draft for team negotiation — NOT a final decision.
"{Based on ticket themes: deliver [coherent increment]}"

## Tickets Analyzed
| Key | Summary | Type | Points | Complexity | Status |
|-----|---------|------|--------|-----------|--------|

## Dependency Map
{Adjacency table + critical path}
{Circular deps: [CIRCULAR_DEPENDENCY] if any — team decides which link to break}

## Grouping Suggestions
### Group 1: {theme/epic}
- PROJ-101 (5pt) — {summary}
- PROJ-103 (3pt) — {summary}
Subtotal: {N}pt

### Group 2: {theme/epic}
...

## Sequencing
{Dependency-ordered list}
1. {ticket} — no blockers, start first
2. {ticket} — blocked by #1
...

## Spec Context (mk:confluence-spec-analyst) — only if --spec was provided
**Source:** {spec-report-path}
**Page:** {page-title} ({page-id}) in {space-key}

### Key requirements (from spec, filtered to those relevant to the planning tickets)
- [REQ-F-1] {functional requirement}
- [REQ-NF-1] {non-functional requirement}

### Open spec gaps relevant to planning
- [GAP-1] {missing-info description}
- [AMB-1] {ambiguity description}

### Conflicts between spec and tickets
- {if any: ticket PROJ-101 says X, spec says Y — team decides which side to relax}

If spec read failed: replace this whole section with `[NO_SPEC_CONTEXT: <error>]`.

## Capacity Analysis (if --capacity provided)
> Verify accounts for PTO, ceremonies, focus factor (~6 productive hours/day).
- Sprint capacity: {N}pt
- Estimated tickets: {count with points} / Total: {count}
- [INCOMPLETE] {if >30% unestimated}: Capacity analysis unreliable.
- Fits in sprint: {tickets totaling <= capacity}
- Overflow: {tickets that don't fit}
- Remaining capacity: {N}pt
- Workload distribution: {per-assignee if data available — verify independently}

## Tickets Needing Human Decision
- {escalated — "human estimation recommended"}
- {unestimated tickets}
- {tickets with ambiguous requirements}

## Open Questions
- {items for team discussion}
