"""Bootstrap NextAction strategies.""" from __future__ import annotations from steering.strategies.next_action.agile_iteration import ( register_agile_iteration_strategy, ) from steering.strategies.next_action.continuous_product import ( continuous_product_strategy, register_continuous_product_strategy, ) from steering.strategies.next_action.default_strategy import default_strategy from steering.strategies.next_action.maturity_progression import ( register_maturity_progression_strategy, ) from steering.strategies.next_action.product_milestone_driven import ( product_milestone_strategy, ) from steering.strategies.next_action.program_delivery import ( program_delivery_strategy, register_program_delivery_strategy, ) from steering.strategies.next_action.queue_pull import register_queue_pull_strategy from steering.strategies.next_action.recurring_control import ( register_recurring_control_strategy, ) from steering.strategies.next_action.registry import ( get_next_action_strategy, register_next_action_strategy, ) from steering.strategies.next_action.sequential_dependency import ( register_sequential_dependency_strategy, ) def register_builtin_strategies() -> None: for strategy in (default_strategy, product_milestone_strategy): if not get_next_action_strategy(strategy.key): register_next_action_strategy(strategy) register_program_delivery_strategy() register_continuous_product_strategy() register_sequential_dependency_strategy() register_maturity_progression_strategy() register_recurring_control_strategy() register_queue_pull_strategy() register_agile_iteration_strategy()