branch-lifecyclelisted
Install: claude install-skill r3vs/keel
# Branch & Worktree Lifecycle
The roster's core safety rule is **serialized writing, parallel reading** — only the `executor`
writes, one scope at a time (`references/core/agents.md`). Prose cannot enforce that. A worktree
can: two agents in two trees cannot corrupt each other's files no matter what they do.
## Start — a branch per scope, and the scope is on disk
```bash
git checkout -b <scope> # sequential work
git worktree add ../wt-<scope> -b <scope> # parallel work: an isolated tree per scope
```
Before any agent starts, **write the scope down**: which pins it closes, and which file globs it may
touch. That file is what makes "one scope at a time" checkable instead of promised — an agent's
scope is a declared fact, not a shared assumption, and two scopes whose globs intersect must not run
concurrently.
Distinguish two relations, because conflating them is how a schedule deadlocks or corrupts:
- **`depends_on`** — B needs A's *result*. Ordering.
- **`conflicts_with`** — B and A touch the same files. Mutual exclusion, no ordering implied.
Independent scopes go in parallel worktrees. Conflicting scopes serialize, whatever the DAG says.
## During — commit against pins
- Commit at each green step, referencing the pin: the ledger says *why*, the commit says *what*.
- **Never commit on the default branch.** Branch first, always.
- A shared file (types, config, schema) belongs to **one** scope. Assign it explicitly rather than
hoping two agents edit