java-checkstyle
GitHub自动化执行 Spotless 修复 Java 代码格式问题。支持应用格式化、检查状态及提交更改,确保 CI 构建通过并维持代码规范一致性。
Trigger Scenarios
Install
npx skills add open-metadata/OpenMetadata --skill java-checkstyle -g -y
SKILL.md
Frontmatter
{
"name": "java-checkstyle",
"description": "Run `mvn spotless:apply` to fix Java checkstyle \/ formatting failures and verify the result. Invoke after authoring or modifying any `.java` files, or when CI reports a \"Java checkstyle failed\" or \"Fix Java checkstyle\" issue on a PR.",
"allowed-tools": [
"Bash",
"Read",
"Grep",
"Glob"
],
"argument-hint": "[-pl <module>] [--check]",
"user-invocable": true
}
Java Checkstyle / Spotless
OpenMetadata enforces Java formatting via the Spotless Maven plugin. Every CI
build runs mvn spotless:check and fails the PR if any file is not formatted.
This skill keeps the fix on a single, consistent command so reviewers never have
to ask for it manually again.
When to activate
- The user asks to "fix checkstyle", "fix Java formatting", "apply spotless", "run spotless", "format Java", or similar.
- CI posts a
Java checkstyle failed/Fix Java checkstylecomment on a PR (the project's bot phrases the instruction as "Please runmvn spotless:applyin the root of your repository and commit the changes to this PR"). - After you have finished authoring or editing any
.javafiles — before opening a PR or pushing a commit that touches Java.
Arguments
- No arguments: run
mvn spotless:applyat the repo root across all modules. -pl <module>: scope to a single Maven module (e.g.-pl openmetadata-service). Useful when only one module changed and you want a faster run.--check: runmvn spotless:checkinstead ofapply. Use to confirm the tree is clean without touching files (e.g. to verify before push).
Process
Step 1: Run Spotless
From the repo root:
mvn spotless:apply # default — formats everything
# or
mvn -pl <module> spotless:apply # scoped to one module
# or
mvn spotless:check # verify only, don't write
Spotless is fast (seconds, no compilation). If it fails with a plugin error (not a formatting diff), surface the error and stop — do not try to hand-edit formatting around the failure.
Step 2: Check what changed
git status --short
git diff --stat
Expect reformatting in .java files only. If Spotless touches pom.xml or
other non-Java files, that's also fine — Spotless is configured for those too
in this repo.
Step 3: Commit
Do not fold the reformat into an unrelated commit. If the user asked you to
commit, follow their preference (fold into the in-progress commit, or make a
separate one). Otherwise, when you are confident the change is a purely
mechanical formatting reformat, you may commit it on its own as a
Fix Java checkstyle commit — this matches the repo's existing history for
bot-triggered formatting-only commits. If you are unsure whether the diff is
purely mechanical, do NOT auto-commit: surface the changed-file list and let the
user decide.
Notes
- Spotless config lives in the root
pom.xml(spotless-maven-pluginsection) —googleJavaFormat+removeUnusedImports. Do not redefine formatting rules inline in source files. - If Spotless keeps rewriting a change you just made, re-read the config — Spotless is the source of truth, not the IDE.
- CI enforcement lives in
.github/workflows/java-checkstyle.yml: thejava-checkstylejob runsmvn spotless:applyand fails (git diff-files) if the tree was not already formatted, posting the "Please runmvn spotless:apply" comment.
Out of scope
- UI / TypeScript formatting — use the
ui-checkstyleskill (ESLint + Prettier + organize-imports); this skill is Java-only. - Python formatting — use
make py_format(ruff lint-fix + format; seeingestion/Makefile). (Note: this is ruff, not black/isort/pycln.)
Version History
- 5ab32e5 Current 2026-08-19 21:28


