PRODUCT LOOP NATIVO DEL REPO

hornero Entran notas de reunión. Salen specs, código y un rastro auditable — con una persona aprobando en el medio. Todo vive en tu repo git: sin servidor, sin SaaS, sin base de datos.

CAPA POR CAPA

EL LOOP — de la señal al ship, trazable de punta a punta

Entran señales

Dejá minutas, docs o ideas en una carpeta inbox. Opcional: los propios commits se vuelven señales, así código y specs nunca divergen en silencio.

.hornero/inbox/ · GitSource

Deltas con evidencia verificada

Un LLM propone qué es nuevo, qué cambió, qué quedó obsoleto. Cada delta debe citar su fuente literal — verificado mecánicamente. Sin evidencia no hay delta. La alucinación se descarta, no se corrige.

LITERAL O MUERE

Gate humano

Aprobás, rechazás, editás o saltás — interactivo, en tu terminal. Sin TTY no hay escrituras: el gate falla cerrado. Los rechazos pasados reaparecen antes de aprobar una repetición.

HITL FAIL-CLOSED

El spec ES el tracker

Lo aprobado se vuelve specs markdown versionados en git — el estado vive en el frontmatter, las decisiones son ADRs, las ideas a medio formar son propuestas de brainstorm. Nada externo que sincronizar.

sdd/specs/ · versionado en git

Dispatch a agentes de código

Los specs aprobados se vuelven briefs y se despachan a un backend. Cada corrida deja un trace tipo caja negra; un scribe lo destila en un decision record cuyas afirmaciones citan eventos verificados.

TRACE ⇒ DR, CITAS VERIFICADAS

Write-back y reportes

El código, el spec actualizado, los reportes regenerados y el DR aterrizan en el mismo PR. La trazabilidad muestra señal → delta → spec → tarea → corrida → PR → merge, huecos incluidos.

UN PR ATÓMICO

GUARDRAILS — violarlos es un bug, nunca “aceptable por ahora”

La evidencia es literal o el delta muere. Las citas son substrings verificados mecánicamente de la fuente; lo que no coincide se loguea y descarta.

El human-in-the-loop falla cerrado. Sin canal de aprobación ⇒ ni mutación de specs ni dispatch. El dry-run siempre deja git limpio.

Nada facturado por sorpresa. Una API paga corre solo como primera opción explícita y deliberada — nunca como fallback.

Los archivos diverged nunca se auto-mergean. Los prompts se sincronizan como dependencias con lockfile; el conflicto bloquea hasta que un humano elige --theirs o --ours.

Los secretos nunca llegan al disco. Toda superficie generada — reportes, wiki, traces, digests — pasa por una capa de redacción.

EN NÚMEROS

234
tests deterministas
(cero red, cero keys)
4
specs construidas —
SDD self-hosted
11
gates de fase,
todos verdes verbatim
1
dependencia de runtime
(pyyaml)
0
servidores, daemons
o SaaS requeridos

TRES CAPAS DE MEMORIA — el repo recuerda

wiki/ — para agentes

Docs vivas escritas para la próxima corrida de agente: quickstart obligatorio, links validados, updates quirúrgicos por ventana de cambios git. Un repo quieto cuesta un hash — el cron hace no-op.

toolkit sync — prompts como deps

Comandos, reglas y templates de agentes se sincronizan entre repos desde un upstream con lockfile commiteado y drift de tres vías. Las mejoras vuelven vía PRs con scan de secretos.

flight recorder — la verdad del proceso

El stream de acciones es la verdad; la narrativa es solo un índice sobre él. Auditá cualquier línea de código: wiki → decision record → rango de eventos → trace crudo, cada salto suma resolución.

github.com/jelitox/hornero · MIT · Python ≥ 3.11 el hornero construye su propia casa — esta herramienta también