Aggregation-Only Contract (AOC) Guardrails
WITHDRAWN (2026-09-27, SPRINT_20260927_003 PCD-62). The AOC libraries (
StellaOps.Aoc,StellaOps.Aoc.AspNetCore), theStellaOps.Aoc.AnalyzersRoslyn analyzer and the CLI Aoc plug-in are no longer built or shipped. Their sources are frozen undersrc/__Obsoleted/Aoc/andsrc/__Obsoleted/Cli/(CODE_OF_CONDUCT 15.4). No service referenced them, and the plug-in’s direct-PostgreSQL verify form (--postgresoption) read anaoc_documentstable that no migration creates. This page describes the withdrawn code and is kept for reference. Still live and separate: theaoc:verifyscope. The core CLIaoccommand was withdrawn on 2026-10-01 (SPRINT_20260928_008 PCD-153); the Platform/api/v1/aoc/*compatibility endpoints (Development and testing only) and the Console AOC pages were withdrawn on 2026-10-08 (SPRINT_20261007_002 CCP-005 and CCP-004).
The Aggregation-Only Contract (AOC) keeps Stella Ops ingestion deterministic and policy-neutral: raw facts go in, and no opinions are formed at write time. Use these checkpoints whenever you add or modify ingestion-path work. They are written for service owners and reviewers working on any ingestion surface. The advisory and VEX ingestion services that first adopted these rules (Concelier, Excititor) are retired; production advisory and VEX ingestion is the vulnerability hub (../../vulnerabilities/architecture.md).
- Ingestion writes raw facts only. Ingestion appends immutable observations. No precedence, severity, suppression, or “safe fix” hints may be computed at ingest time.
- Derived semantics live elsewhere. Policy evaluation, findings composition, and downstream reporting attach severity, precedence, policy verdicts, and UI hints.
- Provenance is mandatory. Every ingestion write must include original source metadata, digests, and signing/provenance evidence when available. Reject writes lacking provenance.
- Deterministic outputs. Given the same inputs, ingestion must produce identical documents, hashes, and event payloads across reruns.
- Guardrails in code. The
StellaOps.Aocruntime guard and theStellaOps.Aoc.AnalyzersRoslyn analyzer (AOC0001-AOC0003) are available to fail writes and builds that attempt forbidden fields. At commit942a18727cno live deployable references them; see../architecture.md§7.
For roles and ownership boundaries, see AGENTS.md at the repo root and the module dossiers under docs/modules/<module>/architecture.md.
Related documentation
- AOC guard library reference — the
StellaOps.Aoclibraries that enforce these rules at the code level. - Aggregation-Only Contract reference — the full contract as written for the retired Concelier service (historical).
