This is a submission for the Hacktoberfest Open-Source AI Challenge Week 4: Ghost in the Machine
What I Built
MergeMeter answers one anxious Hacktoberfest question: will this PR get merged?
You paste a public owner/repo. It pulls that repo's last 300 closed pull requests (the ones that lived, and the ghosts that were closed without merging) and hands them to TabPFN, an open-weight tabular foundation model. TabPFN reads that history in context (no training loop) and scores every open PR, or a draft you have not opened yet, with a merge probability and the factors that decide a PR's fate in that repo.
Open PRs show up as 🌼 alive (≥ 70 %), 🕯️ limbo, or 👻 ghost (< 40 %). A second tab ranks which features matter most for that repo. A third lets you describe a draft PR and get its fortune before you open it.
Every Hacktoberfest, thousands of PRs end up as ghosts: closed, unmerged, haunting someone's profile. Most contributors never find out why. Each repo has its own unwritten rules. MergeMeter reads those rules back from history.
Demo
Watch the 75-second demo (MP4).
There is no live hosted Space. Hugging Face now requires PRO for Gradio/Docker Spaces on free CPU, and this entry stays at budget $0. The app runs locally with python app.py; the repo is also a ready-to-push Hugging Face Docker Space if you have PRO.
Code
RostyslavDzhohola
/
mergemeter
Will my PR get merged? The ghosts of closed PRs predict open ones, with local open-weight TabPFN. #hf26challenge
| title | MergeMeter |
|---|---|
| emoji | 👻 |
| colorFrom | purple |
| colorTo | yellow |
| sdk | docker |
| app_port | 7860 |
| pinned | false |
| license | mit |
| short_description | Ghosts of closed PRs predict which open PRs will merge |
👻 MergeMeter: will my PR get merged?
The ghosts of PRs past predict the fate of PRs present.
Give MergeMeter a public GitHub repo. It summons that repo's last 300 closed pull requests (the ones that lived, merged, and the ghosts, closed without merging) and hands them to TabPFN, an open-weight tabular foundation model, as context. TabPFN reads the history in context (no training loop) and scores every open PR, or a draft you haven't opened yet with a merge probability and the factors that decide a PR's fate in that repo.
-
Run it locally:
python app.py(see Run it); the repo is also a ready-to-push Hugging Face Docker Space - Video (75 s): docs/mergemeter-demo.mp4
- Evaluation: EVAL.md: TabPFN vs logistic regression…
Source, EVAL.md, and setup. MIT licensed. The project started and finished on October 26, 2026, inside this challenge's build window.
git clone https://github.com/RostyslavDzhohola/mergemeter.git
cd mergemeter
python -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
python app.py
How I Built It
The open piece is TabPFN v2 running locally on CPU. Features are 18 open-time signals per PR (size, files, tests/docs, maintainer/bot, author history rebuilt inside each split, linked issue, title/body, topic labels). Comments, reviews, and time-to-close are never features. Verdict labels that leak the outcome are dropped.
On 8 real repos (5-fold CV), TabPFN beats logistic regression on 7 of 8: mean ROC-AUC 0.853 vs 0.824. Full table and time-split caveats are in EVAL.md.
Why TabPFN for this shape: 300 rows is too few for gradient boosting to shine and far too few to train a neural net. TabPFN was pre-trained on millions of synthetic tables, so it does Bayesian-style inference on a small table in one forward pass, handles missing values natively, and needs no hyperparameter search per repo.
I used AI coding agents (T3 Code / Claude and Codex) to implement the app, run the eval, and prepare this entry. I directed the idea, reviewed the leakage guards, and own the publish.
Why Does Open Innovation Matter?
The ghost here is literal: a model whose weights you can hold. TabPFN runs inside the process on a CPU. The PR feature table never leaves the machine running MergeMeter (only the GitHub API is called). There is no per-score API bill, and the model is inspectable and swappable.
A closed tabular API would mean shipping contributor history off-box and depending on a service that might disappear or change pricing. Local open weights keep the "séance" private: your draft PR description stays on your laptop until you choose to open the PR.
TabPFN v2 is the open checkpoint the app ships with. Newer TabPFN 2.5+ checkpoints are licence-gated and non-commercial; the README says that plainly.
My Agent Session
Built by AI coding agents orchestrated in T3 Code for me, Ros. Session logs can be shared on request after a privacy review. The public artifacts are the repo, EVAL.md numbers, screenshots, and the demo video.
Prize Categories
Best Use of TabPFN.




Top comments (0)