【原始 def process_order(order_id: str, timeout: int = 30) → dict 不得更改签名,返回字典中必须含 'status' 和 'trace_id' 字段,且 'status' 只能是 'success'/'failed'/'pending' 三者之一】;配置项须用{{ }}包裹并附说明表;仅提取顶层赋值、logger名、requests url host;注释与空行必须严格保留。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

你需要让Claude在改写脚本为可配置版本时,只动该动的地方、不动逻辑主干和已有接口契约,避免每次调整都牵扯整个函数结构或重写参数传递链。
明确锁定“不可动”的边界
在提示词开头直接声明三类禁止修改项:原始函数签名、外部调用方已依赖的返回字段名、硬编码但被下游服务强约定的枚举值。例如写:“【原始 def process_order(order_id: str, timeout: int = 30) → dict 不得更改签名,返回字典中必须含 'status' 和 'trace_id' 字段,且 'status' 只能是 'success'/'failed'/'pending' 三者之一】”。
这一步漏掉会导致Claude把 timeout 提升成类属性、把 order_id 改成 dataclass 字段、甚至把 status 映射成新字段 code——后续联调全崩。
指定配置项提取规则
方法一:用符号标记法
要求 Claude 把所有待配置的值用 {{ }} 包裹,并在文末附配置说明表。比如把 “max_retries = 3” 改成 “max_retries = {{RETRY_COUNT}}”,然后生成:
RETRY_COUNT: int = 3 # 重试次数,生产环境建议设为2
方法二:按作用域分层标注
在提示词里写清:“仅提取以下位置的字面量为配置项:① 函数内顶层赋值语句右侧的数字/字符串/布尔字面量;② logging.getLogger() 中的模块名字符串;③ requests.post() 的 url 参数中 host 部分”。
不加这条,Claude 会把正则表达式里的 \d+、f-string 中的 {name} 全标成可配,导致配置表失控。
强制保留原注释与空行结构
第一步:在提示词末尾加一句硬约束:“输出代码中,每一处原始注释(# 开头)必须原样保留,不得合并、删减或改写;相邻逻辑块之间的空行数量必须与原文完全一致”。
第二步:提供一个带典型空行和注释的微型样例(3行代码),并在样例后注明“请严格按此格式对齐注释与空白”。
第三步:要求 Claude 在改动后自动校验:若某处原注释被移动或空行少了一行,必须在响应开头用【⚠️结构偏移】标出具体行号。这步能拦住它把 config.py 导入语句塞进函数体里还删掉两个空行的惯性操作。


















