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.
#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.
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é.
| Brique | Fichier / lieu | Ce qu'elle fait déjà | Ce qui lui manque |
|---|---|---|---|
| Boîte à idées | JahMessenger/src/bots/ideas.mjstable 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.mjsSPEC.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.
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.
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 :
PLANS, zones, configs — c'est déjà le cas et c'est très bien.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.
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.
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.
Clique pour comparer. La recommandation est en section 5.
Ajouter à la table ideas : kind, status, complexity,
time_est, batch_id. Brancher le triage dans daily.mjs.
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.
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 ».
didou.vfg.lol), dispatcher déjà là.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.
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.
#lore #lieu cours des cailloux — lieu emblématique, à mettre au milieu du village. Aujourd'hui il le garde dans sa boîte ; demain, la même phrase arrive avec sa catégorie dans le store.zone kind=plaza + entrée PLANS « Le Cours des Cailloux ».idée → plan et tu cliques « rattacher au lot village ».JahMessenger génère le prompt (ajout dans plans.mjs, dessin dans props.mjs, test). Statut plan → impl → test → deploy.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 |
|---|---|
|
|
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.
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.
vfg-system/apps, (c) une extension de Jah (le moins de travail, mais couplage). → recommandé : (a) pour le MVP, promouvable vers (b).didou.vfg.lol) ? → recommandé : page locale d'abord, onglet Citadelle ensuite.setInterval dans le service, ou un ordre Citadelle (trace gouvernée, rejouable) ? → recommandé : l'ordre Citadelle.