import { BOUNDARY_CONCEPT, DETECT_CONCEPT, FILESYSTEM_CONCEPT, GATE_CONCEPT, HOME_CONCEPT, LABOUR_CONCEPT, MECHANISM_CONCEPT, ORDER_CONCEPT, SHAPE_CONCEPT, TAXONOMY_CONCEPT, TOOL_CONCEPT, } from "#core/ids/concept.ids"; import { BOUNDARY_SECTION_ID, FILESYSTEM_SECTION_ID, HOME_SECTION_ID } from "#core/ids/invariant.ids"; import { DETECT_SECTION_ID, GATE_SECTION_ID, ORDER_SECTION_ID, SHAPE_SECTION_ID, TOOL_SECTION_ID, } from "#core/ids/build.ids"; import type { GraphSection } from "#types/methodology.types"; import { TAXONOMY_SECTION_ID } from "#core/ids/taxonomy.ids"; export const BUILD_GRAPH_SECTIONS: Readonly> = { [DETECT_SECTION_ID]: { requires: [LABOUR_CONCEPT], teaches: [DETECT_CONCEPT], traces: ["findings_are_machine_actionable", "auto_fix_on_by_default", "remediation_is_reachable"], }, [GATE_SECTION_ID]: { requires: [MECHANISM_CONCEPT], teaches: [GATE_CONCEPT], traces: ["gate_every_pattern", "enforcement-core", "no_convention_enforcement", "never_exclude_to_go_green"], }, [ORDER_SECTION_ID]: { requires: [GATE_CONCEPT], teaches: [ORDER_CONCEPT], traces: [ "prove_the_gate_fires", "gate_fires_before_it_is_trusted", "positive_control_precedes_trust", "scoping_re_runs_the_motivating_case", "born_conformant", ], }, [SHAPE_SECTION_ID]: { requires: [GATE_CONCEPT], teaches: [SHAPE_CONCEPT], traces: [ "gate_shape_not_provider", "gate_constructs_not_literals", "self_registration_over_wiring", "core_never_edited_for_features", "governance_governs_itself", "no_regex", "derived_not_heuristic", ], }, [TOOL_SECTION_ID]: { requires: [MECHANISM_CONCEPT], teaches: [TOOL_CONCEPT], traces: [ "build_the_missing_tool", "measure_dont_eye", "test_before_fix", "a_destructive_tool_carries_every_standing_precondition", "mutation_preview_first", "a_mandated_surface_is_tool_writable_first", "existing_owner_first", "automation-concern", ], }, [HOME_SECTION_ID]: { requires: [], teaches: [HOME_CONCEPT], traces: ["single source of truth", "structural-core", "centralization-concern", "config_single_truth"], }, [FILESYSTEM_SECTION_ID]: { requires: [], teaches: [FILESYSTEM_CONCEPT], traces: ["filesystem_is_the_architecture", "extensibility-core", "self_registration_over_wiring"], }, [BOUNDARY_SECTION_ID]: { requires: [], teaches: [BOUNDARY_CONCEPT], traces: ["errors_as_language", "no_env_fallback", "correctness-core", "no_fallback"], }, [TAXONOMY_SECTION_ID]: { requires: [FILESYSTEM_CONCEPT], teaches: [TAXONOMY_CONCEPT], traces: ["taxonomy-concern", "taxonomy_grammar", "classification_is_judgement", "overflow_relieves_sideways"], }, };