import { ADVERSARIAL_CONCEPT, CONTRACT_CONCEPT, ENCODING_CONCEPT, LABOUR_CONCEPT, LOOP_CONCEPT, MECHANISM_CONCEPT, ONBOARDING_CONCEPT, POLICY_CONCEPT, READING_CONCEPT, RULE_CONCEPT, UNVERIFIED_CONCEPT, } from "#core/ids/concept.ids"; import { ADVERSARIAL_SECTION_ID, ENCODING_SECTION_ID, LABOUR_SECTION_ID, LOOP_SECTION_ID, READING_SECTION_ID, STANCE_SECTION_ID, } from "#core/ids/methodology.start.ids"; import { CONTRACT_SECTION_ID, MECHANISM_SECTION_ID, POLICY_SECTION_ID, RULE_SECTION_ID } from "#core/ids/rule.ids"; import type { ContentGraph, GraphSection } from "#types/methodology.types"; import { BUILD_GRAPH_SECTIONS } from "#configuration/constants/build.constants"; import { COLLABORATE_GRAPH_SECTIONS } from "#configuration/constants/coordination.constants"; import { METHODOLOGY_PAGE } from "#core/ids/page.ids"; import { ONBOARDING_SECTION_ID } from "#core/ids/system.ids"; import { PLAN_GRAPH_SECTIONS } from "#configuration/constants/plan.constants"; import { SHIP_GRAPH_SECTIONS } from "#configuration/constants/release.constants"; import { VERIFY_GRAPH_SECTIONS } from "#configuration/constants/evidence.constants"; const START_GRAPH_SECTIONS: Readonly> = { [LOOP_SECTION_ID]: { requires: [], teaches: [LOOP_CONCEPT], traces: [ "profile.how-i-reason", "10_step_chain", "four_gates_always_run", "decisions_are_typed", "repair_from_earliest_owner", ], }, [LABOUR_SECTION_ID]: { requires: [], teaches: [LABOUR_CONCEPT], traces: ["profile.the-gate-holds-the-line-not-discipline", "auto_fix_on_by_default"], }, [STANCE_SECTION_ID]: { requires: [], teaches: [UNVERIFIED_CONCEPT], traces: [ "claims_are_lies", "a_claim_about_a_mechanism_opens_the_mechanism", "present_tense_only", "read_files_whole", ], }, [ADVERSARIAL_SECTION_ID]: { requires: [UNVERIFIED_CONCEPT], teaches: [ADVERSARIAL_CONCEPT], traces: ["adversarial_default", "claims_are_lies"], }, [READING_SECTION_ID]: { requires: [LOOP_CONCEPT], teaches: [READING_CONCEPT], traces: ["architecture_is_the_target", "introspection_over_abstraction", "profile.how-i-reason"], }, [ENCODING_SECTION_ID]: { requires: [LABOUR_CONCEPT], teaches: [ENCODING_CONCEPT], traces: [ "scope_separation", "precedence_order", "document_scope_law", "slots_resolve_through_the_adapter", "re-read mandate", ], }, [MECHANISM_SECTION_ID]: { requires: [ENCODING_CONCEPT], teaches: [MECHANISM_CONCEPT], traces: ["no_discipline", "enforcement-core", "friction_is_a_missing_mechanism"], }, [RULE_SECTION_ID]: { requires: [MECHANISM_CONCEPT], teaches: [RULE_CONCEPT], traces: [ "feedback_capture_protocol", "format_mandate", "decision_names_its_gate_or_its_proof", "coverage_is_declared", "rule_evidence_is_a_measurement_not_a_narrative", ], }, [CONTRACT_SECTION_ID]: { requires: [LABOUR_CONCEPT], teaches: [CONTRACT_CONCEPT], traces: ["role_document_is_uniform", "a_measured_entry_retires_by_extraction", "coverage_is_declared"], }, [POLICY_SECTION_ID]: { requires: [ENCODING_CONCEPT, RULE_CONCEPT], teaches: [POLICY_CONCEPT], traces: [ "docs_are_claims_too", "re-read mandate", "overwrite_dont_annotate", "history_has_two_homes", "collab_board_checked_first", "auto_mode_flows", "projection_is_one_line", "slot_absence_is_honoured", ], }, [ONBOARDING_SECTION_ID]: { requires: [ENCODING_CONCEPT], teaches: [ONBOARDING_CONCEPT], traces: [ "template_is_the_contract_not_a_copy_of_it", "slots_resolve_through_the_adapter", "slot_absence_is_honoured", "mechanism_transfers_catalogs_rederive", ], }, }; export const METHODOLOGY_GRAPH: ContentGraph = { page: METHODOLOGY_PAGE, sections: { ...START_GRAPH_SECTIONS, ...PLAN_GRAPH_SECTIONS, ...BUILD_GRAPH_SECTIONS, ...VERIFY_GRAPH_SECTIONS, ...COLLABORATE_GRAPH_SECTIONS, ...SHIP_GRAPH_SECTIONS, }, };