- Remove the trusted sub-block: everything outside untrusted (chain
metadata, producer/host, bottled_agent, ts_*) is trusted by construction.
A field is trusted unless deliberately placed under untrusted (#495).
- Add Export/interoperability section: the flattened envelope projects
cleanly onto CloudEvents JSON (top-level scalars -> context/extension
attributes, untrusted -> data) and the OpenTelemetry Logs data model
(ts_wall -> Timestamp, trusted -> botbottle.* attributes, untrusted ->
botbottle.untrusted.*). Attribution preserved structurally; integrity
fields carried as data with verification always on the native journal.
Satisfies #487's export/interop requirement. Export adapters = chunk 6.
Refs #487
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- Move ts_wall/ts_mono and producer inside the trusted block (host-supplied).
- Rename subject to bottled_agent everywhere (field + lifecycle.bottled_agent_* leaves).
- Add explicit epoch (writer-boot) counter + chain-head carry for ordering across host-controller restarts.
- Commit to a single writer per host (host controller owns it).
- Reuse egress dlp_detectors (scan_token_patterns/redact_tokens) for redaction; exclude scan_entropy as brittle on structured audit values.
- Retention: carry rotated-out chain head as new segment genesis prev.
- Fold resolved points into design; trim open questions.
Refs #487
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Draft PRD for a unified, versioned audit-event envelope with a
trusted/untrusted field split, canonical JSON + per-writer hash chain,
an append-only JSONL journal as source of truth, a rebuildable SQLite
index for local query, and an initial event registry. Scheduled to land
immediately after the host controller (#468), which becomes its first
producer.
Refs #487
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>