01 · Roasts
The 81% Graveyard Curator
81% of your repos haven't been touched in 2+ years. Your GitHub profile is less a portfolio and more a digital archaeological dig — lots of fascinating artifacts, zero signs of life.
46 Commits and Counting (Very Slowly)
46 commits in the last year, almost all crammed into the final 10 weeks. That's not a work rhythm, that's a deadline panic followed by 10 months of existential quiet.
ThinAir Lives Up to Its Name
Your Node.js MVC framework 'ThinAir' hasn't had a commit since 2013. It predates Node.js being considered mainstream and has since aged into a digital fossil with 4 stars to show for it.
Zero PRs, One Issue
totalPRsYear = 0, totalIssuesYear = 1. You opened a single issue on someone else's project this year. That's your entire community contribution. One. Singular. Issue.
Polyglot in Theory, Ghost in Practice
JavaScript, PHP, C#, TypeScript, Swift, Lua — impressive language spread! Too bad most repos using them haven't been updated since the Obama administration.
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% weight30F
- Consistency20% weight55D
- Quality20% weight45D
- Depth15% weight50D
- Breadth10% weight65C
- Community10% weight40D
03 · Stats
365-day commit heatmap
56 active days
Language distribution
- JavaScript50%
- PHP33%
- C#6%
- TypeScript3%
- CSS2%
- Swift2%
- Other4%
04 · Numbers
Owned repos
non-fork
27
Commits
last 12 months
46
Followers
40
Joined GitHub
Apr 2009
05 · Top repos
tbergeron /
love-ludumdare-starter
Löve 2D game starter template with state manager and bundled libraries. Untyped Lua, minimal tests/CI, structured for jam games. Last updated 2016; personal portfolio piece for prototyping.
tbergeron /
ThinAir
Dormant Node.js MVC framework (unmaintained since 2013) with minimal adoption (4 stars). Exhibits basic architectural structure with controllers, repositories, and routing, but lacks tests, typed code, and modern patterns.
tbergeron /
joplin-statusbar
Minimal Joplin plugin that displays last sync time in a statusbar. TypeScript project with webpack build, but extremely thin scope (one feature, ~50 LOC), no tests/CI, single day of commits.
06 · Timeline
- Apr 3, 2009Joined GitHub
- Apr 3, 2012Created ThinAir — [CURRENTLY UNMAINTAINED] PITA-less Web Development Framework built with Node.js
- Apr 18, 2014Created love-ludumdare-starter — Löve 2D (lua) Game Development Starter Bundle
- Dec 2, 2020Created joplin-statusbar
- Dec 2, 2020Most recent push to joplin-statusbar
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.