01 · Roasts
79% Graveyard Keeper
A staleRepoRatio of 0.79 means nearly 4 out of every 5 repos you've ever touched are abandoned. Your GitHub is less a portfolio and more an archaeological dig site.
55 Commits, 357 Fans
You have 357 followers watching you commit 55 times in a year. That's one commit per ~6.6 followers. Your audience is significantly more loyal than your commit frequency deserves.
The Eternal Pre-Release
tatween is sitting at v0.2.1 since 2017. Your animation library has been 'almost ready' for longer than some junior devs have been coding.
CI/CD Who?
Zero tests. Zero CI. Across every single scored repo. You write C for a living and still trust vibes over pipelines — respect, but also: please no.
74% C, 0% Test Coverage
Three-quarters of your codebase is C — a language where memory safety is manual and tests are survival gear. Yet HAS_TESTS=no across the board. Bold strategy.
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% weight58D
- Consistency20% weight60C
- Quality20% weight67C
- Depth15% weight60C
- Breadth10% weight65C
- Community10% weight40D
03 · Stats
365-day commit heatmap
228 active days
Language distribution
- C74%
- Shell10%
- Zig6%
- Python3%
- C++2%
- JavaScript2%
- Other3%
04 · Numbers
Owned repos
non-fork
19
Commits
last 12 months
55
Followers
357
Joined GitHub
May 2009
05 · Top repos
paraboul /
mapchecking
Production Vue 3 + Vite crowd-estimation SaaS tool with a live product (mapchecking.com), typed codebase, modern UI, and geospatial features—well-scoped but lacking tests and CI.
paraboul /
tatween
ES6 Proxy-based animation library with Cocoa-inspired block API. Typed, documented README, clean architecture but no tests/CI and limited commit history since 2017.
paraboul /
zape
Zig bindings for libapenetwork event loop library with HTTP/WebSocket support. Early-stage networking abstraction with structured multi-file layout and typed language, but minimal adoption, no tests/CI, and missing license.
06 · Timeline
- May 3, 2009Joined GitHub
- Feb 6, 2017Created tatween — Tatween is a ES6 Proxy-based JavaScript animation library with API similar to Cocoa Animation block
- Jun 1, 2018Created mapchecking — Source code of MapChecking.com
- Dec 23, 2024Created zape — Zig events and network library
- Apr 16, 2026Most recent push to zape
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.