skills/jspecify-nullness/SKILL.md
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.
npx skillsauth add alexandru/skills jspecify-nullnessInstall 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.
org.jspecify:jspecify:1.0.0 as a visible API dependency for Java libraries.@NullMarked at package or class scope; add @Nullable only where null is allowed.@NullMarked as unspecified nullness, not non-null.<T extends @Nullable Object> accepts nullable type arguments; <T> does not in a null-marked scope.@Nullable/@NonNull in JSpecify-recognized type-use locations, especially for arrays, nested types, type arguments, and bounds.references/jspecify-nullness.md before substantial annotation, migration, or tooling advice.@NullMarked at class or package scope.@Nullable String[] means nullable elements; String @Nullable [] means the array reference is nullable.Map.@Nullable Entry, not the outer type.@NonNull T only to force a type-variable use non-null when the type argument may be nullable.@NullUnmarked only as an incremental escape hatch inside a null-marked scope.jbang skills/jspecify-nullness/scripts/verify-examples.java.references/jspecify-nullness.md for source-backed guidance, examples, and representative prompts.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.
development
Helps agents write and review Scala Cats Effect Resource code. Use for preventing resource leaks and use-after-release bugs, modeling disposable values with Resource, designing Resource-returning factories and constructor-injected services, wrapping Java AutoCloseable values, composing resources, and handling cancellation-safe release.