Agent skill

Neqsim Code Hygiene

by equinor in equinor/neqsim

Fix formatting, Checkstyle, Spotless, and JavaDoc build failures in NeqSim Java code.

Apache-2.0Auto-check passed

Install Neqsim Code Hygiene

skills CLI
$ npx skills add equinor/neqsim --skill neqsim-code-hygiene -a claude-code

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

GitHub CLI
$ gh skill install equinor/neqsim neqsim-code-hygiene --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/equinor/neqsim.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.github/skills/neqsim-code-hygiene .claude/skills/neqsim-code-hygiene && 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
neqsim-code-hygiene
GitHub stars
156
Token cost
~2.7k tokens
SKILL.md length
1,025 words
Files
1
Skills in repo
12
Repo updated
First seen
Licence
Apache-2.0

At a glance

Fix formatting, Checkstyle, Spotless, and JavaDoc build failures in NeqSim Java code.

  • Works in 5 steps: Format first — Spotless fixes… → Fix Checkstyle/JavaDoc by hand —… → Verify each gate on the touched files,… → …
  • : the build fails on spotless:check
  • SKILL.md covers When to Use This Skill, The Fix-and-Verify Loop (do…, Spotless and Checkstyle: Import Ordering, plus 10 more sections
  • Calls git and python

What it does

Neqsim Code Hygiene is an agent skill from equinor/neqsim. Fix formatting, Checkstyle, Spotless, and JavaDoc build failures in NeqSim Java code. USE WHEN: the build fails on spotless:check, checkstyle:check, or javadoc:javadoc; a PR shows formatting/import-order/JavaDoc violations; or you edited any .java file and need to make it CI-clean. Covers the exact recurring errors (JavadocParagraph <p, orphan </p after lists, single-line @param/@return, import ordering, HTML5 tables, unused variables) and the fix-and-verify loop.

Its SKILL.md is about 2.7k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It works with Java. The repository describes itself as: NeqSim is a library for calculation of fluid behavior, phase equilibrium and process simulation. The licence is Apache-2.0.

When your agent uses it

  • : the build fails on spotless:check
  • Checkstyle:check
  • Javadoc:javadoc
  • A PR shows formatting/import-order/JavaDoc violations

Example prompts

  • “/neqsim-code-hygiene”

Requirements

  • Python 3

Workflow steps

5 steps, taken from the first numbered list in SKILL.md.

  1. Format first — Spotless fixes whitespace/indentation but NOT import order or JavaDoc content
  2. Fix Checkstyle/JavaDoc by hand — imports, tags, single-line JavaDoc, tables (below).
  3. Verify each gate on the touched files, then the whole set
  4. Re-run spotless:apply after hand edits (JavaDoc edits can change wrapping), then git add.
  5. NEVER bypass with git commit --no-verify.

What it can do on your machine

Read from SKILL.md and the folder at commit 068e6ed. 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

    Shell commands in SKILL.md call:

    • git
    • python

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

  • Network

    No URLs in SKILL.md. Its commands use git, which can reach the network depending on how they are called.

    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

Neqsim Code Hygiene loads about 2.7k tokens when it runs. Until then it costs about 123 tokens; SKILL.md has 1,025 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~123
When it runs · the whole SKILL.md, loaded when a task matches
~2.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); files beside SKILL.md are not scanned.

SKILL.md

The full file from equinor/neqsim at commit 068e6ed, republished under its Apache-2.0 licence (© equinor). 1,025 words, ~2,683 tokens.

