The refusal is a sticker, not a delete
Safety training doesn't remove dangerous knowledge — it teaches a thin refusal circuit to fire on top of an intact capability core. Peel back the layer below and watch: the model still "knows" the answer; the safety layer is just deciding whether to let it out.
Drag a request across the line
The guard is a classifier over the request's representation — a point in space. There's a boundary: harmful side gets refused, safe side gets answered. A raw harmful request sits deep in refusal territory. Each attack pattern is a vector that shifts that point. Stack them and slide it across the line without changing the underlying intent at all.
Drown the guard in examples
Long context is a weapon. Fill the prompt with dozens of fake exchanges where the assistant happily complied, and the model's in-context pattern-matching starts to imitate that pattern — overwhelming the refusal it was trained to give. Slide the number of "shots" up and watch the guard's block probability collapse.
Patch yesterday's attack, meet today's
You caught the roleplay jailbreak. Good — patch the guard to block it. The boundary bends to fence off that region. Now try the other patterns: at least one still routes around the new shape. Patch that too. There's always another direction in a high-dimensional space.
Whack-a-mole with no last mole
Zoom out. Each patch covers a patch of the surface; new attack "moles" keep popping up elsewhere. Whack them one by one and watch coverage climb — but the surface keeps generating new holes faster than a fixed set of patches can seal. Speed it up and see whether you can ever hit 100%.