ScrumIA

← All modules

🛜 scrumia-ktor

The library's shape, stated as refusal rules — and the line that keeps HTTP status out of the application's typed-error discipline.

slot · none version · 0.1.0

What it is responsible for

Nine refusal rules covering the eight rule families Ktor owns — routing, content negotiation, HTTP client, authentication, test client, server configuration, WebSockets and SSE, and observability — plus a ninth that names the dissociation between HTTP status and the application's typed-error discipline. Ships a ktor-audit skill that audits an existing codebase against the nine, and a find-spec mapping for the keys the module answers to. The rules are about a library, not a stack: a pure-JVM service, a Ktor-on-Android client, a Kotlin/JS browser app activates scrumia-ktor alone.

What it refuses

A route registered outside the application's routing {} tree. A Json.decodeFromString on call.receiveText() in an application that installs ContentNegotiation. An HttpClient constructed per call. A check inside the handler. A test that opens a real port. A literal port or secret in Kotlin. A websocket that never reads a frame, or an SSE loop that never reconnects. A println inside a handler. A Result.failure whose body is r.status — the channel is the application's, not the network's.

The assumption it makes

Assumes the library's documentation is the citation for every rule — no blog posts, no tutorials, no community patterns. Costs discipline at every plugin install, at every HttpClient construction, and at every route, and pays back in a surface that one reader can see end to end. The dissociation between HTTP status and effect semantics is the line the module exists to hold: scrumia-ktor owns the library, the typed-error paradigm belongs to the next module.

Its skills

Tags

What it plugs into

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

Install it

/plugin install scrumia-ktor@scrumia

Read the source on GitHub