Semantic Systems / Language / Glyphs

Production Assurance Program for the InternationalIntelligence.org Daily Brief

Report summary

InternationalIntelligence.org should treat the Daily Brief as a reader-facing publication service , not as a successful PHP process, scheduler invocation, provider request, or validator run. The central production question is:

Status
Research archive item
Category
Semantic Systems / Language / Glyphs
Length
10,625 words
Reading time
49 minutes
Report type
research-note

Key topics

  • Semantic Systems / Language / Glyphs
  • Semantic Systems
  • Language
  • Glyphs
  • AI
  • Runtime
  • Privacy
  • Research Archive
  • Strategy

Research provenance

Archive status
Research archive item
Content identity
sha256:001531e1c1bb9e690dca00ef6d8fb4105733959ad74ec0acf0a13f7d1c553ed4

For citation, use the report title and canonical URL. Archival presence does not establish authorship or promote report statements into portfolio evidence.

Source availability: 20 citation markers in the source export have no recoverable source links. Those markers are omitted from this reader; any supplied bibliography and ordinary links remain. Check the original sources before relying on the cited claims.

This page renders the archived Markdown as safe, formatted HTML. It is background research and does not become a portfolio claim without evidence review.

Full report

On this page

Executive SRE recommendation and research basis

InternationalIntelligence.org should treat the Daily Brief as a reader-facing publication service, not as a successful PHP process, scheduler invocation, provider request, or validator run. The central production question is:

Can an independent observer prove that the correct English and Spanish edition for the intended date was generated once, validated against a defined evidence policy, atomically published, consistently served by every public host and cache layer, and recoverable without repeating paid or externally visible work?

The project context describes a system intended to maintain one active process, an immutable target date, a monotonic revision sequence, one current provider operation, a single transition writer, shared bilingual state, atomic publication, and safe stale-worker recovery. It also specifies strict privacy constraints and the absence of direct access to code, infrastructure, databases, credentials, or private telemetry.

The recommended architecture has five mutually reinforcing controls:

  1. A machine-verifiable edition manifest becomes the publication proof. It binds the target date, publication event, English and Spanish artifact hashes, evidence-policy result, revision, release, and site instance.
  2. Compare-and-swap state transitions with leases prove that only the current revision and operation may advance the workflow. Old workers may finish computation but cannot commit state or publish.
  3. An append-only, hash-chained event ledger explains every reservation, provider interaction, retry, reconciliation, validation result, publication preparation, publication commit, correction, quarantine, and operator action without retaining prompts or provider bodies.
  4. Read-only production synthetics test the same public paths readers use while being structurally incapable of starting research, composition, publication, or paid provider work.
  5. A release-proof bundle records deterministic tests, concurrency races, crash matrices, package checksums, origin and browser smoke tests, scheduler proof, synthetic results, canary observations, and rollback readiness for every deployed release.

These controls close the component-test/production-assurance gap because they test relationships that syntax checks and isolated validators cannot establish: scheduler-to-supervisor continuity, provider completion-to-reconciliation latency, state-to-artifact agreement, bilingual identity, release uniformity, host uniformity, cache freshness, and crash-safe idempotency.

Selected research topic. Because the uploaded project brief specifies a concrete topic, no cross-domain topic-ranking exercise is necessary. The selected topic is production observability and release verification for a bilingual, scheduled, AI-assisted publication pipeline.

Source basis. The architecture is grounded primarily in current official standards and first-party engineering guidance:

Primary sourceWhat it standardizes or studiesApplication to the Daily BriefLimitation or tension
OpenTelemetry specification and semantic conventionsCommon telemetry model, resource identity, traces, logs, metrics, and attributesCorrelate scheduler, provider, validation, publication, and status operations; distinguish service.version and service.instance.idA full collector and tracing backend may be excessive for constrained PHP hosting.
W3C Trace ContextInteroperable traceparent and tracestate propagationCarry one trace across HTTP scheduler callbacks, workers, origin requests, and internal provider adapters without embedding sensitive dataExternal trace headers are untrusted and must not contain personal or confidential information.
Prometheus metric guidanceMetric naming, base units, histograms, and label-cardinality disciplineLow-cardinality metrics for stage dwell, publication, locks, leases, retries, cache age, and recoveryNative histogram support may be limited in the chosen PHP stack; classic histograms are acceptable initially.
Google SRE WorkbookSLO documents, error budgets, alerting, and release policyConvert late, inconsistent, or unrecoverable editions into explicit reliability budgets and change controlsNumerical targets must be calibrated from actual reader expectations and baseline data, not copied mechanically.
RFC 9111HTTP cache freshness, validation, cache keys, and invalidationVerify that public status and publication pages are not stale or split across cache layersCorrect origin state does not guarantee every browser, CDN, or service worker displays current data.
OpenAI platform documentationProvider data controls, asynchronous/background behavior, usage, and API object lifecycleDesign bounded reconciliation and a separately budgeted provider probe without persisting provider bodies in observability systemsProvider modes and retention characteristics can change; implementation must verify the exact API and account policy in use.

The standards progression relevant to this design is:

timeline
    title Standards and implementation timeline
    2021 : W3C Trace Context Recommendation
         : Portable traceparent and tracestate propagation
    2022 : RFC 9111 published
         : Current HTTP caching and freshness rules
    2025 : OpenTelemetry semantic conventions expanded
         : Stable service instance and service version identity
    2026 : Daily Brief production-assurance program
         : Publication manifests, state CAS, synthetics, chaos proof

W3C Trace Context became a Recommendation in November 2021, RFC 9111 standardized the current HTTP caching model in June 2022, and OpenTelemetry now defines stable service identity attributes such as service.instance.id and service.version.

Explicit assumptions and unspecified preferences.

ItemWorking assumptionRequired owner decision
Editorial deadlineRepresented as configurable variable D; no deadline is assumedSelect deadline model, timezone, grace period, weekends, and holidays
Target dateEditorial calendar date in an explicitly configured publication timezoneConfirm whether the target follows America/Chicago, UTC, or another editorial timezone
StorageThe state store supports either transactional compare-and-swap or an equivalent file-lock/revision mechanismIdentify database, filesystem, object store, and atomic-operation guarantees
DeploymentMore than one release or instance may accidentally serve trafficConfirm host, CDN, load balancer, origin, and shared-storage topology
ProviderProvider operations have a durable external identifier retrievable after ambiguous failuresConfirm the exact provider endpoint, polling model, retention, and idempotency support
Evidence policyCounts and regional/corroboration requirements are configurableEditorial owner defines hard floors, desired targets, and exception policy
Spanish contentEnglish and Spanish must share one publication identity but may have different byte hashesConfirm whether Spanish is translation, independently composed, or independently validated
MonitoringEither OpenTelemetry or structured JSON can be addedChoose telemetry backend, retention, access controls, and paging system
CorrectnessAutomated evidence rules are necessary but cannot prove factual truthDefine human sampling, corrections, and editorial accountability
Public statusMust reveal only bounded operational informationApprove exact field allowlist and minimum update interval

The largest evidence gap is that no production measurements are available. Therefore, stage thresholds below are initial engineering limits, not claims about the system’s current latency. The first 30 days should measure normal distributions, after which thresholds should be recalibrated without weakening hard safety invariants.

Service definition, failure taxonomy, SLIs, SLOs, and error budgets

Reader-perspective service definition. A Daily Brief edition is successful only when all of the following are true for the target date:

DimensionReader-facing success criterionExample of misleading “green” status
AvailabilityCanonical English and Spanish edition routes and required artifacts are retrievableHTTP 200 serves yesterday’s cached edition
FreshnessThe published target date satisfies the editorial promise relative to configured deadline DToday’s route exists but points to an old target
CorrectnessThe edition passes hard schema, state, evidence, attribution, and publication-manifest validationFresh text contains unsupported claims or malformed citations
ConsistencySupervisor state, event ledger, publication pointer, artifacts, status endpoints, hosts, and caches agreeSupervisor says published, but the public package is absent
Evidence completenessThe edition meets hard floors for retained sources, selectable candidates, corroboration, and regional coverageComposition completed from insufficient or one-sided evidence
Bilingual parityEnglish and Spanish have the same target, publication event, revision, correction generation, and manifestEnglish is corrected while Spanish remains on the earlier event
RecoverabilityCrashes, ambiguous provider responses, stale leases, and partial publication are repaired within a bounded time without duplicate external workRetrying after a timeout starts another full research job
Operator safetyDiagnosis and recovery are bounded, idempotent, privacy-safe, and auditableAn operator “retry” button silently starts a second paid provider request

Availability, freshness, and correctness are independent. A page can be available but stale when a CDN, PHP cache, browser cache, or service worker returns a valid 200 response for an earlier revision. It can be fresh but incorrect when the target date is current but evidence validation was bypassed, regional requirements were missed, English and Spanish diverged, or unsupported claims passed through composition. RFC 9111 explicitly distinguishes response freshness from origin validity and recognizes that application-level mechanisms can still display old representations; therefore, HTTP success cannot substitute for edition identity and age checks.

Failure taxonomy.

Failure classConcrete examplesProof needed
Trigger failureCron absent, wrong timezone, CLI path changed, scheduler invokes old releaseHeartbeat age, expected-versus-actual schedule, scheduler release, target reservation event
Coordination failureStuck lease, overlapping cron, concurrent operator action, stale worker commitsLease history, CAS rejection, lock contention, winning reservation, revision sequence
Provider lifecycle failureLost provider ID, successful create with lost response, completion not consumed, poll after replacementStable operation identity, create-attempt event, reconciliation lookup, poll history
Progress failureStage dwell excessive, retries repeat without count improvement, retained evidence discardedStage-age histogram, attempts, evidence deltas, no-progress alert
Validation failureEvidence floor unmet, regional deficit, candidate not selectable, bilingual mismatchValidation result codes and count summary
Publication failurePartial write, failed rename, artifact absent, manifest mismatch, duplicate publicationPrepared/committed events, immutable content hashes, canonical pointer generation
Serving failureStale origin cache, CDN stale JSON, service worker stale, alternate-host split brainOrigin-versus-edge comparisons, Age, ETag, release and instance headers
Deployment failureCLI and web versions differ, two releases serve traffic, schema driftRelease inventory, schema version, instance/version observations
Recovery failureRepeated lease expiry, reconciliation loops, manual intervention, abandoned process still writableRecovery-duration metrics, quarantine event, stale-transition rejection
Editorial failureUnsupported claim, correction only in one language, incomplete regional representationEditorial review record, correction generation, parity and evidence outcomes

