v0.1 · Apache-2.0 · zero deps · Node 20+

Strip the lockfiles.
Find the real review.

@prcompass/pr-triage-filter classifies every file in a pull request as skip, skim, or review-candidate — so a reviewer (or the next LLM tier) spends attention only on what changed.

$ npm install @prcompass/pr-triage-filter

Three verdicts

skip for lockfiles, generated, binary, prettier-only; skim for tests, config, docs; review-candidate for everything else. That's the API surface.

Zero runtime deps

"dependencies": {}. No npm tree to audit. No transitive supply chain. Deletion-friendly.

Deterministic

Pure function. No I/O, no filesystem, no network, no clock, no PRNG. Same input always produces the same verdicts in the same order.

11 rules. First-match wins.

rename-only, lockfile, generated-path, binary, generated-header, prettier-only, import-reorder, docs, config, test, plus the default fallback.

Fast

Processes a 100-file PR in well under 500 ms on a laptop. Verified by tests/performance.test.ts in CI.

Stable rule IDs

Every verdict carries a ruleId you can match against in your code ('lockfile', 'docs', …) — safe to branch on across versions.

50–70 % of files removed from the budget

On real PRs, a typical run flags lockfiles, generated dirs, prettier-only whitespace churn, and docs as out of scope before any expensive analysis runs. Tier 2 / Tier 3 of a review pipeline never sees them.

See the rule table
// One pure function. One result.
interface FileVerdict {
  path:    string;
  verdict: 'skip' | 'skim' | 'review-candidate';
  ruleId:  string;   // 'lockfile' | 'docs' | 'default' | …
  reason:  string;   // human-readable, not UI-stable
}

Reviewer attention is the budget.

This package spends none of it on lockfiles.

@prcompass/pr-triage-filter Deterministic PR file-triage filter