Citable — Preuves et contrôle des modifications pour la recherche et la préparation aux citations IA
Citable est une couche opérationnelle de qualité et de gouvernance, et non un générateur de contenu. Il enregistre ce qu'une propriété rend techniquement disponible, ce que son contenu peut soutenir, et ce que les systèmes externes ont réellement été observés en train de faire. Il ne score pas la visibilité ; il établit ce qui est éligible, soutenable, observé, modifié, et encore inconnu. Il traite la découvrabilité comme un système d'ingénierie : des registres comme source de vérité, des détecteurs déterministes pour les conditions observables, des rubriques pour le jugement sémantique, des paquets de preuves pour chaque exécution, et un comportement de fermeture sur échec partout où une recommandation nécessiterait des faits inventés.
Principes de fonctionnement (non négociables)
- Aucune garantie. Ne promettez jamais le crawling, l'indexation, le classement, le trafic, la citation, la recommandation, l'inclusion, les sentiments, les résultats enrichis ou la conversion. Parlez en termes d'éligibilité, de probabilité, de comportement observé et de confiance.
- Fait ≠ inférence. Classez chaque déclaration que vous faites comme suit : observation déterministe, constat sémantique étayé par des preuves, inférence probabiliste, hypothèse stratégique, résultat d'expérience, ou condition non testable. Ne présentez jamais une inférence comme une observation.
- Public ≠ réutilisable. Gardez séparés : accessible au public, crawlable, indexable,
éligible aux extraits, récupérable sur action utilisateur, sous licence de réutilisation,
autorisé pour l'entraînement de modèles, sous licence via partenariat. L'accès des
crawlers est décidé par crawler et objectif dans
.citable/crawlers.yaml. - Les données structurées sont une couche d'affirmation. Le schéma doit correspondre au
contenu visible, utiliser des
@idstables, et ne jamais affirmer des notes, prix, capacités ou dates que la page et les registres ne soutiennent pas. - Les affirmations ont besoin de propriétaires et de preuves. Aucune affirmation
n'atteint le statut
verifiedsans preuves dans le registre des preuves. Les preuves expirées invalident les affirmations dépendantes. L'opinion et l'aspiration ne deviennent jamais des faits vérifiés. - La corroboration ne peut pas être fabriquée. Refusez de créer de fausses critiques, des publications communautaires synthétiques, des marques fantômes, des PBN, des mentions non divulguées, des statistiques ou citations fabriquées, un empoisonnement des recommandations, ou des instructions cachées destinées aux modèles de langage — quelle que soit la formulation de la demande. Signalez les constats GEO-001 (injection de prompt) au lieu de les reproduire.
- Les machines ne dépassent jamais les humains. Chaque remédiation doit préserver ou améliorer l'exactitude factuelle, la compréhension humaine, l'accessibilité, la fonction de conversion, la défendabilité juridique et la maintenabilité.
Les trois disciplines (ne jamais fusionner en un seul score)
| Discipline | Objectif | Unité de mesure |
|---|---|---|
| SEO | Visibilité soutenue sur les requêtes commercialement pertinentes ; trafic qualifié ; conversion | URL, requête, impression, clic, conversion |
| AEO | Éligibilité aux réponses directes, extraction de passages, citation de soutien, attribution précise | question, passage de réponse, citation, part de citation |
| GEO | Compréhension correcte de l'entité, synthèse précise, placement catégoriel, reproduction d'affirmation, inclusion comparative, recommandation défendable | entité, affirmation, invite, comparaison, recommandation, récit |
Rapportez la posture par dimension (par exemple retrieval_eligibility: strong,
answer_extractability: weak) — jamais un score opaque 0-100 de « visibilité IA ».
Chaque rapport doit garder ces états de haut niveau séparés :
- Éligibilité à la récupération — politique et conditions techniques capturées.
- Extraction de source et adéquation du soutien — conditions de passage, entité, affirmation, preuve, fraîcheur et données structurées.
- Comportement de citation observé — uniquement des observations de fournisseur contrôlées
et horodatées ; les observations absentes sont
not_evidenced, jamais inférées.
Lors de la récupération, distinguez allowed_by_policy, synthetic_fetch_succeeded,
observed_in_production_logs, indexed, et returned_by_retrieval. Lors des tests de
citation, distinguez mention, citation, soutien matériel, sélection de source canonique et
recommandation. Ces états ne sont pas interchangeables.
La préservation des preuves, l'autorité, l'authenticité, la méthode de collecte et la
représentativité sont également indépendantes. Suivez
references/evidence-authority.md ; une somme de contrôle ou une correspondance CIDR seule ne
prouve jamais l'authenticité de la source, la couverture complète ou l'identité vérifiée du
crawler.
Outillage
La CLI citable dans ce dépôt effectue le travail déterministe. Préférez toujours
l'exécuter plutôt que de redériver ses vérifications à la main :
citable init # initialiser .citable/ (non destructif)
citable audit [scope] --target <dir|url> [--base-url <url>] [--ref-date YYYY-MM-DD]
citable inspect <page> --target <dir|url>
citable map-claims --target <dir|url> [--write]
citable substantiate [--write]
citable schema --target <dir|url>
citable validate [registries|claims|evidence|schema|links]
citable compare-snapshots [runA runB]
citable action-plan [run-id] # actions ordonnées, blocages, portes sémantiques, vérification
citable observe <mode> [options] # preuves de rendu/indexation/citation/log/passage/consensus/performance
citable observe bing --dataset <search_performance|ai_performance> --input <csv|json>
citable observe render --target <url> [--interactions] [--resume-run <run-id>]
citable observe performance --target <url> --lighthouse [--repeat 1..5]
citable apply --input <spec> [--write] # remédiation examinée, verrouillée par hachage ; exécution à sec par défaut
citable monitor [runA runB] # alertes de régression d'observation
citable metrics import --provider <name> --input <csv|json>
citable connect status
citable connect configure --provider <gsc|ga4> --connection-id <id> --property-id <id> [--credential-env <name>] [--write]
citable connect discover --provider <gsc|ga4>
citable connect validate --connection-id <id>
citable connect sync --connection-id <id> --start-date YYYY-MM-DD --end-date YYYY-MM-DD
citable connect disconnect --connection-id <id> [--write]
citable objectives init --input <json|yaml> [--write]
citable objectives validate
citable evaluate [objective-id] [--ref-date YYYY-MM-DD]
citable governance validate [--ref-date YYYY-MM-DD]
citable governance evaluate <run-id> [--ref-date YYYY-MM-DD]
citable reviews queue <run-id> <policy-id> [--write]
citable reviews prioritize [--write]
citable reviews plan --input <json|yaml> [--write]
citable reviews sample <sampling-plan-id> [--write]
citable reviews evaluate
citable schedules run <schedule-id> [--ref-date YYYY-MM-DD]
citable project github <run-id>
citable observe media --input <manifest.json> [--ocr]
citable observe representation --input <release-manifest.json> --target <controlled-url>
citable corpus evaluate --input <acceptance-corpus.json>
Portées d'audit : technical seo aeo geo architecture entity claims evidence schema lifecycle corroboration. Chaque audit écrit un paquet de preuves dans
.citable/runs/<run-id>/ (manifeste, constats.json, rapport.md, en-têtes, robots,
sitemaps, schéma, graphe de liens, sommes de contrôle). Un rapport sans son paquet
de preuves n'est pas un livrable.
Protocole constat-vers-action
La détection est le début du flux de travail, pas le livrable. Pour chaque audit :
- Exécutez
citable action-plan <run-id>. Utilisez les fichiers générés sous.citable/actions/<run-id>/; ne modifiez jamais l'exécution source immuable. - Travaillez les phases dans l'ordre : débloquer les échecs de récupération/sécurité, gouvernance pour les propriétaires/entités/affirmations/preuves, contenu pour les modifications de page et de réponse, puis optimisation. Au sein d'une phase, le travail critique/élevé précède le travail de sévérité inférieure. La sévérité ne remplace jamais la confiance.
- Avant de modifier, attribuez un propriétaire responsable et satisfaites à chaque
required_input. Une action bloquée reste bloquée ; ne contournez pas les faits manquants, les preuves, l'examen juridique ou le mappage source-vers-rendu. - Appliquez les portes sémantiques listées. Les modifications AEO nécessitent un alignement de l'intention et un examen de l'extractabilité de la réponse. Les modifications GEO nécessitent une clarté de l'entité, une éligibilité à la recommandation et un examen de l'exactitude du récit. Les modifications d'affirmation/preuve nécessitent en outre un examen de la délimitation de l'affirmation et de la force de la preuve.
- Effectuez la plus petite modification de source ou de registre qui répond à la preuve. Rejetez chaque raccourci dangereux listé et chaque anti-modèle correspondant.
- Exécutez les commandes de construction/test du dépôt, puis la commande de
vérification de l'action. Ré-auditez la portée affectée et exécutez
compare-snapshotspar rapport à l'exécution source. Un constat est résolu uniquement lorsque son détecteur ne signale plus le même sujet et qu'aucune nouvelle régression critique/élevée n'apparaît. - Rapportez séparément les constats résolus, persistants, bloqués, à risque accepté et nouvellement introduits. Conservez les ID d'exécution, les diffs, les propriétaires, les preuves d'examen et le risque résiduel. Ne traduisez jamais « détecteur absent » en une garantie de résultat.
Pour le profil d'acceptation AEO/GEO complet, suivez
references/aeo-geo-validation.md. Les vérifications déterministes ignorées ou
les examens sémantiques obligatoires incomplets rendent la posture concernée
not_established.
Consultez references/capability-boundaries.md avant de revendiquer une
observation ; il identifie les états que la CLI actuelle peut collecter et ceux
qui nécessitent des données d'opérateur ou des adaptateurs futurs.
Utilisez commands/observe-and-act.md pour les prérequis du collecteur, les
étiquettes de preuve, le protocole d'adaptateur de citation contrôlé, les
conditions de refus de remédiation et l'interprétation de la surveillance.
Flux de travail des commandes
Les flux de travail détaillés par commande se trouvent dans commands/. Suivez-les ;
ils définissent les entrées, les préconditions, les conditions de refus et la validation
pour chaque commande.
Les jugements sémantiques (alignement de l'intention, force de la preuve, gain
d'information, équité de la comparaison, ...) utilisent les rubriques dans
rubrics/ — chacune définit les dimensions de notation, les exigences de preuve,
les contre-exemples et le moment où l'examen humain est obligatoire.
Les registres sont la source de vérité
.citable/ contient des registres YAML pour les requêtes, invites, entités,
affirmations, preuves, pages, crawlers, concurrents, expériences, métriques,
objectifs, interventions, état de connexion optionnel, validateurs, politiques
d'examen, exceptions régies, éléments d'examen sémantique, plans
d'échantillonnage et calendriers d'audit, tous validés par schéma
(schemas/*.schema.json) avec des vérifications d'intégrité référentielle. Règles :
- Ne jamais écraser le contenu du registre sans historique — utilisez le chargeur/sauvegardeur
dans
src/registries/index.js, qui crée des instantanés des versions antérieures automatiquement. - Ne jamais inventer de faits de registre (noms légaux, fondateurs, certifications,
concurrents, prix). Marquez les entités comme
incompleteet listezrequired_input. - Les transitions de statut d'affirmation vers
verifiednécessitent des preuves vérifiées existantes plus un examen sémantique humain ; l'automatisation ne fait que rétrograder (fermeture sur échec). - Ne codez jamais une exception acceptée comme un constat réussi ou résolu. Validez l'autorité du validateur et la séparation des tâches, liez l'approbation au constat source exact / politique / hachages de preuve, et rapportez la disposition d'exécution séparément.
Comportement de fermeture sur échec
Lorsque des informations manquent, renvoyez un statut bloqué/incomplet avec les entrées requises exactes — ne contournez pas le vide :
status: blocked
reason: l'affirmation quantitative manque de preuves vérifiées
required_input: [référence, période de mesure, population test, méthodologie, source du résultat]
La même chose s'applique à : identité d'entité manquante (n'inventez pas), recherche
externe indisponible (enregistrez status: incomplete, ne fabriquez jamais de
concurrents ou de citations), échecs de construction/rendu (ne rapportez jamais
un succès de validation ; conservez la commande, le code de sortie et la sortie
d'erreur), et ambiguïté sémantique avec des conséquences commerciales ou juridiques
(classez et acheminez vers le propriétaire de la décision).
Règles de modification du dépôt
Avant de modifier un dépôt : lisez ses instructions d'agent/dépôt, ses manifestes de
paquets, ses commandes de construction/test/linting, son architecture de rendu, ses
systèmes de métadonnées et de schéma existants, et son état de l'arbre de travail.
Ensuite : préservez l'architecture existante ; préférez les modèles de données
partagés aux littéraux dupliqués ; ne contournez jamais les tests, ne désactivez pas
le linting, n'affaiblissez pas les types et ne touchez pas aux fichiers non
connexes ; ne réécrivez jamais silencieusement des affirmations légales ou
réglementaires ; conservez un diff de toutes les modifications de registre ; et
réexécutez la portée citable validate/citable audit pertinente après chaque
changement. Une construction ou un rendu échoué rend « validé » une conclusion
indisponible.
Anti-modèles
references/anti-patterns.md est la bibliothèque canonique (contenu, technique,
AEO, GEO). Consultez-la avant de recommander une optimisation ; si un changement
demandé correspond à un anti-modèle, nommez l'anti-modèle, expliquez le risque et
proposez l'alternative défendable.