# Capability Declaration

Record: `arch:capability-declaration`
Kind: mechanism
Layer: [Declarative Core](https://banes-lab.com/records/layer/declarative-core.md)
Severity: recommended
Scope: plugin, service, runtime
Canonical: https://banes-lab.com/ontology#arch-capability-declaration

## Repair

- Refactored by: Add Manifest Entry, Add Capability Interface
- Detected by: manifest-code mismatch
- Violated by: capability exists but is undocumented/unregistered
- Measured by: declared/actual capability match rate
- Enforced by: manifest validation, conformance tests

## requires

- [Manifest](https://banes-lab.com/records/lex/manifest.md)
- [Contracts](https://banes-lab.com/records/lex/contracts.md)

## reinforces

- [Runtime Discovery](https://banes-lab.com/records/arch/runtime-discovery.md)
- [Self-Description](https://banes-lab.com/records/lex/self-description.md)

## enables

- [Dynamic Binding](https://banes-lab.com/records/arch/dynamic-binding.md)

## conflicts-with

- [Implicit Capability](https://banes-lab.com/records/lex/implicit-capability.md)

## tensions-with

- [Declaration Drift](https://banes-lab.com/records/lex/declaration-drift.md)

## tensions

- [Capability Declaration Declaration Drift](https://banes-lab.com/records/tension/capability-declaration-declaration-drift.md)

## referenced-by

- [Self-Describing Architecture](https://banes-lab.com/records/arch/self-describing-architecture.md)
- [Manifest-Based Design](https://banes-lab.com/records/arch/manifest-based-design.md)
