À propos du projet

Pacmon ajoute une couche « pourquoi » aux manifestes de dépendances. Les manifestes tels que package.json, Cargo.toml, pom.xml, build.gradle, mix.exs, build.zig.zon, go.mod et les manifestes Python indiquent de quoi un projet dépend ; Pacmon permet à chaque dépendance directe de porter une courte note expliquant pourquoi elle est présente, ce qui ne doit pas changer et ce qu'il faut vérifier avant une mise à niveau. Les notes sont stockées sous forme de fichiers Markdown simples dans .pacmon/, à côté du manifeste qu'elles décrivent. Il n'y a ni base de données, ni service, ni compte : les fichiers peuvent être lus, comparés et validés comme n'importe quel autre fichier du dépôt. Une note apparaît au survol de la dépendance dans le manifeste, et sa première ligne est affichée à la fin de la ligne de dépendance. Une marque devant chaque dépendance est remplie lorsqu'une note existe et creuse lorsqu'il n'y en a pas. Écosystèmes pris en charge et leurs fichiers de notes : - npm : package.json, .pacmon/DEPENDENCY-NOTES.md, sections nommées par paquet (par exemple ## express). - Rust : Cargo.toml, .pacmon/cargo/DEPENDENCY-NOTES.md, sections nommées par clé de dépendance. - Maven : pom.xml, .pacmon/maven/DEPENDENCY-NOTES.md, sections nommées groupId:artifactId. - Gradle : build.gradle ou build.gradle.kts, .pacmon/gradle/DEPENDENCY-NOTES.md, sections nommées group:name ou alias de catalogue. - Elixir/Mix : mix.exs, .pacmon/mix/DEPENDENCY-NOTES.md, sections nommées par atome d'application de dépendance. - Zig : build.zig.zon, .pacmon/zig/DEPENDENCY-NOTES.md, sections nommées par champ de dépendance directe. - Python : pyproject.toml et fichiers requirements, .pacmon/python/DEPENDENCY-NOTES.md, sections nommées par nom de distribution normalisé. - Go : go.mod, .pacmon/go/DEPENDENCY-NOTES.md, sections nommées par chemin de module. Pacmon analyse les manifestes en tant que texte et n'exécute ni npm, Cargo, Maven, Gradle, Mix, Zig, Python, pip, Poetry, uv ni Go. Il reconnaît les dépendances directes écrites dans le fichier, avec des limites propres à chaque écosystème décrites dans le README (par exemple, les dependencyManagement et dépendances de plugins Maven sont exclus ; les scripts Gradle ne sont pas exécutés, donc les dépendances ajoutées par code ne sont pas vues ; Go replace, exclude, retract, go.work et vendor ne sont pas lus comme dépendances). Chaque écosystème conserve son propre fichier de notes, et un manifeste qui n'en a pas utilise le fichier de notes le plus proche au-dessus de lui pour le même écosystème. Les fichiers de notes utilisent une section ## par dépendance directe. Les personnes écrivent sous le titre ; les agents de codage IA écrivent sous une sous-section ### Agent notes en utilisant des lignes - clé: valeur telles que purpose, constraint, verify, log et verified. Les agents sont censés lire la section d'une dépendance avant de l'ajouter, de la mettre à niveau ou de la supprimer, et d'enregistrer ce qu'ils ont fait. Pacmon valide les lignes des agents et avertit en cas de champs inconnus ou de valeurs vides, en proposant des corrections en un clic. Pacmon lui-même n'appelle aucun service d'IA ; il fournit les fichiers et les règles, et une commande de configuration écrit .pacmon/AGENT-RULES.md et ajoute des pointeurs vers les fichiers d'instructions d'agents courants tels que AGENTS.md, CLAUDE.md, .cursor/rules/ et .github/copilot-instructions.md. Les fonctionnalités incluent les notes au survol, les aperçus en ligne, les marques de dépendance, l'écriture de notes depuis le manifeste via un panneau latéral, un éditeur peek ou une boîte de saisie, une vue Documentation Coverage listant les dépendances qui ont des notes, et des avertissements pour les problèmes dans le fichier de notes. Les paramètres couvrent le style d'indice en ligne, la couche qui alimente les aperçus (human-first, ai-first, human-only, ai-only), la façon dont les notes sont saisies, les points d'entrée cliquables et la résolution des fichiers de notes en monorepo. L'extension nécessite VS Code 1.100+ ou un IDE JetBrains 2025.2+, et ne nécessite aucune chaîne d'outils de langage installée. Elle fonctionne dans VS Code for the Web, Remote-SSH, WSL et les conteneurs de développement. C'est un aperçu précoce qui n'accepte pas encore les pull requests ; les rapports de bugs et les demandes de fonctionnalités vont dans les issues GitHub. Sous licence Apache 2.0, avec « Pacmon » et le logo comme marques de Kontra.