skills/arrow-resource/SKILL.md
Kotlin + Arrow Resource lifecycle discipline with `Resource`, `ResourceScope`, `resourceScope`, and context parameters. Use for safe acquisition/release of files, streams, DB pools/connections, HTTP clients, background scopes, or multipart parts; preventing resource leaks and use-after-close bugs; designing companion `Resource` builders; using `arrow-autoclose` when only synchronous `AutoCloseable` cleanup is possible; composing resources with typed errors, cancellation, or parallel acquisition.
npx skillsauth add alexandru/skills arrow-resourceInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Resource and acquire it only inside resourceScope, resource {}, or Resource.use.arrow.fx.coroutines.resource.context imports for context-parameter-friendly resource, resourceScope, bind, install, and autoCloseable.resourceScope { ... }, resource { ... }, or resource.use { ... }; that returns a closed handle.Resource<Class> or requiring context(ResourceScope).Resource cannot be used, use arrow-autoclose/AutoCloseable with the same no-leak discipline.references/resource.md before writing examples, reviews, or new APIs.Resource recipe or context(ResourceScope) builder..bind() or context-parameter builders.resourceScope/.use, and keep finalizers idempotent.Resource over use/try/finally for suspend finalizers, cancellation awareness, composition, or multiplatform code.context(_: ResourceScope) suspend fun acquire....ExitCase when release behavior depends on success, failure, or cancellation.Resource is FP-style ownership: acquisition and finalization are values/effects that compose; hidden side-effectful constructors are a design smell.scripts/verify-examples.kt check.references/resource.md for rules, source links, and typechecked examples.development
Scala auto-derivation with Kindlings for Circe and PureConfig. Use when replacing circe-generic/circe-generic-extras or PureConfig generic derivation with Kindlings while keeping normal Circe JSON APIs and PureConfig loading/writing APIs.
development
Simplifies code for clarity without changing behavior. Use when code is working but overly complex, deeply nested, duplicated, or unclear.
development
Helps agents design and review Kotlin library APIs for Java consumers. Use when building Kotlin code intended for Java callers, shaping JVM signatures with @JvmName, @JvmOverloads, @JvmStatic, @JvmField, @Throws, @JvmRecord, nullability, records, and backward/binary compatibility rules.
tools
JSpecify nullness annotations for Java APIs and tooling. Use when adopting or migrating JSpecify annotations, designing null-safe Java signatures, fixing generic bounds and type-use placement, or interpreting Kotlin interop, annotation-processor, and tool-conformance behavior.