AOC (Append-Only Contracts)
Status: Implemented
Source: src/Aoc/
Owner: Platform Team
Purpose
AOC provides compile-time enforcement of append-only contract rules during data ingestion. Uses Roslyn analyzers to prevent connectors from writing to fields that should only be computed by downstream merge/decisioning pipelines.
Components
Analyzers:
StellaOps.Aoc.Analyzers- Roslyn DiagnosticAnalyzers (AOC0001, AOC0002, AOC0003)
Libraries:
StellaOps.Aoc- Core abstractions (IAocGuard)StellaOps.Aoc.AspNetCore- ASP.NET Core integration
CLI:
StellaOps.Aoc.Cli- Manual validation tool
Key Concepts
Forbidden Fields (ingestion-time writes forbidden):
severity,cvss,cvss_vector- Computed from CVSS + contexteffective_status,effective_range- VEX consensus outcomesrisk_score,reachability,asset_criticality- Runtime analysis
Derived Fields:
- Any field prefixed with
effective_*is treated as derived and forbidden
Related Documentation
- Architecture:
./architecture.md - Concelier:
../concelier/(uses AOC for connectors) - Excititor:
../excititor/(uses AOC for VEX ingestion)