Skip to content

v2.0.0

Latest

Choose a tag to compare

@github-actions github-actions released this 27 Aug 09:09
· 3 commits to main since this release
v2.0.0
5b9e1be

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 check exits:
    • 0healthy
    • 2needs_attention
    • 1blocked
    • 3 — no valid report because of command/config/tool execution error
  • archfit analyze remains report-only and exits 0 for every valid report.
  • Repository-level score_overall and score bands no longer determine architecture health.
  • legacy-json remains available for one compatibility release only.

Architecture state

The report exposes nine independent dimensions:

  1. intent
  2. structure
  3. modularity
  4. coupling
  5. change locality
  6. complexity
  7. testability
  8. operations
  9. 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.yaml

Apply it after review:

archfit config update --migration-only --apply -c .archfit.yaml

Update 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 SHA256SUMS are attached below.

The tag is signed and points to merge commit 5b9e1be057a43d1e0914d2445917edcc717972b1.

Full changelog: v1.7.1...v2.0.0