code-quality
Skill7 starsChanged 6 months agoMITView on GitHub
Produce and repair code so it passes repository linting, typing, tests, and Jenkins quality gates with the least manual intervention possible. Optimized for AI-generated code and legacy cleanup workflows.
- Installs packages
77 other projects use a version of this.
Adopted by
Most recently taken up by
- magnusrodseth/dotfilestheir own version, first seen Nov 8, 2026
- KadirHarmanc/nazar-skilltheir own version, first seen Nov 8, 2026
- AndersonAndrad/skillstheir own version, first seen Nov 8, 2026
- Mehul72/skillstheir own version, first seen Nov 8, 2026
- notque/vexjoy-agenttheir own version, first seen Nov 7, 2026
- cooneycw/claude-power-packtheir own version, first seen Nov 7, 2026
Used with
Projects with it also use spring-boot, logging-patterns and 8 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
ffsshhttiikkSkillspring-boot
Spring Boot framework and Java enterprise patterns
Also in 3 projects that use this
DIL8654Skilllogging-patterns
Keep logs structured, correlated, low-noise, and safe for production support. Use when adding operational logging, reviewing observability, or improving diagnostics in .NET services.
Also in 3 projects that use this
mstuder-slalomSkilljpa-patterns
JPA/Hibernate patterns for entity design, relationships, query optimization, transactions, auditing, indexing, pagination, and pooling in Spring Boot.
Also in 3 projects that use this
ffsshhttiikkSkilldesign-patterns
Practical application and coding skills for Design Patterns
Also in 4 projects that use this
glommerSkillpr-workflow
General guidelines for Commits, formatting, CI, dependencies, security
Also in 4 projects that use this
vm0-aiSkillcli-design
Design patterns and conventions for the Okou CLI user experience
Also in 3 projects that use this
Other versions77 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 77
- tursodatabase/turso★ 25ksame name
- superdesigndev/treg★ 7.7ksame name
- doorkeeper-gem/doorkeeper★ 5.5ksame name
- static-web-server/static-web-server★ 2.4ksame name
- piomin/claude-ai-spring-boot★ 1.4ksame name
- microsoft/winappCli★ 1.4ksame name
- glommer/pgmicro★ 1.2ksame name
- vm0-ai/vm0★ 1.2ksame name
- rommapp/argosy-launcher★ 710same name
- waybarrios/opencode-power-pack★ 547same name
67 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository17 other files it gives its agents.
- AGENTS.mdAGENTS.md
- cavemanSkill
- composition-patternsSkill
- docker-expertSkill
- eea-design-systemSkill
- grill-meSkill
- handoffSkill
- jenkins-pipelineSkill
- plone-backend-developerSkill
- plone-frontend-developerSkill
- quality-fixesSkill
- react-best-practicesSkill
- react-native-skillsSkill
- react-view-transitionsSkill
- testingSkill
- volto-cypress-writerSkill
- web-design-guidelinesSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
45 rules. 0 are common, 33 are distinctive, and 12 are very specific to this project.
0
Common
Most of the 71 edited versions we read keep these.
33
Distinctive
This author's own choices. Worth a look.
12
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 16
Use this skill when code must be created correctly from the start, or when existing code must be repaired until it passes the repository's …
- Distinctive: line 32
Use this skill when you need to:
- Distinctive: line 41
Treat the repository's real checks as the source of truth.
- Distinctive: line 42
Prefer prevention over cleanup: generate code that already matches project conventions.
- Distinctive: line 44
Do not assume one tool can fix everything.
- Distinctive: line 45
Do not declare success until the same commands used by Jenkins pass.
- Very specific: line 52
Prefer running these natively on the host rather than through Docker when the installed tool versions match Dockerfile.test — see "Native …
- Distinctive: line 68
Run safe auto-fixes first, if the repo uses them.
- Very specific: line 69
Run the strict lint/type/test commands that Jenkins or CI will run.
- Distinctive: line 71
If Jenkins uses Docker-based verification, validate with the same Docker image or command path.
- Distinctive: line 75
When writing new code, do not rely on a later formatter pass as the main strategy.
- Distinctive: line 88
Use auto-fix only for rules that are safe and mechanical.
- Distinctive: line 98
Do not assume these will solve:
- Distinctive: line 108
If a repository uses Jenkins, the code-quality workflow must map to the Jenkins stages.
- Distinctive: line 117
If Jenkins is present, local verification is incomplete until the generated code would pass those same stages.
- Distinctive: line 132
After that initial validation, for ongoing day-to-day auto-fixing:
- Very specific: line 134
Read the exact tool versions Dockerfile.test installs (pinned versions in its RUN pip install/RUN npm install lines, requirements.txt, …
- Very specific: line 137
Check what's installed on the host for each tool (ruff --version, black --version, mypy --version, npx eslint --version, npx prettier …
- Very specific: line 142
If a tool's host version matches what Dockerfile.test installs, run its auto-fix command natively — no docker build/docker run needed.
- Very specific: line 145
If a tool is missing locally, or its version differs from what Dockerfile.test pins, either install/upgrade it locally to match before …
- Distinctive: line 160
Before every commit, run the format/lint auto-fixers and the strict checks.
- Distinctive: line 172
Never commit with a check known to be red and a plan to "fix it in CI" — Jenkins cannot commit a fix back (see "EEA auto-fix policy" …
- Distinctive: line 202
If the repository already has legacy lint debt:
- Distinctive: line 204
Run safe auto-fixes first.
- Distinctive: line 209
When needed, propose a phased rollout:
- Very specific: line 212
If the task is primarily about repairing an already-failing repository instead of generating compliant code up front, route into the …
- Distinctive: line 216
If Ruff is enabled:
- Very specific: line 218
check whether D docstring rules are enabled
- Very specific: line 219
do not promise that ruff --fix will make the repo pass if D rules dominate failures
- Distinctive: line 220
if the repo wants zero manual fix-up, ensure the generated code conforms before linting
- Distinctive: line 221
when a repository has heavy legacy docstring debt, prefer a split strategy: auto-fix a narrow safe subset first (for example …
- Distinctive: line 226
treat documentation debt as a separate cleanup stream
- Distinctive: line 230
When fixing already-written code:
- Distinctive: line 231
run the real failing commands
- Distinctive: line 236
stop only when all required checks pass
- Distinctive: line 242
When using this skill for a repository task, provide:
- Distinctive: line 266
use auto-fix only for safe mechanical cleanup
- Distinctive: line 267
verify against the same commands Jenkins will run
- Distinctive: line 273
If the repository uses Jenkins, quality work is not complete until the code would pass these repository-specific gates where applicable:
- Very specific: line 283
Do not recommend a Jenkins Auto-fix code style stage.
- Very specific: line 295
Run these with the same command strings and tool versions Dockerfile.test/Jenkins' Code linting stage use, so what gets committed is …
- Very specific: line 311
When Ruff D rules are enabled, do not assume ruff --fix will make the repository pass.
- Distinctive: line 313
use auto-fix only for fixable classes of issues
- Distinctive: line 318
If an existing codebase has heavy historic lint debt, split the work into:
- Distinctive: line 323
Do not present a repository as “AI-friendly” if it still requires a human to manually run formatters after every generated change.
“Common” is measured: kept by at least 6 in 10 of the 71 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Code Quality
Use this skill when code must be created correctly from the start, or when existing code must be repaired until it passes the repository's actual quality gates.
Primary goal
Make code pass the real checks that block delivery:
- repository formatters and linters
- type checks
- unit tests
- integration tests when present
- Docker-based test-image checks
- Jenkins stages generated for the repository
The skill is optimized for AI-generated code, where the preferred outcome is: generate correct code up front so no later fix-up pass is required.
When to use
Use this skill when you need to:
- implement new code that must pass CI on the first try
- repair code that already exists but fails lint, typing, or tests
- reduce manual
--fixcleanup after AI generation - align a repository with Jenkins quality gates
- decide which checks should auto-fix code and which should remain hard gates
Operating principles
- Treat the repository's real checks as the source of truth.
- Prefer prevention over cleanup: generate code that already matches project conventions.
- Separate safe auto-fixes from non-fixable policy rules.
- Do not assume one tool can fix everything.
- Do not declare success until the same commands used by Jenkins pass.
- Auto-fix before the commit, not in CI. Run the same safe-fixer commands
Jenkins'
Code lintingstage verifies (ruff check --fix,ruff format,black,isort,prettier --write, etc.) every time you add or modify code, before it gets committed. Jenkins can't commit fixes back, so if auto-fixable debt reaches CI, the pre-commit step was skipped; don't rely on a Jenkins-side auto-fix stage to catch it. Prefer running these natively on the host rather than through Docker when the installed tool versions matchDockerfile.test— see "Native tools vs Docker for pre-commit auto-fix" below. Don't skip the check just because it's usually fast; skipping it is exactly how auto-fixable debt reaches CI in the first place.
Required workflow
- Inspect the repository before changing code:
pyproject.toml,package.json,Makefile,tox.ini,setup.cfg,.pre-commit-config.yaml, CI files,Jenkinsfile, Docker test image- locate lint, format, type, unit-test, and integration-test commands
- Classify the checks into three buckets:
safe auto-fix: import sorting, formatting, some lint rewritesnon-auto-fix quality rules: architecture, typing, API behavior, complex lint rules, many docstring rulestests: unit/integration/e2e gates
- Implement or repair code while matching the local conventions immediately.
- Run safe auto-fixes first, if the repo uses them.
- Run the strict lint/type/test commands that Jenkins or CI will run.
- Iterate until all blocking checks pass.
- If Jenkins uses Docker-based verification, validate with the same Docker image or command path.
AI-generated code guidance
When writing new code, do not rely on a later formatter pass as the main strategy. Generate code that already respects:
- import ordering
- naming conventions
- line length
- obvious docstring expectations when the repo enforces them
- type annotations required by the repo
- existing module boundaries and patterns
- testability
For new code, the target is not “fix it later”; the target is “it passes when first checked”.
Auto-fix strategy
Use auto-fix only for rules that are safe and mechanical.
Typical safe auto-fix tools:
ruff check --fixruff formatblackisortprettier --write- ESLint auto-fix for known-safe rule sets
Do not assume these will solve:
- failing tests
- incorrect business logic
- mypy/type errors
- architectural issues
- most documentation policy debt
- many Ruff
D*docstring violations
Jenkins compatibility rules
If a repository uses Jenkins, the code-quality workflow must map to the Jenkins stages.
Always identify:
- which checks run in
Code linting - which checks run in
Unit test - whether integration tests are part of the quality gate
- whether Jenkins runs checks inside
Dockerfile.test - the exact Docker commands or wrapper commands a developer can run locally to reproduce those same checks
If Jenkins is present, local verification is incomplete until the generated code would pass those same stages.
For the EEA parity contract this implies (same Docker image, same command strings, documented in plain shell form), see the testing skill — it owns that principle and the self-check for verifying it holds.
Native tools vs Docker for pre-commit auto-fix
Building and running Dockerfile.test on every commit is real overhead a
developer shouldn't have to pay for routine code changes. It's mandatory
exactly once per repository: when the Jenkinsfile is first created (or
Dockerfile.test changes), build the image and run the lint/type/test
commands inside it to confirm Dockerfile.test itself is correct and the
commands that will go into the Jenkinsfile actually work — see the
jenkins-pipeline skill's "Required workflow" Phase 2/3 for that. That step
does not repeat on every later commit.
After that initial validation, for ongoing day-to-day auto-fixing:
- Read the exact tool versions
Dockerfile.testinstalls (pinned versions in itsRUN pip install/RUN npm installlines,requirements.txt,pyproject.toml, orpackage.json). - Check what's installed on the host for each tool (
ruff --version,black --version,mypy --version,npx eslint --version,npx prettier --version, etc. — prefer the project-local install, e.g. a.venvornode_modules, over a global one, since that's what's actually pinned). - If a tool's host version matches what
Dockerfile.testinstalls, run its auto-fix command natively — nodocker build/docker runneeded. This is the common case and is what makes routine auto-fixing fast. - If a tool is missing locally, or its version differs from what
Dockerfile.testpins, either install/upgrade it locally to match before running natively, or fall back to running that one tool through Docker for this pass — don't silently run a mismatched version and call it verified, since a fixer or linter can behave differently across versions. - This version check itself is cheap (a handful of
--versioncalls) and worth doing every time, even though the auto-fix commands themselves usually run natively afterward.
Nothing known-broken gets committed
Running checks and auto-fixing is not optional, and neither is fixing what auto-fix can't reach:
- Before every commit, run the format/lint auto-fixers and the strict checks. This is fast (seconds, natively) — there's no excuse to skip it.
- Whatever auto-fix cannot resolve — real bugs, type errors, non-mechanical lint findings, failing tests — the agent or developer must fix directly, by hand, before committing. "Auto-fix didn't catch it" is not a reason to commit it anyway; it means the remaining work is manual, not that the remaining work is optional.
- Tests take longer than a lint/format pass, but that's a reason to budget time for them, not a reason to skip them. Run the tests relevant to what changed before every commit at minimum, and the full suite before pushing or opening/updating a PR — Jenkins should confirm what was already verified locally, not be the first place a real failure surfaces.
- Never commit with a check known to be red and a plan to "fix it in CI" — Jenkins cannot commit a fix back (see "EEA auto-fix policy" below), so there is no CI-side safety net for a check that was never actually fixed.
Recommended quality-stage model
Auto-fix code style (safe rewrites only — import sorting, formatting) is
not a Jenkins/CI stage. Jenkins is not permitted to commit changes back
to the repository, so a CI-side auto-fix stage either discards its own
rewrites when the container is removed (useless) or has to auto-commit
(the thing EEA doesn't want). Run auto-fix before the commit — as part
of writing or repairing the code, using the exact same commands and Docker
image Jenkins' lint stage will later run in strict/read-only form
(--check, no --fix). By the time code is committed, it should already
be clean; Jenkins verifies that, it doesn't re-fix it.
For CI and Jenkins design itself, prefer this split:
Code linting- strict lint gates, read-only (
--check/no---fix) — the code should already be clean because auto-fix already ran pre-commit
- strict lint gates, read-only (
Type checks- mypy/pyright/tsc/etc.
Unit testIntegration testwhen needed
This split prevents teams from confusing “fixable formatting debt” with “real quality failures” — and keeps the fixing itself out of CI entirely.
How to handle failing lint on existing code
If the repository already has legacy lint debt:
- Run safe auto-fixes first.
- Re-run lint to see what remains.
- Separate remaining failures into:
- issues that require code edits
- issues that indicate the configured rules are unrealistic for immediate hard-gating
- When needed, propose a phased rollout:
- hard gate safe/core rules now
- report advisory/debt-heavy rules until the codebase is cleaned
- If the task is primarily about repairing an already-failing repository instead of generating compliant code up front, route into the
quality-fixesskill.
Ruff-specific guidance
If Ruff is enabled:
- inspect the
selectlist in configuration - check whether
Ddocstring rules are enabled - do not promise that
ruff --fixwill make the repo pass ifDrules dominate failures - if the repo wants zero manual fix-up, ensure the generated code conforms before linting
- when a repository has heavy legacy docstring debt, prefer a split strategy: auto-fix a narrow safe subset first (for example imports/formatting), then run strict lint separately instead of pretending the whole rule set is mechanically fixable
A repo with heavy docstring enforcement often needs one of these approaches:
- generate correct docstrings from the start
- narrow the hard gate to practical rules first
- treat documentation debt as a separate cleanup stream
Repair mode for existing code
When fixing already-written code:
- run the real failing commands
- capture the exact failing files and rules
- apply safe auto-fixes
- repair non-fixable issues directly in code
- rerun lint, typing, and tests
- stop only when all required checks pass
Also verify that the repository's dependency installation path is real, not merely documented. If requirements.txt, pyproject.toml, lockfiles, and package-manager behavior disagree, determine which source of truth actually builds before designing CI or test-image fixes around it.
Output requirements
When using this skill for a repository task, provide:
- the exact commands used for verification
- any auto-fix commands used
- the remaining non-auto-fix issues, if any
- whether the code now matches the Jenkins quality gates
- the exact Docker-based commands a developer can run locally to reproduce the same checks without reading Jenkins logs
Reference
See references/jenkins-quality-gates.md for an EEA-oriented model of how to split auto-fix, lint, typing, tests, and Docker/Jenkins verification.
<!-- BEGIN EEA-OVERRIDES -->EEA-Specific Overrides
<!-- EEA-Overrides-Version: 1.0 --><!-- Last-Sync: 2026-07-29 -->EEA quality policy for AI-generated code
For EEA projects, AI-generated code should be created so that it already conforms to the repository checks whenever reasonably possible. The preferred workflow is:
- inspect repository quality rules
- generate code that already follows them
- use auto-fix only for safe mechanical cleanup
- verify against the same commands Jenkins will run
The goal is to avoid a workflow where a human must repeatedly run --fix after every AI-generated change.
EEA Jenkins quality expectations
If the repository uses Jenkins, quality work is not complete until the code would pass these repository-specific gates where applicable:
- code linting
- type checks if present
- unit tests
- integration tests
- Docker-based test-image verification
- SonarQube inputs generated from passing tests and coverage
EEA auto-fix policy
Do not recommend a Jenkins Auto-fix code style stage. EEA Jenkins is not
permitted to commit changes back to the repository, so a CI-side auto-fix
stage either discards its own rewrites when the container is removed, or
requires auto-committing from CI — the thing EEA policy avoids. Auto-fix
runs before the commit instead, as part of writing or repairing code:
ruff check --fixruff formatblackisortprettier --write
Run these with the same command strings and tool versions
Dockerfile.test/Jenkins' Code linting stage use, so what gets committed
is already what Jenkins would accept — but that doesn't mean running them
through Docker every time. Once Dockerfile.test itself has been built and
validated once (mandatory the first time the Jenkinsfile is created — see
jenkins-pipeline's Required workflow), prefer running natively on the
host whenever the installed tool versions match what Dockerfile.test
pins; see code-quality's "Native tools vs Docker for pre-commit
auto-fix" for the version-check procedure. Falling back to Docker on every
commit is unnecessary overhead once that parity is confirmed. The Jenkins
pipeline then only needs strict, read-only verification stages
(--check/no---fix) that must already
pass — it never re-fixes anything itself.
EEA warning about Ruff docstring rules
When Ruff D rules are enabled, do not assume ruff --fix will make the repository pass. Many docstring violations are not mechanically fixable. In such repos:
- generate compliant docstrings up front for new code
- use auto-fix only for fixable classes of issues
- repair remaining issues directly or adjust rollout strategy intentionally
EEA recommendation for legacy codebases
If an existing codebase has heavy historic lint debt, split the work into:
- safe auto-fix cleanup
- targeted repair of blocking failures
- optional phased tightening of rules
Do not present a repository as “AI-friendly” if it still requires a human to manually run formatters after every generated change.
<!-- END EEA-OVERRIDES --><!-- Merged Build: upstream SKILL.md + EEA-OVERRIDES.md --><!-- Auto-generated by scripts/build.sh - DO NOT EDIT DIRECTLY --><!-- Source: https://github.com/eea/eea.agent.skills -->Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
Reviews can't be read right now.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

