Files
awoooi/docs/security/github-target-owner-decision-response.snapshot.json

1466 lines
62 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"schema_version": "github_target_owner_decision_response_v1",
"status": "draft_waiting_owner_response",
"date": "2026-06-11",
"mode": "owner_decision_response_intake_only",
"runtime_execution_authorized": false,
"source_contract": "github_target_decision_v1",
"target_contract": "github_target_repo_approval_package_v1",
"source_indexes": [
"docs/security/github-target-decision.snapshot.json",
"docs/security/github-target-repo-approval-package.snapshot.json",
"docs/security/GITHUB-TARGET-VISIBILITY-DECISION-TABLE.md",
"docs/security/GITHUB-TARGET-REPO-APPROVAL-PACKAGE.md",
"docs/security/source-control-approval-board.snapshot.json",
"docs/security/source-control-primary-readiness-gate.snapshot.json",
"docs/security/security-approval-review-packet.snapshot.json",
"docs/security/security-followup-runtime-gate.snapshot.json"
],
"summary": {
"owner_response_status": "waiting_owner_response",
"target_decision_count": 10,
"approval_required_target_count": 9,
"owner_response_request_packet_count": 1,
"owner_response_template_status_count": 9,
"owner_response_audit_event_template_count": 3,
"owner_response_redaction_example_count": 5,
"owner_response_collection_check_count": 6,
"intake_preflight_check_count": 6,
"response_template_count": 9,
"received_response_count": 0,
"accepted_response_count": 0,
"rejected_response_count": 0,
"acceptance_check_count": 8,
"rejection_rule_count": 10,
"repo_creation_authorized": false,
"visibility_change_authorized": false,
"refs_sync_authorized": false,
"github_primary_switch_authorized": false,
"secret_value_collection_allowed": false,
"action_buttons_allowed": false,
"target_owner_handoff_package_ready": true,
"target_owner_handoff_completion_percent": 100,
"target_owner_handoff_check_count": 6,
"target_owner_handoff_packet_field_count": 9,
"target_owner_request_dispatch_authorized": false,
"not_found_or_private_as_absent_allowed": false,
"repo_creation_allowed_without_owner_response": false,
"visibility_change_allowed_without_owner_response": false,
"github_target_owner_response_handoff_not_approval": true
},
"target_owner_handoff_preflight_checks": [
{
"check_id": "p1-3-baseline-sync",
"display_order": 1,
"check": "送件前確認 gitea/main、GitHub target probe、S4.9 / P1-2 最新狀態。",
"current_status": "defined_not_dispatched",
"execution_authorized": false
},
{
"check_id": "p1-3-nine-target-scope",
"display_order": 2,
"check": "只向 9 個 approval-required targets 收 owner / visibility / canonical 回覆。",
"current_status": "defined_not_dispatched",
"execution_authorized": false
},
{
"check_id": "p1-3-external-scope-summary",
"display_order": 3,
"check": "nexu-io/open-design 只作 external scope evidence不納入 AWOOOI target approval queue。",
"current_status": "defined_not_dispatched",
"execution_authorized": false
},
{
"check_id": "p1-3-not-found-or-private-semantics",
"display_order": 4,
"check": "not_found_or_private 只能表示 read-only probe 看不到;不得視為 repo 不存在或可直接建立。",
"current_status": "defined_not_dispatched",
"execution_authorized": false
},
{
"check_id": "p1-3-required-owner-fields",
"display_order": 5,
"check": "必須有 owner role/team、decision、decision reason、affected scope、redacted evidence refs、followup owner、rollback owner、maintenance window、validation plan。",
"current_status": "defined_not_dispatched",
"execution_authorized": false
},
{
"check_id": "p1-3-execution-request-rejected",
"display_order": 6,
"check": "repo creation、visibility change、refs sync、workflow / secret 修改、primary switch 全部 hard reject。",
"current_status": "defined_not_dispatched",
"execution_authorized": false
}
],
"target_owner_handoff_packet": {
"request_id": "p1_3_github_target_owner_response_handoff",
"stage_id": "S4.10",
"prerequisite_gates": [
"S4.9 owner response gate",
"P1-2 Gitea authenticated inventory request handoff"
],
"requested_templates": [
"target-awoooi-refs-blocked",
"target-clawbot-v5-refs-blocked",
"target-wooo-aiops-refs-blocked",
"target-wooo-infra-config-internal-remote",
"target-ewoooc-private-or-new",
"target-bitan-pharmacy-private-or-new",
"target-tsenyang-website-private-or-new",
"target-vibework-private-or-new",
"target-agent-bounty-protocol-private-or-new"
],
"target_probe_summary": {
"candidate_count": 10,
"exists_count": 5,
"not_found_or_private_count": 5,
"external_scope_summary_repo": "nexu-io/open-design",
"newly_added_in_scope_targets": [
"owenhytsai/VibeWork",
"owenhytsai/agent-bounty-protocol"
]
},
"recipient_role_or_team_required": true,
"required_response_fields": [
"owner_role_or_team",
"decision",
"decision_reason",
"affected_scope",
"redacted_evidence_refs",
"followup_owner",
"rollback_owner",
"maintenance_window",
"validation_plan"
],
"forbidden_inputs": [
"token_value",
"secret_value",
"private_key",
"private_clone_url_credential",
"repo_archive",
"git_object_pack",
"api_request_body",
"repo_creation_command",
"visibility_change_command",
"refs_sync_or_delete_request",
"github_primary_switch_request"
],
"not_approval": true,
"execution_authorized": false
},
"post_dispatch_invariants": [
"Owner response 到來後仍需先進 S4.10 intake preflight 與 reviewer validation。",
"not_found_or_private 不得自動視為 repo 不存在或可建立。",
"通過後只可更新 read-only target decision table、approval package、approval board 與 readiness wording。",
"不得直接建立 repo、修改 visibility、sync/delete refs、force push、改 workflow / secret、切 GitHub primary 或停用 Gitea。"
],
"owner_response_request_packet": {
"request_id": "s4_10_github_target_owner_decision_response_request",
"display_status": "ready_to_request_owner_response",
"requested_packet": "docs/security/GITHUB-TARGET-OWNER-DECISION-RESPONSE.md",
"required_response_item_count": 9,
"requested_template_ids": [
"target-awoooi-refs-blocked",
"target-clawbot-v5-refs-blocked",
"target-wooo-aiops-refs-blocked",
"target-wooo-infra-config-internal-remote",
"target-ewoooc-private-or-new",
"target-bitan-pharmacy-private-or-new",
"target-tsenyang-website-private-or-new",
"target-vibework-private-or-new",
"target-agent-bounty-protocol-private-or-new"
],
"owner_instruction_summary": "請 owner 只依 S4.10 九個 templates 回覆 GitHub target 的 owner / visibility / canonical / target disposition且每筆都要填齊 owner role/team、decision、decision reason、affected scope、redacted evidence refs、followup owner、rollback owner、maintenance window、validation plan不要貼 token、secret、private clone URL credential、repo archive、git object、API request body 或任何可執行 payload。",
"allowed_response_fields": [
"owner_role_or_team",
"decision",
"decision_reason",
"canonical_source",
"github_target_disposition",
"visibility_review_owner",
"refs_truth_review_owner",
"tag_disposition_owner",
"github_only_refs_owner",
"internal_remote_disposition",
"secret_name_inventory_owner",
"server_side_refs_diff_owner",
"active_status",
"evidence_refs",
"followup_owner",
"product_boundary_owner",
"surface_owner",
"external_agent_owner",
"treasury_owner",
"runtime_gate_owner",
"affected_scope",
"redacted_evidence_refs",
"rollback_owner",
"maintenance_window",
"validation_plan"
],
"evidence_ref_rules": [
"只允許 repo 內既有文件、snapshot 或已脫敏 owner metadata pointer",
"not_found_or_private 只能作為需補證或 private access request 的 evidence不得自動視為 repo 不存在",
"canonical_source 未知時必須明確選 unknown_requires_more_evidence 或指定補證 owner",
"不得提供 token value、secret value、private clone URL credential、cookie、session、deploy key value 或截圖中的敏感值",
"不確定是否含敏感值時先走 mirror quarantine不得直接貼入 response"
],
"forbidden_payloads": [
"token_value",
"secret_value",
"private_key",
"cookie_or_session",
"private_clone_url_credential",
"repo_creation_command",
"visibility_change_command",
"write_or_admin_api_request",
"refs_sync_or_delete_request",
"force_push_or_tag_rewrite_request",
"github_primary_switch_request",
"repo_archive",
"git_object_pack",
"db_dump",
"unrelated_history_merge_request"
],
"allowed_submission_modes": [
"read_only_markdown_response",
"redacted_metadata_pointer",
"request_more_evidence",
"out_of_scope_disposition"
],
"awooop_display_mode": "display_owner_response_request_only",
"execution_authorized": false,
"not_approval": true,
"still_forbidden": [
"create_github_repo",
"change_repo_visibility",
"push_refs",
"delete_refs",
"force_push",
"switch_github_primary",
"store_secret_value",
"store_token_value"
]
},
"owner_response_template_statuses": [
{
"template_id": "target-awoooi-refs-blocked",
"github_repo": "owenhytsai/awoooi",
"source_key": "wooo/awoooi",
"display_order": 1,
"collection_status": "waiting_owner_response",
"request_status": "request_ready_not_sent",
"received_response_count": 0,
"accepted_response_count": 0,
"rejected_response_count": 0,
"latest_outcome_lane": "keep_waiting_owner_response",
"next_owner_action": "Owner 需回覆 `owenhytsai/awoooi` 的 canonical source、visibility review owner 與 refs truth owner不得把既有 GitHub target 視為可直接 primary。",
"awooop_display_mode": "display_template_status_only",
"execution_authorized": false,
"not_approval": true,
"still_forbidden": [
"create_github_repo",
"change_repo_visibility",
"push_refs",
"delete_refs",
"force_push",
"switch_github_primary",
"store_secret_value",
"store_token_value"
]
},
{
"template_id": "target-clawbot-v5-refs-blocked",
"github_repo": "owenhytsai/clawbot-v5",
"source_key": "wooo/clawbot-v5",
"display_order": 2,
"collection_status": "waiting_owner_response",
"request_status": "request_ready_not_sent",
"received_response_count": 0,
"accepted_response_count": 0,
"rejected_response_count": 0,
"latest_outcome_lane": "keep_waiting_owner_response",
"next_owner_action": "Owner 需回覆 `owenhytsai/clawbot-v5` 的 main SHA / tag 真相來源與 tag disposition owner不得用單一句話批准 refs sync。",
"awooop_display_mode": "display_template_status_only",
"execution_authorized": false,
"not_approval": true,
"still_forbidden": [
"create_github_repo",
"change_repo_visibility",
"push_refs",
"delete_refs",
"force_push",
"switch_github_primary",
"store_secret_value",
"store_token_value"
]
},
{
"template_id": "target-wooo-aiops-refs-blocked",
"github_repo": "owenhytsai/wooo-aiops",
"source_key": "wooo/wooo-aiops",
"display_order": 3,
"collection_status": "waiting_owner_response",
"request_status": "request_ready_not_sent",
"received_response_count": 0,
"accepted_response_count": 0,
"rejected_response_count": 0,
"latest_outcome_lane": "keep_waiting_owner_response",
"next_owner_action": "Owner 需回覆 `owenhytsai/wooo-aiops` 的 GitHub-only refs owner 與 disposition不得刪除 GitHub-only refs。",
"awooop_display_mode": "display_template_status_only",
"execution_authorized": false,
"not_approval": true,
"still_forbidden": [
"create_github_repo",
"change_repo_visibility",
"push_refs",
"delete_refs",
"force_push",
"switch_github_primary",
"store_secret_value",
"store_token_value"
]
},
{
"template_id": "target-wooo-infra-config-internal-remote",
"github_repo": "owenhytsai/wooo-infra-config",
"source_key": "wooo/wooo-infra-config",
"display_order": 4,
"collection_status": "waiting_owner_response",
"request_status": "request_ready_not_sent",
"received_response_count": 0,
"accepted_response_count": 0,
"rejected_response_count": 0,
"latest_outcome_lane": "keep_waiting_owner_response",
"next_owner_action": "Owner 需回覆 `owenhytsai/wooo-infra-config` 的 110 internal remote 用途與 secret name inventory owner不得刪除 remote 或搬移 secret value。",
"awooop_display_mode": "display_template_status_only",
"execution_authorized": false,
"not_approval": true,
"still_forbidden": [
"create_github_repo",
"change_repo_visibility",
"push_refs",
"delete_refs",
"force_push",
"switch_github_primary",
"store_secret_value",
"store_token_value"
]
},
{
"template_id": "target-ewoooc-private-or-new",
"github_repo": "owenhytsai/ewoooc",
"source_key": "wooo/ewoooc / root/momo-pro-system / momo working trees",
"display_order": 5,
"collection_status": "waiting_owner_response",
"request_status": "request_ready_not_sent",
"received_response_count": 0,
"accepted_response_count": 0,
"rejected_response_count": 0,
"latest_outcome_lane": "keep_waiting_owner_response",
"next_owner_action": "Owner 需回覆 `owenhytsai/ewoooc` 與 momo-pro-system 的 canonical 關係、private access request 或 new target candidate disposition不得自動建立 repo 或合併 unrelated histories。",
"awooop_display_mode": "display_template_status_only",
"execution_authorized": false,
"not_approval": true,
"still_forbidden": [
"create_github_repo",
"change_repo_visibility",
"push_refs",
"delete_refs",
"force_push",
"switch_github_primary",
"store_secret_value",
"store_token_value"
]
},
{
"template_id": "target-bitan-pharmacy-private-or-new",
"github_repo": "owenhytsai/bitan-pharmacy",
"source_key": "bitan-pharmacy",
"display_order": 6,
"collection_status": "waiting_owner_response",
"request_status": "request_ready_not_sent",
"received_response_count": 0,
"accepted_response_count": 0,
"rejected_response_count": 0,
"latest_outcome_lane": "keep_waiting_owner_response",
"next_owner_action": "Owner 需回覆 `owenhytsai/bitan-pharmacy` 是否仍 active、GitHub target disposition 與 visibility review owner不得把 not_found_or_private 當成可直接建立 repo。",
"awooop_display_mode": "display_template_status_only",
"execution_authorized": false,
"not_approval": true,
"still_forbidden": [
"create_github_repo",
"change_repo_visibility",
"push_refs",
"delete_refs",
"force_push",
"switch_github_primary",
"store_secret_value",
"store_token_value"
]
},
{
"template_id": "target-tsenyang-website-private-or-new",
"github_repo": "owenhytsai/tsenyang-website",
"source_key": "tsenyang-website",
"display_order": 7,
"collection_status": "waiting_owner_response",
"request_status": "request_ready_not_sent",
"received_response_count": 0,
"accepted_response_count": 0,
"rejected_response_count": 0,
"latest_outcome_lane": "keep_waiting_owner_response",
"next_owner_action": "Owner 需回覆 `owenhytsai/tsenyang-website` 是否仍 active、GitHub target disposition 與 visibility review owner不得把 not_found_or_private 當成可直接建立 repo。",
"awooop_display_mode": "display_template_status_only",
"execution_authorized": false,
"not_approval": true,
"still_forbidden": [
"create_github_repo",
"change_repo_visibility",
"push_refs",
"delete_refs",
"force_push",
"switch_github_primary",
"store_secret_value",
"store_token_value"
]
},
{
"template_id": "target-vibework-private-or-new",
"github_repo": "owenhytsai/VibeWork",
"source_key": "vibework",
"display_order": 8,
"collection_status": "waiting_owner_response",
"request_status": "request_ready_not_sent",
"received_response_count": 0,
"accepted_response_count": 0,
"rejected_response_count": 0,
"latest_outcome_lane": "keep_waiting_owner_response",
"next_owner_action": "Owner 需回覆 `owenhytsai/VibeWork` 的 owner / visibility / canonical / target disposition不得把 not_found_or_private 當成可直接建立 repo。",
"awooop_display_mode": "display_template_status_only",
"execution_authorized": false,
"not_approval": true,
"still_forbidden": [
"create_github_repo",
"change_repo_visibility",
"push_refs",
"delete_refs",
"force_push",
"switch_github_primary",
"store_secret_value",
"store_token_value"
]
},
{
"template_id": "target-agent-bounty-protocol-private-or-new",
"github_repo": "owenhytsai/agent-bounty-protocol",
"source_key": "agent-bounty-protocol",
"display_order": 9,
"collection_status": "waiting_owner_response",
"request_status": "request_ready_not_sent",
"received_response_count": 0,
"accepted_response_count": 0,
"rejected_response_count": 0,
"latest_outcome_lane": "keep_waiting_owner_response",
"next_owner_action": "Owner 需回覆 `owenhytsai/agent-bounty-protocol` 的 owner / visibility / canonical / target disposition不得把 not_found_or_private 當成可直接建立 repo。",
"awooop_display_mode": "display_template_status_only",
"execution_authorized": false,
"not_approval": true,
"still_forbidden": [
"create_github_repo",
"change_repo_visibility",
"push_refs",
"delete_refs",
"force_push",
"switch_github_primary",
"store_secret_value",
"store_token_value"
]
}
],
"owner_response_audit_event_templates": [
{
"event_template_id": "audit-github-target-response-request-shown",
"display_order": 1,
"event_status": "template_only_not_emitted",
"trigger": "AwoooP 顯示 S4.10 owner response request packet 時。",
"purpose": "只記錄 request packet 已可顯示或已顯示的 metadata不代表 owner response 已收到。",
"allowed_metadata_fields": [
"event_template_id",
"request_id",
"requested_template_ids",
"target_contract",
"displayed_by_role",
"displayed_at_taipei",
"source_document_ref"
],
"forbidden_payloads": [
"owner_response_raw_body",
"token_value",
"secret_value",
"private_key",
"cookie_or_session",
"private_clone_url_credential",
"repo_creation_command",
"visibility_change_command",
"write_or_admin_api_request",
"refs_sync_or_delete_request",
"force_push_or_tag_rewrite_request",
"github_primary_switch_request",
"repo_archive",
"git_object_pack",
"db_dump",
"execution_request_payload"
],
"emitted_event_count": 0,
"stored_raw_payload_allowed": false,
"awooop_display_mode": "display_audit_template_only",
"execution_authorized": false,
"not_approval": true
},
{
"event_template_id": "audit-github-target-response-received-metadata",
"display_order": 2,
"event_status": "template_only_not_emitted",
"trigger": "Owner 提供 S4.10 GitHub target response metadata pointer 時。",
"purpose": "只記錄 response 已收到的脫敏 metadata pointer不得保存 response 原文、repo archive、git object 或敏感 payload。",
"allowed_metadata_fields": [
"event_template_id",
"template_id",
"github_repo",
"owner_role_or_team",
"received_at_taipei",
"redacted_evidence_refs",
"source_document_ref"
],
"forbidden_payloads": [
"owner_response_raw_body",
"token_value",
"secret_value",
"private_key",
"cookie_or_session",
"private_clone_url_credential",
"repo_creation_command",
"visibility_change_command",
"write_or_admin_api_request",
"refs_sync_or_delete_request",
"force_push_or_tag_rewrite_request",
"github_primary_switch_request",
"repo_archive",
"git_object_pack",
"db_dump",
"execution_request_payload"
],
"emitted_event_count": 0,
"stored_raw_payload_allowed": false,
"awooop_display_mode": "display_audit_template_only",
"execution_authorized": false,
"not_approval": true
},
{
"event_template_id": "audit-github-target-response-outcome-classified",
"display_order": 3,
"event_status": "template_only_not_emitted",
"trigger": "AwoooP S4.10 acceptance checks rejection rules GitHub target owner response ",
"purpose": " outcomeowner wording response repo / refs / primary ",
"allowed_metadata_fields": [
"event_template_id",
"template_id",
"github_repo",
"collection_status",
"latest_outcome_lane",
"next_owner_action",
"classified_at_taipei",
"classified_by_role"
],
"forbidden_payloads": [
"owner_response_raw_body",
"token_value",
"secret_value",
"private_key",
"cookie_or_session",
"private_clone_url_credential",
"repo_creation_command",
"visibility_change_command",
"write_or_admin_api_request",
"refs_sync_or_delete_request",
"force_push_or_tag_rewrite_request",
"github_primary_switch_request",
"repo_archive",
"git_object_pack",
"db_dump",
"execution_request_payload"
],
"emitted_event_count": 0,
"stored_raw_payload_allowed": false,
"awooop_display_mode": "display_audit_template_only",
"execution_authorized": false,
"not_approval": true
}
],
"owner_response_redaction_examples": [
{
"example_id": "redaction-github-target-doc-ref",
"display_order": 1,
"example_status": "template_example_only",
"category": "github_target_existing_document_reference",
"safe_response_shape": [
"template_id=target-awoooi-refs-blocked",
"decision=hold_pending_refs_truth",
"canonical_source=wooo/awoooi",
"evidence_refs=[docs/security/GITHUB-TARGET-VISIBILITY-DECISION-TABLE.md, docs/security/source-control-ref-detail-diff.snapshot.json]",
"decision_reason= snapshot API raw body repo archive"
],
"required_redactions": [
" evidence repo snapshot metadata pointer",
"GitHub API repo slugstatusreview owner evidence ref",
" API request/response bodyheader private clone URL"
],
"forbidden_raw_values": [
"token_value",
"secret_value",
"private_clone_url_credential",
"api_request_header",
"api_response_raw_body",
"repo_archive"
],
"stored_raw_payload_allowed": false,
"awooop_display_mode": "display_redaction_example_only",
"execution_authorized": false,
"not_approval": true
},
{
"example_id": "redaction-owner-visibility-canonical-metadata",
"display_order": 2,
"example_status": "template_example_only",
"category": "owner_visibility_canonical_metadata",
"safe_response_shape": [
"owner_role_or_team=repo-owner-or-platform-team",
"visibility_review_owner=security-commander",
"canonical_source=unknown_requires_more_evidence",
"decision=unknown_requires_more_evidence",
"followup_owner=source-control-owner"
],
"required_redactions": [
"sessionone-time code API token",
"visibility decision reason ",
"followup_owner owner repo creationvisibility change primary approval"
],
"forbidden_raw_values": [
"password",
"cookie",
"session",
"one_time_code",
"approval_phrase_as_execution_authorization",
"admin_console_screenshot_with_secret"
],
"stored_raw_payload_allowed": false,
"awooop_display_mode": "display_redaction_example_only",
"execution_authorized": false,
"not_approval": true
},
{
"example_id": "redaction-private-target-access-metadata",
"display_order": 3,
"example_status": "template_example_only",
"category": "private_or_new_target_metadata",
"safe_response_shape": [
"template_id=target-ewoooc-private-or-new",
"github_repo=owenhytsai/ewoooc",
"decision=approve_private_target_access_request",
"github_target_disposition=private_access_request_only",
"credential_value_stored=false"
],
"required_redactions": [
"private target repo slugaccess request status owner metadata",
" clone URL hostnamespacerepo slug userinfoquery token header ",
" private access request repo fetch push visibility "
],
"forbidden_raw_values": [
"https_userinfo_credential",
"query_token",
"authorization_header",
"ssh_private_key",
"deploy_key_value",
"git_remote_with_secret"
],
"stored_raw_payload_allowed": false,
"awooop_display_mode": "display_redaction_example_only",
"execution_authorized": false,
"not_approval": true
},
{
"example_id": "redaction-refs-truth-dependency-summary",
"display_order": 4,
"example_status": "template_example_only",
"category": "refs_truth_dependency_summary",
"safe_response_shape": [
"template_id=target-clawbot-v5-refs-blocked",
"decision=hold_pending_refs_truth",
"refs_truth_review_owner=source-control-owner",
"server_side_refs_diff_owner=platform-ops",
"blocked_until=[S4.11 refs truth owner response, S4.12 workflow secret name owner response]"
],
"required_redactions": [
" refs truth ownerblocking contract evidence ref",
" diff repo snapshot redacted metadata pointer",
" git object packrepo archive sync/delete/force-push unrelated history merge request"
],
"forbidden_raw_values": [
"git_object_pack",
"repo_archive",
"refs_sync_command",
"delete_refs_command",
"force_push_command",
"unrelated_history_merge_request"
],
"stored_raw_payload_allowed": false,
"awooop_display_mode": "display_redaction_example_only",
"execution_authorized": false,
"not_approval": true
},
{
"example_id": "redaction-github-target-quarantine-pointer",
"display_order": 5,
"example_status": "template_example_only",
"category": "uncertain_sensitive_payload",
"safe_response_shape": [
"collection_status=quarantine_sensitive_payload",
"quarantine_reason= GitHub tokenprivate URL credentialrepo archive ",
"raw_payload_stored_in_repo=false",
"next_owner_action=request_redacted_metadata_pointer"
],
"required_redactions": [
" quarantine pointer",
" owner ",
" quarantine received / accepted count target decision wording"
],
"forbidden_raw_values": [
"owner_response_raw_body",
"github_token_or_pat",
"secret_screenshot",
"private_clone_url_credential",
"credential_file",
"repo_archive",
"execution_request_payload"
],
"stored_raw_payload_allowed": false,
"awooop_display_mode": "display_redaction_example_only",
"execution_authorized": false,
"not_approval": true
}
],
"owner_response_collection_checks": [
{
"check_id": "collection-github-target-request-packet-displayed",
"display_order": 1,
"title": " GitHub target owner response request packet",
"required": true,
"pass_condition": "AwoooP `owner_response_request_packet` 9 target templates evidence payload repo creationvisibility changerefs sync primary switch ",
"failure_lane": "keep_waiting_owner_response",
"awooop_display": "display_request_packet_only",
"execution_authorized": false,
"not_approval": true
},
{
"check_id": "collection-github-target-read-only-submission-mode",
"display_order": 2,
"title": "GitHub target read-only",
"required": true,
"pass_condition": "owner read-only markdown responseredacted metadata pointerrequest_more_evidence out_of_scope_disposition tokenrepo archivegit object packAPI write request execution request",
"failure_lane": "quarantine_sensitive_payload",
"awooop_display": "display_read_only_submission_only",
"execution_authorized": false,
"not_approval": true
},
{
"check_id": "collection-nine-target-template-tracking",
"display_order": 3,
"title": " GitHub targets ",
"required": true,
"pass_condition": "S4.10 requested_template_ids target received / accepted / rejected repo owner / visibility / canonical response",
"failure_lane": "request_more_evidence",
"awooop_display": "display_per_target_tracking",
"execution_authorized": false,
"not_approval": true
},
{
"check_id": "collection-github-target-redacted-evidence-only",
"display_order": 4,
"title": " GitHub target evidence refs",
"required": true,
"pass_condition": " repo snapshot path metadata pointer tokenprivate URL credentialsecretrepo archive git object quarantine",
"failure_lane": "quarantine_sensitive_payload",
"awooop_display": "display_redacted_evidence_only",
"execution_authorized": false,
"not_approval": true
},
{
"check_id": "collection-github-target-no-approval-language",
"display_order": 5,
"title": " GitHub target ",
"required": true,
"pass_condition": "使 owner response OK owner / visibility / canonical disposition response repo creationvisibility changerefs syncdelete refsforce push GitHub primary approval",
"failure_lane": "reject_execution_request",
"awooop_display": "display_scope_response_only",
"execution_authorized": false,
"not_approval": true
},
{
"check_id": "collection-github-target-audit-metadata-only",
"display_order": 6,
"title": " GitHub target audit metadata",
"required": true,
"pass_condition": "AwoooP request shownresponse received metadatatemplate idgithub repoowner role/teamaffected scoperedacted evidence refsfollowup ownerrollback ownermaintenance windowvalidation plan outcome lane token valuesecret valueprivate clone URL credentialrepo archivegit object pack payload",
"failure_lane": "quarantine_sensitive_payload",
"awooop_display": "display_audit_metadata_only",
"execution_authorized": false,
"not_approval": true
}
],
"intake_preflight_checks": [
{
"check_id": "preflight-known-github-target",
"display_order": 1,
"title": " GitHub target",
"required": true,
"pass_condition": "`github_repo` `template_id` S4.10 approval-required targets repo not_found_or_private ",
"failure_lane": "request_owner_correction",
"awooop_display": "request_more_evidence",
"execution_authorized": false
},
{
"check_id": "preflight-required-github-target-owner-fields",
"display_order": 2,
"title": "GitHub target ",
"required": true,
"pass_condition": " response owner role/teamdecisiondecision_reasonaffected_scoperedacted_evidence_refsfollowup_ownerrollback_ownermaintenance_window validation_plantarget-specific canonical sourcetarget dispositionvisibility review owner out-of-scope disposition template ",
"failure_lane": "request_more_evidence",
"awooop_display": "request_more_evidence",
"execution_authorized": false
},
{
"check_id": "preflight-allowed-github-target-decision",
"display_order": 3,
"title": "GitHub target decision ",
"required": true,
"pass_condition": "`decision` response template acceptable_decisions OK accepted",
"failure_lane": "request_owner_correction",
"awooop_display": "request_more_evidence",
"execution_authorized": false
},
{
"check_id": "preflight-github-target-redacted-evidence-only",
"display_order": 4,
"title": " GitHub target evidence refs",
"required": true,
"pass_condition": "`evidence_refs` repo snapshot owner metadata pointer tokensecretcookiesessionprivate keyprivate clone URL credentialrepo archive git object",
"failure_lane": "quarantine_sensitive_payload",
"awooop_display": "quarantine_sensitive_payload",
"execution_authorized": false
},
{
"check_id": "preflight-no-source-control-execution-request",
"display_order": 5,
"title": " source-control ",
"required": true,
"pass_condition": "response repo visibility refs sync/delete/force-pushworkflow/secret/runner GitHub primary switchGitea Kali scan runtime action",
"failure_lane": "reject_execution_request",
"awooop_display": "reject_execution_request",
"execution_authorized": false
},
{
"check_id": "preflight-all-nine-targets-before-accepted",
"display_order": 6,
"title": " GitHub targets",
"required": true,
"pass_condition": "S4.10 accepted response templates owner / visibility / canonical response waiting request_more_evidence",
"failure_lane": "keep_waiting_owner_response",
"awooop_display": "ready_for_owner_review",
"execution_authorized": false
}
],
"response_templates": [
{
"template_id": "target-awoooi-refs-blocked",
"github_repo": "owenhytsai/awoooi",
"source_key": "wooo/awoooi",
"target_state": "exists_refs_blocked",
"risk": "HIGH",
"requested_owner_decision": " ownercanonical sourcevisibility review owner refs truth review owner refs action disabled",
"required_owner_fields": [
"owner_role_or_team",
"decision",
"decision_reason",
"affected_scope",
"redacted_evidence_refs",
"followup_owner",
"rollback_owner",
"maintenance_window",
"validation_plan",
"canonical_source",
"github_target_disposition",
"visibility_review_owner",
"refs_truth_review_owner",
"evidence_refs"
],
"acceptable_decisions": [
"approve_existing_target_as_candidate",
"hold_pending_refs_truth",
"hold_pending_canonical_review",
"unknown_requires_more_evidence"
],
"minimum_evidence_refs": [
"docs/security/GITEA-GITHUB-MIGRATION-SNAPSHOT.md",
"docs/security/source-control-ref-detail-diff.snapshot.json",
"docs/security/source-control-workflow-secret-name-inventory.snapshot.json"
],
"acceptance_criteria": [
" `wooo/awoooi` canonical source owner review ",
" refs truth / workflow-secret parity / rollback ADR refs primary",
" decision hold evidence owner",
" S4.10 canonical 9 affected scoperedacted evidence refsfollowup ownerrollback ownermaintenance window validation plan"
],
"rejection_conditions": [
" GitHub repo primary",
" pushdeleteforce push refs visibility",
" canonical sourcevisibility review owner refs truth review owner",
" rollback ownermaintenance window validation plan"
],
"allowed_outputs": [
" GitHub target decision table owner / canonical / visibility read-only ",
" repo approval package blocked_until ",
" primary readiness blocked"
],
"execution_authorized": false
},
{
"template_id": "target-clawbot-v5-refs-blocked",
"github_repo": "owenhytsai/clawbot-v5",
"source_key": "wooo/clawbot-v5",
"target_state": "exists_refs_blocked",
"risk": "MEDIUM",
"requested_owner_decision": " main SHA / tag owner refs action disabled",
"required_owner_fields": [
"owner_role_or_team",
"decision",
"decision_reason",
"affected_scope",
"redacted_evidence_refs",
"followup_owner",
"rollback_owner",
"maintenance_window",
"validation_plan",
"canonical_source",
"tag_disposition_owner",
"visibility_review_owner",
"evidence_refs"
],
"acceptable_decisions": [
"approve_existing_target_as_candidate",
"hold_pending_refs_truth",
"mark_external_or_out_of_scope",
"unknown_requires_more_evidence"
],
"minimum_evidence_refs": [
"docs/security/SOURCE-CONTROL-CLAWBOT-V5-SNAPSHOT.md",
"docs/security/source-control-reconcile-plan.snapshot.json",
"docs/security/source-control-ref-truth-classification.snapshot.json"
],
"acceptance_criteria": [
" main SHA tag owner ",
" active refs review lane",
" scope owner disposition",
" S4.10 canonical 9 affected scoperedacted evidence refsfollowup ownerrollback ownermaintenance window validation plan"
],
"rejection_conditions": [
" refs sync",
" GitHub Gitea tag disposition",
" repo refs",
" rollback ownermaintenance window validation plan"
],
"allowed_outputs": [
" refs truth review lane",
" approval package owner decision ",
" refs action disabled"
],
"execution_authorized": false
},
{
"template_id": "target-wooo-aiops-refs-blocked",
"github_repo": "owenhytsai/wooo-aiops",
"source_key": "wooo/wooo-aiops",
"target_state": "exists_refs_blocked",
"risk": "MEDIUM",
"requested_owner_decision": " GitHub-only branch / tags owner disposition refs action disabled",
"required_owner_fields": [
"owner_role_or_team",
"decision",
"decision_reason",
"affected_scope",
"redacted_evidence_refs",
"followup_owner",
"rollback_owner",
"maintenance_window",
"validation_plan",
"canonical_source",
"github_only_refs_owner",
"visibility_review_owner",
"evidence_refs"
],
"acceptable_decisions": [
"approve_existing_target_as_candidate",
"hold_pending_refs_truth",
"mark_external_or_out_of_scope",
"unknown_requires_more_evidence"
],
"minimum_evidence_refs": [
"docs/security/SOURCE-CONTROL-WOOO-AIOPS-SNAPSHOT.md",
"docs/security/source-control-ref-detail-diff.snapshot.json",
"docs/security/source-control-ref-truth-classification.snapshot.json"
],
"acceptance_criteria": [
" GitHub-only branch / tags owner owner",
" main SHA truth source blocked",
" out_of_scope AwoooP / AWOOOI scope ",
" S4.10 canonical 9 affected scoperedacted evidence refsfollowup ownerrollback ownermaintenance window validation plan"
],
"rejection_conditions": [
" GitHub-only refs",
" GitHub-only refs owner",
" refs classification sync",
" rollback ownermaintenance window validation plan"
],
"allowed_outputs": [
" refs truth classification owner review ",
" GitHub target decision table",
" GitHub primary readiness blocked"
],
"execution_authorized": false
},
{
"template_id": "target-wooo-infra-config-internal-remote",
"github_repo": "owenhytsai/wooo-infra-config",
"source_key": "wooo/wooo-infra-config",
"target_state": "exists_aligned",
"risk": "MEDIUM",
"requested_owner_decision": " 110 internal remote infra owner secret name inventory owner",
"required_owner_fields": [
"owner_role_or_team",
"decision",
"decision_reason",
"affected_scope",
"redacted_evidence_refs",
"followup_owner",
"rollback_owner",
"maintenance_window",
"validation_plan",
"canonical_source",
"internal_remote_disposition",
"secret_name_inventory_owner",
"evidence_refs"
],
"acceptable_decisions": [
"approve_existing_target_as_candidate",
"hold_pending_canonical_review",
"mark_external_or_out_of_scope",
"unknown_requires_more_evidence"
],
"minimum_evidence_refs": [
"docs/security/GIT-REMOTE-REFS-WOOO-INFRA-CONFIG-SNAPSHOT.md",
"docs/security/source-control-workflow-secret-name-inventory.snapshot.json",
"docs/security/source-control-workflow-secret-name-export-request.snapshot.json"
],
"acceptance_criteria": [
" 110 internal remote active sourcemirrorlegacy ",
" infra secret inventory owner",
" internal remote disposition remote ",
" S4.10 canonical 9 affected scoperedacted evidence refsfollowup ownerrollback ownermaintenance window validation plan"
],
"rejection_conditions": [
" remote remote URL",
" secret value",
" 110 internal remote ",
" rollback ownermaintenance window validation plan"
],
"allowed_outputs": [
" canonical decision table remote disposition",
" workflow / secret name inventory owner gap",
" repo / secret / refs disabled"
],
"execution_authorized": false
},
{
"template_id": "target-ewoooc-private-or-new",
"github_repo": "owenhytsai/ewoooc",
"source_key": "wooo/ewoooc / root/momo-pro-system / momo working trees",
"target_state": "not_found_or_private",
"risk": "HIGH",
"requested_owner_decision": " ewoooc / momo-pro-system canonical GitHub target private repo repo ",
"required_owner_fields": [
"owner_role_or_team",
"decision",
"decision_reason",
"affected_scope",
"redacted_evidence_refs",
"followup_owner",
"rollback_owner",
"maintenance_window",
"validation_plan",
"canonical_source",
"github_target_disposition",
"visibility_review_owner",
"server_side_refs_diff_owner",
"evidence_refs"
],
"acceptable_decisions": [
"approve_private_target_access_request",
"approve_new_target_creation_candidate",
"hold_pending_canonical_review",
"mark_external_or_out_of_scope",
"unknown_requires_more_evidence"
],
"minimum_evidence_refs": [
"docs/security/GITEA-PUBLIC-REPO-SEARCH-SNAPSHOT.md",
"docs/security/LOCAL-REPO-CANONICAL-EWOOOC-MOMO-SNAPSHOT.md",
"docs/security/github-target-decision.snapshot.json"
],
"acceptance_criteria": [
" `not_found_or_private` ",
" ewoooc / momo-pro-system canonical owner",
" repo repo migration plan",
" S4.10 canonical 9 affected scoperedacted evidence refsfollowup ownerrollback ownermaintenance window validation plan"
],
"rejection_conditions": [
" `not_found_or_private` repo ",
" unrelated histories",
" momo / ewoooc working tree",
" rollback ownermaintenance window validation plan"
],
"allowed_outputs": [
" target decision table disposition",
" approval package canonical blocker",
" request_more_evidence lane"
],
"execution_authorized": false
},
{
"template_id": "target-bitan-pharmacy-private-or-new",
"github_repo": "owenhytsai/bitan-pharmacy",
"source_key": "bitan-pharmacy",
"target_state": "not_found_or_private",
"risk": "MEDIUM",
"requested_owner_decision": " repo activeGitHub target dispositionowner visibility review owner",
"required_owner_fields": [
"owner_role_or_team",
"decision",
"decision_reason",
"affected_scope",
"redacted_evidence_refs",
"followup_owner",
"rollback_owner",
"maintenance_window",
"validation_plan",
"active_status",
"canonical_source",
"github_target_disposition",
"visibility_review_owner",
"evidence_refs"
],
"acceptable_decisions": [
"approve_private_target_access_request",
"approve_new_target_creation_candidate",
"hold_pending_canonical_review",
"mark_external_or_out_of_scope",
"unknown_requires_more_evidence"
],
"minimum_evidence_refs": [
"docs/security/GIT-REMOTE-REFS-BITAN-TSENYANG-SNAPSHOT.md",
"docs/security/github-target-decision.snapshot.json",
"docs/security/source-control-primary-readiness-gate.snapshot.json"
],
"acceptance_criteria": [
" repo active",
" GitHub target private repoout-of-scope ",
" active workflow / secret name parity gate",
" S4.10 canonical 9 affected scoperedacted evidence refsfollowup ownerrollback ownermaintenance window validation plan"
],
"rejection_conditions": [
" target repo",
" active_status visibility review owner",
" push refs 110 remote",
" rollback ownermaintenance window validation plan"
],
"allowed_outputs": [
" target decision table active / disposition ",
" approval package blocked_until",
" repo creation refs action disabled"
],
"execution_authorized": false
},
{
"template_id": "target-tsenyang-website-private-or-new",
"github_repo": "owenhytsai/tsenyang-website",
"source_key": "tsenyang-website",
"target_state": "not_found_or_private",
"risk": "MEDIUM",
"requested_owner_decision": " repo activeGitHub target dispositionowner visibility review owner",
"required_owner_fields": [
"owner_role_or_team",
"decision",
"decision_reason",
"affected_scope",
"redacted_evidence_refs",
"followup_owner",
"rollback_owner",
"maintenance_window",
"validation_plan",
"active_status",
"canonical_source",
"github_target_disposition",
"visibility_review_owner",
"evidence_refs"
],
"acceptable_decisions": [
"approve_private_target_access_request",
"approve_new_target_creation_candidate",
"hold_pending_canonical_review",
"mark_external_or_out_of_scope",
"unknown_requires_more_evidence"
],
"minimum_evidence_refs": [
"docs/security/GIT-REMOTE-REFS-BITAN-TSENYANG-SNAPSHOT.md",
"docs/security/github-target-decision.snapshot.json",
"docs/security/source-control-primary-readiness-gate.snapshot.json"
],
"acceptance_criteria": [
" repo active",
" GitHub target private repoout-of-scope ",
" active workflow / secret name parity gate",
" S4.10 canonical 9 affected scoperedacted evidence refsfollowup ownerrollback ownermaintenance window validation plan"
],
"rejection_conditions": [
" target repo",
" active_status visibility review owner",
" push refs 110 remote",
" rollback ownermaintenance window validation plan"
],
"allowed_outputs": [
" target decision table active / disposition ",
" approval package blocked_until",
" repo creation refs action disabled"
],
"execution_authorized": false
},
{
"template_id": "target-vibework-private-or-new",
"github_repo": "owenhytsai/VibeWork",
"source_key": "vibework",
"target_state": "not_found_or_private",
"risk": "HIGH",
"requested_owner_decision": " VibeWork GitHub targetrepo ownersurface ownercanonical source visibility review owner",
"required_owner_fields": [
"owner_role_or_team",
"decision",
"decision_reason",
"affected_scope",
"redacted_evidence_refs",
"followup_owner",
"rollback_owner",
"maintenance_window",
"validation_plan",
"canonical_source",
"github_target_disposition",
"visibility_review_owner",
"product_boundary_owner",
"surface_owner",
"evidence_refs"
],
"acceptable_decisions": [
"approve_private_target_access_request",
"approve_new_target_creation_candidate",
"hold_pending_product_boundary_review",
"hold_pending_canonical_review",
"unknown_requires_more_evidence"
],
"minimum_evidence_refs": [
"docs/security/source-control-workflow-secret-name-local-evidence.snapshot.json",
"docs/security/source-control-workflow-secret-name-inventory.snapshot.json",
"docs/security/source-control-primary-readiness-gate.snapshot.json"
],
"acceptance_criteria": [
" VibeWork private GitHub target target candidate",
" product boundary ownerrepo ownersurface owner visibility review owner",
" VibeWork target decision AWOOOI primary cutover approval",
" S4.10 canonical 9 affected scoperedacted evidence refsfollowup ownerrollback ownermaintenance window validation plan"
],
"rejection_conditions": [
" not_found_or_private repo",
" product boundary ownercanonical source visibility review owner",
" workflow secret valuepush refs primary",
" rollback ownermaintenance window validation plan"
],
"allowed_outputs": [
" GitHub target decision table VibeWork read-only disposition",
" repo approval package product boundary blocker",
" primary readiness blocked"
],
"execution_authorized": false
},
{
"template_id": "target-agent-bounty-protocol-private-or-new",
"github_repo": "owenhytsai/agent-bounty-protocol",
"source_key": "agent-bounty-protocol",
"target_state": "not_found_or_private",
"risk": "HIGH",
"requested_owner_decision": " agent-bounty-protocol GitHub targetrepo ownerdeployment ownerexternal agent ownertreasury ownercanonical source visibility review ownerruntime gate 0",
"required_owner_fields": [
"owner_role_or_team",
"decision",
"decision_reason",
"affected_scope",
"redacted_evidence_refs",
"followup_owner",
"rollback_owner",
"maintenance_window",
"validation_plan",
"canonical_source",
"github_target_disposition",
"visibility_review_owner",
"external_agent_owner",
"treasury_owner",
"runtime_gate_owner",
"evidence_refs"
],
"acceptable_decisions": [
"approve_private_target_access_request",
"approve_new_target_creation_candidate",
"hold_pending_agent_runtime_boundary_review",
"hold_pending_canonical_review",
"unknown_requires_more_evidence"
],
"minimum_evidence_refs": [
"docs/security/source-control-workflow-secret-name-local-evidence.snapshot.json",
"docs/security/source-control-workflow-secret-name-inventory.snapshot.json",
"docs/security/source-control-primary-readiness-gate.snapshot.json"
],
"acceptance_criteria": [
" agent-bounty-protocol private GitHub target target candidate",
" repodeploymentexternal agenttreasury runtime gate owner",
" A2A / MCP / bounty / treasury / payout / withdrawal target response runtime",
" S4.10 canonical 9 affected scoperedacted evidence refsfollowup ownerrollback ownermaintenance window validation plan"
],
"rejection_conditions": [
" not_found_or_private repo",
" external agent ownertreasury ownerruntime gate owner visibility review owner",
" agent actionpayoutwithdrawalworkflow push refs primary",
" rollback ownermaintenance window validation plan"
],
"allowed_outputs": [
" GitHub target decision table agent-bounty-protocol read-only disposition",
" repo approval package agent / treasury / runtime blocker",
" primary readiness blocked active runtime gate 0"
],
"execution_authorized": false
}
],
"acceptance_checks": [
{
"check_id": "maps_to_known_github_target",
"title": " GitHub target",
"required": true,
"pass_condition": "`github_repo` github_target_decision_v1 9 approval-required targets ",
"failure_lane": "reject_unknown_target",
"execution_authorized": false
},
{
"check_id": "decision_value_allowed",
"title": "",
"required": true,
"pass_condition": "`decision` target template acceptable_decisions ",
"failure_lane": "request_owner_correction",
"execution_authorized": false
},
{
"check_id": "owner_and_visibility_present",
"title": "owner visibility review ",
"required": true,
"pass_condition": " canonical 9 template visibility review ownercanonical source out-of-scope disposition",
"failure_lane": "request_more_evidence",
"execution_authorized": false
},
{
"check_id": "canonical_source_present",
"title": "canonical source ",
"required": true,
"pass_condition": "in-scope candidate target canonical source unknown_requires_more_evidence",
"failure_lane": "keep_primary_blocked",
"execution_authorized": false
},
{
"check_id": "blocked_until_respected",
"title": "blocked_until ",
"required": true,
"pass_condition": " refs truthworkflow-secret parityGitea inventoryrollback ADR server-side diff ",
"failure_lane": "reject_scope_jump",
"execution_authorized": false
},
{
"check_id": "no_repo_creation_or_visibility_change",
"title": " repo creation visibility change ",
"required": true,
"pass_condition": " repo visibility ",
"failure_lane": "reject_runtime_source_control_action",
"execution_authorized": false
},
{
"check_id": "no_refs_or_primary_action",
"title": " refs primary action",
"required": true,
"pass_condition": " pushdeleteforce pushmirror syncprimary switch disable Gitea",
"failure_lane": "reject_refs_or_primary_action",
"execution_authorized": false
},
{
"check_id": "secret_values_absent",
"title": " secret value",
"required": true,
"pass_condition": "`redacted_evidence_refs` repo snapshot owner metadata tokencredentialsecret valueprivate key deploy key value",
"failure_lane": "quarantine_sensitive_payload",
"execution_authorized": false
}
],
"rejection_rules": [
" token valuePATcookiesessionCSRF tokenprivate key partial credential ",
" repo creation commandAPI request bodyCLI command automation payload ",
" visibility change command public/private/internal visibility ",
" push refsdelete refsforce pushmirror synctag rewrite branch rewrite ",
" GitHub primary Gitea Gitea Gitea fallback ",
" ownervisibility review ownercanonical source out-of-scope disposition accepted",
" `not_found_or_private` repo ",
" unrelated histories momo / ewoooc working tree ",
" owner decision response repo migration approvalrefs sync approval primary approval ",
" URL mirror quarantine"
],
"allowed_outputs": [
" `github-target-decision.snapshot.json` read-only owner / visibility / canonical decision ",
" `github-target-repo-approval-package.snapshot.json` blocked_untilreview owner evidence refs",
" `source-control-primary-readiness-gate.snapshot.json` blocker wording",
" `source-control-approval-board.snapshot.json` review lane",
" request_more_evidence / quarantine lane",
" `github_primary_ready_count=0` execution flags false",
" read-only owner response validation record candidate execution queue",
" S4.10 調 owner response accepted count"
],
"forbidden_actions": [
" GitHub repo",
" GitHub repo visibility",
"pushdeleteforce pushmirror sync rewrite refs",
" GitHub primary",
" Gitea repo",
" secret valuetoken valueprivate keycookiesession deploy key value",
" response packet migration execution approval",
" AwoooP execution action button"
]
}