Intent classification asks what a user wants to accomplish with a message, which is a step beyond keyword matching per AmICited's overview. That gap is exactly where two raters diverge: a message containing "refund" can be a request to start a return, a question about refund timing, or a complaint that a refund never arrived. A guide built from examples will show each of these once and let raters guess the rest. A guide built from rules tells them which signal wins.
The old approach to intent work was a long list of hand-written rules and logic, which scales badly once you have thousands of messages as Lucidworks describes. That does not mean rules are wrong. It means a rulebook has to be small, ordered and testable, and it needs a measurement loop so you can tell whether a new rule helped. The same logic applies to machine categorizers, which is why query classification research keeps circling back to how coarse category definitions lose detail in the Modelling paper on semantic intent identification. Human raters hit the same wall.
Your guide has four layers per intent:
- One-line definition. What the user is trying to do, in their words.
- Three inclusion cues. Observable features in the text (verbs, nouns, punctuation, whether an order number appears).
- One exclusion. The closest neighboring intent this one must not absorb.
- One tie-breaker. The rule that resolves the specific co-occurrence you expect to see.
The tie-breaker is the layer most guides skip, and it is the layer that moves kappa. Write tie-breakers as ordered precedence: "If a message contains both a purchase request and a shipping-date question, label it transactional, because the order is the user's goal and the date is a constraint." Raters can apply precedence rules consistently. They cannot consistently apply "use judgment."