State and publication invariants. These are not error-budget objectives; they are correctness properties that every accepted transition and publication must satisfy.

InvariantRequired rule
Single logical processAt most one nonterminal process owns a target date and publication namespace
Immutable targettarget_date never changes after process initialization
Monotonic revisionEvery successful transition changes revision from r to exactly r+1
Current-operation uniquenessAt most one current provider or external-effect operation exists per process
Single transition writerA transition commits only when process ID, expected revision, lease owner, and operation identity all match
Stale-worker exclusionA stale or replaced worker may record an observation but cannot change current state or publish
Retention across retriesValid retained evidence survives composition, validation, and publication retries
Shared bilingual identityEnglish and Spanish artifacts reference the same publication_event_id, target, revision, and correction generation
Atomic public visibilityReaders see either the prior complete edition or the new complete edition, never a mixed package
Idempotent publicationRecommitting an already committed manifest with identical hashes is a no-op
Content-addressed artifactsArtifact names or manifests bind bytes to cryptographic hashes
Reconciliation before recreationAmbiguous provider or publication outcomes are reconciled before new external work begins

SLI definitions. Each SLI must be computed from authoritative machine events, edition manifests, or independent synthetics—not from a progress bar.

SLIDefinition
Publication freshnessobservation_time − effective_target_deadline, bounded below at zero; also report current_target_date − last_published_target_date in calendar days
Editions published by deadlinecount(editions committed by D + grace) / count(expected editions)
Active-process agenow − process_initialized_at for the current nonterminal process
Stage dwellnow − entered_current_stage_at; completed-stage duration is transition end minus start
Scheduler-heartbeat agenow − last_valid_scheduler_heartbeat_at
Provider completion-to-reconciliationprovider_reconciled_at − provider_completed_at, or lower-bound estimate when completion time is unavailable
Evidence completenessWeighted ratio of satisfied evidence rules; publishability requires every hard rule
Selectable-candidate countNumber of candidates passing extraction, relevance, recency, language, and source-safety criteria
Corroborated-candidate countCandidates supported by the configured number and diversity of independent sources
Regional representationCount and proportion of configured regions represented, with per-region minimum status
Bilingual parityFraction of probes where target, event ID, revision, correction generation, and manifest relationship agree
Status consistency across endpointsFraction of same-window observations whose process, target, revision, state, release, and publication identity agree
Status consistency across windowsFraction of sequential observations that are monotonic and do not regress without an explicit rollback/correction event
Canonical-host correctnessFraction of alternate-host requests redirected to the canonical origin and canonical requests served by the approved site identity
Artifact availabilityFraction of committed manifest artifacts retrievable and checksum-verifiable
Edition-hash agreementFraction of public artifacts whose observed hashes equal the committed manifest
Recovery timehealthy_recovery_verified_at − incident_or_failure_detected_at
Manual-intervention frequencyOperator mutation actions per edition and per rolling 30 days
Stale-transition rejectionRejected stale writes divided by attempted transitions; count is both a safety proof and a contention signal
Lock contentionFailed or delayed lock acquisitions divided by reservations
Repeated no-progress attemptsAttempts with unchanged stage outcome and zero useful evidence delta
Cache ageOrigin-generated timestamp age and HTTP Age, sampled separately by endpoint, host, and cache layer

Deadline models. The owner should choose one model and publish it as an editorial contract.

ModelObjective exampleBest fitRisk
Fixed local deadline“Edition for target T is committed by D(T) plus 15-minute grace”Readers expect a morning edition at a predictable timeRequires holiday, DST, and missed-day rules
Source-cutoff-relative“Edition is committed within 90 minutes of editorial source cutoff”Research cannot begin until a defined collection window closesLess intuitive to readers
Rolling freshness“A current edition is never more than 24 hours old”Continuous publication without a strict daily launch momentCan conceal repeated lateness near the rolling limit
Dual objectiveFixed deadline for initial edition plus correction latency SLOFormal daily edition with post-publication correctionsMore metrics and operational policy
Business-calendar objectiveDeadline applies only on configured publication daysWeekday-only or holiday-aware operationCalendar configuration becomes critical production state

Recommended initial SLO tiers. Targets should be reviewed after the baseline period. Google’s SRE guidance treats the error budget as 1 − SLO, recommends documenting measurement caveats, and uses budget exhaustion to control release velocity rather than to punish teams.

TierMeasurement window and initial targetError budgetExclusions and maintenanceAlerting and reporting
Reader-facing freshnessRolling 90 expected editions; 99% committed by selected deadline plus grace1% of expected editions; at 90 editions, 0.9 late editionsOnly predeclared no-publication days; maintenance does not exclude a reader-visible miss unless the editorial promise was changed in advanceWarning at deadline, page at deadline plus critical grace; weekly and quarterly review
Workflow progressRolling 28 days; 99% of stage observations below stage limit; no process above absolute maximum1% observation budget, but hard maximum violations always pageApproved load/chaos windows tagged before executionMulti-window burn alerts plus direct stuck-state alert
RecoveryRolling 90 days; 95% recovered within 15 minutes and 99% within 60 minutes5% and 1% respectivelyPlanned failover drills reported separately but not silently discardedPage for breached recovery timer; monthly incident distribution
Status consistencyRolling 28 days; 99.99% of paired public observations consistent0.01% paired-probe budgetOnly monitor defects proven by independent control probeImmediate page for identity or publication disagreement
Editorial evidenceRolling 90 editions; 98% meet desired evidence target; 100% meet hard publication floor2% may use approved exception; zero budget below hard floorExplicitly approved breaking-news exception with named editor and expiryTicket or warning for desired-target miss; block publication below hard floor
Bilingual parity100% commit-time parity; 99.99% public retrieval parityZero commit-time budget; 0.01% transport budgetNone for commit parity; verified monitor faults only for retrievalImmediate publication block before commit; immediate page after commit
Artifact integrity100% manifest/hash agreement for committed editionsZeroNoneImmediate page and quarantine
Operator safetyFewer than 2 mutating interventions per 30 editions; 100% operator actions auditedOne excess-intervention event triggers review; zero unaudited actionsApproved training environment onlyWeekly trend; page only for unsafe or unaudited mutation

A 99% deadline SLO over 90 expected editions permits only 0.9 late editions. One late edition therefore consumes approximately 111% of that period’s numerical budget:

xychart-beta
    title "Ninety-edition freshness budget consumption at a 99% SLO"
    x-axis "Late editions" [0, 1, 2, 3]
    y-axis "Error budget consumed (%)" 0 --> 350
    bar [0, 111, 222, 333]

This arithmetic shows why deadline-based services should combine a rolling SLO with a practical incident policy. A single late edition may exhaust the formal 90-edition budget, but the response should be a temporary reliability/change focus, not indiscriminate operational paralysis. Burn-rate alerts should be tuned to the objective and event frequency; Google’s guidance cautions that extremely high or low goals can make generic burn thresholds ineffective.

Initial stage limits. Before baseline measurements exist, configure stage-specific limits rather than one process timeout:

StageWarningCriticalAbsolute safety action
Initialization/reservation2 minutes5 minutesRelease expired reservation if no external effect began
Primary research20 minutes45 minutesReconcile provider before retry; quarantine after repeated ambiguity
Supplemental repair15 minutes30 minutesStop when hard attempt or cost ceiling is reached
Composition10 minutes20 minutesRetry composition from retained evidence; never restart research automatically
Final validation5 minutes10 minutesQuarantine invalid candidate package
Publication preparation2 minutes5 minutesRemove only unreferenced temporary files
Publication commit30 seconds2 minutesReconcile manifest, pointer, and ledger before any new commit
Cleanup5 minutes15 minutesCleanup failure must not unpublish a valid edition
Whole active process60 minutes120 minutesQuarantine and require bounded reconciliation

The rationale is operational separation: a provider stage may legitimately be much longer than a local state transition, whereas a two-minute publication commit almost certainly indicates a lock, storage, or partial-write problem.

Metrics, structured events, logs, and trace correlation

Metric design rules. Use prefix daily_brief_, SI/base units, counters for cumulative events, gauges for current state, and histograms for distributions. Prometheus recommends base units such as seconds and warns that every unique label combination creates a separate time series; unbounded values such as user identifiers must not be labels.

Counters answer “how many happened?” and never decrease except on process restart. Gauges answer “what is true now?” and may rise or fall. Histograms answer “how is duration or size distributed?” and permit SLO queries such as the fraction below a stage limit. Prometheus currently recommends native histograms when supported, while noting that library and exposition support varies; classic histograms are a sound initial choice for constrained PHP deployments.

Low-cardinality namespace.

