AI Document Creator - Setup Guide

Configure AI Document Creator to automatically generate documentation for your repositories.

How It Works

AI Document Creator monitors your pull requests and generates comprehensive documentation for your code changes. Documentation is committed directly to your repository in the documentation folder of your choice.

1. PR Opened: App detects new pull request
2. Analysis: AI analyses code changes using appropriate language models
3. Documentation: Generates comprehensive docs with examples and usage
4. Commit: Docs committed to the folder of your choice in your repo (with [skip ci] to avoid triggering your CI/CD pipelines)

🚫 CI/CD Safe: All documentation commits include [skip ci][ci skip] tags, which prevent triggering your CI/CD pipelines (GitHub Actions, Azure Pipelines, GitLab CI, etc.). This avoids race conditions with deployment workflows and reduces unnecessary pipeline runs.

Installation

  1. Install from GitHub Marketplace: AI Document Creator
  2. Grant repository access during installation
  3. Start with free tier (500K tokens) or choose a paid plan

🚀 Getting Started - Triggering Builds

After installation, generate documentation for your entire repository:

✨ Easiest Method - Use the Portal

Log in to the Woden Portal, select your installation, and click the "Rebuild Docs" or "Generate Guides" buttons. No git commands needed - triggers happen automatically with one click.

  • Rebuild Docs: Full documentation regeneration for all repository files
  • Generate Guides: Create architecture guides with Mermaid diagrams
  • ✅ Automatic PR creation - DocBot handles all the git operations

🔧 Alternative: Git Method

For documentation rebuild:

git checkout -b wai-docs-update
git commit --allow-empty -m "Rebuild docs"
git push origin wai-docs-update

Alternative: Add [DOCS-REBUILD] to any PR title

For architecture guides generation:

git checkout -b wai-guides-build
git commit --allow-empty -m "Generate guides"
git push origin wai-guides-build

Alternative: Add [GUIDES-REBUILD] to any PR title

⚠️ Approval Required

Full rebuilds require approval. When you create the PR, DocBot will post a cost estimate. To approve the rebuild, comment:

/docbot-rebuild-approve

Repository Configuration (Highly Recommended)

⚠️ Configuration is Critical: While DocBot works with defaults, proper YAML configuration is essential for optimal performance. Use include_extensions to explicitly specify which file types to document (e.g., .py, .ts), and exclude to skip build artifacts (node_modules/, dist/), test files, and dependencies. Always configure both inclusions and exclusions for your project type.

📝 Configuration File: .github/wai-docbot.yml

Create this file in your repository at .github/wai-docbot.yml to customize DocBot's behavior. The configuration below is a complete, production-ready template with all available options and detailed explanations.

# Woden DocBot Configuration
# Place this file at: .github/wai-docbot.yml in your repository

# ============================================================================
# OUTPUT MODE
# ============================================================================
# What kind of documentation to emit per PR.
#   "directory" (recommended): one README per changed directory, summarising
#                              the files and how they relate, with an
#                              auto-selected Mermaid architecture diagram
#   "file":     per-file READMEs (the legacy default — preserved for
#               existing customers whose YAML lacks this field)
#   "both":     emit both. Higher token cost, maximum detail.
output_mode: "directory"

# ============================================================================
# PER-DIRECTORY OVERRIDES
# ============================================================================
# Per-directory tweaks to the defaults. Each entry needs `path`; the other
# fields are optional. Paths are matched exactly — no globs.
#
# directory_overrides:
#   - path: "src/api"
#     diagram_type: "sequence"        # force a diagram type for this dir
#     # diagram_type values: class_hierarchy | state_machine | data_model |
#     # sequence | component_dependency | module_relationship | none | auto
#   - path: "src/legacy"
#     skip_readme: true               # process the directory (the cache is
#                                     # populated) but suppress the README

# ============================================================================
# DOCUMENTATION FOLDER
# ============================================================================
# Where generated documentation will be stored in your repository.
# Always "_docs" in Phase 2; this field is reserved for future customisation.
docs_folder: "_docs"

