Training skill that generates and validates the null-safety-coding-conventions skill. Run this skill to regenerate the conventions from reference material and verify them against test cases. Use when updating or re-tuning null safety conventions.
This skill regenerates the null-safety-coding-conventions skill from reference material and validates it against test cases.
A SKILL.md at plugins/conventions/skills/null-safety-coding-conventions/SKILL.md that teaches Claude to write null-safe Java code using NullAway and JSpecify annotations.
Read references/conventions.md for the full set of conventions. Then write the output skill:
plugins/conventions/skills/null-safety-coding-conventions/SKILL.mdnull-safety-coding-conventions, user-invocable: false, model: haiku-4.5Key things the skill must make very clear:
@SuppressWarnings("NullAway") — this is the single most important rulepackage-info.java with @NullMarkedorg.jspecify.annotations.Nullable — not javax, jetbrains, findbugs, etc.@NonNull is redundant under @NullMarked — don't use itAfter regenerating, validate the skill using the test cases in evals/evals.json.
For each test case, spawn a subagent that:
plugins/conventions/skills/null-safety-coding-conventions/SKILL.mdThen run the shared grading script against the outputs:
cd plugins/training
python -m shared.grade <workspace-dir>
The script checks:
Input files for refactoring tests are in evals/files/.
The authoritative conventions are in references/conventions.md.