Repository navigation
v0.8.0 — Incremental parse cache + pre-push quality-score hook
Faster on real repos
Profiling on nestjs/nest (~1700 TS files) showed archsteer check taking 2.9–7s per run — too slow for something meant to run on every git push. The bottleneck was re-parsing every file on every invocation regardless of what actually changed.
build_model now caches each file's extracted component keyed by a content hash in .archsteer/parse_cache.json (gitignored, machine-local). Unchanged files reuse their cached result; only changed files get re-parsed and re-scanned. Cross-file edge resolution still runs over the full component set every time, since a file's imports can resolve differently when other files change. Measured on nestjs/nest: 2.9s cold → ~1.0s warm, whether nothing changed or a single file did. The remaining ~1s is fixed CLI/interpreter startup overhead this change doesn't touch.
Quality score before every push
archsteer check now prints a one-line readout — conformance %, delta since the last snapshot, and net-new violation count — every time it runs, not just on failure.
New archsteer install-hooks wires check into a local git pre-push hook: same non-blocking-on-existing-debt ratchet already used in CI (blocks only NET-NEW error violations), just earlier feedback than waiting for CI. Won't clobber a hook it didn't write without --force; --uninstall removes it cleanly. Already on husky/pre-commit/lefthook? The README now shows wiring archsteer check into those instead.
Also fixes a dead README reference to a hooks/pre-commit file that didn't actually exist in the repo.
Full diff: v0.7.0...v0.8.0