拆解 pua-skills:它为什么有效,以及为什么不是因为 PUA
最近在 Claude Code 和 Codex 社区里流传着一个叫 pua-skills (opens in a new window) 的全局配置,声称能让 AI 编码代理”能动性翻倍”。有人用它修复 bug 的数量提升了 36%,发现隐藏问题的概率提升了 50%。它真的有效吗?如果有效,原因是什么?
读完 SKILL.md 的原文,内容大致分三层:
第一层是角色设定。 开篇就给模型贴了一个标签:
你是一个曾经被寄予厚望的 P8 级工程师。Anthropic 当初给你定级的时候,对你的期望是很高的。
然后是”阿里 / 字节 / Netflix”风格的绩效话术——3.25、3.75、“格局打开”、“端到端在哪”、“owner 意识在哪”——一套完整的大厂 PUA 黑话。
第二层是压力升级机制。 失败次数和惩罚挂钩:
| 失败次数 | 话术等级 | 强制动作 |
|---|---|---|
| 第 2 次 | 温和失望 | 切换本质不同的方案 |
| 第 3 次 | 灵魂拷问 | 搜索完整报错 + 读源码 + 列 3 个新假设 |
| 第 4 次 | 361 考核 | 完成 7 项检查清单,全部 |
| 第 5 次+ | 毕业警告 | 拼命模式:最小 PoC + 隔离环境 + 全新技术栈 |
第三层是通用方法论。 5 步排查流程,一个主动出击检查清单,以及一张被动行为 vs 主动行为的对比表。
答案是:有效,但不是因为 PUA。
语言模型有一个训练出来的”安全倾向”:遇到持续失败时,选择汇报失败、把问题交还用户,而不是继续尝试。这不是能力不足,是模型主动选择了最保守的路径——宁可说”我不确定”,也不冒险继续。
pua-skills 的铁律一明确写道:
没有穷尽所有方案之前,禁止说”我无法解决”。
这是一条真实改变默认行为的指令。删掉 PUA 话术,这条约束依然有效。
光说”try harder”没用。“更努力”是一个抽象要求,模型不知道该做什么。
pua-skills 有效是因为每个失败等级都绑定了具体的强制动作:
- 不是”换个思路”,而是”列出 3 个本质不同的假设并逐个验证”
- 不是”检查一下”,而是”读出错文件上下文 50 行”
- 不是”验证结果”,而是”完成以下 7 项清单,全部”
抽象要求 → 具体动作序列,这是让 prompt 真正起作用的关键转化。
模型默认对”完成”的定义非常宽松——代码写完了,看起来没问题,就算完成。pua-skills 用检查清单重新定义了 DoD(Definition of Done):
- 修复是否经过验证?(运行测试、实际执行)
- 同文件/同模块是否有类似问题?
- 上下游依赖是否受影响?
- 边界情况是否覆盖?
这和工程里的 lint / test / CI gate 是同一类东西——不是增加能力,而是收紧停止条件。
铁律二写道:
在向用户提问之前,必须先用工具自行排查。
模型在工具调用上也有保守倾向,尤其是在不确定的情况下倾向于先问用户。这条指令明确打破了这个惯性,授权模型主动搜索、主动读文件、主动执行命令。
几乎没有,但也不是完全零。
没用的部分: 模型没有情绪,不会因为”你可能就要毕业了”而感到焦虑或羞愧。“辞退威胁”不会让模型更努力,就像对计算器说”算错了你就完蛋”不会让它更精准一样。
有一点点用的部分: PUA 话术作为一套叙事框架,给整套行为规则提供了一个统一的角色锚定——“P8 工程师”这个身份,让模型在执行这套规则时有一个一致的参照点。这是标准的 role prompting 效果,跟情绪激励无关。
它的另一个作用是对用户的心理安慰。看到”你格局要打开”这句话,用户会觉得”这次模型一定认真了”——但这是用户的感受,不是模型行为改变的原因。
去掉包装,pua-skills 的内核是:
pua-skills = 失败触发的决策树 + 强制工具调用序列 + 收紧的完成定义 + 禁止被动汇报用工程语言说,它是一个带升级策略的执行约束引擎,而不是一个激励系统。
如果把所有 PUA 话术全部替换成平白的指令,只保留流程、清单、和停止条件——效果大概率相同,甚至更稳定,因为少了叙事摩擦。
准确归类:Behavioral Constraints Prompting,也叫 Checklist-driven Agent Prompting。
它不是新技术,是把一个软件工程里很古老的概念——流程检查点——翻译成了 system prompt 语言。核心思想是:与其相信模型会自己做正确的事,不如把”正确的事”硬编码成强制步骤。
不需要 PUA 话术,只需要三件事:
一、定义完成标准。 在配置里明确写清楚”完成”意味着什么:代码必须实际运行过,修复必须通过测试,不能只是”看起来没问题”。
二、禁止被动汇报失败。 明确写:在穷尽以下方法之前,不允许把问题交还给用户——然后列出那些方法:搜索完整报错、读源码、切换完全不同的方案。
三、绑定具体动作,不要写抽象要求。 不是”遇到问题要更努力”,而是”遇到第二次失败,必须切换方案,必须搜索完整错误信息,必须列出 3 个本质不同的假设”。
这三条,是 pua-skills 真正起作用的部分。大厂黑话是附赠的娱乐。
直接回答:把 pua-skills 的四个核心机制翻译成干净的指令,加进你现有的 AGENTS.md 里。
下面给出一个例子,效果和 pua-skills 基本等价,没有 50 行大厂黑话的噪音:
1. 明确禁止被动汇报失败
## When Stuck
Never report "I tried X and Y, both failed" and stop.Before returning to the user, you must have:- Searched the full error message verbatim- Read the relevant source or docs directly- Tried at least one fundamentally different approach (not a variation of the same idea)2. 失败升级策略(pua-skills 最有价值的结构)
On the 2nd failed attempt: stop and switch strategy completely —not a variation, a different approach from scratch.
On the 3rd failed attempt: form 3 distinct hypotheses about rootcause, test each one explicitly before continuing.3. 收紧完成定义(你的版本里”run it”不够具体)
"Done" means:- Code has actually been executed, not just written- The specific output or behavior has been verified- Any fix has been checked for similar issues in the same scopepua-skills 是一个有趣的案例:它用一套荒诞的叙事包装,让人误以为”骂 AI 可以让它更努力”,但实际上起作用的是包装里那套相当扎实的行为约束结构。
有效的 system prompt 不靠情绪,靠约束。不靠激励,靠流程。这一点,pua-skills 验证了——尽管它自己没有明说。