Get the contracts right before building on them.

All principles · 06 / Protocol before product

A product built on an unstated contract inherits that contract whether anyone names it or not.

In practice

  • Published and versioned

  • Conformance, not contacts

  • No quiet redefinition

Test

If a product's behavior depends on an undocumented contract that only its owner knows, the protocol has been skipped and the trap has been set.

Read the full principle

Principle

Get the contracts right before building on top of them.

Meaning

A product built on an unstated contract inherits that contract whether anyone names it or not. The stated version is inspectable, governable, and changeable; the unstated version is a trap. Protocol-first means the shared contracts (identity, policy, audit, events, migration) are designed, published, and tested before the products that use them. The product implements the protocol and can never quietly replace it.

In practice

  • Shared contracts are documented and versioned before products depend on them.

  • Compatibility is defined by conformance rather than by a relationship with the owner.

  • No product can quietly redefine what the shared layer means.

Product pressure

This principle favors:

  • published, versioned contracts as the design foundation

  • conformance suites that any implementation can run

  • products as reference implementations of the protocol

  • deprecation paths for contracts as well as features

Test

If a product's behavior depends on an undocumented contract that only its owner knows, the protocol has been skipped and the trap has been set.

All principles