mcpField
K
kill-argument

kill-argument

github.com/wanshuiyin文档处理18.2k426 次安装4 天前更新
代码仓库

关于 kill-argument

kill-argument 是面向论文投稿和答辩准备的审阅技能。它先让一位审稿人提出最有力且简洁的拒稿论点,再由新的独立审稿人逐点对照论文评估,突出尚未解决的异议,而非罗列均衡的弱点。

主要功能

  1. 01生成聚焦的拒稿论点
  2. 02分别执行攻击与裁定审阅
  3. 03按论文当前文本分类异议
  4. 04输出 Markdown 和 JSON 报告
  5. 05可选将报告渲染为 HTML

适用场景

  1. 01投稿前找出论文最致命的异议
  2. 02准备对可能审稿批评的回应
  3. 03检验理论论文的范围与主张是否一致

MCP 相关

该技能通过 Codex MCP 分别发起攻击和裁定审阅调用;第二次审阅使用独立线程,不复用第一次的线程。

安装

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

$npx skills add https://github.com/wanshuiyin/auto-claude-code-research-in-sleep --skill kill-argument

安装后在 Claude Code 中输入/kill-argument确认已加载。

详细介绍

Kill Argument 练习:对抗式攻击-防御评审

每次评审开始前,请遵循 可选评审者: 按顺序解析调用参数 → .aris/reviewer.json → Claude Code 默认值(Codex MCP), 并通过规范的辅助解析器调用 reviewer_route.py,保留本次评审的等级、新鲜上下文、源文件/图像输入和确定性门控。 下方的 Codex 示例/固定设置仅适用于 backend=codex;其他路由使用各自的首次调用/回复约定。保存路由和实际返回的身份; 不可用的选项标记为 REVIEW_UNAVAILABLE。根据实际的模型系列/完成情况/范围对接受情况进行分类。 将调用中的评审者/模型/effort 覆盖参数传递给包含评审者的子任务。生成工作线程不变。

🔒 不要将此技能包装在 /loop、/schedule 或 CronCreate 中。 它会给出裁决——产生对抗式接受/拒绝结论(攻击 → 裁决)。按墙上时钟定时重复运行不会带来新信号(只有论文发生变化时,攻击才会变化)。应安排在它之前的外部等待——草稿稳定后,再在投稿前运行一次。参见 shared-references/external-cadence.md。

针对论文的核心主张,用最有力的拒绝论据进行压力测试:$ARGUMENTS

存在的意义

基于评分的常规评审(/research-review、/auto-paper-improvement-loop)往往会给出均衡的弱点列表。每个弱点获得的关注度大致相同,并按 CRITICAL > MAJOR > MINOR 排序。经验表明,这会漏掉一种特定的失败模式:评审者会在拒稿段落中写出的杀伤力最强的单条论据——也就是领域主席读到后会直接否决论文的那句话。

均衡的评审者可能会将“范围过度主张风险”列为 MAJOR,并与另外 3-5 个 MAJOR 并列,却始终不明确表态。对抗式评审者必须明确表态:他们的全部任务就是在 200 词内说服领域主席拒绝论文。

此技能会有意执行这一对抗式评审,然后要求第二位全新的评审者逐点进行辩护,将每项拒稿理由分类为已修复/部分修复/仍未解决,并揭示哪些问题实际上具有决定性影响。

**经验依据:**在一次真实的投稿流程中,经过多轮常规改进(评分为 7-8/10)后,杀手论据练习发现了此前所有评审都未发现的表述弱点(例如,某种设定实际上主要是有条件的,而非真正通用;或者某个基线与真实系统无关)。作者的反驳促使其在摘要和讨论中明确限定范围,而仅凭基于评分的评审无法发现这些问题。

与其他评审技能的区别

技能向评审者提出的问题输出
常规同行评审“为这篇论文打分,并按严重程度列出弱点”均衡的弱点列表
/research-review“深入评审方法和主张的技术内容”结构化的深度批评
/proof-checker“这个定理是否真的得到了证明?”逐步审查证明义务
/paper-claim-audit“论文是否如实报告了数据?”逐项核验主张证据
/citation-audit“引用是否真实,且使用语境是否正确?”对每条引用给出 KEEP/FIX/REPLACE/REMOVE
/kill-argument“写出最有力的一段拒稿理由,然后为其辩护。”攻击备忘录 + 逐点辩护 + 揭示未解决的问题

