跳到正文
cccskills
免费在 GitHub 公开

null-safety

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.

中文简介正在准备中。当前显示原文说明。

查看安装方法

包含的文件(4)

  • SKILL.md1.7 KB
  • agents/openai.yaml185 B
  • examples/bad-null-contract.java116 B
  • examples/good-package-info.java85 B

SKILL.md(原文)

安装前可以查看交给 AI 代理的指令内容。

Null Safety (Boot 3 / Framework 6)

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.

评价

还没有评价。欢迎分享你的使用感受。

评论

无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。

还没有评论。来写第一条吧。

提交后会立即公开。请勿填写邮箱、电话等个人信息。URL 最多 2 个。

0 / 1000 字

此表单受 reCAPTCHA 保护,适用 Google 的隐私权政策和服务条款。

同一仓库的技能

Use when adding Spring AI-specific model observations, token usage, latency, externally configured cost attribution, advisor telemetry, or protected prompt and completion logging. Use production-observability for general service metrics, health, logs, and OTLP setup.

中文简介正在准备中。当前显示原文说明。

rrezartprebreza/spring-boot-skills3192026年10月17日 更新

Use when versioning Spring MVC or WebFlux APIs in Spring Boot 4 / Spring Framework 7. Covers built-in mapping versions, request version resolution, defaults, supported versions, and deprecation headers.

中文简介正在准备中。当前显示原文说明。

rrezartprebreza/spring-boot-skills3192026年10月17日 更新

Use when versioning Spring MVC or WebFlux APIs in Spring Boot 3 / Spring Framework 6. Covers explicit URL, header, and media-type strategies, compatibility rules, and deprecation handling.

中文简介正在准备中。当前显示原文说明。

rrezartprebreza/spring-boot-skills3192026年10月17日 更新

Use when introducing or correcting grouped Spring Boot configuration, typed property binding, validation, profiles or secret injection. Do not rewrite unrelated single-value configuration.

中文简介正在准备中。当前显示原文说明。

rrezartprebreza/spring-boot-skills3192026年10月17日 更新

Use when packaging a Spring Boot 3 application as an OCI image or GraalVM native executable. Covers buildpacks, layered images, JVM containers, AOT hints, probes, security, and verification.

中文简介正在准备中。当前显示原文说明。

rrezartprebreza/spring-boot-skills3192026年10月17日 更新

Use when packaging Spring Boot 4 as an OCI image, JVM container, AOT application, or GraalVM native executable. Covers buildpacks, layers, runtime hints, probes, security, and verification.

中文简介正在准备中。当前显示原文说明。

rrezartprebreza/spring-boot-skills3192026年10月17日 更新

查看 rrezartprebreza 的全部技能

报告此技能的问题