feat: add export_site_data.py website fold-in exporter#43
Merged
Conversation
Reads results/<run>/leaderboard.json (analyze_spread.py output) and emits site/data.fragment.ts (META + MODELS blocks matching the ModelRow interface on rle.appsprout.dev) plus site/site_data.json for HF dataset / API ingestion. Round-trip verified against the live v0.3.0 site data: exact match except three half-case roundings where the hand-edit went toward zero. Editorial blocks (HERO_LOG, STORY, AGENTS, OG_*) stay hand-curated; this mechanizes the leaderboard half of a fold-in so numbers are never hand-transcribed again. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
scripts/export_site_data.py— bridges the run-analysis pipeline to rle.appsprout.dev. Readsresults/<run>/leaderboard.json(analyze_spread.py output) and emits:site/data.fragment.ts— META + MODELS blocks matching theModelRowinterface in AppSprout-Siteclient/src/rle/data.ts, ready to paste over the generated half of a fold-insite/site_data.json— same payload as JSON, for the future HF dataset push / API ingestionWhy
The v0.3.0 fold-in (AppSprout-Site PR #24) was hand-transcribed from leaderboard.json. This mechanizes the leaderboard half so numbers can never drift in transcription; editorial blocks (HERO_LOG, STORY, AGENTS, OG_*) stay hand-curated from stories.md.
Verification
Round-tripped against the live v0.3.0 site data: exact value match for all 11 models + META, except three half-case roundings (qwen mean 0.806 vs 0.805, nemotron delta -0.007 vs -0.006, kimi mean 0.687 vs 0.686) where the hand-edit rounded toward zero — the script uses conventional half-away-from-zero.
ruffclean,mypy src/clean, 491 tests pass. Generated output underresults/is gitignored.🤖 Generated with Claude Code