01 · Roasts
132 Repos, 2 Commits/Year
You have 132 public repos and managed exactly 2 commits in the last year. That's not a portfolio — that's a museum of abandoned ideas collecting digital dust.
The Scaffold Collector
project-tsubasa has design docs for a World Cup prediction system and a grand total of 2 commits. The tournament will have come and gone before a single prediction is made.
Fork & Forget Strategy
do-sample-nextjs is a DigitalOcean tutorial template with one commit and 1 star (probably self-awarded). Teaching platform deployment by never deploying anything.
Jupyter Notebook Hoarder
63% of your codebase is Jupyter Notebooks — that's not a language breakdown, that's a confession that most of your 'projects' are half-run cells that never made it to production.
No Tests, No CI, No Mercy
Zero test suites and zero CI pipelines across every single analyzed repo. The only thing being continuously integrated here is the absence of quality gates.
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% weight47D
- Depth15% weight20F
- Breadth10% weight55D
- Community10% weight40D
03 · Stats
365-day commit heatmap
12 active days
Language distribution
- Jupyter Notebook63%
- TypeScript13%
- Python9%
- JavaScript8%
- CSS5%
- Astro3%
04 · Numbers
Owned repos
non-fork
3
Commits
last 12 months
2
Followers
19
Joined GitHub
May 2009
05 · Top repos
woonhock /
project-tsubasa
Fresh Turborepo scaffold for 2026 World Cup prediction system with ambitious design docs but minimal working code—2 commits, 386 KB, TypeScript + FastAPI foundation incomplete.
woonhock /
do-sample-nextjs
DigitalOcean sample Next.js app deployed to App Platform. Minimal functionality (landing page), untyped JavaScript, no tests/CI, single recent commit. Tutorial-style template for learning platform deployment.
woonhock /
freefoia
SEC filing scraper with retry logic and progress tracking. No tests, CI, license, or typing. Single-file Python script with 43KB footprint, 19 commits in last 30 days. Functional but minimal documentation and structure.
06 · Timeline
- May 6, 2009Joined GitHub
- Jul 1, 2024Created freefoia
- Feb 28, 2025Created do-sample-nextjs
- Apr 6, 2026Created project-tsubasa — 2026 World Cup Predictive Intelligence & Arbitrage Agent
- Apr 6, 2026Most recent push to project-tsubasa
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.