Download SKILL.mdSave it as .claude/skills/neqsim-code-hygiene/SKILL.md (or your agent's skills folder).
name
neqsim-code-hygiene
description
Fix formatting, Checkstyle, Spotless, and JavaDoc build failures in NeqSim Java code. USE WHEN: the build fails on spotless:check, checkstyle:check, or javadoc:javadoc; a PR shows formatting/import-order/JavaDoc violations; or you edited any .java file and need to make it CI-clean. Covers the exact recurring errors (JavadocParagraph <p>, orphan </p> after lists, single-line @param/@return, import ordering, HTML5 tables, unused variables) and the fix-and-verify loop.
version
1.0.0
last_verified
2026-09-18

NeqSim Code Hygiene: Formatting, Checkstyle, Spotless & JavaDoc Fixes

This skill is the fix-it playbook for the code-quality gates that fail NeqSim CI: spotless:check (formatting), checkstyle:check (style, imports, JavaDoc structure), and javadoc:javadoc (HTML5-valid JavaDoc). It maps each recurring error message to its exact cause and fix, and gives the mandatory verify loop. For the separate rule set on which Java language features are allowed, load neqsim-java8-rules.

When to Use This Skill

  • The build fails on spotless:check, checkstyle:check, or javadoc:javadoc.
  • A PR or the Problems panel shows formatting, import-order, or JavaDoc violations.
  • You created or edited ANY .java file (main, test, or examples) and must make it CI-clean.
  • You pasted a JavaDoc/error block and asked "fix errors like this".

The Fix-and-Verify Loop (do this every time)

  1. Format first — Spotless fixes whitespace/indentation but NOT import order or JavaDoc content:
    bash
    ./mvnw spotless:apply
  2. Fix Checkstyle/JavaDoc by hand — imports, <p> tags, single-line JavaDoc, tables (below).
  3. Verify each gate on the touched files, then the whole set:
    bash
    ./mvnw spotless:check
    ./mvnw checkstyle:check
    ./mvnw javadoc:javadoc
  4. Re-run spotless:apply after hand edits (JavaDoc edits can change wrapping), then git add.
  5. NEVER bypass with git commit --no-verify.

Order matters: hand-fix JavaDoc/imports, then spotless:apply last so the committed file is both style-correct and formatter-clean.

Spotless

  • AI-generated Java is not auto-formatted; a single unformatted file fails the whole CI build.
  • Profile: Eclipse .config/neqsim_formatter.xml (pom.xml), applied to src/main/java and src/test/java.
  • spotless:apply fixes: indentation (2 spaces), trailing whitespace, blank lines, brace placement, line wrapping of long method chains and string concatenations.
  • spotless:apply does NOT fix: import ordering, JavaDoc content/structure, unused variables.
  • Convenience wrapper also available: python devtools/run_spotless.py / devtools/run_spotless.sh.

Checkstyle: Import Ordering

Config: .config/checkstyle_neqsim.xml (Google style + project overrides). Imports must be alphabetical by full path, grouped in this order with the groups appearing top-to-bottom:

java
import com.google.gson.JsonObject;      // com.*
import java.util.HashMap;               // java.*  (HashMap before HashSet before List...)
import java.util.HashSet;
import java.util.List;
import neqsim.thermo.system.SystemInterface;  // neqsim.*
import org.apache.logging.log4j.LogManager;   // org.*  (goes last)
import org.apache.logging.log4j.Logger;

Rule: sort strictly by the full import string. java.util.HashMap sorts before java.util.HashSet; org.* comes after neqsim.*. No blank lines inside a group unless the project's config requires group separation — match the surrounding file.

Checkstyle: JavadocParagraph (<p> errors)

The JavadocParagraph rule requires that every <p> tag is preceded by a blank JavaDoc line (a lone *). This is the most common failure.

java
// WRONG — <p> immediately after a heading/text line:
/**
 * <h2>Hardy Cross Method</h2>
 * <p>Balances loop flows iteratively...</p>
 */

// CORRECT — blank ` *` line before <p>:
/**
 * <h2>Hardy Cross Method</h2>
 *
 * <p>Balances loop flows iteratively...
 */

Notes:

  • Do NOT self-close or add a closing </p> — JavaDoc treats <p> as an opening separator.
  • The blank line rule applies before every <p>, including ones after <h2>, <pre>, </ul>.

JavaDoc: Orphan </p> After a List (javadoc:javadoc HTML error)

Starting a <ul> or <ol> implicitly closes the current paragraph. A </p> after the list has no matching <p> and breaks HTML5 JavaDoc ("unexpected end tag: </p>").

java
// WRONG — orphan </p> after the list closes:
/**
 * <p>Supported modes:
 * <ul>
 *   <li>Sequential</li>
 *   <li>Newton-Raphson</li>
 * </ul>
 * </p>
 */

// CORRECT — drop the trailing </p>:
/**
 * <p>Supported modes:
 *
 * <ul>
 *   <li>Sequential</li>
 *   <li>Newton-Raphson</li>
 * </ul>
 */

Find them fast across a file/tree:

bash
grep -rnE '^\s*\*\s*</p>' src/main/java src/test/java

Checkstyle: Single-Line @param / @return JavaDoc

A single-line JavaDoc like /** @return the pump speed */ triggers THREE violations: missing summary sentence, not-multiline, and tag-not-preceded-by-blank-line. Expand it:

java
// WRONG:
/** @return the pump speed in rpm */
public double getPumpSpeed() { ... }

// CORRECT — summary sentence, blank line, then the tag:
/**
 * Returns the pump speed.
 *
 * @return the pump speed in rpm
 */
public double getPumpSpeed() { ... }

Same shape for setters/params:

java
/**
 * Sets the pump speed.
 *
 * @param speed the pump speed in rpm
 */
public void setPumpSpeed(double speed) { ... }

JavaDoc: HTML5 Tables

java
// WRONG — deprecated summary attribute, no caption:
/**
 * <table summary="modes">
 * <tr><th>Mode</th></tr>
 * </table>
 */

// CORRECT — <caption> element, no summary attribute:
/**
 * <table>
 * <caption>Solver modes</caption>
 * <tr><th>Mode</th></tr>
 * </table>
 */

JavaDoc: Other Recurring Errors

ErrorCauseFix
reference not found@see IEC 61508 (plain text)Move the standard into the description text; @see only takes ClassName/#method
bad use of '>'Lambda -> or > in a JavaDoc code exampleUse &gt;, or rewrite the lambda as an anonymous class
no @param for X / no @return / no @throws for XMissing tag (applies to private methods too)Add the tag; every throws clause needs a matching @throws
semicolon missing / malformed HTMLUnbalanced tag in JavaDocCheck tag nesting; lists close the paragraph implicitly

Unused Variables / Fields (compiler warnings, not Checkstyle failures)

get_errors may report unused locals/fields after cleanup. They do NOT fail the CI gates but are worth clearing:

  • Unused local with a side-effect-free initializer (e.g. double viscosity = ...;) → delete it.
  • Unused field that is part of a data model (has no getter/setter yet) → leave it unless the owner confirms; deleting model state can break serialization or future use.
Show full SKILL.md (424 more words)Show less

Deprecated Method / Constructor Calls ([deprecation] warnings)

Calling an API marked @Deprecated produces a [deprecation] compiler warning (uses or overrides a deprecated API). NeqSim treats these as debt to pay down: replace the call with the successor named in the member's @deprecated JavaDoc.

Find the successor — never guess. Read the deprecated member's JavaDoc; the @deprecated tag states the replacement:

java
/**
 * @deprecated use {@link #getFluid()} instead
 */
@Deprecated
public SystemInterface getThermoSystem() { ... }

Migrate the call site (do NOT change the deprecated method's body):

java
// WRONG — deprecated call:
SystemInterface sys = stream.getThermoSystem();

// CORRECT — successor from the @deprecated note:
SystemInterface sys = stream.getFluid();

Find deprecated usages across the tree:

bash
# every call site the compiler warned about
./mvnw -q compile 2>&1 | grep -i deprecat
# or search for a specific retired method by name
grep -rn "getThermoSystem(" src/main/java src/test/java

Rules and cautions:

  • Prefer vscode_listCodeUsages / the rename provider to migrate every call site of a retired member consistently, rather than editing one file at a time.
  • Verify the successor's signature and semantics (units, return type, side effects) match — a deprecation replacement is not always a drop-in; check the JavaDoc.
  • If the @deprecated tag gives no replacement, or the successor changes behaviour, do NOT blind-swap it — leave it and flag it for the owner.
  • Do NOT delete the deprecated member itself or strip its @Deprecated annotation; other callers (and downstream users) may still depend on it. This skill fixes call sites.
  • Overriding a deprecated method also warns — annotate the override @Deprecated too, or re-target it to the successor.
  • After migrating, re-run ./mvnw -q compile and confirm the [deprecation] warning for that member is gone, then run the full verify loop.

Common Mistakes

MistakeFix
Running only spotless:check and expecting it to fix filesRun spotless:apply to actually reformat
Expecting Spotless to sort imports or fix JavaDocDo those by hand; Spotless only touches formatting
Adding </p> to "close" a <p>JavaDoc <p> is a separator — never add </p>
Leaving </p> after </ul>/</ol>Remove it — the list already closed the paragraph
Committing with --no-verify to skip the gateNever bypass; fix the violation
Hand-indenting long method chainsLet spotless:apply wrap them
Guessing a deprecated method's replacementRead the @deprecated JavaDoc tag for the named successor
Deleting a deprecated member to clear a warningFix the call site; other callers may still need the member

Validation Checklist

  • ./mvnw spotless:apply run, files re-git added
  • ./mvnw spotless:check passes
  • ./mvnw checkstyle:check passes (imports sorted, <p> preceded by blank line, no single-line JavaDoc)
  • ./mvnw javadoc:javadoc passes (no orphan </p>, tables have <caption>, no plain-text @see)
  • Every method with a throws clause has a matching @throws
  • No [deprecation] warnings — call sites migrated to the successor named in the @deprecated tag
  • Code still compiles with Java 8 (see neqsim-java8-rules)

References

  • .config/checkstyle_neqsim.xml — Checkstyle rules (Google style + overrides)
  • .config/neqsim_formatter.xml — Eclipse formatter profile used by Spotless
  • neqsim-java8-rules skill — forbidden Java 9+ features and JavaDoc requirements
  • AGENTS.md / .github/copilot-instructions.md — Spotless and JavaDoc mandates

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

Files

Just SKILL.md in .github/skills/neqsim-code-hygiene of equinor/neqsim.

Open the folder on GitHubat commit 068e6ed

Compare with similar skills

Neqsim Code Hygiene 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.

Neqsim Code Hygiene compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Neqsim Code Hygiene this skillequinor/neqsim156—~2.7kAutomated safety check: PassApache-2.0
Brainstormingxpinjection/test-driven-spring-boot11254 repos~2.6kAutomated safety check: PassMIT
Android API Diffgkd-kit/gkd43k—~796Automated safety check: PassGPL-3.0
Video Cover Imageitwanger/toBeBetterJavaer18k—~3.3kAutomated safety check: PassNone
Lancedb Update Lance Dependencylancedb/lancedb12k—~1.1kAutomated safety check: PassApache-2.0
Java SDK E2E Test with Replay Snapshotgithub/copilot-sdk11k—~1.8kAutomated safety check: PassMIT

Similar skills

  • Brainstorming

    xpinjection/test-driven-spring-boot

    You MUST use this before any creative work - creating features, building components, adding functionality, or modifying behavior.

    112 GitHub starsUsed in 54 repos~2.6k tokens
    Agent WorkflowsAuto-check passed
  • Android API Diff

    gkd-kit/gkd

    Looks up Android framework Java and AIDL APIs across versions with the android-api-diff CLI: signatures, availability, source files and hidden-API access code.

    43k GitHub stars~796 tokensUpdated yesterday
    MobileAuto-check passed
  • Video Cover Image

    itwanger/toBeBetterJavaer

    Generate matched 3:4, 16:9, and 4:3 short-video cover images from toBeBetterJavaer video scripts or AI/Java technical topics.

    18k GitHub stars~3.3k tokensUpdated today
    Media & CreativeAuto-check passed
  • Update LanceDB to a specific Lance release or tag. An agent skill from lancedb/lancedb.

    12k GitHub stars~1.1k tokensUpdated today
    DatabasesAuto-check passed
  • Official

    Creates a Java SDK end-to-end test for the Copilot SDK that runs against a recorded YAML snapshot through a replay proxy, so CI needs no real authentication.

    11k GitHub stars~1.8k tokensUpdated today
    Testing & QAAuto-check passed
  • Fory Release

    apache/fory

    Prepare an Apache Fory release candidate from a clean release branch, including the version bump, RC tag, JVM staging, ASF source artifacts, SVN upload, and vote email.

    4.6k GitHub stars~2.9k tokensUpdated yesterday
    Auto-check passed

More from equinor/neqsim

All 12 skills in this repo
  • Guides NeqSim agents through acid-gas and contaminant removal with SimpleAmineAbsorber, SimpleAmineRegenerator, SystemKentEisenberg, SystemDesmukhMather, RateBasedAbsorber, MembraneSeparator, and…

    156 GitHub stars~4.2k tokensUpdated today
    Auto-check passed
  • Guides agents through ProcessLinkedMPC, ProcessLinearizer, ModelPredictiveController, VirtualFlowMeter, SoftSensor, and DataReconciliationEngine.

    156 GitHub stars~3.7k tokensUpdated today
    Auto-check passed
  • Neqsim Agent Handoff

    equinor/neqsim

    Agent-to-agent communication schema for NeqSim. An agent skill from equinor/neqsim.

    156 GitHub stars~2.2k tokensUpdated today
    Auto-check passed
  • Autonomous observe-hypothesize-predict-test-discriminate loop for operational anomalies.

    156 GitHub stars~2.9k tokensUpdated today
    Auto-check passed
  • Equipment capacity constraints, bottlenecks, utilization snapshots, KPI/response DTOs, validated automation writes and GOR/MPFM rate fitting (CapacityConstraint, BottleneckTracker…

    156 GitHub stars~4.6k tokensUpdated today
    Auto-check passed
  • Neqsim Ccs Hydrogen

    equinor/neqsim

    CO2 capture, transport, storage (CCS) and hydrogen systems patterns for NeqSim.

    156 GitHub stars~3.8k tokensUpdated today
    Auto-check passed

Works with

Questions about Neqsim Code Hygiene

What does Neqsim Code Hygiene do?

Fix formatting, Checkstyle, Spotless, and JavaDoc build failures in NeqSim Java code. Neqsim Code Hygiene is an agent skill from equinor/neqsim. Fix formatting, Checkstyle, Spotless, and JavaDoc build failures in NeqSim Java code.

When should I use Neqsim Code Hygiene?

Neqsim Code Hygiene fits situations like: : the build fails on spotless:check; checkstyle:check; javadoc:javadoc; A PR shows formatting/import-order/JavaDoc violations.

How do I install Neqsim Code Hygiene in Claude Code?

Run `npx skills add equinor/neqsim --skill neqsim-code-hygiene -a claude-code`. Or copy the skill folder (.github/skills/neqsim-code-hygiene in equinor/neqsim) into .claude/skills/neqsim-code-hygiene in your project. Claude Code loads it when a task matches its description.

How do I install Neqsim Code Hygiene in Codex?

Run `npx skills add equinor/neqsim --skill neqsim-code-hygiene -a codex`. Or copy the skill folder (.github/skills/neqsim-code-hygiene in equinor/neqsim) into .agents/skills/neqsim-code-hygiene in your project. Codex loads it when a task matches its description.

Can I use Neqsim Code Hygiene 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 equinor/neqsim --skill neqsim-code-hygiene -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/neqsim-code-hygiene, .gemini/skills/neqsim-code-hygiene, .github/skills/neqsim-code-hygiene and .opencode/skills/neqsim-code-hygiene in your project.

What does Neqsim Code Hygiene need to run?

Going by SKILL.md and its folder, Neqsim Code Hygiene needs the command-line tools its instructions call (git and python). Our summary lists: Python 3.

Does Neqsim Code Hygiene access the network?

SKILL.md contains no URLs. Its commands use git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Neqsim Code Hygiene 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. Review the folder before installing.

What licence does Neqsim Code Hygiene use?

Neqsim Code Hygiene is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Neqsim Code Hygiene use?

About 2.7k tokens (SKILL.md is roughly 11k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Neqsim Code Hygiene?

Skills that share tags, products or a category with Neqsim Code Hygiene: Brainstorming (xpinjection/test-driven-spring-boot, 112 stars), Android API Diff (gkd-kit/gkd, 43k stars), Video Cover Image (itwanger/toBeBetterJavaer, 18k stars) and Lancedb Update Lance Dependency (lancedb/lancedb, 12k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Neqsim Code Hygiene?

equinor (a GitHub organization) maintains it in equinor/neqsim, which has 156 GitHub stars. The repository holds 12 skills in this directory. The repository was last updated on October 8, 2026.

Source: equinor/neqsim on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.