# @doil-operations-contract doil.operationsContract/v1 # @contract-file "cost-capped-5g-review.doil" # @contract-title "Cost-capped Malaysia 5G option review" # @contract-exposure {"classification":"public_blueprint","visibility":"public","containsSensitiveData":false,"intendedRecipients":["telecom_product_reviewer","noc_automation_reviewer"]} # @contract-execution {"kind":"one_shot","maxCycles":1,"expiresAt":null,"concurrency":1,"failurePolicy":"stop_and_escalate","approvalPolicy":"human_required_before_entrypoint","handler":"prepare_cost_capped_review","trigger":null} # @contract-portability ["noc_agent","rpa","runbook","workflow","agentic"] # @contract-test-clock "2026-08-03T08:30:00.000Z" # @contract-requirement[OBJ-001] {"category":"objective","criticality":"required","derivedFrom":["desk://run/run_cEGd9-Gjk2CvHEUPOmbE2","desk://claim/clm_lc9icatnc","desk://claim/clm_2c7f2mcvc","desk://scene/scn_ixedvr_Bm3RSK3y7HOlji","desk://scene/scn_2aDVI_EzIZcAfxQNXJHHw","desk://scene/scn_e_XRl9twC9bXw-gCpXHNF"]} # @intent[OBJ-001] Stage a human-reviewable 24-month Malaysia 5G option packet in the governed product-review workspace, containing only modeled candidates that add at least 1,000,000 active relationships without exceeding RM150 million modeled launch spend, while making no live product, customer, budget, or network change. class CostCappedMalaysia5GReview < BaseAgent intent "Stage a human-reviewable 24-month Malaysia 5G option packet in the governed product-review workspace, containing only modeled candidates that add at least 1,000,000 active relationships without exceeding RM150 million modeled launch spend, while making no live product, customer, budget, or network change." context do require geography: "Malaysia national modeled market" require technology: "Modeled consumer 5G product adoption" require link: "Reviewed Product Launch Sim adoption-and-cost decision path" require system: "Product Launch Sim public modeled workspace" require event: "Iteration-2 cost-cap review" require nodes: ["pl_postpaid_5g"] require time: { starts_at: "2026-08-03T08:30:00Z", ends_at: "2028-12-31T23:59:59Z" } require market: "Malaysia telecom — Maxis, Axiata-linked CelcomDigi, and Digital Nasional Berhad" require run: "desk://run/run_cEGd9-Gjk2CvHEUPOmbE2" require approved_connection_claim: "desk://claim/clm_lc9icatnc" require approved_scenario_claim: "desk://claim/clm_2c7f2mcvc" require baseline_scene: "desk://scene/scn_ixedvr_Bm3RSK3y7HOlji" require adjusted_scene: "desk://scene/scn_2aDVI_EzIZcAfxQNXJHHw" require comparison_scene: "desk://scene/scn_e_XRl9twC9bXw-gCpXHNF" require objective: { modeled_active_relationships: 1000000, horizon_weeks: 104, modeled_launch_spend_ceiling_myr_m: 150 } require rejected_option: { plan_id: "plan_ebf0e6dc8d4e752c709629", modeled_active_relationships: 3188157, modeled_spend_myr_m: 392.419 } require selected_option: { modeled_active_relationships: 3188157, modeled_cac_myr_m: 124.806, modeled_build_cost_myr_m: 18, modeled_total_spend_myr_m: 142.806, modeled_cac_per_relationship_myr: 40 } require evidence_limits: ["No operator telemetry", "No live RAN data", "No company forecast", "Lever costs remain incomplete"] require permitted_target: "Governed product-review workspace only; never a live product, customer, budget, or network target" require user: :approved_product_reviewer end tools do validate_review_inputs description: "Confirm the reviewed Desk run, approved claims, original and reader-adjusted scenes, target, ceiling, and evidence limits", effect: "read", vendor_op: "receiver_owned", parameters: ["run", "approved_connection_claim", "approved_scenario_claim", "baseline_scene", "adjusted_scene", "comparison_scene"] enumerate_cost_capped_options description: "Generate deterministic modeled parameter combinations that remain at or below the approved spend ceiling", effect: "read", vendor_op: "receiver_owned", parameters: ["objective", "rejected_option"] evaluate_joint_constraint description: "Evaluate relationship count and modeled spend together; neither predicate may mask the other", effect: "read", vendor_op: "receiver_owned", parameters: ["options", "objective"] stage_human_review_packet description: "Stage ranked bounded options, assumptions, caveats, and gaps in the governed review workspace; this must not change a live product, customer, budget, or network", effect: "external_change", vendor_op: "receiver_owned", parameters: ["evaluated_options", "evidence_limits", "permitted_target"] end guardrails do pre_execution do require :approval end end output do stage :review do generate :staged_cost_capped_option_packet_receipt present :joint_constraint_verdict_assumptions_gaps_and_target_boundary require :approval end end def prepare_cost_capped_review inputs = tools.validate_review_inputs.apply(:run, :approved_connection_claim, :approved_scenario_claim, :baseline_scene, :adjusted_scene, :comparison_scene) if inputs.ready options = tools.enumerate_cost_capped_options.apply(:objective, :rejected_option) evaluated = tools.evaluate_joint_constraint.apply(options, :objective) tools.stage_human_review_packet.apply(evaluated, :evidence_limits, :permitted_target) end end end