Skip to content

ADR anti-patterns

Português (Brasil) · Documentation home · Previous

“Adopt Redis” is not enough. Describe the latency, consistency, load, or operational problem first, then show why the tool fits it.

A consequential record that never considers the status quo or a viable alternative hides the trade-off. Use Extended or MADR when explicit comparison improves the review.

Benefits without costs read like advocacy. Include complexity, migration, operations, failure modes, lock-in, and skills alongside the expected gain.

Marking a draft Accepted before affected people review it turns status into a claim without governance. new and AI-assisted draft intentionally produce Proposed; acceptance is a human action.

Editing an accepted ADR to describe a replacement erases what was true. Create a new ADR and supersede the old record with an explicit relationship.

Leaving [EDIT], empty analysis, or generic boilerplate creates the appearance of documentation without knowledge. Delete prompts, write decision-specific content, and use a smaller template if sections add no value.

A record covering storage, authentication, deployment, and observability becomes difficult to review and supersede. Split choices that can evolve independently and link them when context overlaps.

A clean adr-guard check proves that deterministic structural rules passed. It does not prove the choice is secure, feasible, economical, implemented, or accepted.

An ADR records the best decision for a stated context. Monitor assumptions and replace the decision when the context changes; preserve the history instead of treating it as immutable policy.