Files
git.stella-ops.org/docs/modules/aoc

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 + context
  • effective_status, effective_range - VEX consensus outcomes
  • risk_score, reachability, asset_criticality - Runtime analysis

Derived Fields:

  • Any field prefixed with effective_* is treated as derived and forbidden
  • Architecture: ./architecture.md
  • Concelier: ../concelier/ (uses AOC for connectors)
  • Excititor: ../excititor/ (uses AOC for VEX ingestion)