GenCodeDoc

Intelligent code versioning (snapshots) and automatic documentation generator. With CLI, REST API, and MCP support.

🚀 GenCodeDoc

Système de versioning intelligent et générateur de documentation, avec support complet du protocole MCP.

Python 3.10+ Poetry MCP Compatible License: MIT

Un outil de versioning et de documentation intelligent pour les workflows de développement modernes.


GenCodeDoc est un outil puissant qui réinvente la manière de suivre l'évolution d'un projet de code. Il combine un système de snapshots intelligents avec déduplication, un générateur de documentation Markdown, et une interface complète (CLI, API REST, MCP) pour l'automatisation et l'intégration avec des assistants IA.

Pour une documentation technique détaillée (architecture, API complète, etc.), consultez notre GUIDE COMPLET.

✨ Fonctionnalités Principales

  • 📸 Snapshots Intelligents : CrĂ©ez des "photographies" de votre projet avec une Ă©conomie d'espace de ~70% grâce Ă  la dĂ©duplication de contenu par hash.
  • 🔄 Autosave Intelligent : ProtĂ©gez votre travail avec 3 modes d'enregistrement automatique (basĂ© sur le temps, les changements, ou un mode hybride).
  • 📝 Documentation AutomatisĂ©e : GĂ©nĂ©rez une documentation Markdown complète de votre projet, incluant l'arborescence des fichiers et des extraits de code.
  • 🔍 Diff AvancĂ© : Comparez n'importe quelles versions de votre projet avec un diff unifiĂ© (style Git), JSON (pour les scripts) ou sĂ©mantique (AST, expĂ©rimental).
  • 🔌 Triple Interface : Utilisez GenCodeDoc de la manière qui vous convient le mieux :
    • CLI : Une interface en ligne de commande complète et intuitive.
    • API REST : IntĂ©grez GenCodeDoc dans vos propres applications via HTTP.
    • MCP : Pilotez l'outil avec une IA (Gemini, Claude) grâce Ă  17 outils exposĂ©s via le Model-Context-Protocol.

📦 Installation

Prérequis

  • Python 3.10+
  • Poetry pour la gestion des dĂ©pendances.

Étapes d'installation

  1. Clonez le dépôt :

    git clone https://github.com/VOTRE_NOM/gencodedoc.git
    cd gencodedoc
    
  2. Installez les dépendances avec Poetry :

    poetry install
    
  3. Vérifiez l'installation :

    poetry run gencodedoc --help
    

⚡ Guide de Démarrage Rapide

Une fois installé, voici comment démarrer avec un projet existant :

  1. Initialisez GenCodeDoc dans votre projet :

    # Naviguez vers votre projet
    cd /path/to/your/project
    
    # Initialisez avec un preset (ex: python)
    poetry run gencodedoc init --preset python
    

    Presets disponibles : python, nodejs, go, web.

  2. Créez votre premier snapshot :

    poetry run gencodedoc snapshot create --message "Version initiale du projet" --tag v1.0
    
  3. Générez la documentation :

    poetry run gencodedoc doc generate --output "PROJECT_DOCS.md"
    

    Un fichier PROJECT_DOCS.md sera créé avec la documentation complète.

  4. (Optionnel) Activez l'autosave :

    poetry run gencodedoc config set autosave.enabled true
    

🔌 Intégration MCP (Pour les Assistants IA)

GenCodeDoc est conçu pour être piloté par des IA. Il expose ses 17 outils via 3 modes de transport.

  • stdio : Pour les clients CLI comme Gemini CLI.
  • SSE (Server-Sent Events) : Pour les applications web ou de bureau comme Claude Desktop.
  • REST : Pour toute intĂ©gration personnalisĂ©e via une API HTTP.

Configuration pour Gemini CLI (stdio)

  1. Trouvez le chemin de votre environnement virtuel Poetry :

    # Depuis le dossier de gencodedoc
    poetry env info --path 
    # Copiez le chemin retourné
    
  2. Ajoutez le serveur Ă  la configuration de votre client MCP : (Exemple pour gemini-cli)

    {
      "mcpServers": {
        "gencodedoc": {
          "command": "/path/to/your/poetry-venv/bin/python",
          "args": ["-m", "gencodedoc.mcp.server_stdio"],
          "env": {
            "PROJECT_PATH": "/path/to/your/target-project"
          }
        }
      }
    }
    

    Remplacez /path/to/your/poetry-venv par le chemin de l'étape 1 et PROJECT_PATH par le projet que vous voulez gérer.

Démarrer les serveurs SSE / REST

# Pour le serveur SSE (Claude Desktop)
poetry run python -m gencodedoc.mcp.server_sse

# Pour le serveur REST
poetry run python -m gencodedoc.mcp.server

Les deux serveurs fonctionnent sur http://127.0.0.1:8000.


🧰 Référence des Outils

GenCodeDoc offre une CLI complète et une API MCP/REST riche.

Commandes CLI Principales

  • gencodedoc init : Initialise un projet.
  • gencodedoc snapshot create|list|show|diff|restore|delete : Gère les snapshots.
  • gencodedoc doc generate|preview|stats : Gère la documentation.
  • gencodedoc config show|edit|set|preset|ignore : Gère la configuration.
  • gencodedoc status : Affiche l'Ă©tat actuel du projet.

Outils MCP (17 outils)

Un résumé des outils disponibles pour les IA :

  • Gestion des Snapshots (6 outils) : create_snapshot, list_snapshots, get_snapshot_details, restore_snapshot, delete_snapshot, diff_versions.
  • Documentation (3 outils) : generate_documentation, preview_structure, get_project_stats.
  • Gestion de Projet (2 outils) : init_project, get_project_status.
  • Configuration (3 outils) : get_config, set_config_value, apply_preset, manage_ignore_rules.
  • Autosave (3 outils) : start_autosave, stop_autosave, get_autosave_status.

Une fois configuré, vous pouvez simplement demander à votre IA :

"Crée un snapshot avec le tag v2.1 et le message 'Correction du bug de connexion'" "Montre-moi les différences entre la version v2.0 et la version actuelle" "Génère la documentation complète du projet"


🏗️ Architecture et Fonctionnement

GenCodeDoc est construit autour d'un noyau logique qui gère la configuration, le versioning et la génération de documents. Ce noyau est exposé via différentes interfaces (CLI, MCP).

Le stockage est optimisé pour être à la fois performant et économe en espace :

  • SQLite est utilisĂ© pour stocker toutes les mĂ©tadonnĂ©es (snapshots, fichiers, etc.).
  • Le contenu des fichiers est dĂ©dupliquĂ© via un hash SHA256. Un mĂŞme fichier, mĂŞme prĂ©sent dans 100 snapshots, n'est stockĂ© qu'une seule fois.
  • Les contenus sont ensuite compressĂ©s avec zstandard pour rĂ©duire encore plus l'empreinte disque.

🤝 Contribution

Les contributions sont les bienvenues !

  1. Forkez le projet.
  2. Créez une branche pour votre fonctionnalité (git checkout -b feature/ma-super-feature).
  3. Commitez vos changements (git commit -m 'Ajout de ma super feature').
  4. Poussez votre branche (git push origin feature/ma-super-feature).
  5. Ouvrez une Pull Request.

📝 Licence

Ce projet est sous licence MIT. Voir le fichier LICENSE for pour plus de détails.

Related Servers