01 · Roasts
94% Python, 2% Everything Else
Your langPcts read like a Python supremacy manifesto. TypeScript at 2%, JavaScript at 2%, Swift clocking in at 1% — congrats on technically being 'multilingual' in the same way a tourist saying 'bonjour' is 'bilingual'.
684 Stars, No License
vit has 684 stars, install instructions, and people actively using it — but no open-source license. You've built the most popular unlicensed software since whatever that guy keeps on a USB drive.
Sprint God, Endurance Zero
bx-theory: 14 commits in 2 days. mfsn-map-mvp: 1 commit, created and pushed in 13 seconds. genai-testing: born and abandoned same afternoon. Your commit graph looks like a heart monitor for someone on espresso.
65 PRs, 1 Issue
You filed 65 external PRs this year but exactly 1 issue. Either every repo you touch is perfectly bug-free, or you're the type to silently fix things and never complain — which is either admirable or deeply repressed.
Graveyard-Free But Momentum-Challenged
Only 11% stale repos — impressive. But your heatmap has 4 full dead weeks and a suspicious blank row 10 and row 17. You're not abandoning projects, you're just… taking very meditative pauses between them.
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% weight68C
- Consistency20% weight65C
- Quality20% weight62C
- Depth15% weight65C
- Breadth10% weight55D
- Community10% weight50D
03 · Stats
365-day commit heatmap
172 active days
Language distribution
- Python94%
- TypeScript2%
- JavaScript2%
- Swift1%
- CSS0%
- PowerShell0%
- Other1%
04 · Numbers
Owned repos
non-fork
37
Commits
last 12 months
810
Followers
109
Joined GitHub
Sep 2022
05 · Top repos
LucasHJin /
vit
Vit — a domain-specific version control system for video editing timelines. Serializes DaVinci Resolve timelines to domain-split JSON (cuts, color, audio, effects, markers), uses git as backend, and employs AI-assisted semantic merge resolution. Active project with 684 stars, comprehensive tests, structured codebase (1
LucasHJin /
obsidian-pets
TypeScript Obsidian plugin with 22 pet variants, animations, RAG chat integration, and physics-based ball interactions. Typed, documented, structured codebase with CI pipeline but no test suite.
LucasHJin /
portfolio-v2
Personal portfolio website showcasing multiple hackathon projects and side work. Typed Next.js app with API integration (Supabase), interactive pet animation component, and gym/weight tracking visualization via live Google Sheets.
LucasHJin /
foodie
TypeScript Next.js nutrition tracker with force-directed graph visualization, USDA/Gemini integration. Fresh project (~1 day old), solid architecture, no tests/CI, good type coverage but incomplete feature set.
LucasHJin /
ascii-experiment
Experimental React+TypeScript video-to-ASCII converter with two implementations (canvas and WebGL); minimal scope, 0 stars, 23/30 recent commits over 5 days, typed language with structured components but no tests, CI, or license.
LucasHJin /
bx-theory
Experimental study planner using Google ADK multi-agent system to parse PDFs and generate spaced-repetition study schedules. Early-stage project with working agent architecture, no tests, minimal adoption, created 2 days ago.
LucasHJin /
LucasHJin
Personal portfolio README for CS student at UW with links to shipped projects (git video editor, obsidian plugin). Minimal repo content itself (24KB), but demonstrates active shipping across multiple real projects.
LucasHJin /
mfsn-map-mvp
Single-day MVP scaffolding for Mapbox-powered Svelte map with basic marker management. No README, tests, CI, or documentation. Minimal architectural scope with 18 KB codebase.
LucasHJin /
genai-testing
Empty scaffold created moments ago with 1 commit and 60KB total size. No README, tests, CI, or documentation. Minimal code footprint with no discernible project structure or functionality.
06 · Timeline
- Sep 1, 2022Joined GitHub
- Mar 21, 2024Created LucasHJin
- Jun 7, 2025Created obsidian-pets — Adds cute pixel pets to Obsidian.
- Dec 4, 2025Created portfolio-v2 — Revamped personal portfolio with more personal touches.
- Feb 4, 2026Created bx-theory
- Feb 8, 2026Created mfsn-map-mvp
- Mar 14, 2026Created vit — Git for video editing.
- Mar 14, 2026Created genai-testing
- Mar 16, 2026Created foodie — knowledge graph of food tracking 😋
- Apr 20, 2026Created ascii-experiment — Experimenting with creating a video to ascii component.
- Apr 25, 2026Most recent push to ascii-experiment
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.