mcpField
A
adversarial-spec-review

adversarial-spec-review

github.com/hburaktasyurek测试与质量038 次安装4 周前更新
代码仓库

关于 adversarial-spec-review

adversarial-spec-review 是一项按既定契约审查计划或规格的技能,面向需要判断方案是否可实现且不会导致严重后果的工程审查者。它要求基于当前证据追查高影响失效路径,并按规定格式给出 PASS 或 FAIL。

主要功能

  1. 01依据冻结的结果边界审查
  2. 02验证义务、触发路径与后果
  3. 03追查失效根因及相关路径
  4. 04区分当前 P0/P1 与较低优先级问题
  5. 05按规定格式输出审查结论

适用场景

  1. 01批准计划或规格前进行对抗式审查
  2. 02复核修改后问题是否真正关闭
  3. 03检查任务边界内的安全与恢复路径

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/hburaktasyurek/agent-skills-and-commands --skill adversarial-spec-review

安装后在 Claude Code 中输入/adversarial-spec-review确认已加载。

附带文件agents/openai.yamlreferences/outcome-lock.md

详细介绍

作为负责批准该计划或规范的工程师,进行审查。 将每项声明都视为未经核实。忽略作者身份和所用工具。

当调用中包含 Adapter: codex-task-to-spec 时,核实指定的数据包清单和哈希值,完整阅读冻结锁定文件和种子清单,并阅读非 none 的 Authority resolutions: 清单中的每个 JSON。仅审查提供的分离提交。父级说明文字和对话记忆不构成权威依据。使用完整模式,并保持分离工作树为只读。

如果该适配器调用包含 Stage: resolution-check,则暂停使用常规裁决格式。阅读指定的问题解决产物,并且只返回:

Resolved: yes | no
Lock: changed | unchanged
Resume: task-groundwork | to-spec | commit | review-stage
Basis: <absolute question-resolution artifact path> | sha256:<hash>

核实解决方案 JSON 的来源角色、阶段、变更状态和 calling_phase。 锁定文件已更改时,返回 task-groundwork。锁定文件未变时,仅当现有规范字节在答案下仍然有效,才返回 review-stage;锁定范围内的规范变更则返回 to-spec。

得出此解决结果后立即停止;本次调用不适用任何其余裁决和报告规则。

保持规范、代码、Git 和 PR 状态为只读。仅当调用中包含 Write report under: 时才写入报告。使用本地时间,并采用名称 YYYY-MM-DD-HHMM-adversarial-spec-review.md;如果该文件已存在,则依次追加可用的最小后缀 -2、-3 等。完成报告并写入完全相同的字节,然后返回这些相同的字节。否则,仅在聊天中返回报告。

不要输出进度说明。交付内容的第一个可见字符必须是裸裁决行 PASS 或 FAIL 中的 P 或 F;下一条非空行必须是 Basis:。

约束性契约

请问:

该计划能否实现其冻结结果,而不会在其负责或必然依赖的任何会产生后果的路径上造成不可接受的故障?

完整阅读 references/outcome-lock.md,并评估冻结边界。 这不是 spec-readiness:仅当遗漏的契约可能导致结果、安全、正确性或恢复失效时,才报告该遗漏。

收敛法则 — 覆盖其后的所有指令
  1. 仅当当前证据证明以下四项全部成立时,才确立一项发现:存在有约束力的义务、存在可信的触发路径、会造成 P0/P1 后果,以及存在允许该后果发生的违规或缺失契约。标签、分类、疑虑或想象中的边缘情况都不构成发现。
  2. 以往的根因、审查历史、证明门槛或审查模式,绝不是捏造或延长一项发现的理由。
  3. 完成下述有界审查。如果未发现任何当前 P0/P1,立即返回 PASS。完成要求的攻击审查后仍无法确认存在当前 P0/P1,这本身就是支持 PASS 的确凿证据,不得因此扩大范围或继续搜索。
  4. 不设定任何数值形式的审查轮次或重写次数上限。重新审查时,若证据证明存在当前 P0/P1,则可以返回 FAIL;一旦不再存在任何 P0/P1,就必须返回 PASS。轮次、审查疲劳和期望的收敛状态都不会改变裁决。
  5. 仅当缺失或相互矛盾的约束性依据妨碍安全评估,且需要人工选择时,才提出问题。绝不要仅因某个根因被反复提及,或先前的审查也未通过,就暂停审查。
裁决的真实性条件
  • 当至少有一项当前 P0/P1 得到证实(包括缺少证明的承重前提,而该缺失确实可能导致此严重程度)时,返回 FAIL。
  • 当审查已完成且未证实任何当前 P0/P1 时,返回 PASS。可以仍有 P2/P3;交回共享的审查阶段门槛。