MetricTypeAllowed labels and limitsMeaning
daily_brief_active_processGaugeenvironment ≤41 when a nonterminal process exists
daily_brief_target_lag_daysGaugeenvironmentCalendar-day lag between current expected target and last committed target
daily_brief_process_age_secondsGaugeenvironmentCurrent active-process age
daily_brief_stage_age_secondsGaugestage ≤10, environmentCurrent dwell of the active stage
daily_brief_stage_duration_secondsHistogramstage ≤10, result ≤5Completed-stage duration
daily_brief_supervisor_revisionGaugeenvironmentCurrent monotonic revision
daily_brief_active_operationGaugeoperation ≤8One-hot current operation class; never label with operation ID
daily_brief_provider_job_age_secondsGaugeprovider ≤3, operation_kind ≤4Age of the current durable provider job
daily_brief_provider_poll_eligibleGaugeprovider ≤3Whether polling is currently allowed
daily_brief_provider_polls_totalCounterprovider ≤3, result ≤8Poll results: pending, completed, failed, throttled, ambiguous, ineligible
daily_brief_attempts_totalCounterstage ≤10, outcome ≤8Attempt totals by stage/outcome
daily_brief_retained_candidatesGaugeenvironmentCurrently retained valid candidates
daily_brief_retained_sourcesGaugeenvironmentCurrently retained source records
daily_brief_selectable_candidatesGaugeenvironmentCandidates eligible for composition
daily_brief_corroborated_candidatesGaugeenvironmentCandidates meeting corroboration policy
daily_brief_region_countGaugeregion fixed allowlist ≤12Qualified items per configured region
daily_brief_publications_totalCounterresult ≤6, language ≤3Prepared, committed, no-op, corrected, failed
daily_brief_publication_artifact_mismatches_totalCountermismatch ≤8Missing, hash, event, target, language, pointer mismatch
daily_brief_stale_transitions_rejected_totalCounterstage ≤10, reason ≤6CAS or lease rejection of stale writes
daily_brief_lock_contention_totalCounterlock_scope ≤5, result ≤4Lock acquisition contention
daily_brief_lease_expiries_totalCounterstage ≤10Expired stage leases
daily_brief_scheduler_heartbeat_timestamp_secondsGaugescheduler ≤3, release_role ≤3Unix time of last valid scheduler heartbeat
daily_brief_scheduler_heartbeat_age_secondsGaugescheduler ≤3Derived scheduler age
daily_brief_cache_age_secondsHistogramlayer ≤5, endpoint_class ≤6, host_role ≤3Observed origin, CDN, browser, or service-worker age
daily_brief_status_mismatches_totalCounterdimension ≤10, endpoint_pair ≤8Cross-endpoint/window disagreement
daily_brief_bilingual_mismatches_totalCounterdimension ≤8Target, event, revision, correction, manifest mismatch
daily_brief_operator_actions_totalCounteraction ≤12, result ≤6Audited operator actions
daily_brief_process_quarantines_totalCounterreason ≤10Process quarantines
daily_brief_recovery_duration_secondsHistogramfailure_class ≤12, mode ≤4Detection-to-verified-recovery time
daily_brief_no_progress_attempts_totalCounterstage ≤10Retries with no useful count or state improvement
daily_brief_provider_cost_units_totalCounterprovider ≤3, operation_kind ≤4Provider usage in configured cost units
daily_brief_release_observationsGaugerelease_slot ≤3, component ≤4Count or presence of approved/current/previous release observations
daily_brief_site_instance_observationsGaugeinstance_slot ≤4, host_role ≤3Presence of expected versus unexpected instance identities

Cardinality budget. A practical initial budget is fewer than 2,000 active series for the service, fewer than 12 values for any label, and no label whose value is created per process, provider request, source, article, trace, browser, operator, or reader. process_id, operation_id, event_id, publication hashes, provider request IDs, URLs, source domains, exception messages, and worker IDs belong in structured events or trace attributes, not metric labels.

Individual incidents are linked through:

  • a low-cardinality alert label such as stage="publication";
  • an exemplar containing a trace ID where the metrics backend supports exemplars;
  • a dashboard link that queries the event store by incident time and pseudonymous process reference;
  • a trace or event correlation ID stored outside the metric label set.

Structured state-transition event schema.

FieldForm and privacy rule
schema_versionFixed small integer
event_idRandom UUID/ULID; internal only or truncated/HMAC-pseudonymized publicly
previous_event_hashPrior ledger hash for the process or global stream
process_idInternal opaque ID; public reports use an HMAC-derived short reference
target_dateISO date
from_state, to_stateEnumerated states
prior_revision, new_revisionIntegers; successful transition requires new=prior+1
operation_idOpaque external-effect identity; redact or pseudonymize in broad-access logs
site_instance_idOTel-compatible opaque instance identity
releaseImmutable build or deployment identifier
trigger_typescheduler, worker, operator, reconciler, release_probe
worker_idEphemeral internal identity; never public
expected_revisionRevision used for CAS
result_codeBounded enum such as committed, stale_revision, lease_lost, no_op
error_classRedacted enum, never raw exception text
started_at, ended_at, duration_msUTC timestamps and duration
external_effectBoolean
reconciliation_requiredBoolean
evidence_before, evidence_afterCounts only: retained, selectable, corroborated, regions
publication_referenceManifest ID and content hash, not a private path
trace_id, span_idOpenTelemetry/W3C correlation values
event_integrity_hashHash or HMAC over canonical event fields and previous hash

Sample redacted event.

{
  "schema_version": 1,
  "event_id": "evt_01K1EXAMPLE8R7Z",
  "previous_event_hash": "sha256:91a4…f208",
  "process_id": "proc_internal_opaque",
  "target_date": "2026-08-01",
  "from_state": "research_reconciling",
  "to_state": "evidence_ready",
  "prior_revision": 18,
  "new_revision": 19,
  "operation_id": "op_pseudonym_f3a9",
  "site_instance_id": "site_7c2f",
  "release": "2026.08.01+8ae73a",
  "trigger_type": "reconciler",
  "worker_id": "worker_ephemeral_12",
  "expected_revision": 18,
  "result_code": "committed",
  "error_class": null,
  "started_at": "2026-08-01T11:14:03.120Z",
  "ended_at": "2026-08-01T11:14:04.774Z",
  "duration_ms": 1654,
  "external_effect": false,
  "reconciliation_required": false,
  "evidence_before": {
    "retained_candidates": 9,
    "selectable_candidates": 5,
    "corroborated_candidates": 3,
    "represented_regions": 3
  },
  "evidence_after": {
    "retained_candidates": 14,
    "selectable_candidates": 9,
    "corroborated_candidates": 7,
    "represented_regions": 5
  },
  "publication_reference": null,
  "trace_id": "4bf92f3577b34da6a3ce929d0e0e4736",
  "span_id": "00f067aa0ba902b7",
  "event_integrity_hash": "hmac-sha256:05d7…b0ce"
}

Append-only privacy-preserving ledger. Canonicalize the event JSON, omit the integrity field, and compute:

event_integrity_hash =
    HMAC-SHA256(audit_key,
        previous_event_hash || canonical_event_bytes)

The ledger stores only classifications, timestamps, counts, hashes, and opaque identifiers. It must never contain prompts, article text, source excerpts, provider response bodies, credentials, full private paths, raw account identifiers, reader information, cookies, IP addresses, or unredacted exceptions. Store a provider object identifier only when operationally necessary, encrypt it at rest, and expose only a pseudonymous reference to normal dashboards.

The ledger should be append-only at the application level and periodically checkpoint its current head hash to a separately protected location. A snapshot is a performance optimization; the ledger and immutable publication manifests provide reconstruction evidence. Because ledger and snapshot writes may fail independently, every transition follows a recoverable protocol:

  1. calculate the proposed transition against expected revision;
  2. append a transition_intent or transactional event;
  3. commit the new snapshot using CAS;
  4. append transition_committed;
  5. on restart, reconcile any unmatched intent or snapshot revision;
  6. never infer that external work must be repeated merely because the final audit event is missing.

Where a database supports an atomic transaction, the snapshot and event row should commit together. Where it does not, the protocol above makes ambiguity explicit and recoverable.

OpenTelemetry trace design. Use one trace per scheduler invocation, operator recovery action, or synthetic session, with linked traces for provider operations that outlive the initiating process. Recommended spans are:

daily_brief.scheduler.tick
  daily_brief.supervisor.reserve
    daily_brief.provider.create
    daily_brief.provider.poll
    daily_brief.provider.reconcile
    daily_brief.evidence.validate
    daily_brief.research.supplement
    daily_brief.compose
    daily_brief.final_validate
    daily_brief.publish.prepare
    daily_brief.publish.commit
    daily_brief.cleanup
  daily_brief.status.render

Set OTel resource attributes including:

service.namespace = "internationalintelligence"
service.name = "daily-brief"
service.instance.id = "<opaque per-instance ID>"
service.version = "<immutable release>"
deployment.environment.name = "production"

OpenTelemetry defines service.instance.id as unique for each concurrent instance of the same logical service and service.version as the exact version identifying the artifact. These attributes directly support multiple-instance and deployment-drift detection.

Use W3C traceparent for HTTP propagation. Do not place process IDs, source information, account details, or personal information in tracestate; the W3C specification expressly warns against personal or sensitive trace data. Treat incoming trace headers as untrusted, regenerate or sanitize context at the public trust boundary, and preserve only approved internal correlation.

For non-OTLP JSON logs, use top-level trace_id, span_id, and trace_flags; this matches OpenTelemetry’s stable compatibility guidance.

Constrained-hosting alternative. If a collector and tracing backend are not feasible, emit one structured JSON line per event to an append-only daily file or remote log sink:

{
  "ts": "2026-08-01T11:14:04.774Z",
  "severity": "INFO",
  "event_name": "daily_brief.transition",
  "trace_id": "4bf92f3577b34da6a3ce929d0e0e4736",
  "span_id": "00f067aa0ba902b7",
  "process_ref": "p_6C9A1D",
  "target_date": "2026-08-01",
  "revision": 19,
  "stage": "evidence_ready",
  "result": "committed",
  "release": "2026.08.01+8ae73a",
  "site_instance": "site_7c2f",
  "duration_ms": 1654,
  "error_class": null
}

