{"id":"pattern-mastery-requires-principles-and-constraints","text":"Design pattern mastery is two-dimensional: SOLID principles provide the positive framework for when and why to apply patterns, while inter-pattern constraints (such as Visitor inverting OCP's extension axis) define the negative boundaries — knowing both is required for sound judgment.","truth_value":"IN","source":"","source_url":"","source_hash":"","justifications":[{"type":"SL","antecedents":["solid-grounds-pattern-judgment","visitor-exposes-pattern-mutual-constraints"],"outlist":[],"label":"Positive guidance (SOLID grounding) and negative constraints (mutual pattern tensions) are both required for judgment — either alone is insufficient"}],"dependents":["expert-design-integrates-paradigm-and-judgment","solid-isomorphic-to-pattern-mastery"],"metadata":{"source_type":"derived","review_result":"pass"},"created_at":"2026-06-17T18:00:51+00:00","updated_at":"2026-06-18T06:15:08+00:00","reviewed_at":"2026-06-18T06:15:08+00:00","verified_at":"","retracted_at":"","explanation":{"steps":[{"node":"pattern-mastery-requires-principles-and-constraints","truth_value":"IN","reason":"SL justification valid","antecedents":["solid-grounds-pattern-judgment","visitor-exposes-pattern-mutual-constraints"],"label":"Positive guidance (SOLID grounding) and negative constraints (mutual pattern tensions) are both required for judgment — either alone is insufficient"},{"node":"solid-grounds-pattern-judgment","truth_value":"IN","reason":"SL justification valid","antecedents":["solid-mutual-reinforcement","pattern-judgment-required"],"label":"SOLID gives the vocabulary and criteria for the judgment that the GoF warns is necessary"},{"node":"solid-mutual-reinforcement","truth_value":"IN","reason":"SL justification valid","antecedents":["srp-violation-increases-coupling","ocp-open-for-extension-closed-for-modification","lsp-substitutability-of-subtypes","isp-no-forced-dependency-on-unused-methods","dip-depend-on-abstractions-not-concretions"],"label":"Five SOLID principles form a reinforcing system, not independent rules"},{"node":"srp-violation-increases-coupling","truth_value":"IN","reason":"premise"},{"node":"ocp-open-for-extension-closed-for-modification","truth_value":"IN","reason":"premise"},{"node":"lsp-substitutability-of-subtypes","truth_value":"IN","reason":"premise"},{"node":"isp-no-forced-dependency-on-unused-methods","truth_value":"IN","reason":"premise"},{"node":"dip-depend-on-abstractions-not-concretions","truth_value":"IN","reason":"premise"},{"node":"pattern-judgment-required","truth_value":"IN","reason":"SL justification valid","antecedents":["patterns-should-not-be-applied-indiscriminately","gof-language-choice-affects-pattern-applicability","dip-overgeneralization-pitfall"],"label":"Three independent cautions converge on the need for judgment in pattern application"},{"node":"patterns-should-not-be-applied-indiscriminately","truth_value":"IN","reason":"premise"},{"node":"gof-language-choice-affects-pattern-applicability","truth_value":"IN","reason":"premise"},{"node":"dip-overgeneralization-pitfall","truth_value":"IN","reason":"premise"},{"node":"visitor-exposes-pattern-mutual-constraints","truth_value":"IN","reason":"SL justification valid","antecedents":["visitor-inverts-ocp-axis","pattern-judgment-required"],"label":"Visitor's OCP inversion is the strongest evidence for why pattern judgment matters"},{"node":"visitor-inverts-ocp-axis","truth_value":"IN","reason":"SL justification valid","antecedents":["visitor-enables-open-ended-operations","visitor-tradeoff-stable-structure-required","ocp-open-for-extension-closed-for-modification"],"label":"Visitor's open-ops/closed-structure stance is the precise mirror of OCP's open-structure/closed-ops stance"},{"node":"visitor-enables-open-ended-operations","truth_value":"IN","reason":"premise"},{"node":"visitor-tradeoff-stable-structure-required","truth_value":"IN","reason":"premise"}]}}