Public function removed
1 API removal detected · static recommendation: CAUTION
Consumer check: failed (exit 1)
export function refund(id) { return { ok: true, id }; }
A removed function can look harmless in a diff and still break its callers. Follow a small, reproducible example, then check your own change.
This synthetic JavaScript fixture originally exports chargeCard and refund. The change removes chargeCard. OpenThunder checks the API diff, and a separate Node test attempts to import and call both functions.
1 API removal detected · static recommendation: CAUTION
Consumer check: failed (exit 1)
export function refund(id) { return { ok: true, id }; }
0 API removals detected · static recommendation: CAUTION
Consumer check: passed (exit 0)
export function chargeCard(amount) { return { ok: amount > 0, amount }; }
export function refund(id) { return { ok: true, id }; }
import { test } from 'node:test';
import assert from 'node:assert/strict';
import { chargeCard, refund } from './lib.js';
test('existing consumer can import and call both public functions', () => {
assert.deepEqual(chargeCard(10), { ok: true, amount: 10 });
assert.deepEqual(refund('order-1'), { ok: true, id: 'order-1' });
});
What this establishes: the restored function passes this consumer check. The CLI result is a separate static recommendation. This is not a real payment integration, a complete behavior test, or a guarantee that the change can ship.
The repair preserves this caller, but refund failures, invalid amounts, and duplicate requests are outside this check. A useful review names those limits so a person can decide what else matters.
From a Git repository with uncommitted changes or a branch ahead of its base, run:
npx @skillstech/openthunder can-i-shipThe default command analyzes the change; it does not establish that your tests ran. Run relevant tests separately and keep their output with the reviewed version. A missing environment is a setup problem to resolve, not a passing result.
Check that your terminal is in the correct Git repository. Make a change or use a branch with commits beyond its comparison base, then rerun the command.
Use the local diff triage tool. It uses text patterns and cannot inspect your full repository, execute tests, or establish merge readiness.
From a built OpenThunder checkout, run node apps/docs/scripts/gen-review-example.mjs. It creates a temporary repository from the published breaking-API fixture, records both CLI results and test executions, and writes the evidence linked above.
Use the review brief to hand over what was checked and what remains uncertain. When your team needs shared review history and repository quality gates, explore Team.
Explore Team pricing