# ============================================================================
# BRANCH FILTERING
# ============================================================================
# Control which target branches trigger documentation generation
# DocBot only processes PRs targeting these branches
# Supports wildcard patterns (e.g., release/* matches release/1.0.0, release/v2.0)
allowed_base_branches:
  - "main"           # Primary branch
  - "master"         # Alternative primary branch
  - "develop"        # Development branch
  - "release/*"      # Matches: release/1.0.0, release/v2.0, etc.
  - "hotfix/*"       # Matches: hotfix/critical-bug, hotfix/security-patch
  - "staging"        # Pre-production environment
  - "wai-docs-update"  # Special branch name that triggers full repository rebuilds

# ============================================================================
# DOCUMENTATION PREFERENCES
# ============================================================================
preferences:
  include_code_links: true       # Include links to source code line numbers
  include_examples: true         # Include usage examples in documentation
  require_pr_approval: true      # Auto-generate (false) or require approval (true)
  document_root_files: true      # Create separate README for root-level files

# ============================================================================
# GUIDE GENERATION - Architecture Guides
# ============================================================================
# Generate comprehensive architecture guides that document your project's
# structure, workflows, and key components
guide_projects:
  - name: architecture
    path: "."  # Root documentation folder - includes all docs
    purpose: "Document the overall architecture, workflows, and key components of the project"
    patterns: []  # Empty patterns = intelligently includes all relevant documentation

# ============================================================================
# FILE EXTENSION INCLUSION LIST
# ============================================================================
# ONLY files with these extensions will be documented
# Add or remove extensions based on your project's needs
include_extensions:
  # Python
  - ".py"

  # JavaScript/TypeScript
  - ".js"
  - ".jsx"
  - ".ts"
  - ".tsx"
  - ".mjs"
  - ".cjs"

  # Web
  - ".html"

  # C/C++
  - ".c"
  - ".cpp"
  - ".cc"
  - ".cxx"
  - ".h"
  - ".hpp"
  - ".hxx"

  # C#/.NET
  - ".cs"
  - ".vb"
  - ".fs"

  # Java/Kotlin
  - ".java"
  - ".kt"
  - ".kts"

  # Go
  - ".go"

  # Rust
  - ".rs"

  # Ruby
  - ".rb"

  # PHP
  - ".php"

  # Swift
  - ".swift"

  # Shell scripts
  - ".sh"
  - ".bash"
  - ".zsh"
  - ".fish"

  # PowerShell
  - ".ps1"
  - ".psm1"
  - ".psd1"

  # SQL
  - ".sql"

  # R
  - ".r"
  - ".R"

  # Scala
  - ".scala"

  # Dart
  - ".dart"

  # Lua
  - ".lua"

  # Infrastructure as Code
  - ".tf"    # Terraform
  - ".yaml"  # YAML (for Kubernetes, etc.)
  - ".yml"   # YAML (for Kubernetes, etc.)
  - ".bicep" # Bicep

