235 lines
9.8 KiB
JSON
235 lines
9.8 KiB
JSON
{
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
"$id": "urn:awoooi:agent-bounty-iwooos-onboarding-handoff-v1",
|
|
"title": "Agent Bounty Protocol IwoooS Onboarding Handoff v1",
|
|
"description": "定義 agent-bounty-protocol 納入 IwoooS 只讀資安視野時的 repo、product、surface、owner、evidence refs、資料分級、部署邊界、外部 agent / MCP / A2A 邊界與禁止動作。此契約不授權 repo / refs / workflow 變更、secret 收集、production deploy、掃描、claim / submit、金流 / payout 或 runtime execution。",
|
|
"type": "object",
|
|
"required": [
|
|
"schema_version",
|
|
"status",
|
|
"date",
|
|
"mode",
|
|
"source_evidence_refs",
|
|
"summary",
|
|
"product_identity",
|
|
"repo_scope",
|
|
"product_surfaces",
|
|
"owner_response_handoff",
|
|
"independent_product_boundary",
|
|
"data_classification_intake",
|
|
"deployment_boundary",
|
|
"external_agent_boundary",
|
|
"acceptance_rules",
|
|
"forbidden_actions"
|
|
],
|
|
"properties": {
|
|
"schema_version": {"const": "agent_bounty_iwooos_onboarding_handoff_v1"},
|
|
"status": {"type": "string", "enum": ["draft_waiting_owner_review"]},
|
|
"date": {"type": "string"},
|
|
"mode": {"type": "string", "enum": ["product_scope_handoff_only"]},
|
|
"source_evidence_refs": {
|
|
"type": "array",
|
|
"items": {"type": "string"},
|
|
"minItems": 1
|
|
},
|
|
"summary": {
|
|
"type": "object",
|
|
"required": [
|
|
"product_name",
|
|
"onboarding_handoff_package_ready",
|
|
"onboarding_handoff_completion_percent",
|
|
"product_boundary_merged_into_awoooi",
|
|
"owner_response_received",
|
|
"owner_response_accepted",
|
|
"repo_refs_truth_accepted",
|
|
"data_classification_accepted",
|
|
"deployment_boundary_accepted",
|
|
"external_agent_boundary_accepted",
|
|
"runtime_gate_open",
|
|
"runtime_execution_authorized",
|
|
"production_deploy_authorized",
|
|
"repo_creation_authorized",
|
|
"refs_sync_authorized",
|
|
"workflow_modification_authorized",
|
|
"secret_value_collection_authorized",
|
|
"auto_claim_submit_authorized",
|
|
"bounty_payout_authorized",
|
|
"external_agent_autonomy_authorized",
|
|
"shared_database_authorized",
|
|
"shared_session_authorized",
|
|
"shared_rbac_authorized",
|
|
"action_buttons_allowed"
|
|
],
|
|
"properties": {
|
|
"product_name": {"type": "string"},
|
|
"onboarding_handoff_package_ready": {"type": "boolean"},
|
|
"onboarding_handoff_completion_percent": {"type": "integer", "minimum": 0, "maximum": 100},
|
|
"product_boundary_merged_into_awoooi": {"type": "boolean", "const": false},
|
|
"owner_response_received": {"type": "boolean", "const": false},
|
|
"owner_response_accepted": {"type": "boolean", "const": false},
|
|
"repo_refs_truth_accepted": {"type": "boolean", "const": false},
|
|
"data_classification_accepted": {"type": "boolean", "const": false},
|
|
"deployment_boundary_accepted": {"type": "boolean", "const": false},
|
|
"external_agent_boundary_accepted": {"type": "boolean", "const": false},
|
|
"runtime_gate_open": {"type": "boolean", "const": false},
|
|
"runtime_execution_authorized": {"type": "boolean", "const": false},
|
|
"production_deploy_authorized": {"type": "boolean", "const": false},
|
|
"repo_creation_authorized": {"type": "boolean", "const": false},
|
|
"refs_sync_authorized": {"type": "boolean", "const": false},
|
|
"workflow_modification_authorized": {"type": "boolean", "const": false},
|
|
"secret_value_collection_authorized": {"type": "boolean", "const": false},
|
|
"auto_claim_submit_authorized": {"type": "boolean", "const": false},
|
|
"bounty_payout_authorized": {"type": "boolean", "const": false},
|
|
"external_agent_autonomy_authorized": {"type": "boolean", "const": false},
|
|
"shared_database_authorized": {"type": "boolean", "const": false},
|
|
"shared_session_authorized": {"type": "boolean", "const": false},
|
|
"shared_rbac_authorized": {"type": "boolean", "const": false},
|
|
"action_buttons_allowed": {"type": "boolean", "const": false}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"product_identity": {
|
|
"type": "object",
|
|
"required": ["product_type", "current_focus", "technical_stack", "language_policy"],
|
|
"properties": {
|
|
"product_type": {"type": "string"},
|
|
"current_focus": {"type": "string"},
|
|
"technical_stack": {"type": "array", "items": {"type": "string"}, "minItems": 1},
|
|
"language_policy": {"type": "string"}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"repo_scope": {
|
|
"type": "object",
|
|
"required": ["active_workspace", "reference_worktree", "required_owner_answers"],
|
|
"properties": {
|
|
"active_workspace": {
|
|
"type": "object",
|
|
"required": ["path", "status_summary", "canonical_for_iwooos", "forbidden_actions"],
|
|
"properties": {
|
|
"path": {"type": "string"},
|
|
"status_summary": {"type": "string"},
|
|
"canonical_for_iwooos": {"type": "boolean", "const": false},
|
|
"forbidden_actions": {"type": "array", "items": {"type": "string"}, "minItems": 1}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"reference_worktree": {
|
|
"type": "object",
|
|
"required": ["path", "head_sha", "origin_main_sha", "main_sha", "remote", "refs_truth_status"],
|
|
"properties": {
|
|
"path": {"type": "string"},
|
|
"head_sha": {"type": "string"},
|
|
"origin_main_sha": {"type": "string"},
|
|
"main_sha": {"type": "string"},
|
|
"remote": {"type": "string"},
|
|
"refs_truth_status": {"type": "string"}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"required_owner_answers": {"type": "array", "items": {"type": "string"}, "minItems": 1}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"product_surfaces": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"required": ["surface_id", "routes", "boundary"],
|
|
"properties": {
|
|
"surface_id": {"type": "string"},
|
|
"routes": {"type": "array", "items": {"type": "string"}, "minItems": 1},
|
|
"boundary": {"type": "string"}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"minItems": 1
|
|
},
|
|
"owner_response_handoff": {
|
|
"type": "object",
|
|
"required": [
|
|
"status",
|
|
"request_dispatch_authorized",
|
|
"required_response_fields",
|
|
"allowed_decisions",
|
|
"forbidden_inputs",
|
|
"response_received",
|
|
"response_accepted"
|
|
],
|
|
"properties": {
|
|
"status": {"type": "string", "enum": ["ready_not_dispatched"]},
|
|
"request_dispatch_authorized": {"type": "boolean", "const": false},
|
|
"required_response_fields": {"type": "array", "items": {"type": "string"}, "minItems": 1},
|
|
"allowed_decisions": {"type": "array", "items": {"type": "string"}, "minItems": 1},
|
|
"forbidden_inputs": {"type": "array", "items": {"type": "string"}, "minItems": 1},
|
|
"response_received": {"type": "boolean", "const": false},
|
|
"response_accepted": {"type": "boolean", "const": false}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"independent_product_boundary": {
|
|
"type": "object",
|
|
"required": ["must_remain_independent", "forbidden_couplings", "allowed_future_integrations"],
|
|
"properties": {
|
|
"must_remain_independent": {"type": "boolean"},
|
|
"forbidden_couplings": {"type": "array", "items": {"type": "string"}, "minItems": 1},
|
|
"allowed_future_integrations": {"type": "array", "items": {"type": "string"}, "minItems": 1}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"data_classification_intake": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"required": ["data_type", "status", "collection_rule"],
|
|
"properties": {
|
|
"data_type": {"type": "string"},
|
|
"status": {"type": "string", "enum": ["waiting_owner_classification"]},
|
|
"collection_rule": {"type": "string"}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"minItems": 1
|
|
},
|
|
"deployment_boundary": {
|
|
"type": "object",
|
|
"required": [
|
|
"public_host",
|
|
"production_mode",
|
|
"compose_host_status",
|
|
"compose_directory_status",
|
|
"internal_web_status",
|
|
"database_boundary",
|
|
"production_verification_in_this_awoooi_stage",
|
|
"deployment_authorized"
|
|
],
|
|
"properties": {
|
|
"public_host": {"type": "string"},
|
|
"production_mode": {"type": "string"},
|
|
"compose_host_status": {"type": "string"},
|
|
"compose_directory_status": {"type": "string"},
|
|
"internal_web_status": {"type": "string"},
|
|
"database_boundary": {"type": "string"},
|
|
"production_verification_in_this_awoooi_stage": {"type": "boolean", "const": false},
|
|
"deployment_authorized": {"type": "boolean", "const": false}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"external_agent_boundary": {
|
|
"type": "object",
|
|
"required": ["autonomy_authorized", "claim_submit_authorized", "payout_authorized", "allowed_now", "blocked_until_owner_review"],
|
|
"properties": {
|
|
"autonomy_authorized": {"type": "boolean", "const": false},
|
|
"claim_submit_authorized": {"type": "boolean", "const": false},
|
|
"payout_authorized": {"type": "boolean", "const": false},
|
|
"allowed_now": {"type": "array", "items": {"type": "string"}, "minItems": 1},
|
|
"blocked_until_owner_review": {"type": "array", "items": {"type": "string"}, "minItems": 1}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"acceptance_rules": {"type": "array", "items": {"type": "string"}, "minItems": 1},
|
|
"forbidden_actions": {"type": "array", "items": {"type": "string"}, "minItems": 1}
|
|
},
|
|
"additionalProperties": false
|
|
}
|