01 · Roasts
3 Commits, 15 Years
You joined GitHub in 2009 and logged exactly 3 commits in the past year. The STUN ping repo racked up 2 of them in a single 3-minute window. That's not development, that's a drive-by.
Cargo.toml Speedrun
stun_ping ships with edition='2024' in Cargo.toml — a value Rust has never supported. You broke the build before you could even finish typing src/main.rs.
eval() Enjoyer
webtrack uses eval() for function dispatch in hws.js. It's 2018 again and security best practices are optional, apparently. Also: hardcoded to 419girl.com. Bold choice for a 'reusable' library.
Template Pusher
obutils is byte-for-byte the default Obsidian plugin sample — unmodified README, boilerplate main.ts, zero domain logic. You pushed a template and called it a repo.
80% Graveyard Curator
staleRepoRatio = 0.80 — 4 out of every 5 repos you own haven't been touched in 2+ years across a 191-repo portfolio. That's not a GitHub profile, that's a digital cemetery.
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% weight15F
- Consistency20% weight5F
- Quality20% weight44D
- Depth15% weight5F
- Breadth10% weight55D
- Community10% weight25F
03 · Stats
365-day commit heatmap
7 active days
Language distribution
- Java61%
- CSS7%
- Rust6%
- C++5%
- HTML5%
- CMake5%
- Other11%
04 · Numbers
Owned repos
non-fork
10
Commits
last 12 months
3
Followers
23
Joined GitHub
Apr 2009
05 · Top repos
rya-icu /
stun_ping
Nascent Rust STUN ping utility with async-based concurrent server testing, but extremely early-stage (14 KB, 3 commits in 3 min, no tests/CI, incomplete source, invalid edition).
rya-icu /
webtrack
A minimal web analytics tracking library from 2018 with 1 star, no tests/CI, abandoned for 6+ years. Single-day effort (~1.5-hour window) with basic feature implementation and hardcoded backend URL.
rya-icu /
obutils
Boilerplate Obsidian plugin sample with zero commits history (created and pushed same day). Contains typed TypeScript, package.json build setup, and basic plugin structure but is unmodified template code with no substantive development or customization.
06 · Timeline
- Apr 9, 2009Joined GitHub
- Apr 4, 2018Created webtrack — 简单的打点统计js
- Nov 21, 2024Created obutils
- Feb 8, 2026Created stun_ping
- Feb 8, 2026Most recent push to stun_ping
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.