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.