ScrumIA

← All modules

🎭 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

Tags

What it plugs into

RegisterDirectionModule
find-speccontributesscrumia-specs
implementcontributesscrumia-github-project
reviewcontributesscrumia-github-project

Install it

/plugin install scrumia-effect@scrumia

Read the source on GitHub