sp-c48 landed at e3209bd on main (PR 91), so the 2026-09-08 amendment's
status line flips in place from proposed to accepted and a dated Note at
the foot of docs/adr/0008 records the merge and the five things re-read
against main at 3fd45f7 before the flip.
Every clause holds as written. Clause 1's whole effect list: persist_tail
reports the list it was handed, never the executable subset, and
DriverTest's "hands over the whole effect list" holds it. Clause 2's two
entry points: the driver still calls Runs.create/4, Runs.step/5 and
Runs.cascade_cancel/3 and no other, and only the first two step. Clause
3's ordering. Clause 4's propagating raise, with its test. Clause 5's
observer posture.
What the Note records rather than edits into the text: the seam clause 1
left open landed as a package-internal step_reporter: option in Runs'
t:opt/0 union, so no public return widened; the per-call override landed
as Keyword.get(opts, :after_step, driver.after_step) rather than the
Keyword.put_new/3 spelling the closing section named, which is the same
rule from the other end; the discarded delivery fires nothing, refused on
both sides of the seam and tested; clause 3's "outside that run's own
exclusion" holds by construction and no test asserts it, which is said
plainly; the amendment's own "carries no lib/ change and no test, and
waits for one" is now false and is met here, not edited; and the seam
section's "decision 5 below says why" reads as clause 5, the amendment's
own fifth clause, since this record's decision 5 is the cascade.
Additive: the only removed lines in docs/adr/ are the two the status text
occupied, and the Note is appended at the end of the file.
Gate: not run, and no gate applies - the diff touches one Markdown file
under docs/adr/ and no Elixir code, which is the authority table's "a
change touching no Elixir code has no gate to run and may commit on
review of the diff alone". No changelog fragment: changelog.d/README.md
lists documentation and ADRs on its "do not write a fragment" side.
sp-nhl