Skip to content
Back to skills

Api Contract Test Designer

ASecurity

Design contract tests that verify application programming interface (API), command, provider, webhook, and edge-function shapes without user-interface (UI) tests. Specify provider- and consumer-side schema checks, version coverage, and compatibility gates in continuous integration (CI); additive changes still need consumer checks. Use for API/webhook or remote-procedure-call contract verification and schema-drift gates. Do NOT use to design the contract (api-event-architect), test internal bu...

  • 4 stars
  • 0 votes
  • 0 copies
  • 4 views
  • Added September 11, 2026
testingjavascriptgojavatestingapidatabasesecurity

Works with

  • cli
  • api

Security analysis

A100/100

Pro scans all 4 files and shows the line behind each finding

Scanned September 28, 2026

npx -y skills add ModernNomad-98/Project-Aegis --skill api-contract-test-designer --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Api Contract Test Designer?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Api Contract Test Designer
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/modernnomad-98-api-contract-test-designer/badge)](https://www.skillsdirectory.com/skills/modernnomad-98-api-contract-test-designer)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: api-contract-test-designer
description: Design contract tests that verify application programming interface (API), command, provider, webhook, and edge-function shapes without user-interface (UI) tests. Specify provider- and consumer-side schema checks, version coverage, and compatibility gates in continuous integration (CI); additive changes still need consumer checks. Use for API/webhook or remote-procedure-call contract verification and schema-drift gates. Do NOT use to design the contract (api-event-architect), test internal business flows (integration-test-designer), or test browser journeys (playwright-e2e-engineer).
---

# API Contract Test Designer

An application programming interface (API) exposes a contract to consumers.
Here, **UI** means user interface, **RPC** means remote procedure call,
**JSON** means JavaScript Object Notation, **SDK** means software development
kit, **DB** means database, **CI** means continuous integration, and **PR**
means pull request.

## Purpose

Design the verification layer that catches contract drift before consumers
do: schema/shape validation of requests and responses, error-envelope
conformance, version coverage, and backward-compatibility gates that fail CI
on breaking diffs. The contract itself (resources, versioning policy,
webhook envelopes) is designed by the shipped `api-event-architect` — this
skill builds the tests that prove implementations honor it, from both the
provider side (we produce what we promised) and the consumer side (we
tolerate what providers actually send).

## Use When

- Use when: asked to contract-test an API, command surface, webhook feed,
  RPC, or edge function — with no UI in the loop.
- Use when: consumers/partners keep breaking on releases and drift must be
  gated in CI.
- Use when: verifying backward compatibility of a proposed API change
  (additive vs breaking) before it ships.
- Use when: our system CONSUMES a third-party provider and fakes/recordings
  must be proven faithful to the real provider shape.
- Do NOT use when: the ask is to design or overhaul the contract — routes,
  versioning/deprecation policy, idempotency, webhook envelope — that is
  `api-event-architect`; this skill takes its output as the source of truth.
- Do NOT use when: the ask is business flow through real internal boundaries
  (service→DB→permissions) — `integration-test-designer`; contract checks
  shape/compatibility, not end-to-end behavior.
- Do NOT use when: authorization/tenant-isolation properties of the API are
  in question — the shipped `multi-tenant-security-tester`.
- Do NOT use when: a browser journey is involved — `playwright-e2e-engineer`.

## Inputs to Inspect

1. The contract source of truth: OpenAPI/JSON Schema/zod/protobuf definitions,
   `api-event-architect` output, published docs, or — if none exists — the
   de-facto shapes consumers rely on (and flag the missing contract).
2. The surfaces: endpoints, commands, webhooks, edge functions; their
   versions in the wild and the deprecation state of each.
3. Consumers: internal apps, partners, SDKs — what subset of the contract
   each actually uses (drives compatibility severity).
4. Provider dependencies we consume: which third-party shapes our fakes/
   recordings assume (ties to `integration-test-designer`'s faked seams).
5. CI reality: where schema artifacts live, how diffs could be computed per
   PR.

## Workflow

1. **Pin the contract source of truth per surface.** Machine-readable schema
   preferred. No schema anywhere → the first deliverable is extracting the
   de-facto contract into one (flagged as an assumption to confirm), not
   testing against vibes.
2. **Assign roles per surface:** provider-side tests (our responses/webhook
   payloads validate against the published schema — status codes, required
   fields, types, nullability, error envelope) and consumer-side tests (our
   client tolerates documented variation: optional fields absent, unknown
   fields present, documented error shapes). Role patterns in
   [references/contract-test-patterns.md](references/contract-test-patterns.md).
3. **Design schema-validation tests:** for each surface × version — valid
   request accepted; invalid request rejected with the CONTRACTED error
   envelope; response validates against schema (success AND error paths);
   webhook payloads validate before send.
4. **Design the compatibility gate:** schema diff per PR classified by rule —
   additive (new optional field, new endpoint) is a pass candidate only
   after consumer-side compatibility tests confirm actual consumers tolerate
   it; breaking (removed/renamed field, type change, new required field,
   narrowed enum) fails unless a new version + deprecation path per the
   contract's policy exists.
5. **Cover version coverage explicitly:** every version still in its support
   window has provider-side tests; sunset versions' tests retire WITH the
   version, via `regression-suite-curator`.
6. **Keep fakes faithful:** consumer-side recordings/fixtures used by
   integration suites are re-validated against the provider schema on a
   schedule, so seams don't drift silently.
7. **Define CI placement & artifacts:** contract suite on PR (blocking),
   schema-diff report as PR artifact, provider re-validation cadence; hand
   implementation off with tool choices per the automation blueprint.

## Output Format

```
CONTRACT TEST DESIGN — <surface(s)>
Contract source of truth: <schema artifact per surface + gaps flagged>
Roles: <surface → provider-side / consumer-side obligations>
Schema validation specs:
  <id> — <surface × version> — <request|response|webhook|error-envelope>
       — validates <schema ref> — negatives <invalid input → contracted error>
Compatibility gate: <additive candidate + consumer checks / breaking fail + version policy hook>
Version coverage: <versions in support window → specs; retiring versions noted>
Fake-fidelity plan: <which fixtures/recordings re-validate against providers, cadence>
CI placement: <PR blocking suite, diff artifact, scheduled re-validation>
Handoffs: <implementation → engineer; contract redesign gaps → api-event-architect;
          flow behavior → integration-test-designer>
Exit criteria: <all surfaces schema-pinned, gate active, versions covered>
```

## Validation Checklist

- [ ] Every surface has a pinned machine-readable contract or a flagged
      extraction task — no testing against undocumented vibes.
- [ ] Provider-side AND consumer-side roles assigned explicitly per surface.
- [ ] Error envelopes tested, not just success shapes.
- [ ] Breaking-vs-additive rules enumerated and wired as a CI gate.
- [ ] Every in-support version covered; retirement path via curator noted.
- [ ] Fake/recording fidelity re-validation scheduled.
- [ ] No business-flow assertions smuggled in (that's integration's layer).
- [ ] No UI tests anywhere in the design.

## Gotchas

- Testing only happy-path response shapes misses the most common drift:
  error envelopes change and consumers' error handling breaks silently.
- A schema that nobody generates from or validates against goes stale the
  week after it's written — the gate must run in CI or the contract is
  decorative.
- "Additive" changes can still break consumers that use strict/closed
  deserialization — consumer-side tolerance tests catch what diff rules
  can't see.
- Contract tests that call through the full stack with seeded data are
  integration tests wearing a badge — keep them at the schema boundary
  (handler/serializer level or recorded transport) so they stay fast and
  unambiguous.
- Webhooks drift more than APIs (no consumer request to fail loudly) —
  validate payloads at send time in the suite, and signature/envelope fields
  per the `api-event-architect` policy.

## Stop Conditions

- No contract artifact exists AND consumers can't be identified → extracting
  a de-facto contract would be guesswork about what matters; ask for the
  consumer list or the authoritative doc first.
- The observed implementation and the published contract disagree → that is
  a `source-of-truth-reconciler` decision (fix impl vs re-version contract),
  not a silent test-to-implementation.
- A required change is actually contract DESIGN (new versioning policy,
  envelope) → route to `api-event-architect` before writing verification
  for a contract that's about to change.
- Asked to also implement/run the suite → hand off; this skill designs.

## Supporting Files

- [references/contract-test-patterns.md](references/contract-test-patterns.md) —
  provider/consumer role patterns, breaking-change rule table,
  error-envelope test catalog, fake-fidelity recipes.
- `evals/evals.json` — trigger + behavior cases.
- `evals/trigger-evals.json` — discrimination against the shipped
  `api-event-architect` (designs contracts) and `integration-test-designer`
  (flow vs shape), within the test-level cluster.

Files in this skill

  • SKILL.md8.7 KB
  • evals/evals.json2.8 KB
  • evals/trigger-evals.json2.2 KB
  • references/contract-test-patterns.md2.5 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.