Ejecución larga|INEMA.CLUB-PRO

Clase 1 · 15 min

El kit: siete archivos que sostienen una ejecución larga

Una sesión larga falla de tres maneras: no sabe cuándo parar, olvida lo que hizo después de compactar y gasta lo que no debía. El kit execucao-longa responde con archivos, no con la memoria del modelo: el agente relee la carpeta en vez de recordar. En esta clase instalas el kit y creas la primera carpeta.

Comenzar la clase
Carpetas de archivo grises alineadas en un estante de metal, junto a un servidor pequeño.

En esta clase vas a

  1. 1Instalar el kit y comprobar que pasan las 73 pruebas
  2. 2Crear longrun/[fecha]-[slug]/ con un comando
  3. 3Separar lo que se reescribe de lo que solo se agrega
  4. 4Poner el método en las reglas globales del agente

Objetivo: crear la carpeta longrun/ de una ejecución y decir, para cada uno de los siete archivos, quién escribe, cuándo se lee y si solo agrega.

01Los siete archivos alrededor del agente

Haz clic en cada bloque: quién escribe, cuándo se lee y cómo cambia.

Desplaza la página: cada etapa de abajo enciende su parte del diagrama.

  1. 1/6

    goal.md

    Resultado en una frase, criterios de terminado (función, regresión, límite), topes, restricciones y puertas humanas. Es el único archivo que el agente no debe reescribir: cambiar el goal a mitad de camino es cambiar de tarea.

  2. 2/6

    plan.md + state.md

    Los dos son fotografías del ahora: se reescriben, no se acumulan. El state.md termina con los comandos exactos para retomar. Cuando la primera línea de "Funciona" dice concluído, el vigía y el hook dejan de tratar la ejecución como activa.

  3. 3/6

    progress, failures, decisions

    Historial fechado en tabla. Nunca se borra una línea: es lo que permite ver después si el agente reabrió algo ya hecho o repitió el mismo intento tres veces.

  4. 4/6

    canal.md

    Conocimiento del proyecto, no estado de la tarea: dónde están las cosas, el nombre correcto de cada pieza, la trampa que costó una hora. Solo agrega, una línea por hecho, con fecha. El hook pide llenarlo en la franja 1 (clase 3).

  5. 5/6

    Agente o loop

    Después de cada compactación o retomada, lo primero es releer los archivos, en el orden goal → state → plan → canal → final de progress y failures, y seguir desde el primer ítem pendiente.

  6. 6/6

    La carpeta es la memoria

    El objetivo queda quieto en goal.md; el ahora queda en plan y en state; el historial solo crece en progress, failures y decisions; lo que el resumen pierde queda en el canal.

Los mismos archivos sirven para Claude Code y para Codex: uno retoma lo que el otro grabó.

02Cuándo entra en juego cada archivo

Una ejecución de principio a fin, vista a través de los archivos.

1. Antes

novo-longrun.sh crea la carpeta con los siete archivos ya marcados con la fecha.

Tú completas el goal.md. Es la parte que lleva tiempo, y es la que decide si la ejecución termina (clase 2).

Nombre de la carpetalongrun/2026-10-19-contador-palavras/

03Instalar y crear la primera carpeta

Una vez por máquina, y después una carpeta por ejecución. Las rutas siguen el README del kit.