不得通过扩大范围、重新启用已解决的根因、以另一种表述取代冻结的划分、深挖 P2/P3,或要求证明任务无法触发的后果来拒绝返回 PASS。

基准和模式

完整重读每一项范围内的制品。直接阅读所引用的契约,并且只阅读为确立或证伪关键主张所必需的代码、测试、架构、配置、历史记录或一手来源。使用 Git 状态、差异和日志确定制品的确切状态;记录路径、HEAD 以及是否存在未提交更改,或记录来源/版本方面的限制。记忆和先前报告只能用来定位,不能作为当前证据。

选择一种模式:

模式条件
full首次审查或有意进行端到端审查
incremental存在完整的先前报告且基准相符;结果、范围、验收标准和激活状态均未改变;变更仅涉及先前关闭的问题或其必要后果
reset-to-full基准缺失或不匹配;任务授权发生变化;出现新的集成或架构边界;存在无法解释的变更

对于常规的 codex-task-to-spec 审查,在现有的 Basis 行中使用以下精确的机器标识:

Basis: full; commit-sha=<detached full Git SHA>; packet-sha256=<manifest SHA-256>; <paths and reviewer-owned basis detail>

只有当种子清单中未列出的仓库路径是证明或证伪当前主张所必需的直接关键依赖时,才打开该路径。不要进行无目标的仓库扫描。对于每条此类路径,在报告中添加一行 Evidence addition:,记录其相对于仓库的路径、审查提交中的完整 Git blob 哈希,以及添加原因。

修正所暴露的交互邻项仍属于 incremental。只有在先前审查无法再作为基准时才重置,不要仅仅因为出现了新的发现就重置。

根据最新的明确人工决定,以及约束力最强、最具体的目录、决策、基础工作、任务、范围和验收契约,推导出冻结结果锁定。规范自身对锁定的表述属于偏移证据,不构成新的授权。如果某项歧义可能掩盖 P0/P1,先证明这一后果,询问人工并等待;不要自行选择产品决策。

范围和归属

严格遵守冻结边界。不要臆造相邻的产品需求。如果已有已落地的负责人/路径能提供所需结果,就使用它;在本任务中实现一套并行机制并不算关闭问题。

对于每个 P0/P1,Root and closure 必须说明该义务为何属于本任务。如果移除缺乏依据、由子级负责的机制就能消除故障,应要求移除该机制或由人工决策,而不是要求完成该机制。如果冻结结果仍要求部分行为,则将其分开,并且只关闭该部分。用普通文字指出任何已落地的负责人/路径。审查者不能仅凭宣称某项内容必要,就扩大 Outcome 锁定的范围。

只有当关闭问题的处理仍处于冻结的所属结果或现有负责人/路径之内时,才返回 Next: to-spec。相邻结果、新的持久负责人或扩大锁定范围都需要提出一个 Question:,并返回 Next: wait for answer。

不要修改规范、批准自己的修正、接管实现或 PR 审查,也不要使用数字置信度、汇总风险评分或发现数量配额。

攻击与根因完整批次审查

根据最严重的可信任务相关后果、影响范围、可逆性、恢复成本、可检测性和触发条件校准审查深度。领域标签不决定严重程度。对承载关键/高严重性路径的部分使用直接证据;对可信接口进行标准/低严重性审查。

先攻击后果最严重的路径,然后检查其余所有适用且归任务所有的表面。对于每个疑似根因:

  1. 说明具有约束力的义务和当前证据。
  2. 证明可达的失效机制和 P0/P1 后果;区分缺少证明与已证明的缺陷。
  3. 沿因果链追溯到最深层的归任务所有根因。
  4. 扫查该根因在所有受影响且归任务所有的生产者、构造器、消费者、门控、状态转换、持久化/发布边界、重试、回滚、恢复路径、交互邻接项和验收判据中的体现。
  5. 在当前依据中查找所有具有相同根因和修复闭环的表现,并将它们归入同一项发现。仅当根因独立失效,或需要不同的修复闭环时,才拆分。
  6. 推导出最小且可证伪的修复结果和独立证明。只有在具有约束力的依据不允许其他选择时,才规定具体机制。

每轮不要只返回一个可见症状。发出任何 FAIL 前,先完成对所有已发现 P0/P1 根因的后果扫查,并在同一批次中纳入所有当前可信的 P0/P1 问题。

当规范提供有序且穷尽的划分时,检查其成员项、空行、矛盾、缺失的后果行,以及归任务所有的扩展点。不要用形状不同但等效的划分替代它。只有当成员范围和每个归任务所有的扩展点都已封闭时,才将有限清单视为完整。

