Composition has a contract
In Cortex Forge this is called Sub-playbook.
A sub-playbook takes inputs and returns outputs. Anything it touches outside that contract — mutating shared context, closing the parent's tasks — is a side effect that will bite someone at 3am.