Interpone una aprobación humana explícita antes de cualquier acción irreversible
(crear registros, llamar una API que escribe, borrar en masa). La acción se materializa
primero como un archivo de propuesta .md; el usuario la aprueba, edita o descarta.
Una acción irreversible ejecutada por error (crear 50 registros, borrar datos) no tiene vuelta atrás. El gate convierte la acción en un artefacto revisable:
- Recuperación: las propuestas rechazadas quedan como archivo para análisis.
- Auditoría: historial de decisiones.
- Iteración: editar la propuesta sin reiniciar el flujo.
- Definí un directorio
proposals/y una skillskills/<plugin>-propose/SKILL.md. - La regla central (ponela en
AGENTS.md/CLAUDE.mdcomo prioridad alta):NUNCA llamar la acción irreversible directamente. Todo flujo de creación pasa por
<plugin>-propose→ aprobación explícita del usuario → ejecución. - La skill escribe un archivo con frontmatter de estado:
--- status: pending | approved | discarded <campos de la acción> --- # Propuesta ... contenido revisable ...
- El flujo:
- Skill genera la propuesta →
proposals/<hash>/<slug>.md(status: pending). - Usuario revisa el archivo: aprueba / edita / descarta.
- Si aprueba → la skill parsea el archivo y ejecuta la acción real.
- Si descarta → el archivo queda como registro (
status: discarded).
- Skill genera la propuesta →
- Los
statusválidos deben estar en el vocabulario (ver featurevocabulary-guardian).
Verificá que la acción real no se dispara mientras el estado sea pending, y que
solo corre tras pasar a approved.
- 1.0.0 — patrón extraído de
ankify(anki-propose + proposals/).