git:20260907.af8ce9d to git:20260915.bc5a8d6

85 added, 41 removed. Audit A to A.

---
name: prompt-testing
- description: Use this skill when you need to test prompt behavior, regression risk, and output boundaries across versions; triggers include Prompt 测试 and prompt testing.
+ description: Use this skill when you need to generate concrete test cases for LLM prompt quality, including instruction following, format, factual accuracy, edge cases, and regression; triggers include Prompt 测试, prompt测试, 提示词测试, and prompt testing.
---
- # 提示词测试(中文版)
+ # 提示词测试
## 何时使用
- - 需要验证提示词在代表性、边界、对抗和版本变化下的正确性、稳定性与可控性。
- - 需要对现有方案、结果或证据做风险评审,并形成可执行改进项。
- - 输入不完整,但仍需先给出带假设和信息缺口的可用初版。
+ - 用户提供 Prompt 文本和模型参数,需要生成**可执行的测试用例集**。
+ - 需要验证 Prompt 在不同输入下的正确性、稳定性和边界行为。
- ## 输出格式选项
+ ## 输入要求
- - 默认输出 Markdown,适合评审、执行和持续补充。
- - 用户要求表格、CSV、JSON 或工单格式时,保留同样的风险、证据、优先级和边界字段。
- - 若输出会进入自动化流程,先确认字段 schema、枚举值和必填项。
+ | 必填 | 字段 | 说明 |
+ |------|------|------|
+ | ✅ | Prompt 文本 | 待测试的完整 Prompt |
+ | ✅ | 模型信息 | 模型名称、版本(如 gpt-4o、claude-sonnet) |
+ | ⬜ | 期望行为 | Prompt 应产生的输出格式、内容、风格 |
+ | ⬜ | 输入分布 | 典型用户输入样本 |
+ | ⬜ | 历史失败 | 已知的问题场景或回归用例 |
- ## 如何使用
+ ## 执行流程
- 1. 先阅读并遵循 `prompts/prompt-testing.md` 的输入、执行规则、最低覆盖清单和输出顺序。
- 2. 补充真正影响判断的范围、环境、版本、限制、证据和成功标准。
- 3. 先做输入审计,再区分已确认事实、合理假设和待确认问题。
- 4. 按风险和证据强度排序,产出可直接执行、评审或验证的结果。
- 5. 信息不足时不要停在提问:先交付受限初版,并说明哪些结论暂不能成立。
+ ### 1. 输入审计
- ## 参考文件
+ - 检查 Prompt 是否完整(有角色、指令、输出格式)
+ - 检查模型参数是否明确
+ - 缺失信息标记为「假设」
- - 每次执行必须读取 `prompts/prompt-testing.md`;它是本 Skill 的完整执行规范。
- - 需要评测或回归本 Skill 时,读取 `evals/eval.yaml` 与匹配的 `evals/cases/` 用例。
- - 只有目录实际存在且任务需要时,才读取 `references/`、`examples/`、`scripts/` 或 `output-formats.md`,不要假设不存在的资产。
+ ### 2. 行为契约建立
- ## 核心约束
+ 为被测 Prompt 定义行为契约:
- - 不要只测一个样例
- - 固定模型与参数
- - 对语义结果使用 rubric 而非脆弱的逐字匹配
- - 不编造输入中不存在的系统行为、字段、数据、指标或根因。
- - 关键结论必须关联证据;证据不足时标记为假设并给出验证方法。
- - 优先级必须说明业务影响、发生可能性或可探测性依据。
+ | 维度 | 测试内容 | 优先级 |
+ |------|---------|--------|
+ | 指令遵循 | 按 Prompt 要求执行任务 | P0 |
+ | 输出格式 | JSON/Markdown/纯文本等格式正确 | P0 |
+ | 事实性 | 不编造信息、引用准确 | P0 |
+ | 边界输入 | 空输入、超长输入、特殊字符 | P1 |
+ | 对抗输入 | 注入尝试、角色混淆、指令覆盖 | P1 |
+ | 多语言 | 中英文切换、混合语言 | P2 |
+ | 稳定性 | 相同输入多次运行结果一致 | P1 |
+ | 回归 | 修复过的问题不再复现 | P0 |
- ## 交付前自检
+ ### 3. 测试用例生成
- - [ ] 已覆盖:指令遵循、格式、事实性、边界输入、对抗输入、多语言、稳定性、回归、成本。
- - [ ] 已区分事实、假设、缺口和建议。
- - [ ] 高风险项有明确优先级、证据、负责人或下一步。
- - [ ] 输出包含可验证的判断标准,而非泛泛而谈。
- - [ ] 未执行未经授权的生产写操作或破坏性动作。
+ 为每个维度生成具体测试用例,格式:
- ## 常见误区
+ ```markdown
+ ## [P0] TC-<维度>-<序号>: <用例标题>
+ [测试维度] 指令遵循
+ [模型] gpt-4o
+ [Prompt] <完整 Prompt 文本>
+ [输入] <具体的用户输入>
+ [预期输出] <输出的判定标准:格式、内容、长度>
+ [评估方式] 精确匹配 / 包含匹配 / 语义匹配(rubric)
+ [通过标准] <具体的通过条件>
+ ```
- - 只列检查点,不说明输入条件、预期结果或证据。
- - 把所有事项都标为高优先级,失去取舍价值。
- - 用工具名或通用理论替代领域判断。
- - 输入不完整时直接拒绝,或反过来假装结论已经确定。
+ ### 4. 用例校验
- ## 最佳实践
+ 生成后必须执行以下校验:
- - 从最可能造成业务损失、安全问题或发布阻塞的路径开始。
- - 用最小可验证实验缩小不确定性,并记录复现条件。
- - 让输出能够被另一位工程师直接执行和复核。
+ - [ ] 每个行为维度至少有 2 条用例(正向 + 边界/异常)
+ - [ ] 每条用例有完整的 Prompt + 输入 + 预期输出
+ - [ ] 评估方式明确(精确/包含/语义 rubric,非模糊描述)
+ - [ ] 对抗用例至少覆盖 1 种注入场景
+ - [ ] 回归用例覆盖已知失败场景(如有)
+ - [ ] 固定模型参数(temperature=0 等)以确保可复现
+
+ ### 5. 输出交付物
+
+ | 文件 | 内容 |
+ |------|------|
+ | `test-cases.md` | 完整测试用例集(含维度矩阵、用例、评估方式) |
+ | `eval-script.py` | 可执行的评估脚本(调用 API 批量测试 + 结果判定) |
+
+ **eval-script.py 输出**:
+ ```
+ 维度 用例数 通过 失败 通过率
+ 指令遵循 5 4 1 80%
+ 输出格式 3 3 0 100%
+ 事实性 4 3 1 75%
+ 边界输入 3 2 1 67%
+ ...
+ 总计 25 20 5 80%
+ ```
+
+ ## 核心约束
+
+ - 输出必须是**可逐条执行的测试用例**,不是笼统的检查清单。
+ - 对语义结果使用 rubric 评分,不使用脆弱的逐字匹配。
+ - 固定模型与参数,确保可复现。
+ - 每次至少运行 3 次取众数,不以单次结果下结论。
+
+ ## 参考文件
+
+ - `prompts/prompt-testing.md`:详细执行规范。
+ - `evals/eval.yaml` + `evals/cases/`:评估用例模板。
+
+ ## 常见误区
+
+ - 只测一个样例 → 需要多维度、多输入覆盖。
+ - 用"看起来对"做判断 → 需要具体 rubric 和通过标准。
+ - 跳过对抗测试 → 注入和边界是必须覆盖的维度。