Spring Boot Quality Stack
Scan a project's build configuration, cross-reference against curated research documents, and assist with tool setup.
Pre-flight
- Verify build files exist — run the scanner. If it returns
"error": "no_build_file", checknearby_build_filesfor subproject paths. - Monorepo? — if the Spring Boot project is nested, either pass the subproject path directly or use
--recursive:python3 <skill-path>/scripts/scan_tooling.py --recursive <project-root>
Two-Phase Workflow
Phase 1: Recommend
-
Run the scanner on the project root:
python3 <skill-path>/scripts/scan_tooling.py <project-root> -
Fetch the research documents via WebFetch:
https://raw.githubusercontent.com/joaquimscosta/arkhe-claude-plugins/main/docs/research/jvm-quality-tools-evaluation.md https://raw.githubusercontent.com/joaquimscosta/arkhe-claude-plugins/main/docs/research/kotlin-spring-boot-testing-ecosystem.mdIf WebFetch fails (network error, 404), warn the user and proceed using scanner results + LLM knowledge only.
-
Cross-reference scanner JSON output against research recommendations:
- Identify tools recommended by research but missing from the project
- Check tool
statusfield:disabledorconfig-onlytools need attention - Flag tools that are present but outdated or superseded
- Note tools to SKIP based on project profile (language, Spring Boot version)
- Review
tool_configfor threshold values and reporter settings
-
Generate the recommendation report using the format in WORKFLOW.md.
Phase 2: Setup
After presenting the report, use AskUserQuestion (multiSelect: true) with the top NOW/SOON recommendations as options. After the user selects tools:
- Read the relevant section from the research document for setup instructions
- For each selected tool, apply changes:
- Add Gradle plugin or Maven plugin declaration
- Add test dependencies
- Create config files (detekt.yml, .trivyignore, etc.)
- Add CI/CD workflow steps if applicable
- Re-run the scanner to confirm detection
Priority Classification
Classify each recommendation based on project context:
| Priority | Criteria | |----------|----------| | NOW | Essential missing tools, zero-dependency additions, items marked NOW in research | | SOON | High-value additions requiring minor setup, items marked SOON in research | | LATER | Nice-to-have tools with prerequisites, items marked LATER in research | | SKIP | Not applicable for this project (wrong language, incompatible version, deprecated) |
Language-aware rules:
- Pure Kotlin: SKIP Error Prone, SpotBugs (Java-only or bytecode-only value)
- Pure Java: SKIP Detekt, ktlint, Kover, MockK, kotlin-faker
- Spring Boot 4+: SKIP REST Assured spring-mock-mvc (broken with jakarta)
- Spring Boot 4+: NOW MockMvcTester (built-in replacement)
Category: Git Hooks
| Tool | When to Recommend | Priority | |------|------------------|----------| | Lefthook | No git hook manager + has linters (ktlint/detekt) | SOON | | Lefthook | Husky or pre-commit already present | SKIP (note: migration possible) |
Note: When setting up Lefthook (Phase 2), the scanner also detects frontend tools
(ESLint, Prettier, Tailwind CSS) in package.json files at the project root and in
monorepo sibling directories. These are wired into lefthook.yml alongside JVM hooks
but do not appear in the recommendation phase.
Research Documents
Fetch these via WebFetch at runtime — do not cache or embed their content:
- Quality Tools:
jvm-quality-tools-evaluation.md— Error Prone, SpotBugs, Detekt, ktlint, SonarQube, JaCoCo, PIT, ArchUnit, Testcontainers, Spring Cloud Contract, Pact, Gradle Cache, GitHub Actions, OpenRewrite, Renovate, JMH, OWASP DC, Trivy, Snyk - Testing Ecosystem:
kotlin-spring-boot-testing-ecosystem.md— Assertions, Test Data, Coverage, Property Testing, API Testing, Contract Testing, DB Testing, Mutation Testing, Spring Modulith Testing
References
- Workflow: See WORKFLOW.md for detailed phase descriptions, classification logic, and report template
- Examples: See EXAMPLES.md for realistic audit scenarios
- Troubleshooting: See TROUBLESHOOTING.md for scanner issues
- Scanner Script: See scripts/scan_tooling.py for detection patterns
微信扫一扫