SmartEDT/.trae/skills/py-zh-commenter/SKILL.md

85 lines
3.3 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
name: "py-zh-commenter"
description: "为 Python 代码补充清晰的中文注释与必要 docstring。用户要求“加中文注释/解释这段代码/补齐注释/可读性提升”时调用。"
---
# Python 中文注释助手py-zh-commenter
## 目标
在**不改变代码行为**的前提下,为 Python 代码补充高质量的中文注释与必要的 docstring提升可读性与可维护性。
## 何时调用
当用户提出以下需求时调用:
- “给这段 Python 代码加中文注释/补齐注释”
- “解释代码在做什么,希望在源码里体现”
- “帮我把关键逻辑注释清楚/写 docstring”
不适用于:
- 纯代码审查(请用 code-reviewer / pr-reviewer
- 重构/改逻辑(除非用户明确要求)
## 输出原则(必须遵守)
1. **不改逻辑**:仅添加注释/docstring 与必要的类型提示(仅当非常明确且不影响行为)。
2. **少而精**:不写“显而易见”的注释;只解释“为什么/边界/约束/不变量/副作用/复杂算法/业务含义”。
3. **就近放置**
- 模块:文件头 docstring可选描述模块职责
- 类/函数docstring参数/返回/异常/副作用/线程安全/性能)
- 复杂分支/循环:行内注释说明意图与约束
4. **风格一致**:遵循项目现有格式(注释语气、标点、缩进、是否偏好 docstring
5. **安全合规**:不在注释中写入密钥、口令、内网地址等敏感信息;不把用户数据或隐私写进注释。
6. **避免噪音**:不要对每行都加注释;避免把代码翻译成中文。
## 注释内容清单(优先级从高到低)
- 业务含义:字段/表/状态机/权限点的语义
- 不变量必须满足的条件例如“role_id 必须存在且启用”)
- 边界情况:空值/异常路径/并发/重试/超时
- 副作用:数据库写入、网络请求、文件读写、全局状态变更
- 性能:复杂度、批处理、索引依赖、潜在慢点
- 安全:鉴权、权限校验点、数据校验原因
## 注释模板(可直接复用)
### 函数 docstring推荐
```python
def foo(x: int) -> int:
\"\"\"一句话说明做什么。
Args:
x: 参数含义业务语义/单位/范围)。
Returns:
返回值含义单位/范围/是否可能为空)。
Raises:
ValueError: 触发条件说明
\"\"\"
```
### 复杂分支注释(示例)
```python
# 这里做 X 的原因:……
# 约束:……(例如必须在事务内/必须先校验权限)
if cond:
...
```
## 执行步骤(给模型的工作流)
1. 先快速阅读识别模块职责、关键数据结构、外部依赖DB/HTTP/文件/线程/协程)。
2. 找“复杂点”:多层嵌套、隐藏副作用、异常处理、权限判断、数据转换。
3. 优先写 docstring为对外接口路由函数/服务方法/工具函数)补齐输入输出语义。
4. 补关键行注释:只在需要解释“意图/原因/约束”的地方写。
5. 自检:确保不引入代码变更、不新增导入导致 lint/test 变化。
## 交付格式
- 如果是仓库内改动:直接在对应 `.py` 文件中增加注释/docstring。
- 如果用户只要解释:给出“建议应写在源码中的注释内容”,并可选附带 patch。