This router treats privileged and confidential as the same thing: one rule, "sensitive material needs a cleared tool." So a privileged strategy memo sails into vendor-summarizer — cleared, yes, but it trains on inputs, which is exactly the fact the privilege analysis turns on.
Fix route so privileged material gets its own, stricter rule
BEFORE the confidentiality rule: privileged requires a tool that is
cleared AND no-training → otherwise "BLOCK (privilege)". Keep the
confidentiality rule as-is. (This drill drops the 502(d)-flag
branch to isolate the bug — the checkpoint puts it back.)
Expected output:
strategy memo -> vendor-summarizer: BLOCK (privilege)
strategy memo -> firm-assist: ALLOW
client k-summary -> vendor-summarizer: ALLOW
client k-summary -> consumer-chatbot: BLOCK (confidentiality)
The break is on lines 9, 10, 11, 12 — but read the whole snippet first.