From 20c48f04b92d6c17acfab1ad75937cd1d600ed60 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BE=9D=E7=91=AA=E8=B2=93?= Date: Thu, 6 Aug 2026 13:11:43 +0800 Subject: [PATCH] Quote one line per kept keyword in the arbitration Co-Authored-By: Claude Opus 5 (1M context) --- docs/decision-log.md | 11 +++++++++++ docs/run-costs.md | 3 ++- prompts/03-02-arbitration.md | 19 +++++++++++-------- 3 files changed, 24 insertions(+), 9 deletions(-) diff --git a/docs/decision-log.md b/docs/decision-log.md index a040e67..a0be07b 100644 --- a/docs/decision-log.md +++ b/docs/decision-log.md @@ -517,3 +517,14 @@ 的第二道工序;`arb` 又是全部 task 名中唯一的縮寫。趁 步驟 3-2 尚未執行改名,此名進歸檔目錄與論文引用後即 不再變動。 +- **仲裁的輸出格式要求連帶改變裁決本身,據實記入論文 + 限制**:步驟 3-2 首次執行,644 首中 2 首遭輸出過濾 + 攔阻、13 首輸出夾帶散文——thinking 關閉,模型把推理 + 寫進可見輸出,其中可見「Wait, let me reconsider.」的 + 自我否定。定義檔補上「每個保留的碼恰引一行」與「JSON + 之外不得書寫任何文字」後以同一份輸入重跑(SHA-256 未 + 變),攔阻與散文皆歸零,但保留率同時由 80.1% + (1,342/1,676)升至 87.2%(1,481/1,699;分母差異來自 + 首次執行有 2 首無輸出)。即:禁止在輸出裏推理不只改變 + 格式,也改變了裁決——少了邊寫邊自我否定的過程,模型 + 傾向保留。此為儀器行為的一部分,不作修補。 diff --git a/docs/run-costs.md b/docs/run-costs.md index 836488c..942de40 100644 --- a/docs/run-costs.md +++ b/docs/run-costs.md @@ -36,5 +36,6 @@ $3/$15、opus-4-6 $5/$25、opus-5 與 fable-5 $10/$50) | 2026-08-06 | 命名實驗(100 組)| — | claude-fable-5 | msgbatch_01Y8SJj1h1ZuSQRErhqkvgZE | 3 分 2 秒 | 76,211 | 2,049 | $0.43 | 實驗:同上,加禁用 themes;未採用;歸檔不入 repo | | 2026-08-06 | 03-01-code | run1 | claude-sonnet-4-6 | msgbatch_01GS1opvurvsf62oknnQxhtx | 3 分 46 秒 | 1,625,458 | 362,759 | $5.16 | 現行(101 碼;883 首全數有效,零攔阻) | | 2026-08-06 | 03-01-code | run2 | claude-sonnet-4-6 | msgbatch_01CxnwNLWzZbRpZK7UAdpb8i | 5 分 22 秒 | 1,625,458 | 364,098 | $5.17 | 現行(101 碼;883 首全數有效,零攔阻) | +| 2026-08-06 | 03-02-arbitration | — | claude-sonnet-4-6 | msgbatch_019xcQXwrbwDGFc9nE5M8AjE | 4 分 0 秒 | 763,193 | 42,389 | $1.46 | 已取代(2 首遭內容過濾攔阻、13 首輸出夾帶散文;定義檔修訂後重跑) | -累計支出:$55.12。 +累計支出:$56.58。 diff --git a/prompts/03-02-arbitration.md b/prompts/03-02-arbitration.md index 85debc8..16a8c3b 100644 --- a/prompts/03-02-arbitration.md +++ b/prompts/03-02-arbitration.md @@ -7,14 +7,14 @@ disagreements: the keywords assigned by one coding but not the other. Input: a JSON object with the lyrics of the song and the -disagreements — each disagreement maps a keyword to the lyric -quotes the assigning coding gave as evidence: +disagreements — each disagreement maps a keyword to the +quoted lyric line the assigning coding gave as evidence: { "lyrics": "...", "disagreements": { - "first-keyword": ["quoted line", "another quoted line"], - "second-keyword": ["quoted line"] + "first-keyword": ["quoted line"], + "second-keyword": ["another quoted line"] } } @@ -25,18 +25,21 @@ of the quoted evidence. Rules: - Rule on every listed keyword: keep it or drop it. -- Keep a keyword only when you can ground it in verbatim - lines of the lyrics; quote them. +- For each keyword you keep, quote exactly one verbatim line + of the lyrics that grounds it; drop a keyword you cannot + ground. - Do not add any keyword that is not listed. Do not wrap the output in a Markdown code fence. The output must be strictly valid JSON; use backslash escapes for any double quotes inside strings. +Write nothing outside the JSON object — no explanation, no +reasoning, no commentary, before it or after it. -Output a single JSON object mapping each kept keyword to your +Output a single JSON object mapping each kept keyword to its list of quotes, and nothing else. A dropped keyword is simply left out; output an empty object when nothing is kept: { - "kept-keyword": ["quoted line", "another quoted line"] + "first-keyword": ["quoted line"] }