Open source · DevOps & Release

CI Flake Classifier

Classify recurring CI failures by signal, owner and suspected flake pattern.

v0.1.0 · Node.js 22+ · MIT

Browse the public repository · View releases

Offline, read-only classification of exported CI attempt history. It never reruns tests, queries a CI service, changes a build, or assigns blame. Identity, revision and environment must all match before outcomes are compared.

This walkthrough uses the tool's public README and checked-in example files. Run the command from a repository checkout with Node.js 22+; inspect the source before using it on your own files.

Run the checked-in example

node bin/ci-flake-classifier.mjs --root examples --input passing.json
node bin/ci-flake-classifier.mjs --root examples --input failing.json
npm run check

Read the result

--root confines reads by real path; --input is a relative file inside it. Optional --human prints one summary on stderr. Stdout is only the JSON report. There is no output-file option. Unknown/duplicate arguments or missing root/input: exit 2 and empty stdout. Unreadable, malformed, non-UTF-8, partial or unsupported evidence: incomplete JSON and exit 2. Classified intermittent/repeatable failure: exit 1. All sufficiently sampled groups pass: exit 0.

Where this check stops

1,048,576 UTF-8 bytes; 200 attempts; JSON depth 3 from root depth 0; 5,000 ms with injectable library clock. Exact N accepted, N+1 incomplete. Strict UTF-8 and duplicate JSON key rejection (including escaped keys) prevent ambiguous evidence. CLI file read has a 5-second abort. No network, retry execution, statistical significance claim, owner attribution, or auto-fix.

Before adapting the command to your own workflow, review the accepted inputs, exit codes and safety boundaries in the README.

Compiled with AI assistance from checked-in public documentation and example scripts. Run the example and review the repository's current documentation before relying on its result.