← ClaudeAtlas

spawn-teammateslisted

Reproducible teammate creation during Sprint Planning. Reads Sprint and Backlog state, spawns Developer teammates via Agent Teams with consistent naming and assignment.
sohei56/maul-team · ★ 17 · AI & Automation · score 70
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