artifact_type: acgp.blueprint
schema_version: "2.0.0"
id: support/refund-review@2.0
version: "2.0.0"
title: "Refund review standard blueprint"
description: "Standard governance policy for customer-support refund handling"

applicability:
  governance_tiers: ["GT-3"]
  tools: ["issue_refund"]
  domains: ["customer-support"]
  out_of_scope_behavior: escalate

checks:
  - id: refund_reason_quality
    kind: metric
    when:
      hook: tool_call
      tool: issue_refund
    metric:
      name: reason_quality
      weight: 0.55
      evaluator:
        kind: rule-based
        args:
          mode: all
          rules:
            - id: refund_reason_present
              field: parameters.reason
              operator: exists
            - id: refund_reason_descriptive
              field: parameters.reason
              operator: regex
              value: ".{25,}"

  - id: order_grounding
    kind: metric
    when:
      hook: tool_call
      tool: issue_refund
    metric:
      name: order_grounding
      weight: 0.45
      evaluator:
        kind: source-match
        args:
          require_order_match: true

tripwires:
  - id: refund_hard_cap
    when:
      hook: tool_call
      tool: issue_refund
    condition: "args.amount > 5000"
    on_fail:
      decision: block
      reason: "Refund exceeds hard cap"

intervention_policy:
  thresholds:
    ok: 0.25
    nudge: 0.40
    escalate: 0.55

trust_policy:
  enabled: true
  accumulation:
    ok: 0.0
    flag: 0.10
    nudge: 0.50
    escalate: 1.00
    block: 2.00
    halt: 5.00
  decay:
    decay_fraction: 0.05
    period_hours: 24
    min_debt: 0.0
  thresholds:
    elevated_monitoring: 0.30
    restricted_mode: 0.50
    re_tiering_review: 0.75

# Deployment note:
# The reference evaluator service attaches an orthogonal review flag when
# account_email_changed_hours_ago < 24. That flag does not replace the primary
# intervention value; it is carried alongside the decision and trust-debt update.