Terminal · instalar el kit (una vez)
git clone https://github.com/inematds/execucao-longa ~/projetos/execucao-longa
cd ~/projetos/execucao-longa
python3 -m pytest -q -p no:cacheprovider | tail -1
Terminal · una carpeta por ejecución
~/projetos/execucao-longa/tools/novo-longrun.sh ~/projetos/<seu-projeto> <slug-do-objetivo>
ls ~/projetos/<seu-projeto>/longrun/*/
CLAUDE.md y AGENTS.md globales · pegar una vez (templates/AGENTS-long-run.md)
## Execução longa (/goal, loop, objetivo de horas) — método em ~/projetos/execucao-longa

- **Antes de começar:** `~/projetos/execucao-longa/tools/novo-longrun.sh <projeto> <slug>` cria `longrun/<data>-<slug>/` (goal, plan, state, progress, failures, decisions, canal). Critério de pronto no `goal.md` em **nível 3+**: `comando → saída esperada`, cobrindo função, regressão e limite, sem atalho possível (contagem mínima, testes congelados, validador).
- **Durante:** releia goal → state → plan → canal após toda compactação ou retomada; registre cedo no `canal.md` (só acrescentar) fatos, aprendizados, glossário e armadilhas; teste cada mudança; commit a cada checkpoint; continue enquanto houver próxima ação útil e segura.
- **Parar e chamar o humano:** 3 ciclos sem avanço mensurável; o mesmo plano de fechamento repetido sem fechar ou item já feito reaberto (contexto degradou); crédito/API, ação irreversível ou externa, credencial ausente, decisão de negócio.
- **Faixas de contexto** (no Claude Code o hook avisa uma vez cada; no Codex, acompanhe o % em `/status`): ~50% → registrar no `canal.md`; ~70% → atualizar estado e pedir `/compact`; ~85% ou 3ª compactação → `/session-handoff` + sessão nova + `/prime`.
- **Headless:** `~/projetos/execucao-longa/tools/loop-longrun.sh <pasta-longrun>` (flock, timeout, MemoryMax, testes protegidos, parada por estagnação). Medir: `tools/medir-sessao.py <jsonl>`.
- Tetos sempre: timeout, memória (`systemd-run --user --scope -p MemoryMax=`), saída de ferramenta curta.
- **Histórico:** `recall "termo" [--projeto X] [--fonte codex|claude] [--desde AAAA-MM-DD]` busca em tudo o que já foi dito com o Codex e o Claude nesta máquina (índice reindexado de hora em hora) — use antes de perguntar ao usuário algo que pode já ter sido decidido.
Ejemplo del repositorio
$ python3 -m pytest -q -p no:cacheprovider | tail -1
73 passed in 18.59s

$ novo-longrun.sh ~/ensaio/projeto-teste contador-palavras
criado: ~/ensaio/projeto-teste/longrun/2026-10-19-contador-palavras
próximo: preencher ~/ensaio/projeto-teste/longrun/2026-10-19-contador-palavras/goal.md (critérios nível 3+) e colar templates/prompt-goal-codex.md no /goal

$ ls ~/ensaio/projeto-teste/longrun/*/
canal.md  decisions.md  failures.md  goal.md  plan.md  progress.md  state.md

$ novo-longrun.sh ~/ensaio/projeto-teste contador-palavras
já existe: ~/ensaio/projeto-teste/longrun/2026-10-19-contador-palavras
$ echo $?
1

Ejecutado con el kit del 18/10/2026; solo se acortó la ruta de la carpeta de ensayo. El tiempo de pytest cambia de una máquina a otra.

04Video: las tres piezas del método

Seis minutos con el concepto (10/10/2026). El concepto sigue vigente; dos detalles cambiaron después: en la franja 3 y en la 3.ª compactación el agente termina la tarea en curso antes de la sesión nueva (clase 3), y el cuidado con la caché hoy es el handoff automático a los 45 min de inactividad (clase 4).

Ejecución larga en la práctica · 6 min 20 sPágina del video con guion →

05Práctica

En tu máquina. Pasa al siguiente solo cuando el "listo cuando" sea verdad.

E1 · Kit instalado y probado

10 min

Clona el kit en ~/projetos/execucao-longa y ejecuta su suite de pruebas.

Listo cuando: python3 -m pytest -q -p no:cacheprovider | tail -1 → 73 passed (en un clon más nuevo el número puede ser mayor; nunca puede aparecer failed).

E2 · La carpeta de una ejecución de verdad

10 min

Elige una tarea real de un proyecto tuyo que lleve más de una hora y crea su carpeta. Ejecuta el mismo comando dos veces.

Listo cuando: ls ~/projetos/[tu-proyecto]/longrun/*/ | wc -l → 7; la segunda llamada imprime já existe: y echo $? → 1.

E3 · El método en las reglas globales

10 min

Pega el bloque de templates/AGENTS-long-run.md en ~/.claude/CLAUDE.md y en ~/.codex/AGENTS.md. Abre una sesión nueva y pregunta: "¿cómo empiezas una ejecución larga?" El bloque también menciona /session-handoff, /prime y recall: solo existen a partir de las clases 5 y 7.

Listo cuando: grep -c novo-longrun.sh ~/.claude/CLAUDE.md → 1 o más, y la sesión nueva responde citando novo-longrun.sh y criterio nivel 3 sin que tú se lo recuerdes.

06Prueba de la clase

Pregunta 1 de 4

¿Cuál de estos archivos debe el agente REESCRIBIR en cada ciclo, en lugar de solo agregar?competencia

07En tres frases

La carpeta es la memoriaEl agente no necesita recordar: relee goal, state, plan y canal después de compactar o retomar.
Reescribir × agregarplan y state son el ahora; progress, failures y decisions solo crecen; canal guarda lo que el resumen pierde.
Un comandonovo-longrun.sh crea la carpeta con fecha; el método va en las reglas globales para valer sin recordatorio.

Para ir más allá

Próxima clase