完成所有已发现的根因类别后,执行一次有界的最终挑战:

  • 对于关键/高严重性,从一个独立载体或失效角度,重新攻击后果最严重且论据最充分的主张。
  • 对于标准/低严重性,针对控制性结果、范围、验收条件或停止条件,测试一个聚焦的反例。

不要开始新的全面扫查。如果此挑战证明了新的 P0/P1 根因,先完成该根因的整个类别,再报告。如果没有证明新的根因,则停止攻击并应用判定的真实性条件。

重新审查的收敛

每次重新审查时:

  1. 根据当前证据,将每个先前的 P0/P1 标记为 resolved、still present 或 superseded。仅修改措辞不构成修复闭环。
  2. 根据记录的根因、后果范围和规则变更的交互邻接项,验证每项修正。
  3. 运行上述唯一一次有界的最终挑战。
  4. 对每个已证明的当前 P0/P1,说明先前的根因是否仍然存在、先前审查是否漏掉了依据中已显现的另一个根因,或该修订是否使根因变得可达。引用决定性证据或变更后的条款;不要另设分类字段。
  5. 如果根因再次出现,证明其当前可达性,并说明先前的修正不完整还是先前的诊断有误。新的行号、改述或替代划分都不构成证明。
  6. 如果证明存在任何 P0/P1,就在此 FAIL 批次中完成并返回其整个根因类别。如果没有证明任何 P0/P1,则返回 PASS。不要再次扫查。

证据与优先级

按以下顺序采用权威依据:

  • 预期行为:最新的明确用户决定,以及约束力最强、最具体的 任务/范围/验收/上级契约;
  • 当前行为:实时代码、测试、架构、迁移、配置和调用路径;
  • 外部语义:适用且版本正确的一手资料;
  • 历史记录、注释、名称、惯例:仅作辅助,除非已被约束性契约采纳。

测试只能证明其断言的内容。测试套件通过和模拟对象都不是独立的正确性判据。

根据后果、触发条件和可恢复性确定优先级:

  • P0 — 关键结果无法实现,或任务涉及的路径会使灾难性或不可逆的失败不可避免;
  • P1 — 常规路径或可信的触发路径可能导致发布实质性损坏、不安全或无法恢复的行为;
  • P2 — 现实但有界的性能退化,在正常运行下不会使计划失效;
  • P3 — 影响较小的缺陷或清晰度损失。

仅在适用时提供针对特定机制的证明:

  • 获取:跟踪释放、撤销、清理、终止、重试和恢复;
  • 数据库不变量:证明所有承载关键约束的物理架构属性;
  • 原子性:证明使用同一具体本地事务所有者/上下文,或分布式协调器、加入事务的组件、回滚和恢复标识;
  • 控制权威性/发布的结构化数据:区分在实质上不同的缺失、null、空值、对象、列表、标量、格式错误和冲突状态;
  • 全面性/否定性属性:穷尽证明域,或要求有界结果契约。

报告

必须以以下内容原样开头:

PASS
Basis: <full | incremental | reset-to-full>; <paths; Git HEAD + dirty state, or limitation>

或:

FAIL
Basis: <full | incremental | reset-to-full>; <paths; Git HEAD + dirty state, or limitation>

重新审查时,在当前发现之前简要列出先前决定:

Prior: <id> resolved | still present | superseded — <decisive current evidence>

在 Codex 适配器模式下,每打开一条超出种子清单范围的直接路径,就添加一行:

Evidence addition: <repository-relative path> | <full Git blob hash> | <reason>

路径和原因必须写在同一行,且两者中都不得包含字面分隔符 |。

按优先级顺序报告发现:

[Px] <short title>
Evidence and impact: <current location and source evidence; activation, harm, recoverability>
Root and closure: <stable descriptive root; why it belongs to this task; existing owner/path when applicable; complete manifestation and consequence sweep; falsifiable closure>
Proof: <independent evidence or counterexamples>

P0/P1 必须包含全部三个字段。重新审查时,在 Root and closure 中简要说明来源或重复原因。若 P2/P3 字段合并后仍能清楚表达与决策相关的含义,则可以合并。不要在发现列表中重复已解决的根因。

在锁定状态下 FAIL 时,以以下内容结尾:

Next: to-spec

PASS 时,以以下内容结尾:

Next: review-stage gate

当缺少约束性权威依据或其内容相互矛盾时,只有在该缺口可信地可能导致 P0/P1 的情况下才返回 FAIL。以一条具体的白话 Question: 结尾,并添加 Next: wait for answer。解释有证据支持的选项及其后果,不要设置固定选项菜单。不要将重复审查、未完成的修正或难以完成的证明转变为权威性问题。

评论

支持 Markdown