Les corpus¶
En bref
Un corpus est un fonds documentaire que Sentral indexe : un dossier, un fichier Markdown par document. Il y en a quatre. Cette page dit ce qu'ils contiennent, sous quels droits, comment en verser un nouveau, et — le plus important — ce qu'on a le droit d'éditer et ce qui est gelé.
Les quatre corpus¶
| Corpus | Contenu | Volume | État |
|---|---|---|---|
comptabilisation-fr |
comptabilité française : plan comptable complet (classes 1 à 7), écritures types, articles de fond, lexique, exercices | 1 210 documents | complet, capturé le 2026-07-24 |
colonnage-sage |
droits d'affichage des colonnes des listes Sage, et où ils vivent en SQL | 59 fiches, 2 172 colonnes, 38 tables | 59 fiches sur 59 validées ; 3 tables sans écran sur cette installation, trésorerie hors périmètre |
rapports-sage |
fiches « rapport comptable Sage → SQL » : ce que Sage exécute réellement, et ce qui change d'une base client à l'autre | 5 fiches | les 5 sont validées sur deux bases, au centime ; le corpus reste ouvert |
kb-sage |
base d'assistance Sage France : Sage 100, Génération Experts, Paie & RH, États Comptables et Fiscaux | 6 220 articles, dont 2 056 marqués « développeur » | complet, 0 échec de capture |
La base d'assistance Sage n'est pas un pis-aller
Le site développeur de Sage ne publie aucune documentation de Sage 100 France : la version américaine y est, la française non. Ces 6 220 articles sont la seule documentation de ce produit qui existe. C'est pour cela qu'ils sont servis par un registre déterministe et non par la recherche en prose.
Droits et usage¶
| Corpus | Origine | Ce qu'on a le droit d'en faire |
|---|---|---|
comptabilisation-fr |
un site public de comptabilité, capture faite dans le respect de son fichier d'exclusion des robots ; chaque document conserve son URL d'origine | usage interne. Ne pas republier tel quel |
kb-sage |
la base d'assistance Sage France — © Sage ; chaque document conserve son URL et son identifiant d'origine | usage interne, ne pas republier. L'accès repose sur la qualité d'éditeur de solutions Sage de SenSaaS et sur les comptes Sage de l'équipe |
colonnage-sage |
produit en interne. La moitié SQL est mesurée et rejouable ; la moitié « libellés » exigeait la machine Windows | interne |
rapports-sage |
produit en interne. Les captures brutes et les données clients n'y entrent jamais | interne |
Rendre un corpus visible d'un revendeur ou d'un client est une décision à part
Si le fonds Sage devait un jour être servi à un revendeur ou à un client, ce serait une décision explicite, prise par le mécanisme de périmètres prévu dans le cadrage — pas par un oubli de configuration. Voir Règles pour les agents.
Verser un corpus : les conventions¶
Un corpus tient dans un dossier :
corpus/<nom-du-corpus>/
├── README.md ← d'où ça vient, comment c'est produit, ses limites
└── **/*.md ← un fichier = un document autonome
Ces conventions ne sont pas cosmétiques : elles conditionnent la qualité de l'indexation.
- Un fichier Markdown = un document autonome. Une fiche de compte, une écriture, un article doivent se comprendre seuls, sans contexte extérieur. C'est ce qui permet à un passage retrouvé isolément d'être utilisable.
- Un en-tête YAML en tête de fichier :
source,source_url,date_capture,type_document, puis les champs propres au type. Ces champs deviennent les filtres de la recherche. - Une ligne de contexte (
> …) juste après le titre principal : elle résume ce qu'est le document. Indispensable quand un extrait sort seul de la recherche. - Une structure par titres. Sentral découpe par section et préfixe chaque passage de « titre — section » : les citations deviennent exactes, et les mots du titre participent à la recherche.
- Les fichiers d'index (
00-*.md) sont indexés aussi : ce sont eux qui répondent aux questions d'ensemble, du type « la liste des comptes de classe 4 ».
Exemple d'en-tête :
---
source: nom-de-la-source
source_url: https://exemple.test/article/123
date_capture: 2026-09-11
type_document: article
---
Il reste ensuite à déclarer la source dans le fichier de configuration de Sentral, puis à lancer l'ingestion et le banc de coût.
Trois choses à savoir avant de verser beaucoup
Ne dupliquez pas ce qui existe déjà. Une documentation ingérée depuis son dépôt d'origine se corrige là-bas ; en recopier une version ici créerait une version périmée.
Plus de contenu n'est pas mieux. Une source n'entre que si elle répond à une question qu'on ne sait pas traiter, et elle arrive avec son budget en jetons mesuré.
La recherche en prose n'a pas de banc de mesure. Rien ne vérifie que ce que vous versez est effectivement retrouvable. Remède minimal : ajouter cinq à dix questions réelles au jeu de référence pour votre source. Sans cela, personne ne saura si elle ressort.
Ce qu'un corpus ne suffit pas à faire¶
Leçon mesurée, et valable pour tout corpus à venir : un référentiel structuré ne se cherche pas comme de la prose. Avant d'avoir sa table dédiée, la bonne fiche de compte du plan comptable sortait 16ᵉ sur 9 582 passages — les milliers d'exemples d'écritures, tous bâtis sur le même gabarit, la noyaient.
Conséquence : quand un corpus contient un référentiel (des comptes, des rapports, des tables), il lui faut en plus un registre déterministe et son outil dédié. Le corpus sert la prose, le registre sert la précision.
Les quatre étages : ce qu'on édite, ce qu'on régénère, ce qui est gelé¶
C'est la seule chose à retenir avant de corriger quoi que ce soit. Le dépôt n'est pas homogène : la même faute de frappe se corrige, se régénère ou se signale selon l'étage où elle se trouve.
Étage A — on édite librement¶
Prose, code, descriptions d'outils. Rien d'autre qu'un fichier à corriger.
- tous les fichiers
README.md, et les études ; - les descriptions des 25 outils MCP — c'est ce qu'un agent lit pour choisir un outil, et une description ambiguë coûte un appel inutile à chaque conversation. Probablement le meilleur rapport effort / gain du dépôt ;
- le code Python du serveur, des outils et de la démonstration ;
- le corpus de comptabilité (Markdown, sans statut de validation).
Étage B — on ne touche pas le fichier, on le régénère¶
Les fichiers de données produits par les extracteurs portent en tête « GÉNÉRÉ, ne pas éditer à la main » et une empreinte du document source. Une correction s'applique à la source, puis on relance l'outil qui produit le fichier. L'empreinte est là pour que la triche se voie.
Étage C — gelé : on propose, on ne corrige pas¶
Les 59 fiches de colonnage et les 5 fiches de rapports sont toutes marquées valides. Ce statut n'est pas décoratif : chaque fiche a été confrontée à l'écran de Sage ou aux totaux au centime sur deux bases — 44 confrontations sans écart, 59 marqueurs de position.
Trois conséquences qui doivent arrêter net :
- un libellé Sage qui ressemble à une coquille EST la donnée. Sage écrit ce qu'il écrit ; la fiche le recopie. « Corriger » l'orthographe casse silencieusement la confrontation qui l'a validée ;
- plus rien n'est re-mesurable. Le serveur Windows qui portait Sage est fermé depuis le 2026-09-08. Une erreur soupçonnée dans une fiche validée ne peut plus être vérifiée ;
- une confrontation sans écart peut passer sur une fiche fausse. C'est mesuré : treize marqueurs ont réfuté cinq fiches qui n'avaient aucun écart. Donc même « ça a l'air juste » n'autorise rien.
Une passe automatique de correction sur ces 64 fiches détruirait le travail de mesure
…et aucun test ne le verrait. Une erreur soupçonnée se signale — une note dans la demande de fusion, ou un fichier de propositions — jamais par une commande de remplacement en masse.
Étage D — ce n'est pas à nous¶
Les dépôts voisins (l'agent Sage de l'entreprise, la stack collaborative) sont lus, jamais écrits. Une correction de leur catalogue se porte depuis chez eux, où la non-régression se mesure. Un cas est déjà en attente : une correction écrite et contre-testée, volontairement non appliquée.
Ce qui produit et vérifie les corpus¶
Aucun de ces outils ne tourne en continu : on les lance, ils écrivent un fichier versionné ou un rapport.
| Famille | Ce qu'elle fait |
|---|---|
| extracteurs | convertissent une fois pour toutes les documents Sage figés (classeur des tables, documentation officielle de structure de 443 pages) et le fragment de contrat de l'API SenSaaS en fichiers de données versionnés et comparables |
| colonnage | inventorient les tables qui portent les droits d'affichage, prédisent un écran depuis une fiche, prouvent la correspondance liste ↔ ligne SQL par marqueurs injectés, puis écrivent les fiches après trois contrôles |
| capture et pilotage Sage | capturent le SQL réellement exécuté pendant qu'un état est produit, et pilotent l'interface avec un vocabulaire fermé de huit gestes — les captures brutes restent hors du dépôt |
| vérificateurs | contrôlent que tout chemin cité dans la documentation existe vraiment |
Pourquoi une conversion unique plutôt qu'une lecture à chaud
Le catalogue de l'agent Sage est lu à chaud parce que son équipe l'édite : une copie divergerait. Le classeur et la documentation officielle, eux, sont des documents figés — les convertir une fois en fichiers versionnés et comparables vaut mieux que parser un binaire à chaque démarrage. Le seul risque, une source qui change sans qu'on le sache, est fermé par une empreinte inscrite dans chaque fichier produit et vérifiée par les tests.
Ce que les extracteurs écartent, ils le comptent
Un tableau de PDF ne se parse jamais à 100 %. Plutôt que de livrer des entrées douteuses, les extracteurs les rejettent et inscrivent le décompte en tête du fichier produit. Qui relit le fichier sait donc ce qui manque, et pourquoi.
Questions fréquentes¶
Peut-on republier un article de la base d'assistance Sage dans cette documentation ?
Non. Usage interne uniquement, © Sage. On peut en revanche s'en servir pour rédiger une page originale.
Une fiche de colonnage contient une faute : je la corrige ?
Non — étage C. Signalez-la dans la demande de fusion ou dans un fichier de propositions. Le libellé fautif peut être exactement ce que Sage affiche.
Mon clone n'a pas les dépôts voisins : est-ce grave ?
Non. L'ingestion ignore une source dont le chemin est absent, avec un avertissement, et continue. Vous obtenez une base partielle mais valide.