# The test surfaces

> The test surfaces are what a system can be wrong about.

Page: Ontology · Reasoning
Canonical: https://banes-lab.com/ontology/reasoning#the-test-surfaces

The test surfaces are what a system can be wrong about. Each is a dimension seen through a lens, listed with the invariant that must hold, the techniques that observe it, the predicate and what grounds it, the evidence it requires and the verdicts it can return. The architecture page reads the same grid in [what can drift, seen through how it drifts](https://banes-lab.com/software-architecture/coverage/what-can-drift-seen-through-how-it-drifts.md).

### semantic-correctness

- Dimension: [meaning](https://banes-lab.com/records/reason/dimension-meaning.md)
- Lens: [semantic](https://banes-lab.com/records/reason/lens-semantic.md)
- Invariant: [correct-outputs](https://banes-lab.com/records/reason/invariant-correct-outputs.md)

Details

Failure modes
wrong value, incorrect algorithm, wrong computation

Techniques
[unit-testing](https://banes-lab.com/records/reason/technique-unit-testing.md), [property-based-testing](https://banes-lab.com/records/reason/technique-property-based-testing.md), [differential-testing](https://banes-lab.com/records/reason/technique-differential-testing.md), [assertion-checking](https://banes-lab.com/records/reason/technique-assertion-checking.md)

Predicate grounds
[ver-ground-truth](https://banes-lab.com/records/reason/node-ver-ground-truth.md)

Evidence
test-result · required

Evidence grounds
[ver-evidence](https://banes-lab.com/records/reason/node-ver-evidence.md)

Verdicts
pass, fail, unknown

Predicate · equivalence

```text
output(input) = expected(input)
```

### functional-correctness

- Dimension: [function](https://banes-lab.com/records/reason/dimension-function.md)
- Lens: [behavioural](https://banes-lab.com/records/reason/lens-behavioural.md)
- Invariant: [correct-state-evolution](https://banes-lab.com/records/reason/invariant-correct-state-evolution.md)

Details

Failure modes
invalid workflow, missing transition, incorrect business rule

Techniques
[integration-testing](https://banes-lab.com/records/reason/technique-integration-testing.md), [model-checking](https://banes-lab.com/records/reason/technique-model-checking.md)

Predicate grounds
[ver-ground-truth](https://banes-lab.com/records/reason/node-ver-ground-truth.md)

Evidence
test-result · required

Evidence grounds
[ver-evidence](https://banes-lab.com/records/reason/node-ver-evidence.md)

Verdicts
pass, fail, unknown

Predicate · invariant

```text
transition in allowedTransitions
```

### state-correctness

- Dimension: [state](https://banes-lab.com/records/reason/dimension-state.md)
- Lens: [sequential](https://banes-lab.com/records/reason/lens-sequential.md)
- Invariant: [valid-state-transitions](https://banes-lab.com/records/reason/invariant-valid-state-transitions.md)

Details

Failure modes
invalid state, broken state transitions, violated lifecycle rules

Techniques
[assertion-checking](https://banes-lab.com/records/reason/technique-assertion-checking.md), [property-based-testing](https://banes-lab.com/records/reason/technique-property-based-testing.md)

Predicate grounds
[ver-ground-truth](https://banes-lab.com/records/reason/node-ver-ground-truth.md)

Evidence
test-result · required

Evidence grounds
[ver-evidence](https://banes-lab.com/records/reason/node-ver-evidence.md)

Verdicts
pass, fail, unknown

Predicate · temporal-order

```text
state[t+1] in next(state[t])
```

### interface-correctness

- Dimension: [structure](https://banes-lab.com/records/reason/dimension-structure.md)
- Lens: [structural](https://banes-lab.com/records/reason/lens-structural.md)
- Invariant: [valid-interfaces-and-contracts](https://banes-lab.com/records/reason/invariant-valid-interfaces-and-contracts.md)

Details

Failure modes
invalid input/output shape, schema mismatch, contract violation

Techniques
[runtime-validation](https://banes-lab.com/records/reason/technique-runtime-validation.md), [contract-testing](https://banes-lab.com/records/reason/technique-contract-testing.md)

Predicate grounds
[ver-ground-truth](https://banes-lab.com/records/reason/node-ver-ground-truth.md)

Evidence
test-result · required

Evidence grounds
[ver-evidence](https://banes-lab.com/records/reason/node-ver-evidence.md)

Verdicts
pass, fail, unknown

Predicate · schema

```text
payload models declaredSchema
```

### interaction-correctness

- Dimension: [relation](https://banes-lab.com/records/reason/dimension-relation.md)
- Lens: [relational](https://banes-lab.com/records/reason/lens-relational.md)
- Invariant: [correct-interactions](https://banes-lab.com/records/reason/invariant-correct-interactions.md)

Details

Failure modes
wrong API response, incorrect UI behaviour, invalid component communication

Techniques
[end-to-end-testing](https://banes-lab.com/records/reason/technique-end-to-end-testing.md), [contract-testing](https://banes-lab.com/records/reason/technique-contract-testing.md), [integration-testing](https://banes-lab.com/records/reason/technique-integration-testing.md)

Predicate grounds
[ver-ground-truth](https://banes-lab.com/records/reason/node-ver-ground-truth.md)

Evidence
test-result · required

Evidence grounds
[ver-evidence](https://banes-lab.com/records/reason/node-ver-evidence.md)

Verdicts
pass, fail, unknown

Predicate · equivalence

```text
response = contract(request)
```

### temporal-correctness

- Dimension: [time](https://banes-lab.com/records/reason/dimension-time.md)
- Lens: [temporal](https://banes-lab.com/records/reason/lens-temporal.md)
- Invariant: [acceptable-execution-time](https://banes-lab.com/records/reason/invariant-acceptable-execution-time.md)

Details

Failure modes
timeout, deadline miss, stale data, starvation

Techniques
[load-testing](https://banes-lab.com/records/reason/technique-load-testing.md), [monitoring](https://banes-lab.com/records/reason/technique-monitoring.md), [tracing](https://banes-lab.com/records/reason/technique-tracing.md)

Predicate grounds
[ver-ground-truth](https://banes-lab.com/records/reason/node-ver-ground-truth.md)

Evidence
measurement · required

Evidence grounds
[ver-evidence](https://banes-lab.com/records/reason/node-ver-evidence.md)

Verdicts
pass, fail, unknown

Predicate · bound

```text
elapsed <= deadline
```

### concurrency-correctness

- Dimension: [behaviour](https://banes-lab.com/records/reason/dimension-behaviour.md)
- Lens: [temporal](https://banes-lab.com/records/reason/lens-temporal.md)
- Invariant: [safe-concurrent-behaviour](https://banes-lab.com/records/reason/invariant-safe-concurrent-behaviour.md)

Details

Failure modes
race conditions, deadlocks, livelocks, ordering failures

Techniques
[stress-testing](https://banes-lab.com/records/reason/technique-stress-testing.md), [deterministic-replay](https://banes-lab.com/records/reason/technique-deterministic-replay.md)

Predicate grounds
[ver-ground-truth](https://banes-lab.com/records/reason/node-ver-ground-truth.md)

Evidence
runtime-observation · required

Evidence grounds
[ver-evidence](https://banes-lab.com/records/reason/node-ver-evidence.md)

Verdicts
pass, fail, unknown

Predicate · invariant

```text
for-all interleavings: linearizable(history)
```

### memory-correctness

- Dimension: [composition](https://banes-lab.com/records/reason/dimension-composition.md)
- Lens: [evolutionary](https://banes-lab.com/records/reason/lens-evolutionary.md)
- Invariant: [controlled-memory-usage](https://banes-lab.com/records/reason/invariant-controlled-memory-usage.md)

Details

Failure modes
memory leaks, excessive allocation, fragmentation, retention bugs

Techniques
[heap-analysis](https://banes-lab.com/records/reason/technique-heap-analysis.md), [profiling](https://banes-lab.com/records/reason/technique-profiling.md)

Predicate grounds
[ver-ground-truth](https://banes-lab.com/records/reason/node-ver-ground-truth.md)

Evidence
measurement · required

Evidence grounds
[ver-evidence](https://banes-lab.com/records/reason/node-ver-evidence.md)

Verdicts
pass, fail, unknown

Predicate · bound

```text
liveSet bounded as t grows and retained delta approaches 0
```

### resource-correctness

- Dimension: [composition](https://banes-lab.com/records/reason/dimension-composition.md)
- Lens: [behavioural](https://banes-lab.com/records/reason/lens-behavioural.md)
- Invariant: [acceptable-resource-consumption](https://banes-lab.com/records/reason/invariant-acceptable-resource-consumption.md)

Details

Failure modes
file/socket/connection/handle leaks

Techniques
[monitoring](https://banes-lab.com/records/reason/technique-monitoring.md), [assertion-checking](https://banes-lab.com/records/reason/technique-assertion-checking.md)

Predicate grounds
[ver-ground-truth](https://banes-lab.com/records/reason/node-ver-ground-truth.md)

Evidence
runtime-observation · required

Evidence grounds
[ver-evidence](https://banes-lab.com/records/reason/node-ver-evidence.md)

Verdicts
pass, fail, unknown

Predicate · absence

```text
acquired = released (no leaked handles)
```

### performance-correctness

- Dimension: [scale](https://banes-lab.com/records/reason/dimension-scale.md)
- Lens: [statistical](https://banes-lab.com/records/reason/lens-statistical.md)
- Invariant: [acceptable-execution-time](https://banes-lab.com/records/reason/invariant-acceptable-execution-time.md)

Details

Failure modes
slow algorithms, excessive CPU, high latency, throughput degradation

Techniques
[profiling](https://banes-lab.com/records/reason/technique-profiling.md), [load-testing](https://banes-lab.com/records/reason/technique-load-testing.md)

Predicate grounds
[ver-ground-truth](https://banes-lab.com/records/reason/node-ver-ground-truth.md)

Evidence
measurement · required

Evidence grounds
[ver-evidence](https://banes-lab.com/records/reason/node-ver-evidence.md)

Verdicts
pass, fail, unknown

Predicate · bound

```text
latency_p99 <= budget and throughput >= floor
```

### reliability-correctness

- Dimension: [probability](https://banes-lab.com/records/reason/dimension-probability.md)
- Lens: [anomaly](https://banes-lab.com/records/reason/lens-anomaly.md)
- Invariant: [reliability-under-faults](https://banes-lab.com/records/reason/invariant-reliability-under-faults.md)

Details

Failure modes
crashes, unhandled exceptions, process termination

Techniques
[chaos-testing](https://banes-lab.com/records/reason/technique-chaos-testing.md), [fault-injection](https://banes-lab.com/records/reason/technique-fault-injection.md), [monitoring](https://banes-lab.com/records/reason/technique-monitoring.md)

Predicate grounds
[ver-ground-truth](https://banes-lab.com/records/reason/node-ver-ground-truth.md)

Evidence
runtime-observation · required

Evidence grounds
[ver-evidence](https://banes-lab.com/records/reason/node-ver-evidence.md)

Verdicts
pass, fail, unknown

Predicate · absence

```text
no input leads to an unhandled fault
```

### availability-correctness

- Dimension: [probability](https://banes-lab.com/records/reason/dimension-probability.md)
- Lens: [temporal](https://banes-lab.com/records/reason/lens-temporal.md)
- Invariant: [availability-under-stress](https://banes-lab.com/records/reason/invariant-availability-under-stress.md)

Details

Failure modes
service outage, cascading failure, degraded service

Techniques
[chaos-testing](https://banes-lab.com/records/reason/technique-chaos-testing.md), [fault-injection](https://banes-lab.com/records/reason/technique-fault-injection.md)

Predicate grounds
[ver-ground-truth](https://banes-lab.com/records/reason/node-ver-ground-truth.md)

Evidence
runtime-observation · required

Evidence grounds
[ver-evidence](https://banes-lab.com/records/reason/node-ver-evidence.md)

Verdicts
pass, fail, unknown

Predicate · bound

```text
uptime >= SLO under the declared fault set
```

### consistency-correctness

- Dimension: [relation](https://banes-lab.com/records/reason/dimension-relation.md)
- Lens: [statistical](https://banes-lab.com/records/reason/lens-statistical.md)
- Invariant: [consistency-across-components](https://banes-lab.com/records/reason/invariant-consistency-across-components.md)

Details

Failure modes
stale cache, divergent replicas, invalid synchronization

Techniques
[differential-testing](https://banes-lab.com/records/reason/technique-differential-testing.md), [assertion-checking](https://banes-lab.com/records/reason/technique-assertion-checking.md)

Predicate grounds
[ver-ground-truth](https://banes-lab.com/records/reason/node-ver-ground-truth.md)

Evidence
test-result · required

Evidence grounds
[ver-evidence](https://banes-lab.com/records/reason/node-ver-evidence.md)

Verdicts
pass, fail, unknown

Predicate · invariant

```text
for-all replicas: converge(state)
```

### data-correctness

- Dimension: [identity](https://banes-lab.com/records/reason/dimension-identity.md)
- Lens: [structural](https://banes-lab.com/records/reason/lens-structural.md)
- Invariant: [correct-outputs](https://banes-lab.com/records/reason/invariant-correct-outputs.md)

Details

Failure modes
corrupted persistence, invalid migrations, duplicate records

Techniques
[assertion-checking](https://banes-lab.com/records/reason/technique-assertion-checking.md), [integration-testing](https://banes-lab.com/records/reason/technique-integration-testing.md)

Predicate grounds
[ver-ground-truth](https://banes-lab.com/records/reason/node-ver-ground-truth.md)

Evidence
test-result · required

Evidence grounds
[ver-evidence](https://banes-lab.com/records/reason/node-ver-evidence.md)

Verdicts
pass, fail, unknown

Predicate · invariant

```text
persisted = written and migrate then inverse = identity
```

### numerical-correctness

- Dimension: [scale](https://banes-lab.com/records/reason/dimension-scale.md)
- Lens: [anomaly](https://banes-lab.com/records/reason/lens-anomaly.md)
- Invariant: [numerical-validity](https://banes-lab.com/records/reason/invariant-numerical-validity.md)

Details

Failure modes
overflow, precision loss, NaN propagation

Techniques
[property-based-testing](https://banes-lab.com/records/reason/technique-property-based-testing.md), [static-analysis](https://banes-lab.com/records/reason/technique-static-analysis.md)

Predicate grounds
[ver-ground-truth](https://banes-lab.com/records/reason/node-ver-ground-truth.md)

Evidence
analysis-report · required

Evidence grounds
[ver-evidence](https://banes-lab.com/records/reason/node-ver-evidence.md)

Verdicts
pass, fail, unknown

Predicate · invariant

```text
result is finite and not overflow and not NaN
```

### security-correctness

- Dimension: [cause](https://banes-lab.com/records/reason/dimension-cause.md)
- Lens: [causal](https://banes-lab.com/records/reason/lens-causal.md)
- Invariant: [security-boundaries](https://banes-lab.com/records/reason/invariant-security-boundaries.md)

Details

Failure modes
injection, privilege escalation, unsafe deserialization

Techniques
[static-analysis](https://banes-lab.com/records/reason/technique-static-analysis.md), [fuzz-testing](https://banes-lab.com/records/reason/technique-fuzz-testing.md)

Predicate grounds
[ver-ground-truth](https://banes-lab.com/records/reason/node-ver-ground-truth.md)

Evidence
analysis-report · required

Evidence grounds
[ver-evidence](https://banes-lab.com/records/reason/node-ver-evidence.md)

Verdicts
pass, fail, unknown

Predicate · absence

```text
no input yields privilege escalation or injection
```

### determinism-correctness

- Dimension: [novelty](https://banes-lab.com/records/reason/dimension-novelty.md)
- Lens: [anomaly](https://banes-lab.com/records/reason/lens-anomaly.md)
- Invariant: [deterministic-behaviour-where-required](https://banes-lab.com/records/reason/invariant-deterministic-behaviour-where-required.md)

Details

Failure modes
the same input producing different outputs

Techniques
[property-based-testing](https://banes-lab.com/records/reason/technique-property-based-testing.md), [deterministic-replay](https://banes-lab.com/records/reason/technique-deterministic-replay.md)

Predicate grounds
[ver-ground-truth](https://banes-lab.com/records/reason/node-ver-ground-truth.md)

Evidence
test-result · required

Evidence grounds
[ver-evidence](https://banes-lab.com/records/reason/node-ver-evidence.md)

Verdicts
pass, fail, unknown

Predicate · equivalence

```text
f(x) = f(x) across runs
```

### protocol-correctness

- Dimension: [relation](https://banes-lab.com/records/reason/dimension-relation.md)
- Lens: [sequential](https://banes-lab.com/records/reason/lens-sequential.md)
- Invariant: [protocol-compliance](https://banes-lab.com/records/reason/invariant-protocol-compliance.md)

Details

Failure modes
invalid message ordering, malformed communication sequence

Techniques
[contract-testing](https://banes-lab.com/records/reason/technique-contract-testing.md), [model-checking](https://banes-lab.com/records/reason/technique-model-checking.md)

Predicate grounds
[ver-ground-truth](https://banes-lab.com/records/reason/node-ver-ground-truth.md)

Evidence
test-result · required

Evidence grounds
[ver-evidence](https://banes-lab.com/records/reason/node-ver-evidence.md)

Verdicts
pass, fail, unknown

Predicate · temporal-order

```text
messageSeq in protocolGrammar
```

### configuration-correctness

- Dimension: [state](https://banes-lab.com/records/reason/dimension-state.md)
- Lens: [structural](https://banes-lab.com/records/reason/lens-structural.md)
- Invariant: [configuration-validity](https://banes-lab.com/records/reason/invariant-configuration-validity.md)

Details

Failure modes
invalid environment variables, feature flag errors, deployment mismatch

Techniques
[runtime-validation](https://banes-lab.com/records/reason/technique-runtime-validation.md), [static-analysis](https://banes-lab.com/records/reason/technique-static-analysis.md)

Predicate grounds
[ver-ground-truth](https://banes-lab.com/records/reason/node-ver-ground-truth.md)

Evidence
analysis-report · required

Evidence grounds
[ver-evidence](https://banes-lab.com/records/reason/node-ver-evidence.md)

Verdicts
pass, fail, unknown

Predicate · schema

```text
config models configSchema
```

### observability-correctness

- Dimension: [meaning](https://banes-lab.com/records/reason/dimension-meaning.md)
- Lens: [frequency](https://banes-lab.com/records/reason/lens-frequency.md)
- Invariant: [accurate-observability](https://banes-lab.com/records/reason/invariant-accurate-observability.md)

Details

Failure modes
missing logs, incorrect metrics, broken traces

Techniques
[monitoring](https://banes-lab.com/records/reason/technique-monitoring.md), [tracing](https://banes-lab.com/records/reason/technique-tracing.md)

Predicate grounds
[ver-ground-truth](https://banes-lab.com/records/reason/node-ver-ground-truth.md)

Evidence
runtime-observation · required

Evidence grounds
[ver-evidence](https://banes-lab.com/records/reason/node-ver-evidence.md)

Verdicts
pass, fail, unknown

Predicate · invariant

```text
for-all event: emitted and measurable
```

## Links to

- [What can drift, seen through how it drifts](https://banes-lab.com/software-architecture/coverage/what-can-drift-seen-through-how-it-drifts.md)
- [Meaning](https://banes-lab.com/records/reason/dimension-meaning.md)
- [Semantic](https://banes-lab.com/records/reason/lens-semantic.md)
- [Correct Outputs](https://banes-lab.com/records/reason/invariant-correct-outputs.md)
- [Unit Testing](https://banes-lab.com/records/reason/technique-unit-testing.md)
- [Property Based Testing](https://banes-lab.com/records/reason/technique-property-based-testing.md)
- [Differential Testing](https://banes-lab.com/records/reason/technique-differential-testing.md)
- [Assertion Checking](https://banes-lab.com/records/reason/technique-assertion-checking.md)
- [Ver Ground Truth](https://banes-lab.com/records/reason/node-ver-ground-truth.md)
- [Ver Evidence](https://banes-lab.com/records/reason/node-ver-evidence.md)
- [Function](https://banes-lab.com/records/reason/dimension-function.md)
- [Behavioural](https://banes-lab.com/records/reason/lens-behavioural.md)
- [Correct State Evolution](https://banes-lab.com/records/reason/invariant-correct-state-evolution.md)
- [Integration Testing](https://banes-lab.com/records/reason/technique-integration-testing.md)
- [Model Checking](https://banes-lab.com/records/reason/technique-model-checking.md)
- [State](https://banes-lab.com/records/reason/dimension-state.md)
- [Sequential](https://banes-lab.com/records/reason/lens-sequential.md)
- [Valid State Transitions](https://banes-lab.com/records/reason/invariant-valid-state-transitions.md)
- [Structure](https://banes-lab.com/records/reason/dimension-structure.md)
- [Structural](https://banes-lab.com/records/reason/lens-structural.md)
- [Valid Interfaces And Contracts](https://banes-lab.com/records/reason/invariant-valid-interfaces-and-contracts.md)
- [Runtime Validation](https://banes-lab.com/records/reason/technique-runtime-validation.md)
- [Contract Testing](https://banes-lab.com/records/reason/technique-contract-testing.md)
- [Relation](https://banes-lab.com/records/reason/dimension-relation.md)
- [Relational](https://banes-lab.com/records/reason/lens-relational.md)
- [Correct Interactions](https://banes-lab.com/records/reason/invariant-correct-interactions.md)
- [End To End Testing](https://banes-lab.com/records/reason/technique-end-to-end-testing.md)
- [Time](https://banes-lab.com/records/reason/dimension-time.md)
- [Temporal](https://banes-lab.com/records/reason/lens-temporal.md)
- [Acceptable Execution Time](https://banes-lab.com/records/reason/invariant-acceptable-execution-time.md)
- [Load Testing](https://banes-lab.com/records/reason/technique-load-testing.md)
- [Monitoring](https://banes-lab.com/records/reason/technique-monitoring.md)
- [Tracing](https://banes-lab.com/records/reason/technique-tracing.md)
- [Behaviour](https://banes-lab.com/records/reason/dimension-behaviour.md)
- [Safe Concurrent Behaviour](https://banes-lab.com/records/reason/invariant-safe-concurrent-behaviour.md)
- [Stress Testing](https://banes-lab.com/records/reason/technique-stress-testing.md)
- [Deterministic Replay](https://banes-lab.com/records/reason/technique-deterministic-replay.md)
- [Composition](https://banes-lab.com/records/reason/dimension-composition.md)
- [Evolutionary](https://banes-lab.com/records/reason/lens-evolutionary.md)
- [Controlled Memory Usage](https://banes-lab.com/records/reason/invariant-controlled-memory-usage.md)
- [Heap Analysis](https://banes-lab.com/records/reason/technique-heap-analysis.md)
- [Profiling](https://banes-lab.com/records/reason/technique-profiling.md)
- [Acceptable Resource Consumption](https://banes-lab.com/records/reason/invariant-acceptable-resource-consumption.md)
- [Scale](https://banes-lab.com/records/reason/dimension-scale.md)
- [Statistical](https://banes-lab.com/records/reason/lens-statistical.md)
- [Probability](https://banes-lab.com/records/reason/dimension-probability.md)
- [Anomaly](https://banes-lab.com/records/reason/lens-anomaly.md)
- [Reliability Under Faults](https://banes-lab.com/records/reason/invariant-reliability-under-faults.md)
- [Chaos Testing](https://banes-lab.com/records/reason/technique-chaos-testing.md)
- [Fault Injection](https://banes-lab.com/records/reason/technique-fault-injection.md)
- [Availability Under Stress](https://banes-lab.com/records/reason/invariant-availability-under-stress.md)
- [Consistency Across Components](https://banes-lab.com/records/reason/invariant-consistency-across-components.md)
- [Identity](https://banes-lab.com/records/reason/dimension-identity.md)
- [Numerical Validity](https://banes-lab.com/records/reason/invariant-numerical-validity.md)
- [Static Analysis](https://banes-lab.com/records/reason/technique-static-analysis.md)
- [Cause](https://banes-lab.com/records/reason/dimension-cause.md)
- [Causal](https://banes-lab.com/records/reason/lens-causal.md)
- [Security Boundaries](https://banes-lab.com/records/reason/invariant-security-boundaries.md)
- [Fuzz Testing](https://banes-lab.com/records/reason/technique-fuzz-testing.md)
- [Novelty](https://banes-lab.com/records/reason/dimension-novelty.md)
- [Deterministic Behaviour Where Required](https://banes-lab.com/records/reason/invariant-deterministic-behaviour-where-required.md)
- [Protocol Compliance](https://banes-lab.com/records/reason/invariant-protocol-compliance.md)
- [Configuration Validity](https://banes-lab.com/records/reason/invariant-configuration-validity.md)
- [Frequency](https://banes-lab.com/records/reason/lens-frequency.md)
- [Accurate Observability](https://banes-lab.com/records/reason/invariant-accurate-observability.md)

## Linked from

- [What can drift, seen through how it drifts](https://banes-lab.com/software-architecture/coverage/what-can-drift-seen-through-how-it-drifts.md)
