{
  "markdown": "# aidlc-harness\n\n**Un harnais agentique d'entreprise pour le AI-native SDLC**, distribué comme un marketplace de\nplugins Claude Code. Des agents produisent les livrables du cycle de vie logiciel — cadrage,\nconception, build, test, déploiement — et le harnais **garantit que ce qu'ils produisent est\nvérifiable** : validation déterministe, notation par un agent *reviewer*, porte de qualité,\nsignature humaine, journal de session.\n\nUne seule porte d'entrée : **`/aidlc`**.\n\n---\n\n## Installer\n\n**Un seul plugin à installer.** Depuis la racine de **votre** projet :\n\n```bash\nclaude plugin marketplace add <chemin-local-ou-url-git-de-aidlc-harness>\nclaude plugin install aidlc@aidlc\n```\n\nC'est tout. Les trois autres entrées du marketplace — `aidlc-plan`, `aidlc-design`,\n`aidlc-security` — sont des **exemples d'agents d'équipe** : installez-les pour essayer le harnais\nsur un cycle complet, ou copiez-les pour écrire le vôtre. Aucun n'est requis.\n\n```bash\n# facultatif : de quoi jouer une chaîne plan → design de bout en bout\nclaude plugin install aidlc-plan@aidlc\nclaude plugin install aidlc-design@aidlc\n```\n\nPrérequis : **Claude Code** récent (marketplaces + hooks) et **Python 3** — ou **uv**, que le\nlanceur préfère quand il est présent. Aucune dépendance à installer : le moteur n'utilise que la\nbibliothèque standard.\n\n## Premier run\n\nDans une session ouverte à la racine de votre projet :\n\n```\n/aidlc init\n```\n\nIl amorce le projet — `aidlc.json` (votre seuil, votre workflow), `deliverables/`, le bundle\n`knowledge/` — et **compose votre chaîne** en dialoguant : quelles équipes interviennent, sous quel\nnom d'initiative. L'amorçage part d'un inventaire de ce que votre dépôt dit déjà de lui-même\n(README, manifestes, ADR), et ne remplace jamais un fichier existant.\n\nEnsuite, tout passe par le même verbe :\n\n```\n/aidlc              # sans argument : lit l'état et propose la prochaine action\n/aidlc status       # où en est le pipeline, qui est attendu, ce qui bloque\n/aidlc next plan    # produire le livrable de cadrage, de bout en bout\n/aidlc doctor       # quelque chose cloche ? le diagnostic en une commande\n```\n\nL'agent dialogue avec vous, écrit `deliverables/plan/intent.md` **dans votre projet**, le hook le\nvalide à chaque écriture, le reviewer le note, la porte s'arrête et vous demande de signer. **Rien\nn'est jamais écrit dans le dépôt du harnais** : la copie installée est en lecture seule, et un hook\nle fait respecter.\n\n| Verbe | Ce qu'il fait |\n| --- | --- |\n| `init` | Amorce le projet et compose le workflow de l'initiative |\n| `next [étape]` | Exécute une étape : livrable, validation, revue, porte |\n| `status` | Tableau de bord du pipeline |\n| `review` / `sign` | Faire noter un livrable · préparer la revue humaine |\n| `agents` | Qui est publié, qui est branché, comment en ajouter |\n| `new-agent` | Concevoir une étape avec son référent métier, générer son plugin |\n| `ask` | Un avis transverse, sans livrable (sécurité, archi…) |\n| `improve` / `doctor` | Diagnostiquer une étape qui stagne · la dérive d'installation |\n| `knowledge` | Consulter le savoir OKF déclaré par le projet |\n\n→ Le guide pas à pas, y compris la signature : **[docs/CONSUMER.md](docs/CONSUMER.md)**.\n\n## À quel besoin ça répond\n\nFaire écrire un document de cadrage par une IA est facile. Le faire **de façon fiable, traçable et\nreproductible dans une entreprise où chaque direction a ses règles** ne l'est pas.\n\n| Le problème | La réponse |\n| --- | --- |\n| La qualité dépend de la chance du prompt | Un contrat déclaratif (`checks.json`) par livrable, appliqué **à chaque écriture** par un hook |\n| « C'est bon ? » n'a pas de réponse objective | Une note 0–5 sur 4 axes, un seuil, une porte qui rend un code de sortie exploitable en CI |\n| Une étape démarre sur un livrable amont absent ou pas validé | La porte exige que chaque entrée `consumes` existe et que son producteur ait franchi la sienne |\n| L'IA avance seule là où l'humain devait décider | Revue humaine obligatoire tant que l'étape n'est pas autonome ; `sign` exige un terminal, un agent ne peut pas signer à votre place |\n| Un projet mène plusieurs idées, la seconde écrase la première | La clé `initiative` isole livrables, scores et signatures : `deliverables/<idée>/`, `.aidlc/<idée>/` |\n| Chaque équipe veut son agent, personne ne veut d'un noyau à modifier | Chaque équipe publie son plugin avec un manifeste `agent.json` ; l'orchestrateur **découvre** les agents, il n'en tient aucune liste |\n\n## Comment ça marche\n\n> Neuf schémas, un par question : **[docs/DIAGRAMS.md](docs/DIAGRAMS.md)**.\n\n```\n   porte amont          l'entrée `consumes` existe ? son producteur a franchi sa porte ?\n        │               non → bloqué, avec le nom de l'agent à relancer\n        ▼\n   l'agent écrit        deliverables/<étape>/<fichier>, dans VOTRE projet\n        │\n        ▼\n   hook PostToolUse     une passe unique : validation, OKF, syntaxe, watchdog\n        │\n        ▼\n   reviewer             note 0–5 sur completeness · precision · traceability · autonomy\n        │\n        ▼\n   porte de sortie      seuil tenu ? revue humaine faite ? → étape suivante\n```\n\nL'ordre des étapes se **dérive** de la chaîne producteur → consommateur déclarée dans les\nmanifestes — jamais d'une position dans un fichier de configuration.\n\n## Publier l'agent de son équipe\n\nLe noyau n'est **jamais** modifié pour ajouter un agent : c'est la condition de la modularité.\nDepuis ce dépôt :\n\n```\n/aidlc new-agent design\n```\n\nLa skill mène l'entretien avec le référent métier, puis génère le plugin complet — manifeste\n`agent.json`, agent, skill, gabarit, contrat déterministe — et l'inscrit au marketplace. Un agent\n**consultatif** (un avis, pas de livrable) omet simplement `produces` : voir `plugins/aidlc-security/`.\n\n→ Le guide auteur : **[docs/MAINTAINER.md](docs/MAINTAINER.md)**.\n\n## Deux racines, à ne pas confondre\n\n| | Où | Quoi |\n| --- | --- | --- |\n| **Le harnais** | `CLAUDE_PLUGIN_ROOT` | La copie installée du plugin. **Lecture seule** : gouvernance par défaut, moteur, hooks. |\n| **Votre projet** | `CLAUDE_PROJECT_DIR` | `aidlc.json`, `deliverables/`, `.aidlc/`, `knowledge/`. Tout ce que le harnais produit atterrit ici. |\n\nQuand ce dépôt sert de projet d'essai, les deux se confondent — c'est le seul cas.\n\n## Développer le harnais lui-même\n\nDepuis la racine de ce dépôt :\n\n```bash\ntools/aidlc-dev test          # la suite unittest — doit passer\ntools/aidlc-dev selfscore     # le score de maturité du dépôt (porte du pre-commit et de la CI)\nplugins/aidlc/bin/aidlc agents  # qui est dans le registre\nclaude --plugin-dir plugins/aidlc --plugin-dir plugins/aidlc-plan\n```\n\nLes portes du dépôt (`test`, `coverage`, `selfscore`, `ratchet`) vivent dans `tools/`, **hors du\nplugin** : elles notent ce dépôt, pas le projet d'un consommateur. Activez la porte locale une fois\npar clone :\n\n```bash\ngit config core.hooksPath .githooks\n```\n\n→ Les tests : **[docs/TESTING.md](docs/TESTING.md)** · l'architecture :\n**[docs/ARCHITECTURE.md](docs/ARCHITECTURE.md)** · les conventions du dépôt :\n**[CLAUDE.md](CLAUDE.md)**.\n\n## Arborescence\n\n```\nplugins/aidlc/                le harnais — c'est le seul plugin à installer\n  skills/aidlc/SKILL.md         la porte d'entrée : une table de verbes\n  skills/aidlc/reference/       le détail de chaque verbe, chargé à la demande\n  bin/aidlc                     lanceur (uv sinon python3) — cité par les hooks et les skills\n  scripts/_aidlc/               le moteur déterministe (stdlib seule)\n  pipeline.json                 gouvernance par défaut : seuils, watchdog, feuille de route\nplugins/aidlc-plan/           EXEMPLE — agent d'étape en tête de chaîne\nplugins/aidlc-design/         EXEMPLE — agent d'étape aval (consomme le livrable de plan)\nplugins/aidlc-security/       EXEMPLE — agent consultatif (aucun `produces`)\ntools/aidlc-dev               les portes de CE dépôt, hors du plugin\ndocs/                         documentation publiée (bundle OKF v0.2)\nknowledge/                    base de connaissance de ce dépôt (bundle OKF v0.2)\n```\n\n## Les contraintes structurantes\n\n- **Aucune dépendance externe.** Bibliothèque standard Python uniquement, `unittest` pour les\n  tests. Le harnais tourne chez n'importe quel consommateur avec `python3` seul.\n- **Un livrable = un fichier**, au chemin exact déclaré par le `produces` du manifeste.\n- **L'état runtime et les règles ne s'éditent jamais à la main par un agent** : un hook\n  `PreToolUse` refuse ces écritures. Un agent n'édite ni les règles qui le jugent, ni sa propre\n  note, ni le livrable d'un voisin.\n- **Le dépôt se note lui-même, et la note est bloquante** : `tools/aidlc-dev selfscore` agrège\n  cinq axes déterministes et rougit la CI sous le seuil.\n",
  "bytes": 8706,
  "sha": "567f3b9471caaa043954c78f53c5563fa8eb048cb9f2ca64350beaada92c2de5",
  "repo_slug": "steve-magne/aidlc-harness",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/okf_steve_magne_aidlc_harness_knowledge_inde_d83d207c/readme"
}