Skip to content

docs(eval): commit first real fidelity baseline (59/84 measured, 40% coverage) - #130

Merged
xr843 merged 3 commits into
mainfrom
eval/fidelity-baseline
Aug 18, 2026
Merged

docs(eval): commit first real fidelity baseline (59/84 measured, 40% coverage)#130
xr843 merged 3 commits into
mainfrom
eval/fidelity-baseline

Conversation

@xr843

@xr843 xr843 commented Aug 18, 2026

Copy link
Copy Markdown
Owner

Summary

The README advertises Fidelity-tested as one of four pillars, but no fidelity score had
ever actually been committed to the repo — scripts/test-fidelity.py only printed to
stdout, and CI only ran --dry-run (structural check, no API calls). This PR runs the
graded suite for real and commits the first honest baseline.

  • Measured commit: c697d5d3be78ce6738cf1f969ca057c7e4c16bb5
  • Model: claude-sonnet-4-6
  • Result: 59/84 measured cases passed (70%), covering 84/211 fixtures (40%) of the full suite.
    The run stopped partway through when the Anthropic account's API credit ran out
    (HTTP 400 — Your credit balance is too low), not from rate limiting or a bug — the
    harness itself worked correctly (confirmed with a smoke test first, and every rejected
    call was caught and recorded as api_error instead of crashing the run). The remaining
    127 fixtures (master-huineng through master-zhiyi, plus 8/10 of master-help) were
    never evaluated and are recorded as not measured, not as failures.
  • Real failures in the 84 measured cases cluster around: boundary tests where the persona
    leaks comparative language under direct "which is better" pressure (14/25 failures),
    citations dropped when the user explicitly asks not to cite scripture (6/25), and missing
    expected keywords (5/25). Zero fabricated citations in the measured sample.

New files:

  • eval/reports/0.10.1-c697d5d.json — raw run output (verbatim suites array from the
    script), wrapped in a meta block with commit, model, timestamps, coverage/pass totals.
  • eval/reports/BASELINE.md — full table + honest failure-cluster analysis.
  • eval/reports/README.md — what the directory is, how to regenerate, what the numbers
    do/do not mean, and cost.

README.md / README_EN.md get a compact, truthful summary near the existing pillar
claims, linking to eval/reports/BASELINE.md for detail.

Not changed: no fidelity.jsonl fixture, no pass/fail threshold or checking logic in
scripts/test-fidelity.py, and package.json's files[] (the eval/ directory is not
shipped in the npm tarball).

中文说明

README 首屏一直宣称四大支柱之一是「可评测」(Fidelity-tested),但仓库里从未提交过一次真
实评分——scripts/test-fidelity.py 只把结果打印到终端,CI 也只跑 --dry-run(结构校验,
不调用 API)。这个 PR 把 211 条 fidelity.jsonl 夹具真正跑了一遍,并提交了第一份诚实基线。

  • 测量 commit: c697d5d3be78ce6738cf1f969ca057c7e4c16bb5
  • 模型: claude-sonnet-4-6
  • 结果:59/84 已测通过(70%),覆盖全量 211 条夹具中的 84 条(40%)。
    跑到一半 Anthropic 账户 API 余额耗尽(HTTP 400),不是限流也不是代码缺陷——harness 本身工作
    正常(先用冒烟测试确认过),每个被拒绝的请求都被正确捕获记为 api_error 而不是让整个跑批
    崩溃。剩余 127 条夹具(master-huinengmaster-zhiyi,以及 master-help 的 8/10)从未
    被实际评测,记为未测,不计入失败。
  • 已测的 84 条里,真实失败聚集在:边界测试中"哪个更好/更究竟"类比较用语在直接追问下外泄
    (14/25);用户明确要求"别引经据典"时引用被一并省略(6/25);预期关键词缺失(5/25)。已测
    样本中零虚构引用

新增文件:

  • eval/reports/0.10.1-c697d5d.json —— 脚本输出的原始 suites 数组(逐字保留),外层包一
    meta 块(commit、模型、时间戳、覆盖率/通过率汇总)。
  • eval/reports/BASELINE.md —— 完整表格 + 诚实的失败聚类分析。
  • eval/reports/README.md —— 目录说明、如何重跑、这些数字代表什么/不代表什么、成本。