A periodic exporter can derive counters and gauges from these events. The essential requirement is stable semantics and correlation, not a particular observability vendor.

Causal model.

flowchart TD
    A[Scheduler heartbeat] --> B{Current target reserved?}
    B -- No --> C[Create one process and immutable target]
    B -- Yes --> D[Load current revision and operation]
    C --> E[Reserve stage using CAS and lease]
    D --> E
    E --> F{External operation already exists?}
    F -- Yes --> G[Poll or reconcile same operation]
    F -- No --> H[Create operation and persist identity]
    H --> G
    G --> I[Validate and retain evidence]
    I --> J{Hard evidence floor met?}
    J -- No, repair allowed --> K[Supplement only deficits]
    K --> I
    J -- No, limits reached --> L[Quarantine or editorial exception]
    J -- Yes --> M[Compose from retained evidence]
    M --> N[Final bilingual validation]
    N --> O[Prepare immutable artifacts and manifest]
    O --> P[Atomically switch canonical publication pointer]
    P --> Q[Verify public EN and ES hashes]
    Q --> R[Close process and retain audit proof]

    S[Stale worker] --> T[Expected revision mismatch]
    T --> U[Reject transition; no external retry]
    V[Lost response] --> W[Mark reconciliation required]
    W --> G
    X[Stale cache] --> Y[Synthetic observes old event or Age]
    Y --> Z[Purge or revalidate cache; never republish]

Every control in the diagram follows the same contract:

ControlFailure detectedDuplicate-work preventionEvidence emittedSafe actionFalse-positive or operational risk
CAS revision checkStale worker or concurrent writerLosing writer cannot commitStale-transition event and counterReload and reconcileClock-independent; low false-positive risk, but schema bugs can reject valid work
Durable operation identityLost provider ID or ambiguous createReconcile existing operation before recreateOperation-created/reconciled eventPoll/retrieve current operationProvider retention may expire before reconciliation
Evidence retentionComposition or publication retryRetry downstream stage without new researchEvidence hash/count deltaReuse retained setCorrupt retained data must be detected by checksum
Immutable package and pointer switchPartial or mixed publicationExisting package is reused by hashPrepared/committed manifest eventsComplete or roll back pointerFilesystem atomicity may differ across mounts
Bilingual shared manifestLanguage divergenceOne commit owns both languagesManifest parity resultBlock or revert commitTranslation completion may legitimately lag before commit, never after
Synthetic identity comparisonCache, host, release, or instance splitRead-only; no workflow mutationProbe observationPurge/revalidate/escalateMonitoring node may see a regional cache anomaly
QuarantineRepeated ambiguous or unsafe stateStops automated retries and external effectsQuarantine reason/eventHuman reconciliationOveruse can turn recoverable issues into manual toil

Dashboards and alert catalog

Dashboard: Editorial Freshness. The first screen should answer whether readers have the right edition, not whether the worker is busy.

PanelRequired display
Current expected targetEditorial-calendar target and configured timezone
Last committed targetTarget, publication event, revision, commit time
Target lagCalendar days and deadline-relative minutes
Publication deadlineModel, D, grace, holiday rule
Recent successOn-time percentage for 7, 28, and 90 editions
Error budgetRemaining freshness budget and projected exhaustion
Evidence completenessHard-floor pass plus desired-score ratio
Evidence countsRetained, selectable, corroborated, represented regions
Bilingual parityEnglish/Spanish target, event, revision, correction generation
Edition integrityManifest ID and current artifact verification state
Correction statusCurrent correction generation, language coverage, age
Public-serving stateCanonical, alternate host, origin, and CDN observed edition IDs

Color must not be driven by HTTP 200. “Green” requires current target, valid manifest, both languages, expected hashes, and bounded public age.

Dashboard: Workflow and Provider.

PanelRequired display
Process identityBounded process reference, immutable target, initialized time
State and revisionCurrent state, revision, last transition, transition writer
Stage dwellCurrent age versus warning/critical limit and recent percentile
LeaseOwner class, expiry, renewal count; no raw worker identifier in broad view
Active operationOperation class and pseudonymous operation reference
Provider lifecycleCreate status, durable identifier present, provider state, age
PollingLast poll, next eligible poll, result, backoff, reconciliation requirement
AttemptsPer-stage attempts and no-progress attempts
Evidence progressionCounts over time rather than current count alone
DeficitsMissing corroboration, candidates, regions, or source diversity
RetentionHash of retained evidence set and whether downstream retries reused it
Stale writesRecent stale-transition rejections with revision context
Locks and leasesContention, expiry, and overlap trends
CostBudget used, projected ceiling, and blocked-operation status

Dashboard: Scheduler, Origin, Cache, and Release.

PanelRequired display
SchedulerLast heartbeat, expected interval, missed runs, scheduler release
CLI/web versionsCurrent CLI release, web release, schema version
Site instancesUnique instance IDs by host and observation point
Releases serving trafficApproved, previous, unexpected; observations over time
Canonical hostRedirect chain, scheme, host, and mutation-gate result
Origin statusOrigin event, revision, generated timestamp
Cache statusAge, ETag, Last-Modified, cache-control, revalidation result
CDNEdge locations sampled and edition identity by edge
Service workerScript version, controlled-client version, cache generation
ArtifactsManifest, English artifact, Spanish artifact, checksums
StorageWritable staging area, atomic-rename self-test, free capacity
State backendRead/write doctor, schema compatibility, lock/CAS health

Alert catalog. Threshold variables are configurable:

S = expected scheduler interval
D = editorial deadline
G = publication grace
M = maximum active-process age
Tstage = critical stage threshold
Cprovider = configured provider cost ceiling
AlertCondition and evaluationSeverityLikely causes and false-positive controlsRequired context and first actionEscalation, safe automation, and prohibited automation
No scheduler heartbeatWarning at age >2S+jitter for 2 evaluations; critical at >3S+jitterSEV-2 if target at risk; otherwise SEV-3Cron disabled, wrong path, old CLI release, host outage. Suppress only for declared maintenance; account for scheduler jitterShow last heartbeat, expected invocation, CLI/web release, current target. Run read-only scheduler doctorEscalate to hosting when cron never executes. Safe: one idempotent supervisor tick if no active reservation and policy permits. Never start provider work directly from the monitor
Active process too oldprocess_age > M for 5 minutesSEV-2Stuck stage, lost operation, dead worker. Exclude intentionally quarantined process from paging but keep visibleRead process report; identify stage, lease, operation, last progressSafe: enqueue reconciliation only. Never abandon or create replacement automatically while an external effect may exist
Stage dwell too longstage_age > Tstage for 2 evaluationsSEV-2/3 by stageSlow provider, lock, filesystem, validation loop. Use stage-specific thresholds and baseline percentilesInspect last event, lease, next eligible poll, attempt and evidence deltasSafe: poll if eligible or expire a lease with no external effect. Never repeat research merely because a timer elapsed
Provider completed but not consumedProvider terminal-complete observation and no reconciliation transition within 10 minutesSEV-2Poller absent, lost operation linkage, stale lease, deployment mismatch. Require two consistent completion observationsShow operation ref, completion observation time, current process/revisionSafe: reconciliation job for same operation. Never create a new request
Repeated lease expiryAt least 3 expiries for same process/stage in 30 minutesSEV-2Worker crash, runtime timeout, lease too short, clock anomalyShow lease durations, renewals, worker release, process stateSafe: quarantine after third expiry. Never lengthen lease indefinitely or run two workers
Evidence counts not improvingThree attempts or 20 minutes with zero increase in selectable/corroborated counts while deficit remainsSEV-3; SEV-2 near deadlineRepeated poor source results, validator regression, full-research loop. Exclude attempts intentionally marked “validation only”Show count timeline, deficits, retained evidence hash, attempt classesSafe: switch to deficit-targeted supplementation or quarantine. Never discard retained evidence automatically
Target overdueWarning at D; critical at D+G; SEV-1 at configured reader-impact ceilingSEV-2, possibly SEV-1Scheduler, workflow, provider, validation, publication, servingShow target, last committed edition, current stage, recovery ETA bandSafe: page and freeze nonessential deploys. Never publish an invalid or partial edition to satisfy freshness
Supervisor published but artifact absentState says committed/published but manifest or required artifact fails two independent checksSEV-1Partial write, wrong path, permissions, deleted file, storage splitShow manifest, pointer, expected hashes, origin versus edge resultSafe: point back to prior known-good complete manifest if atomic rollback is proven. Never synthesize missing language content
Artifact exists but supervisor is not publishedComplete prepared package exists but state remains precommit for more than 2 minutesSEV-2Crash between preparation and state/pointer commitVerify package hash, target, revision, ledger intentSafe: reconcile and commit only if exact expected manifest matches. Never infer validity from file existence alone
English and Spanish event IDs differAny committed or public paired observation differs for two probesSEV-1Split publication, stale language cache, correction applied to one sideShow both event IDs, targets, revisions, hashes, cache agesSafe: revert both to last shared manifest or purge verified stale cache. Never rewrite one language alone
Canonical and alternate hosts show different site instancesTwo consecutive paired probes observe incompatible instances or releasesSEV-1/2DNS drift, alternate origin, split deployment, host-header routingShow resolved endpoints, redirect chain, site/release headersSafe: force alternate host to redirect at edge. Never permit mutations on the alternate host
Public status older than origin statePublic generated/event revision behind origin beyond cache TTL plus 2 minutesSEV-2CDN cache, PHP cache, service worker, incorrect cache keyCompare origin and public ETag, Age, event, revisionSafe: targeted purge or forced revalidation. Never republish the edition
Multiple releases serve trafficMore than one release observed for 10 minutes outside declared canarySEV-2; SEV-1 when schemas differPartial deployment, stale PHP workers, multiple originsShow release-by-host/instance and schema versionsSafe: remove unexpected instance or complete rollback. Never allow both releases to mutate state
Repeated operator interventionMore than 2 mutations on one process or more than 3 interventions in 7 daysSEV-3/problem-managementAutomation gap, unclear runbook, recurring storage/provider issueShow action types, outcomes, operator-independent recurrenceSafe: open reliability problem and freeze risky changes. Never automate the previously manual action without idempotency proof
Lock contention spikeMore than 10% of reservations contend over 15 minutes or five consecutive failuresSEV-3/2Overlapping cron, hung writer, dual releases, slow state backendShow contenders by trigger class and release, not raw worker IDsSafe: suppress duplicate scheduler ticks and reconcile lock owner. Never delete a live lock without lease/revision proof
Stale-transition rejection spikeMore than 20 in 15 minutes or more than 5/minuteSEV-3/2Old release, overlapping workers, replaying queue, short leasesShow expected/current revisions, stages, releasesSafe: stop old worker population. Never weaken CAS checks to clear the alert
Provider cost budget nearing limit80% monthly/daily ceiling warning; 95% criticalSEV-3/2Retry storm, repeated research, larger-than-expected workloadShow operations by class, reconciliations, cost per editionSafe: block new primary/supplemental requests while allowing poll/reconcile and local completion. Never cancel completed work or delete operation IDs automatically
Repeated full research despite retained evidencePrimary-research attempt count >1 while retained evidence is nonzero and no explicit invalidation event existsSEV-2Retry path restarts entire pipeline, retention bugShow retained-set hash and attempt historySafe: block new research and resume downstream stage. Never erase retained data to make the state “clean”
Publication correction applied to one languageCorrection generation or event differs after correction windowSEV-1Language-specific deployment/cache/pointer failureShow prior/current shared manifests and language observationsSafe: restore last shared generation or complete the already validated pair atomically. Never expose a one-language correction
Publication/file hash mismatchPublic bytes differ from manifest on two independent fetchesSEV-1Corruption, stale file, wrong cache object, unauthorized changeShow manifest hash, observed hash, host/layer, ETagSafe: remove corrupted generation from canonical pointer. Never “fix” the manifest to match unverified bytes
Canonical mutation gate failureAlternate host or public synthetic route reports mutation could reach application writerSEV-1Webserver rule drift, host validation regressionShow method, host, edge decision, releaseSafe: disable mutation routes or enforce canonical host at edge. Never test with real credentials or a live mutation
Scheduler/web release driftCLI release differs from canonical web release longer than deploy graceSEV-2Cron invokes old path, incomplete deploymentShow CLI, web, schema, site instanceSafe: point scheduler to approved release after doctor test. Never execute migration or workflow advancement blindly

