This example separates a service's observable behavior from its narrower API boundary.
boundary.config.jsondeclares the component and two slices.service/openapi.yamlbelongs to both the behavior and boundary facets.service/config.jsonbelongs only to the behavior facet.service/version.jsonsupplies the compatibility version.expected.boundary.lock.jsonrecords the expected fingerprints.
| Change | Facets that drift |
|---|---|
| Internal tracked file | exact |
service/config.json |
exact, behavior |
service/openapi.yaml |
exact, behavior, boundary |
Major version in service/version.json |
exact, compat |
The payment-boundary slice follows API shape; payment-behavior follows the broader observable contract.
Install boundver, then run from the boundver repository root:
boundver generate \
--config examples/behavior/boundary.config.json \
--out examples/behavior/expected.boundary.lock.json \
--source working-tree
boundver verify \
--config examples/behavior/boundary.config.json \
--lock examples/behavior/expected.boundary.lock.json \
--source working-treeThese fingerprints detect changes in the declared files; they do not prove runtime compatibility.