ARC-Core is designed around a simple doctrine:
models may assist, but canonical state and execution authority stay inside structured infrastructure.
arc/api/main.pyarc/api/routes.pyarc/api/deps.py
Responsibilities:
- application startup
- route exposure
- UI mounting
- manifest/health surface
- auth/session endpoints
- analyst and operator workflow endpoints
arc/core/config.pyarc/core/db.pyarc/core/auth.pyarc/core/schemas.pyarc/core/risk.pyarc/core/simulator.pyarc/core/util.py
Responsibilities:
- config and paths
- SQLite schema and connection bootstrap
- role gates
- typed input/output models
- risk banding
- lightweight simulation primitives
- normalization and event fingerprinting
arc/services/ingest.pyarc/services/graph.pyarc/services/cases.pyarc/services/watchlists.pyarc/services/proposals.pyarc/services/notebook.pyarc/services/audit.pyarc/services/authn.pyarc/services/connectors.pyarc/services/bootstrap.pyarc/services/geospatial.pyarc/services/resolver.py
Responsibilities:
- business logic
- ingest and graph updates
- analyst workflow
- audit/receipt logic
- session logic
- connectors
- geospatial processing
- demo bootstrap and seed data
arc/geo/geometry.pyarc/geo/estimator.py
Responsibilities:
- polygon / structure geometry helpers
- estimated location and spatial confidence helpers
arc/ui/*.html
Responsibilities:
- dashboard-level views
- graph/timeline/case/geospatial pages
tests/*.py
Responsibilities:
- smoke coverage
- workflow coverage
- geospatial coverage
- hardening checks
- v6 operations checks
This architecture already shows the intended pattern:
- routes stay thin
- services hold workflow logic
- core defines the invariants
- receipts and proposals are explicit
- future model layers can plug in without owning truth