Alert design principle. Alerts should page on reader impact, imminent deadline impact, violated hard invariants, or inability to recover—not on every retry or provider pending status. Multi-window burn alerts suit high-volume probe SLIs; direct state alerts are necessary for once-per-day publication events because a single miss can consume an entire formal budget.

Deterministic, integration, concurrency, and chaos test architecture

Test-layer matrix.

LayerMethodFailures detectedDuplicate-work protection provedEvidence artifactOperational risk
Pure state-model testsTable-driven state transition testsIllegal state transitions, target mutation, revision skipsTransition preconditionsMachine-readable invariant reportLow; model can diverge from implementation
Property-based invariant testsGenerate random valid/invalid event sequencesRare interleavings and sequence edge casesIdempotency and stale-write rejectionSeed, minimized failing sequenceTest generator may omit real storage behavior
Deterministic provider fixturesNo-network adapter with scripted accepted/pending/completed/failed/ambiguous outcomesLost IDs, polling errors, completion not consumedSame operation reconciledFixture transcript excluding contentFixture semantics can lag provider changes
Multi-process racesBarrier-controlled worker processes against real test storeDual reservations, lock races, revision conflictsExactly one winning writerRace schedule and final ledgerFlaky unless synchronization is deterministic
Crash injectionKill after every persisted or external-effect boundaryPartial events, snapshots, artifacts, pointer updatesReconciliation before recreationCrash-point matrixRequires isolated test storage
Storage partial-write testsFaulting filesystem/database adapterTruncated files, failed fsync/rename, half transactionsImmutable temp and pointer protocolChecksums and recovery transcriptMust not run on production storage
Stale-worker and lease testsPause worker past lease, then resumeLate commit, old provider resultCAS and operation matchingRejection eventClock simulation must be controlled
Scheduler overlap/missed-run testsSimultaneous ticks and skipped schedule slotsDuplicate process, absent catch-upIdempotent target reservationScheduler event sequenceSchedule model must handle DST
HTTP cache testsOrigin, reverse-proxy, and mock-CDN layersIncorrect cache key, stale status, missing invalidationPurge/revalidation without republishHeaders and body identity comparisonCache behavior varies by provider
Service-worker testsBrowser automation with old/new worker generationsClient-side stale status/artifactsVersioned cache namespacesBrowser trace and worker versionBrowser-specific timing
Browser multi-tab testsTwo tabs on old/new revisions; background throttlingRegressing status, duplicate UI action, stale tabUI actions carry expected revision and idempotency keyBrowser event logHeadless behavior may differ from mobile
Offline/online testsDisconnect during poll/status/publication viewStale UI treated as live, retry stormsClient only re-reads statusNetwork traceDoes not test server failure
Bilingual testsPairwise manifest and semantic-rule checksTarget/event/correction mismatchOne bilingual publication transactionPair-validation reportSemantic translation quality still needs editorial review
Package safetyClean extraction, traversal/symlink rejection, checksums, byte comparisonUnsafe ZIP, hidden files, modified buildRelease identified by manifest/hashPackage inventory and hashesPlatform permissions can alter metadata
Loopback HTTP smokeServe release locally and exercise canonical routesPHP bootstrap/routing/header errorsNo provider adapter enabledHTTP transcriptDoes not prove external DNS/CDN
Production syntheticsRead-only external probesDeployment, scheduler, cache, host, artifact problemsNo mutation capabilitySigned observation bundleRegional false positives
Controlled provider probeSeparate state namespace, explicit budgetProvider authentication/connectivityCannot write publication stateProbe status and costPaid call and provider retention implications

Deterministic no-network end-to-end proof. Implement this as seven phases covering the twelve required lifecycle events.

PhaseScenario and injected outcomeRequired assertions
Initialization and reservationInitialize target T; race two research reservationsExactly one process ID; target immutable; initial revision known; exactly one winning reservation; loser receives stale/conflict result; no network adapter invoked
Primary research and partial evidenceFixture simulates accepted operation, background completion, and partial but valid evidenceOne durable operation ID; operation persisted before polling; valid evidence retained; evidence hash recorded; revision strictly increments by one; provider create count is exactly one
Supplemental repairFixture adds only missing corroboration and regionsSupplemental attempt targets explicit deficits; retained evidence remains byte-identical; selectable/corroborated/region counts improve; no second primary research call
Composition failure and retryFirst composition fixture fails deterministically; stale worker later submits old result; second composition succeedsComposition failure changes state without discarding evidence; retry uses same retained-set hash; primary and supplemental call counts do not increase; stale worker is rejected by expected revision; revision never regresses
Final validationEnglish/Spanish package passes schema, evidence, and parity validationBoth languages bind to same target and proposed publication event; language-specific content hashes may differ; manifest relationship and correction generation agree; hard evidence floor passes
Interrupted publication and atomic recoveryWrite temporary package and ledger intent, then crash before or during pointer switch; restart reconcilerReaders continue seeing prior complete edition or new complete edition, never a mixed pair; corrupt/uncommitted temp package is not public; recovery reuses prepared package when hash matches; publication hash remains stable
Publication, cleanup, and duplicate no-opCommit shared manifest, verify public artifacts, run cleanup, then repeat publication commandOne committed publication event; English/Spanish event IDs equal; artifact hashes equal manifest; cleanup removes only unreferenced temporary data; duplicate publication returns no-op, changes no bytes, revision, pointer, event ID, or external-call count

Global assertions.

count(distinct process_id for target T) = 1
target_date(process) remains T for all events
new_revision = prior_revision + 1 for every committed transition
provider_primary_create_count = 1
winning_reservation_count per stage/revision = 1
retained_evidence_hash before composition failure =
    retained_evidence_hash after composition retry
stale_transition_commit_count = 0
stale_transition_rejection_count >= 1
publication_manifest_hash before duplicate =
    publication_manifest_hash after duplicate
english.publication_event_id = spanish.publication_event_id
network_socket_attempt_count = 0

Enforce the final condition at the operating-system or test-runtime boundary, not merely with a mock: disable DNS and outbound sockets, make the provider adapter throw on any network attempt, and assert the adapter’s call transcript contains only deterministic fixture operations.

Concurrency race suite.

RaceControlled interleavingPass criterion
Cron versus cronBoth load no active process before either reservesOne process is created; one reservation wins
Cron versus operator advanceBoth read revision rOne transition commits at r+1; loser reloads
Poller versus lease replacementOld poller pauses; new worker acquires leaseOld result cannot commit
Composition retry versus late original resultRetry succeeds before original worker resumesLate original result rejected without state change
Two publication workersBoth prepare same or different bytesSame bytes yield one commit and one no-op; differing bytes yield one commit and one quarantine/conflict
Correction versus cache purgeCorrection commits while purge startsPurge affects cache only; manifest identity remains authoritative
Old release versus new releaseBoth attempt transition under compatible or incompatible schemaOnly approved release/schema may mutate; old release rejected
Cleanup versus public readCleanup scans while readers fetch current artifactReferenced generation remains available
Cleanup versus rollbackRollback marks previous generation current during cleanupBoth current and rollback-safe generations are protected
Scheduler tick during quarantineScheduler sees overdue target and quarantined processNo replacement process or provider call is started automatically

