# Redaction gate checklist

When AI writes content about your business, sooner or later it will mention something you didn't
want public: a client, a number, a supplier, something you haven't proven yet. Telling it "don't do
that" in a prompt works most of the time. Most of the time isn't good enough for something that goes
out under your name.

So I use a gate. It's a plain list of words that can never appear, and a script that checks every
draft against the list before a human ever sees it. A hit refuses the draft before anybody reads it.

## Set it up

- [ ] **One denylist file** a human can edit. One term per line. Clients, people, suppliers,
      internal code names, anything not public yet.
- [ ] **A section for what's already public**, so nobody adds your own company name and blocks
      everything.
- [ ] **Keep it current from the source.** If you have a client list somewhere, have a script
      refresh the denylist from it, so a new client is covered the day they sign.
- [ ] **The rule behind it, written at the top.** For example: nothing about a new product line or
      market until it's proven and far enough ahead nobody can catch up. Client names, client numbers
      and credentials never, proven or not.

## Make the check hard to slip past

- [ ] Case-insensitive, whole-word matching (so a short term doesn't fire inside a longer word).
- [ ] Also catch the term inside a #hashtag, in CamelCase (`MyClientName`), with the spaces taken out
      or swapped for `-` or `_`, and with a possessive (`Client's`).
- [ ] Check every piece: the title, the body, every social version, image text and captions.
- [ ] Run it on the final text, after any rewrite, not on the first draft.

## Prove it works

- [ ] **A positive control.** Keep a test that feeds the gate a draft with a known denied term and
      expects a refusal. If that test ever passes the draft, the gate is broken, however clean the
      real drafts look.
- [ ] **A clean control.** A draft with no denied terms should pass, so you know the gate isn't just
      refusing everything.
- [ ] Log what was refused and why, so you can see when the list needs a new spelling.

## What a gate can't do

- It only catches words on the list. A description that makes a client obvious without naming them
  still gets through. A human read stays part of the process.
- It's for what goes in the content. Keep it out of anything that takes action.
