01 · Roasts
Jupyter Hoarder
91% of your codebase is Jupyter Notebooks. Your GitHub profile is basically one giant .ipynb file wearing a trench coat pretending to be a software engineer.
The Graveyard Keeper
staleRepoRatio of 0.52 — over half your repos haven't been touched in 2+ years. You're not maintaining a portfolio, you're curating a museum of abandoned experiments.
One Trick Pony (With a Good Trick)
slopcop is genuinely impressive — 19 Rust rule modules, tree-sitter AST, CI — and then the rest of the profile is vibes and Jupyter cells. The gap between your best and average work is a chasm.
PRs Without a Cause
36 PRs this year but only 1 issue opened. You're submitting code you found lying around, but apparently never encounter problems worth reporting. Bold strategy.
Personal Site, Personal Secret
cm2435.github.io is 10.7 MB of HTML with zero README, zero stars, and zero explanation. A portfolio site with no documentation is just a mystery wrapped in CSS.
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% weight48D
- Consistency20% weight55D
- Quality20% weight72B
- Depth15% weight50D
- Breadth10% weight45D
- Community10% weight40D
03 · Stats
365-day commit heatmap
186 active days
Language distribution
- Jupyter Notebook91%
- Python6%
- Rust2%
- C++1%
- HTML1%
- CSS0%
04 · Numbers
Owned repos
non-fork
23
Commits
last 12 months
219
Followers
28
Joined GitHub
Aug 2020
05 · Top repos
cm2435 /
slopcop
Fast Rust-based Python linter for LLM anti-patterns with 19 configurable rules, tree-sitter AST analysis, comprehensive tests, CI, and well-documented README covering usage and rule details.
cm2435 /
gpt_from_scratch
Educational GPT-2 implementation framework for hands-on seminar series. Skeleton codebase with fill-in-the-blanks structure (NotImplementedError in core modules), unit tests, and clear README guiding weeks 1-6 workshops on transformers.
cm2435 /
cm2435.github.io
Personal static site (10.7 MB HTML), zero stars/forks, no README or docs. Active commits over 2 years but minimal external impact or documented purpose.
06 · Timeline
- Aug 13, 2020Joined GitHub
- May 5, 2024Created cm2435.github.io
- May 13, 2024Created gpt_from_scratch
- Apr 6, 2026Created slopcop — Fast Python linter for catching LLM-generated anti-patterns. Written in Rust, built on tree-sitter.
- Apr 21, 2026Most recent push to slopcop
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.