# Behavior Contracts

> Keep multi-platform products behaviorally one product: write platform-neutral behavior contracts per form/primitive, let each kit satisfy them natively, audit contract drift (not screenshots). Use when adding a second surface (web/iOS/macOS), when parity tickets pile up, when lightboxes/composers fork, or the user asks for behavior contracts / platform parity / kit drift. NOT for single-platform apps or pure visual QA.

- Skill: `tjcages/behavior-contracts` (Agent Skill, multi-file: 4 files)
- Install (CLI): `npx skillmds@latest add tjcages/behavior-contracts`
- Raw SKILL.md: https://api.skillmd.com/api/skills/tjcages/behavior-contracts/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Security
- Author: tjcages (https://skillmd.com/u/tjcages)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/tjcages/behavior-contracts

---


# Behavior contracts

Chat: [RESPONSE.md](./RESPONSE.md). Full method: [METHODOLOGY.md](./METHODOLOGY.md).

## Operating order

### 1. Need contracts? (§1)

One platform forever → skip. Second surface or parity pile-up → continue.

### 2. WHAT/HOW clear? (§0)

Domain forms vs kit presentation. No WHAT nouns → `constitution-first` first.

### 3. Author contracts (§4)

Per form: name · verbs (≤12) · invariants · kit owners · 90/10 · one parity check.

### 4. Install (§3)

Constitution chapter and/or `docs/behavior-contracts.md`, linked from agent instructions.

### 5. Drift audit (§6)

Verb × platform = present / partial / missing. File gaps. Log EXAMPLES.md.

### 6. Score (§8)

≥12/16, no 0 on #1–#5.

### 7. Hand off

New surfaces in a migration → `lossless-migration` phase rules.
AI accept/diff verbs → `accept-gated-ai`.

## Out of scope

Pixel-matching. Shared-code mandates. Single-platform kits. Building Socials UI in this pack’s name.

