01 · Roasts
The One-Sprint Wonder
TeaBuddy's entire commit history is 30 commits across 1.5 months in late 2019. A tea app built in a caffeinated weekend marathon, then abandoned faster than a cup going cold.
89% Graveyard
A stale repo ratio of 0.89 means nearly 9 out of every 10 repos you own are quietly decomposing. GitHub Profile: now a digital cemetery.
Zero Commits This Year
totalCommitsYear = 0. Not a single public commit in the past 12 months. The heatmap from previous years is doing all the heavy lifting — and even that peaks at level 4 on a Tuesday.
83% Python, 0% Tests
Python makes up 83% of your codebase and yet not a single repo has HAS_TESTS=yes. That's a lot of untested snake wrangling.
Social Ghost with a Blog
27 followers, 0 PRs, 1 issue filed this year — but you do maintain a tea blog. Community engagement level: steeped in silence.
Built using
Zoral
Shadows one worker for a week, then takes over their job with zero extra setup. Behaves exactly like the original.
zoral.ai
02 · Category breakdown
- Impact25% weight31F
- Consistency20% weight60C
- Quality20% weight45D
- Depth15% weight55D
- Breadth10% weight55D
- Community10% weight40D
03 · Stats
365-day commit heatmap
215 active days
Language distribution
- Python83%
- Kotlin5%
- C3%
- JavaScript3%
- C#2%
- C++2%
- Other2%
04 · Numbers
Owned repos
non-fork
18
Commits
last 12 months
0
Followers
27
Joined GitHub
Dec 2018
05 · Top repos
williamxyshi /
TeaBuddy
Personal Android tea companion app built in Kotlin with Firebase/Firestore backend, Realm local persistence, and community features. Typed language with README and structured layout, but abandoned after initial sprint (last push Jan 2020).
williamxyshi /
williamxyshi.github.io
Personal tea blog static site hosted on GitHub Pages. Minimal documentation (2-line README), no tests/CI, 75MB size suggests substantial content but extremely light project metadata and structure.
williamxyshi /
WizAutoChess
Early-stage mobile game in Kotlin with networking functionality. Typed Kotlin codebase with ViewModel pattern, but incomplete (WIP), no tests/CI, minimal polish, and only 3 stars after 4+ years.
06 · Timeline
- Dec 14, 2018Joined GitHub
- Dec 1, 2019Created TeaBuddy — :tea: tea companion app
- Jan 9, 2020Created WizAutoChess — mobile multiplayer auto chess game
- Jan 13, 2020Created williamxyshi.github.io — my tea blog
- Feb 2, 2024Most recent push to williamxyshi.github.io
07 · Compare
08 · Rubric
How this score was produced
Overall = Σ (category × weight) + gentle top-end curve
Tier thresholds
▸ How the pipeline works
- 01Scrape.Pull every non-fork repo pushed in the last 90 days, plus your contribution calendar, followers, and language byte counts — straight from GitHub's REST & GraphQL APIs.
- 02Triage.A small model reads every repo's file tree + README and picks the 20 files per repo that actually reveal how you code.
- 03Grade each repo. All repos run in parallel through a fast scoring model that reads the picked files and rates each one independently on Impact, Quality, and Depth — with evidence citations.
- 04Aggregate. A larger reasoning model combines the per-repo scores with server-computed stats (heatmap, commit cadence, language entropy, follower count) to produce the 6-dimension profile score + roasts.
- 05Correct.Deterministic server-side checks enforce anchor-scale floors (e.g. a profile with 2,000+ public commits can't score 30 Consistency) and recompute the final verdict.
~90 seconds per profile, ~$0.25 in compute. Total of ~240 files read across your top-12 repos. One rating per GitHub account per day.
▸ Data sources & caveats
- Heatmap & commit totals: GitHub GraphQL
contributionsCollection— covers the last 365 days, includes private repos when the user has opted in (default). - Language %: byte totals across the top 30 owned non-fork repos.
- Curve: a small upward nudge centered on raw score ≈ 70, capping at 100. Prevents specialists from being unfairly penalised for narrow breadth.
- Anchor corrections: when server-measured signals (e.g. privateWorkLikely, multiRepoVolume, follower count) mandate a minimum category score, the aggregation step enforces it. These are signal-conditional, not identity-based floors.