Workspace layout
Navigator is a single Cargo workspace. Every executable and library in it is written in Rust — the navigator CLI (the
cli crate) orchestrates every machine-bound flow, so there are no shell scripts and no Makefile. This doc is the
canonical crate map; the workspace CLAUDE.md links here.
rules lib — validation rules
store lib — SeaORM entities, migrations, canonical seed
repos lib — per-Project bare git repos (append-only, single `main`); backs `web::git_http`
import lib — bulk contact-import engine (entities + persons + roles); one lib, many surfaces
cli bin `navigator` — validate, import, import-contacts, seed, list; login + live-site matter driver; KIND dev-loop + deploy + `gcp setup` orchestration (in `cli::devx`)
web bin `web` — axum + SeaORM + maud; hosts both AIDA surfaces + git smart-HTTP + LFS
views lib — maud HTML view components
workflows lib — durable workflow primitives (Restate-shaped); `web` submits jobs to the broker
workflows-service bin `workflows-service` — Restate worker; hosts the `Notation`, `Archives`, `DriveSync`, billing-canary services + journal; only `restate-sdk` consumer
cloud lib — storage trait + GCS/Fs backends
mcp lib — MCP server merged into `web` at /mcp (Claude / LibreChat / Cursor)
features lib — Cucumber-rust BDD suite (`cargo test -p features`)
forms lib — vendored government forms registry (FORMS.toml ledger + bundled canonical PDFs)
lsp bin `navigator-lsp` — LSP server: rule diagnostics + source.fixAll
pdf lib — Typst-backed PDF rendering (Noto Serif firm typeface); persists via `cloud`
archives lib — nightly Postgres→Parquet snapshot Restate workflow + diagnostic email
statutes lib — weekly Nevada Revised Statutes scraper; bin `statutes_sync` reconciles into Postgres
billing lib — `BillingProvider` seam (Xero `ACCREC` invoices / stub) for the matter-close fee
billing-workflows lib — worker-side billing workflows (nightly Xero canary), hosted by workflows-service
Adding a new crate
A new workspace crate must be added to the images/Dockerfile.* COPY lists so the prod images still build — see
durable-workflows.md and rust-programming.md.