spawn-teammateslisted
Install: claude install-skill sohei56/maul-team
## Inputs
- `sprint.json` → id, status
- `backlog.json` → Sprint PBIs (derived: `items[] where sprint_id == sprint.id`)
## Outputs
- `sprint.json` → developers[] populated, status: "active"
- Agent Teams teammates spawned
## Preconditions
- state.json phase: "sprint_planning" or "integration_sprint"
- sprint.json status: "planning"
- backlog.json has ≥1 refined PBI with `sprint_id == sprint.id`
## Steps
0. **Freeze Sprint base.** Run
`bash .scrum/scripts/freeze-sprint-base.sh`. This captures
`sprint.json.base_sha = $(git rev-parse HEAD)` exactly once per
Sprint. PBI worktrees fork from this commit. The wrapper refuses
while `docs/design/` has uncommitted changes — scaffold stubs and
catalog-config enables must be committed first (sprint-planning
Step 13), or they will be missing from every worktree. If it
refuses, go back and commit; do not work around it.
1. Read sprint.json→id (the current Sprint id is also at state.json.current_sprint_id)
2. Derive Sprint PBIs from backlog.json:
```bash
SPRINT_PBIS=$(jq -r --arg sid "$SPRINT_ID" \
'.items[]? | select(.sprint_id == $sid and .status == "refined") | .id' \
.scrum/backlog.json)
```
3. Compute target developer count = `min(count of $SPRINT_PBIS, 6)`. **1 Developer = 1 PBI**. The count is not persisted; the invariant `developers | length == derived count` is the exit criterion.
4. Extract Sprint number N from sprint.json id (e.g., "sprint-001"→1)
5. Each Developer:
a. ID: `dev-0