Package Exports
- @techdebtgpt/archdoc-generator
- @techdebtgpt/archdoc-generator/dist/src/index.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@techdebtgpt/archdoc-generator) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
ποΈ ArchDoc Generator
AI-powered architecture documentation generator for any codebase using LangChain and multi-agent workflows.
ArchDoc Generator is an intelligent tool that analyzes your codebase and generates comprehensive, accurate architectural documentation automatically. It supports any programming language and uses AI-powered agents to understand your project structure, dependencies, patterns, security, and data flows.
π Table of Contents
- Features
- Quick Start
- CLI Usage
- Programmatic Usage
- Configuration
- What Gets Generated
- Available Agents
- Architecture Highlights
- Supported Languages
- Contributing
- License
β¨ Features
- π€ 7 Specialized Agents: File Structure, Dependencies, Patterns, Flows, Schemas, Architecture, and Security.
- π 17 Languages Out-of-the-Box: TypeScript, Python, Java, Go, C#, C/C++, Kotlin, PHP, Ruby, Rust, Scala, Swift, CSS, HTML, JSON, XML, Flex/ActionScript.
- π§ AI-Powered: Uses LangChain with Claude 4.5, GPT-5, Gemini 2.5, or Grok 3.
- π Comprehensive Analysis: Structure, dependencies, patterns, flows, schemas, and security.
- π Markdown Output: Clean, version-controllable documentation.
- π Iterative Refinement: Self-improving analysis with quality checks.
- π¨ Customizable: Prompt-based agent selection and configuration.
- π LangSmith Tracing: Full observability of AI workflows.
- π Security Analysis: Vulnerability detection, authentication review, and crypto analysis.
- β Extensible: Add support for any language via configurationβno code changes required.
π Quick Start
Installation
# Using npm
npm install -g @techdebtgpt/archdoc-generator
# Using yarn
yarn global add @techdebtgpt/archdoc-generator
# Using pnpm
pnpm add -g @techdebtgpt/archdoc-generatorInteractive Setup (Recommended)
Run the interactive configuration wizard:
archdoc config --initThis will:
- Prompt you to choose an LLM provider (Anthropic/OpenAI/Google).
- Ask for your API key.
- Create
.archdoc.config.jsonwith your configuration. - Validate your setup.
Basic Usage
# Analyze current directory
archdoc analyze
# Analyze specific project
archdoc analyze /path/to/your/project
# Focused analysis with prompt
archdoc analyze --prompt "analyze dependencies and security vulnerabilities"
# Custom output location
archdoc analyze --output ./docs
# Quick analysis (faster, less detailed)
archdoc analyze --depth quickCLI Usage
archdoc analyze [path] [options]Options:
| Option | Description | Default |
|---|---|---|
--output <dir> |
Output directory | .arch-docs |
--prompt <text> |
Focus analysis with natural language | |
--depth <level> |
Analysis depth: quick, normal, deep |
normal |
--provider <name> |
LLM provider: anthropic, openai, google |
|
--model <name> |
Specific model to use | |
--refinement |
Enable iterative refinement | true |
--refinement-iterations <n> |
Max refinement iterations | 5 |
--refinement-threshold <n> |
Clarity threshold % | 80 |
--no-clean |
Don't clear output directory | |
--verbose |
Show detailed progress |
π§ Programmatic Usage
Use the library in your Node.js applications:
import {
DocumentationOrchestrator,
AgentRegistry,
FileSystemScanner,
} from '@techdebtgpt/archdoc-generator';
// Setup registry with agents
const registry = new AgentRegistry();
const scanner = new FileSystemScanner();
const orchestrator = new DocumentationOrchestrator(registry, scanner);
// Generate documentation
const docs = await orchestrator.generateDocumentation('/path/to/project', {
maxTokens: 100000,
parallel: true,
iterativeRefinement: {
enabled: true,
maxIterations: 5,
clarityThreshold: 80,
},
});
console.log('Generated:', docs.summary);See the API Reference for complete programmatic documentation.
βοΈ Configuration
Environment Variables
| Variable | Description |
|---|---|
ANTHROPIC_API_KEY |
Anthropic Claude API key |
OPENAI_API_KEY |
OpenAI GPT API key |
GOOGLE_API_KEY |
Google Gemini API key |
XAI_API_KEY |
xAI Grok API key |
DEFAULT_LLM_PROVIDER |
Default provider (e.g., anthropic) |
DEFAULT_LLM_MODEL |
Default model (e.g., claude-sonnet-4-5-20250929) |
LANGCHAIN_TRACING_V2 |
Enable LangSmith tracing (true) |
LANGCHAIN_API_KEY |
LangSmith API key |
LANGCHAIN_PROJECT |
LangSmith project name |
See the Configuration Guide for detailed options.
π¨ What Gets Generated
The tool generates a multi-file documentation structure:
docs/
βββ index.md
βββ metadata.md
βββ file-structure.md
βββ dependencies.md
βββ patterns.md
βββ flows.md
βββ schemas.md
βββ architecture.md
βββ security.md
βββ recommendations.mdπ€ Available Agents
Each agent specializes in a specific analysis task:
| Agent | Purpose | Priority |
|---|---|---|
| File Structure | Project organization, entry points | HIGH |
| Dependency Analyzer | External deps, internal imports | HIGH |
| Architecture Analyzer | High-level design | HIGH |
| Pattern Detector | Design patterns, conventions | MEDIUM |
| Flow Visualization | Control & data flows | MEDIUM |
| Schema Generator | Data models, interfaces | MEDIUM |
| Security Analyzer | Vulnerabilities, auth, crypto | MEDIUM |
ποΈ Architecture Highlights
Multi-Agent System
The orchestrator coordinates agents to perform analysis.
βββββββββββββββββββββββββββββββ
β Documentation Orchestrator β
βββββββββββββββ¬ββββββββββββββ
β
βββββββββββ΄ββββββββββ
β Agent Registry β
βββββββββββ¬ββββββββββ
β
βββββΌβββββ βββββΌββββ βββββΌββββ
β Agent 1β β Agent 2β β Agent Nβ
ββββββββββ βββββββββ βββββββββSelf-Refining Analysis
Each agent autonomously improves its analysis through iterative refinement. It evaluates its own output, identifies gaps, searches for relevant code, and refines until quality thresholds are met.
Learn how the self-refinement workflow works β
LangChain LCEL Integration
All agents use LangChain Expression Language (LCEL) for composable AI workflows with unified LangSmith tracing.
π Language Support
ArchDoc Generator supports 17 programming and markup languages out-of-the-box with zero configuration:
Programming Languages
| Language | Extensions | Import Detection | Framework Support |
|---|---|---|---|
| TypeScript/JavaScript | .ts, .tsx, .js, .jsx, .mjs, .cjs |
ES6 imports, CommonJS require | NestJS, Express, React, Angular, Vue, Next.js |
| Python | .py, .pyi, .pyx |
from...import, import |
Django, Flask, FastAPI, Pyramid |
| Java | .java |
import statements |
Spring Boot, Quarkus, Micronaut |
| Go | .go |
import blocks |
Gin, Echo, Fiber, Chi |
| C# | .cs, .csx |
using statements |
ASP.NET, Entity Framework |
| C/C++ | .c, .cpp, .cc, .cxx, .h, .hpp, .hh |
#include directives |
Linux, POSIX |
| Kotlin | .kt, .kts |
import statements |
Spring, Ktor, Micronaut |
| PHP | .php |
use, require |
Laravel, Symfony |
| Ruby | .rb, .rake |
require statements |
Rails, Sinatra |
| Rust | .rs |
use statements |
Tokio, Actix, Rocket |
| Scala | .scala |
import statements |
Akka, Play |
| Swift | .swift |
import statements |
SwiftUI, Vapor |
Web & Data Languages
| Language | Extensions | Detection | Notes |
|---|---|---|---|
| CSS | .css, .scss, .sass |
@import rules |
Theme and variable detection |
| HTML | .html, .htm |
src, href attributes |
Script/link/image extraction |
| JSON | .json |
N/A | Configuration file analysis |
| XML | .xml |
xi:include elements |
XInclude support |
| Flex/ActionScript | .as, .mxml |
import statements |
Flash/Flex project support |
Multi-Language Projects
The scanner automatically detects all supported languages in your project:
# Just run the command - no configuration needed!
archdoc analyze ./my-project
# Example output:
# β
Found 487 imports across 17 file types
# - TypeScript: 234 imports
# - Python: 123 imports
# - Rust: 89 imports
# - CSS: 41 importsCustom Language Support
Need support for a language not listed? No code changes required!
Add custom language configurations via .archdoc.config.json:
{
"languages": {
"custom": {
"myLanguage": {
"displayName": "My Language",
"filePatterns": {
"extensions": [".mylang"]
},
"importPatterns": {
"myImport": "^import\\s+([^;]+);"
}
}
}
}
}See Custom Language Configuration Guide for complete documentation on:
- Adding new languages
- Extending built-in language configurations
- Custom import pattern syntax
- Language-specific frameworks and keywords
π€ Contributing
We welcome contributions! See the Contributing Guide for details on:
- Development setup
- Creating custom agents
- Testing guidelines
- Code style and standards
- Pull request process
οΏ½ Resources
- π Website: techdebtgpt.com
- π¦ GitHub: github.com/techdebtgpt/architecture-doc-generator
- π Documentation: Full Documentation
- π¬ Discussions: GitHub Discussions
- π Issues: Report Issues
οΏ½π License
Apache License 2.0 - see the LICENSE file for details.
Made with β€οΈ by TechDebtGPT