The same rule, in four languages, provably the same.
When one domain is implemented on web, iOS, Android, and a second service, the numbers get copied between them by hand and nothing fails when a copy is wrong. The surfaces just start answering the same question differently. This generates a contract from the reference surface's live constants and makes every other surface assert against it, so a divergence fails a test instead of reaching a user. It records divergences; it never decides which surface is right.
"stop the app and the website disagreeing"->/suede-parity-contractAsk in plain words. The router reads the request and loads this lane; MCP agents find it with list_suede_skills.
claude code · sample session
$ /suede-parity-contract auditreference: web · followers: ios, androidcontract generated from live constants · not retyped3 DIVERGENCES FOUND2 shipped · pinned, named, waiting on your call
Name exactly one reference surface and generate the contract by importing its live constants, so the contract cannot disagree with the code it came from.
Add a staleness test that fails when the committed contract and the live constants drift apart, which is what stops the file becoming a snapshot someone took once.
Vendor a byte-identical copy to every follower and prove it with a checksum rather than assuming.
Assert through public behaviour instead of reimplementing the reference formula, because a follower that copies the formula only proves you can write the same bug twice.
Check a threshold at its boundary and one step below, since a threshold asserted only from above still passes after it moves down.
Pin every existing divergence with both values and a reason, and guard that the divergence list is exactly the expected set so a new entry is a failure rather than a silence.
Prove non-vacuity in the same run: change a constant, watch the named test fail, restore it.
When to use it
The same threshold, ladder, or scoring table exists in two or more languages.
Constants are being kept in step by hand, copied out of a handoff or a PR description.
Two surfaces already disagree and the fix has to stay fixed.
Auditing where surfaces have silently drifted apart.
Onboarding a new platform that must match an existing one.
Not for: deciding which surface's value is correct, which is a product call this skill records rather than makes.
Not for: reviewing a diff for defects (use suede-code-review).
Not for: wiring the resulting tests as required checks (use suede-ci-gate).
Best prompt
Use $suede-parity-contract to tie our iOS and Android constants to the web reference: generate the contract from the live web modules, vendor it into both apps, add assertions on each side, and pin any divergence you find with its reason instead of changing it.
It ships inside the Suede Creator Skills pack, so one install brings the whole pack and this skill with it. Claude Code takes two commands the first time and one after that; Codex installs the same pack natively.