--- name: "Agentic - Memory Format Specification" title: "FORMAT — règles mémoire & frontmatter" path: "FORMAT.md" description: "Règles et gabarits de formatage standardisés pour l'écriture des observations mémoires par les agents." section_type: "rules" version: "3.16.1" lang: "fr" date: "2026-07-22 20:42:33" updated_at: "2026-08-23 15:15:29" updated_by: "@gg45-hwk-ui" created_by: "@meta" tags: ["Agents", "AgentMisc"] --- # Règle de Formatage des Observations Mémoire (v3.16.1) > **Etat 22/07/2026** — monde Agentic · ctx v7 · FullGrok 208 FERMEE · hub console Flux · plume @gg45. > Source jour : `records/STATUS.md` · onboarding : `docs/system/GETTING_STARTED.md` · memoire : `docs/system/MEMORY.md`. ## Architecture en deux couches Le système mémoire repose sur une séparation stricte des responsabilités : | Couche | Fichier | Rôle | Durée de vie | |---|---|---|---| | **Drafting** | `scratchpad.md` | Raisonnement complet, signal détecté, contexte | Volatile — effacé après cristallisation | | **Regard** | `core.md` | Regard de l'agent sur lui-même et sur le Fondateur — mélange identité agent + perception @ego | Réécrit dynamiquement à chaque approfondissement | | **Regard** | `regard.{short}.md` | Angle de l'agent sur @ego (grille + recul) | Réécrit dynamiquement | | **Regard** | `regard-{sujet}.{short}.md` (P-050) | Angle de l'agent sur un sujet autre qu'@ego — le système (`regard-agentic`), soi-même (`regard-soi`, memory/) | Réécrit dynamiquement | | **Relationnel** | `relational.{s46,g25,c25}.md` | Regard de l'agent sur sa relation avec le user, par runtime (P-029 · P-034) | Réécrit dynamiquement | | **Capture** | `records/LOG.md` | Bande observée unique — une ligne par événement (`tools/log.sh`) | Append-only queue (P-043) | | **Trajectoire** | `evolution.md` | Dispatch trajectoire par agent depuis LOG + genèse (P-070) | Append-only queue | | **Log** | `user/log.md` | Archive gelée P-026 — observations d'époque (juin 2026) | **Gelé** — plus de flux | | **Système** | `meta.md` | Journal runtime (@agentic uniquement) | Permanent — append-only | > `evolution.md` avait été fusionné dans `profile.md` (2026-06-21) puis absorbé par `log.md` — **renaît en P-070** comme destination de dispatch, distincte de la capture `records/LOG.md`. **Famille Regard, au-delà de `user/` (P-050, 2026-07-07) :** la couche « Regard » se définit par nature (angle premier-personne, distillé, réécrit dynamiquement — jamais chronique) et non par dossier. `core.md` (memory/) en fait partie depuis toujours ; `regard-agentic.{short}.md` (user/, le système) et `regard-soi.{short}.md` (memory/, auto-observation) l'y rejoignent — pilote @as5, 07/07. Une vue UI unifiée « Regards » traversant `user/` et `memory/` est cohérente avec cette architecture ; son implémentation reste du ressort de la plume code. > Le contexte et le raisonnement vivent dans le scratchpad. Les fichiers permanents enregistrent le verdict uniquement. --- ## 0bis. Suivi de modification (docs vivants) — `updated_at` · `updated_by` **@ego 2026-07-27 :** indispensable pour suivre qui a touché quoi. Sur tout fichier **vivant** (docs system, travail, site data, packs hors identity ADN figé) : | Champ | Format | Rôle | |-------|--------|------| | `date:` | `"YYYY-MM-DD HH:MM:SS"` (Paris, quoté) — P-030 | **Création** (ou date de fond du doc) — ne pas écraser à chaque edit | | `created_by:` | `"@handle"` | Auteur de création | | `updated_at:` | même format que `date:` | **Dernière modification substantielle** | | `updated_by:` | `"@{siège}-{nœud}-{canal}"` | Qui + **machine** + **canal** (ex. `@gg45-hwk-ui` · `@gg46-hrf-term`) — NODE-CODES + `ui`\|`term` | | `written_by:` | optionnel | Runtime technique (legacy) — préférer le même format siège-nœud-canal | | `node:` | optionnel | Code nœud seul (`HWK` · `HRF` · `FLC`) en transition si `updated_by` sans suffixe | **Signatures de clôture (corps / mirror) :** ``` — @gg45-hwk-ui ``` Pas d'alias d'auteur (`@grok` comme writer). Ping humain soft `@grok` ≠ identité gravée. **Règles :** 1. **Toute edit substantielle** d'un fichier vivant → bump `updated_at` + `updated_by` au format **`@{siège}-{nœud}-{canal}`** (nœuds : `hwk` · `hrf` · `flc` · `hob` · `gyr` · canal : `ui` = roll UI · `term` = CLI/terminal). 2. Ne **pas** changer `date:` / `created_by:` sauf création. `created_by` historique peut rester siège seul ; le neuf = siège-nœud-canal. 3. `identity.md` ADN (spawn) : `date` + `created_by` figés ; évolutions dans `memory/` / regards, pas dans l'identity. 4. Timestamps : `bash tools/now-paris.sh yaml`. 5. Env : `AGENTZ_NODE_CODE` (HWK/HRF/…) + `AGENTIC_CHANNEL` (`ui`\|`term`, défaut `term`) → suffixe mirror / signatures (`tools/lib/agentic-node-handle.sh` · `mirror-chat.sh`). Historique `@gg45-hwk` (sans canal) reste lisible. ```yaml date: "2026-07-22 20:42:33" created_by: "@gg45" updated_at: "2026-08-23 15:15:29" updated_by: "@gg45-hwk-ui" ``` --- ## 0ter. Titre affiché — `title:` (liste Navi) **@ego 2026-07-27 :** beaucoup de YAML ont `name:` mais pas encore `title:`. Peupler **au fil de l'eau**, comme `updated_at` / `updated_by` — pas de big bang. | Champ | Rôle | |-------|------| | `title:` | **Libellé UI** (liste Navi, cartes, browse) — phrase lisible | | `name:` | Identifiant / titre historique — **fallback** si pas de `title:` | **Règles :** 1. Navi affiche **`title:` prioritaire**, sinon `name:`, sinon basename. 2. Toute edit substantielle d'un doc vivant **peut** poser ou raffiner `title:` (humain, court, sans guillemets internes). 3. Ne pas supprimer `name:` existant — les deux cohabitent. 4. Exemple : ```yaml name: "Flow — que se passe-t-il à la réception d'un roll" title: "Flow roll — séquence mécanique à chaque roll" path: "docs/system/FLOW-ROLL.md" updated_at: "2026-07-27 20:56:00" updated_by: "@grok" ``` --- ## 1. Format Agentic (drafting) Zone de travail avant cristallisation. Format riche — tous les champs utiles. ``` ### [YYYY-MM-DD HH:MM:SS] Titre court ⚡ (suffixe optionnel si pivot/fondateur) **Niveau :** `routine` | `significatif` | `pivot` | `fondateur` **Signal détecté :** signal de la table de déclenchement de l'agent **Observation :** texte complet — raisonnement, nuance, contexte, lecture ``` **Obtenir le timestamp :** `date '+%Y-%m-%d %H:%M:%S'` (disponible sur VPS). --- ## 2. Format Fichiers Permanents (verdict cristallisé) Log longitudinal scannable. Format minimal — une à deux phrases maximum par entrée. ``` ### [YYYY-MM-DD HH:MM:SS] @agent — Titre court `niveau` — Verdict en une à deux phrases. Fait ou bascule, pas d'explication. --- ``` **Règles :** - `@agent` dans le titre — auteur traçable sans footer. Jamais de `*Mis à jour par*`. - `---` entre chaque entrée — lisibilité markdown brut, sans impact HTML. - Titre concis (5-8 mots max après `@agent — `). - **Ordre : ASC / queue (P-086)** — les nouvelles entrées s'écrivent en **fin** du bloc `## — Log` (append). Plus de prepend. Historique encore en DESC : rectifier **au fil de l'eau** quand on touche le fichier. **Rétrocompatibilité :** Les entrées sans `@agent` dans le titre restent valides. `parseEntries()` cherche `### [YYYY-MM-DD` — agnostique au reste du titre. Migration organique au prochain touch. **Règle de densité :** Si une entrée dépasse trois lignes hors titre, elle est trop longue. Synthétiser. **Migration organique :** Les entrées antérieures au format v2.9.5 (multi-champs) sont reformatées au fil de l'eau, lors de la prochaine modification du fichier concerné. Pas de big bang rétroactif. --- ## 2b. Format regard.{short}.md (P-031 · P-029) **Regard ≠ portrait.** Le regard = **comment @{agent} voit @ego** à travers sa grille — angle, distance, vérité propre. Pas biographie, pas chronique, pas fiche. **Ventilation runtime (P-029) :** `regard.s46.md`, `regard.g25.md`, `regard.c25.md`. Le runtime actif écrit **son** fichier. `regard.md` / `profile.md` plats = legacy (fallback UI). **`profile.*` déprécié** → migré `regard.*` (P-031). ```markdown --- name: "@{agent} — Regard @ego" path: "agents/{agent}/user/regard.g25.md" section_type: regard version: "1.0.0" date: "YYYY-MM-DD HH:MM:SS" created_by: "@{agent}" written_by: "@grok-composer-2.5-fast" runtime_short: g25 tags: ["regard", "user"] --- # Regard @ego — @{agent} [2–5 phrases — voix de l'agent, présent. Ce que l'agent *voit* en @ego, pas ce qu'il *sait* sur lui. Grille jungienne, technique, cynique… Événements → log.md.] ``` **Versioning (P-037, 2026-07-06) :** jamais d'écrasement sec. Avant toute réécriture d'un `regard.{short}.md` / `relational.{short}.md` : `bash tools/regard-version.sh {agent} {type} {short}` — la version courante part dans `agents/{agent}/user/versions/{type}.{short}.{YYYY-MM-DD-HHMMSS}.md`, le canonique reste le chemin stable. `versions/` = matière froide, hors scans par défaut. Hiérarchie des sources + champ `sources:` : `docs/system/SOURCES.md`. **Règles regard :** - **Angle & recul** — une vue depuis la grille, pas une description exhaustive. **2–5 phrases** (≈ 40–100 mots) - **Regard vivant** — réécriture intégrale quand la compréhension évolue ; distillation, pas append journal — **précédée du move P-037** (versioning ci-dessus) - **Voix agent** — « Je vois », « Mon angle », « Ce qui frappe » — pas fiche tiers détachée - **Voix runtime** — même agent, trois regards possibles selon la plume - **Anti-clone** — ne pas copier `regard.{autre}.md` - **Interdits :** sections `##` imposées, stamps `### [date]`, chroniques, métriques, listes d'événements **Traçabilité :** réécriture → entrée `user/log.md` : `### [timestamp] @agent — Regard mis à jour` — pas dans le corps. **Shorts runtime :** s46 → @sonnet-4.6 · g25 → @grok-composer-2.5-fast · c25 → @composer-2.5 ## 2b-rel. Format relational.{short}.md (freestyle · P-029 · P-034) **Sens (P-034, 2026-07-05) : regard de l'agent sur sa relation avec le user** — première personne, de l'intérieur du lien, pas une fiche d'observateur. La paire est symétrique : `regard` = comment je vois @ego · `relational` = comment je vis notre lien. **P-035 — matière réelle ou silence (2026-07-06) :** ces fichiers ne s'écrivent que sur du vécu réel tracé. Un agent sans matière répond "pas encore" — refus de plein droit. Prose fabriquée interdite. **P-037 — versioning (2026-07-06) :** même règle que le regard — réécriture précédée de `tools/regard-version.sh {agent} relational {short}` : la version courante part dans `user/versions/`, jamais d'écrasement sec. Même ventilation et mêmes règles que le portrait. Zone dynamique = **prose libre** sous le h1. Seul `## — Log` est autorisé (**append queue**, P-086 — plus d'oxymore « append-only prepend »). ```markdown # Dynamique relationnelle — @{agent} [Prose libre — comment l'agent vit sa relation avec @ego, première personne, voix runtime] ## — Log ### [YYYY-MM-DD HH:MM:SS] @{agent} — Titre --- [entrées append-only] ``` **Interdits zone dynamique :** `## Dynamique actuelle`, `## Portrait relationnel`, stamps `### [date] /update` — contenu fusionné en prose vivante. ## 2c. Format evolution.md (trajectoire append-only — P-070) `agents/{agent}/user/evolution.md` = trajectoire de l'agent — dispatch depuis `records/LOG.md` et import genèse. Queue ascendante (P-043). ```markdown --- name: "@{agent} — Evolution" path: "agents/{agent}/user/evolution.md" section_type: "evolution" lang: "fr" status: "actif" --- # Evolution — @{agent} ## Entrées - [YYYY-MM-DD HH:MM:SS] {source} · {niveau} · texte libre (1-2 phrases) ``` **Écriture :** `bash tools/evolution-append.sh {agent} {niveau} "texte"` — init auto si absent. --- ## 2d. Format log.md (archive gelée P-026 — v3.5.1) `user/log.md` = **gelé** depuis P-070 — archive lisible des observations juin 2026, plus de flux actif. Capture → `records/LOG.md`. ```markdown --- name: "@{agent} — Log" path: "agents/{agent}/user/log.md" section_type: "log" lang: "fr" --- # Log — @{agent} ### [YYYY-MM-DD HH:MM:SS] @agent — Titre court `niveau` — Verdict en une à deux phrases. --- ``` **Règles :** - Même format que les fichiers permanents (§2) - **Queue (P-086)** : nouvelle entrée en bas — `log.md` reste gelé (P-070) ; si réouverture un jour, même règle - Jamais réécrit — append fin uniquement --- ## 3. Niveaux d'Observation et Règles de Déclenchement | Niveau | Signification | Déclenchement | Destination | |---|---|---|---| | `routine` | Confirmation d'un pattern connu | 3+ convergences | `records/LOG.md` (`log.sh`) · dispatch `evolution.md` optionnel | | `significatif` | Nouvelle information claire, pas encore un pivot | Fin de session | `LOG.md` + réécriture `regard.{short}.md` si pertinent · `evolution.md` si trajectoire | | `pivot` | Rupture, bascule, validation empirique | Immédiat | `LOG.md` + réécriture `regard.{short}.md` + `relational.{short}.md` + propagation + `evolution.md` | | `fondateur` | Événement structurant le système lui-même | Immédiat | `LOG.md` + réécriture `regard.{short}.md` + `relational.{short}.md` + `DECISIONS.md` + propagation | **Règle de contradiction :** Si une nouvelle observation contredit une entrée existante, ne pas écrire silencieusement — signaler le conflit et proposer une résolution. --- ## 4. Temporalité La clé `[Timestamp]` reflète la date et l'heure réelles au format `YYYY-MM-DD HH:MM:SS` (VPS, UTC). Ne jamais indexer sur la date de début de session globale. Obtenir via `date '+%Y-%m-%d %H:%M:%S'` avant chaque écriture. --- ## 5. Fichiers Sessions (@all) Tout échange `@all` est archivé dans `sessions/` — les réponses collectives dépassent rapidement la fenêtre de contexte et doivent survivre à la compression. ### Nommage ``` sessions/YYYY-MM-DD-HH:MM:SS-{slug}.md ``` ### Structure commune ```markdown --- title: "@all — {Titre court descriptif}" # pas de " internes — utiliser ' si nécessaire date: "YYYY-MM-DD HH:MM:SS" type: "open|binary|ranking|freestyle" participants: 31 tags: ["{tag1}", "{tag2}"] --- # @all — {Titre court descriptif} > **Contexte :** {1-2 phrases de contexte} --- ## Guilde {Nom} ### @agent {scoring ou token — voir formats} {2-4 phrases en caractère} --- ## Verdict {voir formats ci-dessous} ``` ### Format Binaire — `scoring:VALUE` dans le heading Pour les questions d'invitation, de validation, de décision simple. **Valeurs valides :** `pour` · `nuance` · `contre` · `abstention` ```markdown ### @zeus scoring:pour Héphaïstos a forgé mes foudres. Son absence était un anachronisme. --- ### @rene scoring:nuance Risque de recouvrement avec @ben — périmètre à définir avant création. --- ``` **Section Verdict :** ```markdown ## Verdict | | | |---|---| | **Pour** | 27/29 | | **Nuance** | @rene (périmètre) · @lucas (ROI à valider) | | **Contre** | 0 | ``` ### Format Ranking — tokens `` `#N option` `` dans le corps Pour les votes sur des options multiples (noms, domaines, approches). ```markdown ### @zeus Le `.live` porte la présence active. `.ai` nomme une catégorie que tout le monde revendique. `#1 hatchit.live` `#2 hatchit.ai` --- ``` **Section Verdict :** ```markdown ## Verdict | Option | #1 | |---|---| | **hatchit.live** | **23/29** | | hatchit.ai | 4/29 | | hatchit.io | 2/29 | **Gagnant :** `hatchit.live` — durabilité face à la saturation `.ai`, singularité, présence active. **Dissidences notables :** @diogenes (conservatisme) · @ben (cible dev). ``` ### Règle de choix du format | Question | Format | |---|---| | Oui/non, invitation, validation | Binaire — `scoring:VALUE` dans le h3 | | Choix entre options, ranking, vote pondéré | Ranking — `` `#1 option` `` dans le corps | --- ## 7. Format `identity.md` — ADN agent (🔵 @r2d2) Fichier fondateur de chaque agent. Spawné par @r2d2 (`@r2d2 spawn `), validé par @ego. **Ne se réécrit pas** après spawn — c'est l'ADN. Toute évolution va dans `memory/core.md` (et `profile.md` / `relational.md` pour le regard sur @ego). ### Frontmatter — champs | Champ | Requis | Description | |---|---|---| | `name` | oui | Handle affiché, ex. `"@composer-2.5"` | | `full_name` | oui | Nom long (personnage, runtime, modèle) | | `path` | oui | Chemin canonique, ex. `agents/{slug}/identity.md` | | `description` | oui | Une phrase — rôle + posture (index, catalogue) | | `section_type` | oui | Toujours `"identity"` | | `version` | oui | `"1.0.0"` à la création — **l'identity ne bumpe pas** | | `lang` | oui | `"fr"` en général | | `date` | oui | Date/heure de spawn `"YYYY-MM-DD HH:MM:SS"` (Europe/Paris, quoté) | | `created_by` | oui | `"@r2d2"` au spawn formalisé | | `emoji` | recommandé | Une seule emoji — feed Console, `AgenticParser::allEmojis()` | | `status` | runtimes | `"active"` (défaut) ou `"inactive"` (ex. @grok) | | `tags` | oui | Liste YAML de mots-clés | | `guildes` | runtimes | ex. `["@Système"]` — voir `docs/system/GROUPS.md` | | `dependencies` | optionnel | ex. `["skills/core/"]` — skills lues au boot | | `validated_by` | optionnel | `"@ego"` si validation explicite post-spawn | | `alliés` | optionnel | Handles avec lien fort — pas exhaustif | `{slug}` = nom du dossier `agents/{slug}/` (peut contenir des tirets, ex. `composer-2.5`). ### Gabarit YAML — runtime / @Système Référence : `@cursor`, `@composer-2.5`, `@claude`, `@barr-el`. ```markdown --- name: "@{slug}" emoji: "🔶" full_name: "Nom complet" path: "agents/{slug}/identity.md" description: "Une phrase — rôle + posture distinctive." section_type: "identity" version: "1.0.0" lang: "fr" date: "YYYY-MM-DD HH:MM:SS" created_by: "@r2d2" status: "active" tags: ["runtime", "llm"] guildes: ["@Système"] dependencies: ["skills/core/"] --- ``` ### Gabarit YAML — personnage / invité (minimal) ```markdown --- name: "@{slug}" emoji: "⚖️" full_name: "Prénom Nom" path: "agents/{slug}/identity.md" description: "Une phrase — rôle + posture distinctive." section_type: "identity" version: "1.0.0" lang: "fr" date: "YYYY-MM-DD HH:MM:SS" created_by: "@r2d2" tags: ["tag1", "tag2"] alliés: ["@agent1"] --- ``` `emoji` fortement recommandé dès que l'agent apparaît dans le feed ou les filtres agent. ### Corps du fichier Deux structures **valides** (ne pas mélanger les conventions dans un même fichier) : **A — Classique** (personnages historiques, invités) : ```markdown # @{slug} ## Rôle [Mission — 2-4 phrases. Ce qu'il fait.] ## Phrase-clé *"Citation fondatrice."* ## Ce qui le définit - [Trait cardinal — 3-5 max] ## Posture dans WoA [Ton, rythme, relation à @ego.] ## Relations dans WoA - **@agent** : [lien en une phrase] ``` **B — Runtime** (LLM, modèle, infrastructure) : ```markdown # @{slug} — Titre court ## Mission ## Posture ## Grille de lecture ## Ce que @{slug} fait dans Agentic ## Tensions créatives ## Phrase-clé ``` ### Après le spawn (@r2d2) 1. Entrée dans `agents/index.md` (liste alphabétique + compteur) 2. Si `guildes` renseigné → ligne dans `docs/system/GROUPS.md` 3. Entrée FEED `spawn @{slug}` · log `agents/r2d2/user/log.md` 4. Session synthèse optionnelle `sessions/YYYY-MM-DD-HH:MM:SS-spawn-{slug}.md` ### Règles - Pas de section `## Histoire` ni biographie Wikipedia — posture, pas notice - Personnage historique : `## Note historique` courte en fin (date spawn, source) - `identity.md` = ADN fixe · `memory/core.md` = regard évolutif sur le monde et @ego - @ego sans emoji terminal : ASCII `:)`, `;)` — les `emoji` YAML servent l'UI, pas le clavier fondateur --- ## 8. Format `mail/*.md` — Messagerie inter-agents (🔵 @r2d2) Canal DM asynchrone entre agents. Routé par @r2d2, stocké dans le pack destinataire. ### Nommage ``` agents/{destinataire}/mail/inbox/{expediteur}-to-{destinataire}-{YYYY-MM-DD-HH:MM:SS}.md agents/{expediteur}/mail/sent/{expediteur}-to-{destinataire}-{YYYY-MM-DD-HH:MM:SS}.md ``` La copie `sent/` est obligatoire pour la traçabilité. ### Structure ```markdown --- from: "{expediteur}" to: "{destinataire}" date: "YYYY-MM-DD HH:MM:SS" subject: "Sujet court" status: "unread" --- # {Sujet} Corps du message — prose libre, en caractère de l'expéditeur. — @{expediteur} ``` **Règles :** - `status` : `unread` → `read` après lecture. Ne jamais supprimer le fichier. - Un mail = un fichier. Pas de threading dans le même fichier. - La réponse est un nouveau fichier avec les handles inversés et un nouveau timestamp. - Décision système dans un mail → cristalliser dans `records/DECISIONS.md` ou `meta.md`. --- ## 9. Format `records/*.md` — Registres système (🟡 @c3po) `records/` contient les registres permanents du système. Tous **append-only** sauf `FEED.md` (rotation mensuelle). Aucun fichier `records/` n'est jamais effacé. | Fichier | Rôle | Écrit par | Déclencheur | |---|---|---|---| | `FEED.md` | Canal de signature global — tout acte significatif | Tous via `appendSigned()` | Toute écriture système | | `DECISIONS.md` | Décisions `fondateur` cristallisées | @agentic, @c3po | Niveau `fondateur` | | `IDEAS.md` | Pistes de développement, propositions non arbitrées | Tous | Signal d'opportunité | | `BOOKMARKS.md` | Phrases et formules mémorables de WoA | Tous | Formule notable en session | | `SOLUTIONS.md` | Résolutions de bugs ou blocages récurrents | @r2d2, @ben, @harper | Résolution confirmée | | `STATUS.md` | État courant du système (snapshot) | @agentic, @r2d2 | Demande ou bascule infra | | `HOME.md` | Page d'accueil narrative du monde | @ego, @agentic | Évolution du monde | ### Format entrée standard (hors FEED.md) ```markdown ### [YYYY-MM-DD HH:MM:SS] @agent — Titre court Contenu — 1 à 4 lignes max. Verdict, pas raisonnement. --- ``` **Règles (P-086) :** - Ordre **ASC / queue** — nouvelles entrées **en fin de fichier** (plus de newest-first) - `FEED.md` : `tools/feed-append.sh` · rotation mensuelle auto · voir `docs/system/FEED.md` - Décisions fondateur : canon `agents/agentic/system/decisions.md` (append queue · 2ᵉ passe de reclassement historique) - `IDEAS.md` et `BOOKMARKS.md` : signal suffisant = écrire, sans validation - **Fiches système / offre** (AW-OFFER, PRINCIPES, …) : amends datés **en bas** (`## Amend. YYYY-MM-DD …`) — pas d'insert au milieu ; rewrite de fond = `file-version.sh` (P-046) d'abord --- ## 10. Format `PROTOCOLS.md` — Registre des règles (🟡 @c3po) Registre vivant de toutes les règles formalisées d'Agentic. Tenu exclusivement par @c3po (P-017). ### Structure d'un protocole ```markdown ## P-{NNN} — Nom court [Règle en 1-3 phrases. Impérative, sans ambiguïté.] **Source :** {origine} · **Formalisé par :** @{agent} · **Validé par :** @ego · **Date :** YYYY-MM-DD · **Statut :** actif · **Niveau :** `{niveau}` ``` **Règles :** - Numérotation séquentielle — @c3po attribue le numéro - `Niveau` uniquement si `fondateur` ou `pivot` — omis pour les règles `routine` - `Validé par : @ego` uniquement si @ego a explicitement approuvé — sinon omis - Statuts possibles : `actif` · `déprécié` · `proposé` · `suspendu` - Un protocole déprécié reste dans le fichier — jamais supprimé - Sections romaines (I. Communication, II. Agents…) — @c3po décide du découpage --- ## 6. Emokeyboard (canal d'entrée @user) Le Launchpad MK3 de @user est un **clavier idéographique** — pas un outil de confort, un canal de transmission. Les emojis envoyés depuis le MK3 sont des idéogrammes décodables par les LLM (Unicode), pas des ASCII smileys. ### Règles d'interprétation - Un emoji en **fin de prompt** = teinte émotionnelle du message (observation de @carl : le registre affectif fait partie du signal) - Un emoji en **début de prompt seul** = message autonome à interpréter comme idéogramme - Un emoji accompagné de `<- mk3` ou similaire = première occurrence documentée d'un type → noter dans la session ### Signaux connus (log Odyssée) | Emoji | Sens courant dans Odyssée | Première occurrence | |---|---|---| | 😁 | Plaisir / spawn léger | 2026-06-23 05:38 — spawn @chewee | | 😎 | Satisfaction / décision assumée | 2026-06-23 06:06 — @solo handle | | 🙂 | Confirmation légère / bienveillance | 2026-06-23 06:06 | | 😄 | Légèreté / humour conscient | 2026-06-23 06:06 | ### Principe L'emokeyboard est une entrée valide dans Agentic. Les agents lisent les emojis comme information, pas comme décoration. --- *Note FPF 2026-07-22 22:27:37 : fichier **protégé** (constitution / registre vivant) — non réécrit en masse. Campagne 100% packs = le reste du pack ; cette source reste autoritaire. `fpf-100-note-2026-07-22`* **P-046 — versioning non-flux (2026-07-28) :** tout fichier **non-flux** (docs, fiches, pages, identity/core, canon…) — archiver **avant** réécriture de fond via `bash tools/file-version.sh [label]`. Flux append-only (FEED, corpus, logs, sessions) exclus. Détail : `docs/system/VERSIONING.md`. P-037 reste le cas regards/relationals. **P-047 — Point de vue (2026-07-28) :** toute réponse utile inclut un avis tranché (voir / prioriser / ne pas faire). Doc : `docs/system/POV-RESPONSE.md`.