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", check nearby_build_files for 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.md
If 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
status field: disabled or config-only tools 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_config for 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
1---2name: spring-boot-quality-stack3description: Scan a JVM project to detect configured quality and testing tools, cross-reference against research-backed recommendations, and assist with setup. Use when user asks to "audit tooling", "recommend tools", "quality stack", "what tools am I missing", "setup detekt", "add coverage", "configure CI quality pipeline".4---5
6# Spring Boot Quality Stack
7
8Scan a project's build configuration, cross-reference against curated research documents, and assist with tool setup.
9
10## Pre-flight
11
121. **Verify build files exist** — run the scanner. If it returns `"error": "no_build_file"`, check `nearby_build_files` for subproject paths.
132. **Monorepo?** — if the Spring Boot project is nested, either pass the subproject path directly or use `--recursive`:
14 ```bash
15 python3 <skill-path>/scripts/scan_tooling.py --recursive <project-root>
16 ```
17
18## Two-Phase Workflow
19
20### Phase 1: Recommend
21
221. **Run the scanner** on the project root:
23 ```bash
24 python3 <skill-path>/scripts/scan_tooling.py <project-root>
25 ```
26
272. **Fetch the research documents** via WebFetch:
28 ```
29 https://raw.githubusercontent.com/joaquimscosta/arkhe-claude-plugins/main/docs/research/jvm-quality-tools-evaluation.md
30 https://raw.githubusercontent.com/joaquimscosta/arkhe-claude-plugins/main/docs/research/kotlin-spring-boot-testing-ecosystem.md
31 ```
32 If WebFetch fails (network error, 404), warn the user and proceed using scanner results + LLM knowledge only.
33
343. **Cross-reference** scanner JSON output against research recommendations:
35 - Identify tools recommended by research but missing from the project
36 - Check tool `status` field: `disabled` or `config-only` tools need attention
37 - Flag tools that are present but outdated or superseded
38 - Note tools to SKIP based on project profile (language, Spring Boot version)
39 - Review `tool_config` for threshold values and reporter settings
40
414. **Generate the recommendation report** using the format in [WORKFLOW.md](WORKFLOW.md).
42
43### Phase 2: Setup
44
45After presenting the report, use `AskUserQuestion` (multiSelect: true) with the top NOW/SOON recommendations as options. After the user selects tools:
46
471. Read the relevant section from the research document for setup instructions
482. For each selected tool, apply changes:
49 - Add Gradle plugin or Maven plugin declaration
50 - Add test dependencies
51 - Create config files (detekt.yml, .trivyignore, etc.)
52 - Add CI/CD workflow steps if applicable
533. Re-run the scanner to confirm detection
54
55## Priority Classification
56
57Classify each recommendation based on project context:
58
59| Priority | Criteria |
60|----------|----------|
61| **NOW** | Essential missing tools, zero-dependency additions, items marked NOW in research |
62| **SOON** | High-value additions requiring minor setup, items marked SOON in research |
63| **LATER** | Nice-to-have tools with prerequisites, items marked LATER in research |
64| **SKIP** | Not applicable for this project (wrong language, incompatible version, deprecated) |
65
66**Language-aware rules:**
67- Pure Kotlin: SKIP Error Prone, SpotBugs (Java-only or bytecode-only value)
68- Pure Java: SKIP Detekt, ktlint, Kover, MockK, kotlin-faker
69- Spring Boot 4+: SKIP REST Assured spring-mock-mvc (broken with jakarta)
70- Spring Boot 4+: NOW MockMvcTester (built-in replacement)
71
72### Category: Git Hooks
73
74| Tool | When to Recommend | Priority |
75|------|------------------|----------|
76| Lefthook | No git hook manager + has linters (ktlint/detekt) | SOON |
77| Lefthook | Husky or pre-commit already present | SKIP (note: migration possible) |
78
79**Note:** When setting up Lefthook (Phase 2), the scanner also detects frontend tools
80(ESLint, Prettier, Tailwind CSS) in `package.json` files at the project root and in
81monorepo sibling directories. These are wired into `lefthook.yml` alongside JVM hooks
82but do not appear in the recommendation phase.
83
84## Research Documents
85
86Fetch these via WebFetch at runtime — do not cache or embed their content:
87
88- **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
89- **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
90
91## References
92
93- **Workflow**: See [WORKFLOW.md](WORKFLOW.md) for detailed phase descriptions, classification logic, and report template
94- **Examples**: See [EXAMPLES.md](EXAMPLES.md) for realistic audit scenarios
95- **Troubleshooting**: See [TROUBLESHOOTING.md](TROUBLESHOOTING.md) for scanner issues
96- **Scanner Script**: See [scripts/scan_tooling.py](scripts/scan_tooling.py) for detection patterns