E9 STRATT federation is blocked on a STRATT read surface
Date: 2026-07-07 Status: resolved — read surface shipped (stratt-run #211, 2026-07-07) Supersedes: none Superseded-by: none — current
Update (2026-07-07): The upstream blocker is cleared. stratt-run #211 added
GET /councils,GET /graph,GET /fingerprintstoservices/orchestrator-http, CLI-JSON-compatible./graph+/fingerprintsare DB-backed (live published library);/councilsis filesystem-sourced (STRATT_COUNCILS_DIR) and returns[]until the deploy mounts the councils dir. The remaining E9 work is host-side: authorstratt.consumption.v1+StrattSourceon the P1 HTTP modality.
Context
Section titled “Context”With the P1 HTTP source modality in place, closing the federation reads is
a matter of writing one *Source per upstream. KahnSource (E7) and
RalphSource (E8) landed cleanly because KAHN Scope and ralph serve
expose read-only HTTP APIs with list/detail run endpoints.
STRATT (E9) is different. The neverland intent for E9 is “STRATT’s law visible to the control plane” — the council catalogue, the chain graph, and fingerprint status. An investigation of stratt-hq found:
- STRATT does run an HTTP service,
services/orchestrator-http, withPOST /sessions,GET /sessions/:id(per-session-token-gated),GET /sessions/:id/stream(SSE),GET /audit/slice/:sessionId,GET /health,GET /blast-radius,GET /queue/:actor,GET /intelligence/signals. - But the law surface E9 needs is CLI-only: the council catalogue is
stratt council list --json(no HTTP endpoint), the chain graph isstratt graph --format json(onlyGET /blast-radius, impact-only, exists over HTTP), and fingerprint status isstratt fingerprint --verify(no HTTP surface).
A StrattSource reading only /health + /intelligence/signals +
token-gated single sessions would not make STRATT’s law visible — it
would be a hollow reader that satisfies the edge on paper without
delivering E9’s intent.
Decision
Section titled “Decision”Do not build a thin StrattSource now. E9 is blocked on stratt-hq
exposing a read surface for its law. The blocker is upstream, not in
petrova. Record the precise endpoints STRATT must add; build StrattSource
(trivially, on the P1 modality) once they exist.
Required stratt-hq read endpoints (read-only, mirror the CLI JSON output):
GET /councils— the council catalogue (currentlycouncil list --json).GET /graph(and/orGET /units?domain=&type=) — the full chain DAG (currentlygraph --format json;blast-radiusis impact-only).GET /fingerprintsorGET /units/:id/fingerprint— fingerprint / verification status (currentlyfingerprint --verify, per-file only).
Authoring stratt.consumption.v1 (the consumption pin) follows once the
surface exists.
Alternatives considered
Section titled “Alternatives considered”- Build a health/session-only
StrattSourcenow — rejected: does not make STRATT’s law visible; adds token-plumbing complexity for a reader that misses E9’s intent. - Read STRATT’s filesystem (councils/ dirs) from a sibling path — rejected: the host would need a stratt-hq checkout; the graph and fingerprint status are computed, not static files; and it duplicates the CLI’s derivation logic. The HTTP surface is the right seam.
- Call the STRATT CLI from the host — rejected: shells out of a read-only aggregator; no auth/tenancy story; brittle.
Consequences
Section titled “Consequences”For code:
- No
StrattSourceyet.host/src/sources/http.tsis ready for it.
For docs:
docs/neverland/01-connector-map.mdE9: refine the gap from “no host source” to “blocked on STRATT read endpoints (councils/graph/ fingerprints)”. E7 → read built (KahnSource).
For in-flight phases:
- E7 read done; E9 waits on an upstream stratt-hq task (build the three read endpoints). That task belongs in stratt-hq’s backlog, not petrova’s.
For invariants:
- None. No MR (MR-9).
References
Section titled “References”docs/neverland/01-connector-map.md— edges E7, E9.docs/neverland/02-shared-contracts.md—stratt.consumption.v1(to author once the surface exists).- stratt-hq
services/orchestrator-http/src/routes.ts— the existing session/health surface (not the law surface). - stratt-hq
packages/cli/src/commands/{council,graph,fingerprint}.ts— the CLI-only law surface to be promoted to HTTP. host/src/sources/kahn.ts/ralph.ts— the reader pattern E9 will follow once unblocked.
Sign-off
Section titled “Sign-off”- Subagent: neverland federation-read tier (E7 built, E9 scoped), 2026-07-07
- Human: <<pending — Alex confirm>>