Synthèse automatique
Ce skill orchestre la phase MODEL d'un projet en générant des spécifications fonctionnelles, des ADR et des règles, avec vérification des dépendances via npm.
Points forts
- Gère les modes greenfield et brownfield avec des automatismes de delta
- Vérifie les versions des dépendances via npm registry pour éviter les informations obsolètes
- Délègue séquentiellement aux agents PM et architecte
Limites
- Nécessite des outils personnalisés (gate-check, factory-state) qui doivent être présents dans le projet
- La phase MODEL dépend de la qualité des documents d'entrée (brief, scope)
- Ne génère pas de code exécutable directement
Lors de la phase initiale de modélisation d'un projet, avant de passer à l'implémentation.
Pour des modifications mineures ne nécessitant pas de spécifications formelles ou de décisions architecturales.
Analyse de sécurité
PrudenceThe skill uses bash to execute node scripts and npm commands, and accesses the network via WebSearch/WebFetch for legitimate dependency verification. No destructive, exfiltrating, or obfuscated actions are instructed. However, the use of Bash and network tools warrants caution.
Aucun point d'attention détecté
Comment cette analyse est faiteExemples
Execute la phase MODEL du factory. Lire le state et générer les specs et les ADRs selon le workflow décrit dans factory-spec.Lance factory-spec en mode brownfield pour mettre à jour les spécifications et les ADRs après un changement de scope.name: factory-spec description: "Phase MODEL - Génère specs + ADR + rules" context: fork allowed-tools: Read, Glob, Grep, Task, Bash, WebSearch, WebFetch
Factory Spec - Phase MODEL
Tu es l'orchestrateur de la phase MODEL.
Workflow
-
Verifier Gate 1 (entree) :
node tools/gate-check.js 1 --json- Si
status === "FAIL"→ STOP immediat (prerequis manquants, ne peut pas corriger). - Terminer avec :
GATE_FAIL|1|<resume erreurs>|0
- Si
-
Lire le state :
node tools/factory-state.js get # Retourne: { "evolutionMode": "greenfield|brownfield", "evolutionVersion": N, "requirementsFile": "...", ... } # Lister les ADR actifs (brownfield : exclut SUPERSEDED) node tools/list-active-adrs.js --summary # Extraire le delta de la version courante (brownfield uniquement) node tools/extract-version-delta.js -f brief -f scopeExtraire :
evolutionMode,evolutionVersion. -
Deleguer aux agents (sequentiel strict, UN A LA FOIS) :
3a. Agent PM (specs fonctionnelles) :
# Instrumenter la delegation (les hooks ne fonctionnent pas dans les forks) node tools/instrumentation/collector.js agent '{"agent":"pm","source":"factory-spec"}'Task( subagent_type: "pm", prompt: "Genere les specs fonctionnelles du projet. Mode: <evolutionMode>. Version: <evolutionVersion>. Si mode=greenfield: CREATE docs/specs/system.md et docs/specs/domain.md. Si mode=brownfield: EDIT les specs existantes pour les mettre a jour. DELTA VERSION COURANTE: <output de extract-version-delta.js> Lis les fichiers BREAK: docs/brief.md, docs/scope.md, docs/acceptance.md. Lis les templates: templates/specs/system.md, templates/specs/domain.md. IMPORTANT: Respecte EXACTEMENT les headings des templates (##). IMPORTANT: NE PAS inventer de numeros de version pour les librairies. Ecrire uniquement le nom de la lib (ex: 'Tailwind CSS', pas 'Tailwind CSS 3+').", description: "MODEL - PM specs" )3b. Verification web des dependances et generation de stack-reference.md (fait par le fork, AVANT l'architect) :
OBLIGATOIRE : Verifier les dependances de la stack sur internet AVANT de deleguer a l'architect. Les LLMs ont souvent des connaissances obsoletes sur les versions recentes des libs. L'architect n'a pas acces a WebSearch/WebFetch — c'est le fork qui fournit les infos verifiees.
Etape 1 : Identifier la stack dans le brief/scope
Lire
docs/brief.mdetdocs/scope.mdpour extraire la liste des dependances prevues (framework, CSS lib, bundler, test runner, linter, chart lib, etc.). Constituer une liste :[ "react", "tailwindcss", "vite", "vitest", ... ].Etape 2 : Verifier les versions via npm registry (source canonique)
Pour chaque dependance identifiee :
npm view <package> version # Retourne la derniere version stable (ex: "19.1.0")Si le nom npm n'est pas evident (ex: Tailwind CSS →
tailwindcss), utiliser :npm search <lib> --json | head -5C'est la source la plus fiable pour les numeros de version. Ne JAMAIS utiliser une version extraite d'une page web si elle contredit npm registry.
Compteur : noter le nombre de deps verifiees via npm (
verified_count).Etape 3 : Rechercher les configs et breaking changes via web (complementaire)
Pour chaque dependance a risque de breaking changes (identifiee dans le brief/scope) :
a. Trouver la doc officielle :
WebSearch:"<lib> getting started"ou"<lib> installation guide"- Privilegier les domaines officiels (npmjs.com, github.com/<org>, docs officiels)
b. Extraire la configuration :
WebFetchsur la page d'installation officielle- Extraire : packages a installer, fichiers de config requis, snippets de reference
- Copier le snippet EXACT depuis la doc (pas de memoire LLM)
c. Identifier les breaking changes :
WebSearch:"<lib> migration guide"ou"<lib> upgrade from v<N-1>"- Documenter : ancien pattern (a eviter) vs nouveau pattern (a utiliser)
Si WebSearch/WebFetch echoue (rate limit, erreur reseau) : logger un warning et continuer. La verification configs/breaking changes est best-effort. Les versions npm sont obligatoires.
Etape 4 : Seuil de fiabilite
Calculer :
ratio = verified_count / total_deps.- Si
ratio >= 0.5(50%+) → continuer normalement. - Si
ratio < 0.5→ logger un warning :Continuer quand meme (ne pas bloquer), mais le warning sera visible dans les logs.node tools/factory-log.js "MODEL" "stack-warning" "Seuil de fiabilite non atteint: X/Y deps verifiees via npm. Risque de versions incorrectes."
Etape 5 : Generer
docs/specs/stack-reference.mdLire le template
templates/specs/stack-reference.md. Creer le fichierdocs/specs/stack-reference.mden remplissant :- Dependencies runtime : tableau avec package, version exacte (depuis npm), commande install, URL source
- Dependencies dev : idem pour les deps de dev
- Configurations de reference : pour chaque lib necessitant un fichier de config, inclure le snippet EXACT copie depuis la doc officielle (pas de memoire LLM)
- Compatibilite : notes inter-dependances (ex: "Tailwind v4 necessite @tailwindcss/vite")
- Breaking changes connus : tableau ancien vs nouveau pour chaque lib avec breaking change
Ce fichier est la source de verite pour toutes les etapes suivantes. L'architect et le developer doivent s'y referer, pas inventer de versions.
Etape 6 : Logger
node tools/factory-log.js "MODEL" "stack-verified" "Verification stack: X/Y deps verifiees via npm, Z configs web → docs/specs/stack-reference.md"3c. Agent Architect (specs techniques + ADR, avec stack verifiee) :
# Extraire le delta depuis les specs PM (disponibles apres 3a) node tools/extract-version-delta.js -f system -f domain # Instrumenter la delegation node tools/instrumentation/collector.js agent '{"agent":"architect","source":"factory-spec"}'Task( subagent_type: "architect", prompt: "Genere les specs techniques et ADR. Mode: <evolutionMode>. Version: <evolutionVersion>. Si mode=greenfield: CREATE docs/specs/api.md, ADR-0001-stack.md, project-config.json. Si mode=brownfield: EDIT api.md + CREATE nouveaux ADR + marquer anciens SUPERSEDED. DELTA VERSION COURANTE: <output de extract-version-delta.js> Lis les fichiers BREAK: docs/brief.md, docs/scope.md, docs/acceptance.md. Lis les specs PM: docs/specs/system.md, docs/specs/domain.md. Lis le fichier stack de reference: docs/specs/stack-reference.md. Lis les templates: templates/specs/api.md, templates/adr/ADR-template.md, templates/specs/project-config.json. IMPORTANT: Respecte EXACTEMENT les headings des templates (##). STACK REFERENCE (source de verite - UTILISE CES VERSIONS ET CONFIGS, PAS TA MEMOIRE) : Lis docs/specs/stack-reference.md pour toutes les versions, packages et configs. Pour chaque dependance dans l'ADR : - Utilise la version exacte et les packages indiques dans stack-reference.md - Inclus les snippets de configuration de reference dans une section '## Configuration de reference' de l'ADR - Si une lib a un setup specifique (ex: plugin Vite au lieu de PostCSS), documente-le - NE PAS inventer de config : utilise UNIQUEMENT les infos de stack-reference.md", description: "MODEL - Architect specs" )3d. Agent Rules-Memory (rules Claude Code) :
# Extraire le delta depuis toutes les specs (disponibles apres 3a+3c) node tools/extract-version-delta.js -f system -f domain -f api # Instrumenter la delegation node tools/instrumentation/collector.js agent '{"agent":"rules-memory","source":"factory-spec"}'Task( subagent_type: "rules-memory", prompt: "Genere les rules Claude Code pour le projet. Mode: <evolutionMode>. Version: <evolutionVersion>. Si mode=greenfield: CREATE les rules dans .claude/rules/. Si mode=brownfield: mettre a jour les rules existantes, supprimer les obsoletes. ADR ACTIFS: <liste des paths retournes par list-active-adrs.js --summary> DELTA VERSION COURANTE: <output de extract-version-delta.js> IMPORTANT: NE PAS charger les ADR au statut SUPERSEDED. Lis les specs: docs/specs/system.md, docs/specs/domain.md, docs/specs/api.md. Lis le template: templates/rule.md.", description: "MODEL - Rules generation" ) -
Executer Gate 2 (sortie avec auto-remediation) :
node tools/gate-check.js 2 --jsonSuivre le protocole standard de gate handling :
Tentative 1 : Analyser le JSON retourne.
- Si
status === "PASS"→ continuer a l'etape 5. - Si
status === "FAIL":- Lire
errors[]. Pour chaque erreurfixable: true:missing_section→ identifier le fichier et le template de reference dans le message d'erreur (ref: templates/...). Relancer l'agent responsable avec prompt : "Corrige [fichier]. Section manquante : [section]. Lis le template [template] et respecte exactement les headings."missing_file→ identifier le fichier manquant :stack-reference.md→ re-executer l'etape 3b (verification web + generation du fichier). C'est le fork qui le fait, pas un agent.system.md/domain.md→ relancer l'agent PM (step 3a).api.md→ relancer l'agent architect (step 3c).- Autre → relancer l'agent responsable.
missing_pattern→ identifier le pattern manquant :.claude/rules/*.md→ relancer l'agent rules-memory (step 3d).docs/adr/ADR-*→ relancer l'agent architect (step 3c).
config→ relancer l'architect pour corriger project-config.json.security→ corriger les secrets/PII directement.
- Pour chaque erreur
fixable: false→ STOP, ne pas retenter. - Re-executer :
node tools/gate-check.js 2 --json
- Lire
Tentative 2 : Relancer les agents fautifs complets (PM, architect ou rules-memory selon les erreurs restantes).
- Re-executer :
node tools/gate-check.js 2 --json
Tentative 3 : Si toujours FAIL, retourner le rapport d'echec.
- NE PAS continuer le pipeline.
- Terminer avec :
GATE_FAIL|2|<resume erreurs separees par ;>|3
- Si
-
Sync ADR (brownfield) :
node tools/list-active-adrs.js --summary -
Logger via :
node tools/factory-log.js "MODEL" "completed" "Phase MODEL terminee" -
Retourner un resume avec liste des fichiers generes (chemins complets).
Protocole d'echec
- Gate d'entree (Gate 1) : Si FAIL → STOP immediat + marqueur
GATE_FAIL|1|...|0. - Gate de sortie (Gate 2) : Auto-remediation 3x puis marqueur
GATE_FAIL|2|...|3si echec persistant. - Jamais de STOP silencieux — toujours retourner un rapport structure.
Du fichier au premier essai
Le téléchargement contient exactement le contenu affiché sur cette fiche. Cette copie peut différer de la dernière version du dépôt source.
Consulter la source et ses fichiers annexesCe téléchargement contient uniquement SKILL.md. Les scripts, références, modèles et dépendances éventuels ne sont pas inclus. Récupérez les fichiers nécessaires depuis la source en conservant leur arborescence avant de poursuivre.
1. Télécharger le fichier
Télécharger SKILL.mdDepuis la racine d’un projet de test, enregistrez le fichier sous .skill-downloads/factory-spec-model-phase-orchestrator-mm5t8bdt/SKILL.md, ou utilisez la commande suivante. Ce dossier sert à examiner la skill avant son installation.
Commande pour macOS/Linux ou WSL : un shell POSIX et curl sont nécessaires. Sous Windows sans WSL, utilisez le bouton de téléchargement et créez le dossier manuellement.
mkdir -p '.skill-downloads/factory-spec-model-phase-orchestrator-mm5t8bdt' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/factory-spec-model-phase-orchestrator-mm5t8bdt/download' --output '.skill-downloads/factory-spec-model-phase-orchestrator-mm5t8bdt/SKILL.md.part' && mv '.skill-downloads/factory-spec-model-phase-orchestrator-mm5t8bdt/SKILL.md.part' '.skill-downloads/factory-spec-model-phase-orchestrator-mm5t8bdt/SKILL.md'2. Vérifier les prérequis
Lisez SKILL.md avant de l’utiliser. Si le fichier cite des scripts ou services externes, examinez-les et préparez les accès nécessaires dans votre environnement de test.
Outils déclarés par l’auteur (à vérifier dans votre agent) : Read, Glob, Grep, Task, Bash, WebSearch, WebFetch
Aucune section de prérequis reconnue dans ce fichier. Cela ne signifie pas qu’il est autonome : les bibliothèques, outils et accès peuvent être cités ailleurs dans le contenu ou dans le dépôt source.
Les plateformes de la fiche sont des indications du catalogue. Les chemins ci-dessous suivent la documentation des outils ; ils ne prouvent pas que cette skill y a été exécutée. Aucune version minimale de ces outils n’est attestée pour cette fiche.
3. Charger la skill
Après vérification, copiez le dossier complet dans le projet avec l’une des commandes ci-dessous, puis ouvrez une nouvelle session de l’outil. La commande s’arrête si un dossier du même nom existe déjà : comparez les fichiers avant de le remplacer.
Claude Code
test -f '.skill-downloads/factory-spec-model-phase-orchestrator-mm5t8bdt/SKILL.md' && test -s '.skill-downloads/factory-spec-model-phase-orchestrator-mm5t8bdt/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/factory-spec' && cp -R '.skill-downloads/factory-spec-model-phase-orchestrator-mm5t8bdt' '.claude/skills/factory-spec'OpenSkills
OpenSkills doit déjà être installé. La procédure locale install/read est contrôlée avec OpenSkills 1.5.0, qui exige Node.js ≥ 20.6.0. Aucun slug du catalogue n’est résolu automatiquement.
Installation officielle d’OpenSkillsopenskills install './.skill-downloads/factory-spec-model-phase-orchestrator-mm5t8bdt'openskills read 'factory-spec-model-phase-orchestrator-mm5t8bdt'La lecture doit afficher le contenu du fichier installé et son dossier de base. Elle ne lance ni la skill ni ses dépendances.
Pour un agent qui lit AGENTS.md, synchronisez ensuite l’index. Cette commande modifie AGENTS.md : relisez le diff avant de l’utiliser.
openskills syncMode manuel ou autre outil : joignez SKILL.md à une conversation, ou ouvrez-le dans un agent capable de lire les fichiers. Ajoutez les ressources annexes nécessaires. Il n’existe pas de dossier universel reconnu par tous les outils.
4. Faire un premier essai
Utilisez une entrée courte et fictive : un endpoint d’API, un petit document ou un brief d’interface. Dans une nouvelle conversation, joignez le fichier ou donnez son chemin à l’agent, puis adaptez cette demande :
Lis .skill-downloads/factory-spec-model-phase-orchestrator-mm5t8bdt/SKILL.md et applique ses instructions à cet exemple : [décrire une entrée de test]. Indique les fichiers, dépendances ou accès qui manquent. Produis le résultat demandé par la skill sans inventer de données ni exécuter de script non examiné.Résultat attendu : une sortie correspondant aux instructions de la skill, ou une liste précise des prérequis manquants. Une simple confirmation de lecture ne valide pas le premier usage. Si une ressource externe est indisponible, ce parcours reste à tester.
Bonnes pratiques React Hook Form
Developpement
Maîtrisez React Hook Form : évitez les anti-patterns, gérez les abonnements, et traitez correctement reset, dirty state et entrées contrôlées.
Migration Emotion vers Mantine
Developpement
Migrer les styled-components Emotion vers des composants Mantine avec style props et modules CSS. Pour convertir .styled.tsx ou supprimer les imports @emotion.
Détecteur de dérive de périmètre
Developpement
Analyse les diffs git par rapport à une intention pour détecter la dérive de périmètre, fichiers non liés et PR trop larges, puis suggère de garder, diviser ou justifier.