Problem (gap)
After #15/#16 land, the teardown story will differ by path: full render (success), full render (step failure), setup-phase failure, and preview. Today docs/adapters.md documents only the happy-path order (adapter.setup → tutorial.setup → … → tutorial.teardown → adapter.teardown) and the one-line 'teardown runs even when a step fails.' It says nothing about the setup-failure path or preview, which is precisely where dogfooding hit surprises (#15, #16).
User story
As a tutorial author writing a seeding adapter, I want a clear statement of exactly which teardown hooks run on each path (success, step failure, setup failure, preview), so I can reason about whether my shared test DB stays clean.
Acceptance criteria
Follow-up to #8/#11; pairs with #15/#16.
Problem (gap)
After #15/#16 land, the teardown story will differ by path: full render (success), full render (step failure), setup-phase failure, and
preview. Todaydocs/adapters.mddocuments only the happy-path order (adapter.setup → tutorial.setup → … → tutorial.teardown → adapter.teardown) and the one-line 'teardown runs even when a step fails.' It says nothing about the setup-failure path or preview, which is precisely where dogfooding hit surprises (#15, #16).User story
As a tutorial author writing a seeding adapter, I want a clear statement of exactly which teardown hooks run on each path (success, step failure, setup failure, preview), so I can reason about whether my shared test DB stays clean.
Acceptance criteria
docs/adapters.mdgains a short matrix: rows = {step onTeardown thunks, tutorial.teardown, adapter.teardown}, columns = {render success, render step-failure, setup-phase failure, preview}.Follow-up to #8/#11; pairs with #15/#16.