import { CHAIN_CONCEPT, DEPLOY_CONCEPT, DETERMINISM_CONCEPT, GAP_CONCEPT, GATE_CONCEPT, ONBOARDING_CONCEPT, RETIRED_CONCEPT, SCALE_CONCEPT, } from "#core/ids/concept.ids"; import { CHAIN_SECTION_ID, DEPLOY_SECTION_ID, GAP_SECTION_ID, RETIRED_SECTION_ID, SCALE_SECTION_ID, } from "#core/ids/release.ids"; import type { GraphSection } from "#types/methodology.types"; export const SHIP_GRAPH_SECTIONS: Readonly> = { [CHAIN_SECTION_ID]: { requires: [GATE_CONCEPT], teaches: [CHAIN_CONCEPT], traces: [ "one_entry_point_staged_pipeline", "stage_order_is_load_bearing", "governance_governs_itself", "bypass_is_iteration_only", "report_contract", ], }, [SCALE_SECTION_ID]: { requires: [], teaches: [SCALE_CONCEPT], traces: [ "coupling.invariant-the-count-is-derived-from-a-partition-and-never-chosen-independently-of-it", "coupling.invariant-the-floor-counts-the-partition-s-nodes", "coupling.invariant-the-ceiling-is-set-by-the-worst-fan-in-not-by-the-count", "scaling_doc_maintenance", ], }, [DEPLOY_SECTION_ID]: { requires: [CHAIN_CONCEPT], teaches: [DEPLOY_CONCEPT], traces: ["build_output_ssot", "https_only_never_http", "env_only_secrets"], }, [RETIRED_SECTION_ID]: { requires: [DETERMINISM_CONCEPT], teaches: [RETIRED_CONCEPT], traces: ["performance-core", "optimisation_follows_a_measurement", "bounded_complexity", "no_authored_counts"], }, [GAP_SECTION_ID]: { requires: [ONBOARDING_CONCEPT], teaches: [GAP_CONCEPT], traces: ["slot_absence_is_honoured", "uncertainty_is_stated", "absence_is_measured_never_inferred"], }, };