SuperAPI AI 工具集

interrogate

编程与开发

查看项目

更新于 10-28 16:16

技能介绍

Interrogate 是一个用于 Pstack 对抗性审查的技能,其核心目标是尝试破坏一个具体的代码差异(diff)或有争议的设计,并且只保留那些能够通过实际运行证明的发现。该技能强调“对抗者试图破坏变更或设计,只有运行能证明的发现才能存活”,并且明确“报告发现,不应用修复”。

用途

Interrogate 用于对代码变更或设计进行对抗性审查。它适用于需要严格验证变更是否真正符合意图的场景,通过让多个对抗者尝试从不同角度破坏变更,来发现潜在的问题。该技能特别强调只保留可复现的发现,避免主观或无法验证的反馈。

主要能力

  • 范围与意图界定:首先明确审查范围(用户指定的范围,或从合并基点到工作树的分支差异)和意图(通过 /in-your-own-words 从用户消息、提交和 PR 描述中提取)。如果意图不清晰,会询问用户。
  • 对抗者部署:运行 /arena 的 Phase A 步骤 3 和 4 以及 Phase B,并进行四项更改。将对抗者作为 /swarm 的面板,替代 /arena 的运行器。将范围中的未提交更改复制到每个工作树中。每个对抗者作为写入者在其自己的工作树中运行命令。根据 /swarm,如果某个对应席位无法运行命令,则采用同供应商回退,并在报告中说明。
  • 对抗者任务:每个对抗者收到范围、意图和简要说明:“破坏这个变更。用针对真实代码的运行来证明每个发现,例如失败的测试、复现脚本或显示错误行为的命令输出。对于设计或计划,运行原型或探测当前树。将复现保留在自己的工作树中。报告每个发现时,包含标题、确切命令、打印的输出以及意图要求的输出。省略任何未运行的内容。这涵盖风格、命名、结构以及需要未来变更才能产生影响的风险。没有发现是有效结果。”
  • 验证发现:根据 /arena Phase F 重新运行每个发现的命令来验证。当输出显示失败且失败破坏了意图时保留发现,否则丢弃。合并共享根因的发现。跳过 /arena 的 Phase C、D 和 E。
  • 输出报告:输出包括意图重述、已验证的发现(每个发现包含命令、输出、如何破坏意图以及发现它的对抗者),以及被丢弃的发现(每个对抗者的丢弃数量和原因)。如果没有发现存活,则说“没有已验证的发现”。

使用方式

该技能通过调用 /domain-modeling 来解析和读取调用项目配置的产物。只读调查和审查报告文档漂移而不进行编辑;创建或实现通过该所有者协调接受的模型更改。使用流程包括:界定范围和意图、派出对抗者、验证发现、输出报告。

适用场景

  • 对代码差异进行对抗性审查,确保变更符合意图。
  • 对有争议的设计进行审查,通过原型或探测验证。
  • 需要可复现证据的代码审查场景。

限制

  • 该技能不应用修复,仅报告发现。
  • 只保留能够通过运行证明的发现,无法运行的发现会被丢弃。
  • 需要项目配置的产物和 /domain-modeling、/arena、/swarm 等技能的配合。
  • 具体实现细节和依赖可能因项目配置而异。