Capability Coverage (capabilities-coverage.yaml)¶
Every adapter carries a capabilities-coverage.yaml at its root. It is a machine-comparable
declaration of how the adapter stands against the integration capability catalog
(docs/adapter-development/reference/capability-catalog.md).
This is not the framework Thing function library. Rows here are adapter capabilities such as
offline audit recovery, credential management, card formats, arm/disarm, bypass, and
alarms/tampers/troubles/restores. Framework functions like HistoryPoll, StatusPoll, Reader,
Door, Partition, and IntrusionDetector are backing primitives only.
Schema¶
catalog_source: docs/adapter-development/reference/capability-catalog.md
catalog_hash: sha256:ab12cd34ef56
generated: "2026-05-30"
capabilities:
cross_cutting.connection_session:
domain: cross_cutting
catalog_label: "Connection & session"
state: implemented
reason: null
backing_primitives: [ConnectionBase]
evidence: "GxyLogin + Login(41) handshake and encrypted TCP channel"
access.card_formats:
domain: access
catalog_label: "Card formats"
state: intentionally_deferred_by_explicit_user_scope
reason: not_yet_implemented
backing_primitives: [AccessSynchronization, access-model.yaml]
evidence: "Primary CSN/RawHex only; Wiegand/proprietary mapping deferred"
Fields¶
| Field | Required | Values |
|---|---|---|
domain |
always | cross_cutting, access, intrusion, fire, safety, video, io, gateway_native_sdk, or adapter-specific extra domain |
catalog_label |
always | Exact capability label from capability-catalog.md |
state |
always | One Definition-of-Done final state, normalized to snake_case |
reason |
required unless state: implemented |
null, protocol_limitation, device_limitation, not_yet_implemented, out_of_scope, no_framework_mapping, needs_vendor, needs_hardware |
backing_primitives |
always | Framework functions, commands, events, YAML models, or services that express the capability |
evidence |
always | Short protocol/code evidence, one line |
Final States¶
Use the Definition-of-Done states, normalized for YAML:
implementednot_supported_by_protocolnot_supported_by_frameworkblocked_by_missing_or_ambiguous_documentationblocked_by_hardware_only_verificationintentionally_deferred_by_explicit_user_scope
Use partial only when part of a catalog capability is implemented and the remaining part has a
different final state that must be explained in evidence.
Key Names¶
Keys are stable slugs: <domain>.<capability_label_normalized>.
Normalize labels by lowercasing, replacing & with and, replacing / with _, removing
parentheses, and converting other non-alphanumeric separators to single underscores.
Examples:
Connection & session->cross_cutting.connection_and_sessionOffline audit recovery->cross_cutting.offline_audit_recoveryReset & restore->access.reset_and_restoreAlarms / tampers / troubles / restores->intrusion.alarms_tampers_troubles_restores
Merge Rules¶
Review syncs this file as a merge, not a blind regeneration:
- Recompute
catalog_hashfromdocs/adapter-development/reference/capability-catalog.md. - Re-assess
statefrom code,adapter-registration.yaml,access-model.yaml, and adapter docs. - Preserve curated
reasonandevidencewhen the state is unchanged. - If
statechanges, update it and flag the entry for human confirmation ofreason/evidence. - Add catalog-new capabilities for in-scope domains.
- Drop capabilities no longer present in the catalog unless they are adapter-specific extras.
Out Of Scope¶
Do not add framework Thing functions as rows. If a capability is backed by a function, list it under
backing_primitives.