Skip to main content

Observability Gate A — acceptance

Status: GATE A = PASS

Recorded: 2026-10-05

This record certifies contract convergence across the four producer-observability mechanisms required before starting the GCP projection work. It is an acceptance record, not live-health authority, and it does not replace producer-local evidence or run receipts.

Gate decision​

contract convergence = PASS
local runtime acceptance = PASS
GATE A = PASS
READY FOR OBS-G1

Gate A requires the four mechanism types to converge on evidence:producer-run-receipt@1; it does not require every producer in every mode to have completed its eventual estate-wide rollout.

A — GitHub zero-touch observer: PASS​

projects/scripts/producer_github_observer.py was exercised against real completed GitHub Actions runs.

The accepted live observation selected 9 governed GitHub sentinel producers and produced 8 receipts. The remaining producer, producer.github.min-economia-dataset-updater, returned no completed workflow run and was left explicitly unobserved rather than fabricated.

That producer is authority hold / status unresolved; its absence of a receipt is therefore governed and non-blocking.

B — Manifest translator: PASS​

projects/scripts/producer_manifest_translate.py implements the bounded manifest-to-receipt path with five adapters and explicit privacy tests.

A real existing KB Artifacts selection manifest was translated for producer.manual.kb-evidence-selector. The resulting receipt:

  • validated against evidence:producer-run-receipt@1;
  • passed the privacy scan;
  • has SHA-256 2c100142b9ee1410da660fdce024940ec9ee88dc08379377708cb293a16c9fd0.

The source payload was not copied into this repository.

C — Local/manual/systemd wrapper: PASS​

projects/scripts/producer_local_receipt.py is the canonical local wrapper. The 19 local_receipt producers retain these compiled wrapper policies:

command:none 4
command:required 13
systemd_command:required 2

The Office Runtime integration was rendered, verified and installed without changing timer enable/active state. Both one-shot services then emitted valid, metadata-only receipts:

producerexecution / artifactschedulerreceipt SHA-256
producer.local.office-compilehealthy / healthyunknown1321a002a79fc491016ad3e3363a7d4208fa1721de8fdad9e2cb08cf5b1644e0
producer.local.office-evidence-dailyhealthy / healthyunknowndae0024b35d641bad4d20dfc065f99e85d157f86e2bc152b98382a7a554713f1

Both receipts passed the canonical validator and privacy scan.

scheduler_state=unknown is intentional: a successful one-shot execution does not prove timer/scheduler health.

The lock-cleanup correction discovered during this live proof was reviewed, CI-green and merged in office-auto-lab as a0d165269d40b2c1727305d8044821b7db90a7ee.

D — Semantic emitter: PASS​

The first producer-local semantic emitter is implemented for producer.github.media-publication in media_monitor/scripts/emit_media_publication_receipt.py.

It derives artifact and terminal state from:

  • publication_cycle_guard.v1;
  • site_roll.v1;
  • public_deployment_check.v1;
  • crawler_surface_check.v1;
  • GitHub execution identity/state.

GitHub workflow success alone is not sufficient to assert artifact health.

The emitter is merged in media_monitor as a9a37635be1665f573693f9f3b0bac8ff837437d. Runtime-contract Python tests and news-site contract/build tests passed. No production publication was triggered for acceptance.

Control-plane census​

The canonical compiled projection remains:

46 producers

github_workflow 9
translated_manifest 5
semantic_receipt 7
local_receipt 19
deferred_external 6

The older 17/8/6 census came from a pre-1C base and is not authoritative.

Stage 1D adoption merges​

The bounded Git-backed adoption work was merged through:

  • projects — 02ef7462f896b299a7bac57c811a1b7f41f50f98
  • office-auto-lab — 06c201afc8f2f1932dcc41c99459a843bb3bfe51
  • people_intel — 235d4899c3b6b6641e1f57682b4e0de474d58540
  • knowledge-experiences — cfb7504f347a8cd4b39561fba65b26862435cab9
  • abstract-scroller — 680a50fa1f93ee844a3b49d2cbdf63cb62af76b4
  • argentina-geography — 1802ad63fd8d8612225dc6791fe908b9f0b56ff4
  • paper-kb — 90b359647a7932f058be974d9140c6bfb7b6a4e8

The previously missing Media Monitor digest boundary was recovered, tested and merged as efcaa39144dec98b30e95376d04ba1fe1af3fa9a. It is independent of the draft Gemini YouTube-summary work.

The local acceptance evidence record was merged in projects as 5b468a930416efc301157ba0c135a37f97ce4605.

Non-blocking debt after Gate A​

The following remain visible but do not block OBS-G1:

  • six semantic_receipt producers still need their eventual producer-local emitter rollout beyond the Media Publication pilot;
  • six ChatGPT automation producers remain deferred_external;
  • producer.github.min-economia-dataset-updater remains authority hold and unobserved until repaired/reconciled;
  • the three gpt_knowledge_factory local producer wrappers remain local-only because that working surface has no Git remote;
  • systemd scheduler health remains separate from execution receipts and is not inferred from successful one-shot runs.

Next boundary​

The final pre-GCP contract is docs/observability/gcp-handoff.md.

Gate A is closed. New estate-side architecture is not required before OBS-G1 unless a concrete regression is discovered.