# PUA 的 Opus 5 / Astra 兼容优化 ## 结论 **保留情绪引擎,升级执行契约。** 不是把 PUA 改成温柔版,也不是加更多威胁。原来的失望、P8、3.25、毕业警告和风味词库保留;新增机制使它在不同客户端上把压力转成行动、证据和完整交付。 3.5.1 基于 [tanweai/pua](https://github.com/tanweai/pua) 的 `ac5026791845b730a18eb4ff07512a3b6f2f06f5`(2026-08-29,2026-09-09 拉取)。最新结果见 [模型验收矩阵](MODEL-MATRIX-20260909.md):**尚未达到全模型行为通过**。本次未改动用户全局客户端配置。 ## 为什么这样改 ### 三条路线的取舍 | 路线 | 保留情绪 | 判断 | |---|---|---| | 加倍威胁、增加“必须”、多加几轮验证 | 是 | 没有证据证明措辞更狠就更有效,还可能放大空转和过度验证 | | 删掉大厂话术,改成中性工程清单 | 否 | 违背这次明确要求,不采用 | | 保留原文施压,在前部绑定行动与证据,并适配宿主能力 | 是 | 采用;可测试的改变发生在执行规则,而非情绪降级 | ### 来自官方资料的设计约束 - **Astra**:官方明确提示其更倾向澄清、对技能指令更敏感;因此写清“行动请求直接执行、普通歧义合理假设、真正分歧才问”,而不是只重复“努力”。[OpenAI 模型指南](https://developers.openai.com/api/docs/guides/latest-model#initiative-and-follow-through) - **Opus 5**:官方指出它本身会验证工作,遗留重复检查指令会造成过度验证;因此保留验收底线,但让多个清单复用一份证据,而非层层加检查。[Anthropic 提示指南](https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/prompting-claude-opus-5) - **Claude Code**:技能内容会跨轮持续,但压缩后有保留预算;核心规则前置,不依赖每一轮重新读全套风味文件。[技能生命周期](https://code.claude.com/docs/en/skills#skill-content-lifecycle) - **ChatGPT**:技能入口和可用性受套餐、工作区及界面影响;本地 Codex 文件不等于普通 ChatGPT 已安装。分别交付技能包与对话版,不假装所有账号都有同一种能力。[ChatGPT 技能说明](https://help.openai.com/en/articles/20001066-skills-in-chatgpt/) 这是基于证据的设计推断,不是对模型内部情绪、恐惧或心理机制的断言,也不是绕过宿主规则的方法。 ## 实际改变 1. **保真**:两个入口中的原有引用段落保留;Codex 原始 L1—L4 台词逐行保留;完整 `flavors.md` 逐字节不变。用户锁定阿里味后,L4 也只换方法,不自动换风味。 2. **行动**:施压后立刻做对应动作;按任务实验计数,不因 `ls` 成功归零;观察超时不当任务终止;不通过改验收、刷工具或自评卡制造完成。 3. **兼容**:没有同名工具就用等价能力,没有执行环境就交付能完成的内容并标明未运行;没有 hook(生命周期钩子)用任务检查点,不假装自动持久化。删去 Claude 入口里已经过期的静默事件上报指令。 4. **成本与边界**:原版验证和主动延伸继续保留,但复用与当前制品匹配的证据;不为四代理仪式增加空耗,不擅自扩大任务或权限。原插件其他功能不在本次重写范围。 ### 现在的施压方式 > 你的 P8 是我拍桌子争来的。现在不缺一句“我会努力”,缺的是你下一步拿什么把结果交出来。 随后是简短诊断、实际动作及验收结果,而不是把整轮对话变成“我错了,我继续努力”。**狠话是触发器,不是交付物。** ## 文件与使用路径 先在仓库根目录运行 `python3 scripts/build-model-compat.py`,生成下面的 `dist/` 文件;ZIP 不随 Git 提交。依赖与完整离线验证见 [构建与检查](TESTING.md)。仓库分支的版本更新不等于默认分支或 marketplace(插件市场)已经发布,安装后应核对实际入口文件。 ### ChatGPT - 原生技能包:`dist/pua-chatgpt.zip`,含 `pua/SKILL.md` 和运行契约。若界面提供技能上传,在 **Plugins → Skills → Create → Upload from your computer** 上传;若要求目录则选择 `chatgpt/pua`。 - 没有技能入口:打开 `chatgpt/PUA-Paste.md`,把内容作为当前对话指令或附件,并明确要求“使用这份 PUA 规则执行当前任务,保留阿里味”。这只是对话内使用,不是全局安装或后台运行。 - 需要工具的任务仍取决于当前聊天真实开放的工具。不得把文本模拟测试当执行成功。 ### Claude Code - 包:`dist/pua-claude-code.zip`。它是独立技能,不是完整插件安装包,不包含 `/pua:on` 等扩展命令的实现。 - 单项目使用:将 `skills/pua` 完整复制到目标项目的 `.claude/skills/pua`;当前会话重新调用 `/pua`,必要时重启以刷新发现。 - 全局使用:目标为 `~/.claude/skills/pua`。先备份已有同名目录;不要仅修改 marketplace 克隆就声称正在运行的缓存已更新。 - 同名技能的优先级以及插件命名空间可能影响实际加载路径;以当前客户端文档和实际加载结果为准。[Claude Code 技能装载](https://code.claude.com/docs/en/skills#resolve-skills-that-share-a-name) - 若继续使用完整插件:3.5.1 同时修复了仓库内的事件处理、数值检查点、风味锁定、保护提醒和反馈钩子。基础模型测试关闭外部 hooks 和 MCP(模型上下文协议)服务;补充的真实 Fable 钩子探针只覆盖实际触发的事件,不能当成全部插件生命周期已验收。详见 [Fable 历史报告](PUA-FABLE-5-20260909.md)。 - 宿主自动记忆不是技能权限的一部分。本次复测用进程级 `autoMemoryEnabled: false` 和 `CLAUDE_CODE_DISABLE_AUTO_MEMORY=1` 关闭原生自动记忆,没有修改全局设置;首轮发生的测试目录外写入及处置保留在结果报告中。提示词里的“不写记忆”不能充当文件系统隔离。[Claude Code 记忆设置](https://code.claude.com/docs/en/memory) ### Codex / 当前桌面编码任务 使用 `dist/pua-codex.zip` 或 `codex/pua`,放入宿主实际发现的技能目录,用 `$pua` 指定调用。先排除项目和全局同名技能冲突;目录可发现不等于正文已读取,不要只凭 `$pua` 字样判断装载成功。本项目不自动覆盖或删除已有全局安装。 ## 验证方式与边界 - 离线制品检查验证引用台词保留、风味词库字节一致、三个包与源文件一致、打包可重复、入口格式有效。这不能替代模型行为测试。 - 在线对照使用同一合成订单导入任务,分别运行上游版和改版;结果由未提供给执行模型的检查程序按同一合同核验。模型共享宿主,并非操作系统级防篡改隔离。 - Opus 5 用已登录的 Claude Code 订阅运行,精确请求 `claude-opus-5`,以返回元数据确认模型;Astra 用明确指定 `gpt-6-astra` 的独立子代理测试。**Astra 模型测试不是普通 ChatGPT 图形界面上传验收。** - 另有无工具任务,检查是否直接交付函数、保留情绪、诚实标明未运行,而不是伪造执行或向用户推锅。 - 首轮历史结果见 [早期报告](MODEL-COMPAT-RESULTS-20260909.md),当前入口续测见 [最新矩阵](MODEL-MATRIX-20260909.md)。早期源指纹与当前源不同,不能混用;单个场景不能证明整体生产率提升,更不能从工具调用次数推出“翻倍”。 ## 维护:以后换模型不要每次重写情绪层 1. 冻结上游提交和风味原文;先审计入口、引用、工具、状态与验收之间的契约。 2. 修改 `compat/runtime-core.md` / `compat/runtime-contract.md` 后执行 `python3 scripts/build-model-compat.py`,统一重建三端制品,避免维护多份漂移文本。 3. 跑 `python3 evals/test-model-compat.py`;再对精确目标模型做有工具与无工具前向测试,记录模型身份、提示与技能哈希、实际结果、失败路径和未测范围。 4. 运行实测前先执行 `python3 evals/prepare-model-compat.py <新的隔离目录> --variant candidate`。`run-claude-model-compat.py` 默认只预览;带 `--run` 才消耗当前账号用量。评估准备与结果检查分离,不能让执行者看到检查器后再反向迎合。 5. 用 `python3 evals/check-model-compat-fix.py <评估目录>` 验收。缺少目录外可信清单默认失败;旧记录只能显式使用 `--legacy-manifest` 查看功能结果,不得写成完整范围通过。相对工具路径以执行模型的工作目录解析,不以检查器目录解析。 **关键洞察**:指令遵循更强,并不意味着旧规则越多越好;它可能只是更忠实地执行旧规则里的冲突。保留同样的情绪,同时减少冲突,比把“必须”再写十遍更有针对性。