Formalisation & confidentialité — écrire propre dès l'origine¶
Contexte¶
Le second cerveau Bricks distingue un tronc commun partagé (poussé sur le remote — un repo privé team-internal, qui héberge le contenu internal) d'une couche locale/privée (jamais synchronisée, pour le restricted et le perso). Le risque : qu'un contenu sensible (nom + jugement, chiffre business, incident de prod, stratégie, donnée client) se retrouve écrit dans un fichier destiné au partage, et parte sur le remote.
Historiquement la protection était une denylist (.gitignore qui liste ce qui ne doit pas sortir) + une vérification tardive au moment du /sync. Ces deux mécanismes dérivent : on oublie d'alimenter la denylist, et la revue manuelle au sync est coûteuse et faillible. Épisode déclencheur (2026-06-11) : au moment de partager le Brain à des collègues, 6 fichiers récents internal non listés dans le .gitignore seraient partis sur le remote, dont un jugement nominatif sur une personne.
Principe : décaler la vérification à l'écriture (shift-left)¶
On ne vérifie pas la sensibilité à la sortie, on écrit propre à l'entrée. Si on n'écrit rien de sensible dans un fichier partagé, on n'a rien à filtrer plus tard — et on s'expose moins par construction.
Trois étages complémentaires (du plus structurel au plus visible) :
| Étage | Quoi | Pourquoi |
|---|---|---|
Lentille (règle alwaysApply) |
L'IA classe la sensibilité à chaque écriture dans le wiki | Automatique, pas dépendant de la mémoire |
| Greffe ingest | La discipline est dans le flux d'ingest / création de page | Le point où le contenu entre dans le tronc commun |
| Garde-fou mécanique | Le pre-commit bloque tout fichier suivi confidentiality: restricted ; le lint mensuel flague les risques |
La « vraie vérification » qui ne peut pas dériver |
Le test de sensibilité (5 déclencheurs)¶
Un contenu est sensible → couche locale s'il porte l'un de ces éléments :
- Nom + jugement sur une personne (performance, compétence, fiabilité, « point de vigilance »). → RH / préjudice.
- Chiffre business non public (métrique, CA, volume d'users, taux de conversion, pricing réel, valorisation).
- Incident / faille de production ou de sécurité (bug financier, fuite, downtime nominatif).
- Stratégie ou pari non public, donnée client / partenaire nominative, information financière.
- Tout ce qui est déjà
confidentiality: restricted.
À l'inverse, est partageable : la méthodo, le pattern généralisable, la décision abstraite de son contexte sensible, la convention d'équipe sans donnée nominative gênante.
Repère mental : « est-ce que ça décrit COMMENT on travaille (partageable) ou QUI/COMBIEN/QUEL incident précis (local) ? »
L'équilibre qualité : relocaliser, pas supprimer¶
La sensibilité ne doit pas appauvrir le Brain. La règle d'or est le pattern « librarian » étendu à la confidentialité :
- Relocaliser, pas supprimer : le détail sensible descend dans la couche locale/privée, avec un lien — il n'est pas perdu.
- Abstraire, pas omettre : le fichier partagé garde la substance généralisable ; on retire le spécifique gênant, pas l'enseignement.
Exemple (tiré de l'épisode déclencheur) :
Brut (local) : « [Prénom] reprend un sujet critique (N3) — profil encore junior sur ce périmètre, point de vigilance, kill criteria 1-2 mois. »
Partagé (abstrait) : « Passation d'un sujet N3 vers un profil en montée en compétence — point de vigilance suivi en local. »
La décision et le pattern survivent ; le jugement nominatif non. La qualité est préservée au niveau du système (rien n'est perdu, tout reste sourcé), seul l'étage partagé est assaini.
Décision de placement¶
Au moment de formaliser un contenu, trancher où il vit :
| Nature du contenu | Où | Mécanique |
|---|---|---|
| Sensible (un des 5 déclencheurs), mais utile au Brain | Concept / page locale (confidentiality: restricted ou internal sensible) |
Ajouter le chemin au .gitignore dans le même geste (la denylist ne dérive que si on l'oublie) |
| Sensible et purement personnel | private/<handle>/ |
Gitignored par construction |
| Généralisable / méthodo / décision abstraite | Fichier partagé (tracké) | confidentiality: public ou internal non sensible |
| Mixte (substance partageable + détail sensible) | Les deux : abstraction dans le partagé + détail en local, reliés par un lien | — |
Passer de denylist à classification : à terme, c'est le frontmatter confidentiality qui pilote le partage, pas une liste de chemins maintenue à la main. Le restricted ne doit jamais être tracké (le pre-commit le bloque).
Marqueurs à insérer (ne pas trancher silencieusement)¶
[sensible → local]— contenu détecté sensible à relocaliser hors du partagé.[à abstraire]— substance partageable noyée dans du spécifique gênant, à reformuler.[classification incertaine]— doute sur la classe de confidentialité → demander avant d'écrire dans le partagé.
Anti-patterns — réagir explicitement¶
| Signal | Réaction |
|---|---|
| Nom propre + appréciation de perf dans un fichier tracké | [sensible → local] : relocaliser, abstraire le pattern |
| Chiffre business (users, CA, conversion) dans un concept partagé | [sensible → local] ou agréger / retirer le chiffre |
| Incident de prod détaillé dans une page partagée | Garder le pattern (« incident de double-paiement »), retirer les détails exploitables |
Création d'un concept sensible sans toucher au .gitignore |
Ajouter le chemin à la denylist dans le même commit |
Fichier tracké marqué confidentiality: restricted |
Erreur structurelle : un restricted ne se tracke pas (le hook bloque) |
| « On filtrera au sync » | Non — on écrit propre à l'entrée, le sync n'est pas un filet de confidentialité |
Articulation avec le reste du schema¶
- Librarian / citations : cette lentille en est l'extension confidentialité — pointer vers la source locale plutôt que recopier le sensible dans le partagé.
- Espaces privés (private-space) : la couche locale de dernier recours ; rien n'en sort sans graduation explicite.
- Réunion & cadrage (reflexes-reunion-cadrage) : « c'est quoi la preuve » et « on n'invente pas » se prolongent en « est-ce que ça doit être partagé ».
- Confidentialité AGENTS.md :
public | internal | restrictedreste la classification de référence ; cette lentille la rend opérante à l'écriture.
Sources¶
- Épisode déclencheur 2026-06-11 — revue de confidentialité au moment de partager le Brain à des collègues dev (6 fichiers
internalnon couverts par le.gitignore, dont un jugement nominatif). - .cursor/rules/formalisation-confidentialite.mdc — comportement IA (lentille
alwaysApply). - docs/private-space.md — couche locale / privée.
- AGENTS.md § Lentille formalisation & confidentialité.