graph LR
family["Python Programming"]
program["Python Object-Oriented Programming"]
section["Reference"]
page["Anti-Pattern Atlas"]
capstone["Capstone evidence"]
family --> program --> section --> page
page -.applies in.-> capstone
flowchart LR
orient["Orient on the page map"] --> read["Read the main claim and examples"]
read --> inspect["Inspect the related code, proof, or capstone surface"]
inspect --> verify["Run or review the verification path"]
verify --> apply["Apply the idea back to the module and capstone"]
Read the first diagram as a lookup map: this page is part of the review shelf, not a first-read narrative. Read the second diagram as the reference rhythm: arrive with a concrete ambiguity, compare the current work against the boundary on the page, then turn that comparison into a decision.
Use this page when a codebase feels “object-oriented” but hard to trust. These are the
failure shapes the course is trying to prevent, grouped by the module that best repairs
them.
You can name the owner of the rule that used to be scattered.
You can explain which boundary is authoritative and which are derived.
You can add or remove behavior with smaller blast radius than before.
You can point to one proof surface that would fail first if the anti-pattern returned.
An atlas like this keeps the course honest. It shows more than clean examples; it also
helps you recognize and repair the clumsy code people actually inherit.