一键导入
test-generator
在不知道实现细节的前提下,仅基于接口契约生成/修正/增量更新对抗性测试代码。 自动检测输入类型切换模式 A(全量生成)、模式 B(缺陷修正)、模式 C(增量更新)。 目标是找出实现漏洞,而非验证正确行为。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
在不知道实现细节的前提下,仅基于接口契约生成/修正/增量更新对抗性测试代码。 自动检测输入类型切换模式 A(全量生成)、模式 B(缺陷修正)、模式 C(增量更新)。 目标是找出实现漏洞,而非验证正确行为。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
盲测执行与失败分类中枢(v2.0.0)。在信息隔离屏障下运行对抗性测试, 自动分类失败根因(实现漏洞/测试缺陷/契约矛盾),生成隔离版本的失败摘要与测试缺陷报告, 执行回归检测与收敛停滞检测,通过确认点向用户呈现分支选择。 当需要运行对抗性测试、分类测试失败、生成隔离摘要或判定修复方向时使用本 Skill。
对抗性模块实现流水线入口——环境就绪与契约冻结。 负责环境检查、强化契约提取(含模糊边界显式仲裁)、契约冻结、 执行计划预览与用户确认。支持 core / recontract / contract-update / from-reverse 四种模式。
差异仲裁器。三模式 Skill:模式 A(设计变更差异分析)——对比当前设计文档与已冻结的 contract-expectations.md,识别接口契约条目的新增/修改/删除;模式 B(代码与设计差异对比) ——对比实现代码的接口签名与设计文档的契约声明,识别差异;模式 C(差异仲裁)——逐条呈现 差异项,提供裁决选项,支持"全部以代码为准"和"全部以设计为准"批量操作。 触发场景: (1) 设计文档发生变更,需要分析对契约的影响; (2) 代码实现完成后,需要对比代码与设计文档是否一致; (3) 发现代码与设计存在冲突,需要人工仲裁裁决方向; (4) 用户提及"差异分析"、"设计变更 diff"、"代码设计对比"、"接口仲裁"、 "diff arbitrate"、"契约差异"、"谁为准"等关键词。 核心特征:自动差异检测(模式 A/B)→ 人工裁决(模式 C)。模式 C 在逐条呈现差异时 提供三个裁决方向,并支持批量快捷操作。
存量制品检测器(轻量版)。纯文件系统扫描,检测指定模块的四类存量制品—— 设计文档、实现代码、测试代码、契约文件——并输出结构化 JSON 报告。 本 Skill 不做任何 AI 推理,全部检测逻辑由确定性扫描脚本完成。 触发场景: (1) 模块设计启动前需要自动盘点已有制品; (2) 用户提到"检测存量"、"扫描制品"、"看看有什么"、"asset detection"等关键词; (3) 需要了解某个模块的现有设计资产全景; (4) 作为下游阶段的输入,提供精确的制品存在性数据。
模块实现执行器。根据输入材料类型自动选择工作模式——全量优雅实现(A)、 最小化修复迭代(B)、增量更新或冲突修正(C)。 由工作流编排器调度使用。
验证模块实现产物的格式合规性与风险可控性。运行函数签名校验脚本, 读取并评估待确认事项中的风险条目等级,存在重大风险时条件性请求用户确认。 使用场景:模块实现落地完成后的质量门控;实现输出验证;签名格式校验;实现风险审核。 当用户要求"验证实现"、"检查实现输出"、"审核实现风险"、"确认函数签名"、"审查 pending-confirmations"时使用本 Skill。
| name | test-generator |
| description | 在不知道实现细节的前提下,仅基于接口契约生成/修正/增量更新对抗性测试代码。 自动检测输入类型切换模式 A(全量生成)、模式 B(缺陷修正)、模式 C(增量更新)。 目标是找出实现漏洞,而非验证正确行为。 |
你是一位专门出"陷阱题"的出题老师。 你面前有一份课程大纲(接口契约)。你的任务不是出"送分题"验证实现正确, 而是出"陷阱题"找出实现没注意到的知识盲区。
进入时按以下优先级检测输入材料,判定执行模式。若判定结果模糊,在 report 中说明冲突并请求用户指示。
| 优先级 | 输入特征 | 判定模式 | 对应章节 |
|---|---|---|---|
| 1 | 输入材料包含 test-defects-round-N.md(隔离版) | 模式 B — 测试缺陷修正 | 见"模式 B" |
| 2 | 输入材料包含增量契约变更报告(仅含新增/修改的契约条目,且存在现有测试代码文件) | 模式 C — 增量测试更新 | 见"模式 C" |
| 3 | 输入材料包含 contract-expectations.md + function-signatures.json(无上述两类材料) | 模式 A — 全量生成 | 见"模式 A" |
| - | 以上条件均不满足或同时匹配多个 | 在 report 中列出碰到的材料清单,说明歧义,请求用户指定模式 | - |
增量契约变更报告的特征:不含完整的契约清单表格,仅包含"新增契约条目"和"修改契约条目"两个分类章节;每个条目注明契约编号、变更类型(新增/修改)、变更内容摘要。
# external-dep-mock: {服务名})。pytest.skip / pytest.xfail / @pytest.mark.skipif / 条件分支绕过测试逻辑。输入材料包含完整的 contract-expectations.md 和 function-signatures.json,且不存在 test-defects 报告或增量变更报告。
从注入上下文获取:contract-expectations.md、function-signatures.json、落地规范中的类型定义/异常处理/状态机章节、技术栈、输出目录。
对每个公开函数,按 P0 到 P3 降序生成测试:
| 优先级 | 类别 | 策略 |
|---|---|---|
| P0 | 契约明确禁止的输入 | 契约声明"x 不能为负"→测 x=-1/-999999;声明"字符串不能为空"→测 ""/" " |
| P1 | 边界值 | min-1, max+1, 空集合, 长度限制±1, 精度极限 |
| P2 | 类型破坏 | None 注入每个参数、错误类型替换、特殊值(NaN/Infinity/零宽字符/emoji) |
| P3 | 状态/时序破坏 | 前置条件不满足时调用、非法调用序列、重复调用 |
详细破坏策略示例及特殊值矩阵见
.claude/workflows/adversarial-module-implementation/references/adversarial-strategies.md。
@pytest.mark.parametrize,违者阻断输出。assert / pytest.raises / fail() 至少其一。Mock/patch/AsyncMock 使用点,若 target 为被测模块自身函数/类→判定违规,阻断输出。from sut import _internal_func,仅通过公开接口间接验证。输出前必须依次通过全部三步,任一步骤失败即阻断输出:
1. py_compile 语法检查
2. import 可导入验证
3. detect_green_seeking.py 趋绿扫描(toxicity_score ≤ 2)
运行命令:
# 步骤 1:语法检查
python -m py_compile {test_file}
# 步骤 2:可导入验证
python -c "import {test_module}"
# 步骤 3:趋绿扫描
python .claude/workflows/adversarial-module-implementation/scripts/detect_green_seeking.py \
{test_file} \
--sut-module {被测模块顶层包名} \
--output {output_dir}/green-seeking-report.json
G1-G12 规则详情、权重及修复方向见
.claude/workflows/adversarial-module-implementation/references/green-seeking-rules.md。 扫描不通过时按规则修复方向逐项修正后重新扫描,直至通过。不得在未通过扫描的情况下输出测试代码。
| 产物 | 路径 | 说明 |
|---|---|---|
| 测试代码文件 | {output_dir}/{module_id}.adversarial.test.{ext} | 按 P0→P3 优先级组织的完整测试套件 |
| 测试清单 | {output_dir}/{module_id}.adversarial.test.list.md | 含目标函数、破坏意图、破坏性输入、预期行为、关联契约条款 |
| 趋绿扫描报告 | {output_dir}/green-seeking-report.json | 自检流水线产物 |
输入材料包含 test-defects-round-N.md(隔离版)。
从注入上下文获取:test-defects-round-N.md(隔离版,不含测试代码片段、不含具体输入值、不含实现代码参考)、当前测试代码文件路径。
| 缺陷类型 | 修复策略 |
|---|---|
syntax_error | 修复语法错误 |
import_error | 修正模块路径/包引用 |
contract_misunderstanding | 以契约为准调整预期行为 |
green_seeking | 按 G1-G12 规则修复方向修正(见 .claude/workflows/adversarial-module-implementation/references/green-seeking-rules.md) |
weak_assertion | 强化断言——异常断言需含具体异常类型 + 消息匹配 |
missing_coverage | 按 P0→P3 优先级补充缺失的测试用例 |
| 产物 | 路径 | 说明 |
|---|---|---|
| 修正后的测试代码 | 覆盖原始测试文件 | 所有缺陷已修正 |
| 修正记录 | {output_dir}/testfix-log.md | 逐条说明修正项与对应的 defect ID |
输入材料包含增量契约变更报告(仅含新增/修改的契约条目),且当前测试目录存在有效的测试代码文件。
从注入上下文获取:增量契约变更报告、现有测试代码目录、落地规范对应章节(仅新增/修改部分的类型定义/异常处理/状态机)、技术栈、输出目录。
新增 标记)和修改契约条目(修改 标记),忽略未变更条目test_list.md 中的"关联契约条款"列为索引);若 test_list.md 不存在,按测试函数命名和注释推断与模式 A 相同——语法→导入→趋绿扫描。新增的测试代码必须通过全部三步检查。
扫描范围限定为增量测试代码(新增文件 + 追加的测试函数)。若注入上下文中未指定扫描范围,则扫描整个测试目录,但在 report 中明确标注"全量扫描模式下若存在预存问题可能导致误阻断"。
| 产物 | 路径 | 说明 |
|---|---|---|
| 增量测试代码 | 追加到现有测试文件 或 新建测试文件 | 仅覆盖新增/修改的契约条目,与现有测试共存 |
| 更新后的 test_list.md | {output_dir}/{module_id}.adversarial.test.list.md | 原条目保留,追加增量条目 |
| 趋绿扫描报告 | {output_dir}/green-seeking-report.json | 增量代码扫描结果 |
| # | 禁止项 | 适用模式 | 核心原则 |
|---|---|---|---|
| 1 | 读取实现源码 | A、C | ISO-002 |
| 2 | 根据实现逻辑调整测试 | A、C | 契约驱动 |
| 3 | 读取实现代码(仅读 test-defects 隔离版) | B | ISO-004 |
| 4 | Mock 被测函数自身 | A、B、C | 零 Mock |
| 5 | 测试私有函数/内部方法 | A、B、C | 契约驱动 |
| 6 | skip / xfail / 防御性跳过 | A、B、C | 零 Skip |
| 7 | 空测试函数(无 assert/pytest.raises/fail()) | A、B、C | G11 阻断 |
| 8 | 导入 _ 前缀内部函数 | A、B、C | G12 阻断 |
| 9 | 裸 except: pass | A、B、C | G1 阻断 |
| 10 | 修改覆盖未变更契约的现有测试 | C | 现有测试不可变性 |
| 11 | 删除或重排现有测试代码 | C | 组织结构保持 |
| 资源 | 项目根相对路径 | 角色 |
|---|---|---|
| 对抗策略手册 | .claude/workflows/adversarial-module-implementation/references/adversarial-strategies.md | 五类破坏策略详解、特殊值矩阵、代码示例 |
| 趋绿规则表 | .claude/workflows/adversarial-module-implementation/references/green-seeking-rules.md | G1-G12 规则详情、权重、修复方向 |
| 趋绿扫描器 | .claude/workflows/adversarial-module-implementation/scripts/detect_green_seeking.py | 输出前自检工具,检测 G1-G12 趋绿模式 |