skills/standards-check-java/SKILL.md
STANDARDS CHECK JAVA SKILL — Apply standards/general.md and standards/java.md systematically to a Java file or diff. USE FOR: pre-commit standards compliance check; reviewing a file for standards adherence before or after a change. Produces a categorized violation list with the specific rule cited for each. DO NOT USE FOR: general code review (use planner-review skill for implementation review).
npx skillsauth add zcross00/ProcessDocumentation standards-check-javaInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Apply this checklist to a Java file or diff. For each category, note violations with the file path, line reference, and the specific rule being violated. A clean file produces an empty list.
Specify what to check:
src/main/java/. Skip test files for general standards (test-specific rules are noted below).id, url, json — ok; cnt, tmp, val — not ok).Manager, Handler, Util, or Helper without a justification comment.isComplete, hasChildren, canQueue.characterList → characters; stringName → name.Java-specific (java.md §2):
PascalCasePascalCase; enum constants: UPPER_SNAKE_CASEcamelCase, verb-first (resolveDay(), not dayResolve())static final): UPPER_SNAKE_CASEplayerCannotQueueSameActionTwice(), not testQueue())validateAndSave → split into two methods).if (x < 0.3) → must be if (x < HOSTILITY_THRESHOLD).if (type.equals("raider")) → must use an enum./** */) on methods that are not part of a public API surface consumed without reading source.if (x == null) deep inside a domain method indicates the real problem is the caller — flag the call site instead.Collections.unmodifiableList() (or equivalent) unless the caller genuinely owns the mutation.Optional<T> used only as a return type — never as a method parameter.Optional never used as a field type..get() never called without a prior isPresent() check — use .orElse(), .orElseThrow(), .ifPresent(), or .map().Collections.unmodifiableList() (or List.copyOf()) returned from accessors that should not expose mutable internals.List.of(), Map.of(), Set.of() used for fixed-content collections.instanceof casts replaced with pattern matching where Java 16+ pattern matching applies.var used only when the inferred type is obvious from the right-hand side; not in method signatures.@JsonIgnore.development
TEST WRITING SKILL — Write correctly structured JUnit 5 tests that match this project's conventions. USE FOR: adding tests for a new backlog item; flagging missing test coverage; writing tests for engine classes, domain logic, or persistence. Covers class placement, naming conventions, setup patterns, assertion style, and what not to test. DO NOT USE FOR: running tests (use build-verify skill); diagnosing test failures (read the Surefire report directly).
testing
REFINEMENT SKILL — Analyze design, features, backlog, and drift to identify and plan needed work. USE FOR: PLANNER producing new backlog items from gaps between design and current state; evaluating tech debt and drift for resolution; structured backlog growth when the user asks the PLANNER to refine or plan more work. DO NOT USE FOR: implementing backlog items (EXECUTOR work); reviewing completed work (use planner-review skill).
development
PLANNER REVIEW SKILL — Review a completed backlog item and update design artifacts accordingly. USE FOR: PLANNER reviewing an EXECUTOR's completed work; updating FEATURES.md after a feature lands; removing completed items from BACKLOG.md; checking for drift. DO NOT USE FOR: implementing backlog items (EXECUTOR work); initial planning (read GOALS and DESIGN directly).
testing
GIT WORKFLOW SKILL — Exact command sequences for all branch lifecycle operations in this project. USE FOR: creating a work branch for a backlog item; committing and merging work; tagging design versions or releases. Eliminates the need to look up git-workflow.md during implementation. DO NOT USE FOR: deciding what to work on (use backlog-entry or agent-orientation).