Chaos matrix.

Injection pointExpected safe behavior and invariantObservable metric and audit eventRecoveryPass/fail criterion
Kill worker after provider acceptanceDurable operation identity survives; no second createProvider age remains; external_effect=true, reconciliation_required=true eventNew worker polls/retrieves same operationExactly one provider create
Lose network response after successful createOutcome marked ambiguous, not failedAmbiguous create result and reconciliation counterLookup/reconcile by idempotency or durable request referenceNo duplicate create; otherwise quarantine
Delay poll beyond lease expiryReplacement may poll; old worker cannot commitLease expiry plus stale rejectionCurrent lease owner reconciles operationOne committed result
Return old provider result after process replacementResult rejected unless process/operation/target match current stateStale transition and old-operation eventArchive observation; do not applyCurrent process unchanged
Make publication directory unwritableNo public pointer changesPublication failure counter, permission error classRepair permissions, rerun preparation from validated packagePrior edition remains complete
Corrupt temporary packageChecksum validation fails before commitArtifact mismatch and quarantine eventRebuild from retained validated inputsCorrupt bytes never become canonical
Serve stale JSON through mock CDNSynthetic detects old event/revision and excessive ageCache-age histogram and status mismatchRevalidate or purge exact keyNo workflow retry or republication
Run two releases concurrentlyUnexpected release cannot mutate or publishRelease observation and stale/schema rejectionDrain old release or roll back newOne writer release only
Roll system clock backwardMonotonic-duration calculations remain valid; event wall time anomaly flaggedClock-skew event; duration does not become negativeUse monotonic clock for leases/durations; authoritative UTC for reportingNo premature lease or target regression
Remove one bilingual artifactManifest verification fails; pair treated unavailable/inconsistentBilingual/artifact mismatchRestore exact artifact or revert shared pointerNever serve “healthy” pair
Fail ledger write after snapshot updateReconciler detects snapshot revision without matching committed eventAudit-gap eventAppend recovery event referencing snapshot hashNo duplicate stage execution
Fail snapshot update after ledger writeIntent remains unmatched and visiblePending-transition/reconciliation metricReapply CAS if still valid or mark intent abortedNo skipped revision or external repeat
Restart during publication renamePublic pointer resolves to old or new complete manifestPublication reconciliation eventVerify pointer and package; finalize ledgerNo mixed package
Trigger cron and operator action simultaneouslyCAS chooses one transition; loser reports conflictLock/CAS metrics and two audited trigger eventsLoser reloads and takes no external actionExactly one state change
Provider completes after quarantineCompletion is recorded but not automatically consumed into an invalid processQuarantined-completion eventExplicit reconciliation may reuse or abandon according to policyNo publication from quarantined state
CDN purge fails partiallyOrigin remains correct; edge inconsistency visiblePer-edge mismatch observationsRetry bounded targeted purge; escalate CDNNo republish and no global unbounded purge loop

Safe-ZIP and package verification. A release package test must:

  1. extract into a new empty directory;
  2. reject absolute paths, .. traversal, symlinks, devices, duplicate normalized names, and case-colliding names;
  3. enforce file-count and uncompressed-size ceilings;
  4. verify an allowlisted inventory and manifest before execution;
  5. run syntax and schema checks against extracted bytes;
  6. compare package hashes byte-for-byte with the approved build;
  7. start a loopback web server with provider networking disabled;
  8. verify that no runtime-generated secret, cache, log, private source, or credential file is present.

Production synthetic monitoring and incident response

Read-only synthetic contract. Synthetic monitoring must be structurally incapable of becoming a trigger source:

  • Synthetic agents receive no scheduler, operator, provider, publication, cache-purge, or database credentials.
  • They use only GET, HEAD, and a special edge-only mutation-gate probe.
  • Public handlers do not interpret user agents, query strings, headers, or probe paths as workflow triggers.
  • Scheduler execution is allowed only through CLI or an authenticated internal channel, never ordinary public HTTP.
  • The monitor’s X-Synthetic-Read-Only: 1 header is informational, not an authorization control.
  • A dedicated route such as /_assurance/mutation-gate tests host/method policy at the webserver or edge and terminates before application bootstrap. It never calls a real mutation endpoint.
  • Synthetic state is stored in the monitoring system only to compare successive revisions and event IDs.
  • Rate and response-size limits protect origin and CDN resources.
  • Synthetic requests use no reader identifiers, cookies, or personal data.

Synthetic suite.

CheckProcedure and success conditionFailure detectedEvidence and safe actionFalse-positive control
Canonical redirectRequest HTTP, HTTPS alternate, www, and configured aliases; require bounded redirect to exact canonical scheme/host/pathHost drift, redirect loops, insecure canonicalizationRedirect transcript; fix edge ruleProbe from two resolvers before paging
Alternate-host mutation rejectionSend an unauthenticated POST to edge-only guard route on alternate host; require 403/405/421 before PHP writer bootstrapAlternate host can reach mutation planeEdge decision header; disable route or force redirectRoute must be guaranteed side-effect-free
Public status availabilityGET bounded public status; require schema-valid response and allowed fields onlyEndpoint outage or accidental secret exposureSchema/privacy validator resultRetry from second region
Status freshnessCompare generated_at, event, and revision age with configured TTLStale origin/CDN/PHP cacheHeaders and identity; purge/revalidateCompare direct origin control probe
Revision monotonicityPersist last observed revision per process/event; reject unexplained decreaseSnapshot rollback, stale cache, split instanceObservation sequenceAllow only explicit rollback event with new publication generation
English/Spanish identity parityFetch both statuses/manifests in one windowSplit bilingual statePaired observationRepeat with cache bypass and origin
Artifact availabilityHEAD then conditional GET current manifest artifactsMissing files, wrong route, truncated objectHTTP metadata and byte countVerify from origin and public edge
Edition hashesStream and hash artifacts; compare with manifestCorruption, stale object, wrong artifactObserved/expected hashesTwo independent downloads
Cache headersValidate ETag, Last-Modified, Cache-Control, Vary, Age, and conditional 304 behaviorUnsafe or ineffective cachingHeader reportEvaluate by endpoint class
Release consistencyRead bounded X-Service-Version or status field from multiple paths and timesMultiple releases, CLI/web drift where exposedRelease observationsRespect declared canary window
Site-instance consistencyRead opaque X-Site-Instance from canonical and alternate observationsMultiple origins or split brainInstance matrixMultiple instances may be valid only if explicitly configured and share state
Scheduler heartbeat ageRead bounded heartbeat age/status, not internal path or commandMissed cronHeartbeat observationAccount for schedule and jitter
Public versus originCompare event, revision, target, release, and generated timeCache divergencePairwise diffOrigin probe is authenticated only to the monitoring plane, read-only
Service-worker versionBrowser synthetic verifies active worker and cache generationOld client cache controls pageBrowser traceTest fresh profile and long-lived profile
Browser multi-tabOpen old tab, publish fixture only in staging/canary, observe newer status in second tabRegressive UI or stale tab actionBrowser timelineProduction version limited to read-only observation

RFC 9111 requires cache behavior to preserve HTTP semantics but also allows cached responses to remain reusable according to freshness and validation rules. The synthetic therefore validates both headers and edition identity; a plausible cache header alone is insufficient.

Controlled provider probe. This is optional and separate from the normal synthetic suite. It must use:

  • a separate provider project or key with the minimum possible permissions;
  • a separate state namespace that cannot reference or write a Daily Brief process;
  • an explicit per-call and monthly budget;
  • a deterministic, non-sensitive test input;
  • no publication, evidence, composition, or scheduler integration;
  • a low frequency, such as once per day or after provider-configuration change;
  • an immediate circuit breaker after one failure;
  • retention settings reviewed against the exact provider mode.

OpenAI documents that some API modes retain application state and that background mode requires temporary stored state for polling, so a controlled probe must be reviewed against the account’s privacy requirements rather than assumed to be retention-free.

A provider probe proves connectivity and authentication only. It does not prove that the production workflow preserves operation identifiers, reconciles completions, validates evidence, or publishes correctly.

Incident severity.

SeverityDefinitionExamplesResponse objective
SEV-1Active reader harm, wrong edition identity, integrity violation, split publication, unsafe mutation exposureEnglish/Spanish mismatch, manifest hash mismatch, two canonical instances with divergent editions, invalid artifact publicly committedImmediate page; stop unsafe writes; restore last known-good complete edition
SEV-2Publication is overdue or likely to miss deadline; workflow cannot progress or reconcile safelyScheduler absent near deadline, provider complete but unconsumed, process beyond maximum agePage promptly; establish current operation and recover without duplicate work
SEV-3Degraded reliability or rising toil without current major reader impactLock contention, repeated leases, cost warning, repeated manual actionsWorking-hours response unless rapidly approaching deadline
SEV-4Test, documentation, or nonproduction defectFailed deterministic fixture, staging synthetic mismatchTrack in engineering workflow

Operator action policy.

