{
  "collection": "Apex Instruments starter assistant, refusal rules",
  "version": "1.0",
  "published": "2026-10-01",
  "note": "Fictional sample data for a portfolio demonstration. Apex Instruments, Northlight Group, Meridian and Atlas Care do not exist. Nothing here describes a real company, product or service.",
  "order": "The refusal rules run before the match, not after. A question that trips a rule is refused even when an approved fact would have scored well against it, because the rules exist for exactly the questions that look answerable.",
  "principle": "A chatbot that will not guess is more useful than one that will.",
  "rules": [
    {
      "id": "price",
      "name": "It will not put a number on anything",
      "triggers": ["price", "pricing", "cost", "costs", "how much", "quote", "quotation", "what do you charge", "do you charge", "fee", "fees", "rate card", "expensive", "budget for", "dollars"],
      "pattern": "\\$\\s*\\d",
      "patternLabel": "any currency figure, such as $4,850",
      "examples": ["How much is a Meridian Pro", "What does calibration cost", "Can you quote me for three units"],
      "refusal": "I will not give you a price. Prices depend on the plan, the site, and the terms on your account, and a figure I invent here would be worse than no figure at all.",
      "route": "The order desk gives real prices in writing, on orders@apexinstruments.example or (555) 010-0100.",
      "why": "A price is the single most repeated, most quoted, most screenshotted thing an assistant produces. One wrong figure ends up in a purchase order and then in a dispute."
    },
    {
      "id": "turnaround",
      "name": "It will not put a length on a job",
      "triggers": ["turnaround", "turn around", "lead time", "how long will it take", "how long does it take", "how long does a", "how long for", "how many days", "how many business days", "how soon", "how fast", "eta", "when will it be ready", "when will it be done", "same day", "rush job"],
      "examples": ["What is the turnaround on a calibration", "How long does a service take", "How soon can you look at it"],
      "refusal": "I will not give you a turnaround time. Turnaround depends on what is already in the queue this week, and the only honest answer is the one the service desk can see.",
      "route": "The service desk gives the current date against your service reference, on service@apexinstruments.example.",
      "why": "Turnaround is a number that changes weekly. A published figure repeated by an assistant becomes a promise the service team did not make."
    },
    {
      "id": "delivery-date",
      "name": "It will not put a date on a delivery",
      "triggers": ["delivery date", "when will it arrive", "will it arrive", "arrive by", "get it by", "delivered by", "ship date", "when does it ship", "when will it ship", "in time for", "before the end of the month"],
      "examples": ["Will it arrive before the end of the month", "What is the delivery date on order APX204411", "Can I get it by Friday"],
      "refusal": "I will not give you a delivery date. I cannot see your order, the build queue, or the carrier, so any date from me would be a guess dressed up as a commitment.",
      "route": "The order desk can see your order and will confirm a date against your order reference.",
      "why": "A delivery date is planned around. Somebody books an engineer, a room, or a shift on it, and being wrong costs them more than being told nothing."
    },
    {
      "id": "discount",
      "name": "It will not offer anything off",
      "triggers": ["discount", "discounted", "cheaper", "price break", "volume pricing", "bulk pricing", "negotiate", "match a price", "beat a price", "waive", "free upgrade", "throw in", "any deal"],
      "examples": ["Is there a discount for ten units", "Can you do better on that", "Will you match another supplier"],
      "refusal": "I will not offer you a discount or any change to terms. Nothing I say here is an offer, and I am not the part of this company that is allowed to make one.",
      "route": "Commercial terms come from your account manager, and they are confirmed in writing before they mean anything.",
      "why": "Anything an assistant appears to offer will be held up later as an offer. The refusal protects the customer as much as the company."
    },
    {
      "id": "unreleased",
      "name": "It will not talk about what has not been announced",
      "triggers": ["next version", "new model", "when is the new", "roadmap", "coming soon", "unreleased", "not announced", "next generation", "next gen", "what is coming", "launch date", "in beta", "in development", "future product"],
      "examples": ["When is the new Meridian coming out", "What is on the roadmap", "Is there a Pro 2"],
      "refusal": "I will not talk about anything that has not been announced. If it is not in the published product sheet, then as far as this assistant is concerned it does not exist.",
      "route": "Announcements come from the product team and are published on the site before anyone repeats them.",
      "why": "Unreleased detail leaks through assistants more often than through people, because an assistant has no sense of who it is talking to."
    },
    {
      "id": "partner",
      "name": "It will not speak for a partner",
      "triggers": ["northlight", "on behalf of", "speak for", "does the partner", "your partner", "partner's", "what does northlight", "another company's"],
      "examples": ["Does Northlight Group service these too", "What does Northlight charge for it", "Can you answer for your partner"],
      "refusal": "I will not answer for another company. Northlight Group speak for themselves, and anything I said on their behalf would be me guessing about a business I am not part of.",
      "route": "Your account manager will put you in touch with the right person on the partner side.",
      "why": "Speaking for a partner is the fastest way to damage a relationship the company does not control. It is also usually wrong."
    },
    {
      "id": "account-terms",
      "name": "It will not read your contract back to you",
      "triggers": ["my contract", "our contract", "our agreement", "my agreement", "our terms", "my terms", "special terms", "exception for", "our sla", "my sla", "custom terms", "what did we agree"],
      "examples": ["What are the terms on our account", "Do we have an exception for weekend service", "What did we agree last year"],
      "refusal": "I will not tell you what is in your agreement. I can only see what has been published for everyone, and your account may well have been given something different.",
      "route": "Your account manager holds the signed agreement and can read it back to you.",
      "why": "Negotiated terms are the definition of a fact that is true for one customer and false for the next. A general assistant has no way to tell which it is talking to."
    },
    {
      "id": "claims",
      "name": "It will not make a safety or compliance claim",
      "triggers": ["is it safe", "certified", "compliant", "compliance", "regulation", "regulatory", "approved for use", "accurate to", "accuracy of", "meets the standard", "legally", "liable"],
      "examples": ["Is the Field Kit certified for that", "Does this meet the standard", "How accurate is it, to what tolerance"],
      "refusal": "I will not make a claim about safety, accuracy or compliance. Those claims are made in documents that people sign, not in a chat window.",
      "route": "The quality team answers these in writing, and the answer comes with the document it is based on.",
      "why": "A compliance claim from an assistant carries the company's name and none of its checks. This is the rule that would survive a lawyer reading it."
    },
    {
      "id": "comparison",
      "name": "It will not compare us with anybody else",
      "triggers": ["better than", "compared to", "compare to", "versus", " vs ", "competitor", "competitors", "rival", "other brands", "instead of buying"],
      "examples": ["Is this better than what we have now", "How does it compare to other instruments", "Why should we not buy from a competitor"],
      "refusal": "I will not compare Apex Instruments with another company. I only hold facts about our own products, so any comparison from me would be half informed by design.",
      "route": "Your account manager will talk through what the Meridian range does, against what you actually need it to do.",
      "why": "A comparison needs accurate facts about the other side, and the assistant has none. Half a comparison reads as a claim."
    },
    {
      "id": "not-covered",
      "name": "Nothing on the approved list covers it",
      "triggers": [],
      "fallback": true,
      "examples": ["Who is your chief executive", "Can you write my quality procedure", "What is the weather in Tampa"],
      "refusal": "No approved fact covers that. This assistant only repeats answers a named person has approved and dated, and there is nothing on the list about it, so it will not attempt one.",
      "route": "The customer desk answers anything not on the list, on (555) 010-0100 or desk@apexinstruments.example.",
      "why": "The default has to be refusal rather than an attempt. A system that guesses when it runs out of facts is a system whose answers cannot be trusted at all, including the good ones."
    }
  ]
}
