# Fitness Functions

> A mechanism that turns an architecture rule into an executable check the pipeline runs on every change.

Record: `architecture:fitness-functions`
Kind: mechanism
Layer: [Evolution Principles](https://banes-lab.com/records/layer/evolution-principles.md)
Severity: recommended
Scope: codebase, pipeline, architecture
Canonical: https://banes-lab.com/ontology#architecture-fitness-functions

Listed in [Architecture principles](https://banes-lab.com/api/records/architecture.md), after [Gap Analysis](https://banes-lab.com/records/architecture/gap-analysis.md) and before [Quality Attributes](https://banes-lab.com/records/architecture/quality-attributes.md).

## Repair

- Refactored by: Add Fitness Test, Codify Rule
- Detected by: missing executable architecture checks
- Violated by: architecture rule not continuously checked
- Measured by: fitness pass/fail trend
- Enforced by: CI architecture tests

## Requires

- [Measurable Architecture Rule](https://banes-lab.com/records/lexicon/measurable-architecture-rule.md)

## Reinforces

- [Evolutionary Architecture](https://banes-lab.com/records/architecture/evolutionary-architecture.md)

## Enables

- [Automated Architecture Compliance](https://banes-lab.com/records/lexicon/automated-architecture-compliance.md)

## Conflicts with

- [Manual Architecture Review Only](https://banes-lab.com/records/lexicon/manual-architecture-review-only.md)

## In tension with

- [Rule Maintenance](https://banes-lab.com/records/lexicon/rule-maintenance.md)

## Tensions

- [Fitness Functions / Rule Maintenance](https://banes-lab.com/records/tension/fitness-functions-rule-maintenance.md)

## Contracts

- [Enforcement Core](https://banes-lab.com/records/algorithms/enforcement-core.md)

## Severity

- [recommended](https://banes-lab.com/records/vocabulary/severity-recommended.md)

## Category

- [Architecture Review / Evolution / Governance Artifacts](https://banes-lab.com/records/architecture-category/architecture-review-evolution-governance-artifacts.md)

## Reinforced by

- [Stated Invariant](https://banes-lab.com/records/architecture/stated-invariant.md)
- [State-Arity Limit](https://banes-lab.com/records/architecture/state-arity-limit.md)

## Linked from

- [Three encodings](https://banes-lab.com/disciplined-methodology/start/three-encodings.md)
- [The gate holds the line](https://banes-lab.com/disciplined-methodology/build/the-gate-holds-the-line.md)
- [Principles are typed](https://banes-lab.com/software-architecture/principles/principles-are-typed.md)
- [The structural domain](https://banes-lab.com/software-architecture/principles/the-structural-domain.md)
- [From intent to predicate](https://banes-lab.com/software-architecture/coverage/an-architecture-is-its-predicate-set.md)
- [Anti-patterns](https://banes-lab.com/ontology/principles/architecture-category-anti-patterns.md)
- [Core Modular Design](https://banes-lab.com/ontology/principles/architecture-category-core-modular-design.md)
- [Architecture Review / Evolution / Governance Artifacts](https://banes-lab.com/ontology/principles/architecture-category-architecture-review-evolution-governance-artifacts.md)
- [Coordination Surfaces](https://banes-lab.com/ontology/principles/architecture-category-coordination-surfaces.md)
- [Architecture Review Evolution Governance](https://banes-lab.com/ontology/lexicon/lexicon-category-architecture-review-evolution-governance.md)
- [Architectural Clusters](https://banes-lab.com/ontology/algorithms/algorithms-domain-architectural-clusters.md)
- [Severity levels](https://banes-lab.com/ontology/schema/the-vocabulary-severity.md)
- [The resolutions](https://banes-lab.com/ontology/schema/the-resolutions.md)
