v1.0.0 — now with grace-period support

Garbage collect
toxic people.

The world's most needed developer tool. Detects, flags, and removes chronic assholes from your environment — with configurable thresholds, dry-run support, and a false-positive rate lower than your last standup.

bash
$ asshole-gc --dry-run
Scanning environment... done.
Candidates flagged: 3
Dave (engineering) — 7 consecutive bad days, confidence: 94%
Karen (management) — 3 consecutive bad days, confidence: 71%
Todd (slack) — 4 consecutive bad days, confidence: 83%
Run with --run to execute. Use --grace-period to warn first.
$ asshole-gc --run --grace-period
✓ Grace period notices sent.
✓ Collection scheduled.
Next run: 7 days
3
consecutive bad days
to flag
<2%
false positive rate
with dry-run review
relief after
successful collection
0
regrets reported
by users

Everything you need to maintain a healthy environment.

The Detection Algorithm

asshole-gc uses a multi-pass behavioral signal aggregator (BSA) to evaluate subjects across 14 weighted dimensions. Signals are windowed over a rolling 72-hour period, normalized for context, and filtered through a false-positive suppression layer trained on 10 years of "he's not that bad" excuses.

The consecutive-days counter resets on genuine good behavior. Gaming it requires being consistently decent — which, by definition, removes the subject from the candidate pool.

Read the full spec →
fn evaluate(subject: &Subject) -> Score {
    let signals = collect_signals(subject);
    let consecutive = count_consecutive_bad_days(signals);

    if consecutive < THRESHOLD {
        return Score::Clear; // noise
    }

    let confidence = bsa_score(signals)
        .filter_false_positives()
        .apply_context_weight();

    match confidence {
        c if c > 0.9 => Score::Flag(Priority::High),
        c if c > 0.7 => Score::Flag(Priority::Review),
        _           => Score::Monitor,
    }
}

Get Started

One command. Life-changing results.

brew install asshole-gc
cargo install asshole-gc
npm install -g asshole-gc
curl -fsSL # coming soon | sh
"Not every bug is worth fixing.
Some you just remove from the codebase."

— asshole-gc philosophy, v1.0

Contributing

PRs welcome. Issues welcome. We do review contributor behavior before merging.
Repeat offenders are subject to asshole-gc --run.

View on GitHub