# configuration/constants/failure.constants.ts

> 70 lines of code and 2 definitions.

Tree: Site tree
Language: typescript
Layer: infrastructure
Canonical: https://banes-lab.com/anatomy/tree#file-configuration-constants-failure-constants-ts
Source text: https://banes-lab.com/assets/sources/source.8471586a3bbc9c29372a6ceada70bb88e448ccc64bfc49fc299b4b54d924aeb3.generated.txt

## Definitions

- `DECAY_GRAPH_SECTIONS` (lexical_declaration, line 28, exported)
- `COVERAGE_GRAPH_SECTIONS` (lexical_declaration, line 51, exported)

## Source

```typescript
import {
    BOUNDARY_CONCEPT,
    CANON_CONCEPT,
    CELL_CONCEPT,
    CONSEQUENCE_CONCEPT,
    CONTROL_CONCEPT,
    DECAY_CONCEPT,
    GRAPH_CONCEPT,
    GRID_CONCEPT,
    HONEST_GAP_CONCEPT,
    KIND_CONCEPT,
    PAIR_CONCEPT,
    PREDICATE_CONCEPT,
    READING_CONCEPT,
} from "#core/ids/concept.ids";
import {
    CELL_SECTION_ID,
    CONSEQUENCE_SECTION_ID,
    CONTROL_SECTION_ID,
    DECAY_SECTION_ID,
    GAP_SECTION_ID,
    GRID_SECTION_ID,
    PAIR_SECTION_ID,
    PREDICATE_SECTION_ID,
} from "#core/ids/architecture.ids";
import type { GraphSection } from "#types/methodology.types";

export const DECAY_GRAPH_SECTIONS: Readonly<Record<string, GraphSection>> = {
    [DECAY_SECTION_ID]: {
        requires: [CANON_CONCEPT, KIND_CONCEPT],
        teaches: [DECAY_CONCEPT],
        traces: ["architecture-anti-pattern", "no_leaky_context", "no_implicit_contract", "no_shared_ownership"],
    },
    [CONTROL_SECTION_ID]: {
        requires: [DECAY_CONCEPT],
        teaches: [CONTROL_CONCEPT],
        traces: ["no_breaking_change", "no_opaque_runtime", "no_convention_enforcement", "enforcement-core"],
    },
    [PAIR_SECTION_ID]: {
        requires: [DECAY_CONCEPT, CONTROL_CONCEPT, BOUNDARY_CONCEPT],
        teaches: [PAIR_CONCEPT],
        traces: ["debt_anti_patterns", "no_shortcuts", "no_fallback", "no_deprecation", "no_dual_path", "no_deferring"],
    },
    [CONSEQUENCE_SECTION_ID]: {
        requires: [PAIR_CONCEPT],
        teaches: [CONSEQUENCE_CONCEPT],
        traces: ["no_silent", "no_location", "no_discipline", "no_convention_enforcement", "no_speculative_pattern"],
    },
};

export const COVERAGE_GRAPH_SECTIONS: Readonly<Record<string, GraphSection>> = {
    [PREDICATE_SECTION_ID]: {
        requires: [GRAPH_CONCEPT, CANON_CONCEPT, READING_CONCEPT],
        teaches: [PREDICATE_CONCEPT],
        traces: ["no_hidden", "no_unobserved", "correctness-core"],
    },
    [GRID_SECTION_ID]: {
        requires: [PREDICATE_CONCEPT, DECAY_CONCEPT],
        teaches: [GRID_CONCEPT],
        traces: ["coverage_is_declared"],
    },
    [CELL_SECTION_ID]: {
        requires: [GRID_CONCEPT],
        teaches: [CELL_CONCEPT],
        traces: ["no_unapproved", "gate_that_saturates_is_not_built"],
    },
    [GAP_SECTION_ID]: {
        requires: [GRID_CONCEPT, CELL_CONCEPT],
        teaches: [HONEST_GAP_CONCEPT],
        traces: ["coverage_is_declared", "no_unobserved"],
    },
};
```
