Interactive teardown · synthetic repo, real logic
The Verdict Machine
My portfolio auditor looks at ~170 repos and decides, for each one, whether it deserves my attention. Not with a health score, but with a cascade of small, readable judgments. This page is that cascade, running live. Every decision below is computed by the auditor's actual functions, ported line-for-line and verified against the Python source on 21,000+ generated cases. Drag things. Watch the verdict argue with you.
Stage 1 · Is it alive?
One signal, and why it isn't enough
Here's the problem: this signal can't tell a ghost from a workhorse. A repo with a signed binary, a beautiful README, and a screenshot that will be accurate forever scores exactly the same as a dusty script: the surface was minted once, on the project's best day. Commit recency is honest but nearly blind. So the auditor keeps going.
the actual decision: activityStatusFor
Stage 2 · Does it explain itself?
The context contract
Every repo owes its future reader six answers. Not prose quality, not length: the auditor checks that six specific sections exist and say something, in the repo's context file or its README:
Notice what this is not: a truth check. The contract verifies the sections exist: a Current State section that's beautifully written and wrong sails through. Presence is cheap to verify honestly; truth needs cross-examination. (The auditor's author knows. It's on the list.)
the actual decision: contextQualityFor
Stage 3 · What did the operator declare?
Intent is a signal too
Observation only gets you so far: a quiet repo might be dying, or it might be done. The difference is intent. The operator declares, per repo, which path it's on and how much it matters:
Stage 4 · Should the system trust its own guidance?
Confidence gates advice, not repos
This is my favorite move in the whole machine. Before the auditor routes your attention, it asks whether it's entitled to an opinion. Concerns accumulate, and any hard concern forces the verdict below to investigate: the system declaring it can't responsibly advise you yet.
the actual decision: buildOperatingPathEntry
Stage 5 · How risky is neglect?
Factors, not scores, and permission to ignore
Risk here isn't a number. It's a list of named factors: three or more elevates, a specific toxic pair elevates, one open critical CVE on an active repo force-elevates on its own. And two whole classes of repo are deferred: the tier that means you're allowed to ignore this, which is what makes 170 repos governable at all.
the actual decision: buildRiskEntry
Stage 6 · The verdict: where does it sit in my attention?
A strict ladder, first match wins
the actual decision: attentionStateFor
What the machine is actually saying
Poke at the presets again with the ladder in view. The polished ghost lands in parked: not punished, just quietly moved out of your attention until the commits move. The active repo with thin docs gets dragged into decision-needed, not because the code is bad, but because the system refuses to pretend it understands a repo that won't explain itself. That's the design stance throughout: the auditor never says "bad repo." It says "I can't advise you here yet," and routes your attention to where a decision is actually owed.
Every threshold you dragged across is an editorial choice: 14 days, six sections, three factors. The machine's honesty doesn't come from the thresholds being right. It comes from the thresholds being visible, so when a verdict surprises you, you can argue with a specific line of code instead of a vibe.
Provenance
The functions running on this page are line-for-line JavaScript ports of
GithubRepoAuditor's decision
modules (portfolio_truth_reconcile.py, portfolio_pathing.py,
portfolio_risk.py, portfolio_context_contract.py), including the
rationale strings, verified by a golden-test harness that replays 21,000+ generated input
combinations through both implementations and diffs exact equality. One deliberate
abstraction: the “strategic repo” check is a boolean here, where the Python consults a
private repo list. The repo on this page is synthetic; no live portfolio data is shown.
The full source of each decision is inline above: expand any the actual decision
block.