"""AP2.0a — remaining method stubs — AP2.4 steering elements.""" from __future__ import annotations from steering.graph.profiles import FULFILLMENT, LIGHT, STRICT from steering.lifecycle.slot_maps import ( SEQUENTIAL_DEPENDENCY_SLOTS, slot_map_to_tuple, ) from steering.methods.registrations._helpers import ( ELEM_NEXT, SLICES_AGILE, SLICES_MATURITY, SLICES_OM_STANDARD, SLICES_QUEUE, SLICES_RECURRING, register_stub_method, ) def register() -> None: register_stub_method( key="maturity_progression", label="Reifegrad-Entwicklung", description="Stufen, Routinen, historische Entwicklung", next_action_strategy_key="maturity_progression", data_slices=SLICES_MATURITY, compatible_archetype_keys=frozenset({"initiative.maturity_journey"}), steering_elements=ELEM_NEXT | frozenset({"maturity_stage", "recurring_rhythm"}), graph_profile=FULFILLMENT, ) register_stub_method( key="sequential_dependency", label="Sequenzielle Abhängigkeit", description="Graph-Pfade, kritischer Pfad (read model)", next_action_strategy_key="sequential_dependency", data_slices=SLICES_OM_STANDARD, compatible_archetype_keys=frozenset({"initiative.linear_project"}), steering_elements=ELEM_NEXT | frozenset({"critical_path", "gate_fulfillment"}), ui_features=frozenset({"criticalPathControl"}), graph_profile=STRICT, slot_map=slot_map_to_tuple(SEQUENTIAL_DEPENDENCY_SLOTS), ) register_stub_method( key="recurring_control", label="Rhythmus-Steuerung", description="Dauerprogramm, fällig/überfällig, Abweichungen", next_action_strategy_key="recurring_control", data_slices=SLICES_RECURRING, compatible_archetype_keys=frozenset({"initiative.recurring_program"}), steering_elements=ELEM_NEXT | frozenset({"recurring_rhythm"}), graph_profile=FULFILLMENT, ) register_stub_method( key="queue_pull", label="Inbox / Queue (Legacy)", description="Pull oder Empfehlung aus Queue — abgelöst durch checklist_flow", next_action_strategy_key="queue_pull", data_slices=SLICES_QUEUE, compatible_archetype_keys=frozenset({"initiative.support_queue"}), steering_elements=ELEM_NEXT | frozenset({"queue_inbox"}), graph_profile=LIGHT, ) register_stub_method( key="agile_iteration", label="Iterations-Zeitbox", description="Sprint/work_cycle Profil — komponiert mit Primary-Methoden", next_action_strategy_key="agile_iteration", data_slices=SLICES_AGILE, compatible_archetype_keys=frozenset( { "initiative.linear_project", "initiative.product", "initiative.recurring_program", } ), steering_elements=ELEM_NEXT | frozenset({"work_cycle_scope"}), ui_features=frozenset({"steeringSnapshotOnWorkSprint"}), graph_profile=STRICT, method_role="modifier", composes_with=frozenset( { "continuous_product", "sequential_dependency", "recurring_control", } ), ) register_stub_method( key="dispute_procedure", label="Verfahren / Konflikt", description="Reaktive Steuerung, Fristen, Entscheidungen", next_action_strategy_key="default", data_slices=frozenset( { "actions", "blockers", "evidence", "decisions", "reviews", "steering_methods", } ), compatible_archetype_keys=frozenset({"initiative.dispute_case"}), steering_elements=ELEM_NEXT | frozenset({"dispute_timeline"}), graph_profile=LIGHT, ) register_stub_method( key="chapter_based_progression", label="Kapitel-Entwicklung", description="Inhaltliche Progression, Reviews", next_action_strategy_key="default", data_slices=frozenset( { "actions", "roadmap", "blockers", "evidence", "decisions", "reviews", "steering_methods", } ), compatible_archetype_keys=frozenset({"initiative.content_project"}), steering_elements=ELEM_NEXT | frozenset({"chapter_progression", "gate_fulfillment"}), graph_profile=FULFILLMENT, )