Skip to content

refactor(oop): make object-oriented guidance opt-in (#2087) - #2104

Merged
braboj merged 3 commits into
mainfrom
refactor/oop-opt-in
Oct 21, 2026
Merged

braboj merged 3 commits into
mainfrom
refactor/oop-opt-in

Conversation

@braboj

@braboj braboj commented Oct 21, 2026 •

Copy link
Copy Markdown
Collaborator

base-oop leaves the core tier. Chains whose code has no classes stop carrying it, and a project that applies OO design declares it in Extras.

Before → after:

core: [base-quality, base-git, base-docs, base-testing, base-review, base-oop]
core: [base-quality, base-git, base-docs, base-testing, base-review]
Change Where
Decision record, supersedes ADR-046 docs/decisions/057-object-oriented-design-guidance-is-opt-in.md
ADR-046 status: Superseded, superseded_by: ["057"], date supersession metadata only
GoF catalogue → use a named pattern where it fits; name it in code core/oop.md, Design patterns
AOP-framework ban → keep cross-cutting behaviour visible at its call site core/oop.md, base-oop-aop retitled "Cross-cutting concerns"
SOLID, object design, restraint rewritten as short rules, same substance core/oop.md
Core-tier listing regenerated 05-building-block-view.md
Migration-guide row docs/migrating-to-v3.md
  • Reach on main: oop.md in 41 of 41 roots; after: its own root only, now refactor(backend): retire backend-quality; its general rules join http (#2085) #2102 has retired backend-quality
  • All three section IDs keep their names; the file path stays
  • Lands before the tag: ADR-051 freezes core-tier membership at 3.0.0
  • Strength: no SHOULD or MAY before or after; "more than two levels is a signal" stays a signal, not a cap
  • Fork side: Imbra-Ltd/imbra-ai-templates#61
Score Before After
oop 82.8 96.0

Checks

  • Smoke 35/35, ADR-01; conformance 12 passed, 0 failed, 1 not applicable; readings read
  • Fork sync, release self-test, redundancy audit, resolve, sync_docs --check, score ratchet
  • markdownlint, pre-commit hooks

Closes #2087.

🤖 Generated with Claude Code

braboj and others added 3 commits October 21, 2026 17:15
base-oop leaves the core tier, so chains without classes stop carrying
it; a project declares it in Extras. The GoF catalogue becomes one
rule, and the AOP-framework ban becomes a rule to keep cross-cutting
behaviour visible. ADR-057 records the decision and supersedes ADR-046.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
# Conflicts:
#	CHANGELOG.md
#	docs/architecture/05-building-block-view.md
#	docs/migrating-to-v3.md
@braboj
braboj merged commit 804a7ef into main Oct 21, 2026
14 checks passed
@braboj
braboj deleted the refactor/oop-opt-in branch October 21, 2026 20:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Make OOP guidance opt-in instead of always loaded

1 participant