relay
Installation
SKILL.md
/relay
A handoff is a transfer of ownership, not a summary. The JSON checkpoint is the source of truth; HANDOFF.md is generated from it; lasting decisions go to mnemosyne.
Script: node <this skill dir>/scripts/relay.mjs (run with the repo root as cwd; <this skill dir> is where this SKILL.md is installed, e.g. .claude/skills/relay). State lives under <state dir>/runs/<run>/<pane>/checkpoints/<n>/, where the state dir is .ramos/ unless RAMOS_STATE_DIR is set. Set RAMOS_PANE=<your-pane> so the SessionStart hook can find your assignment.
Preflight (hard)
mnemosynemust be on PATH for a transfer. If it's missing → still write the checkpoint (steps 2–3 below, so recovery state is never lost), printuv tool install --python 3.12 mnemosyne-memory, reportblocked, and don't offer.- Never write to another pane's checkpoint directory.
Decision tree
Receiving work? (SessionStart showed a [relay] line, or you were told to take over)
- Run
relay.mjs read <checkpoint>and read it. - If the line says
STALE→ comparegit status/git logagainst the checkpoint'sworkspacebefore acting. Record what changed. - If an
offer.jsonnames you and noack.jsonexists →relay.mjs ack <offer.json> --receiver <your-pane>. Only after ack may you write. - If ack fails (
already acknowledged,intended for,digest mismatch) → stop and reportblockedwith the exact error. Never work around it.