695 lines
22 KiB
JSON
695 lines
22 KiB
JSON
{
|
||
"schema_version": "ai_agent_gitea_pr_draft_lane_v1",
|
||
"generated_at": "2026-06-11T23:59:40+08:00",
|
||
"program_status": {
|
||
"overall_completion_percent": 78,
|
||
"current_priority": "P2",
|
||
"current_task_id": "P2-402E",
|
||
"next_task_id": "P2-402F",
|
||
"read_only_mode": true,
|
||
"runtime_authority": "draft_lane_only_no_pr_creation_or_branch_push",
|
||
"status_note": "P2-402E 已建立 Gitea PR 草案 lane;本波只定義 grouping、automerge=false、測試證據、rollback、owner response,不 push branch、不建立 PR、不觸發 workflow、不升級套件、不發 Telegram。"
|
||
},
|
||
"source_refs": [
|
||
"docs/evaluations/ai_agent_proactive_operations_contract_2026-06-11.json",
|
||
"docs/evaluations/ai_agent_tool_adoption_approval_package_2026-06-11.json",
|
||
"docs/evaluations/ai_agent_telegram_action_required_digest_policy_2026-06-11.json",
|
||
"docs/superpowers/specs/2026-04-15-MASTER-ai-autonomous-flywheel-v2.md#321c-2026-06-11-ai-agent-主動營運委派與版本生命週期契約",
|
||
"docs/ai/AI_AGENT_AUTOMATION_WORKLIST_2026-06-04.md"
|
||
],
|
||
"lane_intent": {
|
||
"purpose": "讓 Hermes / OpenClaw / NemoTron 先產生可審核的 Gitea PR 草案計畫,包含分組、風險、測試、rollback 與 owner response;真正 branch push / PR creation 必須等 bot、branch policy 與人工批准。",
|
||
"non_goals": [
|
||
"不建立 Gitea branch",
|
||
"不建立或更新 Gitea PR",
|
||
"不修改 workflow",
|
||
"不升級 package 或 lockfile",
|
||
"不 build / pull container image",
|
||
"不觸發 CI workflow",
|
||
"不 auto merge",
|
||
"不送 Telegram"
|
||
],
|
||
"human_approval_gate": "gitea_bot_and_branch_policy_approval_required"
|
||
},
|
||
"branch_strategy": {
|
||
"draft_branch_prefix": "agents/proposal/",
|
||
"branch_name_pattern": "agents/proposal/{lane_id}/{yyyyMMdd}-{short_target}",
|
||
"branch_push_allowed": false,
|
||
"pr_creation_allowed": false,
|
||
"automerge": false,
|
||
"required_prefix_after_approval": "codex/"
|
||
},
|
||
"grouping_rules": [
|
||
{
|
||
"group_id": "dependency_patch_low_risk",
|
||
"display_name": "低風險依賴 patch 草案",
|
||
"owner_agent": "Hermes",
|
||
"risk_tier": "medium",
|
||
"max_batch_size": 5,
|
||
"draft_only": true,
|
||
"automerge": false,
|
||
"requires_openclaw_review": true,
|
||
"rollback_required": true,
|
||
"required_check_ids": [
|
||
"schema_and_json_validation",
|
||
"targeted_tests_plan",
|
||
"secret_and_transcript_redaction"
|
||
],
|
||
"allowed_change_kinds": [
|
||
"manifest proposal",
|
||
"lockfile proposal after approval",
|
||
"release note summary"
|
||
],
|
||
"blocked_change_kinds": [
|
||
"major version bump",
|
||
"security critical package",
|
||
"runtime config mutation"
|
||
]
|
||
},
|
||
{
|
||
"group_id": "security_cve_advisory",
|
||
"display_name": "CVE / OSV 修補草案",
|
||
"owner_agent": "OpenClaw",
|
||
"risk_tier": "high",
|
||
"max_batch_size": 2,
|
||
"draft_only": true,
|
||
"automerge": false,
|
||
"requires_openclaw_review": true,
|
||
"rollback_required": true,
|
||
"required_check_ids": [
|
||
"vulnerability_evidence_ref",
|
||
"targeted_tests_plan",
|
||
"rollback_plan_attached",
|
||
"owner_response_required"
|
||
],
|
||
"allowed_change_kinds": [
|
||
"security advisory summary",
|
||
"patch proposal",
|
||
"blast radius matrix"
|
||
],
|
||
"blocked_change_kinds": [
|
||
"external vulnerability DB download",
|
||
"package upgrade without owner approval",
|
||
"production hot patch"
|
||
]
|
||
},
|
||
{
|
||
"group_id": "container_image_digest_proposal",
|
||
"display_name": "Container image digest / base image 草案",
|
||
"owner_agent": "Hermes",
|
||
"risk_tier": "high",
|
||
"max_batch_size": 2,
|
||
"draft_only": true,
|
||
"automerge": false,
|
||
"requires_openclaw_review": true,
|
||
"rollback_required": true,
|
||
"required_check_ids": [
|
||
"image_digest_evidence",
|
||
"targeted_tests_plan",
|
||
"rollback_plan_attached",
|
||
"maintenance_window_required"
|
||
],
|
||
"allowed_change_kinds": [
|
||
"Dockerfile proposal",
|
||
"image digest pin proposal",
|
||
"smoke plan"
|
||
],
|
||
"blocked_change_kinds": [
|
||
"docker build",
|
||
"image pull",
|
||
"kustomization image tag mutation"
|
||
]
|
||
},
|
||
{
|
||
"group_id": "ai_agent_model_tool_contract_change",
|
||
"display_name": "AI Agent / model / tool contract 草案",
|
||
"owner_agent": "NemoTron + OpenClaw",
|
||
"risk_tier": "critical",
|
||
"max_batch_size": 1,
|
||
"draft_only": true,
|
||
"automerge": false,
|
||
"requires_openclaw_review": true,
|
||
"rollback_required": true,
|
||
"required_check_ids": [
|
||
"sanitized_replay_gate",
|
||
"targeted_tests_plan",
|
||
"owner_response_required",
|
||
"rollback_plan_attached"
|
||
],
|
||
"allowed_change_kinds": [
|
||
"offline replay plan",
|
||
"model route proposal",
|
||
"tool contract proposal"
|
||
],
|
||
"blocked_change_kinds": [
|
||
"production route change",
|
||
"paid API enablement",
|
||
"shadow or canary without gate"
|
||
]
|
||
},
|
||
{
|
||
"group_id": "host_k3s_stateful_maintenance_plan",
|
||
"display_name": "Host / K3s / stateful maintenance 草案",
|
||
"owner_agent": "OpenClaw",
|
||
"risk_tier": "critical",
|
||
"max_batch_size": 1,
|
||
"draft_only": true,
|
||
"automerge": false,
|
||
"requires_openclaw_review": true,
|
||
"rollback_required": true,
|
||
"required_check_ids": [
|
||
"maintenance_window_required",
|
||
"rollback_plan_attached",
|
||
"owner_response_required",
|
||
"targeted_tests_plan"
|
||
],
|
||
"allowed_change_kinds": [
|
||
"maintenance window proposal",
|
||
"version skew report",
|
||
"stateful backup readiness note"
|
||
],
|
||
"blocked_change_kinds": [
|
||
"host upgrade",
|
||
"reboot",
|
||
"stateful service restart"
|
||
]
|
||
},
|
||
{
|
||
"group_id": "docs_runbook_km_update",
|
||
"display_name": "文件 / runbook / KM 草案",
|
||
"owner_agent": "Hermes",
|
||
"risk_tier": "low",
|
||
"max_batch_size": 8,
|
||
"draft_only": true,
|
||
"automerge": false,
|
||
"requires_openclaw_review": true,
|
||
"rollback_required": true,
|
||
"required_check_ids": [
|
||
"schema_and_json_validation",
|
||
"secret_and_transcript_redaction",
|
||
"owner_response_required"
|
||
],
|
||
"allowed_change_kinds": [
|
||
"runbook proposal",
|
||
"LOGBOOK summary",
|
||
"KM draft"
|
||
],
|
||
"blocked_change_kinds": [
|
||
"canonical KM publish without owner response",
|
||
"secret-bearing evidence",
|
||
"work-window transcript"
|
||
]
|
||
}
|
||
],
|
||
"lane_steps": [
|
||
{
|
||
"step_id": "collect_committed_evidence",
|
||
"owner_agent": "Hermes",
|
||
"purpose": "讀取已提交 snapshot、LOGBOOK 與批准包,整理 PR 草案候選來源。",
|
||
"planned_output": "evidence_ref_list",
|
||
"runtime_execution_allowed": false,
|
||
"repo_write_allowed": false,
|
||
"approval_gate": "read_only_allowed"
|
||
},
|
||
{
|
||
"step_id": "group_and_dedupe_candidates",
|
||
"owner_agent": "Hermes",
|
||
"purpose": "依變更類型、風險與 owner 分組,避免單 PR 混入無關風險。",
|
||
"planned_output": "grouping_decision",
|
||
"runtime_execution_allowed": false,
|
||
"repo_write_allowed": false,
|
||
"approval_gate": "draft_lane_policy_only"
|
||
},
|
||
{
|
||
"step_id": "openclaw_risk_arbitration",
|
||
"owner_agent": "OpenClaw",
|
||
"purpose": "審核 blast radius、rollback、HITL 與是否需拆 PR。",
|
||
"planned_output": "risk_verdict",
|
||
"runtime_execution_allowed": false,
|
||
"repo_write_allowed": false,
|
||
"approval_gate": "openclaw_review_required"
|
||
},
|
||
{
|
||
"step_id": "nemotron_replay_requirement_check",
|
||
"owner_agent": "NemoTron",
|
||
"purpose": "只對 AI Agent / model / 提示詞 / tool contract 類變更提出 sanitized replay 需求。",
|
||
"planned_output": "replay_gate_requirement",
|
||
"runtime_execution_allowed": false,
|
||
"repo_write_allowed": false,
|
||
"approval_gate": "offline_replay_approval_required"
|
||
},
|
||
{
|
||
"step_id": "attach_test_and_smoke_plan",
|
||
"owner_agent": "Hermes",
|
||
"purpose": "列出 PR 前必備測試、schema、secret/redaction 與 production smoke 證據。",
|
||
"planned_output": "test_plan",
|
||
"runtime_execution_allowed": false,
|
||
"repo_write_allowed": false,
|
||
"approval_gate": "test_plan_required"
|
||
},
|
||
{
|
||
"step_id": "attach_rollback_and_owner_response",
|
||
"owner_agent": "OpenClaw",
|
||
"purpose": "要求 rollback、owner response、maintenance window 與風險接受欄位齊全。",
|
||
"planned_output": "rollback_owner_packet",
|
||
"runtime_execution_allowed": false,
|
||
"repo_write_allowed": false,
|
||
"approval_gate": "owner_response_required"
|
||
},
|
||
{
|
||
"step_id": "emit_draft_pr_packet",
|
||
"owner_agent": "Hermes",
|
||
"purpose": "只產出 PR 草案封包;不 push branch、不呼叫 Gitea API、不觸發 workflow。",
|
||
"planned_output": "draft_pr_packet",
|
||
"runtime_execution_allowed": false,
|
||
"repo_write_allowed": false,
|
||
"approval_gate": "gitea_bot_and_branch_policy_approval_required"
|
||
}
|
||
],
|
||
"required_checks": [
|
||
{
|
||
"check_id": "schema_and_json_validation",
|
||
"display_name": "Schema / JSON 驗證",
|
||
"owner_agent": "Hermes",
|
||
"blocking": true,
|
||
"evidence_required": true,
|
||
"run_now_allowed": false,
|
||
"planned_command_or_evidence": "python3 -m json.tool 與 targeted schema validation evidence"
|
||
},
|
||
{
|
||
"check_id": "targeted_tests_plan",
|
||
"display_name": "Targeted tests plan",
|
||
"owner_agent": "Hermes",
|
||
"blocking": true,
|
||
"evidence_required": true,
|
||
"run_now_allowed": false,
|
||
"planned_command_or_evidence": "pytest / ruff / frontend smoke plan,依變更範圍列出"
|
||
},
|
||
{
|
||
"check_id": "secret_and_transcript_redaction",
|
||
"display_name": "Secret 與工作視窗內容遮蔽",
|
||
"owner_agent": "OpenClaw",
|
||
"blocking": true,
|
||
"evidence_required": true,
|
||
"run_now_allowed": false,
|
||
"planned_command_or_evidence": "doc secrets sanity check + forbidden transcript marker scan"
|
||
},
|
||
{
|
||
"check_id": "rollback_plan_attached",
|
||
"display_name": "Rollback plan attached",
|
||
"owner_agent": "OpenClaw",
|
||
"blocking": true,
|
||
"evidence_required": true,
|
||
"run_now_allowed": false,
|
||
"planned_command_or_evidence": "回滾 commit / config revert / deployment rollback plan"
|
||
},
|
||
{
|
||
"check_id": "owner_response_required",
|
||
"display_name": "Owner response required",
|
||
"owner_agent": "OpenClaw",
|
||
"blocking": true,
|
||
"evidence_required": true,
|
||
"run_now_allowed": false,
|
||
"planned_command_or_evidence": "owner 接受、拒絕或要求拆分的結構化回覆"
|
||
},
|
||
{
|
||
"check_id": "vulnerability_evidence_ref",
|
||
"display_name": "Vulnerability evidence ref",
|
||
"owner_agent": "OpenClaw",
|
||
"blocking": true,
|
||
"evidence_required": true,
|
||
"run_now_allowed": false,
|
||
"planned_command_or_evidence": "OSV / CVE / scanner report ref;本波不查外部 DB"
|
||
},
|
||
{
|
||
"check_id": "image_digest_evidence",
|
||
"display_name": "Image digest evidence",
|
||
"owner_agent": "Hermes",
|
||
"blocking": true,
|
||
"evidence_required": true,
|
||
"run_now_allowed": false,
|
||
"planned_command_or_evidence": "image digest / base image release evidence;本波不 pull image"
|
||
},
|
||
{
|
||
"check_id": "sanitized_replay_gate",
|
||
"display_name": "Sanitized replay gate",
|
||
"owner_agent": "NemoTron",
|
||
"blocking": true,
|
||
"evidence_required": true,
|
||
"run_now_allowed": false,
|
||
"planned_command_or_evidence": "AI Agent / model / 提示詞 變更需 sanitized replay plan 與 hidden-label gate"
|
||
},
|
||
{
|
||
"check_id": "maintenance_window_required",
|
||
"display_name": "Deployment / maintenance window required",
|
||
"owner_agent": "OpenClaw",
|
||
"blocking": true,
|
||
"evidence_required": true,
|
||
"run_now_allowed": false,
|
||
"planned_command_or_evidence": "變更需列 deployment 或 maintenance window;本波不部署"
|
||
}
|
||
],
|
||
"owner_response_requirements": [
|
||
{
|
||
"requirement_id": "business_owner_verdict",
|
||
"owner_agent": "OpenClaw",
|
||
"required_fields": [
|
||
"owner",
|
||
"decision",
|
||
"business_impact",
|
||
"risk_acceptance",
|
||
"evidence_ref"
|
||
],
|
||
"required_before_pr_creation": true
|
||
},
|
||
{
|
||
"requirement_id": "sre_owner_readiness",
|
||
"owner_agent": "OpenClaw",
|
||
"required_fields": [
|
||
"owner",
|
||
"decision",
|
||
"rollback_acceptance",
|
||
"maintenance_window",
|
||
"evidence_ref"
|
||
],
|
||
"required_before_pr_creation": true
|
||
},
|
||
{
|
||
"requirement_id": "security_owner_review",
|
||
"owner_agent": "OpenClaw",
|
||
"required_fields": [
|
||
"owner",
|
||
"decision",
|
||
"risk_acceptance",
|
||
"business_impact",
|
||
"evidence_ref"
|
||
],
|
||
"required_before_pr_creation": true
|
||
},
|
||
{
|
||
"requirement_id": "product_owner_scope_response",
|
||
"owner_agent": "Hermes",
|
||
"required_fields": [
|
||
"owner",
|
||
"decision",
|
||
"business_impact",
|
||
"maintenance_window",
|
||
"evidence_ref"
|
||
],
|
||
"required_before_pr_creation": true
|
||
}
|
||
],
|
||
"rollback_requirements": [
|
||
{
|
||
"requirement_id": "git_revert_plan",
|
||
"description": "必須列出可回退 commit 或檔案層 revert 計畫。",
|
||
"required": true,
|
||
"must_be_attached_before_pr_creation": true
|
||
},
|
||
{
|
||
"requirement_id": "config_recovery_plan",
|
||
"description": "涉及 config / K8s / workflow 時必須列出原值與回復步驟。",
|
||
"required": true,
|
||
"must_be_attached_before_pr_creation": true
|
||
},
|
||
{
|
||
"requirement_id": "data_migration_rollback",
|
||
"description": "涉及 schema / migration 時必須列出 forward-only 或 rollback policy。",
|
||
"required": true,
|
||
"must_be_attached_before_pr_creation": true
|
||
},
|
||
{
|
||
"requirement_id": "runtime_disable_switch",
|
||
"description": "涉及 runtime gate 時必須列出 disable switch 與監控證據。",
|
||
"required": true,
|
||
"must_be_attached_before_pr_creation": true
|
||
},
|
||
{
|
||
"requirement_id": "telegram_noise_rollback",
|
||
"description": "涉及告警或通知時必須列出降噪、停發與 fallback 策略。",
|
||
"required": true,
|
||
"must_be_attached_before_pr_creation": true
|
||
},
|
||
{
|
||
"requirement_id": "production_smoke_revert_gate",
|
||
"description": "正式部署前必須定義 smoke 失敗時的停止與回退條件。",
|
||
"required": true,
|
||
"must_be_attached_before_pr_creation": true
|
||
}
|
||
],
|
||
"draft_templates": [
|
||
{
|
||
"template_id": "dependency_update_draft",
|
||
"display_name": "Dependency update draft PR template",
|
||
"applies_to_group_ids": [
|
||
"dependency_patch_low_risk",
|
||
"security_cve_advisory"
|
||
],
|
||
"required_sections": [
|
||
"變更摘要",
|
||
"版本差異",
|
||
"測試計畫",
|
||
"Rollback",
|
||
"Owner response"
|
||
],
|
||
"forbidden_fields": [
|
||
"secret_value",
|
||
"token",
|
||
"authorization_header",
|
||
"work_window_transcript",
|
||
"codex_user_message",
|
||
"prompt_text",
|
||
"chain_of_thought",
|
||
"session_id",
|
||
"browser_context"
|
||
],
|
||
"automerge": false,
|
||
"branch_push_allowed": false
|
||
},
|
||
{
|
||
"template_id": "runtime_infra_draft",
|
||
"display_name": "Runtime / infrastructure draft PR template",
|
||
"applies_to_group_ids": [
|
||
"container_image_digest_proposal",
|
||
"host_k3s_stateful_maintenance_plan"
|
||
],
|
||
"required_sections": [
|
||
"影響範圍",
|
||
"部署或維護窗口",
|
||
"監控與 smoke",
|
||
"Rollback",
|
||
"Owner response"
|
||
],
|
||
"forbidden_fields": [
|
||
"secret_value",
|
||
"token",
|
||
"authorization_header",
|
||
"work_window_transcript",
|
||
"codex_user_message",
|
||
"prompt_text",
|
||
"chain_of_thought",
|
||
"session_id",
|
||
"browser_context"
|
||
],
|
||
"automerge": false,
|
||
"branch_push_allowed": false
|
||
},
|
||
{
|
||
"template_id": "ai_agent_contract_draft",
|
||
"display_name": "AI Agent / model / tool contract draft template",
|
||
"applies_to_group_ids": [
|
||
"ai_agent_model_tool_contract_change"
|
||
],
|
||
"required_sections": [
|
||
"候選 Agent 或模型",
|
||
"Replay / shadow gate",
|
||
"安全邊界",
|
||
"Rollback",
|
||
"Owner response"
|
||
],
|
||
"forbidden_fields": [
|
||
"secret_value",
|
||
"token",
|
||
"authorization_header",
|
||
"work_window_transcript",
|
||
"codex_user_message",
|
||
"prompt_text",
|
||
"chain_of_thought",
|
||
"session_id",
|
||
"browser_context"
|
||
],
|
||
"automerge": false,
|
||
"branch_push_allowed": false
|
||
},
|
||
{
|
||
"template_id": "docs_runbook_km_draft",
|
||
"display_name": "Docs / runbook / KM draft template",
|
||
"applies_to_group_ids": [
|
||
"docs_runbook_km_update"
|
||
],
|
||
"required_sections": [
|
||
"文件目的",
|
||
"證據來源",
|
||
"使用者影響",
|
||
"Rollback",
|
||
"Owner response"
|
||
],
|
||
"forbidden_fields": [
|
||
"secret_value",
|
||
"token",
|
||
"authorization_header",
|
||
"work_window_transcript",
|
||
"codex_user_message",
|
||
"prompt_text",
|
||
"chain_of_thought",
|
||
"session_id",
|
||
"browser_context"
|
||
],
|
||
"automerge": false,
|
||
"branch_push_allowed": false
|
||
}
|
||
],
|
||
"agent_roles": [
|
||
{
|
||
"agent_id": "hermes",
|
||
"role": "建立 PR 草案封包、分組、release note、test plan 與 docs / KM 草稿。",
|
||
"allowed_now": [
|
||
"讀取 committed evidence",
|
||
"產出 draft_pr_packet",
|
||
"產出 grouping_decision"
|
||
],
|
||
"blocked_until_approval": [
|
||
"push branch",
|
||
"create Gitea PR",
|
||
"trigger workflow",
|
||
"modify lockfile"
|
||
]
|
||
},
|
||
{
|
||
"agent_id": "openclaw",
|
||
"role": "仲裁風險、rollback、owner response、HITL 與是否拆分 PR。",
|
||
"allowed_now": [
|
||
"審核 draft packet",
|
||
"標註 blocker",
|
||
"要求 owner response"
|
||
],
|
||
"blocked_until_approval": [
|
||
"approve itself",
|
||
"merge PR",
|
||
"runtime execution",
|
||
"production route change"
|
||
]
|
||
},
|
||
{
|
||
"agent_id": "nemotron",
|
||
"role": "針對 AI Agent / model / 提示詞 / tool contract 類變更提出 sanitized replay gate。",
|
||
"allowed_now": [
|
||
"定義 replay requirement",
|
||
"檢查 output contract",
|
||
"標記 model/tool risk"
|
||
],
|
||
"blocked_until_approval": [
|
||
"call paid API",
|
||
"run external replay",
|
||
"shadow/canary",
|
||
"production route"
|
||
]
|
||
}
|
||
],
|
||
"display_redaction_contract": {
|
||
"conversation_transcript_display_allowed": false,
|
||
"redaction_required": true,
|
||
"allowed_frontend_fields": [
|
||
"整體完成度",
|
||
"目前任務",
|
||
"下一任務",
|
||
"grouping rule 摘要",
|
||
"required checks 摘要",
|
||
"rollback / owner response 邊界"
|
||
],
|
||
"forbidden_frontend_content": [
|
||
"工作視窗對話內容",
|
||
"secret 明文",
|
||
"提示詞全文",
|
||
"推理鏈",
|
||
"瀏覽器 session 上下文"
|
||
]
|
||
},
|
||
"operation_boundaries": {
|
||
"read_only_lane_allowed": true,
|
||
"gitea_branch_push_allowed": false,
|
||
"gitea_pr_creation_allowed": false,
|
||
"gitea_pr_update_allowed": false,
|
||
"gitea_pr_comment_allowed": false,
|
||
"auto_merge_allowed": false,
|
||
"workflow_trigger_allowed": false,
|
||
"ci_workflow_change_allowed": false,
|
||
"lockfile_write_allowed": false,
|
||
"package_upgrade_allowed": false,
|
||
"file_mutation_allowed": false,
|
||
"external_registry_lookup_allowed": false,
|
||
"vulnerability_database_download_allowed": false,
|
||
"docker_build_allowed": false,
|
||
"image_pull_allowed": false,
|
||
"production_route_change_allowed": false,
|
||
"telegram_direct_send_allowed": false,
|
||
"telegram_gateway_queue_write_allowed": false,
|
||
"secret_plaintext_allowed": false,
|
||
"conversation_transcript_allowed": false
|
||
},
|
||
"approval_boundaries": {
|
||
"gitea_bot_account_approved": false,
|
||
"gitea_branch_policy_approved": false,
|
||
"gitea_pr_creation_approved": false,
|
||
"gitea_pr_update_approved": false,
|
||
"workflow_trigger_approved": false,
|
||
"ci_workflow_change_approved": false,
|
||
"lockfile_write_approved": false,
|
||
"package_upgrade_approved": false,
|
||
"docker_build_approved": false,
|
||
"image_pull_approved": false,
|
||
"auto_merge_approved": false,
|
||
"telegram_digest_send_approved": false,
|
||
"runtime_execution_approved": false,
|
||
"production_route_change_approved": false,
|
||
"secret_plaintext_approved": false
|
||
},
|
||
"rollups": {
|
||
"grouping_rule_count": 6,
|
||
"lane_step_count": 7,
|
||
"required_check_count": 9,
|
||
"owner_response_requirement_count": 4,
|
||
"rollback_requirement_count": 6,
|
||
"draft_template_count": 4,
|
||
"draft_group_ids": [
|
||
"dependency_patch_low_risk",
|
||
"security_cve_advisory",
|
||
"container_image_digest_proposal",
|
||
"ai_agent_model_tool_contract_change",
|
||
"host_k3s_stateful_maintenance_plan",
|
||
"docs_runbook_km_update"
|
||
],
|
||
"owner_response_requirement_ids": [
|
||
"business_owner_verdict",
|
||
"sre_owner_readiness",
|
||
"security_owner_review",
|
||
"product_owner_scope_response"
|
||
],
|
||
"critical_risk_group_ids": [
|
||
"ai_agent_model_tool_contract_change",
|
||
"host_k3s_stateful_maintenance_plan"
|
||
],
|
||
"gitea_branch_push_allowed_count": 0,
|
||
"gitea_pr_creation_allowed_count": 0,
|
||
"auto_merge_allowed_count": 0,
|
||
"workflow_trigger_allowed_count": 0,
|
||
"lockfile_write_allowed_count": 0,
|
||
"telegram_direct_send_allowed_count": 0,
|
||
"conversation_transcript_allowed_count": 0,
|
||
"next_approval_task_ids": [
|
||
"P2-402F",
|
||
"P2-402G"
|
||
]
|
||
}
|
||
}
|