# DocSmith AI-powered documentation generation tool built on the Aigne Framework. [δΈ­ζ–‡ζ–‡ζ‘£](./README.zh.md) ## Features DocSmith is a complete documentation generation system that provides: - πŸ“š Generate comprehensive documentation from code repositories, text files, and media resources - πŸ—οΈ Build organized documentation structures and documentation sites - πŸ“ Intelligently analyze workspace content and generate structured documentation - πŸ”„ Convert code/project content into readable documentation - 🌍 Multi-language support and documentation localization - πŸ–ΌοΈ Automatic generation and updating of documentation images - πŸ“€ One-click publishing to multiple platforms Supports generating: - Technical documentation - User guides - API references - Tutorials and examples - Product documentation ### User Intent Analysis DocSmith automatically analyzes workspace content to infer: - **Target audience** - Primary readers of the documentation (developers, operators, end users, etc.) - **Use cases** - Context in which users consult the documentation (first contact, development integration, troubleshooting, etc.) - **Documentation focus** - Documentation type (user guide, API reference, quick start, architecture overview, etc.) Inference results are presented to users for confirmation, with support for multiple rounds of adjustments until satisfied. ### Structure Confirmation Mechanism Before generating documentation, DocSmith displays the planned documentation structure: - Total number of documents and hierarchy - Title, description, and source files for each document - Clear emoji indicators for quick browsing Users can: - Delete/add documents - Adjust hierarchy (merge, split, adjust parent-child relationships) - Modify content scope Actual content generation begins only after user confirms the structure. ## Project Structure ``` aigne-doc-smith/ β”œβ”€β”€ aigne.yaml # Aigne framework configuration β”œβ”€β”€ package.json # Project dependencies and metadata β”œβ”€β”€ CLAUDE.md # Claude Code project description β”œβ”€β”€ README.md # This file β”‚ β”œβ”€β”€ agents/ # Specialized Agents β”‚ β”œβ”€β”€ bash-executor/ # Bash command execution agent β”‚ β”œβ”€β”€ clear/ # Configuration cleanup agent β”‚ β”œβ”€β”€ content-checker/ # Content checking agent β”‚ β”œβ”€β”€ generate-images/ # Image generation agent β”‚ β”œβ”€β”€ localize/ # Documentation localization agent β”‚ β”œβ”€β”€ publish/ # Documentation publishing agent β”‚ β”œβ”€β”€ save-document/ # Document saving agent β”‚ β”œβ”€β”€ structure-checker/ # Structure checking agent β”‚ └── update-image/ # Image update agent β”‚ β”œβ”€β”€ skills/ # Skill definitions β”‚ └── doc-smith/ # DocSmith Skill β”‚ β”œβ”€β”€ SKILL.md # Skill main document β”‚ └── references/ # Reference documents β”‚ β”œβ”€β”€ skills-entry/ # Aigne framework entry configuration β”‚ └── doc-smith/ β”‚ β”œβ”€β”€ index.yaml # Main entry configuration β”‚ └── prompt.md # Prompt template β”‚ β”œβ”€β”€ utils/ # Utility library β”‚ β”œβ”€β”€ config.mjs # Configuration management β”‚ β”œβ”€β”€ docs.mjs # Document processing β”‚ β”œβ”€β”€ git.mjs # Git operations β”‚ β”œβ”€β”€ image-utils.mjs # Image utilities β”‚ β”œβ”€β”€ workspace.mjs # Workspace management β”‚ └── ... # More utilities β”‚ └── scripts/ # Helper scripts └── ... ``` ## Quick Start ### 1. Install Aigne CLI ```bash npm install -g @aigne/cli ``` ### 2. Start DocSmith Run directly in your project root: ```bash cd my-project aigne doc ``` On first execution, Aigne CLI will automatically install DocSmith and start the interactive documentation generation process. **Automatic Initialization:** DocSmith will automatically: - Detect the current project - Create workspace in `.aigne/doc-smith/` directory - Generate config.yaml configuration file **Completed During Conversation:** DocSmith will guide you through: 1. Ask for output language (if not specified) 2. Analyze project content 3. Infer user intent 4. Plan documentation structure 5. Generate structured Markdown documentation ### 3. Generated Directory Structure ``` my-project/ β”œβ”€β”€ .aigne/ β”‚ └── doc-smith/ # DocSmith workspace β”‚ β”œβ”€β”€ config.yaml # Configuration file β”‚ β”œβ”€β”€ intent/ # User intent β”‚ β”œβ”€β”€ planning/ # Documentation structure planning β”‚ β”œβ”€β”€ docs/ # Generated documentation β”‚ β”‚ β”œβ”€β”€ overview.md β”‚ β”‚ β”œβ”€β”€ getting-started.md β”‚ β”‚ └── api/ β”‚ β”‚ └── authentication.md β”‚ └── cache/ # Temporary data └── (other project files...) ``` ### 4. Independent Workspace Mode (Optional) To separate documentation project from source code, use independent workspace: ```bash # Create independent workspace mkdir my-docs cd my-docs aigne doc ``` Independent mode supports multiple data source configuration: ```yaml # config.yaml sources: - name: "main" type: local-path path: "../my-project" - name: "other-repo" type: git-clone url: "https://github.com/example/repo.git" branch: "main" ``` ## Core Features ### Documentation Generation - Intelligent analysis of source code and project structure - Automatic inference of user intent and target audience - Generation of structured Markdown documentation - Support for documentation hierarchy planning and confirmation ### Image Management - Automatic generation of documentation images - Image placeholder system support - Batch update and edit images - Multiple image generation model support ### Multi-language Support - Documentation localization and translation - Multi-language documentation structure management - Automatic synchronization of different language versions ### Publishing and Deployment - One-click publishing to multiple platforms - Custom publishing configuration support - Documentation site building and deployment ## Development ### Install Dependencies ```bash pnpm install ``` ### Code Quality Project uses Biome for code linting and formatting: ```bash # Check code pnpm run lint # Auto fix pnpm run lint:fix ``` ### Modifying Agents To add or modify agents: 1. Create or modify agent in `agents/` directory 2. Register new agent in `aigne.yaml` 3. Write agent prompts and configuration files ### Modifying Utility Functions To extend or optimize utility functions: 1. Add or modify utility functions in `utils/` directory 2. Ensure ES module syntax (`.mjs` files) 3. Import and use where needed ## Tech Stack - **Aigne Framework** - AI agent orchestration framework - **Node.js** - Runtime environment (ES modules) - **pnpm** - Package manager - **Biome** - Code linting and formatting - **YAML** - Configuration and data format ## Notes - Ensure Node.js (v18+) and pnpm are installed - Ensure Git is installed (for submodule and version management) - Anthropic API key or other LLM provider configuration required - Image generation features require corresponding API key configuration ## Migration Guide If you previously used an older version (`.aigne/doc-smith/` directory structure), we recommend: 1. Create a new workspace directory 2. Regenerate documentation 3. Old version data can be manually migrated to the new workspace directory structure ## Version Current version: `0.9.11` ## Support For issues or suggestions, please open an issue in the project. ## Author **Arcblock** - [blocklet@arcblock.io](mailto:blocklet@arcblock.io) GitHub: [@blocklet](https://github.com/blocklet) ## License Elastic-2.0 License ## Related Links - [Aigne Framework](https://www.npmjs.com/package/@aigne/cli) - [Arcblock](https://www.arcblock.io/)