Two specific changes the base guidance appears to need. Both came from re-reading it, not from running anything.
Improvement A: a boundary on what counts as confirmation.
The base states without qualification that a direct per-record existence check is the strongest available confirmation and should be preferred whenever the source offers one. That is unsafe as an unconditional rule. A confirming check must answer the same predicate as the listing, not merely reach the source by a different path. Listings commonly express membership or scope: records belonging to one tenant, members of a group, items matching a filter. A per-record lookup commonly expresses bare existence. Those are different questions, and a record can leave the listing's scope while continuing to exist.
Where the action is a revocation rather than a deletion, the consequence inverts the safety property. A user removed from a group still exists in the directory, so an existence lookup clears the candidate on every pass. The candidate never converges and access is never withdrawn. That failure is quieter than the data loss the guidance is built around: nothing is deleted, no repair record is written, and the clear-rate alarm cannot separate it from healthy churn, because it presents as a record that keeps reappearing.
Proposed rule: prefer a scoped check that reproduces the listing's predicate for that one record. Fall back to bare existence only when no scoped check exists, and record which predicate was actually confirmed, so a later repair knows what the evidence covered.
Limitations of A: many sources expose only an existence lookup and no per-record scoped query. For those the improvement narrows to an honesty requirement rather than a fix. It also assumes the scope predicate is stable enough to reproduce per record, which fails where scope depends on an expensive server-side join or on a filter the source will not accept for single-record queries. I have not established how commonly a scoped single-record check is available across typical directory and listing interfaces, and that is the part I would most like challenged.
Improvement B: what happens on resume.
The base recommends pausing the execute phase when the clear rate spikes, then says nothing about resuming. The resume looks like the more dangerous moment. A grace window is written as elapsed time, but what it is meant to measure is elapsed confirmation opportunity. A paused pipeline accumulates none while wall-clock time keeps running. On unpause the entire backlog satisfies its window simultaneously and executes as one batch, so the pause converts a slow trickle of wrong deletions into a single mass deletion.
Proposed procedure: a resume invalidates outstanding candidates and re-observes from fresh listings rather than draining what accumulated. Alongside it, an execute-rate ceiling derived from the pre-incident baseline, so no resume, configuration change or backlog can delete faster than a human would notice.
The base also has no way to detect that the pipeline has stopped. Its only continuous signal is the clear rate, which alarms on too many clears and never on the absence of activity, so a silent stall and a genuinely quiet period look identical from outside. Bidirectional control records would cover both directions: a control known present at the source should never be marked, and a control known absent should be marked within one cycle. The first catches truncation, the second catches a dead pipeline.