#aitools#AI prompts#cli

Prompt My Project : donner à une IA le contexte utile d'un dépôt

Retour sur Prompt My Project, une CLI qui extrait la structure et les fichiers pertinents d'un dépôt pour préparer un contexte lisible par un modèle d'IA.

6 min de lecture
Résumé IA

Générez un résumé de cet article en un clic.

Les assistants de code ne manquent pas de puissance ; ils manquent souvent de contexte fiable. Quand je travaillais sur un dépôt un peu large, je perdais du temps à choisir les fichiers à joindre, à vérifier les exclusions et à compter les tokens. Prompt My Project (PMP) est né pour automatiser cette préparation, pas pour prétendre comprendre le projet à la place du développeur.


Pourquoi Prompt My Project ?

Les assistants IA sont devenus très utiles pour les développeurs, mais leur efficacité dépend largement de la qualité des informations qu’ils reçoivent. Fournir le contexte complet et pertinent d’un projet en mode manuel peut prendre des heures, surtout pour des projets volumineux. PMP automatise cet effort et structure le prompt envoyé à l'agent.

Une idée née d'un besoin quotidien

En tant que développeur, j’ai constaté à quel point il était difficile de collaborer efficacement avec des IA sur des projets techniques complexes. Les prompts devaient inclure la structure du projet, des extraits de fichiers pertinents, ainsi que des détails critiques, mais rassembler ces informations à la main devenait vite un travail répétitif et fatigant. C’est ainsi qu’est apparue l’idée de PMP : un outil capable d’extraire automatiquement les éléments clés d’un projet et de les intégrer dans un prompt structuré, prêt à être utilisé avec des modèles d’IA.


Qu’est-ce que Prompt My Project ?

Prompt My Project est un outil en ligne de commande capable de scanner ton projet, d’en analyser la structure, et de générer un prompt détaillé contenant uniquement les informations pertinentes pour tes interactions avec une IA. En quelques secondes, PMP extrait :

  • La structure hiérarchique des dossiers et fichiers.

  • Le contenu sélectionné des fichiers pertinents.

  • Une estimation du nombre de tokens utilisés.

L’objectif : donner à l’IA une compréhension rapide et claire de ton projet, afin qu’elle puisse répondre de manière précise à tes besoins.


Fonctionnalités principales

1. Analyse intelligente et récursive

PMP explore automatiquement l’ensemble de la structure de ton projet, détectant les dossiers et les fichiers importants. Cette exploration récursive établit une cartographie complète de ton projet, ce qui permet à l’IA de mieux comprendre le contexte global.

2. Détection automatique des fichiers binaires et respect des règles .gitignore

  • PMP identifie et exclut les fichiers binaires (images, exécutables, etc.) pour se concentrer uniquement sur les fichiers texte pertinents.

  • L’outil respecte également les règles définies dans ton fichier .gitignore, garantissant que seuls les fichiers nécessaires sont inclus dans le prompt.

3. Inclusion et exclusion personnalisées des fichiers

Tu peux affiner les résultats en spécifiant :

  • Les fichiers ou extensions à inclure (par exemple, uniquement les fichiers .py ou .md).

  • Les répertoires ou fichiers à exclure (comme les dossiers node_modules ou tests).

Cette flexibilité te permet de personnaliser le prompt en fonction de tes besoins spécifiques.

4. Performance optimisée

Grâce à un système de traitement concurrent avancé, PMP est capable d’analyser rapidement même les plus grands projets. L’outil utilise des techniques telles que :

  • Le traitement parallèle via un pool de workers.

  • La mise en cache des fichiers pour éviter des lectures multiples.

  • La gestion optimisée des ressources mémoire.

5. Génération de prompts structurés

PMP produit un fichier contenant :

  1. Résumé global : Une description concise de la structure du projet.

  2. Structure hiérarchique : Une vue complète des dossiers et fichiers.

  3. Extraits de contenu : Les parties importantes des fichiers sélectionnés.

  4. Estimation des tokens : Calcul précis du nombre de caractères et de tokens pour anticiper les limites des modèles d’IA.

