# V2 Audit Platform Routing

V2 publishes moderation, anti-cheat, and DSR audit events through
`@oshun/audit-platform`. Oshun retains and exports those canonical events from
the shared append-only audit store; V2 services do not keep local forensic logs
for these flows.

## Ownership

- `@oshun/audit-platform` owns the canonical event envelope, ingest allow-list,
  immutable store, retention tags, and investigation export metadata.
- `@v2/kuanyin-first-line-moderation` publishes moderation decisions with the
  `v2.moderation.decision_published` action.
- `@v2/nous-anti-cheat-classifiers` publishes human-review-only anti-cheat
  classifier suite events with the `v2.anti_cheat.review_published` action.
- `@v2/themis-privacy-dsr-routing` publishes DSR workflow route events with the
  `v2.dsr.workflow_published` action.

## Contract

Every V2 publication request includes:

- `metadata.v2Publishes: true`
- `metadata.oshunRetainsAndExports: true`
- `metadata.auditPlatformPackageName: "@oshun/audit-platform"`
- a V2-specific retention tag for moderation, anti-cheat, or DSR
- an investigation export kind of `compliance`, `audit`, or `privacy`

The service-level surfaces return the canonical ingest request as
`auditPublication`, allowing the runtime publisher to pass it directly to the
shared audit-platform ingest service and allowing CI to assert the route without
duplicating the Oshun store implementation inside V2.

## Verification

`V2/ue/Tools/check-v2-audit-platform-routing.py` pins the shared helper,
publisher dependencies, service specs, docs, TODO entry, lockfile, and V2 CI
workflow. Targeted Vitest coverage validates the canonical request builder and
the three V2 service surfaces.
