Fernando Ramos← Todos los skills09 de 09
← Todos los skills

/relay

Continuar · Traspaso acotado de sesión y memoria en mnemosyne

Escribe un checkpoint JSON inmutable (≤8 KiB) y su vista HANDOFF.md, sincroniza decisiones aceptadas/rechazadas en mnemosyne y transfiere la propiedad mediante offer.json y ack.json.

npx skills@latest add luci-efe/skills -s relay

  • ContinuarEtapa
  • 04 El contexto continúa · 02 No eres el portapapelesMétodo
  • .ramos/runs/<run-id>/<pane>/checkpoints/<seq>/handoff.json + HANDOFF.mdArtefacto / salida producida

Usar cuando

Cuando una sesión debe entregar el trabajo a otra sesión, agente o máquina, o al retomar un trabajo entregado previamente.

Soporte y adaptadores

  • Instrucciones usables en cualquier arnés
  • Hooks probados: Claude Code
1. Emisor (pane A)handoff.json (≤8 KiB)+ HANDOFF.md + mnemosyne2. Estado: offeredtransfer_id + sha256Receptor verifica sha2563A. Acuse verificado (ack.json)sha256 coincide → la propiedad pasa al receptor≤400 tokens · STALE si cambió el código3B. Sin acuse / rechazadoSin ack.json o sha256 distinto → el emisor la conservasin pérdida silenciosa
  1. 1. Emisor (pane A)

    handoff.json (≤8 KiB) + HANDOFF.md + mnemosyne

  2. 2. Estado: offered

    transfer_id + sha256 · El receptor verifica el sha256 del checkpoint

  3. 3A. Acuse verificado (ack.json)

    sha256 coincide → ack.json, la propiedad pasa al receptor · SessionStart ≤ 400 tokens, con STALE si el código cambió desde el checkpoint

  4. 3B. Sin acuse / rechazado

    Sin ack.json o sha256 distinto → el emisor conserva la propiedad · sin pérdida silenciosa

Fig. 2. La propiedad se transfiere solo después de que el receptor verifica el sha256 del checkpoint y escribe ack.json. Los traspasos sin acuse o rechazados se quedan con el emisor. Si el código cambió desde el checkpoint, el acuse registra stale: true y la siguiente sesión muestra STALE.

Árbol de decisión

  1. 01

    Checkpoint y vista generada

    Escribir borrador JSON (cadenas ≤240 caracteres) y ejecutar relay.mjs checkpoint para crear handoff.json inmutable (≤8 KiB) + HANDOFF.md

    → handoff.json + HANDOFF.md
  2. 02

    Sincronizar decisiones en mnemosyne

    Ejecutar relay.mjs sync <handoff.json>; si falta mnemosyne, conservar el checkpoint de recuperación y reportar blocked

    → memory-sync.json
  3. 03

    Oferta y acuse del receptor

    El emisor ejecuta relay.mjs offer --to <pane>; el receptor lee el checkpoint y ejecuta relay.mjs ack --receiver <pane>; ack rechaza un checkpoint modificado, registra stale: true si el código cambió y SessionStart muestra STALE

    → offer.json → ack.json

Requisitos y comandos de instalación

  • noderequerido · ramas default y herdr-launchnode
    brew install node
  • mnemosynerequerido · ramas default y herdr-launchmnemosyne
    uv tool install --python 3.12 mnemosyne-memoryrequiere uv (brew install uv) · requerido para transferencia y sincronización en memoria
  • herdropcional · rama herdr-launchherdr
    brew install herdrOpcional · requerido solo al abrir un panel nuevo en Herdr

Criterios de completitud

  • Cada panel escribe únicamente en su propio carril (.ramos/runs/<run>/<pane>/checkpoints/<n>/) y los checkpoints son inmutables.
  • Si falta mnemosyne, escribe primero el checkpoint de recuperación, muestra uv tool install --python 3.12 mnemosyne-memory (requiere uv) y reporta blocked sin ofrecer.
  • El receptor solo puede escribir después de que relay.mjs ack verifica la oferta y escribe ack.json.

Ver código del skill en GitHub

← Todos los skills