Wrap Session
Cierra la sesión actual de manera limpia. El chat es borrador. El disco es la verdad.
/wrap-session significa: inspeccionar los residuos de la sesión, proponer acciones duraderas, esperar la aprobación del propietario, ejecutar solo las acciones aprobadas y luego escribir un recibo.
Uso
Úsalo antes de abandonar una sesión con código, decisiones, documentos, cambios operativos o trabajo sin terminar que otra sesión deba retomar.
Omite charlas sin contenido duradero.
Recibo
Un recibo por sesión:
~/.local/state/session-wrap/<session_id>.md
Usa el ID de sesión del arnés (harness) cuando esté disponible. De lo contrario, genera
local-AAAA-MM-DD-HHMMSS-<slug_del_cwd>.
La portada del recibo debe contener:
session_idharness: nombre del arnés activo, oothersource: superficie de sesión activa, oothercwd: ruta absolutaproject: nombre del repositorio Git raíz más cercano, nombre del directorio más cercano, o(root)wrapped_at: marca de tiempo ISO-8601next: una primera acción
Encabezados del cuerpo: Hecho, Decisiones, Escrito, Git, Diferido, Siguiente.
Un recibo significa cierre limpio. El trabajo sin terminar se difiere, nunca queda como un recibo abierto. Reescribir el mismo ID de sesión sobrescribe el recibo anterior.
Procedimiento
1. Inspeccionar
Recopila el ID de sesión, la fuente, el directorio actual absoluto, la etiqueta del proyecto y —cuando esté dentro de un árbol de trabajo Git— git status --short --branch.
Finalización: cada campo del recibo tiene un valor veraz.
2. Redactar plan de envoltura
No escribas todavía. Muestra:
PLAN DE ENVOLTURA
project: ...
cwd: ...
Hecho:
- resultado + ruta de evidencia, commit o URL
Decisiones a persistir:
1. decisión → ruta propuesta, o saltar
Trabajo diferido:
- elemento → backlog, ticket o documento de destino propuesto
Git:
- limpio, o sucio e intencional
- mensaje de commit propuesto, si es necesario
- push: no por defecto
Memoria:
- hecho estable, o ninguno
La próxima sesión comienza con:
- una acción
Señala artefactos existentes. No copies todo el chat en un documento. Coloca cada elemento sin terminar en un lugar real o márcalo explícitamente como saltado.
3. Compuerta del propietario
Pide al propietario que apruebe o edite:
- Escrituras de Decisiones, Diferido y Memoria
- Acción Git: dejar, commit, o commit+push
- Ediciones al plan
Acepta all, números seleccionados, ediciones de texto libre o cancel.
En caso de cancelar: no escribir nada e informar la cancelación.
4. Ejecutar acciones aprobadas
Ejecuta solo las escrituras y acciones Git aprobadas. Verifica cada efecto externo antes de declarar éxito. Reporta los fallos como fallos.
5. Escribir recibo
Crea el directorio padre cuando falte. Escribe:
---
session_id: <id>
harness: <harness>
source: <superficie_de_sesión|other>
cwd: <ruta_absoluta>
project: <proyecto>
wrapped_at: <ISO-8601>
next: <una_acción>
---
# Wrap Session · <proyecto>
## Hecho
- ...
## Decisiones
- ...
## Escrito
- ruta — qué, o (ninguno)
## Git
- ...
## Diferido
- elemento → destino, o (ninguno)
## Siguiente
- ...
Finalización: el archivo de recibo existe en la ruta esperada.
6. Confirmar
Responde con la ruta del recibo, los archivos o cambios Git realizados, el trabajo diferido y su destino, y la línea Siguiente. Detente.
Informe de estado opcional
Ejecuta el detector complementario cuando esté disponible:
bin/wrap-status.sh
bin/wrap-status.sh init
Lee la base de datos de estado state.db de Hermes más los recibos. init es explícito y crea solo el directorio de recibos más la línea base de despliegue. Sin la base de datos de estado de Hermes, informa los recibos y sale con éxito.