Skip to content

skilldrop·docs·How-to

Use behaviour-equivalence

Prove that a rewritten, migrated or refactored component behaves the same as the old one with a golden-master comparison

Prove that a rewritten, migrated or refactored component behaves the same as the old one with a golden-master comparison — record inputs and outputs at a boundary (HTTP, function calls, batch files, DB writes, events) from production-shaped traffic and edge cases, run the old system twice to find its nondeterminism, normalise narrowly field by field, replay against the new one, triage every difference as defect, intended change (with a named approver) or missing normalisation, and give a verdict of EQUIVALENT, EQUIVALENT EXCEPT LISTED CHANGES, NOT EQUIVALENT or NOT PROVEN.

Reach for it when the user asks "does the new one behave the same as the old one", "can we sign off the rewrite", "are these diffs just noise", wants a golden-master, approval or shadow-traffic comparison, a parity check between old and new outputs, or says "prove behaviour equivalence".

Install it

npx skilldrop-cli install behaviour-equivalence                 # Claude Code, your user folder
npx skilldrop-cli install behaviour-equivalence --project       # Claude Code, this repo
npx skilldrop-cli install behaviour-equivalence --ide cursor    # or kiro, codex, antigravity, copilot

It is part of the Dev team pack: --pack dev-team installs it with its neighbours.

It ships scripts, so it needs Python 3 (standard library only, nothing to install). What they may touch is declared in its manifest.

Ask for it

Say it the way you would to a colleague. Requests like these route to it:

Requests like these belong to a different skill, so it shouldn't answer them:

If another skill answers instead, ask for this one by name: "use behaviour-equivalence".

Check what you get

A good result:

See a worked example

Use something else when

Where a loop runs it

Next

Edit this page on GitHub · View source