Answering your closing question directly, since that's the useful part.
Our policy: the AI's involvement is recorded but never mitigating. Every commit an agent co-wrote carries a co-author trailer, so after an incident we can answer "was this AI-written?" from git rather than from memory. It's a data question, not an excuse.
What actually changed is where the accountability gate sits. It moved from "who wrote this line" to "who approved this diff, and what did they check". The postmortem question isn't "did the AI hallucinate", it's "what was the reviewer relying on when they approved it". Usually the honest answer is that the diff was 400 lines at 6pm - and that's a process failure with a human name on it.
Two things followed from that for us:
We cap what a single review can cover. If an agent produces something too large to actually read, that's the defect, before any of the code is examined.
Incident reviews ask for the verification, not the intention. "It was tested" isn't an answer; "here is the test, and here's why it didn't cover this case" is.
The blast-radius framing in your piece is the one I'd extend: AI-written code hasn't changed the blame chain at all. It's changed the volume of code arriving per reviewer per hour. Accountability was always human. What's newly scarce is review capacity, and most teams haven't priced that in.
One thing I'd separate out here: not every "AI hallucinated" incident is actually a blame-deficit problem. A chunk of them are just plain CI failures wearing an AI label — code that would have failed the existing test suite if anyone had run it before merging, agent-written or not. That's not a new accountability problem, it's the old "we skipped a step" problem with a new excuse attached. The genuinely new case is narrower: code that passes every existing check, looks completely reasonable on read, and is still wrong in a way that only shows up under load or in an edge case nobody wrote a test for. That's the one where "who approved this diff" actually matters, because there was nothing mechanical left to catch it. Worth splitting those two before deciding how much process to add — the fix for the first one is just enforcing what already exists.