# Self-Describing Architecture

Record: `arch:self-describing-architecture`
Kind: principle
Layer: [Declarative Core](https://banes-lab.com/records/layer/declarative-core.md)
Severity: contextual
Scope: system, runtime, integration
Canonical: https://banes-lab.com/ontology#arch-self-describing-architecture

## Repair

- Refactored by: Add Manifest, Add Metadata, Add Schema
- Detected by: undocumented runtime capability
- Violated by: behavior not represented in metadata/contracts
- Measured by: metadata coverage
- Enforced by: manifest validation, metadata tests

## requires

- [Metadata](https://banes-lab.com/records/lex/metadata.md)
- [Capability Declaration](https://banes-lab.com/records/arch/capability-declaration.md)

## reinforces

- [Discoverability](https://banes-lab.com/records/lex/discoverability.md)
- [Runtime Discovery](https://banes-lab.com/records/arch/runtime-discovery.md)

## enables

- [Plugin Architecture](https://banes-lab.com/records/arch/plugin-architecture.md)
- [Automation](https://banes-lab.com/records/lex/automation.md)

## conflicts-with

- [Hidden Runtime Behavior](https://banes-lab.com/records/lex/hidden-runtime-behavior.md)

## tensions-with

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

## tensions

- [Self-Describing Architecture Metadata Drift](https://banes-lab.com/records/tension/metadata-drift-self-describing-architecture.md)

## referenced-by

- [Manifest-Based Design](https://banes-lab.com/records/arch/manifest-based-design.md)

## Evidence in the code

- [ANATOMY](https://banes-lab.com/source/tree/core/assets/anatomy.generated.ts.md)
- [ONTOLOGY](https://banes-lab.com/source/tree/core/assets/ontology.generated.ts.md)
- [VOCABULARY](https://banes-lab.com/source/tree/core/assets/vocabulary.generated.ts.md)
- [core/assets](https://banes-lab.com/anatomy/tree/folder-core-assets.md)
- [anatomyChapter](https://banes-lab.com/source/tree/domain/converters/anatomy.fragment.converter.ts.md)
