---
id: ADR-PFM-LLM-008
title: Commit Control Changes With Their Security Audit
product_area: platform
module: llm
revision: 1
status: proposed
design_intent: proposed
source_sha:
  services-platform: ad3f6a6582843008ed0f5a17b131878d15829af1
  react-console: baf6dae382d6f41dce976c7f848667ccc37e076f
decision: >-
  Commit limits, grants, revocations and corrections with their path-specific reasoned security audit, and
  finish successful content-access auditing before returning an answer.
constrains:
  - WF-PFM-LLM-007
  - WF-PFM-LLM-008
  - WF-PFM-LLM-009
  - WF-PFM-LLM-010
  - SVC-PFM-LLM-llm
  - RESP-PFM
origin: >-
  Audit store choice reported as settled by inspection in the observability decision record, following the
  licensing override precedent (services-platform:docs/proposals/llm-observability/11-decisions.md#11.1
  Settled by inspection (reported)).
alternatives:
  - option: Use ordinary record-change history
    why_not: It does not supply the same reasoned staff-action and widening semantics.
  - option: Create a separate AI audit store
    why_not: It splits investigations across another history system.
  - option: Append control audit only after commit
    why_not: It allows changed capacity without the corresponding committed audit.
consequences:
  - Control mutation and audit failures roll back together.
  - HQ reads five AI audit entity types from Security’s store.
  - Not every audit shape contains both before and after snapshots.
  - 'Route refusals, missing requests and storage errors can bypass the content-read audit path.'
supersedes: []
evidence:
  - >-
    services-platform at ad3f6a6: modules/llm/services/limits/tenant-limits.ts;
    services/overrides/allowance-overrides.ts; services/adjustments/adjust-allowance.ts;
    services/evidence/evidence-access.ts; services/usage-reports/audit-trail.ts;
    modules/security/services/persistence/audit-events.ts; docs/audit-events.md.
---

# Commit Control Changes With Their Security Audit

## Context

Privileged capacity changes and evidence access need an investigable staff trail.

## Decision

Commit limits, grants, revocations and corrections with their path-specific reasoned security audit, and finish successful content-access auditing before returning an answer.

## Alternatives Considered

Use ordinary record-change history: It does not supply the same reasoned staff-action and widening semantics.

Create a separate AI audit store: It splits investigations across another history system.

Append control audit only after commit: It allows changed capacity without the corresponding committed audit.

## Consequences

Control mutation and audit failures roll back together. HQ reads five AI audit entity types from Security’s store. Not every audit shape contains both before and after snapshots. Route refusals, missing requests and storage errors can bypass the content-read audit path.