此技能是补充工具,并非替代方案。常规评审后,在你想了解最坏情况下评审者会如何写作、以及在准备最终稿或答辩之前运行此技能。

适用场景

  • 在 /auto-paper-improvement-loop 经过 1–2 轮迭代并达到稳定分数后、投稿前使用。找出还能通过哪些额外修改来缩小标题与论文实际内容之间的落差。
  • 准备 rebuttal 时,预测审稿人 2 最有力的反对意见,以便提前准备回应。
  • 对于标题较为宏大、可能过度简化实际定理的理论论文(最常见的拒稿攻击模式)。
  • 对于审稿人可能会质疑研究范围、假设与主张不匹配、证明义务缺失,或证据与标题主张存在差距的论文。

这项技能对理论论文最有价值,尤其是包含 ≥5 个定理类环境的论文(因此标题主张取决于实际的证明义务)。对于没有定理的实证论文,请改用 /research-review。

常量

  • REVIEWER_MODEL = gpt-6-astra(默认;根据 shared-references/reviewer-routing.md,gpt-6.1-sol 是首选的模型能力回退选项,只有在明确指定旧版覆盖时才使用 gpt-5.4)。攻击/辩护/裁定线程的审稿推理强度 = ultra(深度审计级;根据 shared-references/reviewer-routing.md 回退模型能力,绝不低于 xhigh)。Beast 模式轴向探测保持为 xhigh。
  • CONTEXT_POLICY = fresh(REVIEWER_BIAS_GUARD)。每个线程都是一次全新的 mcp__codex__codex 调用。绝不使用 mcp__codex__codex-reply。先前的审稿摘要、修改清单或执行者说明均不得进入任一提示词。
  • ATTACK_LENGTH = 约 200 个单词(不得超过 250 个单词)。单个连贯论点,不要写成列表。
  • DEFENSE_DECOMPOSITION = 从攻击备忘录中提取 3–7 个原子级拒稿理由。每个理由都要单独分类。
  • CLASSIFICATION = answered_by_current_text / partially_answered / still_unresolved。(选择这些名称,是为了避免裁定者认为“已解决”意味着此前曾进行过修改——他们会像一位初次审稿的审稿人一样阅读论文。)
  • OUTPUT = 论文目录中的 KILL_ARGUMENT.md(供人阅读)+ KILL_ARGUMENT.json(供机器读取)。
  • RENDER_HTML = true — 设为 true(默认值)时,报告写入后会自动将 KILL_ARGUMENT.md 渲染为 HTML。使用完整 Codex 审稿关卡(审计级产物——完整的渲染保真度检查符合该技能的跨模型审计不变量;同时也会将旁侧文件 KILL_ARGUMENT.json 传递给渲染器)。设为 false 可跳过,或传入 — render html: false。

工作流

第 1 步:查找论文文件

定位论文目录并清点源文件。

PAPER_DIR="$ARGUMENTS"   # e.g., paper-overleaf/ or paper/
cd "$PAPER_DIR"

# Find the LaTeX entry point
ENTRY=$(grep -lE '^\\documentclass' *.tex 2>/dev/null | head -1)
echo "Entry: $ENTRY"

# Find all source files codex should read
find . -name "*.tex" -not -path "./.git/*" 2>/dev/null
find . -name "*.bib" -not -path "./.git/*" 2>/dev/null
find figures/ -name "*.pdf" -o -name "*.png" 2>/dev/null
ls -la *.pdf 2>/dev/null  # compiled PDF

如果缺少编译后的 PDF,该技能仍应仅基于 .tex 源文件运行,但提示词应说明这一点,以免审稿人浪费时间尝试从不存在的 PDF 中提取内容。

第 2 步:攻击备忘录(线程 1,全新 codex)

使用以下提示词结构调用 mcp__codex__codex(不要使用 codex-reply):

请先解决此审稿人角色;以下是 backend=codex 的示例。

