Skip to content

Change the contract

Update the authority first

Edit contract/asyncapi.yaml. Register new component messages in the channel map, resolve every local $ref, state required fields once, and preserve symmetric meaning. For additive changes, describe the behavior of an older receiver.

Implement both receiving sides

Update the host decoder/model and each guest that serves the operation. If a guest deliberately lacks the capability, record that posture in docs/contract-coverage.md; do not leave the other direction implicit.

Regenerate the readable projection

scripts/docs-contract

The generated Markdown contains operations, messages, and x-commands. The documentation gate compares it byte-for-byte with a fresh projection.

Test the seam

Add fixtures that originate independently of the decoder under test. Run scripts/test-native, the host conformance suites, scripts/test-docs, and finally scripts/test-all. If the message is assembled across several C writes, add the explicit conformance fixture requested by the failing test.