01 · Roasts
The Jam Jar Hoarder
All three sampled repos are game jam submissions. DownbeatUnderground (GGJ 2021), ProfaneSalvation (Summer Slow Jams 2019), SlimeTime (Ludum Dare 33). You have 79 public repos — how many are just jam leftovers that never shipped?
Ghost Town Calendar
Your heatmap has entire months of nothing — weeks 18 through 40 are practically a desert. 120 commits in a year across 79 repos averages to 1.5 commits per repo. Quantity ≠ activity.
94% Abandoned
staleRepoRatio = 0.94. That means 74 of your 79 repos haven't been touched in over 2 years. Your GitHub profile is less a portfolio and more a digital archaeological dig.
Solo Forever
soloPct = 100%, totalPRsYear = 0, totalIssuesYear = 2. You've been on GitHub since 2009 and have yet to open a single pull request this year. The collaboration tab must be feeling lonely.
README? More Like Read-Meh
Every sampled repo has a README flagged as minimal or single-line. With 15 years on the platform and a 193MB game project, 'one-line description' is doing a lot of heavy lifting.
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% weight33F
- Consistency20% weight60C
- Quality20% weight35F
- Depth15% weight55D
- Breadth10% weight72B
- Community10% weight40D
03 · Stats
365-day commit heatmap
82 active days
Language distribution
- ActionScript38%
- C++38%
- C#17%
- Haxe3%
- GLSL2%
- GDScript1%
- Other1%
04 · Numbers
Owned repos
non-fork
64
Commits
last 12 months
120
Followers
53
Joined GitHub
Apr 2009
05 · Top repos
schonstal /
SlimeTime
Personal game project (Ludum Dare 33 jam entry) built in Haxe/HxFlixel with 60KB codebase. Features arcade bullet-hell mechanics with shooting-to-move mechanic, no tests or CI, minimal documentation beyond gameplay description.
schonstal /
DownbeatUnderground
Game jam submission (GGJ 2021) with 193MB codebase, 30 commits spanning 5+ years, minimal documentation. Untyped GDScript, no tests/CI/license, but demonstrates sustained active work post-jam.
schonstal /
ProfaneSalvation
Game jam submission (Summer Slow Jams 2019) with 133 MB codebase but minimal documentation. No tests, CI, or license. GDScript project with active history (30 commits in recent window) but thin README and no architectural docs.
06 · Timeline
- Apr 13, 2009Joined GitHub
- Aug 21, 2015Created SlimeTime — Bullet-Hell single screen shooter where the only way to move is to shoot.
- Jun 19, 2019Created ProfaneSalvation — 🎮 June summer slow jam
- Jan 27, 2021Created DownbeatUnderground — Lost and Found
- Apr 24, 2026Most recent push to DownbeatUnderground
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.