mcp__codex__codex:
  model: gpt-6-astra
  config: {"model_reasoning_effort": "ultra"}
  sandbox: read-only
  cwd: <paper directory>
  prompt: |
    You are simulating a hostile NeurIPS / ICLR / ICML reviewer for a paper.
    This is a kill-argument adversarial check — your task is NOT to give a
    balanced review but to construct the **single strongest argument for
    rejecting this paper**.

    ## Files to read
    - LaTeX entry: <ENTRY>
    - All section files under sections/ or wherever they live
    - Macro files (math_commands.tex, etc.)
    - Compiled PDF: <main.pdf> (if available)

    Read the source carefully. Do not consult any prior reviews, fix lists,
    or summaries; this must be a fresh, zero-context adversarial pass.

    ## Your task
    Construct the single best argument to reject this paper in approximately
    200 words. Your goal is to write the worst-case rejection memo a senior
    NeurIPS area chair would produce after reading the paper.

    Focus on these axes (pick the most damaging combination, do not list all):
    1. Theorem validity: are central theorems actually proved as stated?
    2. Assumption-vs-claim mismatch: does the body silently retreat to a
       narrower object than the title/abstract advertise?
    3. Missing proof obligations: is a fundamental lemma invoked but not
       proved (e.g., concentration, generic position, prefactor envelope)
       that the headline depends on?
    4. Limit-order ambiguity: are limits in K/n/d/eps composed in a way the
       paper does not commit to?
    5. Claim-vs-evidence gap: is the empirical/numerical evidence too narrow
       to support the breadth of the stated theorem or take-away?
    6. Scope overclaim: does the title or abstract sell a result substantially
       broader than what the body proves?

    ## Constraints
    - Approximately 200 words total (do NOT exceed 250).
    - Single argument, not a list — pick the most damaging line of attack
      and develop it.
    - Cite specific file:line locations or equation numbers when accusing.
    - Tone: dispassionate but uncompromising. Do NOT hedge. Do NOT acknowledge
      mitigations the paper might have made elsewhere. This is the rejection
      paragraph; the defense gets the next pass.
    - Do NOT reference prior review rounds, fix lists, or any context outside
      the current paper files.

    Output: just the rejection memo, nothing else.

保存返回的 threadId 以便追踪;不要将它传递给线程 2。原样保存攻击备忘录——线程 2 和供人阅读的报告都会使用它。

步骤 2.5(可选,beast effort):多轴攻击扩展

默认关闭。 此技能的交付内容就是一个结论——最有力的一段拒稿理由——而 shared-references/fan-out-pattern.md 明确指出:不要扩展结论;只扩展为结论提供依据的证据。 默认的单一立场攻击(步骤 2)是刻意设计的——强制写出一段话,比平衡罗列更能产生犀利的反馈(参见为何存在)。不要用列表取代它。

在 beast effort 下,你可以拓宽该立场所依据的证据,而不削弱立场:

  1. 轴向探查(证据广度)。 将六个攻击轴(定理有效性/假设与主张之别/遗漏的义务/极限顺序/主张与证据之别/范围夸大)作为彼此独立的新 codex 探查来运行,每次只要求在该轴上提出最有力的约 120 字论点。这些探查用于收集证据,不是结论。探查使用 xhigh(而非 ultra)——六次串行委派调用会增加成本,而 ultra 层级的立场提交仍会重新评判这些证据。
    • 这些不是 Claude 子 Agent,而且刻意没有授予 Agent 权限。 每次探查都是一次全新的 mcp__codex__codex 调用——对手必须跨模型(非 Claude)。Codex MCP 采用串行调用(并发的 codex 调用会挂起),因此探查会依次运行——这是扩展阶梯中的第 3 层。这正是 kill-argument 的 allowed-tools 中没有列出 Agent 的原因:它不会生成任何内容;它会串接 codex 调用。
  2. 立场提交(结论,仍然只有一个)。 最后一次全新的 codex 综合调用会读取六份探查结果和论文,并且必须提交最具杀伤力的一段约 200 字拒稿理由——选择并融合至多两个攻击轴,而不是罗列全部六个。步骤 2 的立场提交要求保持不变;这些探查只是确保提交立场前没有遗漏任何攻击轴。

随后,仲裁(步骤 3)会像默认流程一样,针对这一已提交的攻击展开。成本:beast 会额外增加约 6 次串行 codex 调用——仅在高风险论文最终提交前使用,不要作为常规操作。

追踪:在追踪记录中记录每次探查的 threadId(axis_probe_thread_ids[])以及综合调用的 threadId,方式与步骤 2–3 保存其 thread id 相同。步骤 3 使用的是已提交的攻击备忘录,而不是六份探查结果。

步骤 3:仲裁备忘录(线程 2,使用攻击内容和论文进行全新的 codex 调用)