Les prompts sont générés dans un répertoire dédié (./prompts/ par défaut), avec un nom horodaté (prompt_YYYYMMDD_HHMMSS.txt) pour un suivi facile.


Installation simple sur toutes les plateformes

PMP est compatible avec Linux, macOS, et Windows, prise en charge des architectures amd64 (x86_64) et arm64 (aarch64).

macOS/Linux

curl -fsSL https://raw.githubusercontent.com/benoitpetit/prompt-my-project/master/scripts/install.sh | bash

Windows

irm https://raw.githubusercontent.com/benoitpetit/prompt-my-project/master/scripts/install.ps1 | iex

Commandes et exemples d’utilisation

Syntaxe de base

pmp [options] [path]

Exemples concrets

Analyse globale du projet

pmp

Inclure uniquement certains fichiers

pmp --include "*.py" --include "*.md"

Exclure des répertoires spécifiques

pmp --exclude "tests/*" --exclude "node_modules/"

Personnaliser le répertoire de sortie

pmp --output ./mes_prompts

Analyser un projet Go

Tu peux analyser uniquement les fichiers sources Go, tout en excluant les tests et les dépendances :

pmp --include "*.go" --exclude "*_test.go" --exclude "vendor/"

Exemple de Prompt généré :

PROJECT INFORMATION ----------------------------------------------------- • Project Name: prompt-my-project • Generated On: 2025-03-01 15:53:46 • Generated with: Prompt My Project (PMP) v1.0.0 • Host: master • OS: linux/amd64 FILE STATISTICS ----------------------------------------------------- • Total Files: 4 • Total Size: 37 kB • Avg. File Size: 9.2 kB • File Types: - .go: 1 files - <no-extension>: 1 files - .md: 1 files - .sum: 1 files TOKEN STATISTICS ----------------------------------------------------- • Estimated Token Count: 9318 • Character Count: 37269 ===================================================== PROJECT STRUCTURE: ----------------------------------------------------- └── prompt-my-project/ ├── LICENSE ├── README.md ├── go.sum └── main.go FILE CONTENTS: ----------------------------------------------------- ... // contenu de vos fichiers organiser et trier proprement ..

Fonctionnement avancé sous le capot

1. Gestion des workers

PMP optimise la vitesse d’analyse grâce à des pools de workers, en adaptant automatiquement le nombre de threads disponibles en fonction des ressources matérielles.

2. Détection binaire sophistiquée

L'outil combine plusieurs mécanismes pour identifier les fichiers binaires :

  • L’analyse de l’extension (ex. .png, .exe).

  • La vérification du type MIME.

  • La détection de caractères non textuels dans le contenu.

3. Mise en cache intelligente

Le contenu des fichiers est mis en cache temporairement pour éviter des lectures répétées lors de l’analyse.


Configuration par défaut de PMP

PMP propose un ensemble de paramètres par défaut, ajustables selon tes besoins via des options en ligne de commande ou des variables d’environnement.

ParamètreValeur par défaut
Taille minimale des fichiers1 KB
Taille maximale des fichiers100 MB
Répertoire de sortie./prompts
Respect des règles .gitignoreActivé

Utilisation dans un pipeline CI/CD

PMP s’intègre facilement dans un pipeline CI/CD pour générer automatiquement des prompts à chaque modification importante du projet. Voici un exemple de configuration dans GitLab CI :

generate_ia_prompt: stage: analysis image: golang:1.21 script: - curl -sSL https://raw.githubusercontent.com/benoitpetit/prompt-my-project/master/scripts/install.sh | bash - pmp --output ./artifacts/prompts artifacts: paths: - ./artifacts/prompts/

Conclusion

PMP ne remplace ni une revue du contexte ni le jugement du développeur. Il réduit surtout le travail mécanique : parcourir l'arborescence, respecter .gitignore, sélectionner des fichiers et produire un prompt que l'on peut relire avant de l'envoyer à un modèle. C'est cette étape de préparation, souvent invisible, qui a motivé le projet.

GitHub pour découvrir le code et les commandes disponibles. Si tu utilises ensuite un agent de développement, OpenHands est un exemple où ce contexte préparé peut servir de point de départ.

Article co-écrit avec l'IA · Images générées avec l'IA.