Skip to content

Publish Audit Log Spec

Specializes governance/audit/audit-log-spec.md for the documentation and publishing pipeline.

Required fields (extends generic spec)

Field Type Notes
content_type string Identifier from content-type.schema.json.
content_id string Stable id of the content artifact (hash of frontmatter + body, or assigned uuid).
source_lineage array List of {kind, ref, rev} entries for source pins.
venue string (optional) Adapter name; absent for pure doc-generation events.
venue_artifact_id string (optional) Venue-side identifier (post id, video id, etc.).
approval_chain array (optional) Approver names and timestamps for events that require approval.
policy_version string Editorial + publishing policy versions in effect.

Event vocabulary

Documentation generation:

Action When
draft_created First filled template instance.
draft_revised Subsequent edits before finalization.
quality_check_passed / quality_check_failed Lint / editorial policy result.
signoff_recorded Reviewer approved per editorial policy matrix.
finalized All quality flags true; content artifact frozen.

Publishing:

Action When
approval_recorded An approver signed off per publishing-policy.yaml.
publish_dry_run Dry-run executed against an adapter.
publish_attempted Publish call sent to adapter.
publish_succeeded Adapter confirmed success and post-publish verification matched.
publish_failed Adapter reported failure or post-publish mismatch.
unpublish_attempted Unpublish call sent.
unpublish_succeeded Unpublish confirmed.

Lineage correlation

  • All events for a single content artifact share correlation_id == content_id.
  • All publish events for that content artifact reference its finalized event as parent_event_id.

Retention

  • All events: 365 days minimum.
  • publish_succeeded and publish_failed: kept indefinitely (metadata only; content payloads not retained in audit logs).
  • Logs are append-only and tamper-evident.

Sample event

{
  "id": "c1a4...",
  "ts": "2026-05-04T20:14:00Z",
  "actor": "agent:publisher",
  "actor_credential_label": "publisher-internal-docsite",
  "runtime": "local",
  "action": "publish_succeeded",
  "target": "internal-docsite/posts/operator-manual",
  "scope": "publish-internal-docsite",
  "outcome": "success",
  "data_classification": "internal",
  "correlation_id": "doc-9f2c...",
  "parent_event_id": "evt-finalized-9f2c",
  "content_type": "technical-doc",
  "content_id": "doc-9f2c...",
  "venue": "internal-docsite",
  "venue_artifact_id": "post-12345",
  "approval_chain": [
    {"approver": "docs_owner", "ts": "2026-05-04T20:00:00Z"}
  ],
  "policy_version": "editorial-1.0,publishing-1.0"
}