karlost/digidocs

AI-powered Laravel documentation generator with dual documentation types (developer + user) and intelligent change analysis

0.3.1 2025-05-30 06:15 UTC

This package is auto-updated.

Last update: 2025-05-30 06:16:13 UTC


README

Version Laravel PHP

Digidocs is an advanced Laravel package that automatically generates comprehensive documentation using AI. It creates both developer documentation (technical API docs) and user documentation (end-user guides) with intelligent change analysis and real-time Git monitoring.

✨ Key Features

πŸ“š Dual Documentation Types

  • πŸ‘¨β€πŸ’» Developer Documentation - Technical API docs for code maintainers
  • πŸ‘₯ User Documentation - End-user guides for application users
  • 🧠 Intelligent routing - Automatically determines which type to generate

πŸ€– AI-Powered Generation

  • πŸ€– Advanced AI models - Uses OpenAI/GPT-4, Claude, Gemini, and more
  • 🧠 Intelligent change analysis - Separate agents for developer vs user impact
  • πŸ“Š Context-aware - Understands Laravel patterns and user workflows

πŸ”„ Smart Change Detection

  • 🎯 UserChangeAnalysisAgent - Analyzes UI/UX impact for user docs
  • πŸ› οΈ ChangeAnalysisAgent - Analyzes API changes for developer docs
  • πŸ“‹ Documented parts tracking - Tracks which code parts are documented
  • πŸ”„ Git commit monitoring - Processes only changed files

⚑ Advanced Features

  • 🌍 Universal Language Support - Any ISO language code (cs-CZ, ja-JP, ar-SA, zh-CN, etc.)
  • πŸ‘οΈ Real-time watch mode - Continuous monitoring with automatic regeneration
  • πŸ“Š Semantic analysis - Distinguishes between public API and private changes
  • πŸ’Ύ SQLite tracking - Efficient tracking of changes, analyses and documentation
  • πŸ› οΈ NeuronAI architecture - Modular system with specialized Agents and Tools
  • πŸ” Laravel context - Recognizes Controllers, Models, Blade templates, Routes
  • πŸ’° Cost tracking - Detailed token usage and cost statistics
  • 🎯 High efficiency - Skip rate up to 85% thanks to intelligent analysis

πŸš€ Installation

composer require karlost/digidocs

βš™οΈ Configuration

# 1. Publish configuration file
php artisan vendor:publish --tag=digidocs-config

# 2. Set API key in .env
AUTODOCS_AI_KEY=your-openai-api-key

# 3. Configure languages in .env (optional)
DIGIDOCS_LANGUAGES=cs-CZ,en-US,ja-JP
DIGIDOCS_DEFAULT_LANGUAGE=cs-CZ

🌍 Language Configuration

DigiDocs supports any ISO language code without code modifications:

// config/digidocs.php
'languages' => [
    'enabled' => ['cs-CZ', 'en-US', 'ja-JP', 'de-DE', 'pl-PL', 'zh-CN'],
    'default' => 'cs-CZ',
],

Supported examples:

  • cs-CZ (Czech), en-US (English), de-DE (German)
  • ja-JP (Japanese), ko-KR (Korean), zh-CN (Chinese)
  • ar-SA (Arabic), hi-IN (Hindi), th-TH (Thai)
  • pt-BR (Portuguese Brazil), es-MX (Spanish Mexico)
  • Any ISO 639-1 + ISO 3166-1 combination!

AI automatically recognizes and generates documentation in the specified language.

πŸ“‹ Usage

οΏ½β€πŸ’» Developer Documentation (Technical API Docs)

php artisan digidocs:autodocs [options]

Available options:

  • --force - Force regeneration even for unchanged files
  • --dry-run - Show what would be processed without generating
  • --path=PATH - Process specific paths (can be used multiple times)
  • --stats - Show documentation statistics
  • --cost - Show token usage and cost statistics
  • --cleanup - Clean database from non-existent files

Intelligent analysis:

  • 🧠 ChangeAnalysisAgent decides whether to regenerate documentation
  • βœ… Public API changes β†’ Regenerates documentation
  • ⏭️ Private changes/whitespace β†’ Skips regeneration
  • πŸ“Š Tracks documented parts of code for more precise decisions

πŸ‘₯ User Documentation (End-User Guides)

php artisan digidocs:userdocs [options]

