feat(governance): 顯示服務健康證據卡
This commit is contained in:
@@ -18,16 +18,16 @@ def test_ai_agent_automation_backlog_snapshot_endpoint_returns_committed_snapsho
|
||||
assert data["schema_version"] == "ai_agent_automation_backlog_v1"
|
||||
assert data["program_status"]["overall_completion_percent"] == 88
|
||||
assert data["program_status"]["read_only_mode"] is True
|
||||
assert data["program_status"]["current_task_id"] == "P1-005"
|
||||
assert data["program_status"]["next_task_id"] == "P1-006"
|
||||
assert data["rollups"]["total_items"] == len(data["backlog_items"]) == 24
|
||||
assert data["rollups"]["by_priority"]["P1"] == 22
|
||||
assert data["rollups"]["by_status"]["done"] == 21
|
||||
assert data["rollups"]["by_gate_status"]["read_only_allowed"] == 21
|
||||
assert data["program_status"]["current_task_id"] == "P1-006"
|
||||
assert data["program_status"]["next_task_id"] == "P1-007"
|
||||
assert data["rollups"]["total_items"] == len(data["backlog_items"]) == 25
|
||||
assert data["rollups"]["by_priority"]["P1"] == 23
|
||||
assert data["rollups"]["by_status"]["done"] == 22
|
||||
assert data["rollups"]["by_gate_status"]["read_only_allowed"] == 22
|
||||
assert data["progress_summary"]["overall_percent"] == 88
|
||||
assert data["progress_summary"]["done_items"] == 21
|
||||
assert data["progress_summary"]["total_items"] == 24
|
||||
assert data["item_approval_boundary_rollup"]["total_items"] == 24
|
||||
assert data["progress_summary"]["done_items"] == 22
|
||||
assert data["progress_summary"]["total_items"] == 25
|
||||
assert data["item_approval_boundary_rollup"]["total_items"] == 25
|
||||
assert data["item_approval_boundary_rollup"]["items_requiring_explicit_approval"] == [
|
||||
"AUTO-P1-004",
|
||||
"AUTO-P2-004",
|
||||
@@ -67,6 +67,12 @@ def test_ai_agent_automation_backlog_snapshot_endpoint_returns_committed_snapsho
|
||||
assert p1_005["approval_boundary"]["mode"] == "read_only_allowed"
|
||||
assert "service_restart" in p1_005["approval_boundary"]["blocked_actions"]
|
||||
assert "service_health_gap_matrix_2026-06-05.json" in p1_005["evidence_refs"][0]
|
||||
p1_006 = next(item for item in data["backlog_items"] if item["item_id"] == "AUTO-P1-006")
|
||||
assert p1_006["status"] == "done"
|
||||
assert p1_006["next_review"] == "P1-007"
|
||||
assert p1_006["approval_boundary"]["mode"] == "read_only_allowed"
|
||||
assert "live_probe" in p1_006["approval_boundary"]["blocked_actions"]
|
||||
assert "/zh-TW/governance?tab=automation-inventory" in p1_006["evidence_refs"]
|
||||
p1_306 = next(item for item in data["backlog_items"] if item["item_id"] == "AUTO-P1-306")
|
||||
assert p1_306["approval_boundary"]["mode"] == "read_only_allowed"
|
||||
assert "runtime_execution" in p1_306["approval_boundary"]["blocked_actions"]
|
||||
|
||||
@@ -18,10 +18,10 @@ def test_ai_agent_automation_inventory_snapshot_endpoint_returns_committed_snaps
|
||||
assert data["schema_version"] == "ai_agent_automation_inventory_snapshot_v1"
|
||||
assert data["program_status"]["overall_completion_percent"] == 100
|
||||
assert data["program_status"]["read_only_mode"] is True
|
||||
assert data["program_status"]["current_task_id"] == "P1-005"
|
||||
assert data["program_status"]["next_task_id"] == "P1-006"
|
||||
assert data["task_approval_boundary_rollup"]["total_tasks"] == len(data["tasks"]) == 31
|
||||
assert data["task_approval_boundary_rollup"]["by_mode"]["read_only_allowed"] == 28
|
||||
assert data["program_status"]["current_task_id"] == "P1-006"
|
||||
assert data["program_status"]["next_task_id"] == "P1-007"
|
||||
assert data["task_approval_boundary_rollup"]["total_tasks"] == len(data["tasks"]) == 32
|
||||
assert data["task_approval_boundary_rollup"]["by_mode"]["read_only_allowed"] == 29
|
||||
assert data["task_approval_boundary_rollup"]["by_mode"]["production_change_blocked"] == 1
|
||||
assert data["task_approval_boundary_rollup"]["tasks_requiring_explicit_approval"] == [
|
||||
"P0-001",
|
||||
@@ -53,6 +53,11 @@ def test_ai_agent_automation_inventory_snapshot_endpoint_returns_committed_snaps
|
||||
assert p1_005["approval_boundary"]["mode"] == "read_only_allowed"
|
||||
assert "service_restart" in p1_005["approval_boundary"]["blocked_actions"]
|
||||
assert "service_health_gap_matrix_2026-06-05.json" in p1_005["output"]
|
||||
p1_006 = next(task for task in data["tasks"] if task["task_id"] == "P1-006")
|
||||
assert p1_006["status"] == "done"
|
||||
assert p1_006["approval_boundary"]["mode"] == "read_only_allowed"
|
||||
assert "live_probe" in p1_006["approval_boundary"]["blocked_actions"]
|
||||
assert "service health evidence cards" in p1_006["output"]
|
||||
assert any(task["task_id"] == "P1-204" for task in data["tasks"])
|
||||
assert any(task["task_id"] == "P1-205" for task in data["tasks"])
|
||||
assert any(task["task_id"] == "P1-206" for task in data["tasks"])
|
||||
@@ -86,3 +91,4 @@ def test_ai_agent_automation_inventory_snapshot_endpoint_returns_committed_snaps
|
||||
assert any(evidence["evidence_id"] == "observability_contract_matrix_api" for evidence in data["evidence"])
|
||||
assert any(evidence["evidence_id"] == "ai_provider_route_matrix_api" for evidence in data["evidence"])
|
||||
assert any(evidence["evidence_id"] == "service_health_gap_matrix_api" for evidence in data["evidence"])
|
||||
assert any(evidence["evidence_id"] == "service_health_evidence_cards_ui" for evidence in data["evidence"])
|
||||
|
||||
Reference in New Issue
Block a user