Skip to content

Add Anthropic Fable 5 model to benchmark list - #4

Open
Dan-Cleary wants to merge 2 commits into
mainfrom
claude/fable-5-model-support-b3ybg8
Open

Add Anthropic Fable 5 model to benchmark list#4
Dan-Cleary wants to merge 2 commits into
mainfrom
claude/fable-5-model-support-b3ybg8

Conversation

@Dan-Cleary

@Dan-Cleary Dan-Cleary commented Jun 10, 2026

Copy link
Copy Markdown
Owner

Summary

Adds Anthropic's new Fable 5 model (anthropic/claude-fable-5) to the SlopBench model list so it gets benchmarked alongside the other models.

Changes

  • data/models.json — added anthropic/claude-fable-5 (consumed by scripts/run-all.ts)
  • scripts/run-prod.sh — added the same slug to the models array

Placed at the top of the Anthropic group since Fable 5 is Anthropic's most capable tier (above Opus). No change needed in src/utils/providers.js — the anthropic provider already maps to a logo/domain, so favicon and label rendering work automatically.

Not done yet — running the benchmark

The actual bench run for Fable 5 has not been executed. Running npm run bench anthropic/claude-fable-5 requires credentials and network egress that aren't available in the CI/sandbox environment:

  • OPENROUTER_API_KEY, VITE_CONVEX_URL, BENCHMARK_SECRET (none present)
  • outbound access to openrouter.ai (blocked — returns 403 here)

The run needs to be kicked off from an environment that has those. Once it writes to the production Convex backend, the live site picks it up reactively (no separate frontend deploy needed).

https://claude.ai/code/session_017Gbnqqz3QbMnhQ6xiZRDuZ


Generated by Claude Code


Note

Low Risk
Model list and local env documentation changes plus a bench-script safety check; no auth or production app logic changes.

Overview
Adds anthropic/claude-fable-5 to the benchmark model lists in data/models.json and scripts/run-prod.sh, positioned at the top of the Anthropic group so Fable 5 is included in batch and prod bench runs.

Introduces .env.local.example documenting OPENROUTER_API_KEY, VITE_CONVEX_URL, and BENCHMARK_SECRET for npm run bench.

scripts/run.ts now fails fast when every prompt fails for a model (e.g. bad OpenRouter slug): it throws before finalizeRun instead of finalizing an empty run.

Reviewed by Cursor Bugbot for commit f8f4626. Bugbot is set up for automated code reviews on this repo. Configure here.

Summary by CodeRabbit

  • New Features

    • The Claude Fable 5 model is now available for use.
  • Bug Fixes

    • Benchmark runs now abort early if no prompts succeed, preventing invalid run results.
  • Documentation

    • Added a sample .env template with setup instructions and required environment variables for running local scripts.

@vercel

vercel Bot commented Jun 10, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
slopbench Error Error Jun 10, 2026 10:08pm

@coderabbitai

coderabbitai Bot commented Jun 10, 2026

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Walkthrough

Adds anthropic/claude-fable-5 to model lists, provides an .env.local.example for bench env variables, and aborts benchmark finalization when no prompts scored.

Changes

Bench configuration and runtime guards

Layer / File(s) Summary
Model registration in config and production script
data/models.json, scripts/run-prod.sh
Adds anthropic/claude-fable-5 to the models array in both the data file and the production benchmarking script.
Environment template
.env.local.example
Adds an .env.local.example template listing OPENROUTER_API_KEY, VITE_CONVEX_URL, and BENCHMARK_SECRET with copy instructions.
Abort when no prompts scored
scripts/run.ts
Adds a guard that throws and aborts if scored.length === 0 to prevent finalization with empty results.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Poem

🐰 A new model hops onto the stage,
Claude Fable-5 turns a fresh page,
An env to guide the bench's light,
And a guard to stop an empty flight,
The rabbit nods: all set — take flight! 🥕

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and accurately summarizes the main change: adding the Anthropic Fable 5 model to the benchmark list, which is reflected in updates to data/models.json and scripts/run-prod.sh.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch claude/fable-5-model-support-b3ybg8

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick comments (1)
scripts/run-prod.sh (1)

