Archfit v2.0.0
Archfit v2 replaces the repository-level scalar score with a deterministic, evidence-aware architecture state and completes the capability-owned internal architecture migration.
Breaking changes
- Primary JSON is now
archfit.architecture-state.v1. - Configuration schema is now v2. Archfit rejects v1 configs with an exact migration hint.
archfit checkexits:0—healthy2—needs_attention1—blocked3— no valid report because of command/config/tool execution error
archfit analyzeremains report-only and exits0for every valid report.- Repository-level
score_overalland score bands no longer determine architecture health. legacy-jsonremains available for one compatibility release only.
Architecture state
The report exposes nine independent dimensions:
- intent
- structure
- modularity
- coupling
- change locality
- complexity
- testability
- operations
- drift
Each dimension reports measured, partial, or unmeasured evidence with confidence, denominators, provenance, findings, unknowns, and comparable deltas. Missing evidence is never treated as a healthy zero. Balanced Coupling remains available per edge/seam for ranking and explanation.
JSON, text, Markdown, SARIF, and scorecard now share canonical finding IDs, statuses, metrics, verdicts, and coverage semantics.
Upgrade
Preview the lossless config migration:
archfit config update --migration-only --json -c .archfit.yamlApply it after review:
archfit config update --migration-only --apply -c .archfit.yamlUpdate CI to handle exit 2 as needs_attention, migrate JSON consumers to archfit.architecture-state.v1, and regenerate baselines only after reviewing the new state.
Language and corpus validation
The release was validated with a strict 11-repository corpus across Go, Python, TypeScript/JavaScript, and Rust. The harness checked config migration/idempotence, repeated JSON byte identity, five-format finding parity, and exit behavior.
Rust validation used rustup toolchain 1.98.0, rust-analyzer 1.98.0, and cargo-modules 0.26.0 across yazi, herdr, ruff, and tokio.
Expected v1 evidence gaps remain explicit: runtime test coverage, cognitive complexity, runtime topology, SBOM, and vulnerability state are partial/unmeasured unless a future analyzer supplies them.
Install
- Homebrew:
brew install alexei-led/tap/archfit - Container:
ghcr.io/alexei-led/archfit:v2.0.0 - Standalone binaries and
SHA256SUMSare attached below.
The tag is signed and points to merge commit 5b9e1be057a43d1e0914d2445917edcc717972b1.
Full changelog: v1.7.1...v2.0.0