💡 idées · lore · refs · easter eggs — méthode & MVP

Déposer une idée « cours des cailloux » sans se battre avec l'outillage

Retour poussé sur ta question : la majorité des briques existent déjà (boîte à idées de didou, Citadelle, dispatcher, passe quotidienne). Ce rapport montre ce qui est déjà là, répond à la question SSOT, garde la vision lointaine en tête — puis se concentre sur la méthode la plus rapide et la plus simple pour stocker et retrouver une idée dès ce soir.

VFG · retour d'analyse 2026-10-03 mesuré sur JahMessenger, VFG_Citadelle, vfg-dispatcher
Verdict en une phrase : tu n'as pas besoin d'un nouveau système. La capture existe déjà (#idee à didou + pont Telegram), l'autorité existe déjà (didou.vfg.lol = la Citadelle), l'exécutant existe déjà (le dispatcher). Il manque une catégorie, un statut, et une surface de triage à 1 clic. C'est tout — et c'est faisable en une soirée.
3
pièces manquantes seulement
(catégorie · statut · triage)
1 j
pour le MVP « cours des cailloux »
capture → retrouvable → jugée
0
nouveau service à héberger
(dans la version la plus simple)
6
statuts prévus
idée → plan → impl → test → deploy (+ écartée)

1 — Ce qui existe déjà (mesuré aujourd'hui, pas déduit)

Chaque ligne a été lue dans un fichier réel le 2026-10-03. C'est le socle sur lequel on relie, plutôt que de construire à côté.

BriqueFichier / lieuCe qu'elle fait déjàCe qui lui manque
Boîte à idées JahMessenger/src/bots/ideas.mjs
table ideas (migrations/0004, 0015)
Tu écris #idee/#quete/#question/#bettermsn à didou → la ligne entre en base. Plafond 10/jour/personne. L'admin liste tout avec l'auteur. Aucun kind (lore/ref/easter-egg), aucun status : l'admin ne fait que lire et supprimer (« Ranger »).
Porte générique JahMessenger/src/bots/ingress-relay.mjs POST /ingress (token) : n'importe quel projet dépose un message. Déjà utilisé par d'autres projets. Pas de champ « catégorie de contenu ».
Chemin téléphone JahMessenger/src/bridges/vfgate.mjs didou reçoit le DM Telegram et le garde. C'est déjà ton chemin téléphone. Le problème n'est pas la capture — c'est de retrouver et de faire vivre l'idée.
Cycle de vie d'ordres VFG_Citadelle/citadelle/lib/orders.mjs pending → claimed → done|cancelled, 7 ordres RTS dont 🐎 Éclaireur (lecture seule → triage idéal). Servi sur didou.vfg.lol, donc joignable au téléphone. Ses ordres visent des repos/agents, pas du contenu de jeu.
Passe journalière JahMessenger/src/ops/daily.mjs runDailyMaintenance() : un passage quotidien existe déjà (rétention + ramasse-miettes), câblé dans main.mjs/cli.mjs. Ne fait pas encore de triage d'idées.
Bras d'exécution vfg-dispatcher/bin/delegate.ps1 Délègue une tâche à claude/codex/kimi/ollama dans un worktree exclusif, modes read/write/full. Rien — c'est l'exécutant du triage.
Destination in-game JahMessenger/src/play/village/plans.mjs
SPEC.md (table zones)
Un lieu du village = une zone (kind ∈ plaza, room, garden, museum, arcade, stage, site…) + un plan + un dessin. Rien — « le cours des cailloux » a déjà une adresse : zone kind=plaza + entrée PLANS.

Autrement dit : la chaîne capture → autorité → exécution → destination est complète. Le trou est ailleurs — il est sémantique : comment une idée est classée, statufiée et triée.

2 — La question SSOT, tranchée proprement

Tu l'as bien senti : les données sont bidirectionnelles mais servent des raisons différentes. Ce n'est pas un conflit à résoudre, c'est un partage à nommer.

Le principe n'est pas « une seule BDD », c'est « un seul écrivain par domaine »

La règle que tu as déjà posée (SPEC.md §109) dit : « Jah est la source de vérité du monde social et n'écrit dans la base d'aucun autre projet. Un SSOT par domaine. » Elle ne demande pas une base — elle demande un propriétaire par type de fait. Ça colle exactement avec ta vision : plusieurs BDD, décentralisées par zone ou par nature de donnée.

Donc la bonne lecture, pour ton backlog d'idées :

Le lien entre les mondes n'est pas un accès direct à la base (ça, c'est ce qui crée les duplications), mais des événements sur le bus commun (le Signal Ledger / EVT). Une idée « gardée » devient un événement ; les consommateurs (Jah, blog, Citadelle) s'y abonnent. Personne n'écrit chez personne.

🦋 Jah monde social & jouable zones · objets · quêtes ✍ Fabrique backlog de contenu lore · refs · easter eggs ⚔ Citadelle pilotage & ordres ne stocke pas le contenu 📜 Blog / STATUS mémoire & trace canon publié 🚌 Bus d'événements (EVT / Signal Ledger) on publie · on s'abonne — jamais d'écriture croisée en base
Un seul écrivain par domaine. Les mondes se parlent par événements — c'est ce qui permet de décentraliser sans dupliquer.

3 — La vision lointaine (à garder en tête, pas à construire maintenant)

C'est ta carte mentale : jusqu'où la chaîne peut aller. On la garde affichée, on n'en implémente qu'un morceau ce soir.

💡 Idée capturée 🗺 Plan qualifiée 🧱 Implémentation lot ouvert 🧪 Test vert / rouge 🚀 Déploiement en jeu 📜 Canon article / mémoire si rouge : retour en implémentation écartée (sans suite)
Vision complète — on n'implémente ce soir que les deux premières cases (Idée → Plan) et leur triage.
idée plan implémentation test déploiement écartée

Le vrai « chaînon manquant » de la vision lointaine : la fiche de jonction

Aujourd'hui, une idée est un texte libre. Pour qu'elle devienne un plan, il faut une fiche de jonction : un petit objet qui dit « cette idée a été regroupée avec telles autres, clarifiée ainsi, estimée complexité M / ~1 jour, et rattachée à tel lot ». C'est le pivot idée → plan. La passe journalière (humaine + agentique) produit cette fiche ; toi, tu la valides à 1 clic.

4 — Quatre pistes (rappel, avec la recommandation)

Clique pour comparer. La recommandation est en section 5.

Étendre la boîte à idées de Jah le plus court

Ajouter à la table ideas : kind, status, complexity, time_est, batch_id. Brancher le triage dans daily.mjs.

  • + Capture, admin et Telegram déjà en place. Presque rien à écrire.
  • − Couplage : un lore de giga-projet vivrait dans la base sociale de Jah. Froisse ta règle « un SSOT par domaine ».

Un « Scriptorium » dédié le plus propre

Un petit service propriétaire du backlog de contenu : schéma natif (kind, statut, complexité), surface phone-first. Jah #idee et l'ingress deviennent des portes d'entrée ; la Citadelle le lit comme un projet.

  • + Domaine propre, taxonomie native, agrège Telegram + ingress + web + blog.
  • − Une surface de plus à héberger et maintenir. C'est la destination de la vision lointaine, pas le MVP.

Le pipeline dans la Citadelle le plus gouverné

Une idée = une entrée « candidat » à côté de l'OrderBook. La passe journalière = un ordre 🐎 Éclaireur (lecture seule) sur un projet « Fabrique ».

  • + Gouvernance, MCP, joignable au téléphone (didou.vfg.lol), dispatcher déjà là.
  • − Les ordres parlent de repos, pas de contenu de jeu ; il faudrait inventer le concept « candidat ».

Hybride — garder Jah pour capturer, un petit store de contenu pour garder recommandé

Le principe : Jah reste l'inbox (il ne perd pas sa boîte à idées, elle continue de servir ses rituels), et un store de contenu dédié — au niveau méta, pas dans la base sociale — devient le backlog qui porte la catégorie et le statut. La Citadelle fournit l'autorité et la surface ; le dispatcher, l'exécutant.

  • + Respecte « un SSOT par domaine » dès le départ.
  • + Ne casse rien d'existant : on ajoute une couche, on ne modifie pas les autres.
  • + Peut démarrer minuscule (un fichier JSON + une page) et grandir vers le Scriptorium (Piste 2) sans réécriture.
  • − Un petit peu plus de travail initial que la Piste 1 — mais sans dette de couplage.

5 — Le chemin le plus rapide pour « cours des cailloux »

Objectif de ce soir : que tu puisses écrire l'info depuis ton téléphone, la retrouver à 1 clic, et la faire juger par une passe quotidienne. Rien de plus. Le reste viendra.

📱 Téléphone DM Telegram à didou ou raccourci / partage 🦋 didou « #lore cours des cailloux » 🗃 Store kind=lieu status=idée 🌙 Passe du soir regroupe · clarifie jauge (M, ~1 j) 👤 Toi — 1 clic garder / écarter · passer en « plan » rattacher au lot village ≈ 60 secondes entre « j'ai une idée » et « elle est en base, classée, et attend une passe de jugement »
Le chemin minimal. Tout est déjà là sauf le store, la page de triage et la passe.

Jouons-le, pas à pas, avec ton exemple

6 — Le MVP : ce qu'on construit, ce qu'on ne construit PAS

Ta consigne : le stockage et le triage seulement. Voici le périmètre exact, en deux colonnes.

✅ On construit maintenant⛔ On ne construit pas encore
  • Un store de contenu dédié (au niveau méta), schéma minimal :
    id, kind, title, body, source, author, status, complexity, time_est, batch, created_at, updated_at
  • kind ∈ lore | ref | easter-egg | lieu | meca | fix | autre
  • status ∈ idée | plan | impl | test | deploy | écartée (prévu dès le départ, même si tu n'en utilises que deux)
  • Une page phone-first à 1 clic : liste filtrable par kind/status, bouton de changement de statut, bouton « écarter »
  • Le branchement des portes : #idee (Jah) et POST /ingress écrivent dans le store
  • La passe journalière : un ordre Citadelle éclaireur qui produit la fiche de jonction (regroupé, clarifié, complexity, time_est, lot proposé), en review=pending
  • Le pont automatique statut → lot → déploiement (tu l'as dit : plus tard).
  • Un service web hébergé séparé — on démarre sur un fichier + une page locale.
  • L'édition in-game des lieux (le lot Jah qui pose la zone reste une décision manuelle).
  • Une nouvelle taxonomie figée à 30 valeurs — on commence à 7 kind.
  • L'authentification multi-utilisateur — toi seul, un jeton suffit.

Ce que tu obtiens dès le MVP

7 — Deux pièges à éviter (tirés de tes propres règles)

Piège 1 — Ne pas mettre le backlog de contenu dans la base sociale de Jah

SPEC.md §109 interdit qu'un domaine écrive chez l'autre. Jah = inbox, le store = backlog. Si tu fusionnes, tu récupères exactement la dette que tu cherches à éviter.

Piège 2 — Le triage doit rester en lecture seule

Utilise le mode read du dispatcher (l'ordre 🐎 Éclaireur, le --permission-mode plan de claude, le --sandbox read-only de codex). Le jugement se fait sur la mesure, jamais en écrivant dans les repos. L'écriture (poser la zone, ouvrir le lot) est une décision à toi, pas à la passe.

8 — Décisions à trancher (toi)