# ============================================================================
# FILE/FOLDER EXCLUSION LIST
# ============================================================================
# Glob patterns for files and directories to EXCLUDE from documentation
# Customize by adding your own patterns or removing defaults that don't apply
exclude:
  # Custom exclusions for this project (uncomment and modify as needed)
  # - "iac/**"  # Infrastructure as code

  ## STANDARD EXCLUSIONS ##

  # Dependencies and package managers
  - "node_modules/**"
  - "vendor/**"
  - "**/package-lock.json"
  - "**/yarn.lock"
  - "**/pnpm-lock.yaml"
  - "**/composer.lock"
  - "**/Gemfile.lock"
  - "**/Pipfile.lock"
  - "**/poetry.lock"
  - "**/__pycache__/**"
  - "**/*.pyc"
  - "**/*.pyo"
  - "**/*.pyd"
  - ".venv/**"
  - "env/**"

  # Build outputs and generated files
  - "dist/**"
  - "build/**"
  - "**/build/**"
  - "**/bin/**"
  - "**/obj/**"
  - "**/out/**"
  - "**/target/**"
  - "**/.next/**"
  - "**/coverage/**"
  - "**/.cache/**"
  - "**/.parcel-cache/**"
  - "**/.webpack/**"
  - "**/.turbo/**"

  # Minified and bundled files
  - "**/*.min.js"
  - "**/*.min.css"
  - "**/*.bundle.js"
  - "**/*.bundle.css"
  - "**/*.map"
  - "**/*.chunk.js"

  # IDE and editor files
  - ".git/**"
  - ".gitignore"
  - "**/.gitignore"
  - ".gitattributes"
  - "**/.gitattributes"
  - "**/.idea/**"
  - "**/.vscode/**"
  - "**/.vs/**"
  - "**/.DS_Store"
  - "**/.history/**"
  - "**/.settings/**"
  - "**/.classpath"
  - "**/.project"
  - "**/*.swp"
  - "**/*.swo"
  - "**/*~"

  # Test coverage and cache
  - "**/.pytest_cache/**"
  - "**/.mypy_cache/**"
  - "**/.ruff_cache/**"
  - "**/__snapshots__/**"
  - "**/htmlcov/**"
  - "**/.nyc_output/**"

  # Environment and secrets
  - "**/.env"
  - "**/.env.*"
  - "**/local.settings.json"
  - "**/credential.json"
  - "**/*.pem"
  - "**/*.key"
  - "**/*.p12"
  - "**/*.crt"
  - "**/*.cer"
  - "**/secrets/**"
  - "**/*.secret"

  # Existing documentation (prevents circular documentation)
  - "**/*.md"
  - "**/*.mdx"
  - "docs/**"
  - "_docs_/**"
  - "**/README"
  - "**/CHANGELOG"
  - "**/LICENSE"

  # Interface and model definitions
  - "**/*.idl"
  - "**/*.proto"
  - "**/*.thrift"
  - "**/*.avdl"
  - "**/*.avpr"
  - "**/*.avsc"
  - "**/Interfaces/**"
  - "**/Interface/**"
  - "**/Models/**"

  # Style sheets and lint configuration files
  - "**/.eslintrc"
  - "**/.eslintrc.js"
  - "**/.eslintrc.json"
  - "**/.prettierrc"
  - "**/*.css"
  - "**/*.scss"
  - "**/*.less"
  - "**/tailwind.config.js"
  - "**/postcss.config.js"

  # Temporary and log files
  - "**/*.log"
  - "**/*.tmp"
  - "**/*.temp"
  - "**/tmp/**"
  - "**/temp/**"
  - "**/*.bak"
  - "**/*.backup"

Configuration Options

✨ What's new

DocBot now emits one README per directory with an auto-selected Mermaid architecture diagram. The new output_mode field below controls this — "directory" is the recommended default for new setups. An internal cache (_docs/.docbot-cache.json) speeds up subsequent PRs by reusing descriptions for files that haven't changed.

output_mode

Type: "file" | "directory" | "both" | Recommended: "directory"

What kind of documentation DocBot emits per PR:

  • "directory" — one README per changed directory, with file index, architecture notes, and an auto-selected Mermaid diagram. Recommended for new setups.
  • "file" — per-file READMEs. Legacy default — preserved when this field is absent from existing customers' YAML.
  • "both" — both. Higher token cost, maximum detail.

A master index at _docs/README.md links to every generated document regardless of mode.

directory_overrides

Type: array of override objects | Default: [] (empty)

Per-directory tweaks. Each entry requires path (matched exactly, no globs); the other fields are optional.

  • diagram_type — force a specific diagram type for this directory. Values: class_hierarchy, state_machine, data_model, sequence, component_dependency, module_relationship, none (no diagram), or auto (let DocBot pick — the default).
  • skip_readme — when true, the directory is still processed (the cache is populated, so PR comments reflect the work) but no README is emitted for it. Useful for legacy / generated folders.

allowed_base_branches

Type: array of strings | Default: ["main", "master", "develop", "release/*", "wai-docs-update"]

Target branches that DocBot will process PRs for. PRs targeting other branches will be skipped with an informative comment.

