# A subsystems blast radius **🔵 Expert · Lesson 32** ASK A WHOLE SUBSYSTEM WHAT IT WOULD BREAK. Expert 14 built compositions - a set of versions pinned as one unit. This asks the two questions you actually have about one: how far does it reach, and has the ground moved under it. research_group_impact(group_id) the union blast radius research_group_drift(group_id) recorded-vs-disk, narrowed IMPACT IS A UNION WITH CLOSURE MATH, NOT A SUM. It merges every member's radius and then splits the result INTERNAL vs OUTBOUND: how much of the blast lands back inside the composition, and how much escapes it. The closure fraction is the number that matters - a subsystem with high closure is one you can change on its own terms, and a low one is a subsystem in name only, whose edges are really everyone else's problem. It also lifts to composition grain: the radius names the other compositions it touches (`affected_compositions`), so "what else does this subsystem hit" is answerable in subsystem vocabulary rather than as a flat list of spells. DRIFT IS THE SAME REPORT AS `research_source_drift`, NARROWED TO THE FOOTPRINT - and the narrowing is the point. A whole-world drift report on a real repository is mostly other people's churn. Asked about ONE subsystem, the counts are recomputed over that subsystem's modules only, so the answer is about your area rather than about the repository's mood. COMPOSITIONS ARE INFORMATIONAL, WHICH IS WHY THESE ARE CHEAP TO ASK. A composition pins members by reference; it carries no custody crystal of its own, gates nothing and never executes. Both of these verbs are derived reads over the members' recorded material - there is no subsystem-shaped thing at runtime to disturb. AND THE FOOTPRINT IS HONEST ABOUT WHAT IT CANNOT SEE. A member whose custody is unknown is reported as unknown rather than silently contributing nothing - a shadow with a hole in it that claimed to be complete would be worse than no shadow. EVOLVING ONE IS ADD/REMOVE, NOT REPLACEMENT. `recompose` says it outright - "unlisted members are retained" - so dropping a member is a one-word ask rather than a re-declaration of the roster. The previous composition is untouched by it, because identity is content-addressed over the members: a different roster is simply a DIFFERENT composition, not an edited one. AND IT COMPLETES EXPERT 30'S DIFF LAW. There you met `research_diff` on two SPELLS, where the room pins `structural` for you. Hand the same verb two COMPOSITIONS and it pins NOTHING - it stands back and lets the engine's `members` default answer, because the useful question about two subsystems is which MEMBERS changed, not how their text reads. One verb, two vocabularies, chosen by kind. ## Before you run Use the [Expert guide](../../expert/index.md) for prerequisite concepts. Run from a checkout with Melder installed and Python 3.14 free-threading selected. The collection download includes the level's local helper modules. ## Run the saved script ```bash python UX_and_AIX_experiences/04_expert/32_a_subsystems_blast_radius.py ``` ```powershell py -3.14t UX_and_AIX_experiences/04_expert/32_a_subsystems_blast_radius.py ``` {download}`Download this collection <../../downloads/expert-examples.zip>` · [Source on GitHub](https://github.com/Synaptic724/melder/blob/0895ce795453cd87e35d70665957b4e89aad3317/UX_and_AIX_experiences/04_expert/32_a_subsystems_blast_radius.py) ## Public surface validate_codegen / materialize_codegen, research_group_register / research_group_recompose / research_group_impact / research_group_drift / research_group_footprint / research_group_view / research_group_diff / research_diff ## Code ```{literalinclude} ../../downloads/04_expert/32_a_subsystems_blast_radius.py :language: python :linenos: ``` ## Check the outcome The script contains its own assertions or demonstrated refusal paths. Run it to evaluate those checks against your installed version. The code above is taken directly from the saved file; no run output is invented here. [More expert examples](index.md) · [Level guide](../../expert/index.md) ## Related guides - [Compositions, synthesis, and impact](../../expert/compositions.md)