A skill your agent uses when asked to perform any of the following actions in a Java project: - To add jspecify support - To prevent NullPointerExceptions - To better handle Nullability This skill…

MITAuto-check passedBackend & APIs

Install Jspecify Skill

skills CLI
$ npx skills add sivaprasadreddy/sivalabs-agent-skills --skill jspecify-skill -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install sivaprasadreddy/sivalabs-agent-skills jspecify-skill --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/sivaprasadreddy/sivalabs-agent-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/jspecify .claude/skills/jspecify-skill && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
jspecify-skill
GitHub stars
188
Token cost
~1.2k tokens
SKILL.md length
311 words
Files
5 (incl. scripts, references)
Skills in repo
6
Repo updated
First seen
Licence
MIT

At a glance

A skill your agent uses when asked to perform any of the following actions in a Java project: - To add jspecify support - To prevent NullPointerExceptions - To better handle Nullability This skill…

  • Configure Maven
  • SKILL.md covers Add jSpecify support in Maven…, Add jSpecify support in Gradle…, Add @NullMarked to… and Verify jSpecify support, plus 3 more sections
  • Runs Python scripts from its folder
  • Gradle build to automatically use jspecify for checking Nullability issues

What it does

Jspecify Skill is an agent skill from sivaprasadreddy/sivalabs-agent-skills. Use this skill when asked to perform any of the following actions in a Java project: - To add jspecify support - To prevent NullPointerExceptions - To better handle Nullability This skill will add jspecify dependency, configure Maven or Gradle build to automatically use jspecify for checking Nullability issues.

Its SKILL.md is about 1.2k tokens, which your agent loads only when the skill is triggered. The skill folder holds 6 other files, including scripts and reference files (for example `references/annotation-migration.md`, `references/incremental-adoption.md` and `references/kotlin-interop.md`).

It sits in Backend & APIs. It works with Java and Gradle. The repository describes itself as: Spring Boot skills for AI coding agents. The licence is MIT.

When your agent uses it

  • Configure Maven
  • Gradle build to automatically use jspecify for checking Nullability issues

Example prompts

  • “/jspecify-skill”

Requirements

  • Python 3

What it can do on your machine

Read from SKILL.md and the folder at commit e9f9861. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships 1 file in scripts/ (Python), which the agent can run.

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Jspecify Skill loads about 1.2k tokens when it runs, and up to ~6.7k if it reads all its reference files. Until then it costs about 84 tokens; SKILL.md has 311 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~84
When it runs · the whole SKILL.md, loaded when a task matches
~1.2k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~6.7k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.

SKILL.md

The full file from sivaprasadreddy/sivalabs-agent-skills at commit e9f9861, republished under its MIT licence (© sivaprasadreddy). 311 words, ~1,177 tokens.