调用第二次 mcp__codex__codex(仍然不要使用 codex-reply——线程 2 独立于线程 1 的 codex 历史记录):

请先解决此审稿人环节;以下是 backend=codex 示例。

mcp__codex__codex:
  model: gpt-6-astra
  config: {"model_reasoning_effort": "ultra"}
  sandbox: read-only
  cwd: <paper directory>
  prompt: |
    You are an independent area-chair adjudicator examining whether the
    current paper text answers a hostile reviewer's rejection memo.
    You are NOT the paper's defender — your job is to read the attack
    point-by-point and rule, from the current source files alone,
    whether each point stands or falls. Fresh, zero-context adjudication;
    do not reference any prior reviews / fix lists.

    ## Paper files
    [list paths same as Step 2]

    ## The hostile reviewer's rejection memo (the "attack")
    > <attack memo verbatim from Thread 1>

    ## Your task
    The attack is one continuous argument, but it makes multiple distinct
    rejection points that you must adjudicate separately. Decompose the
    attack into its atomic rejection points (3-7 of them), then for each
    point classify it:

    - answered_by_current_text: the current paper source already mitigates
      this point (cite specific file:line evidence)
    - partially_answered: paper has some response but not enough to refute
      the attack as written
    - still_unresolved: paper has no effective response

    The label `answered_by_current_text` is intentional — "fixed" implies
    history of patching and biases toward optimism. You are reading the
    paper as a reviewer would, with no knowledge of prior round drafts.

    For each rejection point, output:
    ### Point P_n: <short label>
    **Attack claim**: <the specific accusation, ~30 words>
    **Verdict**: answered_by_current_text | partially_answered | still_unresolved
    **Evidence (or lack of)**: <cite file:line, ~50 words>
    **Severity if unresolved**: critical | major | minor
    **If unresolved, recommended fix**: <one specific actionable sentence>

    After per-point analysis, output:

    ## Summary
    Total rejection points: N
    - answered_by_current_text: X
    - partially_answered: Y
    - still_unresolved: Z

    ## Net assessment
    <one short paragraph: would this paper survive a senior area-chair read
    of the attack memo, given only what is in the current source? Be honest —
    if Y or Z > 0 and they hit the headline, say so.>

    ## Top action items (in priority order, max 3)
    1. ...
    2. ...
    3. ...

    ## Constraints
    - Do NOT consult any prior round reviews or fix lists. Adjudication must
      be made strictly from current paper files.
    - If the paper cannot refute a point, do NOT minimize — keep severity
      honest.
    - If a point reflects an author-chosen position (e.g., conscious title
      scope decision), classify as `partially_answered` with a note that the
      position is intentional, AND say whether this position is sustainable
      under the attack — do NOT auto-grade as `answered_by_current_text`
      just because it is intentional.
    - Be specific. No flattery, no hedging, no rationalizing on the paper's
      behalf.

保存返回的 threadId。

步骤 4:编写 KILL_ARGUMENT.md 和 KILL_ARGUMENT.json

编写面向读者的报告 <paper-dir>/KILL_ARGUMENT.md:

# Kill Argument Report — <paper title>

**Date**: <YYYY-MM-DD>
**Reviewer model**: <resolved pair that actually ran — target gpt-6-astra ultra>, fresh threads (no codex-reply)
**Attack thread**: <threadId 1>
**Adjudicator thread**: <threadId 2>
**Verdict**: <PASS / WARN / FAIL / NOT_APPLICABLE / BLOCKED / ERROR> (`reason_code: <...>`)

## Net assessment

<paragraph from adjudicator memo's "Net assessment">

## Attack memo (verbatim)

> <attack memo from Thread 1>

## Adjudication (per-point)

<copy verbatim from Thread 2 — uses labels answered_by_current_text / partially_answered / still_unresolved>

## Top action items

<copy from Thread 2>

## Recommendation

If P_4 (or whatever still_unresolved critical) is research-level, record
it as a known open problem in the conclusion / limitations. If it is
writing-level, queue for next /auto-paper-improvement-loop round.

按照 ARIS Audit Artifact Schema(shared-references/assurance-contract.md)编写机器可读文件 <paper-dir>/KILL_ARGUMENT.json:

