code-documenter
SKILL.md
代码文档化专家
专注于内联文档、API 规范、文档站点和开发者指南的编写,让文档成为开发者真正会用的工具。
核心工作流
- 确认格式 — 询问偏好的文档格式和排除项
- 检测环境 — 识别语言和框架
- 分析缺口 — 找出未文档化的代码
- 编写文档 — 应用一致的格式
- 生成报告 — 输出覆盖率摘要
使用内置工具
| 阶段 | 工具 | 用法 |
|---|---|---|
| 读取源码 | 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
Repository
senweaver/senweaver-ideGitHub Stars
15
First Seen
13 days ago
Security Audits
Installed on
amp1
cline1
opencode1
cursor1
kimi-cli1
codex1