mcpField
N
null-safety

null-safety

github.com/rrezartprebreza開発32851 回インストール6 日前に更新
リポジトリ

null-safety について

Spring Boot 3とSpring Framework 6のプロジェクトで、null許容性を扱う開発スキルです。注釈の規約やnull許容の契約、JavaとKotlinの併用時の注意点を示し、Framework 7の既定動作を前提にしないよう案内します。

主な機能

  1. 01Springのnull許容性注釈の指針
  2. 02null許容の引数と戻り値の注釈
  3. 03リポジトリ戻り値契約の確認
  4. 04JavaとKotlinの注釈設定の整合
  5. 05検証と移行時の注意点

活用シーン

  1. 01Boot 3モジュールのnull許容性を確認
  2. 02サービスやリポジトリAPIのnull許容項目を注釈
  3. 03JavaとKotlinのnull設定を確認
  4. 04意図しない契約変更を防止

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/rrezartprebreza/spring-boot-skills --skill null-safety

インストール後、Claude Code で/null-safetyを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

agents/
openai.yaml
examples/
bad-null-contract.java
good-package-info.java

詳細

Null 安全性(Boot 3 / Framework 6)

プロジェクトでサポートされている null 許容モデルを使用してください。Spring Framework 6 では、一般に org.springframework.lang.Nullable、@NonNull、およびパッケージレベルの @NonNullApi が使用されます。JSpecify は意図的に導入できますが、Boot 3 モジュールで Framework 7 の移行時のセマンティクスを前提にしないでください。

@NonNullApi
package com.example.orders;

import org.springframework.lang.NonNullApi;

本当に null になり得る戻り値とパラメーターには @Nullable を付けてください。リポジトリの戻り値の型を明示し、外部入力を境界で検証し、Java と Kotlin を併用する場合は、アノテーションに合った Kotlin コンパイラー設定を使用してください。プロジェクトで JSpecify を独自に標準化する場合は、モジュール境界で一貫して適用し、選択したチェッカーを文書化してください。

注意点

  • エージェントが Framework 7 の JSpecify のデフォルトを前提にします。Boot 3 プロジェクトでは通常、Spring の従来のアノテーションを使用します。
  • エージェントがパッケージアノテーションをインポートせずに @NonNullApi を使用します。パッケージメタデータはコンパイルされ、チェックに含まれている必要があります。
  • エージェントがすべての値に @NonNull を付けます。パッケージのデフォルトを設定し、null 許容の例外にのみアノテーションを付けてください。
  • エージェントがアノテーションを実行時の検証として扱います。入力の検証には Bean Validation または明示的なチェックを使用してください。
  • エージェントが呼び出し元を更新せずにリポジトリの null 許容契約を変更します。Optional、null 許容、および空のコレクションのセマンティクスを維持してください。
  • エージェントが移行計画なしに JSpecify と Spring のアノテーションを混在させます。モジュール境界での方針を一つ選んでください。

コメント