ScrumIA

← All modules

🟣 scrumia-kotlin

The language the team agreed to, written down.

slot · implementation version · 0.2.0

What it is responsible for

Six refusal rule families that mark where Kotlin's documented semantics end and the wrong default begins: val by default with var only when reassignment is the behaviour; ? on every value that can be absent and !! only with a stated local proof; structured concurrency and cooperative cancellation rather than GlobalScope.launch; data class, sealed hierarchies and value class chosen by shape; top-level functions and named objects over stateless companion objects; and visibility set to the granularity the surface is meant to cross. Ships a scrumia-kotlin-audit skill that measures an existing Kotlin codebase against the six, each finding citing the rule it breaks.

What it refuses

A var with a single assignment. An !! without a proof on the line above. A GlobalScope.launch outside the bootstrap. A runCatching around suspension that swallows CancellationException. A hand-written equals / hashCode / toString on a record data class would have generated. A companion object whose every member is stateless. A public field promoted to silence a test that crossed the wrong boundary.

The assumption it makes

Assumes the Kotlin language documentation is the citation for every rule — no blog post, no tutorial, no community pattern. Costs discipline at every var, every !!, every launch, and every visibility modifier, and pays back in code that reads as the language documents it. The module is compose-only: no bin/, no dependencies.jsonl; it contributes to the composition through extends.json and nothing else. A pure-JVM project (Spring, Android) activates scrumia-kotlin alone and gets the same rules; scrumia-functional-programming, scrumia-kotlin-multiplatform-mobile and scrumia-gradle are not assumed.

Its skills

Tags

What it plugs into

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

Install it

/plugin install scrumia-kotlin@scrumia

Read the source on GitHub