When an ADR is superseded, how do you flag the runbooks and knowledge notes that still depend on it? Keeping the old decision is useful, but I would want the current instructions to show that they need another review
Yes—that is an important distinction. I would keep the superseded ADR as historical evidence, but change its metadata to something like status: superseded and superseded_by: ADR-0042.
For runbooks and knowledge notes, I use an explicit field such as depends_on: [ADR-0017] or a direct link to the ADR. A review query can then surface every current note that still depends on a superseded decision. I would not automatically mark those notes as wrong—the operational guidance may still be valid—but I would flag them as review_required until someone verifies them against the replacement ADR.
That preserves the decision trail while making the possible blast radius visible. It is also a good example of why queries should be treated as views: the durable truth is the explicit dependency recorded in each note, while the query simply shows which dependencies now require attention.