cronotype

The types

Cronotype samples recent authored commits, filters out obvious merge and dependency noise, and sorts active profiles into one of eight rhythms. Empty signal samples become Quiet lately instead: still a profile, just not enough recent public signal for a current type.

How the reveal works

  • Data source. GitHub's Search Commits API for a recent 90-day sample of public commits authored by the handle. The current card filters out merge commits and obvious dependency automation, then uses up to 100 signal commits. A displayed signal of 100+ means the filtered sample hit GitHub's page cap.
  • Bucketing. Each signal commit is binned by hour (24 buckets) and weekday (7 buckets) using an explicit timestamp offset when GitHub exposes one, falling back to UTC bucketing when it does not. From those we derive shares: pctNocturnal (midnight to 5am), pctSunrise (5am to 9am), pctBusiness (9am to 7pm), pctWeekend, plus an isBimodal flag for two-shift distributions.
  • Classifier. A short cascade of rules in priority order. Empty signal samples become Quiet lately. Otherwise the first matching rhythm wins: Grass Toucher, Insomniac Maintainer, Vampire, Sunrise Sniper, Lunch Bandit, Weekend Warrior, Nine-to-Fiver, then Drifter.
  • Year history. The evolution chart totals come from GitHub's GraphQL contributions calendar. Its colors use a small signal sample for each finished year, and the current year inherits the current 90-day type.