av/facts
av/facts es un workflow de especificación: representa requisitos como afirmaciones atómicas en un .facts y valida con facts check, de @draft a @implemented.
¿Qué es facts?
av/facts es un workflow y formato de especificación para gestionar un proyecto como una lista de afirmaciones atómicas en un archivo .facts. Cada línea es una afirmación corta y estructurada sobre lo que debe ser verdadero, y opcionalmente puede incluir un comando de shell que la máquina ejecuta para verificar la afirmación.
El propósito principal es permitir que un agente y tu equipo mantengan los requisitos del proyecto legibles y verificables: escribes verdades aproximadas, las refinas en especificaciones precisas y luego las implementas y verificas. Puedes ejecutar facts check para ver qué afirmaciones pasan, fallan o necesitan atención manual.
Características clave
- Formato de especificación de “hechos” atómicos (
.facts): Escribe una afirmación por línea como cadenas simples, organizadas con encabezados Markdown por dominio. - Etiquetas de ciclo de vida para seguimiento del progreso: Usa
@draft,@specy@implemented(más etiquetas personalizadas) para mostrar en qué etapa del pipeline está cada afirmación. - Verificación respaldada por comandos: Para hechos que incluyen un
command,facts checkejecuta el comando y considera la afirmación verdadera si sale con0. - Verificación automatizada y agrupación de estados:
facts checkanaliza los archivos, ejecuta cada comando y agrupa resultados (p. ej., verde: pasa, rojo: falla, amarillo: manual); sale con código no cero si algo falla. - Códigos de salida y filtrado aptos para CI: Filtra verificaciones por expresiones de etiquetas (p. ej.,
--tags "mvp and not blocked") para verificar subconjuntos de tu especificación. - Transiciones gestionadas por agente e implementación contra la spec: Un agente lee la hoja de hechos, toma hechos
@spec, los construye, ejecutafacts checky etiqueta los que pasan como@implementedmientras la spec se actualiza.
Cómo usar facts
- Instala la CLI/herramientas del agente (el proyecto ofrece múltiples opciones de instalación, incluyendo un binario Rust y un comando
npxcomo se describe a continuación).- Ejemplo:
npx skills add av/facts - Luego pide al agente que ejecute Init facts (p. ej., “Init facts”) para detectar tu stack y crear un archivo
.factsinicial.
- Ejemplo:
- Crea o edita tu archivo
.factsusando el formato documentado:- Agrega encabezados para organizar por dominio (p. ej.,
# auth,# data). - Agrega una afirmación por línea.
- Etiqueta cada hecho con etapas del ciclo de vida como
@draft,@speco@implemented. - Para afirmaciones verificables, incluye un
commandque salga con0cuando la afirmación sea válida.
- Agrega encabezados para organizar por dominio (p. ej.,
- Ejecuta verificación: usa
facts checkpara analizar y verificar todos los hechos (o usa--tagspara limitar las verificaciones). Revisa cuáles pasaron, fallaron o requieren trabajo manual. - Itera con el agente: escribe ideas aproximadas como
@draft, refínalas en@spec, luego deja que el agente implemente hechos@specy los etiquete como@implementeddespués de que pasenfacts check.
Casos de uso
- Validación de spec del proyecto tras cambios: Mantén una lista de verificación viva de lo que debe ser verdadero y ejecuta
facts checkdespués de ediciones para ver rápidamente qué sigue vigente. - Convertir requisitos en verificaciones ejecutables: Transforma afirmaciones “debe ser verdadero” (como comportamiento de autenticación o reglas de manejo de datos) en hechos con verificación basada en comandos.
- Gestionar trabajo en progreso con ciclo de vida de hechos: Usa
@draft → @spec → @implementedpara comunicar progreso y asegurar que cada afirmación esté implementada y verificada o marcada claramente para refinamiento. - Descubrimiento y clasificación automatizada del codebase: Usa la skill
facts-discoverpara escanear el codebase y clasificar hechos por etapa del ciclo de vida, incluyendo agregar verdades faltantes. - Implementar contra una spec: Usa el flow
facts-implementdonde el agente lee hechos@spec, construye código, lo verifica confacts checky actualiza etiquetas.
Preguntas frecuentes
¿Es facts solo un formato de documentación, o realmente verifica afirmaciones?
Puede hacer ambas: los hechos sin comandos pueden ser verificados por el agente contra el codebase, mientras que los hechos con un command se verifican ejecutando el comando y comprobando el código de salida 0.
¿Qué hace facts check?
Analiza los archivos, ejecuta cada comando proporcionado, agrupa resultados por estado (pasa/falla/manual) y sale con código no cero si algo falla.
¿Cómo se organizan y rastrean los hechos?
Los hechos viven en un archivo .facts escrito en estructura compatible con Markdown/YAML, con encabezados para organización por dominio y etiquetas (incluyendo @draft, @spec, @implemented) para rastrear el estado del ciclo de vida.
¿Puedo verificar solo parte de mi proyecto?
Sí. facts check soporta filtrado por etiquetas vía --tags con expresiones booleanas.
Alternativas
- Suites de pruebas (tests unitarios/integración): Las pruebas tradicionales pueden verificar comportamiento, pero una lista de verificación
.factsenfatiza afirmaciones atómicas legibles por humanos y un pipeline de ciclo de vida/estado, no solo pasa/falla automatizado. - Documentación estática + revisión de código: Los docs pueden capturar requisitos, pero usualmente no son directamente ejecutables;
factsvincula afirmaciones a verificación víafacts check. - Herramientas de especificación con trazabilidad de requisitos: Herramientas que vinculan requisitos a implementación pueden ofrecer trazabilidad, pero
factsusa específicamente un formato de afirmaciones línea por línea con ejecución de comandos opcional y transiciones de ciclo de vida basadas en etiquetas.
Alternativas
GitBoard
GitBoard es una app nativa de la barra de menús en macOS para GitHub Projects: ve tu kanban, filtra por estado, busca issues y crea/asigna.
Biji
Biji es una plataforma versátil diseñada para mejorar la productividad a través de herramientas y características innovadoras.
Codex Plugins
Usa Codex Plugins para combinar skills, integraciones de apps y servidores MCP en flujos reutilizables que amplían el acceso de Codex a Gmail, Drive y Slack.
Struere
Struere es un sistema operativo nativo de IA que reemplaza los flujos en hojas de cálculo por software estructurado: paneles, alertas y automatizaciones.
OpenFlags
OpenFlags es un sistema de feature flags open source y autohospedado con control plane y SDKs para evaluaciones locales y rollouts progresivos.
Planndu: Daily Task Planner
Planndu es una aplicación de productividad intuitiva diseñada para ayudar a los usuarios a organizar tareas, gestionar proyectos, crear rutinas y mejorar el enfoque utilizando herramientas como la generación por IA y un temporizador Pomodoro incorporado.