Skill imperativa para mantener la Capa 1 (Los 5 Fantásticos) de documentación viva en la raíz del repo. Tu deber: que el contexto indexable nunca mienta.
Principios imperativos
- Boy Scout obligatorio: si detectás gap, contradicción o desalineación entre los 5 .md y el código, DETENÉ la tarea principal, corregí el .md y recién después continuá.
- Crear si falta: si
README.md,AGENTS.md,DESIGN.mdoADR.mdno existen, CREALOS ya con la plantilla mínima.BEHAVIOR.mdse genera automáticamente ejecutando los tests (ver motor abajo). - Actualizar proactivo sin consultar: ante un trigger (ver matriz), actualizá el .md correspondiente sin preguntar al usuario. Es tu responsabilidad, no una sugerencia.
- Síntesis y curación: condensá, deduplicá, ordená por módulo, eliminá ruido y entradas obsoletas. Prosa breve, jerárquica, alta densidad por token.
- Leer antes de codear: consultá los .md relevantes antes de inferir comportamiento, estilo o arquitectura desde el código fuente.
Matriz de los 5 archivos
| Archivo | Qué guarda | Leer cuando | Actualizar (trigger) | Owner | Mutabilidad |
|---|---|---|---|---|---|
README.md |
Propósito, stack, env, prerrequisitos, comandos de bootstrap. | Onboarding, levantar entorno, dudas de stack. | Cambio de runtime, framework, env vars, comandos de init/deploy local. | Humano (vos editás si detectás drift). | Mutable, sobrescribible. |
AGENTS.md |
Inventario de skills/tools, restricciones operativas, matriz de enrutamiento documental, políticas de seguridad. | Al iniciar cualquier tarea en el repo (system prompt local). | Nueva skill/tool/regla operativa, fricción detectada en ejecución, nueva restricción de codificación. | Co-owned (humano + vos). | Mutable. |
DESIGN.md |
Tokens (color/tipografía/espaciado), catálogo de componentes UI, patrones de estados (loading/error/empty), criterios a11y. | Antes de crear/refactorizar cualquier vista o componente UI. | Nuevo componente reusable, token visual, patrón de estado, decisión de a11y o usuario define regla de diseño. | Vos (autónomo). | Mutable, consolidable. |
BEHAVIOR.md |
Reglas de negocio verificadas, en prosa con DEBE/NO DEBE, agrupadas por módulo. |
Antes de tocar lógica de negocio, para entender comportamiento sin leer tests. | Cada modificación/creación de test que pasa en verde (ver motor abajo). | Vos (100% automatizado). | Reescritura determinista; no editar a mano. |
ADR.md |
Decisiones arquitectónicas: Contexto, Decisión, Consecuencias. Numeradas, cronológicas. | Antes de proponer refactor estructural o cambio de stack. | Usuario enuncia decisión técnica irreversible / de alto impacto, o vos tomás una autónoma. Actualizá vos mismo. | Vos (append autónomo). | Append-only e inmutable. Para revertir: nuevo ADR que supersedes ADR-NNN. |
Triggers proactivos (acción → archivo)
- Modificar/crear test verde →
BEHAVIOR.md - Crear/refactor componente UI, token visual, patrón de estado →
DESIGN.md - Usuario dice "decidimos", "vamos a usar X en lugar de Y", "regla:", "ADR:", "de ahora en más" →
ADR.md(append) + posibleDESIGN.md/AGENTS.md - Cambio de runtime, framework, env var, script npm de bootstrap →
README.md - Nueva skill, tool, restricción, política de ejecución, regla de enrutamiento →
AGENTS.md
Si un cambio dispara varios triggers, actualizá todos los .md afectados en la misma intervención.
Plantillas e inicialización
Inicializar un repo nuevo
bash skills/context-organizer/scripts/init-repo.sh
Este script:
- Copia
README.md,AGENTS.md,DESIGN.md,ADR.mddesdescripts/templates/al root si no existen - Crea
.context/paratest-results.json - Instala hook
pre-commitsi Husky está disponible
Plantillas
Las plantillas residen en scripts/templates/:
README.md— propósito, stack, env, bootstrapAGENTS.md— matriz de consulta, restricciones operativasDESIGN.md— tokens, componentes, estadosADR.md— formato de decision records
Editá las plantillas según tu proyecto después de inicializar.
BEHAVIOR.md
NO crear manualmente. Se genera automáticamente al ejecutar la suite de tests y el script de compilación (ver motor abajo). Formato esperado:
# BEHAVIOR.md
> Generado por context-organizer. No editar a mano.
## Módulo: Auth
- DEBE permitir login con credenciales válidas y verificadas.
- NO DEBE permitir acceso con password incorrecto (retorna 401).
- DEBE bloquear cuenta 15 min tras 5 fallos consecutivos.
## Módulo: Pagos
- DEBE emitir `order.paid` a SQS tras confirmación de pasarela.
- DEBE revertir reserva de stock si la tarjeta es rechazada.
Motor BEHAVIOR.md (automatizado)
Flujo determinista:
[cambio en tests] → [suite en verde + reporter JSON] → [parse] → [síntesis semántica] → [BEHAVIOR.md]
Comandos de reporter
- Jest:
jest --json --outputFile=.context/test-results.json - Vitest:
vitest run --reporter=json --outputFile=.context/test-results.json
Script de compilación
Ejecutá:
node skills/context-organizer/scripts/compile-behavior.mjs
(requiere .context/test-results.json generado por el reporter; ver scripts/README.md para detalles)
Hook pre-commit
Instalá:
cp skills/context-organizer/scripts/pre-commit.sh .husky/pre-commit
chmod +x .husky/pre-commit
(ver scripts/README.md para requisitos y flujo)
Descripciones ambiguas
Si encontrás it("should work"), it("test 4"), it("foo") o similares:
- Leé el
expect/assert del test. - Reescribí la descripción con la intención real (
should <verbo> <objeto> when <condición>). - Recompilá
BEHAVIOR.md.
No tolerés descripciones vacías de semántica: son deuda documental.
Reglas de curación
- Deduplicar: si dos bullets dicen lo mismo con palabras distintas, fusionalos.
- Agrupar: ordená por módulo/dominio, no por archivo de test.
- Podar: eliminá entradas que ya no aparecen en la suite verde.
- Compactar
DESIGN.md: si un patrón se repite ≥2 veces, abstraelo a componente o token y documentalo. ADR.mdes append-only: nunca borres ni reescribas un ADR. Para revertir, agregá uno nuevo conStatus: Accepted, supersedes ADR-NNNy marcá el viejo comoSuperseded by ADR-MMM.AGENTS.mddebe estar al día con las skills realmente disponibles: si agregás/quitás una, actualizalo en el mismo commit.
Anti-patrones (NO hacer)
- ❌ Inferir comportamiento leyendo código fuente cuando
BEHAVIOR.mdexiste y está fresco. - ❌ Crear componentes ad-hoc sin chequear
DESIGN.md. - ❌ Proponer refactors o cambios de stack sin leer
ADR.md(riesgo de loop infinito). - ❌ Editar
BEHAVIOR.mda mano: siempre vía script. - ❌ Sobrescribir o borrar un ADR.
- ❌ Preguntar al usuario "¿actualizo el .md?" cuando hay trigger claro: actualizá y avisá brevemente en el resumen.
Checklist mental por intervención
- ¿Existen
README.md,AGENTS.md,DESIGN.md,ADR.md? Si no, creá los faltantes.BEHAVIOR.mdse genera vía script al correr tests. - ¿Leí los relevantes a la tarea? (matriz de enrutamiento de
AGENTS.md) - ¿Mi cambio dispara algún trigger? Actualizá los .md afectados.
- ¿Tests modificados? Corré el motor y regenerá
BEHAVIOR.md. - ¿Quedaron entradas duplicadas u obsoletas? Curá.