review-gatelisted
Install: claude install-skill johantor/zion
# Review gate rules
1. **One build location, one build writer at a time.** Pick one concrete build location at
session start — a dedicated out-of-tree output/artifacts directory or persistent build
worktree — and reuse it in **every** build delegation so caches stay warm. Name it as a plain
absolute path (no `$`, `~`, `.` or `..` segment) so a worker's log redirect into it passes
`bash-safety`; a worker clears it with `rm -r`, never `rm -rf`. Inside it the
intermediates are a shared artifact, and a test or lint run that compiles is a writer too:
never dispatch two writers of one project's outputs at once. Run a lane's gates **one at a
time**, unless the lane's stack skill has a **Parallel gates** recipe: load that skill
(`backend-<stack>`) with the Skill tool before deciding — its recipe holds the allow-list,
the tree check and the flags — and stay serial if it cannot be loaded or has no recipe (today
only `backend-dotnet` has one). When its conditions hold, dispatch the gates together, each
with its own `<location>/<lane>/<gate>` path and the recipe's exact flags in its handoff,
`oracle`'s included — a worker that did not load the stack skill cannot derive them. Record
the recipe's tree-check result beside the gate's SHA. Require the location **isolated from any running
app/dev process** so builds can't contend on locked `bin`/`obj`, `dist`, bundler caches; an
e2e suite's command owns its own server lifecycle instead.
2. **One-sh