diff --git a/backend/steering/strategies/next_action/execution_ready.py b/backend/steering/strategies/next_action/execution_ready.py index 8baa125..4e025da 100644 --- a/backend/steering/strategies/next_action/execution_ready.py +++ b/backend/steering/strategies/next_action/execution_ready.py @@ -170,7 +170,7 @@ def blocked_execution_action_ids( def first_active_gate_id(ctx: TenantContext, initiative_id: str) -> str | None: - """First active roadmap item for initiative scope (Gate-Horizont).""" + """First active plan gate (milestone/review/maturity) — not work_cycle.""" from db import get_connection from psycopg2.extras import RealDictCursor @@ -184,6 +184,7 @@ def first_active_gate_id(ctx: TenantContext, initiative_id: str) -> str | None: JOIN roadmaps r ON r.id = ri.roadmap_id AND r.tenant_id = ri.tenant_id WHERE ri.tenant_id = %s AND r.initiative_id = %s AND ri.status = 'active' + AND ri.item_type != 'work_cycle' ORDER BY ri.sort_order ASC NULLS LAST, ri.target_date ASC NULLS LAST, ri.updated_at DESC