fanout-shiplisted
Install: claude install-skill waseemnasir2k26/skynetlabs-all-claude-code
# fanout-ship
## When to use
USE when ALL true:
- ≥4 child tasks
- Tasks touch DISJOINT files (no shared edits)
- Single GitHub repo
- `gh` CLI authenticated
- Clean working tree on base branch
SKIP when:
- Tasks share files (merge conflict storm)
- <4 tasks (overhead > benefit)
- Sequential dependencies (B needs A's output)
- No CI / no PR review process (just commit direct)
## Inputs required
1. **Repo path** — local clone, clean tree
2. **Base branch** — usually `main` / `mobile_main_dev` / `develop`
3. **Parent issue** — GitHub issue # (or create one)
4. **Child task list** — N items, each with:
- `title` — short
- `scope` — files/classes/methods to touch
- `blast_radius` — int (line count est, method count, complexity 1-10)
- `acceptance` — testable criteria
If user gives vague request → ASK for the task list before fanout.
## The 8-step recipe
### 1. Pre-flight
```bash
cd <repo>
gh auth status # must be logged in
git status # must be clean
git fetch origin
git checkout <base> && git pull
```
Abort on dirty tree or auth fail.
### 2. Create integration branch
```bash
INTEG="issue-${PARENT}-integration"
git checkout -b "$INTEG"
git push -u origin "$INTEG"
```
### 3. Create child issues (if not exist)
```bash
for task in tasks; do
gh issue create \
--title "Phase N: <ChildTitle>" \
--body "Parent: #<PARENT>. Scope: ...\nAcceptance: ..." \
--label "fanout"
done
```
Capture issue numbers → wr