Null Safety (Boot 3 / Framework 6)

SkillDev tools

Use when annotating nullability in Spring Boot 3 / Spring Framework 6 code, integrating Kotlin, or adding static nullability checks without assuming Spring Framework 7 JSpecify defaults.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the Null Safety (Boot 3 / Framework 6) skill

What this skill tells your AI

The instructions your AI receives, as published by rrezartprebreza/spring-boot-skills in skills/spring-boot-3/null-safety/SKILL.md and read by ahel’s review.

Use the nullability model supported by the project. Spring Framework 6 commonly uses org.springframework.lang.Nullable, @NonNull, and package-level @NonNullApi. JSpecify can be introduced deliberately, but do not assume Framework 7 migration semantics in a Boot 3 module.

@NonNullApi
package com.example.orders;

import org.springframework.lang.NonNullApi;

Annotate genuine nullable results and parameters with @Nullable. Keep repository return types explicit, validate external input at boundaries, and use Kotlin compiler settings that match the annotations when Java and Kotlin are mixed. If the project standardizes JSpecify independently, apply it consistently at module boundaries and document the chosen checker.

Gotchas

  • Agent assumes Framework 7 JSpecify defaults - Boot 3 projects usually use Spring's legacy annotations.
  • Agent uses @NonNullApi without importing the package annotation - package metadata must compile and be checked in.
  • Agent marks every value @NonNull - establish a package default and annotate only nullable exceptions.
  • Agent treats annotations as runtime validation - use Bean Validation or explicit checks for input validation.
  • Agent changes a repository's nullable contract without updating callers - preserve Optional, nullable, and empty collection semantics.
  • Agent mixes JSpecify and Spring annotations without a migration plan - choose one module boundary policy.

Signals

GitHub stars
260
Forks
40
Last commit
Sep 2026
Advanced
Catalog kind
skill
Gateway key
null-safety
Source
github.com/rrezartprebreza/spring-boot-skills