claude写脚本注释需用“角色+任务+约束”三段式提示词重构:①明确sre工程师角色;②任务含动词指令与否定项,如说明分支触发的实际业务条件;③硬性约束注释格式、长度及单位标注。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

Claude写脚本注释时只描述函数名或参数类型,却跳过分支判断依据、状态变更时机、边界条件处理逻辑,导致代码可维护性骤降。
用“角色+任务+约束”三段式重构提示词
第一步:在提示词开头明确指定角色,例如“你是一名有5年Python运维脚本开发经验的SRE工程师”。角色越具体,Claude对“关键逻辑”的认知越贴近真实场景。
第二步:任务描述必须包含动词指令和否定排除项,例如“为每段if/elif/else块添加注释,说明触发该分支的实际业务条件(如‘当磁盘使用率连续3次超90%且距上次告警超5分钟’),禁止出现‘检查条件’‘判断是否满足’这类空泛表述”。
第三步:加入硬性约束,例如“每个注释块不得超过两行,且必须以‘// ’开头;若某行代码涉及时间窗口计算,注释中必须写出具体数值单位(秒/分钟/毫秒)”。
把“关键逻辑”拆解成可验证的注释要素
方法一:用结构化模板强制覆盖逻辑点
在提示词中插入如下模板:
“请按此顺序生成注释:
① 该代码块解决的具体问题(非功能模块名)
② 触发执行的最小完备条件(含数值阈值、时间范围、状态组合)
③ 执行后产生的副作用或状态变更(如‘将任务状态置为failed并清除缓存键’)”
方法二:提供反例对比
给出Claude常见错误注释:“# 检查配置是否为空” → 正确注释应为:“# 当config.yaml缺失database.url字段或值为空字符串时,跳过连接池初始化,防止后续SQLAlchemy抛出NoUrlError”。
方法三:要求标注逻辑来源
追加指令:“所有涉及阈值、超时、重试次数的注释,必须注明该数值来自哪份文档或哪个线上指标(例:‘超时设为15s(见SLO v2.3第4.2条)’)”。
注入上下文锚点让Claude聚焦真实代码脉络
在提示词末尾粘贴3行关键上下文代码,并用注释标出逻辑断点:
```python
if time.time() - last_alert_ts > 300: # ← 这里要解释‘为什么是300秒’而非‘判断时间差’
send_alert() # ← 这里要说明‘告警发送后是否重置计数器?’
```
【必须要求Claude仅对带#标记的行生成注释,其他行不许注释】
这一步能切断Claude默认的“整函数泛泛而谈”惯性,逼它咬住具体语句做深度逻辑还原。











