generate_documentation – Smart Documentation Creation

Intelligent documentation generation from code analysis with audience-specific formatting and comprehensive examples

Use local-llm:generate_documentation to create professional API docs, README files, and developer guides from your code.

Perfect For

API Documentation Generation
Create comprehensive API documentation with parameter descriptions, response examples, and integration guides for external developers.

Developer Onboarding Documentation
Generate clear setup guides, architecture overviews, and contribution guidelines for new team members.

Library and Package Documentation
Professional documentation for npm packages, Python libraries, and open-source projects with usage examples.

Internal Code Documentation
Function and class documentation with JSDoc, docstrings, and inline comments for better code maintainability.

Client Handover Documentation
Comprehensive project documentation for client delivery including setup instructions and maintenance guides.

Quick Start

local-llm:generate_documentation with:
- filePath: "C:/api/routes/users.js"
- docStyle: "markdown"
- includeExamples: true

Generate JSDoc for TypeScript:

local-llm:generate_documentation with:
- filePath: "C:/src/utilities.ts"
- docStyle: "jsdoc"
- context: {"audience": "developers", "typescript": true}

Documentation Output

Function and Class Documentation

  • Parameter Documentation: Complete parameter descriptions with types, default values, and validation requirements
  • Return Value Documentation: Detailed return type information with possible values and error conditions
  • Usage Examples: Working code examples showing common use cases and integration patterns

API Documentation

  • Endpoint Documentation: HTTP methods, URL patterns, request/response schemas with real examples
  • Authentication Guidelines: API key usage, token handling, and security implementation details
  • Error Handling: Complete error code documentation with troubleshooting guides

Integration Documentation

  • Setup Instructions: Installation steps, dependency requirements, and configuration guides
  • Quick Start Guides: Minimal working examples to get developers started immediately
  • Advanced Configuration: Complex integration scenarios and customisation options

Documentation Example

Input Code

async function createUser(userData, options = {}) {
  const { validateEmail = true, sendWelcome = false } = options;
  
  if (validateEmail && !isValidEmail(userData.email)) {
    throw new Error('Invalid email format');
  }
  
  const user = await db.users.create({
    ...userData,
    createdAt: new Date(),
    isActive: true
  });
  
  if (sendWelcome) {
    await emailService.sendWelcomeEmail(user.email);
  }
  
  return { id: user.id, email: user.email, createdAt: user.createdAt };
}

Generated Documentation

## createUser(userData, options)

Creates a new user account with optional email validation and welcome email.

### Parameters

- **userData** (Object) - User information object
  - **email** (string) - User's email address (required)
  - **name** (string) - User's full name (required)
  - Additional user properties as needed

- **options** (Object, optional) - Configuration options
  - **validateEmail** (boolean) - Validate email format (default: true)
  - **sendWelcome** (boolean) - Send welcome email (default: false)

### Returns

Promise resolving to user object with:
- **id** (number) - Generated user ID
- **email** (string) - User's email address
- **createdAt** (Date) - Account creation timestamp

### Throws

- **Error** - "Invalid email format" when email validation fails

### Example Usage

```javascript
// Basic user creation
const user = await createUser({
  email: 'john@example.com',
  name: 'John Doe'
});

// With welcome email
const user = await createUser({
  email: 'jane@example.com',
  name: 'Jane Smith'
}, { sendWelcome: true });
```

Parameters

ParameterTypeDescriptionExample
filePathstringPath to code file for documentation“C:/api/userService.js”
codestringCode snippet for direct analysis“function example() {…}”
docStyleenumDocumentation format style“jsdoc” | “markdown” | “docstring”
includeExamplesbooleanInclude usage examples in outputtrue
contextobjectDocumentation context and audience{“audience”: “external_developers”}

Documentation Styles

  • markdown – GitHub-flavoured markdown suitable for README files and documentation sites
  • jsdoc – JSDoc format with proper annotations for IDE integration and API generation
  • docstring – Python-style docstrings for function and class documentation
  • javadoc – Java documentation format for enterprise development

Advanced Configuration

Audience-Specific Documentation: Tailor documentation complexity and detail level for different audiences.

// External API documentation
local-llm:generate_documentation with:
- filePath: "C:/api/publicRoutes.js"
- docStyle: "markdown"
- context: {
    "audience": "external_developers",
    "include_auth": true,
    "api_version": "v2"
  }

// Internal team documentation
local-llm:generate_documentation with:
- filePath: "C:/utils/internalHelpers.js"
- docStyle: "jsdoc"
- context: {
    "audience": "team_members",
    "include_internals": true
  }

Documentation Workflow:

  1. Use analyze_single_file to understand code structure
  2. Generate documentation with appropriate style and examples
  3. Create comprehensive project docs with generate_project_documentation
  4. Validate documentation with team review process

Pro Tips

Context Matters: Include framework, audience, and purpose information in context for more relevant documentation generation.

Example Quality: Generated examples are working code snippets that can be copied and used immediately.

Version Control: Generate documentation alongside code changes to maintain synchronisation between implementation and docs.

Related Functions

  • generate_project_documentation – Complete project documentation generation with architectural insights
  • analyze_single_file – Code analysis for documentation context and structure understanding
  • generate_unit_tests – Test generation with documentation examples for comprehensive coverage
  • suggest_refactoring – Code improvements that enhance documentation clarity