Aller au contenu

Open source · semctx

Ce qu'un diff met en risque, et si c'est prouvé.

En bref

Nature
analyseur d'impact des changements, déterministe et local
Statut
open source (Apache-2.0), npm 0.3.1, provenance de build signée
Où il tourne
en ligne de commande, dans Claude Code et Codex, en CI
Exécution
locale : aucun LLM, aucun appel réseau, aucune base vectorielle

1. Le problème

Un agent peut modifier des dizaines de fichiers en quelques minutes. La question utile n'est plus « quels fichiers regarder ? », mais « qu'est-ce que ce changement a mis en risque, et est-ce prouvé ? ».

semctx répond à cette question-là, et seulement à elle.

2. Ce qu'il rend

À partir d'un diff et d'un graphe déterministe du dépôt, pour chaque changement :

  1. 2.1

    Symboles touchés

    Chaque déclaration dont les lignes sont modifiées par le diff.

  2. 2.2

    Contrats à risque

    Les interfaces et les types exportés que le changement altère.

  3. 2.3

    Invariants à risque

    Les contraintes annotées sur le code touché.

  4. 2.4

    Tests à lancer

    Reliés au code par leurs imports : une sélection, pas une couverture mesurée.

  5. 2.5

    Inconnues

    Ce que l'analyse statique ne peut pas prouver, écrit en clair plutôt que passé sous silence.

  6. 2.6

    Verdict

    PASS, WARN ou BLOCK. BLOCK sort en erreur : il peut arrêter un commit ou une CI.

3. Ce qu'il ne prétend pas

  1. 3.1

    Il ne remplace pas la recherche de code. Il répond à « qu'a mis en risque ce changement, et est-ce prouvé ? », pas à « quels fichiers regarder ? ».

  2. 3.2

    C'est une analyse statique : elle choisit quoi retester, elle ne prouve pas le comportement à l'exécution.

  3. 3.3

    TypeScript est la base de compatibilité. Python est couvert de façon bornée, Markdown et SQL de façon structurelle.

  4. 3.4

    Un rejeu de trente changements publics est publié sans étiquette : aucune précision, adoption ou temps gagné n'est revendiqué.

4. Comment il est livré

Une seule étiquette de version, posée sur un commit immuable, publie le paquet npm, le canal de plugins stable et la release GitHub. La provenance du build est signée.

La démo montre trois cas : une modification bénigne, un contrat en alerte, et un bug d'exécution que l'analyse statique ne peut pas déclarer correct.

bunx semctx@latest install

Démo GitHub npm

5. Ce type de porte dans votre CI ?

Le Diagnostic Agents pose une première porte dans votre CI en cinq jours, avec l'outil qui convient à votre dépôt, semctx ou un autre.

[email protected]

Toutes les réalisations