Spaces:
Running
Add plain-language captions and mode-aware framing for policy readers
Browse filesEval card (/evals listing):
Under-title description in policy mode now prefers the
Auto-BenchmarkCards `goal` field over the technical `overview`.
Research mode keeps the overview-first ordering.
Model card (/models listing):
- Reproducibility-gap badge: research -> "N reproducibility gaps",
policy -> "N re-run gaps", with a tooltip that explains what the
gap means in plain language for each audience.
- "Score span" -> "Score range" in policy mode.
- "Architecture" row hidden in policy mode (technical detail not
useful to non-experts).
- "Artifact type" -> "Source type" in policy mode.
- "Re-runnability" row uses "Re-run readiness" + plain-language
description in policy mode.
Addresses UXR items:
- plain-language descriptions beneath each benchmark name (Slavina,
Ryan, Aviya)
- avoid surfacing long technical names in policy view (Aviya)
- clarify what reproducibility gaps mean for non-experts
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
@@ -305,9 +305,18 @@ export function BenchmarkEvaluationCard({
|
|
| 305 |
<Badge variant="outline">{data.benchmarks_count} benchmark suites</Badge>
|
| 306 |
<Badge variant="outline">{data.evaluations_count} reported results</Badge>
|
| 307 |
{reproducibilityGapCount > 0 && (
|
| 308 |
-
<Badge
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 309 |
<AlertTriangle className="h-3 w-3" />
|
| 310 |
-
{
|
|
|
|
|
|
|
| 311 |
</Badge>
|
| 312 |
)}
|
| 313 |
</div>
|
|
@@ -454,16 +463,27 @@ export function BenchmarkEvaluationCard({
|
|
| 454 |
{topBenchmarks.length > 0 && (
|
| 455 |
<KeyValueRow label="Benchmarks" value={topBenchmarks.slice(0, 6).join(", ")} />
|
| 456 |
)}
|
| 457 |
-
{scoreRange &&
|
|
|
|
|
|
|
| 458 |
<KeyValueRow label="Updated" value={formatDate(data.latest_timestamp)} />
|
| 459 |
-
{data.architecture &&
|
|
|
|
|
|
|
| 460 |
{data.source_types.length > 0 && (
|
| 461 |
-
<KeyValueRow
|
|
|
|
|
|
|
|
|
|
| 462 |
)}
|
| 463 |
{reproducibilityGapCount > 0 && (
|
| 464 |
<KeyValueRow
|
| 465 |
-
label="Re-runnability"
|
| 466 |
-
value={
|
|
|
|
|
|
|
|
|
|
|
|
|
| 467 |
/>
|
| 468 |
)}
|
| 469 |
</div>
|
|
|
|
| 305 |
<Badge variant="outline">{data.benchmarks_count} benchmark suites</Badge>
|
| 306 |
<Badge variant="outline">{data.evaluations_count} reported results</Badge>
|
| 307 |
{reproducibilityGapCount > 0 && (
|
| 308 |
+
<Badge
|
| 309 |
+
className="border-amber-300 bg-amber-50 text-amber-900 hover:bg-amber-50 dark:border-amber-900/60 dark:bg-amber-950/40 dark:text-amber-100"
|
| 310 |
+
title={
|
| 311 |
+
isResearchView
|
| 312 |
+
? `${reproducibilityGapCount} of ${reproducibilityTotal} reported scores have at least one missing setup field.`
|
| 313 |
+
: `${reproducibilityGapCount} of ${reproducibilityTotal} reported scores cannot be independently re-run because the setup is not documented.`
|
| 314 |
+
}
|
| 315 |
+
>
|
| 316 |
<AlertTriangle className="h-3 w-3" />
|
| 317 |
+
{isResearchView
|
| 318 |
+
? `${reproducibilityGapCount} reproducibility gaps`
|
| 319 |
+
: `${reproducibilityGapCount} re-run gaps`}
|
| 320 |
</Badge>
|
| 321 |
)}
|
| 322 |
</div>
|
|
|
|
| 463 |
{topBenchmarks.length > 0 && (
|
| 464 |
<KeyValueRow label="Benchmarks" value={topBenchmarks.slice(0, 6).join(", ")} />
|
| 465 |
)}
|
| 466 |
+
{scoreRange && (
|
| 467 |
+
<KeyValueRow label={isResearchView ? "Score span" : "Score range"} value={scoreRange} />
|
| 468 |
+
)}
|
| 469 |
<KeyValueRow label="Updated" value={formatDate(data.latest_timestamp)} />
|
| 470 |
+
{data.architecture && isResearchView && (
|
| 471 |
+
<KeyValueRow label="Architecture" value={data.architecture} />
|
| 472 |
+
)}
|
| 473 |
{data.source_types.length > 0 && (
|
| 474 |
+
<KeyValueRow
|
| 475 |
+
label={isResearchView ? "Artifact type" : "Source type"}
|
| 476 |
+
value={data.source_types.map((s) => s.replace(/_/g, " ")).join(", ")}
|
| 477 |
+
/>
|
| 478 |
)}
|
| 479 |
{reproducibilityGapCount > 0 && (
|
| 480 |
<KeyValueRow
|
| 481 |
+
label={isResearchView ? "Re-runnability" : "Re-run readiness"}
|
| 482 |
+
value={
|
| 483 |
+
isResearchView
|
| 484 |
+
? `${reproducibilityGapCount} of ${reproducibilityTotal} reported scores are not fully documented`
|
| 485 |
+
: `${reproducibilityGapCount} of ${reproducibilityTotal} scores cannot be re-run with the information available`
|
| 486 |
+
}
|
| 487 |
/>
|
| 488 |
)}
|
| 489 |
</div>
|
|
@@ -123,7 +123,15 @@ export function EvalCard({ summary, delayMs = 0 }: EvalCardProps) {
|
|
| 123 |
Suite: {summary.composite_benchmark_name}
|
| 124 |
</div>
|
| 125 |
<div className="mt-1 text-sm text-muted-foreground line-clamp-2">
|
| 126 |
-
{
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 127 |
</div>
|
| 128 |
</div>
|
| 129 |
|
|
|
|
| 123 |
Suite: {summary.composite_benchmark_name}
|
| 124 |
</div>
|
| 125 |
<div className="mt-1 text-sm text-muted-foreground line-clamp-2">
|
| 126 |
+
{/*
|
| 127 |
+
* Policy readers benefit from a plain-language framing of what
|
| 128 |
+
* the benchmark is for. The Auto-BenchmarkCards `goal` field is
|
| 129 |
+
* usually written for non-experts; the `overview` field is more
|
| 130 |
+
* technical. Prefer goal in policy mode, overview in research.
|
| 131 |
+
*/}
|
| 132 |
+
{isResearchView
|
| 133 |
+
? overviewText ?? policyGoal ?? summary.metric_config.evaluation_description
|
| 134 |
+
: policyGoal ?? overviewText ?? summary.metric_config.evaluation_description}
|
| 135 |
</div>
|
| 136 |
</div>
|
| 137 |
|