feat(governance): 顯示服務健康證據卡
All checks were successful
CD Pipeline / tests (push) Successful in 1m36s
Code Review / ai-code-review (push) Successful in 14s
CD Pipeline / build-and-deploy (push) Successful in 3m54s
CD Pipeline / post-deploy-checks (push) Successful in 1m54s

This commit is contained in:
Your Name
2026-06-05 15:00:46 +08:00
parent d53bbdf32c
commit 7d62cad6aa
10 changed files with 306 additions and 57 deletions

View File

@@ -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"]

View File

@@ -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"])