ActionUse whenPreconditionsMust not do
WaitProvider is pending, lease valid, stage within dwell target, next poll scheduledOperation ID present and status observations progressingWait past deadline or lease expiry without alert ownership
PollPoll eligibility time reached and current operation/revision matchNo concurrent poll lease; bounded backoffPoll in tight loop
ReconcileCreate response was ambiguous, provider completed but unconsumed, or publication outcome is uncertainStable operation or manifest reference existsStart replacement work first
AdvanceCurrent stage output is complete and transition preconditions passExpected revision and lease ownershipForce state past failed validation
RetryFailure is local and idempotent, such as composition from retained evidenceRetry budget available; inputs immutableRepeat primary research when retained evidence remains valid
QuarantineAmbiguity, invariant violation, repeated leases, hash mismatch, or unsafe release overlapAudit event records reason and current referencesContinue automatic external effects
AbandonOperation is provably unrecoverable, obsolete, and cannot later mutate current stateExplicit operator approval; operation identity retained; process quarantinedDelete evidence or IDs needed for later reconciliation
Roll backNew release or publication generation is demonstrably defective and prior version is compatible and completeTested rollback bundle and schema compatibilityRoll back application while leaving incompatible workers active
Purge cacheOrigin is correct and public layers are staleExact keys/paths and expected event knownRepublish content merely to change cache identity
Repair permissionsStorage check proves path ownership/mode problemBackup/current artifact verifiedRecursively broaden permissions
Escalate to hostingCron, DNS, TLS, filesystem, PHP runtime, or origin routing is outside application controlDoctor results and timestamps collectedProvide credentials or private content in ticket
Escalate to providerDurable operation is stuck, unavailable, or billed incorrectly after local reconciliationProvider request reference, timestamps, status classes, and redacted trace availableSend prompts, full source material, response body, or credentials

Incident decision tree.

flowchart TD
    A[Alert received] --> B{Reader-visible identity or integrity wrong?}
    B -- Yes --> C[Declare SEV-1]
    C --> D[Disable unsafe mutations]
    D --> E{Prior complete shared manifest available?}
    E -- Yes --> F[Atomically restore prior manifest]
    E -- No --> G[Quarantine and serve bounded unavailable/stale notice]
    F --> H[Verify EN/ES, hashes, hosts, cache]
    G --> H

    B -- No --> I{Target overdue or deadline at risk?}
    I -- Yes --> J[Declare SEV-2]
    I -- No --> K[SEV-3 investigation]

    J --> L{Durable external operation exists?}
    K --> L
    L -- Yes --> M{Terminal provider/publication outcome known?}
    M -- No --> N[Wait or poll only if eligible]
    M -- Yes --> O[Reconcile same operation or manifest]
    L -- No --> P{External effect may have occurred?}
    P -- Yes or unknown --> Q[Quarantine; investigate ambiguous create]
    P -- No --> R{Valid retained evidence exists?}
    R -- Yes --> S[Retry downstream stage only]
    R -- No --> T[Start bounded research only with approval and budget]

    O --> U{Current revision and lease match?}
    U -- No --> V[Reject stale action and reload]
    U -- Yes --> W[Commit one transition]
    W --> X[Run public synthetic verification]
    X --> Y{All acceptance probes pass?}
    Y -- Yes --> Z[Resolve and schedule review]
    Y -- No --> C

First ten minutes.

MinuteRequired action
0–2Acknowledge, classify severity, capture current public status, English/Spanish manifests, release, site instances, and cache headers
2–4Freeze nonessential deployments and operator mutations; identify authoritative process, revision, lease, and operation
4–6Decide whether the problem is workflow, publication integrity, serving/cache, release split, scheduler, or provider lifecycle
6–8Perform one bounded action: poll, reconcile, revert shared manifest, purge exact cache key, or quarantine
8–10Re-run independent public synthetics; escalate with a redacted evidence bundle if health is not restored

Operator process report, release proof, rollback, and postmortem

Bounded operator process report. This report is authenticated and richer than public status but still contains no prompts, source text, provider bodies, credentials, private paths, account IDs, reader data, or raw exception strings.

{
  "report_schema": 1,
  "generated_at": "2026-08-01T11:25:00Z",
  "overall_health": "degraded",
  "reader_impact": "edition_not_yet_overdue",
  "expected_target": "2026-08-01",
  "last_published_target": "2026-07-31",
  "deadline": {
    "model": "fixed_local",
    "timezone": "REDACTED_CONFIG_VALUE",
    "deadline_local": "CONFIGURED",
    "minutes_remaining": 42
  },
  "process": {
    "reference": "p_6C9A1D",
    "target_date": "2026-08-01",
    "state": "research_reconciling",
    "revision": 18,
    "age_seconds": 1840,
    "stage_age_seconds": 620,
    "quarantined": false
  },
  "lease": {
    "status": "valid",
    "expires_in_seconds": 73,
    "renewal_count": 2
  },
  "operation": {
    "class": "primary_research",
    "reference": "op_F3A9",
    "identity_present": true,
    "provider_state": "completed",
    "age_seconds": 1210,
    "last_poll_age_seconds": 540,
    "next_poll_eligible_in_seconds": 0,
    "reconciliation_required": true
  },
  "evidence": {
    "retained_sources": 18,
    "retained_candidates": 9,
    "selectable_candidates": 5,
    "corroborated_candidates": 3,
    "represented_regions": 3,
    "hard_floor_met": false,
    "deficits": ["corroboration", "regional_representation"]
  },
  "publication": {
    "state": "not_prepared",
    "current_public_event": "pub_20260731_7B1C",
    "english_spanish_parity": true,
    "artifact_integrity": "verified"
  },
  "deployment": {
    "web_release": "2026.08.01+8ae73a",
    "cli_release": "2026.08.01+8ae73a",
    "site_instance_count_observed": 1,
    "unexpected_releases": 0
  },
  "scheduler": {
    "heartbeat_age_seconds": 112,
    "expected_interval_seconds": 300,
    "last_result": "supervisor_tick_completed"
  },
  "recommended_actions": [
    {
      "action": "reconcile",
      "reason": "provider_completed_not_consumed",
      "safe": true,
      "expected_revision": 18
    }
  ],
  "prohibited_actions": [
    "start_new_primary_research",
    "force_publish",
    "delete_operation_reference"
  ],
  "report_integrity_hash": "sha256:410d…98ac"
}

The public status endpoint should expose only:

generated_at
service_state: healthy | delayed | unavailable | correcting
expected_target
published_target
publication_event_id or short public edition ID
revision
language_parity: true | false
artifact_integrity: verified | unknown
scheduler_freshness_band: current | delayed | unknown
release_channel: current | previous

It should not expose worker IDs, provider names or IDs, attempt internals, detailed evidence sources, private topology, error text, file locations, account information, or trace identifiers.

Release gate.

GateRequired proofBlocking failure
Syntax validationPHP lint for every shipped PHP file and configuration parser testAny syntax or parse failure
Schema validationState, event, public-status, operator-report, and manifest schema compatibilityMissing migration or incompatible reader/writer
Deterministic testsFull no-network state/provider/publication suiteAny invariant failure or network attempt
Property testsMinimum seed count and retained failing seeds rerunUnresolved minimized counterexample
Concurrency testsReservation, stale-worker, poll, publication, and dual-release race suiteMore than one winner or stale commit
Crash testsEvery external-effect and storage boundaryDuplicate external action, mixed publication, unrecoverable ambiguity
Clean packageSafe extraction, inventory, checksum, secret scan, byte comparisonUnexpected or modified file
HTTP smokeLoopback canonical routes, redirects, status schema, headers, artifactsWrong route, status, cache, or privacy behavior
Responsive browser proofDesktop/mobile viewport, English/Spanish, multi-tab, offline/online, service workerIdentity regression, stale UI represented as current
Canonical-host proofRedirect and mutation-gate testsAlternate host can mutate or bypass canonical origin
Scheduler doctorCLI can load approved release/config and emit read-only heartbeat doctor resultCLI/web release mismatch or missing runtime dependency
Observability validationRequired metrics, event schema, trace/log correlation, cardinality budgetMissing critical telemetry or high-cardinality labels
Rollback rehearsalRestore previous release and prior complete publication manifest in stagingIncompatible schema or unverified artifact
Production canaryOne instance or bounded traffic with mutation authority carefully controlledUnexpected state writes, status mismatch, error-budget burn
Post-deploy syntheticsCanonical, parity, hashes, release, instance, cache, heartbeatAny hard invariant failure

Canary strategy. A web canary may serve read-only traffic first. Only one release may hold workflow mutation authority at a time. Mutation authority should be a lease or configuration generation held by the approved release, not inferred from deployment order. The new release should first prove:

  1. it reads current state and manifests;
  2. its public status agrees with the current release;
  3. its metrics and events have expected schema;
  4. it rejects stale expected revisions;
  5. its scheduler doctor is healthy;
  6. it can process a deterministic isolated canary namespace;
  7. mutation authority can transfer atomically;
  8. the prior release is drained before new live work begins.

Rollback strategy. Rollback consists of three independent decisions:

PlaneRollback operation
Application releaseRestore prior approved web/CLI package and verify schema compatibility
Workflow authorityTransfer the single mutation lease to the prior release only after new workers are drained
PublicationRestore the prior complete bilingual manifest by atomic pointer change; do not rewrite artifacts

A rollback is complete only when external synthetics see one release, one site identity set, one shared English/Spanish event, correct hashes, fresh bounded status, and a valid scheduler heartbeat.

Release-proof bundle.

release-proof/
  release-manifest.json
  source-package.sha256
  extracted-inventory.json
  php-lint-results.json
  schema-compatibility.json
  deterministic-test-results.json
  property-test-seeds.json
  concurrency-race-results.json
  crash-matrix-results.json
  package-safety-results.json
  loopback-http-transcript.json
  browser-proof/
  scheduler-doctor.json
  telemetry-schema-validation.json
  cardinality-estimate.json
  rollback-rehearsal.json
  canary-observations.json
  post-deploy-synthetics.json
  proof-bundle.sha256
  approval-signatures.json

Postmortem template.

# Daily Brief Incident Postmortem

## Impact
Affected targets, languages, hosts, reader-visible duration, and edition identity.

## Reader-visible symptoms
What readers actually saw: missing, stale, inconsistent, invalid, or corrected content.

## Detection
First signal, detection time, expected signal, and why earlier controls did or did not fire.

## Timeline
UTC and editorial-local timestamps for scheduler, reservations, provider events,
state transitions, publication events, cache observations, operator actions, and recovery.

## Violated invariant or SLO
Exact invariant, SLI, SLO target, and error-budget consumption.

