XBP language-agnostic static analysis (Aspirator-inspired).
Hexagonal layout:
- [
domain] — pure model (findings, rules, abstract error concepts) - [
ports] — inbound/outbound traits only - [
application] — orchestration + language-independent rules - [
adapters] — filesystem, config, output formats, cache, fixes - [
languages] — per-language adapters (Rust first)
The domain does not depend on rustc, tree-sitter, the filesystem, clap, or SARIF/JSON crates.