Agents / Skills

Data Contract

Skill

Writes the contract between a data producer and its consumers: the schema, the semantics, the freshness and quality promises, and what happens when changes come — so pipelines stop breaking by surprise.

Best for

  • The pipeline that breaks every time the app team ships
  • Formalising what the warehouse may rely on from each source
  • Making 'who broke the dashboard' a question with a contract to check

What you give it

  • The data flow: who produces what, who consumes it for what, and the incidents you are tired of

What you get back

  • The contract: schema with semantics per field, delivery and freshness promises, quality guarantees with their thresholds
  • The change protocol: what the producer may change freely, what needs notice, what needs negotiation — with notice periods
  • Enforcement hooks: the checks that verify the contract at the boundary, so violations page the producer, not the consumer

How it works

  1. Derives the contract from consumer needs backwards: what do the consumers actually rely on — fields, semantics, timing — and what have past breakages taught?
  2. Pins semantics, not just types: the currency, the units, the time zone, the inclusivity of amounts — the incidents live in semantics.
  3. Makes promises measurable: freshness as a deadline, completeness as a threshold, quality as named rules — a contract that cannot be checked is a wish.
  4. Installs the boundary checks that make violations the producer's page instead of the consumer's mystery.

Example

You: The orders feed breaks our finance pipeline monthly. Write the contract.

Result: The contract: the feed's schema with semantics pinned (amount is minor units, tax-inclusive, in the currency column's currency — three past incidents came from assuming otherwise), freshness promised at hourly with a 09:00 completeness gate for finance's daily close, quality floors set (order_id unique, never null, amounts non-negative except the refund type), and the change protocol: additive fields free with notice, type changes and semantic changes need 30 days and a migration path. The boundary checks now run on arrival; the next violation paged the producing team at 08:40 — before finance ever saw it. Breakage since: zero.

Limits — please read

  • A contract binds by agreement; it structures the negotiation but both teams must actually sign.
  • Legacy producers may be unable to promise what consumers need; the contract then documents the gap honestly and the consumers defend accordingly.
  • Contracts per feed multiply; it prioritises the feeds whose breakage costs most.