Module 5: Architecture Decision Records & Reviews: Mistake Clinic
This clinic turns wrong moves into reusable judgment. Use it after each practice page and again before the quiz or checkpoint.
Module-Specific Mistake Radar
Start with these traps. Replace or extend them with real mistakes from your own work.
| Mistake to look for | Where it shows up | Symptom | Repair evidence |
|---|---|---|---|
| Finishing ADR Writing Workshop with only a final answer | ADR Writing Workshop | The work has no failed case, trace, test, proof gap, or design stress point. | Add the smallest broken example and show the repair that changes the result. |
| Finishing Mock Architecture Review with only a final answer | Mock Architecture Review | The work has no failed case, trace, test, proof gap, or design stress point. | Add the smallest broken example and show the repair that changes the result. |
| Finishing Fitness Function Design with only a final answer | Fitness Function Design | The work has no failed case, trace, test, proof gap, or design stress point. | Add the smallest broken example and show the repair that changes the result. |
| Finishing Decision Lifecycle Map with only a final answer | Decision Lifecycle Map | The work has no failed case, trace, test, proof gap, or design stress point. | Add the smallest broken example and show the repair that changes the result. |
| Treating What an Architecture Decision Is vs a Design Decision as vocabulary instead of a tool | What an Architecture Decision Is vs a Design Decision | The explanation names the concept but cannot decide between two cases. | Write one example, one non-example, and the rule that separates them. |
| Treating Why Decisions Need to Be Recorded as vocabulary instead of a tool | Why Decisions Need to Be Recorded | The explanation names the concept but cannot decide between two cases. | Write one example, one non-example, and the rule that separates them. |
Practice Mistake Checks
Pull any miss from these checks into your mistake log.
ADR Writing Workshop
Source: practice/01-adr-writing-workshop.md
Identify the error in each ADR excerpt:
- "Decision: We will improve system reliability." (no concrete decision named)
- "Context: The team met last Thursday and discussed caching." (history, not context)
- "Consequences: Improved performance. Better maintainability. Cleaner code." (all positive; no negative or risk)
- "Status: Accepted. Updated 2026-01-02 to reflect new database choice." (in-place override of an Accepted ADR; should supersede)
- "Alternatives considered: None." (on a decision with clearly available alternatives - red flag)
Mock Architecture Review
Source: practice/02-mock-architecture-review.md
Identify the failure mode each excerpt reveals:
- A review meeting ends with "let's talk about this more next week." (no decision output)
- A PR comment reads "LGTM." (rubber stamp; no substantive engagement)
- An agenda reads "Discuss auth architecture." (topic, not a question)
- A reviewer only ever asks: "Wouldn't it be better to just X?" (judgment dressed as curiosity)
- Participants list: the author, the VP of engineering, 8 cc'd stakeholders. (wrong decision-necessary set)
Fitness Function Design
Source: practice/03-fitness-function-design.md
Diagnose the problem in each:
- A fitness function is added to CI but runs only on a subset of the repo (the author's service). (partial coverage becomes proof of absence)
- A rule is recorded as "ADR-0052 says no synchronous billing calls" but no fitness function exists. (documented but not enforced - will rot)
- Exemptions are allowed without expiration. (permanent loophole - rule is effectively off for any module with one exemption)
- A fitness function reports percentages instead of pass/fail, blocking no PRs. (metric without a threshold is not a gate)
- A fitness function duplicates a unit test and adds no architectural value. (misclassified; no one will maintain it)
Decision Lifecycle Map
Source: practice/04-decision-lifecycle-map.md
Identify the failure mode in each:
- An Accepted ADR is edited in place to reflect a new database choice; no superseding ADR exists. (destroys reasoning trail)
- An obsolete ADR is deleted from the repo. (removes evidence)
- An ADR is marked Deprecated with no replacement planned for 18 months. (deprecation without a path - becomes a zombie)
- Two ADRs contradict each other; neither references the other. (orphaned conflict)
- A superseding ADR does not link back to the ADR it supersedes. (future readers lose the trail)
Repair Protocol
For each real mistake:
- Reproduce the failure on the smallest example, trace, proof, query, command, or design sketch.
- Name the hidden assumption.
- Repair the artifact.
- Save evidence that changed: failing then passing test, corrected proof step, revised diagram, safer command, benchmark, or review note.
- Add one retrieval card beginning with Check... before... or Do not use... when....
Mistake Log
| Date | Mistake | Symptom | Root cause | Repair evidence | Retrieval card |
|---|---|---|---|---|---|
| Starter | Pick one radar row above | Explain how it would fail in this module | Name the assumption | Add a counterexample or corrected artifact | Write the card before closing the page |
Completion Standard
- At least five real mistakes are logged.
- At least two mistakes include a counterexample or failing test.
- At least one mistake connects to an older semester skill.
- At least one correction changes code, a proof, a diagram, a command transcript, a query, or a design decision.