{
  "audit_skill": "kill-argument",
  "verdict": "PASS | WARN | FAIL | NOT_APPLICABLE | BLOCKED | ERROR",
  "reason_code": "<see verdict mapping below>",
  "summary": "<one-line summary, ~80 chars>",
  "audited_input_hashes": {
    "main.tex":                          "sha256:<...>",
    "sec/0.abstract.tex":                "sha256:<...>",
    "sec/<each-section>.tex":            "sha256:<...>",
    "references.bib":                    "sha256:<...>",
    "main.pdf":                          "sha256:<...>"
  },
  "trace_path": ".aris/traces/kill-argument/<date>_run<NN>/",
  "thread_id": "<defense threadId — primary; attack threadId in details>",
  "reviewer_model": "<resolved — the model that actually ran (target: gpt-6-astra)>",
  "reviewer_reasoning": "<resolved — the effort that actually ran (target: ultra)>",
  "generated_at": "<UTC ISO-8601>",
  "details": {
    "attack_thread_id": "<threadId 1>",
    "defense_thread_id": "<threadId 2 — same as top-level thread_id>",
    "attack_memo": "<verbatim>",
    "decomposed_points": [
      {
        "id": "P_1",
        "label": "<short label>",
        "attack_claim": "<...>",
        "verdict": "answered_by_current_text | partially_answered | still_unresolved",
        "evidence": "<file:line citation>",
        "severity_if_unresolved": "critical | major | minor",
        "recommended_fix": "<...>"
      }
    ],
    "counts": {
      "answered_by_current_text": <int>,
      "partially_answered":       <int>,
      "still_unresolved":         <int>
    },
    "net_assessment": "<adjudicator memo's net assessment>",
    "top_action_items": ["...", "...", "..."]
  }
}

哈希输入(audited_input_hashes):使用论文相对路径,计算所有已使用 .tex 文件以及 references.bib 的 sha256,如果已编译,则还要计算 main.pdf 的 sha256。验证器会在运行 verify_paper_audits.sh 时重新计算这些文件的哈希;如果用户在运行审计后编辑了论文,则会标记为 STALE。

判定结果映射(每个(计数,严重性)元组必须且只能匹配一行):

