The first command exits 0; the second exits 1 and traces an unsupported feature to /features/0/usages/0 in @inventory. @matrix, @inventory, and @dataset are logical source roles, not host paths. The pointer resolves within the named input document. No source text or filesystem path is echoed in findings.
This walkthrough uses the tool's public README and checked-in example files. Run the command from a repository checkout with Node.js 22+.
Run the checked-in example
node bin/browser-support-budget.mjs --root examples/passing --matrix matrix.json --inventory inventory.json
node bin/browser-support-budget.mjs --root examples/failing --matrix matrix.json --inventory inventory.jsonRead the result
The first command exits 0; the second exits 1 and traces an unsupported feature to /features/0/usages/0 in @inventory. @matrix, @inventory, and @dataset are logical source roles, not host paths. The pointer resolves within the named input document. No source text or filesystem path is echoed in findings.
Scope
Matrix 262,144 bytes; inventory 1,048,576 bytes; JSON depth 16; 20 browser targets; 1,000 feature records; 5,000 usage records; evaluation time 5,000 ms from an injected clock. Limits are inclusive; N+1 yields incomplete. Inputs are UTF-8 decoded strictly. CLI inputs are realpath-confined inside the declared root. The CLI writes no files and makes no network calls. No browser, source scanner, dependency resolver, telemetry, or auto-polyfill is included. The library exports TOOLID, LIMITS, RULES, and pure evaluateBudget(matrix, inventory, dataset, {now, deadline}).