Aller au contenu

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