Files
ewoooc/services/pchome_mapping_backlog/policies.py
ogt 7ef2786356
Some checks failed
CD Pipeline / deploy (push) Has been cancelled
refactor(pchome): extract backlog policy and evidence modules
2026-07-11 11:08:38 +08:00

281 lines
16 KiB
Python

"""Policy registry for the PChome mapping backlog automation lanes."""
from __future__ import annotations
BACKLOG_POLICY = "read_only_pchome_growth_mapping_backlog"
OPERATOR_PREVIEW_POLICY = "read_only_pchome_growth_mapping_operator_preview"
DIRECT_MAPPING_AUTO_SEARCH_PACKAGE_POLICY = (
"read_only_pchome_growth_direct_mapping_auto_search_package"
)
DIRECT_MAPPING_CANDIDATE_DECISION_PACKAGE_POLICY = (
"read_only_pchome_growth_direct_mapping_candidate_decision_package"
)
DIRECT_MAPPING_CANDIDATE_DECISION_LANE_CLOSEOUT_POLICY = (
"read_only_pchome_growth_direct_mapping_candidate_decision_lane_closeout"
)
DIRECT_MAPPING_CANDIDATE_EXCEPTION_AUTO_RESOLUTION_POLICY = (
"read_only_pchome_growth_direct_mapping_candidate_exception_auto_resolution"
)
DIRECT_MAPPING_CANDIDATE_EXCEPTION_RESOLUTION_CLOSEOUT_POLICY = (
"read_only_pchome_growth_direct_mapping_candidate_exception_resolution_closeout"
)
DIRECT_MAPPING_RETRY_CANDIDATE_DECISION_PACKAGE_POLICY = (
"read_only_pchome_growth_direct_mapping_retry_candidate_decision_package"
)
DIRECT_MAPPING_RETRY_CANDIDATE_EXCEPTION_AUTO_RESOLUTION_POLICY = (
"read_only_pchome_growth_direct_mapping_retry_candidate_exception_auto_resolution"
)
DIRECT_MAPPING_RETRY_CANDIDATE_EXCEPTION_RESOLUTION_CLOSEOUT_POLICY = (
"read_only_pchome_growth_direct_mapping_retry_candidate_exception_resolution_closeout"
)
DIRECT_MAPPING_RETRY_CANDIDATE_EXCEPTION_CLOSEOUT_VERIFIER_INPUT_POLICY = (
"read_only_pchome_growth_direct_mapping_retry_candidate_exception_closeout_verifier_input"
)
DIRECT_MAPPING_RETRY_CANDIDATE_EXCEPTION_CLOSEOUT_VERIFIER_ARTIFACT_PREVIEW_POLICY = (
"read_only_pchome_growth_direct_mapping_retry_candidate_exception_closeout_verifier_artifact_preview"
)
DIRECT_MAPPING_RETRY_CANDIDATE_EXCEPTION_CLOSEOUT_VERIFIER_ARTIFACT_MATERIALIZATION_POLICY = (
"ai_controlled_pchome_growth_direct_mapping_retry_candidate_exception_closeout_verifier_artifact_materialization"
)
DIRECT_MAPPING_RETRY_CANDIDATE_EXCEPTION_CLOSEOUT_VERIFIER_ARTIFACT_PREFLIGHT_VERIFIER_POLICY = (
"ai_controlled_pchome_growth_direct_mapping_retry_candidate_exception_closeout_verifier_artifact_preflight_verifier"
)
DIRECT_MAPPING_RETRY_CANDIDATE_EXCEPTION_CONTROLLED_APPLY_PREFLIGHT_POLICY = (
"ai_controlled_pchome_growth_direct_mapping_retry_candidate_exception_controlled_apply_preflight"
)
DIRECT_MAPPING_RETRY_CANDIDATE_EXCEPTION_CONTROLLED_APPLY_EXECUTOR_POLICY = (
"ai_controlled_pchome_growth_direct_mapping_retry_candidate_exception_controlled_apply_executor"
)
DIRECT_MAPPING_RETRY_CANDIDATE_EXCEPTION_CONTROLLED_APPLY_RECEIPT_REPLAY_POLICY = (
"ai_controlled_pchome_growth_direct_mapping_retry_candidate_exception_controlled_apply_receipt_replay"
)
DIRECT_MAPPING_RETRY_CANDIDATE_EXCEPTION_CONTROLLED_APPLY_DRIFT_VERIFIER_POLICY = (
"ai_controlled_pchome_growth_direct_mapping_retry_candidate_exception_controlled_apply_drift_verifier"
)
DIRECT_MAPPING_RETRY_CANDIDATE_EXCEPTION_CONTROLLED_APPLY_DRIFT_RECOVERY_POLICY = (
"ai_controlled_pchome_growth_direct_mapping_retry_candidate_exception_controlled_apply_drift_recovery"
)
DIRECT_MAPPING_RETRY_CANDIDATE_EXCEPTION_CONTROLLED_APPLY_COMPACT_READBACK_POLICY = (
"read_only_pchome_growth_direct_mapping_retry_candidate_exception_controlled_apply_compact_readback"
)
DIRECT_MAPPING_RETRY_CANDIDATE_EXCEPTION_CONTROLLED_APPLY_ARTIFACT_RETENTION_POLICY = (
"read_only_pchome_growth_direct_mapping_retry_candidate_exception_controlled_apply_artifact_retention"
)
DIRECT_MAPPING_RETRY_CANDIDATE_EXCEPTION_CONTROLLED_APPLY_ROLLBACK_EVIDENCE_POLICY = (
"read_only_pchome_growth_direct_mapping_retry_candidate_exception_controlled_apply_rollback_evidence"
)
AI_AUTOMATION_READINESS_POLICY = "read_only_pchome_growth_ai_automation_readiness"
AI_AUTOMATION_SURFACE_SUMMARY_POLICY = (
"read_only_pchome_growth_ai_automation_surface_summary"
)
EVIDENCE_ENRICHMENT_PREVIEW_POLICY = "read_only_pchome_growth_evidence_enrichment_preview"
EVIDENCE_SOURCE_PREVIEW_POLICY = "read_only_pchome_growth_evidence_source_preview"
PRODUCT_PAGE_EVIDENCE_PARSER_POLICY = "read_only_pchome_product_page_evidence_parser"
EVIDENCE_FETCH_GATE_POLICY = "controlled_read_only_pchome_product_page_evidence_fetch_gate"
EVIDENCE_MERGE_PREVIEW_POLICY = "read_only_pchome_growth_evidence_merge_preview"
AUTO_POLICY_RECEIPT_GATE_POLICY = "read_only_pchome_growth_auto_policy_receipt_gate"
AUTO_POLICY_PERSISTENCE_GATE_POLICY = "read_only_pchome_growth_auto_policy_persistence_gate"
AUTO_POLICY_SCHEMA_MIGRATION_PREVIEW_POLICY = "read_only_pchome_growth_auto_policy_schema_migration_preview"
AUTO_POLICY_MIGRATION_FILE_PREVIEW_POLICY = "read_only_pchome_growth_auto_policy_migration_file_preview"
AUTO_POLICY_APPLY_READINESS_CLOSEOUT_POLICY = "read_only_pchome_growth_auto_policy_apply_readiness_closeout"
AUTO_POLICY_MIGRATION_FILE_GENERATION_REQUEST_POLICY = (
"read_only_pchome_growth_auto_policy_migration_file_generation_request"
)
AUTO_POLICY_MIGRATION_APPLY_GATE_PREVIEW_POLICY = (
"read_only_pchome_growth_auto_policy_migration_apply_gate_preview"
)
AUTO_POLICY_DB_APPLY_REQUEST_GATE_PREVIEW_POLICY = (
"read_only_pchome_growth_auto_policy_db_apply_request_gate_preview"
)
AUTO_POLICY_DB_APPLY_EXECUTION_PREFLIGHT_POLICY = (
"read_only_pchome_growth_auto_policy_db_apply_execution_preflight"
)
AUTO_POLICY_DB_APPLY_AUTHORIZATION_PACKAGE_POLICY = (
"read_only_pchome_growth_auto_policy_db_apply_authorization_package"
)
AUTO_POLICY_DB_APPLY_VERIFIER_ARTIFACT_PREVIEW_POLICY = (
"read_only_pchome_growth_auto_policy_db_apply_verifier_artifact_preview"
)
AUTO_POLICY_DB_APPLY_FINAL_HANDOFF_PACKAGE_POLICY = (
"read_only_pchome_growth_auto_policy_db_apply_final_handoff_package"
)
AUTO_POLICY_DB_APPLY_CONTROLLED_DRY_RUN_SHELL_PREVIEW_POLICY = (
"read_only_pchome_growth_auto_policy_db_apply_controlled_dry_run_shell_preview"
)
AUTO_POLICY_DB_APPLY_CONTROLLED_DRY_RUN_SHELL_CLOSEOUT_POLICY = (
"read_only_pchome_growth_auto_policy_db_apply_controlled_dry_run_shell_closeout"
)
AUTO_POLICY_DB_APPLY_AUTHORIZATION_REQUEST_INTAKE_POLICY = (
"read_only_pchome_growth_auto_policy_db_apply_authorization_request_intake"
)
AUTO_POLICY_DB_APPLY_AUTHORIZATION_REQUEST_CLOSEOUT_POLICY = (
"read_only_pchome_growth_auto_policy_db_apply_authorization_request_closeout"
)
AUTO_POLICY_DB_APPLY_AUTHORIZATION_LANE_GUARD_POLICY = (
"read_only_pchome_growth_auto_policy_db_apply_authorization_lane_guard"
)
AUTO_POLICY_DB_APPLY_AUTHORIZATION_DECISION_PREFLIGHT_POLICY = (
"read_only_pchome_growth_auto_policy_db_apply_authorization_decision_preflight"
)
AUTO_POLICY_DB_APPLY_AUTHORIZATION_DECISION_CLOSEOUT_POLICY = (
"read_only_pchome_growth_auto_policy_db_apply_authorization_decision_closeout"
)
AUTO_POLICY_DB_APPLY_AUTHORIZATION_ISSUER_GATE_POLICY = (
"read_only_pchome_growth_auto_policy_db_apply_authorization_issuer_gate"
)
AUTO_POLICY_DB_APPLY_AUTHORIZATION_SIGNING_DECISION_PREFLIGHT_POLICY = (
"read_only_pchome_growth_auto_policy_db_apply_authorization_signing_decision_preflight"
)
AUTO_POLICY_DB_APPLY_AUTHORIZATION_SIGNING_DECISION_CLOSEOUT_POLICY = (
"read_only_pchome_growth_auto_policy_db_apply_authorization_signing_decision_closeout"
)
AUTO_POLICY_DB_APPLY_AUTHORIZATION_SIGNING_ISSUER_GUARD_POLICY = (
"read_only_pchome_growth_auto_policy_db_apply_authorization_signing_issuer_guard"
)
AUTO_POLICY_DB_APPLY_AUTHORIZATION_SIGNING_ISSUER_CLOSEOUT_POLICY = (
"read_only_pchome_growth_auto_policy_db_apply_authorization_signing_issuer_closeout"
)
AUTO_POLICY_DB_APPLY_AUTHORIZATION_SIGNING_EXECUTION_PREFLIGHT_POLICY = (
"read_only_pchome_growth_auto_policy_db_apply_authorization_signing_execution_preflight"
)
AUTO_POLICY_DB_APPLY_AUTHORIZATION_SIGNING_EXECUTION_CLOSEOUT_POLICY = (
"read_only_pchome_growth_auto_policy_db_apply_authorization_signing_execution_closeout"
)
AUTO_POLICY_DB_APPLY_AUTHORIZATION_SIGNED_RECEIPT_PREFLIGHT_POLICY = (
"read_only_pchome_growth_auto_policy_db_apply_authorization_signed_receipt_preflight"
)
AUTO_POLICY_DB_APPLY_AUTHORIZATION_SIGNED_RECEIPT_CLOSEOUT_POLICY = (
"read_only_pchome_growth_auto_policy_db_apply_authorization_signed_receipt_closeout"
)
AUTO_POLICY_DB_APPLY_AUTHORIZATION_SIGNED_RECEIPT_EVIDENCE_INTAKE_POLICY = (
"read_only_pchome_growth_auto_policy_db_apply_authorization_signed_receipt_evidence_intake"
)
AUTO_POLICY_DB_APPLY_AUTHORIZATION_DETACHED_VERIFICATION_EVIDENCE_VALIDATION_POLICY = (
"read_only_pchome_growth_auto_policy_db_apply_authorization_detached_verification_evidence_validation"
)
AUTO_POLICY_DB_APPLY_AUTHORIZATION_VERIFIER_RECEIPT_CLOSEOUT_POLICY = (
"read_only_pchome_growth_auto_policy_db_apply_authorization_verifier_receipt_closeout"
)
AUTO_POLICY_DB_APPLY_AUTHORIZATION_EVIDENCE_EXECUTION_PREFLIGHT_POLICY = (
"read_only_pchome_growth_auto_policy_db_apply_authorization_evidence_execution_preflight"
)
AUTO_POLICY_DB_APPLY_AUTHORIZATION_EVIDENCE_EXECUTION_CLOSEOUT_POLICY = (
"read_only_pchome_growth_auto_policy_db_apply_authorization_evidence_execution_closeout"
)
AUTO_POLICY_DB_APPLY_CONTROLLED_APPLY_FINAL_PREFLIGHT_POLICY = (
"read_only_pchome_growth_auto_policy_db_apply_controlled_apply_final_preflight"
)
AUTO_POLICY_DB_APPLY_CONTROLLED_DRY_RUN_PACKAGE_POLICY = (
"read_only_pchome_growth_auto_policy_db_apply_controlled_dry_run_package"
)
AUTO_POLICY_DB_APPLY_CONTROLLED_DRY_RUN_RECEIPT_CLOSEOUT_POLICY = (
"read_only_pchome_growth_auto_policy_db_apply_controlled_dry_run_receipt_closeout"
)
AUTO_POLICY_DB_APPLY_CONTROLLED_DRY_RUN_RUNNER_READINESS_POLICY = (
"read_only_pchome_growth_auto_policy_db_apply_controlled_dry_run_runner_readiness"
)
AUTO_POLICY_DB_APPLY_CONTROLLED_DRY_RUN_EXECUTION_PLAN_CLOSEOUT_POLICY = (
"read_only_pchome_growth_auto_policy_db_apply_controlled_dry_run_execution_plan_closeout"
)
AUTO_POLICY_DB_APPLY_CONTROLLED_DRY_RUN_COMMAND_ARTIFACT_CLOSEOUT_POLICY = (
"read_only_pchome_growth_auto_policy_db_apply_controlled_dry_run_command_artifact_closeout"
)
AUTO_POLICY_DB_APPLY_CONTROLLED_DRY_RUN_RUNNER_EXECUTION_RECEIPT_CLOSEOUT_POLICY = (
"read_only_pchome_growth_auto_policy_db_apply_controlled_dry_run_runner_execution_receipt_closeout"
)
AUTO_POLICY_DB_APPLY_CONTROLLED_DRY_RUN_POST_RECEIPT_PARSER_CLOSEOUT_POLICY = (
"read_only_pchome_growth_auto_policy_db_apply_controlled_dry_run_post_receipt_parser_closeout"
)
AUTO_POLICY_DB_APPLY_CONTROLLED_DRY_RUN_NO_APPLY_ENFORCEMENT_CLOSEOUT_POLICY = (
"read_only_pchome_growth_auto_policy_db_apply_controlled_dry_run_no_apply_enforcement_closeout"
)
AUTO_POLICY_DB_APPLY_CONTROLLED_DRY_RUN_FINAL_EXECUTOR_GUARD_CLOSEOUT_POLICY = (
"read_only_pchome_growth_auto_policy_db_apply_controlled_dry_run_final_executor_guard_closeout"
)
AUTO_POLICY_DB_APPLY_CONTROLLED_DRY_RUN_PRE_APPLY_REPLAY_CLOSEOUT_POLICY = (
"read_only_pchome_growth_auto_policy_db_apply_controlled_dry_run_pre_apply_replay_closeout"
)
AUTO_POLICY_DB_APPLY_CONTROLLED_DRY_RUN_APPLY_EXECUTOR_READINESS_CLOSEOUT_POLICY = (
"read_only_pchome_growth_auto_policy_db_apply_controlled_dry_run_apply_executor_readiness_closeout"
)
AUTO_POLICY_DB_APPLY_CONTROLLED_DRY_RUN_INVOCATION_RECEIPT_CLOSEOUT_POLICY = (
"read_only_pchome_growth_auto_policy_db_apply_controlled_dry_run_invocation_receipt_closeout"
)
AUTO_POLICY_DB_APPLY_CONTROLLED_DRY_RUN_NO_WRITE_INVOCATION_PACKAGE_CLOSEOUT_POLICY = (
"read_only_pchome_growth_auto_policy_db_apply_controlled_dry_run_no_write_invocation_package_closeout"
)
AUTO_POLICY_DB_APPLY_CONTROLLED_DRY_RUN_EXECUTION_PREFLIGHT_GUARD_CLOSEOUT_POLICY = (
"read_only_pchome_growth_auto_policy_db_apply_controlled_dry_run_execution_preflight_guard_closeout"
)
AUTO_POLICY_DB_APPLY_CONTROLLED_DRY_RUN_RUNNER_INVOCATION_BOUNDARY_CLOSEOUT_POLICY = (
"read_only_pchome_growth_auto_policy_db_apply_controlled_dry_run_runner_invocation_boundary_closeout"
)
AUTO_POLICY_DB_APPLY_CONTROLLED_DRY_RUN_NO_EXECUTION_RECEIPT_HANDOFF_CLOSEOUT_POLICY = (
"read_only_pchome_growth_auto_policy_db_apply_controlled_dry_run_no_execution_receipt_handoff_closeout"
)
AUTO_POLICY_DB_APPLY_CONTROLLED_DRY_RUN_FINAL_NO_RUNNER_EXECUTION_PROOF_CLOSEOUT_POLICY = (
"read_only_pchome_growth_auto_policy_db_apply_controlled_dry_run_final_no_runner_execution_proof_closeout"
)
AUTO_POLICY_DB_APPLY_CONTROLLED_DRY_RUN_CONTROLLED_EXECUTOR_QUARANTINE_PROOF_CLOSEOUT_POLICY = (
"read_only_pchome_growth_auto_policy_db_apply_controlled_dry_run_controlled_executor_quarantine_proof_closeout"
)
AUTO_POLICY_DB_APPLY_CONTROLLED_DRY_RUN_EXECUTION_ENVELOPE_FREEZE_PROOF_CLOSEOUT_POLICY = (
"read_only_pchome_growth_auto_policy_db_apply_controlled_dry_run_execution_envelope_freeze_proof_closeout"
)
AUTO_POLICY_DB_APPLY_CONTROLLED_DRY_RUN_FROZEN_ENVELOPE_VERIFIER_HANDOFF_CLOSEOUT_POLICY = (
"read_only_pchome_growth_auto_policy_db_apply_controlled_dry_run_frozen_envelope_verifier_handoff_closeout"
)
AUTO_POLICY_DB_APPLY_CONTROLLED_DRY_RUN_VERIFIER_INVOCATION_LOCK_PROOF_CLOSEOUT_POLICY = (
"read_only_pchome_growth_auto_policy_db_apply_controlled_dry_run_verifier_invocation_lock_proof_closeout"
)
AUTO_POLICY_DB_APPLY_CONTROLLED_DRY_RUN_VERIFIER_NO_EXECUTION_RECEIPT_PROOF_CLOSEOUT_POLICY = (
"read_only_pchome_growth_auto_policy_db_apply_controlled_dry_run_verifier_no_execution_receipt_proof_closeout"
)
AUTO_POLICY_DB_APPLY_CONTROLLED_DRY_RUN_VERIFIER_RECEIPT_PERSISTENCE_GUARD_PROOF_CLOSEOUT_POLICY = (
"read_only_pchome_growth_auto_policy_db_apply_controlled_dry_run_verifier_receipt_persistence_guard_proof_closeout"
)
AUTO_POLICY_DB_APPLY_CONTROLLED_DRY_RUN_RECEIPT_PERSISTENCE_STORAGE_BOUNDARY_PROOF_CLOSEOUT_POLICY = (
"read_only_pchome_growth_auto_policy_db_apply_controlled_dry_run_receipt_persistence_storage_boundary_proof_closeout"
)
AUTO_POLICY_DB_APPLY_CONTROLLED_DRY_RUN_STORAGE_BOUNDARY_NO_WRITE_LEDGER_PROOF_CLOSEOUT_POLICY = (
"read_only_pchome_growth_auto_policy_db_apply_controlled_dry_run_storage_boundary_no_write_ledger_proof_closeout"
)
AUTO_POLICY_DB_APPLY_CONTROLLED_DRY_RUN_NO_WRITE_LEDGER_RETENTION_PROOF_CLOSEOUT_POLICY = (
"read_only_pchome_growth_auto_policy_db_apply_controlled_dry_run_no_write_ledger_retention_proof_closeout"
)
AUTO_POLICY_DB_APPLY_CONTROLLED_DRY_RUN_RETENTION_BOUNDARY_NO_WRITE_ARCHIVE_PROOF_CLOSEOUT_POLICY = (
"read_only_pchome_growth_auto_policy_db_apply_controlled_dry_run_retention_boundary_no_write_archive_proof_closeout"
)
AUTO_POLICY_DB_APPLY_CONTROLLED_DRY_RUN_ARCHIVE_RETENTION_SEALED_HANDOFF_PROOF_CLOSEOUT_POLICY = (
"read_only_pchome_growth_auto_policy_db_apply_controlled_dry_run_archive_retention_sealed_handoff_proof_closeout"
)
PCHOME_FETCH_ALLOWED_DOMAIN = "24h.pchome.com.tw"
PCHOME_FETCH_MAX_BATCH_SIZE = 12
PCHOME_FETCH_DEFAULT_TIMEOUT_SECONDS = 5
PCHOME_FETCH_MAX_HTML_BYTES = 512_000
EXTERNAL_BENCHMARK_REFERENCES = [
{
"source": "Google Merchant Center product data specification",
"url": "https://support.google.com/merchants/answer/7052112",
"applies_to": "accurate_product_feed_matching",
},
{
"source": "Google Search Product structured data",
"url": "https://developers.google.com/search/docs/appearance/structured-data/product",
"applies_to": "rich_product_information_and_offer_visibility",
},
{
"source": "Google Merchant listing structured data",
"url": "https://developers.google.com/search/docs/appearance/structured-data/merchant-listing",
"applies_to": "product_offer_price_currency_availability",
},
{
"source": "Baymard ecommerce product and search UX benchmark",
"url": "https://baymard.com/research/product-page",
"applies_to": "operator_search_and_product_detail_quality",
},
]
__all__ = tuple(name for name in globals() if name.isupper())