Limites connues¶
Assumées en l'état, documentées pour qu'elles ne se découvrent pas à l'usage.
Qualité des faits¶
Portées inventées par le modèle¶
Le modèle produit parfois des portées plausibles mais inexistantes :
services/payment/** dans un dépôt qui n'a pas de dossier services/.
Conséquence — la règle ne s'applique nulle part. Elle n'en crée pas de fausse,
c'est le bon sens de l'échec, mais elle est perdue pour l'outil conventions.
Traitement prévu — le signal profile contient déjà l'arborescence réelle du
dépôt ; la confronter permettra d'écarter ou de corriger ces portées.
Recherche par préfixe plutôt que racinisation¶
Le dictionnaire simple de PostgreSQL ne racinise pas : « idempotence » ne trouve
pas « idempotent ». La recherche retombe donc sur une correspondance par préfixe de
six caractères quand la recherche exacte ne donne rien.
Pourquoi ce choix — le corpus mêle prose française et identifiants techniques anglais. Raciniser dans une langue abîme l'autre.
Conséquence — quelques variantes ratées, un peu de bruit sur les mots courts.
Traitement prévu — indexer en french et english, et concaténer les deux
vecteurs.
Pas d'embeddings¶
La recherche est purement lexicale, et la déduplication sémantique repose sur un indice de Jaccard.
Conséquence — deux formulations très différentes d'une même règle peuvent survivre en double.
Quand s'en soucier — au-delà d'un millier de faits par client. pgvector
s'ajoute sans changer de moteur.
Plateforme¶
Extraction synchrone sur une réponse maintenue ouverte¶
Le flux NDJSON évite d'introduire une file de tâches, mais empêche de répartir l'extraction sur plusieurs réplicas.
Conséquence — l'API monte à trois réplicas pour la lecture, mais une extraction reste liée à un réplica. Si celui-ci redémarre en cours de route, l'extraction est perdue et doit être relancée. L'idempotence limite le coût de la reprise.
Un seul environnement Azure¶
Il n'existe pas de rg-aim-dev. Le développement se fait sur Docker Compose, la
recette utilisateur sur l'environnement réel.
Conséquence — une régression déployée touche directement l'usage réel.
Quand s'en soucier — dès que plusieurs personnes modifieront le code. Le Bicep est paramétré, un second resource group est une variable à changer.
Documentation publique¶
Ce site est accessible sans authentification. Il ne contient aucun secret — l'URL de l'API et l'audience Entra ne donnent aucun accès sans jeton valide — mais il décrit l'architecture.
Traitement possible — l'authentification intégrée de Container Apps sur Entra se pose en une ligne de Bicep, au prix d'une friction de lecture.
Fonctionnel¶
Un document est identifié par son nom de fichier¶
Deux fichiers homonymes venant de dossiers différents se recouvrent. Ingérer le
README.md de deux dépôts distincts écrase le premier.
Contournement — les renommer avant dépôt.
Pas de versionnement des faits¶
Un fait modifié ou fusionné écrase l'ancien. Le journal d'audit trace l'action, pas le contenu antérieur.
Conséquence — impossible de répondre à « qu'est-ce que cette règle disait le mois dernier ? ».
Pas de suppression en masse¶
Retirer une source ingérée par erreur se fait document par document, via l'API.
Ce qui n'est volontairement pas fait¶
| Sujet | Pourquoi |
|---|---|
| Interface web | Le CLI et le MCP couvrent les deux usages réels |
| Marketplace de packs | Chaque client est spécifique par nature |
| Extraction depuis des images | Aucun besoin constaté ; la capture d'écran est prévue plus tard |
| Support de modèles non-Anthropic | Un backend suffit ; l'abstraction existe si besoin |