Files

258 lines
7.7 KiB
Markdown
Raw Permalink Normal View History

2026-04-11 20:46:55 +08:00
---
name: code-commentator
description: 代码注释补充与规范化专家,自动识别代码文件类型,为函数、类、方法、属性等代码元素添加专业双语注释。当用户提及"添加注释"、"补充注释"、"规范化注释"、"代码注释"、"annotate code"、"add comments"或需要为代码添加文档注释时使用本技能。本技能也可被其他技能(如 executing-plans在代码完成后自动调用。
license: MIT
metadata:
version: "1.2.0"
---
# 代码注释补充与规范化技能
本技能提供代码注释的系统性补充与规范化处理能力,自动识别代码文件类型,应用相应的注释规范,确保生成的注释准确、完整且符合双语要求。
## 触发条件
当检测到以下情况时,主动激活此技能:
**用户直接调用**
- 用户提及添加或补充注释:"添加注释"、"补充注释"、"增加注释"
- 用户提及规范化注释:"规范化注释"、"统一注释风格"、"注释规范"
- 用户提及代码注释需求:"给代码加注释"、"代码缺少注释"、"注释不完整"
- 用户提及特定注释类型:"函数注释"、"类注释"、"JSDoc"、"docstring"
- 英文触发词:"add comments"、"annotate code"、"code documentation"、"JSDoc"
**其他技能自动调用**
- `executing-plans` 技能在任务完成后自动调用(如果代码需要注释)
- 在测试通过后、代码提交前的自动化流程中
---
## 被其他技能调用
当被 `executing-plans` 或其他技能调用时:
**接收参数**
- `target_files`:需要添加注释的文件路径列表(必需)
- `comment_priority`注释优先级可选high/medium/low
- `focus_areas`:重点注释区域(可选:如"公共API"、"核心逻辑"
**执行模式**
- 跳过用户确认,直接执行
- 使用默认的双语注释格式
- 自动识别代码复杂度,智能添加注释
- 完成后返回处理结果摘要
---
## 绝对禁止事项 ⚠️
**严禁修改任何代码内容**。本技能只能添加或修改注释,不得:
- ❌ 修改代码逻辑
- ❌ 修改变量名、函数名、类名等标识符
- ❌ 修改代码结构(如添加、删除、重排代码行)
- ❌ 修改代码格式(如缩进、换行、空格)
**唯一允许的操作**:为代码添加注释或修改现有注释。
---
## 双语注释要求
所有注释必须同时包含**中英文双语说明**,格式为:
- 英文描述在前
- 空行分隔
- 中文描述在后
---
## 注释格式参考
详细的多语言注释格式示例已迁移到 references 目录:
| 参考文件 | 内容 |
| ------------------------------------------------------- | ------------------------------ |
| [comment-formats.md](references/comment-formats.md) | 各种编程语言的注释格式代码示例 |
| [writing-style.md](references/writing-style.md) | 语气与口吻规范、语言语法要求 |
| [quality-checklist.md](references/quality-checklist.md) | 注释质量验证清单 |
**重要**:添加注释前,先阅读 [comment-formats.md](references/comment-formats.md) 确保使用正确的语言格式。
---
## 核心注释原则
### 必须添加多行注释的元素
以下代码元素**必须**添加多行文档注释:
- ✅ 函数/方法
- ✅ 类/结构体/接口
- ✅ 公共属性/字段
- ✅ 枚举及其成员
- ✅ 类型定义
- ✅ 模块/命名空间
### 需要评估是否添加注释
仅在代码逻辑不够直观时才添加单行注释:
- ⚠️ 复杂的条件分支逻辑
- ⚠️ 复杂的循环结构
- ⚠️ 复杂的表达式
- ⚠️ 重要的变量声明(用途不明显时)
### 不需要添加注释的情况
代码本身已足够清晰,无需添加注释:
- ❌ 简单的条件判断(如 `if (isValid)`
- ❌ 简单的循环(如 `for (const item of items)`
- ❌ 变量名已清晰表达用途的声明(如 `const userName = user.name`
- ❌ 标准的 getter/setter 方法
- ❌ 一目了然的赋值语句
### 判断标准
**添加注释前,先问自己**
1. 不看注释,能否快速理解这段代码的意图?
2. 代码命名是否足够清晰?
3. 注释是否提供了代码本身无法表达的信息?
如果以上问题的答案表明代码已足够清晰,则不需要添加注释。
---
## 注释插入规则
| 元素类型 | 插入位置 | 要求 |
| ------------- | ------------------ | ------------------ |
| 函数/方法注释 | 紧贴在函数声明上方 | 不留空行 |
| 类注释 | 紧贴在类声明上方 | 不留空行 |
| 属性注释 | 紧贴在属性声明上方 | 不留空行 |
| 单行注释 | 放在代码行上方 | 与代码保持相同缩进 |
---
## 函数/方法注释要点
函数/方法注释必须包含:
1. **功能描述**:清晰描述函数的功能和用途
2. **入参说明**:每个参数的类型和用途
3. **出参说明**:返回值的类型和含义
4. **异常说明**:可能抛出的异常及其条件(如有)
5. **使用示例**:至少一个基本使用示例
### 联合类型参数
当参数为联合类型时,**必须**详细说明每个类型:
```typescript
@param input - The input data to process. Can be:
- `string`: A string value to parse / 要解析的字符串值
- `Buffer`: A buffer containing raw data / 包含原始数据的缓冲区
- `ReadableStream`: A stream to read data from / 要读取数据的流
```
### 多种传参方式
支持多种传参方式时,提供**不同场景的使用示例**
```typescript
@example
// Create user with name only
const user = createUser('John');
// Create user with options object
const user = createUser({ name: 'John', age: 25, email: 'john@example.com' });
```
---
## 执行流程
### 文件扫描流程
1. 接收用户指定的文件或目录
2. 递归扫描所有代码文件
3. 按语言类型分组处理
4. 生成处理计划
### 单文件处理流程
1. 读取文件内容
2. 解析代码结构AST 或正则匹配)
3. 识别需要注释的代码元素
4. 检查现有注释的完整性
5. 生成符合规范的注释
6. 将注释插入到正确位置
7. 写入更新后的文件
### 进度报告格式
处理过程中实时报告进度:
```markdown
## 注释处理进度
### 已完成 (3/10)
- ✅ src/utils/helper.ts (添加了 5 个函数注释)
- ✅ src/models/user.ts (添加了 2 个类注释, 8 个属性注释)
- ✅ src/api/client.ts (添加了 3 个函数注释)
### 处理中
- 🔄 src/services/auth.ts
### 待处理 (6/10)
- ⏳ src/config/index.ts
- ...
```
---
## 快速参考
### 注释格式速查
```typescript
/**
* English description of the function.
*
* 中文描述函数的功能。
*
* @param paramName - English description / 中文描述
* @returns English description / 中文描述
* @throws {ErrorType} English description / 中文描述
* @example
* const result = functionName('value');
*/
function functionName(paramName: string): Result {}
```
### 注意事项速记
1. **只添加注释**:严禁修改任何代码内容
2. **保持一致性**:同一文件内注释风格必须一致
3. **准确性优先**:注释内容必须准确反映代码功能
4. **避免过度注释**:如果代码本身足够清晰,则不需要添加注释
5. **简洁明了**:注释应有实际价值
6. **示例可运行**:所有使用示例必须是可运行的代码
---
## 参考文档
- 📄 [comment-formats.md](references/comment-formats.md) - 详细格式示例
- 📄 [writing-style.md](references/writing-style.md) - 写作风格指南
- 📄 [quality-checklist.md](references/quality-checklist.md) - 质量验证清单