CUST-WP-0055 T05: workplan-first progress scope in sinks and resolvers
Prefer workplan_id in State Hub progress writes while dual-writing workstream_id for wire-compat. Extend schedule_health, evidence/report sinks, phase5 checks, k8s triage prose, and SCOPE terminology.
This commit is contained in:
parent
7947961ed4
commit
69fe69041f
12 changed files with 135 additions and 30 deletions
|
|
@ -10,7 +10,7 @@ Supported queries:
|
|||
- workplan_index: GET {STATE_HUB_URL}/workstreams/workplan-index
|
||||
- hub_inbox: GET {STATE_HUB_URL}/messages/?to_agent=hub&unread_only=true
|
||||
- pending_decisions: GET {STATE_HUB_URL}/decisions/?status=open (topic_id/
|
||||
workstream_id/decision_type passed through as given)
|
||||
workplan_id or legacy workstream_id/decision_type passed through)
|
||||
- coding_retro: latest /progress/ item with event_type=coding_retro
|
||||
- daily_triage_digest: curated scalar JSON digest for daily WSJF triage
|
||||
- recently_on_scope_hourly: POST {STATE_HUB_URL}/recently-on-scope/hourly
|
||||
|
|
@ -199,7 +199,9 @@ def _phase5_stabilization_check(params: dict[str, Any]) -> dict[str, Any]:
|
|||
}
|
||||
|
||||
baseline = params.get("baseline") or {}
|
||||
expected_workstreams = int(baseline.get("workstreams", 640))
|
||||
expected_workplan_total = int(
|
||||
baseline.get("workplans", baseline.get("workstreams", 640))
|
||||
)
|
||||
expected_tasks = int(baseline.get("tasks", 4002))
|
||||
expected_topics = int(baseline.get("topics", 14))
|
||||
sweep_limit = _bounded_int(params.get("sweep_limit", 6), default=6, minimum=1, maximum=24)
|
||||
|
|
@ -215,11 +217,12 @@ def _phase5_stabilization_check(params: dict[str, Any]) -> dict[str, Any]:
|
|||
|
||||
summary = _fetch_json("/state/summary")
|
||||
totals = (summary or {}).get("totals") or {}
|
||||
ws_total = int((totals.get("workstreams") or {}).get("total", -1))
|
||||
workplan_totals = totals.get("workplans") or totals.get("workstreams") or {}
|
||||
ws_total = int(workplan_totals.get("total", -1))
|
||||
task_total = int((totals.get("tasks") or {}).get("total", -1))
|
||||
topic_total = int((totals.get("topics") or {}).get("total", -1))
|
||||
totals_pass = (
|
||||
ws_total == expected_workstreams
|
||||
ws_total == expected_workplan_total
|
||||
and task_total == expected_tasks
|
||||
and topic_total == expected_topics
|
||||
)
|
||||
|
|
@ -259,11 +262,13 @@ def _phase5_stabilization_check(params: dict[str, Any]) -> dict[str, Any]:
|
|||
"health": {"pass": health_pass, "status": health.get("status") if isinstance(health, dict) else None},
|
||||
"totals": {
|
||||
"pass": totals_pass,
|
||||
"workplans": ws_total,
|
||||
"workstreams": ws_total,
|
||||
"tasks": task_total,
|
||||
"topics": topic_total,
|
||||
"expected": {
|
||||
"workstreams": expected_workstreams,
|
||||
"workplans": expected_workplan_total,
|
||||
"workstreams": expected_workplan_total,
|
||||
"tasks": expected_tasks,
|
||||
"topics": expected_topics,
|
||||
},
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue