fix(AP2.4): product_milestone_driven ohne work_cycles ? generic-kompatibel.
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

om_capabilities-Pruefung blockierte Methodenwechsel auf initiative.generic; Gate-Slices reichen fuer Meilenstein-Steuerung.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Lars 2026-07-25 11:34:26 +02:00
parent d3bf3c36e0
commit 4fbb3b3469
2 changed files with 11 additions and 4 deletions

View File

@ -3,7 +3,7 @@
from __future__ import annotations
from steering.graph.profiles import STRICT
from steering.methods.registrations._helpers import ELEM_NEXT, SLICES_PRODUCT
from steering.methods.registrations._helpers import ELEM_NEXT, SLICES_OM_STANDARD
from steering.methods.registry import MethodDefinition, get_method, register_method
_PRODUCT_STEPS = (
@ -33,7 +33,7 @@ def register() -> None:
description="Meilenstein-orientierte Steuerung für Produkt- und Projektentwicklung",
default_lifecycle_steps=_PRODUCT_STEPS,
next_action_strategy_key="product_milestone_driven",
data_slices=SLICES_PRODUCT,
data_slices=SLICES_OM_STANDARD,
compatible_archetype_keys=frozenset(
{
"initiative.product",
@ -42,8 +42,7 @@ def register() -> None:
"initiative.program",
}
),
steering_elements=ELEM_NEXT
| frozenset({"gate_fulfillment", "work_cycle_scope"}),
steering_elements=ELEM_NEXT | frozenset({"gate_fulfillment"}),
graph_profile=STRICT,
)
)

View File

@ -44,6 +44,14 @@ def test_list_compatible_methods_product_excludes_maturity():
assert "maturity_progression" not in keys
def test_product_milestone_driven_compatible_with_generic():
from steering.methods.registry import list_compatible_methods
methods = list_compatible_methods("initiative.generic")
keys = {m.key for m in methods}
assert "product_milestone_driven" in keys
def test_operating_context_includes_method_contract(client):
from tests.factories import provision_user_in_tenant
from tests.test_initiatives_actions import _auth, _create_initiative, _login