--- 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) - 质量验证清单