Skip to content

Give each agent's leaderboard its own indexable page - #16

Merged
hsnice16 merged 1 commit into
mainfrom
agent-leaderboard-pages
Oct 11, 2026
Merged

hsnice16 merged 1 commit into
mainfrom
agent-leaderboard-pages

Conversation

@hsnice16

Copy link
Copy Markdown
Owner

Summary

  • Each agent's leaderboard is now a page at /model/<id> that search engines can index, with its own title, description and sitemap entry.
  • /?model=<id> 308-redirects to it, keeping any host, search, sort and page params.
  • /api/badge/...svg?model=constructor no longer returns a 500.

Motivation

The per-agent view was noindex as a re-cut of the home page, but each agent ranks the repos differently (the top repo is surrealdb/surrealdb overall and gitlab-org/cli for Claude Code), so it is distinct content that could rank for agent-specific queries. Not a roadmap item.

Changes

  • app/model/[slug]/page.tsx: the new page. Unknown slugs 404.
  • app/page.tsx: overall board only; redirects the old param. Board UI and view logic moved to components/LeaderboardBoard.tsx, lib/leaderboard-view.ts and lib/utils/leaderboard-href.ts so both pages share them.
  • SearchBar, HostSelect, SortSelect: navigate on the current path instead of a hard-coded /.
  • app/sitemap.ts, app/llms.txt/route.ts: list the nine agent boards.
  • Badge route, repo page, live-score page: validate ?model= with isModelId (Object.hasOwn) instead of in.

Indexing rules match the overall board: the board and its ?page=N pages are indexable with a self-canonical; host, search and sort views are noindex, follow.

Testing

  • bun x tsc --noEmit, bun x biome check ., bun run test (251 pass), next build.
  • curl against next start: status, canonical, robots and title for /, /?page=2, /model/claude-code (plain, ?page=2, ?host=github), /model/nope (404), /?model=cursor&page=2&host=github (308 to /model/cursor?host=github&page=2).
  • Chrome, desktop: search and platform filter on /model/claude-code stay on that path. Sort dropdown, mobile and dark mode not checked.

Screenshots / screencasts

None attached; see the Vercel preview at /model/claude-code.

Docs + roadmap sync

N/A for the changelog — no release is being cut. Noted under "Already shipped" in tasks/0.9.0/README.md so it gets a changelog line with 0.9.0. AGENTS.md and README.md layout sections updated.

Risks / rollback

Old /?model= URLs are permanent redirects, so reverting after crawlers have followed them leaves /model/<id> links that 404. Otherwise a plain revert.

🤖 Generated with Claude Code

The per-agent view lived at /?model=<id> and was noindexed as a re-cut of
the home page, though each agent ranks the repos differently. It moves to
/model/<id> with its own title, description and sitemap entry, and the old
URL 308s there. Host, search and sort views stay noindex.

Also fixes a 500 from /api/badge when ?model= named an Object.prototype
key such as "constructor": the check used `in`.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@vercel

vercel Bot commented Oct 11, 2026 •

Copy link
Copy Markdown

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

Project Deployment Actions Updated
agent-friendly-code Ready Ready Preview Oct 11, 2026 11:02am UTC

@github-actions

Copy link
Copy Markdown
Contributor

Agent Friendly Code — score diff

Overall: 91.0 → 91.0 (±0.0)

Per agent

Agent Base Head Δ
Claude Code 95.3 95.3 ±0.0
Cursor 85.5 85.5 ±0.0
Devin 94.8 94.8 ±0.0
GPT-5 Codex 96.3 96.3 ±0.0
Kimi CLI 96.1 96.1 ±0.0
Gemini CLI 85.5 85.5 ±0.0
Aider 83.1 83.1 ±0.0
OpenHands 85.4 85.4 ±0.0
Pi 96.6 96.6 ±0.0

No signals changed between base and head.


Posted by agent-friendly-action.

@hsnice16
hsnice16 merged commit 60d1f86 into main Oct 11, 2026
4 checks passed
@hsnice16
hsnice16 deleted the agent-leaderboard-pages branch October 11, 2026 11:04

This branch was successfully deployed

1 active deployment
Preview — ebd22926 Deployed Oct 11, 2026 by vercel[bot]
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.

1 participant