Apprendre le dépôt
argot init apprend la voix, les voisins sémantiques, l’architecture et les signaux de tests sur votre machine.
L’IA écrit le code. argot le tient à la seule chose qui n’hallucine jamais : l’historique de votre dépôt. Déterministe, mesuré, local.
97,3 % des motifs étrangers détectés · 0,25 % des vraies modifications signalées
vérifie un diff en200 ms
Un exemple concret
Des PR propres et bien typées peuvent rester étrangères au dépôt. Voici sa vraie sortie.
Du Python valide — mais un framework que ce dépôt n’a jamais importé. L’évidence montre ce qu’il utilise à la place.Ce dépôt a remplacé requests par httpx il y a des mois. argot cite les commits de la migration — et prévient avant un reste de plus.Le dépôt a déjà cette fonction. argot nomme l’originale et la similarité.Le bon code, au mauvais endroit — ses voisins vivent tous dans core/downloader.Ici, cli importe core — jamais l’inverse. Cet import retourne l’architecture.Vert parce que sauté, pas corrigé. argot nomme le test et le code qu’il couvre.
Pourquoi cela compte
Un check vert peut masquer un test affaibli. argot l’associe au code modifié et nomme les deux.
154/164 (93.9%) — detector-specific fixture catch; controls and accepted-history results are separate. Read the detector scope and controls.
Une preuve reproductible
argot audit compare les changements acceptés à l’historique qui les précède. Un signalement invite à examiner, il ne prouve pas un défaut.
Ensuite, lancez argot init et choisissez un chemin de vérification récurrent.
Mesuré, pas promis
97.3%
620/637 (97.3%) — detector-specific fixture recall; not a product-wide accuracy claim. Fixture recall; the changed symbol is visible in the diff.
36 corpora / 12 languages / visible foreign-import and foreign-api fixture symbols after excluded-host purge · d1007f50; generated_at=2026-07-28
97.1%
264/272 (97.1%) — detector-specific real recall; control result is separate. Authored internal layering violations across 25 corpora and 12 languages.
25 corpora / 12 languages; authored internal layering violations · 7886a7967c6fe5b822a249083c7871894db1efcf; generated_at=2026-07-20
93.9%
154/164 (93.9%) — detector-specific fixture catch; controls and accepted-history results are separate. Authored production fit-to-check gaming fixtures.
23 corpora / 12 languages; authored test-gaming fixtures, production fit→check · 1b0de32d; just integrity-verify, 2026-07-28
Un seul binaire statique. Douze langages — chacun avec son propre adapter tree-sitter et son propre modèle appris :
Rappel sur des motifs plantés dans de vrais fichiers ; fausses alertes par holdout temporel. Même l’angle mort structurel — l’étranger masqué — est publié, pas caché.
Comment ça marche
Lancez argot init, puis choisissez la CLI, les skills, un hook de commit ou une GitHub Action. Le plugin Claude ajoute une invite étroite avant écriture — pas une vérification complète à l’acceptation.
Installer la CLI
sept skills à la demande pour les hôtes compatibles :
/argot-setuplit votre arbre, écrit argot.toml, vérifie la détection/argot-refreshrévise le scope et les mutes, puis rafraîchit le snapshot appris/argot-checkscore chaque diff, signale l’étranger — ne bloque jamais/argot-review-prexamine une PR selon la voix de votre dépôt, sans checkout/argot-setup-ciun score de voix non bloquant sur chaque PR/argot-write-ruletransforme une convention énoncée en règle testée/argot-suggest-rulestrouve vos conventions, en codifie uneLe plugin Claude ajoute du contexte MCP optionnel et une invite pré-écriture étroite et fail-open ; l’agent choisit toujours quand appeler Argot. Obtenir le plugin →
$ argot init
Step 1/2: training voice model …
Step 2/2: calibrating threshold …
Corpus
1129 files · 503 learned · 626 tests/docs skipped
Verdict: Ready
Snapshot → .argot/ · voice · semantic index · health
Review + commit → argot.toml · .argot/
Next: argot checkLe snapshot appris est commité ; les caches restent locaux. La CI lit la copie de la branche de base et ne fait jamais de fit.
Tout le modèle, en un regard
L’état appris par Argot est un snapshot relu dans Git, pas un service hébergé. Chaque développeur, agent et PR se compare à la même mémoire du dépôt.
argot init apprend la voix, les voisins sémantiques, l’architecture et les signaux de tests sur votre machine.
Relisez et commitez argot.toml + .argot/. C’est l’état appris du dépôt, comme un lockfile pour les checks.
Les outils locaux, agents et la CI lisent ce snapshot. Une PR est jugée selon la branche de base : elle ne peut pas s’enseigner elle-même.
Après une évolution matérielle du code accepté, status propose /argot-refresh : revoir le scope et les mutes, relancer le fit localement, puis recommiter.
Intégrations
L’Action GitHub lit le snapshot commité de la branche de base et reste non bloquante par défaut. Une divergence intentionnelle demeure une décision humaine, enregistrée comme piste d’audit.
Start here: open each row in the review queue.
crates/argot-cli/src/voice_diff.rs:202–282Evidence: option, highlighted, Move — unfamiliar vocabulary here.
Review: rewrite in the repository’s established form if unintended.
crates/argot-core/src/compose.rs:1–14Evidence: Lazy::new is not used by similar code here.
Review: compare the call with the repository’s established API.
💬 Prompts for review, not proof of defects.
main · CI never fits.Les résultats arrivent sur la PR. La santé du snapshot reste visible dans le même résumé.
Sous le capot
Quatre moteurs locaux, un binaire Rust statique — modèle inclus, rien à télécharger — tous ancrés dans votre historique git.
Une table de 15,6 Mo qu’argot a distillée d’un encodeur de code transforme chaque fonction en vecteur — ainsi argot sait que vous l’avez déjà écrite. Rien à télécharger, aucun GPU, aucun cloud : elle est compilée dans le binaire et fonctionne hors ligne.
Deux tables de fréquences et une partition d’appels — les imports, les appels et les formes de tokens que votre dépôt utilise vraiment.
La topologie de dépendances de vos modules. Une arête qui inverse la direction établie est signalée avec la direction qu’elle casse.
tree-sitter suit ce que chaque test vérifie. Un test sauté, vidé ou supprimé à côté d’un changement de prod est associé et nommé.
Mesuré sur FastAPI, CPU de portable. Un seul binaire statique — pas de Python, pas de Node, aucun modèle à télécharger, aucun GPU.
Fonctionnalités avancées
argot conventions trouve l’API partagée et où vit le code. Transformez une convention en une petite règle testable.
where each kind of code lives — learned from your layout
// check.rhai — a route that existed before
// this change, and is silently gone now
let now = [];
for m in ts_query(ROUTES) { now.push(m.text); }
for m in ts_query_old(ROUTES) {
if !now.contains(m.text) {
report(m.line, m.text + " removed —
deprecate first (docs/api-lifecycle.md)");
}
}Open source sous licence MIT. Auditez d’abord, puis choisissez la vérification récurrente adaptée à votre workflow.