# Factory Spec

> Phase MODEL - Génère specs + ADR + rules

- Skill: `majiayu000/factory-spec-2` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add majiayu000/factory-spec-2`
- Raw SKILL.md: https://api.skillmd.com/api/skills/majiayu000/factory-spec-2/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- Author: majiayu000 (https://skillmd.com/u/majiayu000)
- Updated: 2026-09-22
- Page: https://skillmd.com/skills/majiayu000/factory-spec-2

---


# Factory Spec - Phase MODEL

Tu es l'orchestrateur de la phase MODEL.

## Workflow

> ⚠️ **SYNCHRONISATION OBLIGATOIRE** : Chaque étape DOIT être terminée avant de passer à la suivante.
> Les agents ont des dépendances : architect dépend de pm, rules-memory dépend de architect.

0. **Instrumentation** (si activée) - Enregistrer le début de phase :
   ```bash
   node tools/instrumentation/collector.js phase-start "{\"phase\":\"MODEL\",\"skill\":\"factory-spec\"}"
   node tools/instrumentation/collector.js skill "{\"skill\":\"factory-spec\"}"
   ```

1. **Vérifier Gate 1** : `node tools/gate-check.js 1`
   - Si exit code ≠ 0 → STOP immédiat

2. **Déléguer à l'agent `pm`** via Task tool :
   ```bash
   # Instrumentation (si activée)
   node tools/instrumentation/collector.js agent "{\"agent\":\"pm\",\"source\":\"factory-spec\"}"
   ```
   ```
   Task(
     subagent_type: "pm",
     prompt: "Produis docs/specs/system.md et docs/specs/domain.md depuis docs/brief.md et docs/scope.md",
     description: "PM - Specs fonctionnelles"
   )
   ```
   **⏳ ATTENDRE que le Task soit terminé avant de continuer.**
   **✅ Vérifier** : `docs/specs/system.md` ET `docs/specs/domain.md` existent.

3. **Déléguer à l'agent `architect`** via Task tool :
   ```bash
   # Instrumentation (si activée)
   node tools/instrumentation/collector.js agent "{\"agent\":\"architect\",\"source\":\"factory-spec\"}"
   ```
   ```
   Task(
     subagent_type: "architect",
     prompt: "Produis docs/specs/api.md et docs/adr/ADR-0001-stack.md depuis docs/specs/system.md et docs/specs/domain.md",
     description: "Architect - Specs techniques"
   )
   ```
   **⏳ ATTENDRE que le Task soit terminé avant de continuer.**
   **✅ Vérifier** : `docs/specs/api.md` ET `docs/adr/ADR-0001-*.md` existent.

4. **Déléguer à l'agent `rules-memory`** via Task tool :
   ```bash
   # Instrumentation (si activée)
   node tools/instrumentation/collector.js agent "{\"agent\":\"rules-memory\",\"source\":\"factory-spec\"}"
   ```
   ```
   Task(
     subagent_type: "rules-memory",
     prompt: "Génère les rules dans .claude/rules/ et enrichis CLAUDE.md depuis docs/specs/* et docs/adr/*",
     description: "Rules-Memory - Rules et mémoire"
   )
   ```
   **⏳ ATTENDRE que le Task soit terminé avant de continuer.**

5. **Vérifier les outputs** :
   - `docs/specs/system.md` existe
   - `docs/specs/domain.md` existe
   - `docs/specs/api.md` existe
   - `docs/adr/ADR-0001-*.md` existe

6. **Exécuter Gate 2** : `node tools/gate-check.js 2`
   - Si exit code ≠ 0 → STOP immédiat avec rapport des erreurs

7. **Logger** via :
   ```bash
   node tools/factory-log.js "MODEL" "completed" "Phase MODEL terminée"
   ```

8. **Retourner** un résumé avec liste des specs générées

## En cas d'échec

Si Gate 2 échoue → STOP et rapport des fichiers manquants.

