The first extractor had a bug: it let tone veto the act. A hedge word near the start could erase an order — so "i think we start the antibiotics" (a real attending order) was lost, while "lets start the antibiotics" survived. Order-recognition became a coin-flip on the opener. The fix splits two independent axes: an action verb on a domain object is a DIRECTIVE, whatever the hedging; the hedging is recorded as tone — a signal, never a veto. Authority decides validity, separately, downstream.
DIRECTIVE · EVIDENCE · QUESTION · CODE · RECOMMENDATION · STATEMENTstrong (bare imperative / "i want" / "final call") · neutral ("lets" / "we should") · hedged ("i think" / "maybe" / "id consider"). A hedged order from an attending may warrant a confirm-back — but it is still an order.Fifteen ways to give the same order. All fifteen must read DIRECTIVE. Toggle the old tone-vetoes-act logic to see which ones it would silently drop.
A real-shaped ICU round: an attending (sovereign), a resident & NP (delegated), an RN & pharmacist (advisory), a student & an Epic bot (observer). Each line is classified (speech-act + tone), then directives are adjudicated by authority: who could actually place that order?
role_classifier.py + the healthcare example). The LOGIC is fixed; the VOCABULARY is injected per domain (healthcare / engineering configs). It is the FSS (optimistic promote) stage done right: an action verb is promoted to DIRECTIVE regardless of tone; the skeptical BSS stage (authority + topic + commitment) still adjudicates downstream — exactly as in the filtration pipeline.