kotlin-context-parameters
Installation
SKILL.md
Kotlin Context Parameters
Quick start
- Declare dependencies with
context(name: Type)before a function or property. - Introduce values at boundaries with
context(value) { ... }or from an existing implicit receiver such aswith(value) { ... }. - Use named context parameters for services you call directly; use
_for marker/scope capabilities used only for resolution. - Prefer small, explicit contexts. Avoid having multiple same-typed values available at the same scope level.
- Read
references/context-parameters.mdbefore writing examples or migration advice.
Workflow
- Identify the contextual capability: service dependency, DSL/scope marker, typeclass-like evidence, or migration from context receivers.
- Decide names: named parameter when code needs the value;
_plus bridge functions when the context should only unlock operations. - Add a boundary that supplies the context (
context(...) {}or a wrapper accepting acontext(Type) () -> Ablock). - Check restrictions: no constructor/class contexts, no context-property initializers/backing fields/delegation.
- Compile-test syntax with the target Kotlin version.