# Architecture Review / Evolution / Governance Artifacts

> Every principle in this category is listed as a record.

Page: Ontology · Principles
Canonical: https://banes-lab.com/ontology#architecture-category-architecture-review-evolution-governance-artifacts

Listed in [Ontology · Principles](https://banes-lab.com/api/pages/ontology/principles.md), after [Error Handling / Resilience](https://banes-lab.com/ontology/principles/architecture-category-error-handling-resilience.md) and before [Metadata / Self-Description / Declarative Systems](https://banes-lab.com/ontology/principles/architecture-category-metadata-self-description-declarative-systems.md).

Every principle in this category is listed as a record. Each record carries its kind, its severity, the scopes it applies at and the layer it lives in, then the edge relations that join it to other records, the records that point back at it, the contracts that answer to it and the tensions it takes part in. The descriptors say how it is violated, detected, measured, repaired and enforced. Where the record carries one, an exemplar shows the shape before and after the principle is applied.

Relations diagram

The relations inside this category.

```mermaid
flowchart LR
n_assessment["Assessment"]
n_architecture_review["Architecture Review"]
n_design_review["Design Review"]
n_code_review["Code Review"]
n_impact_analysis["Impact Analysis"]
n_gap_analysis["Gap Analysis"]
n_fitness_functions["Fitness Functions"]
n_quality_attributes["Quality Attributes"]
n_architecture_decision_records["Architecture Decision Records (ADR)"]
n_evolutionary_architecture["Evolutionary Architecture"]
n_minimum_viable_architecture["Minimum Viable Architecture"]
n_greenfield_development["Greenfield Development"]
n_first_principles_design["First-Principles Design"]
n_reference_architecture["Reference Architecture"]
n_pattern_consistency["Pattern Consistency"]
n_architectural_consistency["Architectural Consistency"]
n_standardization["Standardization"]
n_assessment --> n_quality_attributes
n_architecture_review --> n_architecture_decision_records
n_architecture_review --> n_architectural_consistency
n_fitness_functions --> n_evolutionary_architecture
n_quality_attributes --> n_architecture_review
n_evolutionary_architecture --> n_fitness_functions
n_greenfield_development --> n_first_principles_design
n_reference_architecture --> n_standardization
n_architectural_consistency --> n_pattern_consistency
```

### Assessment

- Kind: [activity](https://banes-lab.com/records/kind/activity.md)
- Category: [Architecture Review / Evolution / Governance Artifacts](https://banes-lab.com/ontology/principles/architecture-category-architecture-review-evolution-governance-artifacts.md)
- Severity: [recommended](https://banes-lab.com/records/vocabulary/severity-recommended.md)
- Scope: codebase, architecture, risk
- Layer: [Evolution Principles](https://banes-lab.com/records/layer/evolution-principles.md)

Details

Definition
The activity of evaluating a codebase or architecture against stated criteria, using collected evidence.

Requires
[Criteria](https://banes-lab.com/records/lexicon/criteria.md), [Evidence](https://banes-lab.com/records/lexicon/evidence.md)

Reinforces
[Governance](https://banes-lab.com/records/architecture/governance.md), [Quality Attributes](https://banes-lab.com/records/architecture/quality-attributes.md)

Enables
[Prioritized Refactoring](https://banes-lab.com/records/lexicon/prioritized-refactoring.md)

In tension with
[Time Cost](https://banes-lab.com/records/lexicon/time-cost.md)

Conflicts with
[Assumption-Based Judgment](https://banes-lab.com/records/lexicon/assumption-based-judgment.md)

Tensions
[Assessment / Time Cost](https://banes-lab.com/records/tension/assessment-time-cost.md)

Violated by
decisions without assessment criteria

Detected by
missing evaluation artifacts

Measured by
assessment coverage

Refactored by
Add Assessment Checklist/Report

Enforced by
review process

Before

```typescript
approveFooArchitecture();
```

After

```typescript
const assessment = assess(fooArchitecture, {
dimensions: ["modularity", "reliability", "security", "operability"],
evidence: collectArchitectureEvidence(fooSystem),
});
requirePassingAssessment(assessment);
```

How it is checked

Checked by
review process

Population
Every architecture change, decision and deviation the review or gate is asked to pass

Freshness
A verdict stands for the change it reviewed and goes stale when the architecture, the criteria or the decision record changes

Refusal
The gate or the reviewer withholds approval, so the change does not merge

Observation
The recorded review, decision record or fitness run attached to the change

Evidence
None, because the catalog states this check as a class, so a watched run belongs to each system that adopts it

Authoritative side
The decision record and the review criteria, which a change is compared against

Depends on
[Criteria](https://banes-lab.com/records/lexicon/criteria.md), [Evidence](https://banes-lab.com/records/lexicon/evidence.md), [Governance](https://banes-lab.com/records/architecture/governance.md), [Quality Attributes](https://banes-lab.com/records/architecture/quality-attributes.md), [Prioritized Refactoring](https://banes-lab.com/records/lexicon/prioritized-refactoring.md)

Shape it refuses
[Assumption-Based Judgment](https://banes-lab.com/records/lexicon/assumption-based-judgment.md)

### Architecture Review

- Kind: [activity](https://banes-lab.com/records/kind/activity.md)
- Category: [Architecture Review / Evolution / Governance Artifacts](https://banes-lab.com/ontology/principles/architecture-category-architecture-review-evolution-governance-artifacts.md)
- Severity: [recommended](https://banes-lab.com/records/vocabulary/severity-recommended.md)
- Scope: system, component, design change
- Layer: [Evolution Principles](https://banes-lab.com/records/layer/evolution-principles.md)

Details

Definition
The activity of examining a structural change against the architecture's criteria and recorded decisions before it is accepted.

Requires
[Architecture Criteria](https://banes-lab.com/records/lexicon/architecture-criteria.md), [Architecture Decision Records (ADR)](https://banes-lab.com/records/architecture/architecture-decision-records.md)

Reinforces
[Architectural Consistency](https://banes-lab.com/records/architecture/architectural-consistency.md)

Enables
[Risk Detection](https://banes-lab.com/records/lexicon/risk-detection.md)

In tension with
[Delivery Speed](https://banes-lab.com/records/lexicon/delivery-speed.md)

Conflicts with
[Unreviewed Structural Change](https://banes-lab.com/records/lexicon/unreviewed-structural-change.md)

Referenced by
[Quality Attributes](https://banes-lab.com/records/architecture/quality-attributes.md)

Tensions
[Architecture Review / Delivery Speed](https://banes-lab.com/records/tension/architecture-review-delivery-speed.md)

Violated by
major architecture change without review

Detected by
unapproved dependency/style changes

Measured by
review coverage

Refactored by
Add Review, Resolve Findings

Enforced by
pull request gates

Before

```typescript
mergeFooDesign();
```

After

```typescript
const review = architectureReview({
context: fooContext,
decisions: fooDecisions,
risks: fooRisks,
qualityAttributes: fooQualityAttributes,
});
review.requireApproval(["architecture-owner", "security-owner"]);
```

How it is checked

Checked by
pull request gates

Population
Every architecture change, decision and deviation the review or gate is asked to pass

Freshness
A verdict stands for the change it reviewed and goes stale when the architecture, the criteria or the decision record changes

Refusal
The gate or the reviewer withholds approval, so the change does not merge

Observation
The recorded review, decision record or fitness run attached to the change

Evidence
None, because the catalog states this check as a class, so a watched run belongs to each system that adopts it

Authoritative side
The decision record and the review criteria, which a change is compared against

Depends on
[Architecture Criteria](https://banes-lab.com/records/lexicon/architecture-criteria.md), [Architecture Decision Records (ADR)](https://banes-lab.com/records/architecture/architecture-decision-records.md), [Architectural Consistency](https://banes-lab.com/records/architecture/architectural-consistency.md), [Risk Detection](https://banes-lab.com/records/lexicon/risk-detection.md)

Shape it refuses
[Unreviewed Structural Change](https://banes-lab.com/records/lexicon/unreviewed-structural-change.md)

### Design Review

- Kind: [activity](https://banes-lab.com/records/kind/activity.md)
- Category: [Architecture Review / Evolution / Governance Artifacts](https://banes-lab.com/ontology/principles/architecture-category-architecture-review-evolution-governance-artifacts.md)
- Severity: [recommended](https://banes-lab.com/records/vocabulary/severity-recommended.md)
- Scope: component, module, feature
- Layer: [Evolution Principles](https://banes-lab.com/records/layer/evolution-principles.md)

Details

Definition
The activity of checking a component or feature design for contracts, failure modes and testability before it is built.

Requires
[Design Criteria](https://banes-lab.com/records/lexicon/design-criteria.md)

Reinforces
[Correctness](https://banes-lab.com/records/architecture/correctness.md), [Maintainability](https://banes-lab.com/records/lexicon/maintainability.md)

Enables
[Early Defect Prevention](https://banes-lab.com/records/lexicon/early-defect-prevention.md)

In tension with
[Iteration Speed](https://banes-lab.com/records/lexicon/iteration-speed.md)

Conflicts with
[Ad-Hoc Design](https://banes-lab.com/records/lexicon/ad-hoc-design.md)

Tensions
[Design Review / Iteration Speed](https://banes-lab.com/records/tension/design-review-iteration-speed.md)

Violated by
complex feature without design check

Detected by
missing design record

Measured by
design review finding rate

Refactored by
Revise Design, Add Boundary/Contract

Enforced by
review checklist

Before

```typescript
implementFooDesign(fooDesign);
```

After

```typescript
const review = designReview(fooDesign, {
contracts: validateContracts,
failureModes: analyzeFailureModes,
testability: assessTestability,
});
if (!review.approved) throw new Error("design rejected");
```

How it is checked

Checked by
review checklist

Population
Every architecture change, decision and deviation the review or gate is asked to pass

Freshness
A verdict stands for the change it reviewed and goes stale when the architecture, the criteria or the decision record changes

Refusal
The gate or the reviewer withholds approval, so the change does not merge

Observation
The recorded review, decision record or fitness run attached to the change

Evidence
None, because the catalog states this check as a class, so a watched run belongs to each system that adopts it

Authoritative side
The decision record and the review criteria, which a change is compared against

Depends on
[Design Criteria](https://banes-lab.com/records/lexicon/design-criteria.md), [Correctness](https://banes-lab.com/records/architecture/correctness.md), [Maintainability](https://banes-lab.com/records/lexicon/maintainability.md), [Early Defect Prevention](https://banes-lab.com/records/lexicon/early-defect-prevention.md)

Shape it refuses
[Ad-Hoc Design](https://banes-lab.com/records/lexicon/ad-hoc-design.md)

### Code Review

- Kind: [activity](https://banes-lab.com/records/kind/activity.md)
- Category: [Architecture Review / Evolution / Governance Artifacts](https://banes-lab.com/ontology/principles/architecture-category-architecture-review-evolution-governance-artifacts.md)
- Severity: [mandatory](https://banes-lab.com/records/vocabulary/severity-mandatory.md)
- Scope: code change
- Layer: [Evolution Principles](https://banes-lab.com/records/layer/evolution-principles.md)

Details

Definition
The activity of having a second party read a code change against review standards before it merges.

Requires
[Review Standards](https://banes-lab.com/records/lexicon/review-standards.md)

Reinforces
[Quality](https://banes-lab.com/records/lexicon/quality.md), [Security](https://banes-lab.com/records/lexicon/security.md), [Consistency](https://banes-lab.com/records/architecture/consistency.md)

Enables
[Defect Detection](https://banes-lab.com/records/lexicon/defect-detection.md)

In tension with
[Throughput](https://banes-lab.com/records/architecture/throughput.md)

Conflicts with
[Direct-to-main Unreviewed Change](https://banes-lab.com/records/lexicon/direct-to-main-unreviewed-change.md)

Tensions
[Code Review / Throughput](https://banes-lab.com/records/tension/code-review-throughput.md)

Violated by
unreviewed production code changes

Detected by
missing approval/review

Measured by
review coverage, defect escape rate

Refactored by
Apply Review Feedback

Enforced by
branch protection

Before

```typescript
git.merge(fooChange);
```

After

```typescript
const review = codeReview(fooChange);
review.require({ approvals: 2, passingChecks: ["tests", "types", "security", "architecture"] });
git.merge(review.approvedCommit);
```

How it is checked

Checked by
branch protection

Population
Every architecture change, decision and deviation the review or gate is asked to pass

Freshness
A verdict stands for the change it reviewed and goes stale when the architecture, the criteria or the decision record changes

Refusal
The gate or the reviewer withholds approval, so the change does not merge

Observation
The recorded review, decision record or fitness run attached to the change

Evidence
None, because the catalog states this check as a class, so a watched run belongs to each system that adopts it

Authoritative side
The decision record and the review criteria, which a change is compared against

Depends on
[Review Standards](https://banes-lab.com/records/lexicon/review-standards.md), [Quality](https://banes-lab.com/records/lexicon/quality.md), [Security](https://banes-lab.com/records/lexicon/security.md), [Consistency](https://banes-lab.com/records/architecture/consistency.md), [Defect Detection](https://banes-lab.com/records/lexicon/defect-detection.md)

Shape it refuses
[Direct-to-main Unreviewed Change](https://banes-lab.com/records/lexicon/direct-to-main-unreviewed-change.md)

### Impact Analysis

- Kind: [activity](https://banes-lab.com/records/kind/activity.md)
- Category: [Architecture Review / Evolution / Governance Artifacts](https://banes-lab.com/ontology/principles/architecture-category-architecture-review-evolution-governance-artifacts.md)
- Severity: [recommended](https://banes-lab.com/records/vocabulary/severity-recommended.md)
- Scope: change, dependency graph, API
- Layer: [Evolution Principles](https://banes-lab.com/records/layer/evolution-principles.md)

Details

Definition
The activity of tracing a change through the dependency graph to find every consumer it affects.

Requires
[Dependency Graph](https://banes-lab.com/records/architecture/dependency-graph.md), [Contracts](https://banes-lab.com/records/lexicon/contracts.md)

Reinforces
[Change Safety](https://banes-lab.com/records/lexicon/change-safety.md)

Enables
[Regression Scope Selection](https://banes-lab.com/records/lexicon/regression-scope-selection.md)

In tension with
[Analysis Overhead](https://banes-lab.com/records/lexicon/analysis-overhead.md)

Conflicts with
[Blind Change](https://banes-lab.com/records/lexicon/blind-change.md)

Referenced by
[Causal Dependency](https://banes-lab.com/records/architecture/causal-dependency.md), [Dependency Graph](https://banes-lab.com/records/architecture/dependency-graph.md)

Tensions
[Impact Analysis / Analysis Overhead](https://banes-lab.com/records/tension/analysis-overhead-impact-analysis.md)

Violated by
breaking dependent behavior without awareness

Detected by
change touching dependencies without impact note

Measured by
affected component count

Refactored by
Add Dependency Map, Add Regression Tests

Enforced by
PR template, dependency tooling

Before

```typescript
renameFooField("name", "label");
```

After

```typescript
const impact = dependencyGraph.impactOf({
contract: "FooV1.name",
change: "rename-to-label",
});
for (const consumer of impact.consumers) requireMigration(consumer);
renameFooField("name", "label");
```

How it is checked

Checked by
PR template, dependency tooling

Population
Every architecture change, decision and deviation the review or gate is asked to pass

Freshness
A verdict stands for the change it reviewed and goes stale when the architecture, the criteria or the decision record changes

Refusal
The gate or the reviewer withholds approval, so the change does not merge

Observation
The recorded review, decision record or fitness run attached to the change

Evidence
None, because the catalog states this check as a class, so a watched run belongs to each system that adopts it

Authoritative side
The decision record and the review criteria, which a change is compared against

Depends on
[Dependency Graph](https://banes-lab.com/records/architecture/dependency-graph.md), [Contracts](https://banes-lab.com/records/lexicon/contracts.md), [Change Safety](https://banes-lab.com/records/lexicon/change-safety.md), [Regression Scope Selection](https://banes-lab.com/records/lexicon/regression-scope-selection.md)

Shape it refuses
[Blind Change](https://banes-lab.com/records/lexicon/blind-change.md)

### Gap Analysis

- Kind: [activity](https://banes-lab.com/records/kind/activity.md)
- Category: [Architecture Review / Evolution / Governance Artifacts](https://banes-lab.com/ontology/principles/architecture-category-architecture-review-evolution-governance-artifacts.md)
- Severity: [contextual](https://banes-lab.com/records/vocabulary/severity-contextual.md)
- Scope: compliance, architecture, capability
- Layer: [Evolution Principles](https://banes-lab.com/records/layer/evolution-principles.md)

Details

Definition
The activity of comparing the current state of a system with its target state and listing each difference.

Requires
[Target State](https://banes-lab.com/records/lexicon/target-state.md), [Current State](https://banes-lab.com/records/lexicon/current-state.md)

Reinforces
[Governance](https://banes-lab.com/records/architecture/governance.md)

Enables
[Remediation Planning](https://banes-lab.com/records/lexicon/remediation-planning.md)

In tension with
[Time Cost](https://banes-lab.com/records/lexicon/time-cost.md)

Conflicts with
[Undefined Target](https://banes-lab.com/records/lexicon/undefined-target.md)

Tensions
[Gap Analysis / Time Cost](https://banes-lab.com/records/tension/gap-analysis-time-cost.md)

Violated by
missing comparison against required controls/principles

Detected by
unknown compliance/architecture status

Measured by
gap count/severity

Refactored by
Add Remediation Plan

Enforced by
governance process

Before

```typescript
declareFooSystemReady();
```

After

```typescript
const target = fooTargetArchitecture();
const current = inspectFooArchitecture();
const gaps = compareArchitecture(current, target);
for (const gap of gaps) assignRemediation(gap);
```

How it is checked

Checked by
governance process

Population
Every architecture change, decision and deviation the review or gate is asked to pass

Freshness
A verdict stands for the change it reviewed and goes stale when the architecture, the criteria or the decision record changes

Refusal
The gate or the reviewer withholds approval, so the change does not merge

Observation
The recorded review, decision record or fitness run attached to the change

Evidence
None, because the catalog states this check as a class, so a watched run belongs to each system that adopts it

Authoritative side
The decision record and the review criteria, which a change is compared against

Depends on
[Target State](https://banes-lab.com/records/lexicon/target-state.md), [Current State](https://banes-lab.com/records/lexicon/current-state.md), [Governance](https://banes-lab.com/records/architecture/governance.md), [Remediation Planning](https://banes-lab.com/records/lexicon/remediation-planning.md)

Shape it refuses
[Undefined Target](https://banes-lab.com/records/lexicon/undefined-target.md)

### Fitness Functions

- Kind: [mechanism](https://banes-lab.com/records/kind/mechanism.md)
- Category: [Architecture Review / Evolution / Governance Artifacts](https://banes-lab.com/ontology/principles/architecture-category-architecture-review-evolution-governance-artifacts.md)
- Severity: [recommended](https://banes-lab.com/records/vocabulary/severity-recommended.md)
- Scope: codebase, pipeline, architecture
- Layer: [Evolution Principles](https://banes-lab.com/records/layer/evolution-principles.md)

Details

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

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)

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

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

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

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

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

Violated by
architecture rule not continuously checked

Detected by
missing executable architecture checks

Measured by
fitness pass/fail trend

Refactored by
Add Fitness Test, Codify Rule

Enforced by
CI architecture tests

Before

```typescript
architectureGuidelines.write("Foo domain must not import infrastructure");
```

After

```typescript
const fitness = forbidImports({ from: "src/foo/domain/**", to: "src/foo/infrastructure/**" });
pipeline.enforce(fitness);
```

How it is checked

Checked by
CI architecture tests

Population
Every architecture change, decision and deviation the review or gate is asked to pass

Freshness
A verdict stands for the change it reviewed and goes stale when the architecture, the criteria or the decision record changes

Refusal
The gate or the reviewer withholds approval, so the change does not merge

Observation
The recorded review, decision record or fitness run attached to the change

Evidence
None, because the catalog states this check as a class, so a watched run belongs to each system that adopts it

Authoritative side
The decision record and the review criteria, which a change is compared against

Depends on
[Measurable Architecture Rule](https://banes-lab.com/records/lexicon/measurable-architecture-rule.md), [Evolutionary Architecture](https://banes-lab.com/records/architecture/evolutionary-architecture.md), [Automated Architecture Compliance](https://banes-lab.com/records/lexicon/automated-architecture-compliance.md)

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

### Quality Attributes

- Kind: [model](https://banes-lab.com/records/kind/model.md)
- Category: [Architecture Review / Evolution / Governance Artifacts](https://banes-lab.com/ontology/principles/architecture-category-architecture-review-evolution-governance-artifacts.md)
- Severity: [recommended](https://banes-lab.com/records/vocabulary/severity-recommended.md)
- Scope: system, service, codebase
- Layer: [Performance Core](https://banes-lab.com/records/layer/performance-core.md)

Details

Definition
A conceptual representation of the non-functional properties a system must meet, each stated as a measurable scenario.

Requires
[Attribute Scenarios](https://banes-lab.com/records/lexicon/attribute-scenarios.md)

Reinforces
[Architecture Review](https://banes-lab.com/records/architecture/architecture-review.md)

Enables
[Trade-Off Analysis](https://banes-lab.com/records/lexicon/trade-off-analysis.md)

In tension with
[Competing Attributes](https://banes-lab.com/records/lexicon/competing-attributes.md)

Conflicts with
[Feature-Only Design](https://banes-lab.com/records/architecture/feature-only-design.md)

Referenced by
[Assessment](https://banes-lab.com/records/architecture/assessment.md)

Tensions
[Quality Attributes / Competing Attributes](https://banes-lab.com/records/tension/competing-attributes-quality-attributes.md)

Violated by
no explicit nonfunctional requirements

Detected by
missing quality scenarios/SLOs

Measured by
quality attribute scenario pass rate

Refactored by
Define Scenarios, Add Fitness Functions

Enforced by
[architecture review](https://banes-lab.com/records/architecture/architecture-review.md)

Before

```typescript
designFooService();
```

After

```typescript
const attributes = defineQualityAttributes({
availability: "99.95%",
p95LatencyMs: 200,
recoveryTimeMinutes: 5,
dataLossSeconds: 0,
});
designFooService(attributes);
```

How it is checked

Checked by
architecture review

Population
Every architecture change, decision and deviation the review or gate is asked to pass

Freshness
A verdict stands for the change it reviewed and goes stale when the architecture, the criteria or the decision record changes

Refusal
The gate or the reviewer withholds approval, so the change does not merge

Observation
The recorded review, decision record or fitness run attached to the change

Evidence
None, because the catalog states this check as a class, so a watched run belongs to each system that adopts it

Authoritative side
The decision record and the review criteria, which a change is compared against

Depends on
[Attribute Scenarios](https://banes-lab.com/records/lexicon/attribute-scenarios.md), [Architecture Review](https://banes-lab.com/records/architecture/architecture-review.md), [Trade-Off Analysis](https://banes-lab.com/records/lexicon/trade-off-analysis.md)

Shape it refuses
[Feature-Only Design](https://banes-lab.com/records/architecture/feature-only-design.md)

### Architecture Decision Records (ADR)

- Kind: [artifact](https://banes-lab.com/records/kind/artifact.md)
- Category: [Architecture Review / Evolution / Governance Artifacts](https://banes-lab.com/ontology/principles/architecture-category-architecture-review-evolution-governance-artifacts.md)
- Severity: [recommended](https://banes-lab.com/records/vocabulary/severity-recommended.md)
- Scope: architecture decision
- Aliases: ADRs
- Layer: [Evolution Principles](https://banes-lab.com/records/layer/evolution-principles.md)

Details

Definition
A formal definition of one architecture decision, recording its context, the choice made and its consequences.

Requires
[Context](https://banes-lab.com/records/lexicon/context.md), [Decision](https://banes-lab.com/records/lexicon/decision.md), [Consequences](https://banes-lab.com/records/lexicon/consequences.md)

Reinforces
[Traceability](https://banes-lab.com/records/architecture/traceability.md), [Governance](https://banes-lab.com/records/architecture/governance.md)

Enables
[Decision History](https://banes-lab.com/records/lexicon/decision-history.md)

In tension with
[Documentation Maintenance](https://banes-lab.com/records/lexicon/documentation-maintenance.md)

Conflicts with
[Tribal Knowledge](https://banes-lab.com/records/lexicon/tribal-knowledge.md)

Referenced by
[Architecture Review](https://banes-lab.com/records/architecture/architecture-review.md)

Tensions
[Architecture Decision Records (ADR) / Documentation Maintenance](https://banes-lab.com/records/tension/architecture-decision-records-adr-documentation-maintenance.md)

Distinct from
[Consequences](https://banes-lab.com/records/lexicon/consequences.md): A decision record is the whole record, while its consequences are the one part that states the trade-offs and effects.

Distinct from
[Decision](https://banes-lab.com/records/lexicon/decision.md): A decision record is the whole record, while the decision is the one part that states the choice made.

Violated by
major decision not recorded

Detected by
architecture change without ADR

Measured by
ADR coverage

Refactored by
Add ADR, Link to Change

Enforced by
PR template, review policy

Before

```typescript
chooseFooDatabase("postgres");
```

After

```typescript
const adr = recordDecision({
id: "ADR-0042",
title: "Use PostgreSQL for Foo persistence",
status: "accepted",
context: fooPersistenceForces,
decision: "postgres",
consequences: fooPersistenceConsequences,
});
```

How it is checked

Checked by
PR template, review policy

Population
Every architecture change, decision and deviation the review or gate is asked to pass

Freshness
A verdict stands for the change it reviewed and goes stale when the architecture, the criteria or the decision record changes

Refusal
The gate or the reviewer withholds approval, so the change does not merge

Observation
The recorded review, decision record or fitness run attached to the change

Evidence
None, because the catalog states this check as a class, so a watched run belongs to each system that adopts it

Authoritative side
The decision record and the review criteria, which a change is compared against

Depends on
[Context](https://banes-lab.com/records/lexicon/context.md), [Decision](https://banes-lab.com/records/lexicon/decision.md), [Consequences](https://banes-lab.com/records/lexicon/consequences.md), [Traceability](https://banes-lab.com/records/architecture/traceability.md), [Governance](https://banes-lab.com/records/architecture/governance.md), [Decision History](https://banes-lab.com/records/lexicon/decision-history.md)

Shape it refuses
[Tribal Knowledge](https://banes-lab.com/records/lexicon/tribal-knowledge.md)

### Evolutionary Architecture

- Kind: [approach](https://banes-lab.com/records/kind/approach.md)
- Category: [Architecture Review / Evolution / Governance Artifacts](https://banes-lab.com/ontology/principles/architecture-category-architecture-review-evolution-governance-artifacts.md)
- Severity: [contextual](https://banes-lab.com/records/vocabulary/severity-contextual.md)
- Scope: system, codebase
- Layer: [Evolution Principles](https://banes-lab.com/records/layer/evolution-principles.md)

Details

Definition
An approach in which the architecture changes in small increments, each guarded by fitness functions.

Requires
[Fitness Functions](https://banes-lab.com/records/architecture/fitness-functions.md), [Incremental Change](https://banes-lab.com/records/lexicon/incremental-change.md)

Reinforces
[Continuous Improvement](https://banes-lab.com/records/lexicon/continuous-improvement.md)

Enables
[Controlled Architecture Evolution](https://banes-lab.com/records/lexicon/controlled-architecture-evolution.md)

In tension with
[Governance Discipline](https://banes-lab.com/records/lexicon/governance-discipline.md)

Conflicts with
[Big-Upfront Frozen Architecture](https://banes-lab.com/records/architecture/big-upfront-frozen-architecture.md), [Lava Flow](https://banes-lab.com/records/architecture/lava-flow.md), [Premature Abstraction](https://banes-lab.com/records/architecture/premature-abstraction.md), [Zombie Code](https://banes-lab.com/records/architecture/zombie-code.md)

Referenced by
[Forward Compatibility](https://banes-lab.com/records/architecture/forward-compatibility.md), [Fitness Functions](https://banes-lab.com/records/architecture/fitness-functions.md)

Contracts
[Evolution Principles](https://banes-lab.com/records/algorithms/evolution-principles.md)

Tensions
[Evolutionary Architecture / Governance Discipline](https://banes-lab.com/records/tension/evolutionary-architecture-governance-discipline.md)

Violated by
architecture decay without feedback loops

Detected by
accumulating unmeasured drift

Measured by
fitness trend, architecture debt

Refactored by
Add Fitness Functions, Refactor Incrementally

Enforced by
CI/CD architecture checks

Before

```typescript
designFinalFooArchitecture();
freezeArchitectureForever();
```

After

```typescript
const fooArchitecture = evolveArchitecture({
current: minimumFooArchitecture,
fitnessFunctions: fooFitnessFunctions,
nextChange: highestValueArchitectureChange,
});
```

How it is checked

Checked by
CI/CD architecture checks

Population
Every architecture change, decision and deviation the review or gate is asked to pass

Freshness
A verdict stands for the change it reviewed and goes stale when the architecture, the criteria or the decision record changes

Refusal
The gate or the reviewer withholds approval, so the change does not merge

Observation
The recorded review, decision record or fitness run attached to the change

Evidence
None, because the catalog states this check as a class, so a watched run belongs to each system that adopts it

Authoritative side
The decision record and the review criteria, which a change is compared against

Depends on
[Fitness Functions](https://banes-lab.com/records/architecture/fitness-functions.md), [Incremental Change](https://banes-lab.com/records/lexicon/incremental-change.md), [Continuous Improvement](https://banes-lab.com/records/lexicon/continuous-improvement.md), [Controlled Architecture Evolution](https://banes-lab.com/records/lexicon/controlled-architecture-evolution.md)

Shape it refuses
[Big-Upfront Frozen Architecture](https://banes-lab.com/records/architecture/big-upfront-frozen-architecture.md), [Lava Flow](https://banes-lab.com/records/architecture/lava-flow.md), [Premature Abstraction](https://banes-lab.com/records/architecture/premature-abstraction.md), [Zombie Code](https://banes-lab.com/records/architecture/zombie-code.md)

### Minimum Viable Architecture

- Kind: [approach](https://banes-lab.com/records/kind/approach.md)
- Category: [Architecture Review / Evolution / Governance Artifacts](https://banes-lab.com/ontology/principles/architecture-category-architecture-review-evolution-governance-artifacts.md)
- Severity: [contextual](https://banes-lab.com/records/vocabulary/severity-contextual.md)
- Scope: greenfield, early product
- Layer: [Evolution Principles](https://banes-lab.com/records/layer/evolution-principles.md)

Details

Definition
An approach in which a system starts with only the structure its current quality attributes require, and defers the rest until a force demands it.

Requires
[Essential Quality Attributes](https://banes-lab.com/records/lexicon/essential-quality-attributes.md)

Reinforces
[Simplicity](https://banes-lab.com/records/lexicon/simplicity.md)

Enables
[Early Delivery with Guardrails](https://banes-lab.com/records/lexicon/early-delivery-with-guardrails.md)

In tension with
[Future Scalability](https://banes-lab.com/records/lexicon/future-scalability.md)

Conflicts with
[Architecture Astronaut](https://banes-lab.com/records/architecture/architecture-astronaut.md), [Over-Abstraction](https://banes-lab.com/records/architecture/over-abstraction.md), [Speculative Generality](https://banes-lab.com/records/architecture/speculative-generality.md)

Tensions
[Minimum Viable Architecture / Future Scalability](https://banes-lab.com/records/tension/future-scalability-minimum-viable-architecture.md)

Violated by
adding complex patterns before need

Detected by
unused abstractions/infrastructure

Measured by
architecture complexity vs need

Refactored by
Simplify, Defer Optional Mechanisms

Enforced by
[design review](https://banes-lab.com/records/architecture/design-review.md)

Before

```typescript
buildServiceMesh();
buildGlobalEventBus();
buildPluginPlatform();
createFooEndpoint();
```

After

```typescript
const architecture = defineMinimumArchitecture({
useCase: "create-and-read-foo",
components: ["foo-api", "foo-store"],
deferredUntilForced: ["service-mesh", "plugin-platform"],
});
```

How it is checked

Checked by
design review

Population
Every architecture change, decision and deviation the review or gate is asked to pass

Freshness
A verdict stands for the change it reviewed and goes stale when the architecture, the criteria or the decision record changes

Refusal
The gate or the reviewer withholds approval, so the change does not merge

Observation
The recorded review, decision record or fitness run attached to the change

Evidence
None, because the catalog states this check as a class, so a watched run belongs to each system that adopts it

Authoritative side
The decision record and the review criteria, which a change is compared against

Depends on
[Essential Quality Attributes](https://banes-lab.com/records/lexicon/essential-quality-attributes.md), [Simplicity](https://banes-lab.com/records/lexicon/simplicity.md), [Early Delivery with Guardrails](https://banes-lab.com/records/lexicon/early-delivery-with-guardrails.md)

Shape it refuses
[Architecture Astronaut](https://banes-lab.com/records/architecture/architecture-astronaut.md), [Architecture Astronaut](https://banes-lab.com/records/architecture/architecture-astronaut.md), [Over-Abstraction](https://banes-lab.com/records/architecture/over-abstraction.md), [Speculative Generality](https://banes-lab.com/records/architecture/speculative-generality.md)

### Greenfield Development

- Kind: [model](https://banes-lab.com/records/kind/model.md)
- Category: [Architecture Review / Evolution / Governance Artifacts](https://banes-lab.com/ontology/principles/architecture-category-architecture-review-evolution-governance-artifacts.md)
- Severity: [contextual](https://banes-lab.com/records/vocabulary/severity-contextual.md)
- Scope: new codebase, system
- Layer: [Evolution Principles](https://banes-lab.com/records/layer/evolution-principles.md)

Details

Definition
An abstraction of building a new system with no inherited code, so its boundaries are designed from the current forces.

Requires
[First-Principles Design](https://banes-lab.com/records/architecture/first-principles-design.md)

Reinforces
[Architecture Foundation](https://banes-lab.com/records/lexicon/architecture-foundation.md)

Enables
[Clean Boundary Design](https://banes-lab.com/records/lexicon/clean-boundary-design.md)

In tension with
[Unknown Requirements](https://banes-lab.com/records/lexicon/unknown-requirements.md), [Legacy Constraints](https://banes-lab.com/records/lexicon/legacy-constraints.md)

Conflicts with
none

Tensions
[Greenfield Development / Unknown Requirements](https://banes-lab.com/records/tension/greenfield-development-unknown-requirements.md), [Greenfield Development / Legacy Constraints](https://banes-lab.com/records/tension/greenfield-development-legacy-constraints.md)

Violated by
premature irreversible architecture choices

Detected by
heavy structure without validated need

Measured by
[initial complexity](https://banes-lab.com/records/lexicon/initial-complexity.md), adaptability

Refactored by
Start Modular, Add ADRs, Define Boundaries

Enforced by
[architecture review](https://banes-lab.com/records/architecture/architecture-review.md)

Before

```typescript
copyLegacyFooModule();
retainLegacyFooFlags();
retainLegacyFooSchema();
```

After

```typescript
const fooSystem = designFromCurrentForces({
domain: fooDomain,
constraints: currentConstraints,
contracts: currentContracts,
});
```

How it is checked

Checked by
architecture review

Population
Every architecture change, decision and deviation the review or gate is asked to pass

Freshness
A verdict stands for the change it reviewed and goes stale when the architecture, the criteria or the decision record changes

Refusal
The gate or the reviewer withholds approval, so the change does not merge

Observation
The recorded review, decision record or fitness run attached to the change

Evidence
None, because the catalog states this check as a class, so a watched run belongs to each system that adopts it

Authoritative side
The decision record and the review criteria, which a change is compared against

Depends on
[First-Principles Design](https://banes-lab.com/records/architecture/first-principles-design.md), [Architecture Foundation](https://banes-lab.com/records/lexicon/architecture-foundation.md), [Clean Boundary Design](https://banes-lab.com/records/lexicon/clean-boundary-design.md)

Shape it refuses
Not answered

### First-Principles Design

- Kind: [approach](https://banes-lab.com/records/kind/approach.md)
- Category: [Architecture Review / Evolution / Governance Artifacts](https://banes-lab.com/ontology/principles/architecture-category-architecture-review-evolution-governance-artifacts.md)
- Severity: [recommended](https://banes-lab.com/records/vocabulary/severity-recommended.md)
- Scope: architecture, domain, component
- Layer: [Evolution Principles](https://banes-lab.com/records/layer/evolution-principles.md)

Details

Definition
An approach in which a design is derived from the problem's forces and invariants before any known pattern is chosen.

Requires
[Problem Decomposition](https://banes-lab.com/records/lexicon/problem-decomposition.md)

Reinforces
[Correctness](https://banes-lab.com/records/architecture/correctness.md), [Simplicity](https://banes-lab.com/records/lexicon/simplicity.md)

Enables
[Fit-for-Purpose Architecture](https://banes-lab.com/records/lexicon/fit-for-purpose-architecture.md)

In tension with
[Reuse of Established Patterns](https://banes-lab.com/records/lexicon/reuse-of-established-patterns.md)

Conflicts with
[Pattern Cargo Cult](https://banes-lab.com/records/architecture/pattern-cargo-cult.md), [Golden Hammer](https://banes-lab.com/records/architecture/golden-hammer.md)

Referenced by
[Greenfield Development](https://banes-lab.com/records/architecture/greenfield-development.md)

Contracts
[Design Patterns Core](https://banes-lab.com/records/algorithms/design-patterns-core.md)

Tensions
[First-Principles Design / Reuse of Established Patterns](https://banes-lab.com/records/tension/first-principles-design-reuse-of-established-patterns.md)

Violated by
applying patterns without problem fit

Detected by
unjustified pattern selection

Measured by
decision rationale quality

Refactored by
Re-evaluate Constraints, Remove Misfit Pattern

Enforced by
ADR review

Before

```typescript
useMicroservicesBecauseIndustryUsesMicroservices();
```

After

```typescript
const forces = identifyForces(fooProblem);
const invariants = deriveInvariants(forces);
const design = synthesizeArchitecture({ forces, invariants });
```

How it is checked

Checked by
ADR review

Population
Every architecture change, decision and deviation the review or gate is asked to pass

Freshness
A verdict stands for the change it reviewed and goes stale when the architecture, the criteria or the decision record changes

Refusal
The gate or the reviewer withholds approval, so the change does not merge

Observation
The recorded review, decision record or fitness run attached to the change

Evidence
None, because the catalog states this check as a class, so a watched run belongs to each system that adopts it

Authoritative side
The decision record and the review criteria, which a change is compared against

Depends on
[Problem Decomposition](https://banes-lab.com/records/lexicon/problem-decomposition.md), [Correctness](https://banes-lab.com/records/architecture/correctness.md), [Simplicity](https://banes-lab.com/records/lexicon/simplicity.md), [Fit-for-Purpose Architecture](https://banes-lab.com/records/lexicon/fit-for-purpose-architecture.md)

Shape it refuses
[Pattern Cargo Cult](https://banes-lab.com/records/architecture/pattern-cargo-cult.md), [Golden Hammer](https://banes-lab.com/records/architecture/golden-hammer.md), [Pattern Cargo Cult](https://banes-lab.com/records/architecture/pattern-cargo-cult.md)

### Reference Architecture

- Kind: [artifact](https://banes-lab.com/records/kind/artifact.md)
- Category: [Architecture Review / Evolution / Governance Artifacts](https://banes-lab.com/ontology/principles/architecture-category-architecture-review-evolution-governance-artifacts.md)
- Severity: [contextual](https://banes-lab.com/records/vocabulary/severity-contextual.md)
- Scope: platform, organization, system family
- Layer: [Evolution Principles](https://banes-lab.com/records/layer/evolution-principles.md)

Details

Definition
A formal definition of the modules, patterns and allowed dependencies that a family of systems instantiates.

Requires
[Standard Patterns](https://banes-lab.com/records/lexicon/standard-patterns.md), [Quality Goals](https://banes-lab.com/records/lexicon/quality-goals.md)

Reinforces
[Standardization](https://banes-lab.com/records/architecture/standardization.md), [Consistency](https://banes-lab.com/records/architecture/consistency.md)

Enables
[Reusable Architecture Guidance](https://banes-lab.com/records/lexicon/reusable-architecture-guidance.md)

In tension with
[Team Autonomy](https://banes-lab.com/records/lexicon/team-autonomy.md)

Conflicts with
[Uncoordinated Divergence](https://banes-lab.com/records/lexicon/uncoordinated-divergence.md)

Tensions
[Reference Architecture / Team Autonomy](https://banes-lab.com/records/tension/reference-architecture-team-autonomy.md)

Distinct from
[Reusable Architecture Guidance](https://banes-lab.com/records/lexicon/reusable-architecture-guidance.md): A reference architecture defines the modules and dependencies a family of systems instantiates, while reusable guidance is the wider body of advice it packages.

Violated by
inconsistent implementations without rationale

Detected by
deviation without ADR

Measured by
conformance/deviation rate

Refactored by
Align to Reference or Document Exception

Enforced by
[architecture review](https://banes-lab.com/records/architecture/architecture-review.md)

Before

```typescript
teamA.buildFooOneWay();
teamB.buildFooAnotherWay();
```

After

```typescript
const fooReference = defineReferenceArchitecture({
modules: ["api", "application", "domain", "adapters"],
allowedDependencies: fooDependencyRules,
});
teamA.instantiate(fooReference);
teamB.instantiate(fooReference);
```

How it is checked

Checked by
architecture review

Population
Every architecture change, decision and deviation the review or gate is asked to pass

Freshness
A verdict stands for the change it reviewed and goes stale when the architecture, the criteria or the decision record changes

Refusal
The gate or the reviewer withholds approval, so the change does not merge

Observation
The recorded review, decision record or fitness run attached to the change

Evidence
None, because the catalog states this check as a class, so a watched run belongs to each system that adopts it

Authoritative side
The decision record and the review criteria, which a change is compared against

Depends on
[Standard Patterns](https://banes-lab.com/records/lexicon/standard-patterns.md), [Quality Goals](https://banes-lab.com/records/lexicon/quality-goals.md), [Standardization](https://banes-lab.com/records/architecture/standardization.md), [Consistency](https://banes-lab.com/records/architecture/consistency.md), [Reusable Architecture Guidance](https://banes-lab.com/records/lexicon/reusable-architecture-guidance.md)

Shape it refuses
[Uncoordinated Divergence](https://banes-lab.com/records/lexicon/uncoordinated-divergence.md)

### Pattern Consistency

- Kind: [quality-attribute](https://banes-lab.com/records/kind/quality-attribute.md)
- Category: [Architecture Review / Evolution / Governance Artifacts](https://banes-lab.com/ontology/principles/architecture-category-architecture-review-evolution-governance-artifacts.md)
- Severity: [recommended](https://banes-lab.com/records/vocabulary/severity-recommended.md)
- Scope: codebase, system
- Layer: [Evolution Principles](https://banes-lab.com/records/layer/evolution-principles.md)

Details

Definition
The degree to which one kind of problem is solved with the same pattern throughout a codebase.

Requires
[Naming/Structure Conventions](https://banes-lab.com/records/lexicon/naming-structure-conventions.md)

Reinforces
[Predictability](https://banes-lab.com/records/architecture/predictability.md), [Maintainability](https://banes-lab.com/records/lexicon/maintainability.md)

Enables
[Easier Refactoring](https://banes-lab.com/records/lexicon/easier-refactoring.md)

In tension with
[Local Optimization](https://banes-lab.com/records/lexicon/local-optimization.md)

Conflicts with
[Ad-Hoc Pattern Mixing](https://banes-lab.com/records/lexicon/ad-hoc-pattern-mixing.md)

Referenced by
[Architectural Consistency](https://banes-lab.com/records/architecture/architectural-consistency.md), [Convention over Configuration](https://banes-lab.com/records/architecture/convention-over-configuration.md)

Tensions
[Pattern Consistency / Local Optimization](https://banes-lab.com/records/tension/local-optimization-pattern-consistency.md)

Distinct from
[Architectural Consistency](https://banes-lab.com/records/architecture/architectural-consistency.md): Pattern consistency is one problem solved one way everywhere, while architectural consistency is code following the declared boundaries and layers.

Distinct from
[Local Optimization](https://banes-lab.com/records/lexicon/local-optimization.md): Pattern consistency is the degree shared patterns are used, while local optimization is the one-off gain that using them gives up.

Violated by
same problem solved with incompatible patterns

Detected by
inconsistent implementations of same concern

Measured by
pattern variance count

Refactored by
Normalize Pattern, Extract Shared Convention

Enforced by
linting, [review](https://banes-lab.com/records/lexicon/review.md), scaffolding

Before

```typescript
fooModule.useRepository();
barModule.queryDatabaseDirectly();
bazModule.useActiveRecord();
```

After

```typescript
const persistencePattern = "repository" as const;
fooModule.use(persistencePattern);
barModule.use(persistencePattern);
bazModule.use(persistencePattern);
```

How it is checked

Checked by
linting, review, scaffolding

Population
Every architecture change, decision and deviation the review or gate is asked to pass

Freshness
A verdict stands for the change it reviewed and goes stale when the architecture, the criteria or the decision record changes

Refusal
The gate or the reviewer withholds approval, so the change does not merge

Observation
The recorded review, decision record or fitness run attached to the change

Evidence
None, because the catalog states this check as a class, so a watched run belongs to each system that adopts it

Authoritative side
The decision record and the review criteria, which a change is compared against

Depends on
[Naming/Structure Conventions](https://banes-lab.com/records/lexicon/naming-structure-conventions.md), [Predictability](https://banes-lab.com/records/architecture/predictability.md), [Maintainability](https://banes-lab.com/records/lexicon/maintainability.md), [Easier Refactoring](https://banes-lab.com/records/lexicon/easier-refactoring.md)

Shape it refuses
[Ad-Hoc Pattern Mixing](https://banes-lab.com/records/lexicon/ad-hoc-pattern-mixing.md)

### Architectural Consistency

- Kind: [quality-attribute](https://banes-lab.com/records/kind/quality-attribute.md)
- Category: [Architecture Review / Evolution / Governance Artifacts](https://banes-lab.com/ontology/principles/architecture-category-architecture-review-evolution-governance-artifacts.md)
- Severity: [mandatory](https://banes-lab.com/records/vocabulary/severity-mandatory.md)
- Scope: system, codebase
- Layer: [Evolution Principles](https://banes-lab.com/records/layer/evolution-principles.md)

Details

Definition
The degree to which the code follows the system's declared boundaries, layers and dependency rules.

Requires
[Architecture Rules](https://banes-lab.com/records/lexicon/architecture-rules.md), [Governance](https://banes-lab.com/records/architecture/governance.md)

Reinforces
[Pattern Consistency](https://banes-lab.com/records/architecture/pattern-consistency.md)

Enables
[Predictable Evolution](https://banes-lab.com/records/lexicon/predictable-evolution.md)

In tension with
[Local Autonomy](https://banes-lab.com/records/lexicon/local-autonomy.md)

Conflicts with
[Architecture Drift](https://banes-lab.com/records/lexicon/architecture-drift.md)

Referenced by
[Architecture Review](https://banes-lab.com/records/architecture/architecture-review.md)

Contracts
[Architectural Relationship Algebra](https://banes-lab.com/records/algorithms/architectural-relationship-algebra.md)

Tensions
[Architectural Consistency / Local Autonomy](https://banes-lab.com/records/tension/architectural-consistency-local-autonomy.md)

Distinct from
[Local Autonomy](https://banes-lab.com/records/lexicon/local-autonomy.md): Architectural consistency is the degree the code follows declared rules, while local autonomy is the team freedom that enforcing them costs.

Violated by
unapproved boundary/layer/dependency deviations

Detected by
architecture fitness failures

Measured by
violation trend

Refactored by
Align Dependency/Layer/Boundary

Enforced by
architecture tests

Before

```typescript
fooDomain.imports(sqlClient);
barDomain.imports(httpClient);
```

After

```typescript
architectureRules.enforce([
forbid("domain", "infrastructure"),
requirePortFor("external-io"),
]);
```

How it is checked

Checked by
architecture tests

Population
Every architecture change, decision and deviation the review or gate is asked to pass

Freshness
A verdict stands for the change it reviewed and goes stale when the architecture, the criteria or the decision record changes

Refusal
The gate or the reviewer withholds approval, so the change does not merge

Observation
The recorded review, decision record or fitness run attached to the change

Evidence
None, because the catalog states this check as a class, so a watched run belongs to each system that adopts it

Authoritative side
The decision record and the review criteria, which a change is compared against

Depends on
[Architecture Rules](https://banes-lab.com/records/lexicon/architecture-rules.md), [Governance](https://banes-lab.com/records/architecture/governance.md), [Pattern Consistency](https://banes-lab.com/records/architecture/pattern-consistency.md), [Predictable Evolution](https://banes-lab.com/records/lexicon/predictable-evolution.md)

Shape it refuses
[Architecture Drift](https://banes-lab.com/records/lexicon/architecture-drift.md)

### Standardization

- Kind: [principle](https://banes-lab.com/records/kind/principle.md)
- Category: [Architecture Review / Evolution / Governance Artifacts](https://banes-lab.com/ontology/principles/architecture-category-architecture-review-evolution-governance-artifacts.md)
- Severity: [contextual](https://banes-lab.com/records/vocabulary/severity-contextual.md)
- Scope: codebase, platform, organization
- Layer: [Evolution Principles](https://banes-lab.com/records/layer/evolution-principles.md)

Details

Definition
A design rule that one format, tool or pattern is chosen for each recurring concern and applied everywhere it occurs.

Requires
[Standards Definition](https://banes-lab.com/records/lexicon/standards-definition.md)

Reinforces
[Consistency](https://banes-lab.com/records/architecture/consistency.md), [Interoperability](https://banes-lab.com/records/architecture/interoperability.md)

Enables
[Reuse](https://banes-lab.com/records/lexicon/reuse.md), [Operability](https://banes-lab.com/records/lexicon/operability.md)

In tension with
[Innovation/Autonomy](https://banes-lab.com/records/lexicon/innovation-autonomy.md)

Conflicts with
[Unbounded Variation](https://banes-lab.com/records/lexicon/unbounded-variation.md)

Referenced by
[Autonomy](https://banes-lab.com/records/architecture/autonomy.md), [Reference Architecture](https://banes-lab.com/records/architecture/reference-architecture.md)

Tensions
[Standardization / Innovation/Autonomy](https://banes-lab.com/records/tension/innovation-autonomy-standardization.md)

Violated by
inconsistent tooling/formats/patterns

Detected by
standards deviation

Measured by
conformance rate

Refactored by
Normalize Tooling/Format/Pattern

Enforced by
CI policies, templates

Before

```typescript
teamA.emit({ foo_id: foo.id });
teamB.emit({ id: foo.id, type: "foo" });
```

After

```typescript
const FooCreatedV1 = standardEvent({
type: "FooCreated",
version: 1,
fields: { fooId: FooIdSchema },
});
teamA.emit(FooCreatedV1.create(foo));
teamB.emit(FooCreatedV1.create(foo));
```

How it is checked

Checked by
CI policies, templates

Population
Every architecture change, decision and deviation the review or gate is asked to pass

Freshness
A verdict stands for the change it reviewed and goes stale when the architecture, the criteria or the decision record changes

Refusal
The gate or the reviewer withholds approval, so the change does not merge

Observation
The recorded review, decision record or fitness run attached to the change

Evidence
None, because the catalog states this check as a class, so a watched run belongs to each system that adopts it

Authoritative side
The decision record and the review criteria, which a change is compared against

Depends on
[Standards Definition](https://banes-lab.com/records/lexicon/standards-definition.md), [Consistency](https://banes-lab.com/records/architecture/consistency.md), [Interoperability](https://banes-lab.com/records/architecture/interoperability.md), [Reuse](https://banes-lab.com/records/lexicon/reuse.md), [Operability](https://banes-lab.com/records/lexicon/operability.md)

Shape it refuses
[Unbounded Variation](https://banes-lab.com/records/lexicon/unbounded-variation.md)

## Links to

- [activity](https://banes-lab.com/records/kind/activity.md)
- [recommended](https://banes-lab.com/records/vocabulary/severity-recommended.md)
- [Evolution Principles](https://banes-lab.com/records/layer/evolution-principles.md)
- [Criteria](https://banes-lab.com/records/lexicon/criteria.md)
- [Evidence](https://banes-lab.com/records/lexicon/evidence.md)
- [Governance](https://banes-lab.com/records/architecture/governance.md)
- [Quality Attributes](https://banes-lab.com/records/architecture/quality-attributes.md)
- [Prioritized Refactoring](https://banes-lab.com/records/lexicon/prioritized-refactoring.md)
- [Time Cost](https://banes-lab.com/records/lexicon/time-cost.md)
- [Assumption-Based Judgment](https://banes-lab.com/records/lexicon/assumption-based-judgment.md)
- [Assessment / Time Cost](https://banes-lab.com/records/tension/assessment-time-cost.md)
- [Architecture Criteria](https://banes-lab.com/records/lexicon/architecture-criteria.md)
- [Architecture Decision Records](https://banes-lab.com/records/architecture/architecture-decision-records.md)
- [Architectural Consistency](https://banes-lab.com/records/architecture/architectural-consistency.md)
- [Risk Detection](https://banes-lab.com/records/lexicon/risk-detection.md)
- [Delivery Speed](https://banes-lab.com/records/lexicon/delivery-speed.md)
- [Unreviewed Structural Change](https://banes-lab.com/records/lexicon/unreviewed-structural-change.md)
- [Architecture Review / Delivery Speed](https://banes-lab.com/records/tension/architecture-review-delivery-speed.md)
- [Design Criteria](https://banes-lab.com/records/lexicon/design-criteria.md)
- [Correctness](https://banes-lab.com/records/architecture/correctness.md)
- [Maintainability](https://banes-lab.com/records/lexicon/maintainability.md)
- [Early Defect Prevention](https://banes-lab.com/records/lexicon/early-defect-prevention.md)
- [Iteration Speed](https://banes-lab.com/records/lexicon/iteration-speed.md)
- [Ad-Hoc Design](https://banes-lab.com/records/lexicon/ad-hoc-design.md)
- [Design Review / Iteration Speed](https://banes-lab.com/records/tension/design-review-iteration-speed.md)
- [mandatory](https://banes-lab.com/records/vocabulary/severity-mandatory.md)
- [Review Standards](https://banes-lab.com/records/lexicon/review-standards.md)
- [Quality](https://banes-lab.com/records/lexicon/quality.md)
- [Security](https://banes-lab.com/records/lexicon/security.md)
- [Consistency](https://banes-lab.com/records/architecture/consistency.md)
- [Defect Detection](https://banes-lab.com/records/lexicon/defect-detection.md)
- [Throughput](https://banes-lab.com/records/architecture/throughput.md)
- [Direct-to-main Unreviewed Change](https://banes-lab.com/records/lexicon/direct-to-main-unreviewed-change.md)
- [Code Review / Throughput](https://banes-lab.com/records/tension/code-review-throughput.md)
- [Dependency Graph](https://banes-lab.com/records/architecture/dependency-graph.md)
- [Contracts](https://banes-lab.com/records/lexicon/contracts.md)
- [Change Safety](https://banes-lab.com/records/lexicon/change-safety.md)
- [Regression Scope Selection](https://banes-lab.com/records/lexicon/regression-scope-selection.md)
- [Analysis Overhead](https://banes-lab.com/records/lexicon/analysis-overhead.md)
- [Blind Change](https://banes-lab.com/records/lexicon/blind-change.md)
- [Causal Dependency](https://banes-lab.com/records/architecture/causal-dependency.md)
- [Impact Analysis / Analysis Overhead](https://banes-lab.com/records/tension/analysis-overhead-impact-analysis.md)
- [contextual](https://banes-lab.com/records/vocabulary/severity-contextual.md)
- [Target State](https://banes-lab.com/records/lexicon/target-state.md)
- [Current State](https://banes-lab.com/records/lexicon/current-state.md)
- [Remediation Planning](https://banes-lab.com/records/lexicon/remediation-planning.md)
- [Undefined Target](https://banes-lab.com/records/lexicon/undefined-target.md)
- [Gap Analysis / Time Cost](https://banes-lab.com/records/tension/gap-analysis-time-cost.md)
- [mechanism](https://banes-lab.com/records/kind/mechanism.md)
- [Measurable Architecture Rule](https://banes-lab.com/records/lexicon/measurable-architecture-rule.md)
- [Evolutionary Architecture](https://banes-lab.com/records/architecture/evolutionary-architecture.md)
- [Automated Architecture Compliance](https://banes-lab.com/records/lexicon/automated-architecture-compliance.md)
- [Rule Maintenance](https://banes-lab.com/records/lexicon/rule-maintenance.md)
- [Manual Architecture Review Only](https://banes-lab.com/records/lexicon/manual-architecture-review-only.md)
- [Stated Invariant](https://banes-lab.com/records/architecture/stated-invariant.md)
- [State-Arity Limit](https://banes-lab.com/records/architecture/state-arity-limit.md)
- [Enforcement Core](https://banes-lab.com/records/algorithms/enforcement-core.md)
- [Fitness Functions / Rule Maintenance](https://banes-lab.com/records/tension/fitness-functions-rule-maintenance.md)
- [model](https://banes-lab.com/records/kind/model.md)
- [Performance Core](https://banes-lab.com/records/layer/performance-core.md)
- [Attribute Scenarios](https://banes-lab.com/records/lexicon/attribute-scenarios.md)
- [Architecture Review](https://banes-lab.com/records/architecture/architecture-review.md)
- [Trade-Off Analysis](https://banes-lab.com/records/lexicon/trade-off-analysis.md)
- [Competing Attributes](https://banes-lab.com/records/lexicon/competing-attributes.md)
- [Feature-Only Design](https://banes-lab.com/records/architecture/feature-only-design.md)
- [Assessment](https://banes-lab.com/records/architecture/assessment.md)
- [Quality Attributes / Competing Attributes](https://banes-lab.com/records/tension/competing-attributes-quality-attributes.md)
- [artifact](https://banes-lab.com/records/kind/artifact.md)
- [Context](https://banes-lab.com/records/lexicon/context.md)
- [Decision](https://banes-lab.com/records/lexicon/decision.md)
- [Consequences](https://banes-lab.com/records/lexicon/consequences.md)
- [Traceability](https://banes-lab.com/records/architecture/traceability.md)
- [Decision History](https://banes-lab.com/records/lexicon/decision-history.md)
- [Documentation Maintenance](https://banes-lab.com/records/lexicon/documentation-maintenance.md)
- [Tribal Knowledge](https://banes-lab.com/records/lexicon/tribal-knowledge.md)
- [Architecture Decision Records (ADR) / Documentation Maintenance](https://banes-lab.com/records/tension/architecture-decision-records-adr-documentation-maintenance.md)
- [approach](https://banes-lab.com/records/kind/approach.md)
- [Fitness Functions](https://banes-lab.com/records/architecture/fitness-functions.md)
- [Incremental Change](https://banes-lab.com/records/lexicon/incremental-change.md)
- [Continuous Improvement](https://banes-lab.com/records/lexicon/continuous-improvement.md)
- [Controlled Architecture Evolution](https://banes-lab.com/records/lexicon/controlled-architecture-evolution.md)
- [Governance Discipline](https://banes-lab.com/records/lexicon/governance-discipline.md)
- [Big-Upfront Frozen Architecture](https://banes-lab.com/records/architecture/big-upfront-frozen-architecture.md)
- [Lava Flow](https://banes-lab.com/records/architecture/lava-flow.md)
- [Premature Abstraction](https://banes-lab.com/records/architecture/premature-abstraction.md)
- [Zombie Code](https://banes-lab.com/records/architecture/zombie-code.md)
- [Forward Compatibility](https://banes-lab.com/records/architecture/forward-compatibility.md)
- [Evolution Principles](https://banes-lab.com/records/algorithms/evolution-principles.md)
- [Evolutionary Architecture / Governance Discipline](https://banes-lab.com/records/tension/evolutionary-architecture-governance-discipline.md)
- [Essential Quality Attributes](https://banes-lab.com/records/lexicon/essential-quality-attributes.md)
- [Simplicity](https://banes-lab.com/records/lexicon/simplicity.md)
- [Early Delivery with Guardrails](https://banes-lab.com/records/lexicon/early-delivery-with-guardrails.md)
- [Future Scalability](https://banes-lab.com/records/lexicon/future-scalability.md)
- [Architecture Astronaut](https://banes-lab.com/records/architecture/architecture-astronaut.md)
- [Over-Abstraction](https://banes-lab.com/records/architecture/over-abstraction.md)
- [Speculative Generality](https://banes-lab.com/records/architecture/speculative-generality.md)
- [Minimum Viable Architecture / Future Scalability](https://banes-lab.com/records/tension/future-scalability-minimum-viable-architecture.md)
- [Design Review](https://banes-lab.com/records/architecture/design-review.md)
- [First-Principles Design](https://banes-lab.com/records/architecture/first-principles-design.md)
- [Architecture Foundation](https://banes-lab.com/records/lexicon/architecture-foundation.md)
- [Clean Boundary Design](https://banes-lab.com/records/lexicon/clean-boundary-design.md)
- [Unknown Requirements](https://banes-lab.com/records/lexicon/unknown-requirements.md)
- [Legacy Constraints](https://banes-lab.com/records/lexicon/legacy-constraints.md)
- [Greenfield Development / Unknown Requirements](https://banes-lab.com/records/tension/greenfield-development-unknown-requirements.md)
- [Greenfield Development / Legacy Constraints](https://banes-lab.com/records/tension/greenfield-development-legacy-constraints.md)
- [Initial Complexity](https://banes-lab.com/records/lexicon/initial-complexity.md)
- [Problem Decomposition](https://banes-lab.com/records/lexicon/problem-decomposition.md)
- [Fit-for-Purpose Architecture](https://banes-lab.com/records/lexicon/fit-for-purpose-architecture.md)
- [Reuse of Established Patterns](https://banes-lab.com/records/lexicon/reuse-of-established-patterns.md)
- [Pattern Cargo Cult](https://banes-lab.com/records/architecture/pattern-cargo-cult.md)
- [Golden Hammer](https://banes-lab.com/records/architecture/golden-hammer.md)
- [Greenfield Development](https://banes-lab.com/records/architecture/greenfield-development.md)
- [Design Patterns Core](https://banes-lab.com/records/algorithms/design-patterns-core.md)
- [First-Principles Design / Reuse of Established Patterns](https://banes-lab.com/records/tension/first-principles-design-reuse-of-established-patterns.md)
- [Standard Patterns](https://banes-lab.com/records/lexicon/standard-patterns.md)
- [Quality Goals](https://banes-lab.com/records/lexicon/quality-goals.md)
- [Standardization](https://banes-lab.com/records/architecture/standardization.md)
- [Reusable Architecture Guidance](https://banes-lab.com/records/lexicon/reusable-architecture-guidance.md)
- [Team Autonomy](https://banes-lab.com/records/lexicon/team-autonomy.md)
- [Uncoordinated Divergence](https://banes-lab.com/records/lexicon/uncoordinated-divergence.md)
- [Reference Architecture / Team Autonomy](https://banes-lab.com/records/tension/reference-architecture-team-autonomy.md)
- [quality-attribute](https://banes-lab.com/records/kind/quality-attribute.md)
- [Naming/Structure Conventions](https://banes-lab.com/records/lexicon/naming-structure-conventions.md)
- [Predictability](https://banes-lab.com/records/architecture/predictability.md)
- [Easier Refactoring](https://banes-lab.com/records/lexicon/easier-refactoring.md)
- [Local Optimization](https://banes-lab.com/records/lexicon/local-optimization.md)
- [Ad-Hoc Pattern Mixing](https://banes-lab.com/records/lexicon/ad-hoc-pattern-mixing.md)
- [Convention over Configuration](https://banes-lab.com/records/architecture/convention-over-configuration.md)
- [Pattern Consistency / Local Optimization](https://banes-lab.com/records/tension/local-optimization-pattern-consistency.md)
- [Review](https://banes-lab.com/records/lexicon/review.md)
- [Architecture Rules](https://banes-lab.com/records/lexicon/architecture-rules.md)
- [Pattern Consistency](https://banes-lab.com/records/architecture/pattern-consistency.md)
- [Predictable Evolution](https://banes-lab.com/records/lexicon/predictable-evolution.md)
- [Local Autonomy](https://banes-lab.com/records/lexicon/local-autonomy.md)
- [Architecture Drift](https://banes-lab.com/records/lexicon/architecture-drift.md)
- [Architectural Relationship Algebra](https://banes-lab.com/records/algorithms/architectural-relationship-algebra.md)
- [Architectural Consistency / Local Autonomy](https://banes-lab.com/records/tension/architectural-consistency-local-autonomy.md)
- [principle](https://banes-lab.com/records/kind/principle.md)
- [Standards Definition](https://banes-lab.com/records/lexicon/standards-definition.md)
- [Interoperability](https://banes-lab.com/records/architecture/interoperability.md)
- [Reuse](https://banes-lab.com/records/lexicon/reuse.md)
- [Operability](https://banes-lab.com/records/lexicon/operability.md)
- [Innovation/Autonomy](https://banes-lab.com/records/lexicon/innovation-autonomy.md)
- [Unbounded Variation](https://banes-lab.com/records/lexicon/unbounded-variation.md)
- [Autonomy](https://banes-lab.com/records/architecture/autonomy.md)
- [Reference Architecture](https://banes-lab.com/records/architecture/reference-architecture.md)
- [Standardization / Innovation/Autonomy](https://banes-lab.com/records/tension/innovation-autonomy-standardization.md)

## Linked from

- [The layer topology](https://banes-lab.com/ontology/schema/the-layer-topology.md)
- [The membership](https://banes-lab.com/ontology/schema/the-membership.md)
