/** * v3.1.2 Step 0.8 — Mechanical PreToolUse gate. * * Wire-installed by `peaks workspace init` (extends the existing hook * installer; does NOT replace the Write|Edit|MultiEdit fact-forcing * bypass). The hook runs `peaks code gate-step-08 --project .` before * every Bash tool call. Exit code is the load-bearing contract: * * exit 0 → allow (with structured stdout describing the decision) * exit 2 → block (stderr contains the BLOCKED: ... reason) * * Three decision paths: * * 1. `job-shape.json` exists with `decision.isJob === true`. * → allow, print `{ ok, allow, mode: 'job', decision }`. When a * matching `job//progress.json` exists, also print the * next-slice sentence from `describeNextSlice` — `Next: slice #N of M * (