Ir al contenido

Cuándo detenerse

Saltar es un préstamo, y los préstamos se escriben. Una razón de clase de seguridad nunca se salta en silencio y nunca es decisión del planificador. /flow auto funciona por niveles: el trabajo verde puede fusionarse sin preguntar, y el trabajo de clase de seguridad hace HALT.

Esta página es el home del operador para esas reglas. Los archivos del mantenedor siguen siendo canónicos en el repo; solo se enlazan en el pie.

Estas clases nunca son «tales como» con un resto silencioso. Todas hacen halt.

  • autenticación / auth
  • autorización
  • exposición de superficie admin
  • tenencia
  • pagos
  • pérdida de datos / migración de datos
  • eliminar o debilitar validación

Ante cualquiera de ellas:

  • El operador acepta la exposición por escrito en DEBT.md. Tú no la decides por él.
  • En /flow auto esto es un HALT de Nivel-C. Para y pregunta. No procedas.
  • Cerrar una ejecución con deuda de seguridad abierta requiere reconocimiento explícito del operador. «Temporal» no es un reconocimiento.

Saltar es legítimo. Saltar en silencio no.

Registra primero la exposición, luego salta:

/flow debt add "skip 01-research" "<la exposición, en concreto>" "<cerrar antes de: condición nombrada>"
/flow skip 01-research --reason "…"

Guardas, en este orden (referencian la lista de clases de arriba; no la reemplazan por una más corta):

  1. El stage 05 (contrato) nunca puede saltarse. Adapta el contrato al tipo de proyecto. Ver Por qué el contrato nunca se puede saltar.
  2. Una razón de clase de seguridad hace halt. El operador acepta la exposición por escrito en DEBT.md. Nunca es decisión del planificador.
  3. Una línea de deuda abierta no relacionada no desbloqueará el stage.
  4. /flow skip solo avanza cuando una línea de deuda abierta nombra ese stage exacto y la razón no es de clase de seguridad.
  5. Después de un skip legítimo, planning_complete puede tolerar ese stage para que las cards no queden bloqueadas para siempre. La línea de deuda sigue abierta.
  • El primer skip crea DEBT.md.
  • Forma de la línea: cosa saltada, exposición concreta, condición nombrada de cierre, fecha, cards.
- [ ] DEBT: <qué se saltó> -- <exposición> -- close before: <condición nombrada> -- opened <fecha> (cards: C-NNN...)
  • Cerrar una ejecución con deuda de seguridad abierta requiere reconocimiento explícito del operador. «Temporal» no es un reconocimiento.
  • Una card bloqueada por una deuda queda todo con evidencia PARCIAL que nombra la deuda. Nunca medio terminada, nunca redondeada a terminada.

/flow auto hace preflight; si pasa, escribe el estado auto compartido. /flow auto stop vuelve a manual. No hay bypass oculto.

El preflight es fail-closed:

  • cada card tiene un riesgo clasificado (sin unknown)
  • las cards de clase de seguridad necesitan un reconocimiento de autor distinto en DEBT.md
  • el stage 05 lleva un recibo semantic_gate vigente

Luego, por card, el ciclo en lenguaje de operador es: clasifica el nivel, construye en un worktree aislado con un subagente acotado, revisa, recibos, check, fusiona, despliega, verifica en vivo, pega evidencia del mundo, luego terminado. Usa los verbos de /flow workspace para que el journal no tenga huecos. Un git worktree add crudo no registra nada.

Nivel Qué Acción
Nivel-A Verde, sin clase de seguridad Auto-fusión sin preguntar.
Nivel-B Reparable Una reparación por un subagente fresco (dos strikes). El primer rojo de una card ordinaria no llama a un motor facturable de otro proveedor.
Nivel-C Toque de clase de seguridad o un skip de deuda HALT. El operador acepta por escrito en DEBT.md. Nunca lo decide el planificador.

Los límites duros (iteraciones / tokens / reloj) son obligatorios. Excede cualquiera → HALT + informe. Un ciclo sin límite es un antipatrón.

Cada gate decide sobre una señal mecánica (código de salida real, ## Verify real, comprobación en vivo). Nunca la autoevaluación de un agente.

Conflicto de fusión en paralelo → halt y replanifica. La comprobación de solapamiento fue manipulada.

Una ejecución hace HALT e informa. Nunca continúa en silencio. Se detiene ante cualquiera de:

  • Un límite duro excedido (iteraciones / tokens / reloj).
  • Una señal roja de ground truth que no puede repararse en dos strikes.
  • Un toque de clase de seguridad de Nivel-C.
  • Un conflicto de fusión durante construcciones en paralelo (la comprobación de solapamiento de archivos permitidos fue manipulada: para y replanifica).
  • BLOCKED / NEEDS_CONTEXT de un subagente que más contexto no puede resolver.

Al hacer halt: di qué paró, qué está hecho, la deuda abierta o el bloqueador, y 2–4 opciones concretas. No parchees alrededor de una regresión. Deja que decida el operador.


Homes del mantenedor (no la página pública): skills/flow/references/debt-and-halts.md, skills/flow/references/auto-run.md, skills/flow/references/attestations.md.