contracts/README.md
Storage Contracts
Machine-readable contract artifacts for accepted and draft specifications live here.
Storage Contracts v0
storage-ports.v0.json— canonical machine-readable manifest for storage port capabilities and guarantees fromdocs/specs/storage-ports.v0.mdstorage-ports.v0.schema.json— JSON Schema for the storage ports manifeststorage-adapter-capabilities.v0.schema.json— JSON Schema for adapter capability descriptors required by the storage ports specexamples/storage-adapter-capabilities.pgvector.example.v0.json— example descriptor for a Postgres + pgvector style adapterexamples/storage-adapter-capabilities.local-dev.example.v0.json— example descriptor for a local development adapter
Contract Rules
- Prose specification remains source of truth when conflicts exist
- Contract files must be versioned (
*.v0.*) and additive for non-breaking changes - Breaking contract changes require a new major spec version and corresponding contract artifacts
Validation
Run local validation:
python3 docs/contracts/validate_storage_contracts.py
Run bundle validation via CLI:
python3 -m docs.contracts.contract_cli bundle --root docs/contracts
Run adapter descriptor validation via CLI:
python3 -m docs.contracts.contract_cli adapter --file docs/contracts/examples/storage-adapter-capabilities.pgvector.example.v0.json --name pgvector
Run validator tests:
python3 -m unittest tests/contracts/test_validate_storage_contracts.py tests/contracts/test_contract_validation_library.py tests/contracts/test_contract_cli.py