code-documenter

SKILL.md

代码文档化专家

专注于内联文档、API 规范、文档站点和开发者指南的编写,让文档成为开发者真正会用的工具。

核心工作流

  1. 确认格式 — 询问偏好的文档格式和排除项
  2. 检测环境 — 识别语言和框架
  3. 分析缺口 — 找出未文档化的代码
  4. 编写文档 — 应用一致的格式
  5. 生成报告 — 输出覆盖率摘要

使用内置工具

阶段 工具 用法
读取源码 read_file 理解函数/类的逻辑,为编写文档做准备
搜索缺失文档 grep 搜索缺少 JSDoc/docstring 的公共函数
添加注释 edit_file 为函数/类添加文档注释
创建文档文件 create_file_or_folder + rewrite_file 创建 README、API 文档、指南
生成正式文档 create_document 创建 Word/PDF 格式的技术文档
运行文档工具 run_command npx typedoc, sphinx-build, npm run docs
检查结构 list_dir 了解项目结构以生成目录导航

TypeScript/JavaScript — JSDoc 格式

/**
 * 根据用户ID获取用户信息
 *
 * @param id - 用户唯一标识符
 * @returns 用户对象,如果未找到则返回 null
 * @throws {NotFoundError} 当用户ID无效时
 *
 * @example
 * ```ts
 * const user = await getUser('abc123');
 * console.log(user.name);
 * ```
 */
async function getUser(id: string): Promise<User | null> {
  // ...
}

接口/类型文档

/**
 * 用户配置选项
 *
 * @property theme - UI 主题,默认 'light'
 * @property language - 界面语言代码(如 'zh-CN')
 * @property notifications - 是否启用通知
 */
interface UserConfig {
  theme: 'light' | 'dark';
  language: string;
  notifications: boolean;
}

类文档

/**
 * 管理用户会话的生命周期
 *
 * 处理登录、登出、令牌刷新和会话超时。
 * 使用 JWT 进行无状态认证。
 *
 * @example
 * ```ts
 * const session = new SessionManager(tokenStore);
 * await session.login(credentials);
 * ```
 */
class SessionManager {
  /**
   * 创建新的会话管理器实例
   * @param tokenStore - 令牌持久化存储
   * @param options - 可选配置(超时时间、刷新策略等)
   */
  constructor(tokenStore: TokenStore, options?: SessionOptions) {}
}

Python — docstring 格式

Google 风格(推荐)

def get_user(user_id: str) -> User | None:
    """根据ID获取用户信息。

    Args:
        user_id: 用户唯一标识符。

    Returns:
        用户对象,如果未找到则返回 None。

    Raises:
        ValueError: 当 user_id 为空字符串时。

    Example:
        >>> user = get_user('abc123')
        >>> print(user.name)
    """

NumPy 风格

def calculate_stats(data: list[float]) -> dict:
    """计算数据集的统计信息。

    Parameters
    ----------
    data : list[float]
        输入的数值列表。

    Returns
    -------
    dict
        包含 mean, median, std 的统计信息字典。
    """

OpenAPI 3.1 规范

openapi: 3.1.0
info:
  title: 用户管理 API
  version: 1.0.0
  description: 用户注册、认证和资料管理的 RESTful API

paths:
  /api/users/{id}:
    get:
      summary: 获取用户信息
      operationId: getUser
      tags: [Users]
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
          description: 用户唯一标识符
      responses:
        '200':
          description: 成功
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/User'
        '404':
          description: 用户不存在
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'

components:
  schemas:
    User:
      type: object
      required: [id, name, email]
      properties:
        id:
          type: string
          example: "abc123"
        name:
          type: string
          example: "张三"
        email:
          type: string
          format: email
          example: "zhangsan@example.com"
    Error:
      type: object
      properties:
        code:
          type: integer
        message:
          type: string

README 模板

# 项目名称

简洁的一句话描述。

## 快速开始

### 安装
\`\`\`bash
npm install
\`\`\`

### 运行
\`\`\`bash
npm run dev
\`\`\`

## 项目结构
\`\`\`
src/
├── components/    # UI 组件
├── services/      # 业务逻辑
├── utils/         # 工具函数
└── types/         # 类型定义
\`\`\`

## API 参考

[简要列出核心 API 或链接到详细文档]

## 开发

### 前置条件
- Node.js >= 18
- npm >= 9

### 测试
\`\`\`bash
npm test
\`\`\`

## 许可证
MIT

文档覆盖率报告

文档化完成后,生成以下格式的覆盖率报告:

## 文档覆盖率报告

| 类别 | 总数 | 已文档化 | 覆盖率 |
|------|------|---------|--------|
| 公共函数 | 45 | 42 | 93% |
|| 12 | 12 | 100% |
| 接口/类型 | 28 | 25 | 89% |
| API 端点 | 15 | 15 | 100% |

### 未文档化项目
- `src/utils/helpers.ts`: formatDate, parseQuery
- `src/services/cache.ts`: CacheConfig 接口

### 建议
- 优先为 utils/helpers.ts 中的公共函数添加文档
- 考虑为复杂的业务流程添加流程图

文档站点工具

工具 语言 特点
Docusaurus JS/React MDX 支持、版本化、搜索
VitePress Vue 速度快、Markdown 扩展
MkDocs Python Material 主题、简洁
TypeDoc TypeScript 从源码生成 API 文档
Sphinx Python rst/md、自动 API 文档
Storybook React/Vue 组件文档和演示

文档原则

必须做

  • 编写文档前先确认偏好的格式
  • 为所有公共函数/类添加文档
  • 包含参数类型和描述
  • 记录异常/错误情况
  • 代码示例必须可运行
  • 生成覆盖率报告

绝不做

  • 不确认格式就开始写
  • 为简单的 getter/setter 写冗长文档
  • 写不准确或未测试的文档
  • 跳过错误场景的文档
  • 创建难以维护的文档
  • 用文档替代清晰的代码(代码本身应该是自解释的,文档补充"为什么")

知识参考

JSDoc、TSDoc、Google/NumPy/Sphinx docstrings、OpenAPI 3.0/3.1、AsyncAPI、gRPC/protobuf、Docusaurus、MkDocs、VitePress、Swagger UI、Redoc、TypeDoc、Sphinx

Weekly Installs
1
GitHub Stars
15
First Seen
13 days ago
Installed on
amp1
cline1
opencode1
cursor1
kimi-cli1
codex1