Mode local : grimoire serve et les blueprints¶
Cette page décrit l'outil ; le langage est ailleurs
Ici : les pages de l'atelier, les gestes, ce que fait chaque bouton. Pour ce qu'un blueprint contient — nodes, pins, contrats, canaux, portes — voir Le système nodal, et Votre premier blueprint pour le parcourir en ligne de commande.
grimoire serve ouvre l'atelier sur http://127.0.0.1:4173/atelier.html :
l'UI complète est embarquée dans le paquet (hub de projet, marketplace,
éditeur de blueprints, wizard de setup). Le serveur est lié à 127.0.0.1 —
c'est un outil local, pas un service.
Le site public (GitHub Pages) et l'atelier local sont la même UI : sans
API locale, les pages « atelier » affichent l'écran de premier lancement avec
les commandes ci-dessus ; avec grimoire serve, elles se branchent sur le
projet réel.
Options utiles : grimoire serve --port 8080, --project-root <chemin>,
--no-open (ne pas ouvrir le navigateur).
Principe non négociable : le serveur lit, valide et écrit des artefacts ; il n'exécute rien. L'exécution appartient au runtime existant et passe par ses gates.
Les pages¶
| Page | Rôle |
|---|---|
atelier.html |
Hub du projet : premier lancement, wizard de setup, blueprints, extensions et artefacts |
patterns.html |
Catalogue des 78 patterns (familles, contrats échangés, fiches) |
extensions.html |
Marketplace : extensions publiées, recherche, filtres par famille, blueprints publiés |
blueprints.html |
Éditeur de flows (Studio) : composer, connecter, valider, simuler, compiler |
memory.html · kanban.html · observability.html |
Observer : mémoire, tableau gouverné, télémétrie |
L'éditeur de blueprints¶
Un blueprint (_grimoire/blueprints/*.blueprint.json) décrit un flow
agentique comme un graphe de nodes typés.
Composer — la palette latérale ajoute d'un clic : patterns du catalogue, use-cases composites, artefacts du projet, nodes d'extensions.
Connecter — Maj + glisser d'un node vers un autre : la connexion se crée si un contrat commun existe entre pins (task envelope, handoff packet...), sinon elle est refusée. Une connexion sans contrat commun ne compile pas.
Propriétés — sélectionner un node : label éditable, contrats des pins modifiables depuis la liste du catalogue, suppression. Ctrl+Z annule, RÉORGANISER applique un layout dirigé.
Valider — lint normatif dérivé du catalogue : dépendances de patterns absentes du flow, heuristique « Faux Done » (aucun pattern de preuve QUA-*), nodes isolés.
Simuler — dry-run sans effet : ordre topologique, cycles bloquants, prérequis par node (contrôles du pattern, artefact présent, extension installée), verdict prêt/bloqué.
Compiler — un blueprint prêt devient un mission pack
.github/prompts/{id}.blueprint.prompt.md exécutable par l'orchestrateur :
plan d'exécution ordonné, obligations par pattern, contrats aux frontières.
La section compiled du blueprint trace le hash (détection de dérive).
Aucun apply automatique : le diff git reste la revue.
Rejouer — la télémétrie (events.jsonl) se rejoue sur le graphe via les
bindings du blueprint.
API locale¶
| Route | Rôle |
|---|---|
GET /api/status |
Racine projet, version kit, UI servie |
GET /api/setup · POST /api/setup |
Vue des artefacts / plan d'init (wizard) |
GET /api/archetypes |
Archetypes du kit (wizard) |
GET /api/extensions · POST /api/extensions/add · /remove |
Gestion des extensions |
GET/PUT /api/blueprints/<id> |
CRUD des blueprints |
POST /api/blueprints/<id>/validate · /simulate · /compile |
Lint, dry-run, compilation |
GET /api/events (SSE) · GET /api/events/log |
Télémétrie live et replay |
GET /api/stigmergy |
Vue live du tableau phéromonique (signaux actifs, trails, métriques) — beta |
Le bloc behavior de GET /api/stigmergy porte les métriques de promotion
beta→stable et la thèse qu'elles testent (QUA-13, mesure-sans-hypothèse) :
usefulRatio— part des signaux émis ayant produit une coordination utile (résolution ou relais) ;targetUsefulRatio(0.4) — seuil de promotion visé ;minEmitted(20) — volume minimal d'émissions pour que la mesure compte ;hypothesis— l'hypothèse testée, en clair ;promotionReady—truequandusefulRatio >= targetUsefulRatiosur au moinsminEmittedémissions : la mesure sert une décision.
Chaque mutation servie (POST /api/extensions/add|remove, toggle de feature,
PUT et compile de blueprint) est tracée en JSONL dans
_grimoire-runtime-output/hook-runtime/serve-mutations.jsonl (QUA-08) ; les
GET restent silencieux.
Les blueprints du Studio (format v2, positionné) sont acceptés directement : le serveur en dérive la projection compilable (pins typés depuis les contrats, sous-flows aplatis) pour valider, simuler et compiler.
Pour un contrôle fin (UI custom, racine du kit), la forme longue reste
disponible : python -m grimoire.tools.forge_server --ui-dir <dir> --kit-root <dir>.