An open API service indexing awesome lists of open source software.

https://github.com/aigne-io/aigne-doc-smith

AIGNE DocSmith is a powerful, AI-driven documentation generation tool built on the AIGNE Framework. It automates the creation of detailed, structured, and multi-language documentation directly from your source code.
https://github.com/aigne-io/aigne-doc-smith

agent ai-document-generator aigne documentation gemini openai

Last synced: 4 months ago
JSON representation

AIGNE DocSmith is a powerful, AI-driven documentation generation tool built on the AIGNE Framework. It automates the creation of detailed, structured, and multi-language documentation directly from your source code.

Awesome Lists containing this project

README

          

# 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/)