DEV Community

ke jia
ke jia

Posted on

The Weekly 30-Second Repo Health Check I Never Skip

Every Friday afternoon, for each active repo, I run one command and read two numbers. It takes 30 seconds. It has caught three real problems before they became incidents. Here's the whole practice.

npx @wuchunjie/gitpulse .
Enter fullscreen mode Exit fullscreen mode

The two numbers

1. Active days in the last week.

  Active days:     12    (last 90)
  Recent Activity
    2026-09-24  ###### 6
    2026-09-23  #### 4
Enter fullscreen mode Exit fullscreen mode

The weekly number answers: did the repo do anything this week? For a repo your team is actively working in, "no commits for five days" is normal in week one and a warning in week three. For a repo you depend on (a shared library, a config repo, an infra-as-code repo), zero activity for two weeks is a question: did the work stop, or did it move somewhere I'm not seeing (a fork, a side branch, a different repo)?

The number doesn't answer why. It tells you to ask.

2. The contributor spread, week over week.

  Top Contributors
    A. Rivera   ################ 41
    J. Chen     ######## 18
    M. Okafor   ## 4
Enter fullscreen mode Exit fullscreen mode

I don't recompute this in my head — I glance at the shape. A healthy repo has a stable, distributed shape. The warning signs are:

  • Concentration spiking. One name's bar growing while the others shrink. The work is consolidating on one person — either a good focus or a bus-factor collapse in progress.
  • A name disappearing. A regular contributor's bar shrinking to nothing. They rotated, left, or got absorbed into another project. For the modules they owned, the knowledge just left the building.
  • A new name appearing. Often the best sign in the graph — someone new is contributing, which means the knowledge is distributing. (Unless it's a bot, which the commit pattern reveals quickly.)

The three problems it caught

1. The silent dependency. A shared config repo we depended on showed zero activity for three consecutive weeks. The "why" was that the team owning it had moved to a new repo without announcing it — we'd been pulling stale config for a month. The Friday glance made the gap visible; without it, we'd have found out at deploy time.

2. The consolidating hotspot. Our API repo's contributor graph showed one name's bar growing from 30% to 60% over six weeks while two others shrank. The "why" was that two people had moved to a different team. The graph gave me six weeks of warning instead of a surprise; I used it to pair the remaining two on the modules the departed owners had held, before the knowledge gap became an incident.

3. The bot masquerading as activity. A "healthy" activity graph on an infra repo turned out to be 80% commits from a dependabot-style automation. The human cadence underneath was one commit a month. The weekly glance didn't catch this alone — I caught it when I went to read who the activity was. But the glance is what sent me to look.

Why 30 seconds and not a dashboard

I've tried the dashboard version — a CI job that posts weekly repo stats to a channel. It failed for the reason all dashboards fail: it reports, and nobody acts on reports. The 30-second check works because it's mine, at my moment, in my terminal. I see the number, I form the question, I go find the answer. The loop is closed in the same sitting.

The tool is deliberately dumb on purpose. It prints the census; it doesn't score it, alert on it, or email anyone. The judgment is mine, applied to the specific repo I'm looking at, in the specific week it matters.

The version for repos you don't own

Same command, different threshold. For a dependency's repo (cloned shallowly, checked monthly instead of weekly), the two numbers are: active days in 90 (is it alive at a cadence I can depend on?) and top-contributor share (is it one person?). I've written about this as a pre-dependency ritual; the weekly check is the same two numbers applied to the repos you control, where the "why" questions have answers you can actually get.

Thirty seconds, twice a number, and the repo's health stops being a vibe you check during an incident and becomes a fact you check before there is one.

npx @wuchunjie/gitpulse
Enter fullscreen mode Exit fullscreen mode

More Tools

Tool What it does Command
scaffoldx-cli Production-ready project templates in seconds npx scaffoldx-cli
dotguard Scan .env files for exposed secrets npx @wuchunjie/dotguard
gitpulse Git repo analytics in your terminal npx @wuchunjie/gitpulse
snippetx Terminal code snippet manager npx @wuchunjie/snippetx

If these save you time, consider buying me a coffee. All tools are MIT-licensed, zero-dependency, and run fully offline.

Top comments (0)