vibe.contractlisted
Install: claude install-skill su-record/vibe
# /vibe.contract
**API Contract Drift Detection** — when implementation diverges from the SPEC's API contract, catch it immediately.
> The SPEC is the source of truth. If the implementation silently leaves the SPEC, tests can pass while the contract breaks.
## Usage
```
/vibe.contract extract <feature> # SPEC → contract record at .vibe/contracts/<feature>.md
/vibe.contract check <feature> # contract vs implementation, drift report
/vibe.contract diff <feature> # changed fields since last check
```
## What counts as an "API contract"
A contract = any **interface shape** that external consumers (clients, other services) depend on:
- HTTP endpoint: method + path + request schema + response schema + status codes
- GraphQL: query/mutation name + args + return shape
- Event/message: topic + payload schema
- Exported TypeScript function signature (when explicitly marked as public API)
## Process
Execute the bundled implementation below with subcommand: `$ARGUMENTS`
**Core steps**:
1. **extract**: parse SPEC sections like `## API` / `## Endpoints` / `## Interface` and persist as a structured contract record
2. **check**: locate matching endpoints in the implementation, compare signature/schema, report drift as P1 findings
3. **diff**: compare against the previous snapshot, surface only **changed fields** (noise minimized)
## Drift severity
| Drift type | Severity | Example |
|---|---|---|
| Missing endpoint | P1 | SPEC says `GET /users/:id`, implem