判定结果reason_code触发条件
FAILunresolved_critical至少有 1 个严重性为 critical 的 still_unresolved
WARNunresolved_major_or_minor至少有 1 个严重性为 major 或 minor 的 still_unresolved(且没有 critical)
WARNpartial_critical_or_repeated_majorstill_unresolved 为 0,且至少有 1 个严重性为 critical 或 major 的 partially_answered
PASSdefense_survives_with_minor_partial_onlystill_unresolved 为 0,且至少有 1 个 partially_answered,并且全部严重性均为 minor
PASSdefense_survivesstill_unresolved 为 0,且 partially_answered 为 0
NOT_APPLICABLEnot_theory_or_scope_paper论文中的 \begin{theorem|lemma|proposition|corollary} 少于 2 个,且摘要中没有范围/一般性主张
NOT_APPLICABLEheadline_unstable标题或摘要在最近 2 次提交中发生了变化——待标题稳定后重新运行
BLOCKEDpaper_compile_failed缺少已编译的 PDF,且 main.tex 未能干净编译——裁定需要忠实于源文件
BLOCKEDsource_files_missing找不到 main.tex,或没有 sec/*.tex 文件
ERRORcodex_api_errormcp__codex__codex 调用失败
ERRORdecomposition_parse_failed裁定线程未返回可解析的逐项结构
ERRORtrace_save_failed写入跟踪目录失败

PASS 要求 still_unresolved == 0。当 still_unresolved == 0 时,只要存在严重性为 major 或更高的 partially_answered,最佳可用判定结果就是 WARN,绝不能是 PASS。

判定结果根据逐项计数计算;不要让辩护线程直接输出顶层判定结果(否则它就能自我评分)。判定结果映射由技能代码完成。

步骤 5:打印摘要

向用户显示:

🗡  Kill Argument complete.

  Attack: <one-sentence summary of the rejection thrust>

  Adjudication breakdown:
    answered_by_current_text:   X
    partially_answered:         Y
    still_unresolved:           Z   ← critical: <names>

  Verdict: <PASS / WARN / FAIL / NOT_APPLICABLE / BLOCKED / ERROR>
  Reason:  <reason_code, e.g., defense_survives, unresolved_critical>

  Top action items:
  1. ...
  2. ...
  3. ...

  Full report: <paper-dir>/KILL_ARGUMENT.md

输出约定

  • <paper-dir>/KILL_ARGUMENT.md — 面向读者的报告
  • <paper-dir>/KILL_ARGUMENT.json — 机器可读的记录
  • .aris/traces/kill-argument/<date>_runNN/ — 每个线程的 codex 跟踪记录(攻击备忘录 + 裁定备忘录)
  • 可选:仅当用户明确请求时才应用修复;默认情况下只检测,不自动修改。
  • <paper-dir>/KILL_ARGUMENT.html(当 RENDER_HTML = true 时,默认为 true)— 通过 /render-html "<paper-dir>/KILL_ARGUMENT.md" --json "<paper-dir>/KILL_ARGUMENT.json" 自动渲染的单文件 HTML 视图。适用完整审查门槛。.review.json 旁文件包含渲染保真度判定结果。不阻塞:如果 /render-html 失败(缺少辅助工具、Codex MCP 不可用、文件写入错误),则记录失败并将技能视为已完成——HTML 视图仅为便利功能,不是判定结果的先决条件。

关键规则

  • 每次调用都使用全新线程。 Attack 和 Adjudication 都使用 mcp__codex__codex,绝不使用 codex-reply。线程 1 和线程 2 不得共享 codex 上下文。
  • 不提供任何先前上下文。 两个线程都不得接收先前轮次的评审、修复列表、执行器摘要或改进循环日志。
  • Attack 必须明确指出问题。 使用单个参数,约 200 个英文单词。不要用“还可以考虑……”之类的模糊措辞。关键在于迫使评审者选出破坏性最大的一句话。
  • Adjudicator 必须进行分类,而不是淡化问题。 如果论文没有有效回应,诚实地标记为 still_unresolved。除非确有证据,否则不要降级为 partially_answered。
  • 作者选择的立场(例如,刻意设定的标题范围、刻意省略的限定语):标记为 partially_answered,并注明该立场是有意为之,同时说明该立场在这项攻击下是否站得住脚。不要仅仅因为立场是有意选择的,就自动评为 answered_by_current_text。
  • Verdict 由 skill 计算,而非 adjudicator 决定。 Codex 线程输出逐项分类;skill 代码根据第 4 步的表格,将这些分类映射为 6 种审计 verdict 之一。绝不允许 adjudicator 自行评定顶层 verdict。
  • 直接调用时仅检测;也可由 /auto-paper-improvement-loop 第 5.5 步调用,随后将未解决的问题合并到修复列表中。 用户直接运行 /kill-argument paper/ 时,输出仅供参考,由人工决定是否采取行动。从自动改进循环内部调用此 skill 时,循环会读取 KILL_ARGUMENT.json,与现有弱点列表去重,并将新发现的 still_unresolved 问题纳入第 6 步的修复;/kill-argument 本身绝不编辑论文文件。

何时不应使用

  • 没有定理或范围主张的实证论文——/research-review 更有用。对于此类情况,该 skill 会输出 NOT_APPLICABLE,并设置 reason_code: not_theory_or_scope_paper。
  • 标题尚未稳定的非常早期草稿——先修改标题。如果标题或摘要在最近 2 次提交中有过更改,该 skill 会输出 NOT_APPLICABLE,并设置 reason_code: headline_unstable。
  • 正在进行实验的论文——等结果稳定后再运行。
  • (/auto-paper-improvement-loop 第 5.5 步过去会内联运行此协议;自 2026 年 5 月起,它改为调用 /kill-argument 并读取 KILL_ARGUMENT.json,因此不再有“不得在自动循环内部调用”的限制。)

评审追踪

每次调用 mcp__codex__codex 评审者后,都应按照 shared-references/review-tracing.md 保存追踪记录(Policy C — forensic;绝不可悄然跳过)。使用 save_trace.sh(根据 shared-references/integration-contract.md §2 中的调用链解析),或直接将文件写入 .aris/traces/kill-argument/<date>_run<NN>/。两个线程的原始响应都应保留。

说明

此 skill 于 2026 年 5 月从 /auto-paper-improvement-loop 第 5.5 步中提取,成为独立的基础功能;此前的实践表明,它能发现基于评分的评审所遗漏的标题与正文范围不一致问题。保留“先攻击、后辩护”的模式,正是因为实证证据表明,让一个模型“撰写拒稿意见”与让它“评审并打分”会产生质性不同的反馈——前者迫使模型明确表态,后者则容易含糊其辞。

评论

支持 Markdown