Tool Reference
Each enforcement tool has its own page with project-specific configuration, guides, and usage notes.
Tools Overview
| Tool | Role | Trigger | Specs |
|---|---|---|---|
| ArchUnit | Architecture enforcement | Every push (JUnit) | ARCH-001, ARCH-002, ARCH-003 |
| Checkstyle | Code style enforcement | Every push | CS-001, CS-002, CS-003 |
| SpotBugs | Bug detection | Every push | BUG-001, BUG-002, BUG-003 |
| SonarQube | Quality gate | On PR only | CQ-001, CQ-002, CQ-003 |
| OpenRewrite | Code modernisation (remediation) | Before release | MIG-001, MIG-002, MIG-003 |
How Tools Relate to Specs
Each Spec maps to one or more tools via its tools front-matter field:
tools: [archunit, sonarqube] ← this Spec is enforced by both tools
The Spec page describes what is enforced and why. The Tool page describes how to configure and run the enforcement.
CI Pipeline Flow
flowchart LR
subgraph "Every Push"
A[Checkstyle] --> D[Build]
B[SpotBugs] --> D
C[ArchUnit] --> D
end
subgraph "On PR"
E[SonarQube] --> F{Quality Gate}
end
subgraph "Before Release"
G[OpenRewrite] --> H[Dry-Run Patch]
end
D --> E