بنقرة واحدة
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 趋绿模式 |