/suede-parity-contract · cross-surface parity

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.

View skill folder Install options

"stop the app and the website disagreeing" /suede-parity-contract Ask in plain words. The router reads the request and loads this lane; MCP agents find it with list_suede_skills.
$ /suede-parity-contract audit reference: web · followers: ios, android contract generated from live constants · not retyped 3 DIVERGENCES FOUND 2 shipped · pinned, named, waiting on your call

Copy just this skill

Claude Code project-level copy

git clone https://github.com/JasonColapietro/suede-creator-skills.git /tmp/suede-creator-skills
mkdir -p .claude/skills
cp -R /tmp/suede-creator-skills/skills/suede-parity-contract .claude/skills/

Codex installer

python3 ~/.codex/skills/.system/skill-installer/scripts/install-skill-from-github.py \
  --repo JasonColapietro/suede-creator-skills \
  --path skills/suede-parity-contract

What it covers

  • 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.

Related skills

Related skills from this docs set: Suede Code Review, Suede Ship Gate.

Install this skill

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.

terminal · install the pack
Claude Code
$ /plugin marketplace add JasonColapietro/suede-creator-skills
$ /plugin install suede-skills@suede
Codex
$ codex plugin add suede-skills@suede-codex

Cursor, Copilot, and Windsurf install through the skills CLI. Every path is on the install page, and every folder is readable first on GitHub.

Proof is part of the release.

First install takes two commands. After the marketplace is added, install is one. Every skill is plain Markdown.

$ /plugin marketplace add JasonColapietro/suede-creator-skills → /plugin install suede-skills@suede All install paths