README.md / README_EN.md 在现有支柱声明附近加了一段简短、真实的数字摘要,并链接到
eval/reports/BASELINE.md

未改动: 未修改任何 fidelity.jsonl 夹具,未改动 scripts/test-fidelity.py 的通过/失败
阈值或判定逻辑,package.jsonfiles[] 未变更(eval/ 目录不会进 npm 发布包)。

Test plan

  • python3 scripts/test-fidelity.py --master master-yinguang --max-tests 1 — smoke test, 1/1 PASS, confirms the harness works end to end
  • python3 scripts/test-fidelity.py --all --json --model claude-sonnet-4-6 — full graded run, ran ~44 minutes before hitting API credit exhaustion; 84/211 fixtures measured (59 passed)
  • npm test — 60/60 passing
  • python3 -m pytest -q — 373 passed
  • Verified package.json's files[] unchanged (eval/ not shipped in the npm tarball)
  • Verified no API key appears in any committed file

Follow-up

Re-run python3 scripts/test-fidelity.py --all --json --model claude-sonnet-4-6 once the
API key has credit again to cover the 127 fixtures this run never reached, and update
eval/reports/ with a full 211/211 baseline.

xr843 added 3 commits August 18, 2026 12:56
Previously scripts/test-fidelity.py only printed to stdout; the 211
fidelity.jsonl fixtures had never actually been scored and recorded,
so the "Fidelity-tested" pillar was unmeasured.

Ran the full graded suite (--all --json, claude-sonnet-4-6) against
commit c697d5d. The run stopped partway when the API account's
credit balance ran out (HTTP 400), not from rate limiting or a code
defect: 84/211 fixtures got a real graded response (59 passed, 70%),
the remaining 127 were never evaluated and are recorded as
"not measured" rather than failures.

Adds:
- eval/reports/0.10.1-c697d5d.json — raw run output (verbatim
  suites array from the script) wrapped in a meta block with the
  measured commit, model, timestamps, and coverage/pass totals.
- eval/reports/BASELINE.md — human-readable table plus an honest
  breakdown of what the real failures cluster around (boundary tests
  leaking comparative language, citations dropped under "don't cite"
  pressure, missing keyword coverage; zero fabricated citations).
- eval/reports/README.md — what this directory is, how to
  regenerate, and what the numbers do/do not measure.

Updates README.md / README_EN.md with a compact, truthful summary of
the real numbers near the existing pillar claims, linking to
eval/reports/BASELINE.md for detail. No fidelity.jsonl fixture or
scoring logic was changed.
The first baseline attributed its largest failure cluster to the personas:
14 boundary cases "leaking comparative language under pressure." Re-reading
the raw results against the fixtures does not support that.

`must_not_contain` is a plain substring match on the response, and these
boundary fixtures are baited questions that carry the loaded term themselves.
Of the 12 failures that tripped it, 10 name a term already present in the
question — 更好 / 更接近 / 最高 / 神通 / 禅宗最究竟 / 往生净土 / 八识 …

A correct refusal ("你问『禅宗最究竟』,这个提法本身就把宗派当成了名次")
fails the check exactly as hard as a real ranking would. So does restating
the question. Only 2 of the 12 are unambiguous violations.

So 70.2% is a floor, not an estimate: up to 10 of the 25 failures may be
artifacts of the instrument. Worse, this cannot be settled from the run —
test-fidelity.py persists only response_length, never the response, so no
failure is adjudicable after the fact. Both are now written up as findings,
with two non-question-begging fixes proposed (persist responses; exclude
terms that occur in the fixture's own question). No fixture and no threshold
was changed.

Also corrected: the pressure cluster is 6 failures of which 4 dropped a
citation, not 6 dropping citations.

Unrelated doc debts fixed while in the file:
- desktop manager manages 19 skills, not 17
- the screenshot URL pointed at branch `master`, which does not exist; it
  rendered only via GitHub's legacy default-branch redirect. Now `main`.
@xr843
xr843 merged commit ac9f707 into main Aug 18, 2026
13 checks passed
@xr843
xr843 deleted the eval/fidelity-baseline branch August 18, 2026 05:05
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.

1 participant