Kairo-Jinkendo/backend/steering/methods/registrations/product_milestone_driven.py
Lars 4fbb3b3469
All checks were successful
Deploy Development / deploy (push) Successful in 43s
Test Suite / pytest-backend (push) Successful in 3m13s
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 18s
Test Suite / playwright-smoke (push) Successful in 13s
fix(AP2.4): product_milestone_driven ohne work_cycles ? generic-kompatibel.
om_capabilities-Pruefung blockierte Methodenwechsel auf initiative.generic; Gate-Slices reichen fuer Meilenstein-Steuerung.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-25 11:34:26 +02:00

49 lines
1.4 KiB
Python

"""Built-in method: product_milestone_driven — AP1.1 / AP2.4."""
from __future__ import annotations
from steering.graph.profiles import STRICT
from steering.methods.registrations._helpers import ELEM_NEXT, SLICES_OM_STANDARD
from steering.methods.registry import MethodDefinition, get_method, register_method
_PRODUCT_STEPS = (
"intake",
"method_selection",
"structure_setup",
"planning",
"action_selection",
"assignment",
"waiting",
"result_intake",
"validation",
"review",
"adaptation",
"closure",
)
def register() -> None:
if get_method("product_milestone_driven"):
return
register_method(
MethodDefinition(
key="product_milestone_driven",
version="0.1.0",
label="Produkt / Meilenstein",
description="Meilenstein-orientierte Steuerung für Produkt- und Projektentwicklung",
default_lifecycle_steps=_PRODUCT_STEPS,
next_action_strategy_key="product_milestone_driven",
data_slices=SLICES_OM_STANDARD,
compatible_archetype_keys=frozenset(
{
"initiative.product",
"initiative.generic",
"initiative.linear_project",
"initiative.program",
}
),
steering_elements=ELEM_NEXT | frozenset({"gate_fulfillment"}),
graph_profile=STRICT,
)
)