# Specification Management
**Human-readable rules. Machine-enforced quality.**
Versioned development specs backed by ArchUnit, Checkstyle, SpotBugs,
SonarQube, and OpenRewrite — browsable by humans, executable by CI.
- :material-shield-check:{ .lg .middle } **Architecture**
---
Layering, dependency inversion, package structure.
[:octicons-arrow-right-24: Browse specs](specs/architecture/)
- :material-code-tags:{ .lg .middle } **Code Style**
---
Naming conventions, imports, method length.
[:octicons-arrow-right-24: Browse specs](specs/code-style/)
- :material-bug:{ .lg .middle } **Bug Detection**
---
Null safety, resource leaks, thread safety.
[:octicons-arrow-right-24: Browse specs](specs/bug-detection/)
- :material-chart-line:{ .lg .middle } **Code Quality**
---
Complexity, duplication, test coverage.
[:octicons-arrow-right-24: Browse specs](specs/code-quality/)
- :material-arrow-up-bold:{ .lg .middle } **Migration**
---
Java 17, java.time, Spring Boot 3.
[:octicons-arrow-right-24: Browse specs](specs/migration/)
- :material-wrench:{ .lg .middle } **Tooling**
---
Enforcement tools, trigger policies, config references.
[:octicons-arrow-right-24: Tool reference](tooling/)
How It Works
flowchart LR
A[Spec File
Markdown + YAML] --> B{Enforcement} B --> C[ArchUnit] B --> D[Checkstyle] B --> E[SpotBugs] B --> F[SonarQube] B --> G[OpenRewrite] C --> H[CI Pass / Fail] D --> H E --> H F --> H G --> I[Auto-Remediation] I --> H
Markdown + YAML] --> B{Enforcement} B --> C[ArchUnit] B --> D[Checkstyle] B --> E[SpotBugs] B --> F[SonarQube] B --> G[OpenRewrite] C --> H[CI Pass / Fail] D --> H E --> H F --> H G --> I[Auto-Remediation] I --> H
Quick Start
Browse the Architecture specs to understand structural constraints in the codebase.
CI runs enforcement tools on every push or PR. See the Tool Reference for trigger policies.
OpenRewrite recipes auto-fix violations:
mvn rewrite:run -DactiveRecipe=org.openrewrite.java.migrate.UpgradeToJava17
specm validate # lint spec files
specm nav # regenerate sidebar
specm build # build site for deploy