Dir2md + Spicy : un scanner de dépôt qui génère en une seule fois du contexte Markdown/JSONL pour les LLM et des rapports de sécurité
(github.com/flamehaven01)Bonjour. J’avais présenté Dir2md pour la première fois il y a environ trois mois.
Depuis, en l’appliquant à divers projets, ses limites structurelles sont apparues. J’ai donc entièrement repensé l’algorithme, la sécurité et le pipeline de sortie.
❔Qu’est-ce que Dir2md ?
Dir2md est un outil qui transforme des structures de répertoires complexes en contexte Markdown·JSONL compatible avec l’IA, avec smart sampling, masquage de sécurité et contrôle du budget de tokens. Il organise automatiquement un dépôt dans une forme optimisée pour le développement assisté par l’IA.
🔧 Ce qui a changé — résultat d’une refonte complète sur 3 mois
1) Refonte du moteur d’optimisation pour l’IA
- Introduction du smart sampling head/tail au niveau des fichiers
- Affinage de la logique de répartition automatique du budget de tokens
- Réorganisation du mécanisme de priorisation des fichiers importants
- Mise en place d’un pipeline de sortie multiple pour Markdown, JSON, JSONL et manifest
2) Introduction de Spicy (analyseur de sécurité et de risques)
- Intégration d’un scanner de risques embarqué activé par défaut à l’exécution
- Application d’une échelle de gravité à 5 niveaux allant de ok à critical
- Calcul d’un score de risque de 0 à 100 à l’échelle du dépôt
- Sortie d’une Actionable Risk Table incluant fichier/ligne/catégorie/guide de remédiation
3) Renforcement du moteur de masquage de sécurité
- Masquage automatique des principaux motifs comme les clés API, JWT, OAuth, DB URL, PEM, etc.
- Ajout de la prise en charge des regex personnalisées et du chargement de fichiers de patterns
4) Ajout de la déduplication basée sur SimHash
- Suppression des fichiers similaires et des artefacts de build
- Réduction au minimum du gaspillage de tokens dupliqués dans le contexte d’entrée des LLM
5) Extension du système de presets
- Quatre modes disponibles :
raw,pro,ai,fast - Le mode
aiinclut un budget de 6000 tokens + un classement des fichiers basé sur la requête
🌶️ Qu’est-ce que Spicy ?
En une phrase, Spicy est un « relecteur automatique qui ressemble à un développeur senior au regard sévère, jamais indulgent sur la sécurité ».
Dir2md n’est pas simplement un outil qui « documente un répertoire » : il effectue aussi en une seule passe les vérifications de sécurité et de qualité indispensables avant d’envoyer un dépôt à une IA.
1) Détection d’informations sensibles
- Détection de motifs pouvant mener à de vrais incidents, comme les API Key, OAuth Client Secret, JWT, DB URL, clés PEM, etc.
2) Analyse des chiffrement faibles et des usages de sécurité vulnérables
- Détection de code posant problème du point de vue de la sécurité, comme les algorithmes vulnérables ou une gestion de clés non sûre
3) Diagnostic des possibilités d’injection
- Détection de motifs similaires aux SQL/Command/Code Injection
4) Exposition de données via les logs ou le debug
- Détection de code ou de configurations qui affichent des informations sensibles
5) Problèmes de contrôle d’accès
- Analyse des motifs présentant des failles liées à l’authentification et aux autorisations
- Détection également des signaux de risque de configuration mentionnés dans le README
📊 Résultats mesurés sur 9 dépôts internes en production
Après la refonte de Dir2md + Spicy, voici les chiffres réels mesurés à la date d’hier :
- En moyenne 2,4 détections d’informations sensibles de niveau high·critical par dépôt
- Clés API, clés privées PEM, DB URL, bearer token, etc.
- Réduction moyenne de 68 % de la taille du contexte
- 128k → ~41k tokens (tous les fichiers significatifs sont conservés)
- Temps de revue sécurité : de 3,5 heures auparavant à 11 secondes
- Secrets divulgués via des prompts LLM depuis l’adoption : 0 cas
Ces résultats correspondent aux performances observées en environnement d’exploitation réel lorsque smart sampling · déduplication SimHash · analyse de risque Spicy · moteur de masquage sont combinés.
⭐ Si le projet vous a été utile
Dir2md + Spicy est open source.
La plupart des fonctionnalités que vous voyez aujourd’hui ont pu évoluer grâce aux retours des utilisateurs et aux étoiles (⭐). Merci encore.
- 👉 Un GitHub Star nous aide énormément !
- 👉 Les signalements de bugs et les idées sont toujours les bienvenus.
2 commentaires
📌 Résumé des principales mises à jour depuis dir2md v1.1.2
v1.2.1 (correctifs de sécurité/fiabilité)
vulture) → blocage du vecteur RCEdefaults.json+ introduction d’un système de prioritév1.2.0 (auto-optimisation intelligente)
Pipeline réduisant les tokens de 60 à 70 % sans configuration
Avec
--query, correction automatique des fautes de frappe + extension de la rechercheConception centrée sur les presets avec forte réduction des flags (raw/fast/pro/ai)
Implémentation sans dépendances externes NLP/LLM
v1.1.3
👉 En résumé, à partir de la version 1.2.x, les releases se concentrent sur « moins de configuration, plus de sécurité, de déterminisme et de compatibilité avec l’IA ».
(Compatibilité descendante maintenue, aucune rupture du CLI)
Source : CHANGELOG
🚂 Sortie de dir2md 1.1.2 !
Cette mise à jour peut sembler modeste en apparence, mais elle regroupe uniquement des changements qui ont un impact direct sur la stabilité en usage réel.
🛡 Security
🔸Précompilation des expressions régulières de masquage par défaut/avancées → réduction du risque de ReDoS
🔸Les fichiers de plus de 1 Mo sont ignorés avant lecture et seulement consignés dans le manifeste
⚙️ Performance
🔸Application d’un cache LRU (2048) à l’estimation des tokens → gain de vitesse sur les gros dépôts
🔸Même les chaînes vides sont traitées comme au moins 1 token → suppression de l’ambiguïté des « 0 token »
🧩 UX / Behavior
🔸Les fichiers ignorés conservent un hash/résumé de substitution pour renforcer la transparence
🔸Les motifs de masquage personnalisés sont ignorés après avertissement en cas d’échec de compilation (pour éviter les échecs silencieux)
✅ Tests
🔸22 réussis, 2 ignorés
C’est une petite release, mais toute la batterie de tests a bien été exécutée.
L’objectif de cette version est simple :
« Peut-on l’exécuter tous les jours dans la CI et sur du vrai code de production ? »
Nous avons fait un pas de plus dans cette direction.
https://github.com/flamehaven01/Dir2md/releases/tag/v1.1.2