Supports wildcard patterns:

  • main, master, develop — Exact branch matches
  • release/* — Matches all release branches (e.g., release/1.0.0, release/v2.0)
  • hotfix/* — Matches all hotfix branches
  • wai-docs-update — Special branch for full repository documentation rebuilds

include_extensions

Type: array of strings

Explicitly specify which file extensions to document. Only files with these extensions will be processed. This provides precise control and prevents accidental processing of data files or binaries.

Common extensions by language:

  • Python: .py
  • JavaScript/TypeScript: .js, .jsx, .ts, .tsx, .mjs, .cjs
  • Web: .html, .css, .scss, .sass
  • C/C++: .c, .cpp, .h, .hpp
  • C#/.NET: .cs, .vb, .fs
  • Java/Kotlin: .java, .kt, .kts
  • Go: .go
  • Rust: .rs
  • Shell scripts: .sh, .bash, .ps1
  • IaC: .tf (Terraform), .yaml, .yml, .bicep

💡 Tip: Start with just your primary language extensions, then add more as needed. This prevents over-processing and reduces token usage.

exclude

Type: array of glob patterns

Files and folders to skip during documentation. Supports standard glob syntax.

Common exclusions:

  • node_modules/**, dist/**, build/** — Build artifacts
  • **/*.test.*, **/__tests__/** — Test files
  • .venv/**, venv/**, __pycache__/** — Python environments
  • .git/**, .github/** — Version control

Documentation Preferences

preferences.require_pr_approval

Type: boolean | Default: true

When true, DocBot posts an approval request on each PR instead of automatically generating documentation.

When true (default):

  • DocBot posts an approval request comment on new PRs
  • You must comment /docbot-approve to proceed
  • Token estimate is shown before you approve

When false:

  • Documentation generates automatically when PRs are opened
  • Faster workflow, ideal for active development
  • Available on paid plans only

preferences.include_code_links

Type: boolean | Default: true

Include links to source code line numbers in GitHub for easy navigation.

preferences.include_examples

Type: boolean | Default: true

Include usage examples in function documentation where applicable.

preferences.document_root_files

Type: boolean | Default: true

Generate a separate README (ROOT.md) for files in the repository root directory.

This creates dedicated documentation for root-level files (e.g., setup.py, main.py) alongside the master index. The root README is automatically linked from the master documentation index.

Architecture Guide Generation

guide_projects

Type: array of objects

Define which parts of your codebase to analyze for guide generation. Each entry creates one comprehensive architecture guide. Use multiple entries for monorepos (different components/services) or a single entry to document your entire project.

Each project entry has:

  • name: Identifier for the guide (e.g., "backend", "frontend", "api-service")
  • path: Documentation subfolder to scan (use "" for entire docs folder)
  • purpose: (Optional) Brief description of what this component does - helps AI generate more relevant insights
  • patterns: (Optional) Keywords to filter which doc files to include. Leave as [] (empty) to intelligently include all documentation files, or specify keywords like ["api", "service", "database"] to focus on specific topics

What guides are generated:

Each project entry creates one consolidated Architecture & Process Overview that includes:

  • System architecture and infrastructure design
  • Workflow processes and orchestration patterns
  • Data models, schemas, and storage structures
  • Component dependencies and interactions
  • API integrations and external interfaces
  • Mermaid diagrams visualizing architecture

Example: Single project (entire codebase)

guide_projects:
  - name: platform
    path: ""  # Analyze all documentation
    purpose: "E-commerce platform with order processing and inventory management"
    patterns: []  # Include all doc files

Creates: docs/guides/projects/platform.md

Example: Monorepo (multiple services)

guide_projects:
  - name: backend-api
    path: "src/backend"
    purpose: "REST API and webhook handlers"
    patterns: ["api", "endpoint", "webhook", "function"]
  
  - name: frontend
    path: "src/frontend"  
    purpose: "React web application"
    patterns: ["component", "page", "hook"]
  
  - name: infrastructure
    path: "iac"
    purpose: "Azure Bicep templates"
    patterns: []  # Include all IaC docs

Creates: backend-api.md, frontend.md, infrastructure.md in docs/guides/projects/

💡 Tip: Start with empty patterns

Use patterns: [] (empty) to let AI intelligently select relevant documentation files. Only add specific patterns if you want to narrow focus to particular topics or exclude certain areas.

Usage

Automatic Processing

Once installed, documentation is generated automatically when PRs are opened. No commands needed.

Free Tier

Every customer gets 500,000 lifetime tokens to explore the full product with no time limit. The free tier includes all features - automatic PR processing, full rebuilds, and manual reruns. No credit card required, no subscription.

Fair usage: All free tier customers share a monthly pool of 250 million tokens. This ensures the service remains sustainable and available for everyone while you decide if DocBot is right for your team.

Paid plans: Dedicated token allocations with guaranteed capacity (coming soon after GitHub marketplace verification).

Manual Re-runs

Need to regenerate documentation after making quick changes to your PR? Simply comment:

/docbot-rerun

What it does: Immediately regenerates documentation with your latest code changes. Bypasses the 5-minute safety window and re-analyzes all changed files. Perfect for when you've made quick fixes or config adjustments and want fresh documentation without waiting.

Pricing

PlanMonthly CostTokens IncludedApprox. Files/MonthAvailability
Free$0500,000 lifetime
+ 250M monthly pool (shared)
~80-100 total✅ Available Now
Entry$10500,000~120-150🔮 Coming Soon
Small$503,000,000~720-900🔮 Coming Soon
Medium$15010,000,000~2,400-3,000🔮 Coming Soon
Enterprise$50050,000,000+~12,000-15,000+🔮 Coming Soon

Free Tier Fair Usage: All free tier customers share a 250M monthly token pool to ensure service sustainability. Paid plans will offer dedicated allocations once available after GitHub marketplace verification (100 installations required).

🤖 Enhanced Development with AI Agents

Unlock powerful AI-assisted development by connecting your DocBot documentation to GitHub Copilot or other AI coding agents. The comprehensive, AI-generated documentation in your docs/ folder provides agents with accurate, up-to-date context about your entire codebase.

Benefits for AI Agents:

  • Detailed Function Documentation: Parameters, return values, and function relationships
  • Codebase Understanding: Purpose and organization of each module
  • Efficient Navigation: Direct links to source code with line numbers
  • Accurate Context: Always up-to-date information about your code structure

Setup Instructions:

Add the following to the top of your .github/copilot-instructions.md file referencing your specific folder location to help GitHub Copilot discover and use your DocBot documentation:

## 📚 AI-Generated Code Documentation

**The `docs/` folder contains comprehensive, AI-generated documentation for the entire codebase.**

This documentation is automatically generated by DocBot and mirrors the repository structure, providing:

- **Detailed function-level documentation** - Parameters, return values, and function relationships
- **File overviews** - Purpose and functionality of each module
- **Directory indexes** - Organized navigation by folder structure
- **Direct source code links** - Line number references to actual code

**When assisting with development:**
- Consult `docs/` for accurate, up-to-date information about modules and functions
- Use the directory indexes to understand component organization
- Reference individual file documentation for detailed function APIs

**Documentation structure:**
- `docs/README.md` - Main documentation index
- `docs/src/` - Source code documentation
- Additional folders mirror your repository structure

💡 Pro Tip: Place this section at the top of your copilot-instructions.md so it's one of the first things AI agents see. Update the documentation structure paths to match your actual docs_folder configuration.

Troubleshooting

🔧 Automatic Error Reporting

When issues occur, AI Document Creator automatically generates a pre-filled support email with:

  • Error details and context
  • Repository and PR information
  • Configuration snapshot
  • Relevant logs

Simply click the mailto link in the error message to send the report directly to our support team. No need to manually gather diagnostics!

App not responding to PRs

Solution: Verify repository access granted in GitHub Settings Applications AI Document Creator

Documentation not generated

Check: PR comment for error messages. Common issues: invalid config file, token limit exceeded, or excluded files.

Configuration not recognised

Verify: File named exactly .github/wai-docbot.yml with valid YAML syntax.

Support

For technical support, billing questions, bug reports, or feature requests, please use the automatic error reporting feature built into DocBot or visit our GitHub repository.

Automatic Error Reporting: When issues occur, DocBot generates pre-filled mailto links with diagnostics

Response SLA: 24 hours (paid tiers)