Available options:

  • --lang=ISO_CODE - Generate in specific language (e.g., --lang=ja-JP)
  • --force - Force regeneration of all user documentation
  • --dry-run - Show what would be processed without generating
  • --stats - Show documentation statistics
  • --cost - Show token usage and cost statistics

Language examples:

php artisan digidocs:userdocs --lang=cs-CZ    # Czech
php artisan digidocs:userdocs --lang=ja-JP    # Japanese
php artisan digidocs:userdocs --lang=ar-SA    # Arabic

User documentation features:

  • 🎯 UserChangeAnalysisAgent - Analyzes changes from user perspective
  • πŸ–₯️ UI/UX focus - Prioritizes Blade templates, routes, and user-facing changes
  • πŸ“± Application-level docs - Generates structured guides with sections
  • πŸ”„ Smart regeneration - Only updates when user experience is affected
  • πŸ“Š Impact scoring - Rates changes by user impact (0-100)
  • πŸ“‚ Section-based organization - Organizes content by user workflows
  • πŸ”— Cross-references - Links between related sections

πŸš€ All Documentation (Combined Generation)

php artisan digidocs:alldocs [options]

Available options:

  • --lang=ISO_CODE - Generate user docs in specific language (e.g., --lang=pl-PL)
  • --code-only - Generate only developer documentation
  • --user-only - Generate only user documentation
  • --all - Process all files for code documentation (not just Git changes)
  • --force - Force regeneration of all documentation
  • --path=PATH - Specific paths to process for code docs

Examples:

php artisan digidocs:alldocs                    # Both types, default language
php artisan digidocs:alldocs --lang=ja-JP       # Both types in Japanese
php artisan digidocs:alldocs --code-only --all  # Only developer docs, all files

πŸ‘οΈ Watch Mode - Real-time Git Commit Monitoring

php artisan digidocs:watch [options]

Available options:

  • --interval=SECONDS - Check interval in seconds (default: 5)
  • --path=PATH - Specific paths to watch (can be used multiple times)
  • --code-only - Generate only developer documentation
  • --user-only - Generate only user documentation

Watch mode features:

  • πŸ”„ Real-time monitoring - Monitors Git commits continuously
  • 🧠 Intelligent analysis - Separate agents for dev vs user docs
  • 🎯 Smart filtering - Only processes relevant changes
  • πŸ›‘ Graceful shutdown - Ctrl+C for clean exit
  • πŸ“š Unified processing - Both documentation types in one command

πŸ€– Supported AI Providers

Tested and verified:

  • βœ… OpenAI GPT-4.1 Nano - Fully tested and optimized (recommended)

Supported but not extensively tested:

  • πŸ”Ά OpenAI - GPT-4o, GPT-4, GPT-3.5, O3, O4-mini
  • πŸ”Ά Anthropic - Claude 4, Claude 3.7, Claude 3.5, Claude 3
  • πŸ”Ά Gemini - Gemini 1.5 Pro/Flash, Gemini 2.0 Flash
  • πŸ”Ά Deepseek - Deepseek Chat/Coder
  • πŸ”Ά Mistral - Mistral Large/Medium/Small
  • πŸ”Ά Ollama - Local models (free)

Note: All testing was performed with GPT-4.1 Nano model. Other providers are supported through NeuronAI framework but may require additional configuration or testing.

Automatic pricing: Model prices are configurable in config/digidocs/pricing.php.

πŸ’‘ Quick Start

# 1. Install and configure
composer require karlost/digidocs
php artisan vendor:publish --tag=digidocs-config

# 2. Set API key in .env
AUTODOCS_AI_KEY=your-openai-api-key

# 3. Generate documentation
php artisan digidocs:autodocs              # Developer documentation
php artisan digidocs:userdocs              # User documentation  
php artisan digidocs:alldocs               # Both types combined
php artisan digidocs:watch                 # Watch mode for both types

# 4. Multi-language generation
php artisan digidocs:userdocs --lang=ja-JP # Japanese user docs
php artisan digidocs:alldocs --lang=de-DE  # German docs (both types)

# 5. View statistics and costs
php artisan digidocs:autodocs --stats --cost

🧠 Intelligent Analysis Examples

Developer documentation:

  • ⏭️ Private changes β†’ Skipped (no significant changes)
  • βœ… Public API changes β†’ Generated documentation

User documentation:

  • ⏭️ Backend changes β†’ Skipped (low user impact)
  • βœ… UI/UX changes β†’ Updated relevant sections

πŸ“Š Documentation Quality