Download SKILL.mdSave it as .claude/skills/jspecify-skill/SKILL.md (or your agent's skills folder). This skill also uses 4 other files; get the full folder from GitHub.
name
jspecify-skill
description
Use this skill when asked to perform any of the following actions in a Java project: - To add jspecify support - To prevent NullPointerExceptions - To better handle Nullability This skill will add jspecify dependency, configure Maven or Gradle build to automatically use jspecify for checking Nullability issues.

Jspecify provides a set of annotations to explicitly declare the nullness expectations of the Java code.

Add jSpecify support in Maven projects

If you are using Maven, then add the jspecify dependency in pom.xml. In pom.xml, update or add the nullability-maven-plugin, to include the following configuration.

xml
<dependencies>
    <dependency>
        <groupId>org.jspecify</groupId>
        <artifactId>jspecify</artifactId>
        <version>1.0.0</version>
    </dependency>
</dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>am.ik.maven</groupId>
            <artifactId>nullability-maven-plugin</artifactId>
            <version>0.4.2</version>
            <extensions>true</extensions>
            <configuration>
                <checking>tests</checking>
                <outputDirectory>${project.basedir}/src/main/java</outputDirectory>
                <testOutputDirectory>${project.basedir}/src/test/java</testOutputDirectory>
            </configuration>
            <executions>
                <execution>
                    <goals>
                        <goal>configure</goal>
                        <goal>generate-package-info</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

Add jSpecify support in Gradle projects

If you are using Gradle, then add the jspecify dependency. In build.gradle or build.gradle.kts, update or add the following jspecify configuration.

groovy
plugins {
    id("net.ltgt.errorprone") version "5.1.0"
    id("net.ltgt.nullaway") version "3.1.0"
}

tasks.withType(JavaCompile).configureEach {
    options.errorprone {
        disableAllChecks = true // Other error prone checks are disabled
        error("RequireExplicitNullMarking") // Require @NullMarked or @NullUnmarked on everything
        nullaway {
            error()
        }
    }
    // Keep a JDK 25 baseline
    options.release = 25
}

nullaway {
    onlyNullMarked = true
    jspecifyMode = true
}

dependencies {
    implementation("org.jspecify:jspecify:1.0.0")
    errorprone("com.google.errorprone:error_prone_core:2.50.0")
    errorprone("com.uber.nullaway:nullaway:0.13.7")
}

Add @NullMarked to package-info.java files

In every java package under the application main source code (src/main/java), create package-info.java if not exists already, and add the @NullMarked annotation as follows:

java
@org.jspecify.annotations.NullMarked
package com.mycompnay.myproject;

If package-info.java file already exists, update the file to add @org.jspecify.annotations.NullMarked annotation. DO NOT REMOVE ANY OTHER EXISTING CODE IN package-info.java FILE.

Verify jSpecify support

If python is installed, after adding the jSpecify support, run scripts/verify_nullmarked.py to check if all non-empty packages has package-info.java file or not.

Migrating an existing codebase from other annotation libraries

If the project already uses another nullability annotation library (JSR-305 / javax, Jakarta, JetBrains, Spring, Android, FindBugs/SpotBugs, Checker Framework, or Eclipse JDT), migrate those annotations to JSpecify before adding @NullMarked. The OpenRewrite MigrateToJSpecify recipe automates the common cases (javax, Jakarta, JetBrains, Micrometer, Micronaut); the rest are a short manual mapping. See references/annotation-migration.md.

Incremental adoption for large codebases

Flipping every package to @NullMarked at once is impractical on a large or legacy codebase. @NullUnmarked lets you enforce NullAway on a growing perimeter while the rest stays untouched. Because the build above enables OnlyNullMarked mode, packages without @NullMarked are simply ignored — so adoption is driven purely by adding markers, one package at a time. Strategies, progress tracking, common NullAway errors, and redundant null-guard removal are in references/incremental-adoption.md.

Kotlin interop (optional)

If the project also has Kotlin sources, the Kotlin compiler (K2) reads JSpecify annotations on Java APIs and surfaces accurate nullability instead of platform types. See references/kotlin-interop.md.

© sivaprasadreddy, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 4 other files (scripts, references) in skills/jspecify of sivaprasadreddy/sivalabs-agent-skills.

  • SKILL.md
  • references/annotation-migration.md
  • references/incremental-adoption.md
  • references/kotlin-interop.md
  • scripts/verify_nullmarked.py

Open the folder on GitHubat commit e9f9861

Compare with similar skills

Jspecify Skill next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Jspecify Skill compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Jspecify Skill this skillsivaprasadreddy/sivalabs-agent-skills188—~1.2kAutomated safety check: PassMIT
Tiger Brokers Java SDKqusong0627/QuantMind1.7k—~1.2kAutomated safety check: PassApache-2.0
New Extensionyontrack/yontrack102—~1kAutomated safety check: PassMIT
Starter Domain Revieweraxelixlabs/axelix148—~3.3kAutomated safety check: PassLGPL-3.0
Codingmicronaut-projects/micronaut-openapi114—~2.6kAutomated safety check: PassApache-2.0
Java ArchitectJeffallan/claude-skills12k—~1.5kAutomated safety check: PassMIT

Similar skills

  • Tiger Brokers Java SDK

    qusong0627/QuantMind

    Reference guides for the Tiger Brokers OpenAPI Java SDK: setup, market data, stock, futures and options trading, real-time push, account queries and strategy examples.

    1.7k GitHub stars~1.2k tokensUpdated today
    Backend & APIsAuto-check passed
  • New Extension

    yontrack/yontrack

    Scaffold a new Yontrack extension end-to-end — module, feature descriptor, service, GraphQL, migration, tests, and UI.

    102 GitHub stars~1k tokensUpdated today
    Backend & APIsAuto-check passed
  • Starter Domain Reviewer

    axelixlabs/axelix

    Reviews changes in sbs/starter-domain for technology-agnostic domain logic, forbidden production dependencies, and Java 11+ compatibility.

    148 GitHub stars~3.3k tokensUpdated yesterday
    Backend & APIsAuto-check passed
  • Coding

    micronaut-projects/micronaut-openapi

    Implement and review Java code changes for Micronaut framework repositories using maintainer standards, including JSpecify null-safety conventions.

    114 GitHub stars~2.6k tokensUpdated yesterday
    Backend & APIsAuto-check passed
  • Java Architect

    Jeffallan/claude-skills

    Builds Spring Boot 3.x services on Java 21 with domain-driven design, WebFlux, JPA tuning and Spring Security using OAuth2 and JWT, verified by Maven or Gradle builds.

    12k GitHub stars~1.5k tokensUpdated 6 days ago
    Backend & APIsAuto-check passed
  • Spring Mvc To Boot Migrator

    ArabelaTso/Skills-4-SE

    Automatically migrate Spring MVC applications to Spring Boot.

    253 GitHub stars~2.2k tokensUpdated 1 mo ago
    Backend & APIsAuto-check passed

More from sivaprasadreddy/sivalabs-agent-skills

  • Apply Renovate PRs

    sivaprasadreddy/sivalabs-agent-skills

    Apply the changes from all open Renovate bot pull requests of a GitHub repository into the local working tree.

    188 GitHub stars~3k tokensUpdated 4 days ago
    Auto-check passed
  • Java Code Review

    sivaprasadreddy/sivalabs-agent-skills

    Review Java code for bugs, duplicate code, correctness risks, maintainability improvements, and missing tests.

    188 GitHub stars~1.2k tokensUpdated 4 days ago
    Auto-check passed
  • Progen

    sivaprasadreddy/sivalabs-agent-skills

    A skill your agent uses when the user wants to create/generate/scaffold a new Spring Boot project (Maven or Gradle, REST API / Web App / Spring Boot + Angular full stack).

    188 GitHub stars~2.7k tokensUpdated 4 days ago
    Auto-check: notes
  • Spring Modulith Verifier

    sivaprasadreddy/sivalabs-agent-skills

    Verifies whether code follows Spring Modulith code structure or not.

    188 GitHub stars~1.7k tokensUpdated 4 days ago
    Auto-check passed
  • Spring Boot Skill

    sivaprasadreddy/sivalabs-agent-skills

    Build Spring Boot 4.x applications following the best practices.

    188 GitHub stars~1.1k tokensUpdated 4 days ago
    Auto-check passed

Works with

Categories

Questions about Jspecify Skill

What does Jspecify Skill do?

A skill your agent uses when asked to perform any of the following actions in a Java project: - To add jspecify support - To prevent NullPointerExceptions - To better handle Nullability This skill…. Jspecify Skill is an agent skill from sivaprasadreddy/sivalabs-agent-skills. Use this skill when asked to perform any of the following actions in a Java project: - To add jspecify support - To prevent NullPointerExceptions - To better handle Nullability This skill will add jspecify dependency, configure Maven or Gradle build to automatically use jspecify for checking Nullability issues.

When should I use Jspecify Skill?

Jspecify Skill fits situations like: configure Maven; gradle build to automatically use jspecify for checking Nullability issues.

How do I install Jspecify Skill in Claude Code?

Run `npx skills add sivaprasadreddy/sivalabs-agent-skills --skill jspecify-skill -a claude-code`. Or copy the skill folder (skills/jspecify in sivaprasadreddy/sivalabs-agent-skills) into .claude/skills/jspecify-skill in your project. Claude Code loads it when a task matches its description.

How do I install Jspecify Skill in Codex?

Run `npx skills add sivaprasadreddy/sivalabs-agent-skills --skill jspecify-skill -a codex`. Or copy the skill folder (skills/jspecify in sivaprasadreddy/sivalabs-agent-skills) into .agents/skills/jspecify-skill in your project. Codex loads it when a task matches its description.

Can I use Jspecify Skill in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add sivaprasadreddy/sivalabs-agent-skills --skill jspecify-skill -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/jspecify-skill, .gemini/skills/jspecify-skill, .github/skills/jspecify-skill and .opencode/skills/jspecify-skill in your project.

What does Jspecify Skill need to run?

Going by SKILL.md and its folder, Jspecify Skill needs Python for the scripts in its folder. Our summary lists: Python 3.

Does Jspecify Skill access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Jspecify Skill safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Jspecify Skill use?

Jspecify Skill is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Jspecify Skill use?

About 1.2k tokens (SKILL.md is roughly 4.7k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 5.5k tokens, read only when the agent opens those files.

What are the alternatives to Jspecify Skill?

Skills that share tags, products or a category with Jspecify Skill: Tiger Brokers Java SDK (qusong0627/QuantMind, 1.7k stars), New Extension (yontrack/yontrack, 102 stars), Starter Domain Reviewer (axelixlabs/axelix, 148 stars) and Coding (micronaut-projects/micronaut-openapi, 114 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Jspecify Skill?

sivaprasadreddy (a GitHub user) maintains it in sivaprasadreddy/sivalabs-agent-skills, which has 188 GitHub stars. The repository holds 6 skills in this directory. The repository was last updated on October 5, 2026.

Source: sivaprasadreddy/sivalabs-agent-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.