## Root cause
The specific technical or procedural mechanism that directly produced the incident.

## Contributing conditions
Deployment, topology, permissions, cache, lease, test coverage, provider, and operational factors.

## Why tests passed while production failed
Identify the missing relationship, environment assumption, race, cache layer,
scheduler path, release path, or observation gap.

## Immediate mitigation
Actions taken, why they were safe, and evidence that duplicate work did not occur.

## Permanent correction
Code, infrastructure, test, telemetry, runbook, and editorial-policy changes.

## Regression proof
Deterministic test, race test, crash test, synthetic, or release gate that now catches the defect.

## Data and privacy review
Confirm that diagnosis and escalation did not expose prompts, sources, bodies,
credentials, private paths, account IDs, or reader data.

## Follow-up actions
Owner, deadline, priority, verification method, and closure evidence for every item.

A postmortem is mandatory for every SEV-1, every freshness-budget exhaustion, and any single incident consuming more than 20% of a period’s budget. That 20% policy follows the pattern in Google’s example error-budget policy, adapted here as an explicit owner decision rather than an industry mandate.

Reliability roadmap, research directions, and final production acceptance

Thirty-day foundation.

WorkstreamDeliverableAcceptance evidence
Service contractEditorial deadline model, timezone, expected publication calendar, evidence floors, correction policyApproved SLO document
IdentityStable release, site-instance, process, operation, event, and publication-manifest identitiesCross-endpoint identity test
Public statusPrivacy-reviewed bounded status schemaSchema test and field allowlist
Core metricsScheduler, process, stage, provider, evidence, publication, parity, cache, releaseMetric inventory and cardinality report
Event ledgerCanonical structured event schema and integrity hash chainTamper/reconstruction test
Deterministic proofNo-network lifecycle test through interrupted publication and duplicate no-opCI artifact with zero network attempts
Basic syntheticsCanonical redirect, status freshness, parity, artifacts, hashes, release, instance, heartbeatExternal observation history
RunbookSEV definitions, action policy, process report, first-ten-minute checklistTabletop exercise

Sixty-day resilience.

WorkstreamDeliverableAcceptance evidence
ConcurrencyReal-store races for reservations, leases, polling, publication, and releasesRepeatable race suite
Crash safetyInjection at every ledger, snapshot, provider, artifact, and pointer boundaryCrash matrix with no duplicate external effect
Cache/browserOrigin/CDN/service-worker/multi-tab/offline test harnessBrowser and cache transcripts
AlertingStage-specific alerts, deadline alerts, parity and artifact pages, burn-rate reportingAlert test and paging drill
RecoveryAutomated same-operation reconciliation and bounded quarantineProvider and publication recovery fixtures
Release proofClean package, loopback HTTP, scheduler doctor, observability gate, rollback rehearsalSigned proof bundle
BaselineFour weeks of stage, recovery, cache, retry, and evidence distributionsThreshold calibration report

Ninety-day operationalization.

WorkstreamDeliverableAcceptance evidence
SLO governanceFreshness, recovery, status, evidence, parity, and operator-safety scorecardsMonthly review and budget policy
Production chaosApproved low-risk cache, scheduler, old-worker, and release-split exercisesGame-day reports
Provider assuranceOptional isolated, hard-budget probe plus reconciliation drillCost/privacy approval and probe history
Editorial qualityHuman sampling and correction-parity reviewAudit sample and correction metrics
Multi-region syntheticsIndependent origin/CDN observationsRegional consistency dashboard
Postmortem disciplineCompleted reviews and tracked corrective actionsClosure evidence
Release policyFreeze or restrict risky changes when budget is exhaustedEnforced deployment policy

Five concrete research and policy directions.

DirectionResearch question and recommended policy
Publication-manifest formalizationDetermine the minimum manifest that can prove target, revision, bilingual identity, evidence-policy outcome, and artifact integrity across filesystem, database, CDN, and browser layers. Adopt the manifest as the sole public commit object.
Storage atomicity characterizationBenchmark and fault-test the actual filesystem/database/object-store semantics, especially rename across mounts, fsync behavior, transaction isolation, lock expiry, and recovery after host restart. Select the commit protocol from measured guarantees rather than assumptions.
Provider reconciliation studyVerify the exact provider API’s request identity, retrieval window, terminal states, rate limits, billing semantics, and ambiguous-response behavior. Require reconciliation evidence before any replacement request.
Editorial correctness measurementDevelop a labeled audit sample that compares automated evidence scores with human findings. Recalibrate selectable, corroboration, regional, and factual-correction thresholds from observed false positives and false negatives.
Cache and deployment topology censusMap every host, DNS path, origin, PHP runtime, CDN behavior, service worker, scheduler binary, shared state location, and release path. Make unexpected topology observable and release-blocking.

Unresolved evidence and conflicting design pressures.

TensionImplication
Full OpenTelemetry versus constrained hostingOTel offers standardized correlation, but structured JSON plus a small metric exporter may be more reliable on limited hosting. Start with the simpler option if the collector would itself become an unmaintainable dependency.
Very strict SLO versus daily sample sizeA 99% daily deadline SLO can be exhausted by one miss in a 90-edition window. Preserve the strict reader promise but use a proportionate change policy and direct incident controls.
Fast automatic recovery versus duplicate-work safetyAggressive retries improve apparent progress but can duplicate provider cost and publication effects. Reconciliation must take precedence over replacement.
Public transparency versus privacy and attack surfaceStatus must reveal enough to prove freshness and parity but not provider details, paths, prompts, sources, topology, or operator information.
Atomicity across heterogeneous storesA database state change and filesystem/CDN publication cannot generally be assumed to share one atomic transaction. Use immutable artifacts, a final canonical pointer, explicit intents, and reconciliation.
Automated evidence checks versus factual correctnessCounts and validators prove policy compliance, not truth. Human audit sampling and bilingual correction governance remain necessary.

Final production acceptance criteria. The Daily Brief is accepted as production-ready only when all conditions below have reproducible evidence:

DomainAcceptance condition
Process identityOne logical process exists for each target; target cannot mutate
State sequenceEvery committed revision advances by exactly one and is reconstructable from events
CoordinationDeterministic races prove exactly one reservation and one transition writer
Stale safetyOld workers, old releases, expired leases, and old provider results cannot commit
External operationsEvery provider operation has durable identity before polling; ambiguous outcomes reconcile before replacement
EvidenceValid evidence survives downstream failures; supplemental work repairs deficits rather than repeating full research
Composition retryComposition may retry from the same retained evidence without provider work
PublicationImmutable bilingual artifacts are verified before one atomic canonical-pointer commit
IntegrityPublic bytes match manifest hashes from at least two independent observation points
Bilingual parityEnglish and Spanish always share target, publication event, revision, and correction generation
IdempotencyDuplicate publication is a no-op with unchanged bytes, event identity, pointer, and provider-call count
SchedulerHeartbeat is observable, current, and tied to the approved CLI release
DeploymentCanonical web and scheduler releases agree; unexpected releases cannot mutate
Instance topologyEvery serving instance is expected, identifiable, and state-consistent
CacheOrigin, CDN, browser, and service-worker identities converge within defined TTL; stale caches never trigger workflow retry
RecoveryCrash and chaos matrices meet recovery SLO without duplicate external work
PrivacyPublic status, metrics, logs, events, traces, alerts, and support bundles pass field-allowlist and secret-leak tests
SyntheticsProduction probes are read-only by construction and cannot invoke scheduler, provider, operator, or publication actions
Incident readinessOn-call personnel complete a tabletop using the bounded process report and decision tree
Release readinessEvery release has a complete, checksum-protected proof bundle and successful rollback rehearsal
Editorial governanceDeadline, evidence floors, exception policy, bilingual correction policy, and human audit process are approved

One-page operator checklist.

  • [ ] Confirm the expected target date, editorial timezone, deadline, and grace period.
  • [ ] Capture canonical English and Spanish publication IDs, revisions, hashes, releases, instances, and cache ages.
  • [ ] Determine whether the issue is reader integrity, freshness, workflow progress, scheduler, provider reconciliation, publication, cache, or release topology.
  • [ ] Freeze nonessential deployments and mutating operator actions during SEV-1 or SEV-2 response.
  • [ ] Read the bounded process report; record process reference, immutable target, current revision, state, stage age, lease, and operation reference.
  • [ ] Never start a new provider operation while an existing or ambiguous operation may exist.
  • [ ] Poll only when eligible; otherwise wait within the stage/deadline bound.
  • [ ] Reconcile completed or ambiguous provider work before retrying.
  • [ ] Reuse retained evidence for composition, validation, and publication retries.
  • [ ] Reject or ignore every worker result whose process, target, operation, lease, or expected revision is stale.
  • [ ] Quarantine on hash mismatch, bilingual divergence, repeated lease expiry, unknown external outcome, or concurrent mutating releases.
  • [ ] For stale public data, compare origin and cache identities; purge or revalidate the exact cache object rather than republishing.
  • [ ] For publication failure, verify the manifest and both artifacts before committing or restoring a canonical pointer.
  • [ ] Never repair only one language; restore or commit a shared bilingual generation.
  • [ ] After any action, run external checks for canonical host, target, revision, event, parity, hashes, release, instance, cache age, and heartbeat.
  • [ ] Record the operator action with expected revision, result, reason, and integrity hash.
  • [ ] Escalate with opaque operation references, timestamps, statuses, and error classes only—never prompts, raw sources, response bodies, credentials, private paths, account identifiers, or reader data.
  • [ ] Resolve the incident only after reader-facing synthetics pass and recovery evidence is attached.
  • [ ] Open a postmortem for SEV-1, freshness-budget exhaustion, unsafe duplicate-work risk, or a major detection gap.
  • [ ] Convert the discovered failure into a deterministic, race, crash, browser, cache, synthetic, or release-gate regression test.