av/facts
av/facts : workflow de spécification qui représente les exigences en revendications atomiques dans un fichier .facts et les vérifie avec facts check, du @draft à @implemented.
Qu'est-ce que facts ?
av/facts est un workflow et un format de spécification pour gérer un projet sous forme de liste de revendications atomiques dans un fichier .facts. Chaque ligne est une affirmation courte et structurée sur ce qui doit être vrai, et elle peut optionnellement inclure une commande shell que la machine exécute pour vérifier la revendication.
L'objectif principal est de permettre à un agent et à votre équipe de maintenir les exigences du projet lisible et vérifiable : vous écrivez des vérités approximatives, les affinez en spécifications précises, puis les implémentez et les vérifiez. Vous pouvez exécuter facts check pour voir quelles revendications passent, échouent ou nécessitent une attention manuelle.
Fonctionnalités clés
- Format de spécification “fact” atomique (
.facts) : Écrivez une revendication par ligne sous forme de chaînes simples, organisées avec des titres Markdown par domaine. - Étiquetage de cycle de vie pour le suivi des progrès : Utilisez
@draft,@specet@implemented(plus des étiquettes personnalisées) pour indiquer où en est chaque revendication dans son pipeline. - Vérification basée sur des commandes : Pour les faits incluant une
command,facts checkexécute la commande et considère la revendication vraie si elle se termine par0. - Vérification automatisée et regroupement des statuts :
facts checkvérifie les fichiers, exécute toutes les commandes, regroupe les résultats (ex. : vert passé, rouge échoué, jaune manuel) ; il se termine avec un code non nul si quoi que ce soit échoue. - Codes de sortie et filtrage adaptés à la CI : Filtrez les vérifications par expressions d'étiquettes (ex. :
--tags "mvp and not blocked") pour vérifier des sous-ensembles de votre spécification. - Transitions gérées par l'agent et implémentation contre la spec : Un agent lit la fiche des faits, prend les faits
@spec, les construit, exécutefacts check, et étiquette les faits passés comme@implementedtandis que la spec se met à jour elle-même.
Comment utiliser facts
- Installez l'outil CLI/agent (le projet propose plusieurs options d'installation, y compris un binaire Rust et une commande
npxcomme décrit ci-dessous).- Exemple :
npx skills add av/facts - Puis demandez à l'agent d'exécuter Init facts (ex. : “Init facts”) pour détecter votre stack et créer un fichier
.factsinitial.
- Exemple :
- Créez ou modifiez votre fichier
.factsen utilisant le format documenté :- Ajoutez des titres pour organiser par domaine (ex. :
# auth,# data). - Ajoutez une revendication par ligne.
- Étiquetez chaque fait avec des labels de stade de cycle de vie comme
@draft,@specou@implemented. - Pour les revendications vérifiables, incluez une
commandqui se termine par0quand la revendication est vraie.
- Ajoutez des titres pour organiser par domaine (ex. :
- Exécutez la vérification : utilisez
facts checkpour vérifier et linter tous les faits (ou utilisez--tagspour limiter les vérifications). Passez en revue ceux qui ont passé, échoué ou nécessitent un travail manuel. - Itérez avec l'agent : écrivez des idées approximatives comme
@draft, affinez-les en@spec, puis laissez l'agent implémenter les faits@specet les étiqueter comme@implementedaprès passage defacts check.
Cas d'usage
- Validation de spec de projet après changements : Maintenez une checklist vivante de ce qui doit être vrai et exécutez
facts checkaprès les modifications pour voir rapidement ce qui tient encore. - Transformation des exigences en vérifications exécutables : Convertissez des affirmations “doit être vrai” (comme le comportement d'authentification ou les règles de gestion de données) en faits avec vérification basée sur commande.
- Gestion du travail en cours avec un cycle de vie des faits : Utilisez
@draft → @spec → @implementedpour communiquer les progrès et assurer que chaque revendication est soit implémentée et vérifiée, soit clairement marquée pour affinage. - Découverte et classification automatisée du codebase : Utilisez la compétence
facts-discoverpour scanner le codebase et classer les faits par stade de cycle de vie, y compris ajouter des vérités manquantes. - Implémentation contre une spec : Utilisez le flux
facts-implementoù l'agent lit les faits@spec, construit le code, le vérifie avecfacts check, et met à jour les étiquettes.
FAQ
facts est-il seulement un format de documentation, ou vérifie-t-il vraiment les revendications ?
Il peut faire les deux : les faits sans commande peuvent être vérifiés par l'agent contre le codebase, tandis que les faits avec une command sont vérifiés en exécutant la commande et en vérifiant le code de sortie 0.
Que fait facts check ?
Il linter les fichiers, exécute toutes les commandes fournies, regroupe les résultats par statut (passé/échoué/manuel), et se termine avec un code non nul si quoi que ce soit échoue.
Comment les faits sont-ils organisés et suivis ?
Les faits vivent dans un fichier .facts écrit en structure compatible Markdown/YAML, avec des titres pour l'organisation par domaine et des étiquettes (y compris @draft, @spec, @implemented) pour suivre le statut du cycle de vie.
Puis-je vérifier seulement une partie de mon projet ?
Oui. facts check supporte le filtrage par étiquettes via --tags avec des expressions booléennes.
Alternatives
- Suites de tests (tests unitaires/intégration) : Les tests traditionnels peuvent vérifier le comportement, mais une checklist
.factsmet l'accent sur des revendications atomiques lisibles par l'humain et un pipeline de cycle de vie/statut, pas seulement un passé/échoué automatisé. - Documentation statique + revue de code : Les docs peuvent capturer les exigences, mais elles ne sont généralement pas directement exécutables ;
factslie les revendications à la vérification viafacts check. - Outils de spécification supportant la traçabilité des exigences : Les outils qui lient exigences et implémentation peuvent fournir de la traçabilité, mais
factsutilise spécifiquement un format de revendications ligne par ligne avec exécution de commande optionnelle et transitions de cycle de vie basées sur étiquettes.
Alternatives
GitBoard
GitBoard est une app native macOS pour GitHub Projects : consultez votre kanban, filtrez par statut, recherchez des issues, créez ou assignez depuis la barre.
Biji
Biji est une plateforme polyvalente conçue pour améliorer la productivité grâce à des outils et des fonctionnalités innovants.
Codex Plugins
Utilisez Codex Plugins pour regrouper des skills, intégrations d’app et serveurs MCP en workflows réutilisables afin d’étendre l’accès à Gmail, Google Drive et Slack.
Struere
Struere est un système opérationnel natif AI qui remplace les workflows Excel par des logiciels structurés : tableaux de bord, alertes et automatisations.
OpenFlags
OpenFlags est un système open source de feature flags auto-hébergé pour déploiement progressif : évaluation locale via SDK et contrôle REST.
Planndu: Daily Task Planner
Planndu est une application de productivité intuitive conçue pour aider les utilisateurs à organiser leurs tâches, gérer leurs projets, établir des routines et améliorer leur concentration grâce à des outils tels que la génération par IA et un minuteur Pomodoro intégré.