Skip to content

docs(harness-eval): add EFC paper reference notes for design and experiments#134

Open
howie wants to merge 3 commits into
mainfrom
claude/paper-analysis-harness-eval-QGJ0W
Open

docs(harness-eval): add EFC paper reference notes for design and experiments#134
howie wants to merge 3 commits into
mainfrom
claude/paper-analysis-harness-eval-QGJ0W

Conversation

@howie

@howie howie commented Jun 6, 2026

Copy link
Copy Markdown
Collaborator

Why(為什麼要做)

harness-eval skill 目前的 D1–D11 評分有兩個根本限制:

  1. 權重全是專家直覺,從未用實證 outcome 驗證過——我們無法回答最根本的問題:「分數高的 repo,真的比較容易讓 agent 成功嗎?」
  2. 加總式絕對分數有規模偏誤——分數是 D1–D11 累加到 /123,artifact(skill / hook / rule)越多分越高,導致大 repo 天然佔便宜,5-file 小 repo 與 500-file 大 repo 直接比並不公平。

這個 PR 借用論文 Scaling Laws for Agent Harnesses via Effective Feedback Compute(EFC)的兩個方法論概念,開始把 harness-eval 從「直覺評分」往「可證偽的預測模型」推進。

Provenance caveat:該論文為未來日期(2026-05)且引用虛構模型,本 PR 僅把它當作方法論框架參考(task-demand 正規化、R²/MAE 驗證協定),不作為實證權威;研究筆記開頭已明確標註此 caveat。

What(這個 PR 做了什麼)

三個 commit,由輕到重:

  1. 研究筆記docs/research/2026-06-03-efc-...reference.md,純文件)
    把 EFC 論文概念逐項對映到 harness-eval 現有 scanner,分成 Track A(設計微調)與 Track B(資料收集/驗證),並排出 impact × effort 優先順序。不改任何程式碼。

  2. 兩份 Spectra change proposalopenspec/changes/,純規格)

  3. D_repo task-demand 正規化的實作feat(harness-eval): 以 task-demand 正規化分數,讓不同規模 repo 可比 (EFC D_task) #136,唯一動到程式碼的 commit)

    • models.pyScanOutput 新增 d_repo / d_repo_components / size_adjusted_score / size_adjusted_note,並在 model_post_initsize_adjusted_score = round(total / d_repo, 1)
    • service.py:新增 _count_source_loc / _count_skills / _count_hooks / _count_rules_compute_d_repo(log 縮放、恆 ≥ 1.0、防禦式解析)
    • cli.py + SKILL.md:報告輸出 raw 分 + size_adjusted 分,並明確標記 provisional(未校準,見 #143)
    • tests/test_scanners.py:新增 13 個 TDN-DT / SMK 測試

Value(價值)

How to test(如何驗證)

# 1. 跑本 PR 新增的 13 個 task-demand normalization 測試
uv run pytest tasks/harness_eval/tests/test_scanners.py \
  -k "TDN_DT or SMK" -v

# 2. 全量 CI(ruff + mypy + pytest + pre-commit --all-files)
make ci

# 3. 實際掃描本 repo,確認報告出現 size_adjusted 與 D_repo
uv run python -m tasks.harness_eval scan
#    預期輸出含:
#      Size-adjusted: <分數> [provisional(未校準,見 #143)]
#        D_repo = <值>  (<components>)

驗證重點:

  • size_adjusted_score = round(total_mechanical / d_repo, 1),且 d_repo 恆 ≥ 1.0
  • 大 repo 的 size_adjusted 差距 < raw 差距(TDN-DT-007)
  • _compute_d_repo 對同一 repo 具確定性(TDN-DT-008)

已知 caveat(commit message 內 T042 已註明):make ci 中唯一未綠者為 pre-existing 的 test_factory_helper_oserror_skipped(root 環境下 chmod 0o000 無法擋讀,clean tree 亦失敗),與本變更無關;本 PR 的 ruff + mypy + 13 個 TDN 測試全綠。


🔗 相關 issue:#136(task-demand normalization)、#143(validation protocol)、#140 / #142(前置依賴)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants