Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
44 commits
Select commit Hold shift + click to select a range
5b0276e
feat: add web search benchmark and streamline report checks
lanyue-llk Oct 21, 2026
621c617
fix: satisfy repository lint gate
lanyue-llk Oct 21, 2026
2e3e768
fix: clarify search report evaluation scopes
lanyue-llk Oct 21, 2026
48fcf39
fix: honor local report language configuration across builds
lanyue-llk Oct 21, 2026
3738b06
fix: expose search verdict criteria and reference evidence
lanyue-llk Oct 21, 2026
7963846
fix: unify search relevance annotations and separate report cohorts
lanyue-llk Oct 21, 2026
60a2ea2
feat: add traceable model relevance judgments for complete search coh…
lanyue-llk Oct 21, 2026
8a9b3c1
fix: stabilize complete search relevance grading and explanations
lanyue-llk Oct 21, 2026
1d9054e
docs: bind complete search relevance report release
lanyue-llk Oct 21, 2026
ff372c0
fix: close Search evaluation review and report integrity gaps
lanyue-llk Oct 21, 2026
666c818
fix: retain Replay dependencies in browser interaction CI
lanyue-llk Oct 21, 2026
e1f60d2
feat: bind complete independent Search review to report releases
lanyue-llk Oct 21, 2026
225e636
fix: apply reviewed Search source rules and evidence boundaries
lanyue-llk Oct 21, 2026
e394d12
fix: exclude evaluation records from Search answer-cue diagnostics
lanyue-llk Oct 21, 2026
76d2240
fix: align Search result views with reviewed quality scope
lanyue-llk Oct 21, 2026
ea1bea1
docs: bind the fully reviewed Search report release
lanyue-llk Oct 21, 2026
f6ca665
Use reviewed query counts in Search report reading pages
lanyue-llk Oct 22, 2026
9cab6e5
Bind the streamlined Search report publication
lanyue-llk Oct 22, 2026
e923412
Restructure search comparison around reader decisions
lanyue-llk Oct 22, 2026
9ab7624
Bind the restructured Search report release
lanyue-llk Oct 22, 2026
dfc7fd0
Restore complete benchmark quality summaries and result interpretation
lanyue-llk Oct 22, 2026
90c32e7
Bind the complete Search benchmark summaries release
lanyue-llk Oct 22, 2026
9dbfb0a
Fix Search report review contracts and retire duplicate build paths
lanyue-llk Oct 22, 2026
e6df554
Close Search review integrity gaps and verify report release inputs
lanyue-llk Oct 22, 2026
54c3769
Bind the reviewed Search report update to its existing site
lanyue-llk Oct 22, 2026
85abce2
Fix Search collection, review scope and staged publication contracts
lanyue-llk Oct 22, 2026
8d9cafe
Bind the Search report update to its published evidence
lanyue-llk Oct 22, 2026
dfbdc03
Fix review runtime cleanup and reuse shared report publication
lanyue-llk Oct 22, 2026
d698e95
Record the shared-publisher Search report release
lanyue-llk Oct 22, 2026
b4826d3
Move Search benchmark ownership to lexbench-websearch
lanyue-llk Oct 22, 2026
7b26f7b
Bind the independent-benchmark report publication
lanyue-llk Oct 22, 2026
a3ef812
refactor(search)!: select external report instances explicitly
lanyue-llk Oct 23, 2026
54483fe
refactor(search): remove report-specific benchmark authority and vali…
lanyue-llk Oct 23, 2026
8fa3cf1
fix(search): support shared publication service under an HTTPS path
lanyue-llk Oct 23, 2026
9170139
fix(reporting): keep interaction tests aligned with maintained fixtures
lanyue-llk Oct 23, 2026
97609c7
fix(dependencies): bind the first Search edition after the main rebase
lanyue-llk Oct 23, 2026
4c5d177
fix(review): preserve delivery diagnostics and follow installed bench…
lanyue-llk Oct 23, 2026
c060bd8
fix(review): restore base CI and enforce benchmark ownership
lanyue-llk Oct 23, 2026
bcc5ca6
feat(search): add reviewed SERP retrieval comparisons
lanyue-llk Oct 23, 2026
1915d8b
feat(search): bind corrected benchmark and report build versions
lanyue-llk Oct 23, 2026
e53db54
docs(releases): make version changes human-triggered
lanyue-llk Oct 23, 2026
023ce73
fix(search): preserve interrupted calls and report scoring scopes
lanyue-llk Oct 23, 2026
21ce4f8
fix(search): keep recovery accounting and review rounds consistent
lanyue-llk Oct 23, 2026
c5b0e67
fix(search): stop reviewer work on cancellation and pin first release
lanyue-llk Oct 26, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ The dashboard reading page and standalone HTML are two presentations of the same

Treat report home and interpretation pages as reusable presentation material. Each section should communicate one conclusion through a chart, meaningful diagram, image, or inspectable evidence specimen, with concise supporting text and exact values available to copy. Do not use decorative background art or repeat the same dense table across summary, interpretation, and analysis. Result analysis owns filterable inventories and detailed distributions; result pages own logs and complete evidence.

Generate Chinese by default. English prose, illustrations, rendering and language-specific checks run only on an explicit manual request. An absent English edition gets a not-generated notice and a return link, not stale translated pages. Preserve translation sources without distributing unused English assets. Apply cross-language parity checks only when both editions are generated; always test the notice in a Chinese-only release.
Public build entries default to English, with an explicit language or BROWSER_EVAL_REPORT_LANGUAGE override. For agent-authored delivery, select the conversation language unless the user specifies another edition. Rebuilds preserve the saved primary language; additional translations require an explicit request. An absent English edition gets a not-generated notice and a return link, not stale translated pages. Preserve translation sources without distributing unused English assets. Apply cross-language parity checks only when both editions are generated; always test the notice in a Chinese-only release.

## Reading layout

Expand All @@ -20,7 +20,7 @@ Reference and actual output should be easy to compare. Preserve original snippet

## Artifact verification

Generate the integrated and self-contained views from the same source. The standalone file must work without the dashboard, external fonts or CDN libraries; use the repository's script-free export contract. Inspect light/dark, desktop/phone and print presentations after the final change, not only an earlier screenshot.
Generate the integrated and self-contained views from the same source. The standalone file must work without the dashboard, external fonts or CDN libraries; use the repository's script-free export contract. Inspect each delivered top-level page locally for content and layout. Reusable component tests own theme, narrow-screen, evidence-dialog and navigation behavior; do not repeat remote click tours for each publication.

Escape dataset-derived text and validate links and paths. Exclude credentials, local paths, private reference URLs, work logs and editing discussion from the public bundle. Secret scans supplement source inspection.

Expand Down
78 changes: 75 additions & 3 deletions .agents/skills/benchmark-report/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,13 +31,16 @@ An explicitly requested diagnostic report may be delivered separately from a cer

## Working contract

Public report CLIs default to English where supported and expose `--language en|zh`. Preserve the selected language on rebuild. English builds retain the matching Chinese edition; keep measured material in its source language. Historical Chinese-only renderers must disclose that limit and reject unsupported requests. Bind generated languages and the selected entry in report metadata. English navigation opens a not-generated notice when absent; never publish stale English pages. Validate each generated edition and retain route, value and evidence-link parity checks when both exist.
Version changes require an explicit human release request. Code synchronization, review fixes, tests and report rebuilds must not automatically bump package, benchmark or report edition numbers, rewrite frozen release catalogs, or create/push release tags. Reuse existing build versions and record source hashes; keep unreleased changes separate from a certified edition.


