evijit HF Staff Claude Opus 4.7 (1M context) commited on
Commit
3ad47c6
·
1 Parent(s): 4be62f9

Add plain-language captions and mode-aware framing for policy readers

Browse files

Eval 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>

components/benchmark-evaluation-card.tsx CHANGED
@@ -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 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">
 
 
 
 
 
 
 
309
  <AlertTriangle className="h-3 w-3" />
310
- {reproducibilityGapCount} setup gaps
 
 
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 && <KeyValueRow label="Score span" value={scoreRange} />}
 
 
458
  <KeyValueRow label="Updated" value={formatDate(data.latest_timestamp)} />
459
- {data.architecture && <KeyValueRow label="Architecture" value={data.architecture} />}
 
 
460
  {data.source_types.length > 0 && (
461
- <KeyValueRow label="Artifact type" value={data.source_types.map((s) => s.replace(/_/g, " ")).join(", ")} />
 
 
 
462
  )}
463
  {reproducibilityGapCount > 0 && (
464
  <KeyValueRow
465
- label="Re-runnability"
466
- value={`${reproducibilityGapCount} of ${reproducibilityTotal} reported scores are not fully documented`}
 
 
 
 
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>
components/eval-card.tsx CHANGED
@@ -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
- {overviewText ?? summary.metric_config.evaluation_description}
 
 
 
 
 
 
 
 
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