# Concrete-vs-Abstract Responsibility Split

> Partition the family's behavior into what is invariant across every member (the topology preserved under substitution) and what varies per member (the novelty); the invariant set becomes the concrete base, the variant set becomes the abstract seam. The concrete/abstract boundary is derived from the evidence, not read off a fixed lifecycle vocabulary — so the split holds for any paradigm, not only OOP class lifecycles.

Record: `algo:concrete-vs-abstract-responsibility-split`
Kind: pattern-distillation
Canonical: https://banes-lab.com/ontology/algorithms#algo-concrete-vs-abstract-responsibility-split
Closure: https://banes-lab.com/json/records/algo/concrete-vs-abstract-responsibility-split/closure

## stage

- [project](https://banes-lab.com/records/stage/project.md)

## axis

- [reasoning](https://banes-lab.com/records/reason/axis-reasoning.md)

## grounds

- [invariant](https://banes-lab.com/records/reason/substrate-node-invariant.md)
- [ont-novelty](https://banes-lab.com/records/reason/node-ont-novelty.md)