Public report CLIs fall back to English. `BROWSER_EVAL_REPORT_LANGUAGE` changes the environment default; an explicit `--language` wins, and a rebuild preserves the saved primary language. For an agent-driven build, select the language from the current conversation. English builds retain the matching Chinese edition; a Chinese selection does not generate an English translation unless explicitly requested. Keep measured material in its source language. Historical Chinese-only renderers must disclose that limit and reject unsupported requests. Bind generated languages and the selected entry in report metadata. English navigation opens a not-generated notice when absent; never publish stale English pages. Validate each generated edition and retain route, value and evidence-link parity checks when both exist.
Comment thread
lanyue-llk marked this conversation as resolved.
Comment thread
lanyue-llk marked this conversation as resolved.
Comment thread
lanyue-llk marked this conversation as resolved.

1. Establish the decision being supported, the measured unit, cohort, versions, execution location, freshness policy, and intended deliverable. Inspect the actual dataset, runner, outputs, scorer, prior review evidence, and current report. Do not infer them from screenshots or prose.
2. Freeze a machine-readable evaluation contract before expensive calls. It must identify the exact cases and methods, run count, timeout, concurrency policy, input and output contract, scoring provenance, reference state, and publication target when one exists. Existing compiled reference answers are frozen by default. Source metadata, capture dates, and absent newer acceptance-contract fields do not imply a live-reference task. Only tasks explicitly declaring `source_verification.reference_mode: live_exact` require live checks. For those tasks, fail closed: verify and freeze references immediately before calls, verify the same declared scope afterward, and certify the cohort only when both checks pass. An unchanged compiled acceptance-contract dataset is already the benchmark input: freeze its task and rule bytes for execution, without requiring historical source-qualification raw files or re-auditing cohort admission. Qualify sources when adding tasks or changing references/acceptance rules; do not turn an ordinary version rerun into dataset reconstruction. Partial or uncertified cohorts remain diagnostic evidence and cannot enter a release.
3. Let each method use its strongest documented route to produce the required output. Equalize the task, inputs, output contract, call budget, and scoring. Do not require identical internals. For fixed-native cohorts, declare the input media type independently of URL patterns and expected answers, freeze the class-level route and transport parameters before calls, and verify the retained request receipts at aggregation and release. Record material asymmetries such as local versus remote execution, cold versus warm start, bundled conversion, network transit, account tier, and billable time.
4. Preserve evidence as an append-only chain by default: task definition, reference, provider call, raw artifact, normalized artifact, score, review, revision, and release. If the user explicitly requests deletion of superseded history, validate the chain first and use the existing owner's current-only authority described in [audit and revision](references/audit-and-revision.md); remove obsolete full snapshots rather than storing reverse patches. Keep current provider outputs, call identities, real scoring sources and necessary review evidence immutable. Routine refresh and publication reuse current inputs without redundant historical snapshots. A presentation or scoring change must not masquerade as a new provider result. Declare the native answer fields and validate their structural projection before accepting a scored artifact. Adapters must not remove returned candidates by URL meaning or consult expected answers when selecting candidate fields. Apply privacy redaction only to separately identified public views after scoring, preserving the private originals and distinguishing original, scored and public-view hashes.
5. Separate retrieval success, task acceptance, content quality, latency, cost, and freshness. A missing or partial reference makes the affected metric unavailable or scoped; it does not prove success or failure. Do not derive binary acceptance from an unrelated aggregate similarity score.
5. Separate retrieval success, task acceptance, content quality, latency, cost, and freshness. Treat missing telemetry as unavailable. A request that received no first byte contributes to total latency, but not to first-byte or body-transfer stage means; show each stage’s observed population. A missing or partial reference makes the affected metric unavailable or scoped; it does not prove success or failure. Do not derive binary acceptance from an unrelated aggregate similarity score.
6. For heterogeneous same-window latency evidence, preserve the full predeclared task-by-method matrix. Show all-call latency on that common denominator separately from successful-call latency on each method's conditional subset. Treat the all-method shared-pass intersection as a diagnostic, never as a post-outcome selector or ranking sample.
7. At aggregate and publication boundaries, copy only explicit hash-bound evidence and public audit files. Reject symlinks and exclude worker trees, host paths, credentials, and internal run logs. Verify primary, auxiliary, delivered-file, and retained retry artifacts before release.
When a saved-input handoff needs host-metadata redaction, use the shared publication privacy owner. Preserve private originals and distinguish original from public file hashes; rebind dependent metadata references and disclose auxiliary debug-log projections. Never rewrite original scored answers, references or response payloads as a privacy repair. When a scored answer or native envelope itself contains private values, create a separately identified post-score public view through the shared privacy owner, verify its native-field projection and unchanged task verdict, and disclose that omitted original bytes cannot be reconstructed from the public copy. A public frozen presentation must explicitly bind its complete view inventory, verify displayed bytes against those views, keep acquisition gates strict, and distinguish preserved original diagnostics from what redacted text can reproduce. Verify unchanged verdicts, timings and review decisions, and rebuild from the public inputs. Keep regenerated package/report wrappers outside the original-input projection receipt so normal rebuilding does not invalidate it or create circular hashes.
Expand All @@ -46,7 +49,7 @@ For an explicitly requested full review, set `independent_result_review_scope: a

9. Rerun only calls whose inputs, provider route/version, runtime contract, or source validity changed. Recompute downstream scores and reports without provider calls when only scoring, annotations, or presentation changed. Never retry merely to obtain a better result. A reference or verdict correction must identify the shared root cause and add executable positive/negative controls through the production scorer; bind those regression IDs in the revision receipt instead of patching stored verdicts.
10. Build the public report from the frozen evidence. Every page should answer a reader question. Show task and run identifiers, the exact expected-versus-actual evidence behind a verdict, denominators and unavailable metrics, method differences, limits, concise reproduction instructions, and a compact review history.
11. Release only after code tests, evidence integrity, report links, responsive/visual checks, secret scans, target-site checks, and deployed-output verification pass. Preserve earlier sites unless replacement was explicitly requested.
11. Release only after code tests, evidence integrity, report links, deterministic interaction checks, the one-pass top-level-page reader review, secret scans, target-site checks, and deployed-output verification pass. Responsive and theme matrices belong to shared renderer tests when those owners change; do not replay them for every report release. Preserve earlier sites unless replacement was explicitly requested.
12. Present one authoritative logical result per method and task. The frozen protocol chooses the score-bearing execution; a renderer must never silently replace that rule. Keep every physical call in the evidence chain retain accumulated execution cost separately from the declared primary latency metric. State whether primary latency measures the final call or the complete user-visible operation; retries never increase the logical-result denominator. Do not make execution ordinal labels part of the public comparison unless retry behavior is the declared subject.
13. Apply the track-independent presentation contract in [report and release](references/report-and-release.md) to every report, including a new track. Wire semantic checks into its release command; prose instructions alone are not a release gate.
14. In this repository, publish a finished report to the Artifact Site host and site bound by that track’s current profile, following that host’s current `for-agents.md`. Never embed a default deployment hostname or borrow a target from another report. Build and validate before the external write, bind the returned slug, share URL, and version in the current profile, use optimistic locking for later updates, and verify the unauthenticated share page. Use repository publish targets when available; do not reconstruct a target from prose or an earlier receipt. Export the whole deployed tree only when the specific report publisher requires it or when diagnosing a release failure.
Expand Down Expand Up @@ -81,3 +84,72 @@ capacity-bound data attachments through the existing packer. Check their combine
evidence before uploading, bind immutable published versions, and include the
attachment archives and target registry in the main publication snapshot. Keep
one report entry and all evidence; reject unresolved or changed data attachments.

Comment thread
lanyue-llk marked this conversation as resolved.
Comment thread
lanyue-llk marked this conversation as resolved.
Comment thread
lanyue-llk marked this conversation as resolved.
Comment thread
lanyue-llk marked this conversation as resolved.
Comment thread
lanyue-llk marked this conversation as resolved.
Web Search relevance labels cover every in-house case with the same frozen rubric.
Use named human annotations by default. When the user explicitly selects a model
judge, use `scripts/judge_search_relevance.py` and retain the exact model, prompt,
blind inputs, raw responses and quoted scoring evidence. Label the result as model
preview relevance rather than human gold judgments. Both routes import through
`--relevance`; neither may substitute nonempty responses or URL checks for labels.
Keep empty queries and all-zero pools in the score population.
For explicit website or official-source requirements, bind independently
qualified URL rules and check eligibility before model grading. Ordinary
diagnostic domains must not become mandatory sources. Keep source URLs out of
content-only judging, retain original model grades, and bind rubric corrections
separately from immutable search calls.
Register explicit official-source and platform/genre requirements in every query
language; organization names used only as diagnostics do not impose a source
restriction. Qualify valid official alternative domains independently. When
source rules change, reuse original judge calls and regrade only cases whose
actual judge inputs changed.

When published references contain terminal footnotes or fused citation URLs,
separate that metadata only in a versioned answer derivation. Preserve the
original answer, keep answers that are themselves URLs intact, and bind paired
public-scorer/task-predicate controls before any offline recomputation.

Make hash-bound original query sources reachable from the dataset page.
A provenance hash without an inspectable source does not support a reader’s
source check. Keep the source author’s historical results separate from current
benchmark measurements.

Review packets must use the same adapter, request-bound URL resolution and
organic-slot projection as the scored response, and reject a projection/hash
mismatch. Independent factual verification needs live read-only source access;
retain physical review inputs and outputs privately and publish path-free
provenance projections with distinct original and public hashes. A rate-limited
review stops new jobs and resumes only missing packets.

For native SERP adapters, retain the complete response but score the declared
organic slots in their original order. Test wrapped JSON, absent optional
snippets, relative links and invalid entries inside versus outside the cutoff.
For new search cohorts, finish one provider's complete case set before starting
the next provider; never interleave providers by query. Continuing a frozen
cohort preserves its existing execution order.
A shared projection correction uses the versioned assessment revision over
hash-bound saved responses, with paired controls and zero new search calls.
Before finite-quota collection, reserve configuration probes and validate the
complete matrix's worst-case physical call count; resuming must count retained
calls as well as current logical results.
When a remote native interface changes during collection, stop further calls,
prove the supported replacement request, and bind an execution revision before
resuming. Recollect the declared changed-method scope while preserving complete
unaffected calls. Keep archived physical calls in quota accounting, including
when a second interruption occurs during the correction.


For Search comparison reports, keep decision summaries distinct from complete result
and audit inventories. A subset discovery claim must show every selected provider
on that same subset; the headline relevance score covers the full declared relevance
population. Give quality, collection timing/billing, input provenance and original
responses distinct owners, and remove duplicate reading routes when consolidating them.

Search builds and scoring reuse validate evidence without rechecking report HTML.
Combine the final `--release-check` and `--export-delivery` into one pass. Subsequent
packaging and upload verify the accepted file tree instead of repeating page checks.

Conciseness must preserve the evidence needed for the decision. Keep each independent
benchmark’s primary quality measures and denominator visible in the home comparison;
do not replace them with a narrow diagnostic or hide them inside disclosure controls.
Reorganization must account for each substantive finding, calculation and evidence
entry before retiring a section.
Original file line number Diff line number Diff line change
Expand Up @@ -32,8 +32,8 @@ Choose checks from the changed surface:
| --- | --- |
| Metric value or comparison logic | Unit test the semantic contract and independently recompute affected derived values |
| Table markup or emphasis | Render representative directional, tied, missing, and observational rows |
| Navigation or drill-down | Check every top-level route and one representative result-to-evidence path |
| CSS, layout, or responsive behavior | Visually inspect affected page types at desktop and narrow viewport widths |
| Navigation or drill-down | Deterministically check all routes and links; render every top-level page once |
| CSS, layout, or responsive behavior | Run shared component coverage; visually inspect only the affected page types at one representative width |
| Text-only wording | Factual and terminology review; no visual sweep unless wrapping or hierarchy changes |
| Release metadata only | Binding and destination check only |

Expand Down
Loading
Loading