01 · Roasts
1452 PRs, 3 Repos Scored
You opened 1,452 PRs in a year — roughly 4 a day — yet only 3 repos surfaced for scoring, two of which have no tests whatsoever. Are you PRing your own TODO comments?
Type Hints? Never Heard of Her
TYPED=no across all three repos. You're the CEO of a data-engineering company shipping Python tools in 2025 without a single type annotation in sight. mypy would file an HR complaint.
87% Python, 13% MDX, 0% Variety
Your language breakdown is essentially 'Python and the markdown I wrote about Python.' Dockerfile at 0% is doing more heavy lifting percentage-wise than your second language.
261 Total Stars Across 46 Repos
46 public repos, 261 total stars — that's an average of 5.7 stars per repo. Your profile README alone has 1 star, presumably from yourself, keeping the curve respectable.
CI Is Apparently Optional
copychat has CI. aimages does not. Your profile repo does not. Two-thirds of your portfolio ships without a single automated check — bold strategy for someone building developer tools.
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% weight66C
- Consistency20% weight78B
- Quality20% weight67C
- Depth15% weight60C
- Breadth10% weight30F
- Community10% weight65C
03 · Stats
365-day commit heatmap
335 active days
Language distribution
- Python87%
- MDX13%
- Dockerfile0%
04 · Numbers
Owned repos
non-fork
11
Commits
last 12 months
1,823
Followers
2,375
Joined GitHub
Nov 2009
05 · Top repos
jlowin /
copychat
CLI tool for formatting code into LLM-ready context; active indie project with 59 stars, shipped product with named use cases (clipboard copy, GitHub integration, token estimation), 30 recent commits, comprehensive tests and CI, but lacks license and type annotations in Python codebase.
jlowin /
aimages
Python tool for generating images with hidden text using Stable Diffusion ControlNet on Modal GPUs. Well-documented entry point with structured code, but lacks tests, CI, and type hints.
jlowin /
jlowin
Personal profile README-only repo with 1 star, 3 KB, minimal commit activity. No code, tests, CI, license, or typed implementation. Pure biographical landing page.
06 · Timeline
- Nov 16, 2009Joined GitHub
- Jul 25, 2023Created aimages — Generate images with hidden text
- Oct 27, 2024Created copychat — 📋💬 Simple code-to-context utility
- Jul 9, 2025Created jlowin
- Jun 19, 2026Most recent push to jlowin
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.