Surface.FS Consumer Integration Guide

Currency note (2026-09-26, commit 942a18727c). The Scheduler service is retired (its scheduling moved to JobEngine; hosts frozen under src/__Obsoleted/JobEngine/) and the Zastava observer/webhook is retired (runtime evidence now comes from RuntimeInstrumentation agents through POST /api/v1/runtime/events). Sections that name Scheduler or Zastava as consumers describe the retired design. The Surface libraries themselves are live under src/Scanner/__Libraries/StellaOps.Scanner.Surface*; Scanner-side paths were checked, deep content was not re-verified.

Updated: 2026-08-22 Audience: Scheduler Worker Guild • Zastava Observer Guild • Surface FS Guild
Depends on: SURFACE-FS-02 (FileSurfaceManifestStore), Surface.Env/Surface.Secrets libraries.

This note captures the minimum wiring required for downstream services now that FileSurfaceManifestStore and the manifest reader/writer abstractions have landed.

1. Shared prerequisites

2. Manifest reader usage

var reader = serviceProvider.GetRequiredService<ISurfaceManifestReader>();
var manifest = await reader.TryGetByUriAsync(surfaceUri, cancellationToken);

3. Scheduler worker checklist (SCHED-SURFACE-02)

  1. Prefetch manifests during planning so reruns can skip redundant layers.
  2. Persist {manifestUri, manifestDigest} alongside run plans for traceability.
  3. Emit telemetry counters: scheduler_surface_manifest_prefetch_total{result=hit|miss}.
  4. Document the prefetch flow in the consumer’s own dossier.

4. Zastava observer checklist (ZASTAVA-SURFACE-02)

  1. Resolve manifest pointer from runtime drift events (entrytrace.graph, layer.fragments kinds).
  2. Enrich drift diagnostics with manifestDigest and Artifacts[n].metadata.
  3. Add failure metric zastava_surface_manifest_failures_total{reason=not_found|fetch_error}.
  4. Document Surface manifest troubleshooting in the consumer’s runbook.

5. Testing guidance

Track consumer work in the owning sprint file under docs/implplan/ (sprint files are the only task ledger). If you discover additional shared requirements, extend this guide so future consumers (CLI, Orchestrator) can reuse the flow.