5-29: 🏗️ Heavy lift

Consider consolidating the model list into a single source.

The models array in this file duplicates the list in data/models.json. Both files now contain the same 24 models in the same order, but maintaining them separately risks drift over time (e.g., a model added to one but not the other).

Since scripts/run-all.ts already imports from data/models.json, consider refactoring this script to read from that same source. For example:

# Read models from JSON and iterate
node -pe "require('./data/models.json').join('\n')" | while read -r model; do
  echo "\n▶ Running $model..."
  npm run bench "$model" || echo "$model failed, continuing..."
done

Alternatively, migrate run-prod.sh to a TypeScript/Node script that imports models.json directly (similar to run-all.ts).

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@scripts/run-prod.sh` around lines 5 - 29, The models array in
scripts/run-prod.sh is duplicated from data/models.json; replace the hardcoded
models list by reading/importing the canonical list from data/models.json (the
same source used by run-all.ts) so the two can't drift: update run-prod.sh to
load models from data/models.json (or convert it to a small Node/TypeScript
script like run-all.ts) and iterate that list to call the existing npm run bench
"$model" loop (preserve the existing echo/log and error-handling behavior).
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Nitpick comments:
In `@scripts/run-prod.sh`:
- Around line 5-29: The models array in scripts/run-prod.sh is duplicated from
data/models.json; replace the hardcoded models list by reading/importing the
canonical list from data/models.json (the same source used by run-all.ts) so the
two can't drift: update run-prod.sh to load models from data/models.json (or
convert it to a small Node/TypeScript script like run-all.ts) and iterate that
list to call the existing npm run bench "$model" loop (preserve the existing
echo/log and error-handling behavior).

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: c466cd2f-752e-4924-9248-0748e715bda3

📥 Commits

Reviewing files that changed from the base of the PR and between 276f97d and 43500df.

📒 Files selected for processing (2)
  • data/models.json
  • scripts/run-prod.sh

- run.ts: abort before finalizeRun if no prompts succeeded, so an
  unavailable model slug marks the run failed instead of writing a
  NaN/empty run to the production backend
- add .env.local.example documenting OPENROUTER_API_KEY, VITE_CONVEX_URL,
  BENCHMARK_SECRET

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.env.local.example:
- Line 5: Replace the hardcoded production Convex URL in the example env by
changing the VITE_CONVEX_URL value to a placeholder (e.g., a descriptive token
like YOUR_CONVEX_URL or a sample host) so developers must supply their own URL
when copying .env.local; update the VITE_CONVEX_URL entry to use that
placeholder.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: b2a69cc6-2db7-407a-9641-da81795a092a

📥 Commits

Reviewing files that changed from the base of the PR and between 43500df and f8f4626.

📒 Files selected for processing (2)
  • .env.local.example
  • scripts/run.ts

Comment thread .env.local.example
# OpenRouter API key — used to call models. Spends real money per run.
OPENROUTER_API_KEY=
# Production Convex deployment URL the bench writes to.
VITE_CONVEX_URL=https://uncommon-sandpiper-321.convex.cloud

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Replace production URL with a placeholder.

Example files should use placeholders rather than hardcoded production values. Developers copying this to .env.local might not realize they need to change it, potentially writing test data to production (though BENCHMARK_SECRET provides a gate).

📝 Suggested fix
-VITE_CONVEX_URL=https://uncommon-sandpiper-321.convex.cloud
+VITE_CONVEX_URL=https://your-deployment.convex.cloud
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
VITE_CONVEX_URL=https://uncommon-sandpiper-321.convex.cloud
VITE_CONVEX_URL=https://your-deployment.convex.cloud
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.env.local.example at line 5, Replace the hardcoded production Convex URL in
the example env by changing the VITE_CONVEX_URL value to a placeholder (e.g., a
descriptive token like YOUR_CONVEX_URL or a sample host) so developers must
supply their own URL when copying .env.local; update the VITE_CONVEX_URL entry
to use that placeholder.

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.

2 participants