sem - Outil de gestion de versions sémantique qui ajoute le suivi des changements au niveau des fonctions/classes par-dessus Git
(github.com/Ataraxy-Labs)- Compare les entités de code plutôt que les lignes pour montrer quelles fonctions/méthodes/classes ont été ajoutées, modifiées, supprimées, déplacées ou renommées
- « la ligne x~y a changé » → « la fonction
blaha changé »
- « la ligne x~y a changé » → « la fonction
- Fonctionne sans configuration sur n’importe quel dépôt Git, et permet aussi de comparer des fichiers arbitraires en dehors de Git
- Le cache d’entités stocké dans SQLite est conservé dans le répertoire de cache de l’OS, hors du dépôt, ce qui n’altère pas l’arborescence de travail
- Analyse le code avec tree-sitter et relie le code avant/après changement dans l’ordre suivant : ID d’entité → hash structurel de l’AST → similarité de tokens supérieure à 80 %, afin de détecter les renommages et les déplacements
-
Commandes prises en charge
sem diff: compare l’arborescence de travail / la zone de staging / des commits / une plage de commits / deux fichiers arbitraires, avec sortie en texte brut, Markdown ou JSONsem impact: trouve le code dépendant, les appelants et les tests affectés lorsqu’une fonction donnée changesem blame: affiche au niveau entité le dernier auteur d’une modification sur une fonction/classe/méthodesem log: suit via l’historique Git comment une entité a évolué- Si aucune entité n’est spécifiée, analyse les hotspots (éléments souvent modifiés) / co-change pairs (paires modifiées ensemble de façon répétée) du dépôt (« si vous touchez à l’un, n’oubliez pas l’autre »)
sem entities: affiche toutes les entités sous le dossier courantsem context: assemble uniquement le code contextuel nécessaire à un agent en respectant le budget de tokenssem setup: une fois exécuté, la sortie degit diffpasse au niveau entité, et un hook pre-commit affichant la portée d’impact des changements stagés est aussi installé- Sur macOS et Linux, relie Claude Code à un graphe de dépendances résident et à un hook de contexte au démarrage du prompt, pour éviter de réanalyser le dépôt ou de repartir à la recherche du code à chaque fois
sem mcp: fournitdiff,impact,context,entities,blame,logcomme outils MCP afin qu’un agent de codage puisse consulter uniquement les fonctions et dépendances nécessaires au lieu de fichiers complets
- En ajoutant une GitHub Action, met à jour sur chaque PR un commentaire épinglé unique avec les fonctions/classes/méthodes modifiées, et distingue aussi les PR où seuls le formatage ou les commentaires ont changé
- Prend en charge 32 langages, dont TypeScript, Python, Go, Rust, Java, Swift, SQL, C/C++, ainsi que JSON/YAML/TOML/CSV/Markdown
- Les fichiers non pris en charge sont traités avec un diff par chunks
- Licence : MIT OR Apache-2.0
Aucun commentaire pour le moment.