πŸ‘¨β€πŸ’» Developer Documentation

Generates comprehensive technical documentation with:

  • File overview and its purpose
  • Complete API documentation - all public methods and properties
  • Laravel context - relationships, scopes, middleware, etc.
  • Practical usage examples with working code
  • Dependencies and relationships - clear integration points

πŸ‘₯ User Documentation

Creates user-friendly application guides with:

  • Application overview - what the app does for users
  • Feature sections - organized by user workflows
  • Step-by-step guides - how to accomplish tasks
  • Cross-referenced sections - linked content organization
  • User-focused language - non-technical explanations

πŸ“ Output Structure

Developer documentation:

docs/code/
β”œβ”€β”€ Http/
β”‚   β”œβ”€β”€ Controllers/
β”‚   β”œβ”€β”€ Middleware/
β”‚   └── ...
β”œβ”€β”€ Models/
β”œβ”€β”€ Services/
β”œβ”€β”€ config/
└── routes/

User documentation:

docs/user/
β”œβ”€β”€ index.md              # Main application guide
└── sections/
    β”œβ”€β”€ uΕΎivatelskΓ©-rozhranΓ­.md
    β”œβ”€β”€ navigace.md
    β”œβ”€β”€ formulΓ‘Ε™e.md
    β”œβ”€β”€ funkcionality.md
    └── ...

πŸ“ˆ Performance & Testing

Proven efficiency:

  • ⚑ 56.5% skip rate - Intelligent analysis avoids unnecessary regeneration
  • 🎯 90.5% average confidence - High-quality analysis decisions
  • πŸ’° Cost-effective - Only ~$0.26 for 350 API calls and 2M+ tokens
  • πŸš€ Real-time processing - Watch mode with instant Git commit detection

Comprehensive testing:

  • βœ… 21 documented files across Models, Controllers, Services, Middleware
  • βœ… Complex commits with multiple file types and changes
  • βœ… Watch mode tested with real-time Git monitoring
  • βœ… Both documentation types verified for quality and accuracy
  • βœ… Cost tracking validated for precise token and pricing calculations

πŸ“‹ Changelog

🌍 v0.3.0 - Universal Language Support (2025-05-29)

πŸ†• New Features:

  • 🌍 Universal ISO Language Support - Any ISO language code now supported (cs-CZ, ja-JP, ar-SA, zh-CN, etc.)
  • πŸš€ New alldocs Command - Combined generation of both developer and user documentation
  • πŸ€– AI-Powered Language Detection - AI automatically recognizes and generates in specified language
  • πŸ”§ Simplified Configuration - No hardcoded languages, pure config-based language management

✨ Improvements:

  • 🧹 Removed 70+ hardcoded languages from PHP code - now config-only
  • πŸ“ Enhanced Language Instructions - Simplified AI prompts for better language recognition
  • πŸ› οΈ Fixed Memory System - Added missing remember() and search() methods
  • πŸ”— Updated Cross-Reference Manager - Dynamic language support across all agents

πŸ§ͺ Testing:

  • βœ… Comprehensive Multi-Language Testing - Czech, English, and Polish fully tested
  • βœ… Memory System Validation - SQLite database and vector storage verified
  • βœ… 17 Generated Documents - 5 code docs + 12 user docs across multiple languages
  • βœ… Zero-Config Language Addition - New languages work instantly without code changes

πŸ“š Examples of Supported Languages:

  • European: cs-CZ (Czech), en-US (English), de-DE (German), fr-FR (French)
  • Asian: ja-JP (Japanese), ko-KR (Korean), zh-CN (Chinese), hi-IN (Hindi)
  • Middle East: ar-SA (Arabic), he-IL (Hebrew), fa-IR (Persian)
  • African: sw-KE (Swahili), am-ET (Amharic), zu-ZA (Zulu)
  • And many more - any ISO 639-1 + ISO 3166-1 combination!

v0.2.0 - User Documentation & Advanced Analysis (2025-05-27)

  • Added UserDocumentationOrchestrator with complete user-focused documentation generation
  • Implemented UserChangeAnalysisAgent for user-impact analysis
  • Added comprehensive testing with 100% success rate across 24 test scenarios
  • Enhanced memory systems with RAG implementation

v0.1.0 - Initial Release (2025-05-25)

  • Core DigiDocs functionality with AI-powered documentation generation
  • Developer documentation with intelligent change analysis
  • Git commit monitoring and real-time watch mode
  • Cost tracking and performance optimization