01 · Roasts
One-and-a-half projects in 14 months
You have 5 public repos but really only one actual project: textEditor. A neovim config and a profile README don't count as a portfolio — they count as a dotfiles drawer and a vanity mirror.
Tests? CI? Never heard of them.
Zero repos with CI. Zero repos with tests. Zero licenses. You compile with -Wall -Wextra -pedantic but won't run a single automated check. The compiler nags you; your GitHub Actions tab naps.
The heatmap has more empty space than a lunar calendar
Weeks 1–10 of the year: complete silence. Then sporadic bursts, then more silence. 216 commits in a year sounds okay until you see they're clustered in maybe 8 weeks of actual work.
Haskell is 33% of your code and 0% of your visible projects
A third of your language bytes are Haskell, yet there's no Haskell repo in your public portfolio. Either it's all private or it evaporated. Either way, the evidence trail is cold.
7 PRs to other people's code, 0 issues filed
You opened 7 external PRs this year — respectable for a new account — but filed zero issues. You'll fix bugs silently but never report them. Very enigmatic, very unhelpful.
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% weight28F
- Consistency20% weight35F
- Quality20% weight38F
- Depth15% weight50D
- Breadth10% weight65C
- Community10% weight25F
03 · Stats
365-day commit heatmap
68 active days
Language distribution
- Haskell33%
- TypeScript32%
- C19%
- JavaScript11%
- Lua3%
- Python2%
04 · Numbers
Owned repos
non-fork
5
Commits
last 12 months
216
Followers
15
Joined GitHub
Oct 2024
05 · Top repos
Jakub-Kisielewski /
textEditor
A learning-focused terminal text editor in C with modular syntax highlighting, file persistence, and search. Single-file 229KB implementation showing deliberate low-level OS interaction study, documented via README, with 30 commits over ~5 weeks.
Jakub-Kisielewski /
nvimConfig
Personal neovim configuration scaffold using lazy.nvim for plugin management. Minimal scope (4KB, ~2 commits), no documentation, tests, or CI. Works functionally with LSP, treesitter, and completions but lacks explanation or architectural intent.
Jakub-Kisielewski /
Jakub-Kisielewski
GitHub profile README with badges and links to other projects. No source code, no tests, no CI. Pure personal introduction repo with minimal substance—a tutorial/one-off personal card.
06 · Timeline
- Oct 25, 2024Joined GitHub
- Jul 21, 2025Created nvimConfig — Current neovim config
- Jul 23, 2025Created Jakub-Kisielewski — Github profile README
- Aug 30, 2025Created textEditor — Text Editor in C.
- Dec 22, 2025Most recent push to nvimConfig
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.