import { FLAT_LIST_CONCEPT, LABOUR_CONCEPT, LOOP_CONCEPT, QUESTION_CONCEPT, TEMPLATE_CONCEPT, TENSION_CONCEPT, WORTH_CONCEPT, } from "#core/ids/concept.ids"; import { FLAT_LIST_SECTION_ID, QUESTION_SECTION_ID, TEMPLATE_SECTION_ID, TENSION_SECTION_ID, WORTH_SECTION_ID, } from "#core/ids/plan.ids"; import type { GraphSection } from "#types/methodology.types"; export const PLAN_GRAPH_SECTIONS: Readonly> = { [WORTH_SECTION_ID]: { requires: [LOOP_CONCEPT], teaches: [WORTH_CONCEPT], traces: [ "checklist-governance-concern", "non_goal_is_stated", "four_gates_always_run", "consumer_breaks_without_it", ], }, [FLAT_LIST_SECTION_ID]: { requires: [LOOP_CONCEPT], teaches: [FLAT_LIST_CONCEPT], traces: [ "checklist-governance-concern", "linear_execution_order", "severity_routes_never_orders", "ripple_carries_names", "task_id_resolves_to_one_task", "checklist_is_current_and_future", "governed-plan-concern", ], }, [TEMPLATE_SECTION_ID]: { requires: [FLAT_LIST_CONCEPT, WORTH_CONCEPT], teaches: [TEMPLATE_CONCEPT], traces: [ "templates_are_executed", "plan_is_drafted_then_restructured", "template_selector_is_genesis", "recurring_shape_is_a_template", "mechanism_transfers_catalogs_rederive", "follow_template_as_stated", "templates_stay_independent", ], }, [QUESTION_SECTION_ID]: { requires: [LABOUR_CONCEPT], teaches: [QUESTION_CONCEPT], traces: ["ask_before_dependent_work", "uncertainty_escalates", "recommend_never_abstain", "ask_via_tool_only"], }, [TENSION_SECTION_ID]: { requires: [], teaches: [TENSION_CONCEPT], traces: ["tension-resolution mandate", "rule_conflict_resolves_architecturally", "never_exclude_to_go_green"], }, };