# Derived Record State

> A design rule that a record's state is a query over the edges it carries, open while its satisfying artifact is unresolved, blocked while a blocker is open and absorbed once the artifact exists, so no party writes a state.

Record: `architecture:derived-record-state`
Kind: principle
Layer: [Execution Core](https://banes-lab.com/records/layer/execution-core.md)
Severity: mandatory
Scope: record, coordination
Canonical: https://banes-lab.com/ontology#architecture-derived-record-state

Listed in [Architecture principles](https://banes-lab.com/api/records/architecture.md), after [Stated Invariant](https://banes-lab.com/records/architecture/stated-invariant.md) and before [Declared Subject](https://banes-lab.com/records/architecture/declared-subject.md).

## Repair

- Refactored by: Remove the Status Field, Derive the State From the Edges
- Detected by: a record carrying a state that its edges no longer support
- Violated by: writing a status field on a record instead of deriving it from the record's edges
- Measured by: records whose written state differs from the derived one
- Enforced by: the coordination closure check, which refuses a judgement closure that cites an artifact and an artifact closure that cites none

## Requires

- [Coordination Record](https://banes-lab.com/records/lexicon/coordination-record.md)
- [Acknowledger](https://banes-lab.com/records/lexicon/acknowledger.md)

## Reinforces

- [Single Source of Truth](https://banes-lab.com/records/architecture/single-source-of-truth.md)

## Enables

- [Traceable Guarantee](https://banes-lab.com/records/lexicon/traceable-guarantee.md)

## Conflicts with

- [Written Status Marker](https://banes-lab.com/records/architecture/written-status-marker.md)

## Severity

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

## Category

- [Coordination Surfaces](https://banes-lab.com/records/architecture-category/coordination-surfaces.md)

## Linked from

- [Coordination templates](https://banes-lab.com/pag/templates/templates-coordination.md)
- [Schema / Canonical Data / Semantics](https://banes-lab.com/ontology/principles/architecture-category-schema-canonical-data-semantics.md)
- [Coordination Surfaces](https://banes-lab.com/ontology/principles/architecture-category-coordination-surfaces.md)
- [Coordination Surfaces](https://banes-lab.com/ontology/lexicon/lexicon-category-coordination-surfaces.md)
- [Severity levels](https://banes-lab.com/ontology/schema/the-vocabulary-severity.md)

## Evidence in the code

- [closureRefusal](https://banes-lab.com/source/coordination/tools/core/validators/archive.validator.ts.md)
- [models/coordination.model.md](https://banes-lab.com/source/coordination/models/coordination.model.md.md)
