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

Align user-facing labels with paper terminology

Browse files

Sweeps every visible "Composite benchmark" / "Merged Benchmark" /
"Independently evaluated" / "Documentation gaps" label so the UI
uses the rollout-hierarchy and interpretive-signal vocabulary from
the paper (§3.2 and §4.2.1).

- "Composite benchmark" -> "Suite" (paper §3.2)
- "Merged Benchmark" -> "Suite"
- "N composite benchmarks" -> "N component benchmarks"
- "average of N composite scores" -> "average of N component scores"
- "Independently evaluated" -> "Third-party reported" (paper §4.2.1)
- "Documentation gaps" -> "Reproducibility gap"
- Provenance tooltips harmonized across both badge sites:
first-party / third-party / collaborative wording matches paper
- "Reading mode" / "Research-first reading mode" -> "Reader mode" /
"Research reader mode" (paper §4.2.2)

No backend or data-shape changes; internal fields like
composite_benchmark_name are unchanged.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

app/evals/[id]/page.tsx CHANGED
@@ -167,7 +167,7 @@ export default function EvalDetailPage() {
167
  </Button>
168
  <div className="text-center">
169
  <h2 className="text-xl font-medium tracking-tight text-foreground/90 md:text-2xl">
170
- {isComposite ? "Composite benchmark" : "Single benchmark details"}
171
  </h2>
172
  </div>
173
  <div />
@@ -178,7 +178,7 @@ export default function EvalDetailPage() {
178
  </Button>
179
  <div className="flex-1 text-center">
180
  <h2 className="text-base font-medium tracking-tight text-foreground/90">
181
- {isComposite ? "Composite benchmark" : "Single benchmark details"}
182
  </h2>
183
  </div>
184
  </div>
@@ -202,7 +202,7 @@ export default function EvalDetailPage() {
202
  }
203
 
204
  // ---------------------------------------------------------------------------
205
- // Composite benchmark view
206
  // ---------------------------------------------------------------------------
207
 
208
  function CompositeEvalView({
@@ -225,7 +225,7 @@ function CompositeEvalView({
225
  <CardContent className="p-5 sm:p-6 space-y-4">
226
  <div className="flex flex-wrap items-center gap-2">
227
  <Badge variant="outline" className="text-[11px] uppercase tracking-[0.18em]">
228
- Composite Benchmark
229
  </Badge>
230
  <Badge variant="secondary">
231
  {summary.aggregate_sources?.length ?? 0} metrics
@@ -241,7 +241,7 @@ function CompositeEvalView({
241
  </h1>
242
  <p className="mt-2 max-w-3xl text-sm leading-6 text-muted-foreground">
243
  {summary.benchmark_card?.purpose_and_intended_users?.goal
244
- ?? `Composite benchmark suite with ${summary.aggregate_sources?.length ?? 0} metrics evaluated across ${summary.models_count.toLocaleString()} models.`}
245
  </p>
246
  </div>
247
  </CardContent>
 
167
  </Button>
168
  <div className="text-center">
169
  <h2 className="text-xl font-medium tracking-tight text-foreground/90 md:text-2xl">
170
+ {isComposite ? "Suite" : "Single benchmark details"}
171
  </h2>
172
  </div>
173
  <div />
 
178
  </Button>
179
  <div className="flex-1 text-center">
180
  <h2 className="text-base font-medium tracking-tight text-foreground/90">
181
+ {isComposite ? "Suite" : "Single benchmark details"}
182
  </h2>
183
  </div>
184
  </div>
 
202
  }
203
 
204
  // ---------------------------------------------------------------------------
205
+ // Suite view (paper §3.2 — composite reporting unit)
206
  // ---------------------------------------------------------------------------
207
 
208
  function CompositeEvalView({
 
225
  <CardContent className="p-5 sm:p-6 space-y-4">
226
  <div className="flex flex-wrap items-center gap-2">
227
  <Badge variant="outline" className="text-[11px] uppercase tracking-[0.18em]">
228
+ Suite
229
  </Badge>
230
  <Badge variant="secondary">
231
  {summary.aggregate_sources?.length ?? 0} metrics
 
241
  </h1>
242
  <p className="mt-2 max-w-3xl text-sm leading-6 text-muted-foreground">
243
  {summary.benchmark_card?.purpose_and_intended_users?.goal
244
+ ?? `Suite aggregating ${summary.aggregate_sources?.length ?? 0} metrics across ${summary.models_count.toLocaleString()} models.`}
245
  </p>
246
  </div>
247
  </CardContent>
components/benchmark-detail.tsx CHANGED
@@ -2859,11 +2859,11 @@ export function BenchmarkDetail({
2859
  className={`inline-flex items-center rounded-full border px-2 py-0.5 text-[10px] font-semibold ${getRelationshipBadgeTone(relationship)}`}
2860
  title={
2861
  relationship === "first_party"
2862
- ? "Self-reported by the model's developer."
2863
  : relationship === "third_party"
2864
- ? "Independently evaluated by an outside party."
2865
  : relationship === "collaborative"
2866
- ? "Joint evaluation by the developer and an outside party."
2867
  : undefined
2868
  }
2869
  >
@@ -5060,11 +5060,11 @@ function BenchmarkDeepDiveDialogPanel({
5060
  className={`inline-flex items-center rounded-full border px-2 py-0.5 text-[10px] font-semibold ${getRelationshipBadgeTone(entry.relationship)}`}
5061
  title={
5062
  entry.relationship === "first_party"
5063
- ? "Reported by the model's developer."
5064
  : entry.relationship === "third_party"
5065
- ? "Independently evaluated by an outside party."
5066
  : entry.relationship === "collaborative"
5067
- ? "Joint evaluation by the developer and an outside party."
5068
  : undefined
5069
  }
5070
  >
 
2859
  className={`inline-flex items-center rounded-full border px-2 py-0.5 text-[10px] font-semibold ${getRelationshipBadgeTone(relationship)}`}
2860
  title={
2861
  relationship === "first_party"
2862
+ ? "Reported by the model's developer (first-party)."
2863
  : relationship === "third_party"
2864
+ ? "Reported by an independent third party."
2865
  : relationship === "collaborative"
2866
+ ? "Collaborative report by the developer and a third party."
2867
  : undefined
2868
  }
2869
  >
 
5060
  className={`inline-flex items-center rounded-full border px-2 py-0.5 text-[10px] font-semibold ${getRelationshipBadgeTone(entry.relationship)}`}
5061
  title={
5062
  entry.relationship === "first_party"
5063
+ ? "Reported by the model's developer (first-party)."
5064
  : entry.relationship === "third_party"
5065
+ ? "Reported by an independent third party."
5066
  : entry.relationship === "collaborative"
5067
+ ? "Collaborative report by the developer and a third party."
5068
  : undefined
5069
  }
5070
  >
components/eval-card.tsx CHANGED
@@ -120,7 +120,7 @@ export function EvalCard({ summary, delayMs = 0 }: EvalCardProps) {
120
  <div className="min-w-0">
121
  <div className="text-xl font-bold">{summary.evaluation_name}</div>
122
  <div className="mt-1 text-xs font-medium uppercase tracking-[0.18em] text-muted-foreground">
123
- Composite benchmark: {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}
@@ -131,13 +131,13 @@ export function EvalCard({ summary, delayMs = 0 }: EvalCardProps) {
131
  {summary.third_party_ratio > 0 && (
132
  <Badge className="bg-emerald-600 text-white hover:bg-emerald-600">
133
  <BadgeCheck className="mr-1 h-3 w-3" />
134
- Independently evaluated
135
  </Badge>
136
  )}
137
  {reproducibilityGapCount > 0 && (
138
  <Badge className="bg-amber-500 text-amber-950 hover:bg-amber-500">
139
  <AlertTriangle className="mr-1 h-3 w-3" />
140
- Documentation gaps
141
  </Badge>
142
  )}
143
  </div>
 
120
  <div className="min-w-0">
121
  <div className="text-xl font-bold">{summary.evaluation_name}</div>
122
  <div className="mt-1 text-xs font-medium uppercase tracking-[0.18em] text-muted-foreground">
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}
 
131
  {summary.third_party_ratio > 0 && (
132
  <Badge className="bg-emerald-600 text-white hover:bg-emerald-600">
133
  <BadgeCheck className="mr-1 h-3 w-3" />
134
+ Third-party reported
135
  </Badge>
136
  )}
137
  {reproducibilityGapCount > 0 && (
138
  <Badge className="bg-amber-500 text-amber-950 hover:bg-amber-500">
139
  <AlertTriangle className="mr-1 h-3 w-3" />
140
+ Reproducibility gap
141
  </Badge>
142
  )}
143
  </div>
components/eval-detail.tsx CHANGED
@@ -629,10 +629,10 @@ export function EvalDetail({ summary }: EvalDetailProps) {
629
  : "Not linked"
630
  const leaderboardDescription = isResearchView
631
  ? summary.is_aggregated
632
- ? "Models ranked by average raw score across the contributing composite benchmarks."
633
  : "Models ranked by raw score for this benchmark."
634
  : summary.is_aggregated
635
- ? "Averaged model results across the contributing composite benchmarks, with drill-down to each component score."
636
  : "Model results with benchmark context, source dataset detail, and optional instance-data links."
637
  const reportingCompleteness = summary.evalcards?.annotations?.reporting_completeness
638
  const benchmarkComparability = summary.evalcards?.annotations?.benchmark_comparability
@@ -695,15 +695,15 @@ export function EvalDetail({ summary }: EvalDetailProps) {
695
  <div className="space-y-2.5">
696
  <div className="flex flex-wrap items-center gap-2">
697
  <Badge variant="outline" className="border-border/60 bg-background/80 text-[11px] uppercase tracking-[0.18em]">
698
- {summary.is_aggregated ? "Merged Benchmark" : "Single Benchmark"}
699
  </Badge>
700
  {summary.is_aggregated ? (
701
  <Badge variant="secondary" className="font-normal">
702
- {summary.aggregate_sources?.length ?? 0} composite benchmarks
703
  </Badge>
704
  ) : (
705
  <Badge variant="secondary" className="font-normal">
706
- Composite: {summary.composite_benchmark_name}
707
  </Badge>
708
  )}
709
  <Badge variant="secondary" className="font-normal capitalize">
@@ -778,11 +778,11 @@ export function EvalDetail({ summary }: EvalDetailProps) {
778
  <dl className="mt-3 grid gap-x-5 gap-y-3 text-sm sm:grid-cols-2 xl:grid-cols-5">
779
  <div>
780
  <dt className="text-[11px] font-semibold uppercase tracking-[0.16em] text-muted-foreground">
781
- Composite benchmark
782
  </dt>
783
  <dd className="mt-1 break-words font-medium">
784
  {summary.is_aggregated
785
- ? summary.aggregate_sources?.map((source) => source.composite_benchmark_name).join(", ") || "Multiple composite benchmarks"
786
  : summary.composite_benchmark_name}
787
  </dd>
788
  </div>
@@ -1160,7 +1160,7 @@ export function EvalDetail({ summary }: EvalDetailProps) {
1160
  <TableCell className="hidden md:table-cell">
1161
  <div className="text-sm text-muted-foreground capitalize">
1162
  {modelResult.aggregate_components && modelResult.aggregate_components.length > 1
1163
- ? `average of ${modelResult.aggregate_components.length} composite scores`
1164
  : datasetName ?? "Detailed result source"}
1165
  </div>
1166
  </TableCell>
 
629
  : "Not linked"
630
  const leaderboardDescription = isResearchView
631
  ? summary.is_aggregated
632
+ ? "Models ranked by average raw score across the suite's component benchmarks."
633
  : "Models ranked by raw score for this benchmark."
634
  : summary.is_aggregated
635
+ ? "Averaged model results across the suite's component benchmarks, with drill-down to each component score."
636
  : "Model results with benchmark context, source dataset detail, and optional instance-data links."
637
  const reportingCompleteness = summary.evalcards?.annotations?.reporting_completeness
638
  const benchmarkComparability = summary.evalcards?.annotations?.benchmark_comparability
 
695
  <div className="space-y-2.5">
696
  <div className="flex flex-wrap items-center gap-2">
697
  <Badge variant="outline" className="border-border/60 bg-background/80 text-[11px] uppercase tracking-[0.18em]">
698
+ {summary.is_aggregated ? "Suite" : "Single Benchmark"}
699
  </Badge>
700
  {summary.is_aggregated ? (
701
  <Badge variant="secondary" className="font-normal">
702
+ {summary.aggregate_sources?.length ?? 0} component benchmarks
703
  </Badge>
704
  ) : (
705
  <Badge variant="secondary" className="font-normal">
706
+ Suite: {summary.composite_benchmark_name}
707
  </Badge>
708
  )}
709
  <Badge variant="secondary" className="font-normal capitalize">
 
778
  <dl className="mt-3 grid gap-x-5 gap-y-3 text-sm sm:grid-cols-2 xl:grid-cols-5">
779
  <div>
780
  <dt className="text-[11px] font-semibold uppercase tracking-[0.16em] text-muted-foreground">
781
+ Suite
782
  </dt>
783
  <dd className="mt-1 break-words font-medium">
784
  {summary.is_aggregated
785
+ ? summary.aggregate_sources?.map((source) => source.composite_benchmark_name).join(", ") || "Multiple suites"
786
  : summary.composite_benchmark_name}
787
  </dd>
788
  </div>
 
1160
  <TableCell className="hidden md:table-cell">
1161
  <div className="text-sm text-muted-foreground capitalize">
1162
  {modelResult.aggregate_components && modelResult.aggregate_components.length > 1
1163
+ ? `average of ${modelResult.aggregate_components.length} component scores`
1164
  : datasetName ?? "Detailed result source"}
1165
  </div>
1166
  </TableCell>
components/home-mode-label.tsx CHANGED
@@ -5,5 +5,5 @@ import { useAudienceMode } from "@/components/audience-mode-provider"
5
  export function HomeModeLabel() {
6
  const { mode } = useAudienceMode()
7
 
8
- return <span>{mode === "research" ? "Research-first reading mode" : "Policy-first reading mode"}</span>
9
  }
 
5
  export function HomeModeLabel() {
6
  const { mode } = useAudienceMode()
7
 
8
+ return <span>{mode === "research" ? "Research reader mode" : "Policy reader mode"}</span>
9
  }
components/navigation.tsx CHANGED
@@ -183,7 +183,7 @@ export function Navigation() {
183
 
184
  <div className="mt-3 border-t border-border/60 pt-3">
185
  <div className="text-[10px] font-semibold uppercase tracking-[0.18em] text-muted-foreground">
186
- Reading mode
187
  </div>
188
  <div className="mt-2 grid grid-cols-2 gap-2">
189
  <button
 
183
 
184
  <div className="mt-3 border-t border-border/60 pt-3">
185
  <div className="text-[10px] font-semibold uppercase tracking-[0.18em] text-muted-foreground">
186
+ Reader mode
187
  </div>
188
  <div className="mt-2 grid grid-cols-2 gap-2">
189
  <button