/** * v3.1.2 — On-disk slice progress mirror. * * After each `peaks job checkpoint --state done`, the orchestrator writes * `.peaks/_runtime//job//progress.json` so the next LLM * turn (after compact or resume) can read it before any Bash call lands. * * Shape (schemaVersion 1): * { * jobId, done, total, currentSlice, lastCommitSha, updatedAt * } * * The `peaks code gate-step-08` hook reads this file in its case-1 path * (job-shape.json says isJob=true) and surfaces the next-slice sentence built by * {@link describeNextSlice} — `Next: slice #N of M (