Kairo-Jinkendo/backend/steering/methods/registrations/ap20_method_stubs.py
Lars a3b14d9c00
All checks were successful
Deploy Development / deploy (push) Successful in 47s
Test Suite / pytest-backend (push) Successful in 3m56s
Test Suite / lint-backend (push) Successful in 2s
Test Suite / compose-smoke (push) Has been skipped
Test Suite / k6 /api/health Baseline (push) Successful in 19s
Test Suite / playwright-smoke (push) Successful in 13s
feat(steering): Backlog-Vokabular aus Methoden-Vertrag (ADP P3)
backlog_epic_hierarchy als Steuerungselement, effektive steering_elements im Operating Context, Backend-Guards und UI ohne Slice-Ifs.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-27 10:44:38 +02:00

132 lines
4.6 KiB
Python

"""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", "backlog_epic_hierarchy"}),
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,
)