🎭 scrumia-effect
Effects as values, not exceptions — the discipline that sits above Result, Either, IO/suspend, and effect.website without substituting for any of them.
slot · none version · 0.1.0
What it is responsible for
Six refusals that shape a codebase around typed effects: every rule names which approach it informs (Result, Either, IO/suspend, effect.website, or discipline-level); the four approaches are layered, never substituted; effect.website is cited by URL and never wrapped; recoverable failures travel the value path, never the throw path; retry is data on the failure composed as a function on the effect, never a try/catch loop at the call site; the effect boundary is the seam where description hands off to execution, with environments and layers (where they apply) replacing constructor-injected dependencies. Ships a scrumia-effect reference skill and ten guides — one for the discipline, four for the approaches, plus error semantics and retry-as-data.
What it refuses
An effect rule that doesn't name which approach it informs. A Result called an Either with the left thrown away, or an IO called a suspend that wraps a value — the four are layered, not interchangeable. A client of effect.website shipped under this module's prose. A recoverable failure thrown to be caught one frame up. A try/catch retry loop around a call site. A service-locator at the effect boundary — environments and layers (where they apply) replace constructor-injected dependencies.
The assumption it makes
Assumes effects are values, not exceptions, and that a discipline on top of the approaches beats a fresh abstraction over them. Result, Either, IO/suspend, and effect.website are real, distinct choices — the discipline sits above them and never substitutes one for another. Costs the friction of stating the seam between description and execution, pays back in code whose failure path carries enough information to keep going.
Its skills
scrumia-effect
What it plugs into
| Register | Direction | Module |
|---|---|---|
find-spec | contributes | scrumia-specs |
implement | contributes | scrumia-github-project |
review | contributes | scrumia-github-project |
Install it
/plugin install scrumia-effect@scrumia