🟣 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
scrumia-kotlin-audit
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-kotlin@scrumia