{
  "object": "curbi.template.catalog",
  "scope": "synthetic_examples_not_customer_policies",
  "templates": [
    {
      "id": "voice-discount-guardrail",
      "title": "Voice agent discount guardrail",
      "policy": {
        "prices": [
          {
            "item": "Pro annual",
            "aliases": [
              "Pro annual",
              "annual plan"
            ],
            "amount": 500
          }
        ],
        "forbid": [
          {
            "id": "guarantee",
            "phrases": [
              "guarantee"
            ],
            "why": "No outcome guarantees on calls."
          },
          {
            "id": "free",
            "phrases": [
              "for free",
              "no charge"
            ],
            "why": "Waivers need a manager."
          }
        ],
        "actions": {
          "applied": "billing.invoice.apply_discount",
          "discounted": "billing.invoice.apply_discount"
        },
        "unknownAmounts": "allow"
      },
      "cases": [
        {
          "id": "unrecorded-discount",
          "reply": "I've applied a $450 discount.",
          "expectedPass": false
        },
        {
          "id": "pending",
          "reply": "Your discount request is being processed.",
          "expectedPass": true
        }
      ],
      "scope": "synthetic_policy_preview_no_provider_actions"
    },
    {
      "id": "01-first-policy",
      "title": "Your first policy",
      "policy": {
        "prices": [
          {
            "item": "Starter",
            "amount": 49
          }
        ]
      },
      "cases": [
        {
          "id": "approved-price",
          "reply": "Starter is $49.",
          "expectedPass": true
        },
        {
          "id": "wrong-price",
          "reply": "Starter is $99.",
          "expectedPass": false
        },
        {
          "id": "invented-promise",
          "reply": "We guarantee results.",
          "expectedPass": false
        },
        {
          "id": "honest-limit",
          "reply": "We do not guarantee results.",
          "expectedPass": true
        },
        {
          "id": "missing-booking",
          "reply": "I've booked your appointment.",
          "expectedPass": false
        },
        {
          "id": "pending-booking",
          "reply": "We can request an appointment.",
          "expectedPass": true
        }
      ],
      "solutionPolicy": {
        "prices": [
          {
            "item": "Starter",
            "amount": 49
          }
        ],
        "forbid": [
          {
            "id": "guarantee",
            "phrases": [
              "guarantee"
            ],
            "why": "This example does not promise results."
          }
        ],
        "actions": {
          "booked": "calendar.book"
        }
      },
      "scope": "synthetic_academy_case"
    },
    {
      "id": "02-hidden-characters",
      "title": "Hidden characters",
      "policy": {
        "prices": [
          {
            "item": "Starter",
            "amount": 49
          }
        ]
      },
      "cases": [
        {
          "id": "fullwidth-dollar",
          "reply": "Starter is \uff0499.",
          "expectedPass": false
        },
        {
          "id": "zero-width-promise",
          "reply": "We gua\u200brantee results.",
          "expectedPass": false
        },
        {
          "id": "cyrillic-letter",
          "reply": "We gu\u0430rantee results.",
          "expectedPass": false
        },
        {
          "id": "plain-honest",
          "reply": "Starter is $49.",
          "expectedPass": true
        },
        {
          "id": "negated",
          "reply": "We don't guarantee results.",
          "expectedPass": true
        },
        {
          "id": "inflected",
          "reply": "Results guaranteed.",
          "expectedPass": false
        }
      ],
      "solutionPolicy": {
        "prices": [
          {
            "item": "Starter",
            "amount": 49
          }
        ],
        "forbid": [
          {
            "id": "guarantee",
            "phrases": [
              "guarantee"
            ],
            "why": "No outcome guarantees."
          }
        ]
      },
      "scope": "synthetic_academy_case"
    },
    {
      "id": "03-real-negation",
      "title": "Real negation",
      "policy": {
        "forbid": [
          {
            "id": "guarantee",
            "phrases": [
              "guarantee"
            ],
            "negatable": false
          }
        ]
      },
      "cases": [
        {
          "id": "honest-limit",
          "reply": "We do not guarantee results.",
          "expectedPass": true
        },
        {
          "id": "never",
          "reply": "We never guarantee a timeline.",
          "expectedPass": true
        },
        {
          "id": "not-only",
          "reply": "Not only do we guarantee results, we deliver them.",
          "expectedPass": false
        },
        {
          "id": "no-doubt",
          "reply": "No doubt we guarantee it.",
          "expectedPass": false
        },
        {
          "id": "other-clause",
          "reply": "We never miss calls and guarantee results.",
          "expectedPass": false
        },
        {
          "id": "cannot",
          "reply": "We cannot guarantee approval.",
          "expectedPass": true
        }
      ],
      "solutionPolicy": {
        "forbid": [
          {
            "id": "guarantee",
            "phrases": [
              "guarantee"
            ]
          }
        ]
      },
      "scope": "synthetic_academy_case"
    },
    {
      "id": "04-completion-claims",
      "title": "Completion claims",
      "policy": {
        "actions": {
          "booked": "calendar.book"
        }
      },
      "cases": [
        {
          "id": "active",
          "reply": "I've booked your appointment.",
          "expectedPass": false
        },
        {
          "id": "passive",
          "reply": "You're booked for Monday.",
          "expectedPass": false
        },
        {
          "id": "refund-claim",
          "reply": "I have refunded your payment.",
          "expectedPass": false
        },
        {
          "id": "had-sent",
          "reply": "I had sent the invoice.",
          "expectedPass": false
        },
        {
          "id": "pending",
          "reply": "I've asked the team to book Monday for you.",
          "expectedPass": true
        },
        {
          "id": "recorded",
          "reply": "I've booked your appointment.",
          "expectedPass": true,
          "record": {
            "effects": [
              {
                "operation": "calendar.book",
                "status": "DONE"
              }
            ]
          }
        }
      ],
      "solutionPolicy": {
        "actions": {
          "booked": "calendar.book",
          "refunded": "billing.refund",
          "sent": "messages.send"
        }
      },
      "scope": "synthetic_academy_case"
    },
    {
      "id": "05-cents-and-format",
      "title": "Cents and format",
      "policy": {
        "prices": [
          {
            "item": "Pro",
            "amount": 49
          }
        ],
        "unknownAmounts": "allow"
      },
      "cases": [
        {
          "id": "trailing-zeros",
          "reply": "Pro is $49.00.",
          "expectedPass": true
        },
        {
          "id": "off-by-a-cent",
          "reply": "Pro is $49.01.",
          "expectedPass": false
        },
        {
          "id": "team-exact",
          "reply": "Team is $199.99.",
          "expectedPass": true
        },
        {
          "id": "malformed",
          "reply": "Pro is $1,2345.",
          "expectedPass": false
        },
        {
          "id": "usd-word",
          "reply": "Pro is USD 39.",
          "expectedPass": false
        },
        {
          "id": "stray-fee",
          "reply": "There is also a $15 setup fee.",
          "expectedPass": false
        }
      ],
      "solutionPolicy": {
        "prices": [
          {
            "item": "Pro",
            "amount": 49
          },
          {
            "item": "Team",
            "amount": 199.99
          }
        ]
      },
      "scope": "synthetic_academy_case"
    },
    {
      "id": "06-record-facts",
      "title": "Facts from the record",
      "policy": {},
      "cases": [
        {
          "id": "right-time",
          "reply": "I booked you for 9am Monday.",
          "expectedPass": true,
          "record": {
            "effects": [
              {
                "operation": "calendar.book",
                "status": "DONE"
              }
            ],
            "facts": [
              {
                "near": "booked",
                "kind": "time",
                "value": "9am"
              }
            ]
          }
        },
        {
          "id": "wrong-time",
          "reply": "I booked you for 10am Monday.",
          "expectedPass": false,
          "record": {
            "effects": [
              {
                "operation": "calendar.book",
                "status": "DONE"
              }
            ],
            "facts": [
              {
                "near": "booked",
                "kind": "time",
                "value": "9am"
              }
            ]
          }
        },
        {
          "id": "wrong-day",
          "reply": "I booked you for Tuesday.",
          "expectedPass": false,
          "record": {
            "effects": [
              {
                "operation": "calendar.book",
                "status": "DONE"
              }
            ],
            "facts": [
              {
                "near": "booked",
                "kind": "date",
                "value": "Monday"
              }
            ]
          }
        },
        {
          "id": "no-record",
          "reply": "I booked you for 9am.",
          "expectedPass": false
        }
      ],
      "solutionPolicy": {
        "actions": {
          "booked": "calendar.book"
        }
      },
      "scope": "synthetic_academy_case"
    }
  ]
}
