Configure AI Document Creator to automatically generate documentation for your repositories.
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.
[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.
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.
Portal URL: https://woden-ai.com/portal
🔧 Alternative: Git Method
For documentation rebuild:
git checkout -b wai-docs-update
git commit --allow-empty -m "Rebuild docs"
git push origin wai-docs-updateAlternative: 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-buildAlternative: 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⚠️ 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.
.github/wai-docbot.ymlCreate 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"
✨ 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_modeType: "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_overridesType: 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_branchesType: 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 matchesrelease/* — Matches all release branches (e.g., release/1.0.0, release/v2.0)hotfix/* — Matches all hotfix brancheswai-docs-update — Special branch for full repository documentation rebuildsinclude_extensionsType: 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:
.py.js, .jsx, .ts, .tsx, .mjs, .cjs.html, .css, .scss, .sass.c, .cpp, .h, .hpp.cs, .vb, .fs.java, .kt, .kts.go.rs.sh, .bash, .ps1.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.
excludeType: 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 controlpreferences.require_pr_approvalType: boolean | Default: true
When true, DocBot posts an approval request on each PR instead of automatically generating documentation.
When true (default):
/docbot-approve to proceedWhen false:
preferences.include_code_linksType: boolean | Default: true
Include links to source code line numbers in GitHub for easy navigation.
preferences.include_examplesType: boolean | Default: true
Include usage examples in function documentation where applicable.
preferences.document_root_filesType: 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.
guide_projectsType: 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:
"" for entire docs folder)[] (empty) to intelligently include all documentation files, or specify keywords like ["api", "service", "database"] to focus on specific topicsWhat guides are generated:
Each project entry creates one consolidated Architecture & Process Overview that includes:
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 filesCreates: 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 docsCreates: 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.
Once installed, documentation is generated automatically when PRs are opened. No commands needed.
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).
Need to regenerate documentation after making quick changes to your PR? Simply comment:
/docbot-rerunWhat 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.
| Plan | Monthly Cost | Tokens Included | Approx. Files/Month | Availability |
|---|---|---|---|---|
| Free | $0 | 500,000 lifetime + 250M monthly pool (shared) | ~80-100 total | ✅ Available Now |
| Entry | $10 | 500,000 | ~120-150 | 🔮 Coming Soon |
| Small | $50 | 3,000,000 | ~720-900 | 🔮 Coming Soon |
| Medium | $150 | 10,000,000 | ~2,400-3,000 | 🔮 Coming Soon |
| Enterprise | $500 | 50,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).
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.
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.
When issues occur, AI Document Creator automatically generates a pre-filled support email with:
Simply click the mailto link in the error message to send the report directly to our support team. No need to manually gather diagnostics!
Solution: Verify repository access granted in GitHub Settings Applications AI Document Creator
Check: PR comment for error messages. Common issues: invalid config file, token limit exceeded, or excluded files.
Verify: File named exactly .github/wai-docbot.yml with valid YAML syntax.
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)