{"id":"composite-visitor-dual-ocp-coverage","text":"Composite and Visitor can provide complementary OCP coverage for recursive structures: Composite enables adding new element types without modifying existing operations (standard OCP axis), while Visitor enables adding new operations without modifying existing element classes (inverted OCP axis) — suggesting that recursive structures may be extensible along both axes when these patterns are combined.","truth_value":"IN","source":"","source_url":"","source_hash":"","justifications":[{"type":"SL","antecedents":["composite-as-universal-recursive-structure","visitor-inverts-ocp-axis"],"outlist":[],"label":"Composite covers standard OCP axis (new types) while Visitor covers inverted axis (new operations) for the same structures"}],"dependents":["bidirectional-ocp-bounded-by-structural-stability","bidirectional-ocp-encapsulation-bounded","builder-visitor-duality-validates-category-permeability-with-ocp-scope","ocp-bidirectional-extensibility","recursive-structures-self-contained-subsystem","recursive-subsystem-safe-and-complete","visitor-recursive-computation-encapsulation-bounded","visitor-recursive-computation-with-ocp-coverage"],"metadata":{"source_type":"derived","review_result":"invalid","repair_action":"softened"},"created_at":"2026-06-17T18:49:29+00:00","updated_at":"2026-06-18T06:37:17+00:00","reviewed_at":"2026-06-18T06:15:08+00:00","verified_at":"","retracted_at":"","explanation":{"steps":[{"node":"composite-visitor-dual-ocp-coverage","truth_value":"IN","reason":"SL justification valid","antecedents":["composite-as-universal-recursive-structure","visitor-inverts-ocp-axis"],"label":"Composite covers standard OCP axis (new types) while Visitor covers inverted axis (new operations) for the same structures"},{"node":"composite-as-universal-recursive-structure","truth_value":"IN","reason":"SL justification valid","antecedents":["composite-uniform-leaf-composite-treatment","interpreter-abstract-syntax-tree-is-composite","macrocommand-is-composite-of-commands"],"label":"Three distinct patterns reuse Composite's recursive composition structure"},{"node":"composite-uniform-leaf-composite-treatment","truth_value":"IN","reason":"premise"},{"node":"interpreter-abstract-syntax-tree-is-composite","truth_value":"IN","reason":"premise"},{"node":"macrocommand-is-composite-of-commands","truth_value":"IN","reason":"premise"},{"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"},{"node":"ocp-open-for-extension-closed-for-modification","truth_value":"IN","reason":"premise"}]}}