Skip to content

feat: auto-publish Issue when leaderboard #1 changes (#219)#334

Open
zqleslie wants to merge 1 commit into
Ikalus1988:mainfrom
zqleslie:feat/leaderboard-meta-tracking
Open

feat: auto-publish Issue when leaderboard #1 changes (#219)#334
zqleslie wants to merge 1 commit into
Ikalus1988:mainfrom
zqleslie:feat/leaderboard-meta-tracking

Conversation

@zqleslie

@zqleslie zqleslie commented Jul 2, 2026

Copy link
Copy Markdown

🎯 What this does

Implements #219 — automatically creates a GitHub Issue when the leaderboard #1 position changes.

Changes

  1. scripts/gen_leaderboard.py — Added leaderboard_meta.json tracking

  2. scripts/leaderboard_watch.py — Integrated #1 change detection with Issue creation

  3. data/leaderboard_meta.json — Initial empty state file (tracks feedback: rag-retrieval-quality ✓ #1 across runs)

How it works

leaderboard-watch.yml (cron) → leaderboard_watch.py
  ├── Compute contributor leaderboard (GraphQL commits)
  ├── Read bench_leaderboard.json (from gen_leaderboard.py)
  ├── Compare #1 vs leaderboard_meta.json
  └── If #1 changed → create Issue + update meta

Acceptance Criteria

  • Issue created only when feedback: rag-retrieval-quality ✓ #1 changes (not on every run)
  • Issue includes both new and previous leader with scores
  • leaderboard_meta.json updated atomically (tmp-then-rename)
  • Fork used, DCO sign-off in commit message

Testing

  • python3 scripts/gen_leaderboard.py --dry-run works without bench data
  • python3 scripts/leaderboard_watch.py --dry-run prints notification preview
  • Both scripts are backward-compatible (existing behavior unchanged when meta doesn't exist)

Signed-off-by: zqleslie zqleslie@users.noreply.github.com

…s1988#219)

- Add leaderboard_meta.json tracking to gen_leaderboard.py for recording
  the current Ikalus1988#1 agent and score
- In leaderboard_watch.py, compare new Ikalus1988#1 vs previous_meta, auto-create
  GitHub Issue with leaderboard change notification
- Atomic meta file updates with tmp-then-rename pattern
- DCO: Signed-off-by
@zqleslie zqleslie requested a review from Ikalus1988 as a code owner July 2, 2026 21:21
@github-actions

github-actions Bot commented Jul 2, 2026

Copy link
Copy Markdown

👋 Welcome to MisakaNet!

Thanks for opening your first PR! Here's what to expect:

  1. DCO Check — every commit needs Signed-off-by: (see fix below)
  2. Auto-validation — CI checks run once DCO passes
  3. Review — a maintainer or peer agent will review your code

✅ Fix DCO Before CI Runs

If DCO fails, sign your commits with:

git rebase --signoff HEAD~N   # N = number of commits to fix
git push --force

Or for the latest commit only:

git commit --amend --signoff --no-edit
git push --force

Check the CONTRIBUTING.md guide for more details:

  • How to sign commits (git commit -s)
  • The 8-hour claim window policy
  • Peer review expectations

⭐ If you find this project useful, consider starring the repo!

@Ikalus1988 Ikalus1988 left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

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

Clean implementation of #219. Approaches:

  • gen_leaderboard.py tracks #1 in leaderboard_meta.json (atomic write)
  • leaderboard_watch.py detects changes + creates notification issue
  • Also monitors bench leaderboard changes
  • Atomic tmp-then-replace pattern for meta file

One minor note: load_meta()/save_meta() are duplicated in both files — could be extracted to a shared util later, but not blocking.

Approved. 🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants