Status
contract (ops runbooks) · as-built (Pilot cloud profile)
Conceptual layer
④ Decision
Repo layer
L4 knowledge-reasoning
Source
architecture section 11, section 13, section 14, section 15
Normative
00-kernel.md
ADRs
008 · 020 · 023 · 025 · 026
Siblings
11-models-and-seams.md · 12-trace-and-eval.md · 13-improvement.md · 22-missed-opportunities.md

L4 on a live plant is a pinned release, a dual-family model slot, and a short list of rates somebody watches. Humans still decide and execute. Ops owns availability and promotion discipline; it does not own money, hard stops, or card authority.


Purpose#

Say how L4 is deployed, what a release pins, how shadow and canary work, which rates on-call watches, and how the plant path stays separate from the offline improvement path.


Decisions#

#DecisionReason
1Deploy through ADR-008 profiles (cloud, local, local-dashboard) (architecture section 15)Same product, different residency; contracts stay invariant
2Every plant deploy is a release lockfile hashReplay and audit need one pin for registries, stage graph, kernel version, model pins, soft-gate thresholds
3Model pins live in the lockfile; nothing auto-promotesSilent pin drift is a failure mode (19-failure-modes.md)
4Registry / prompt / threshold changes go shadow → canary → pinPlant owner (plant scope) or Stamped tech lead (global) accepts before pin
5Plant request path never calls the offline councilOpus/Sol improve offline; DeepSeek Flash + Luna (or configured pair) serve the floor (ADR-023)
6On-call owns rates and degraded modes, not semantic gate tuningSoft-gate thresholds move through 13-improvement.md and 22-missed-opportunities.md, not pager guesswork

Rejected: floating “latest model” deploys; council models on the live path; plant-scoped silent registry edits without lockfile; treating withhold rate as a model-quality KPI alone.

Would change this: a certified air-gap profile that requires a different pin ceremony; measured evidence that canary windows are too short or too long for Pilot plants.


Deploy profiles#

ProfileL4 modelsHindsight / memoryOffline councilNotes
cloudHosted APIs in the dual-family slot (default)Cloud Hindsight allowedStamped-operated, off plant pathDefault Pilot 1 path
localSelf-hosted open weights in the same slotsSelf-host or plant-local memory backend behind MemoryPortNot required on site; may run in Stamped lab on exported tracesNo internet; same contracts
local-dashboardSame as localSame as localSame as localAdds L6/internal UI per ADR-008

Ports (ModelSlot, MemoryPort, L3MethodsPort, CardSink, L4Store) stay stable across profiles. Providers and residency change; stage graph and kernel do not.

v1 slice: Pilot plants run cloud. Local modes stay design-portable; no Pilot claim that air-gap L4 is proven until a plant runs it.


Release lockfile#

One hash pins, at minimum:

  • kernel version;
  • stage-graph version;
  • every registry entry version in scope (domains, families, workflows, stages, analyses, patterns, constraint kinds, tools, prompts, memory missions, ranking policy, soft-gate thresholds);
  • model pins (provider, family id, revision or weight digest);
  • L3 methods port / shared registry pack versions consumed at the L3–L4 seam.

Every DecisionTraceAlways-on record: observed, context, action, policy, approval, outcome (and seam decisions) carries this hash (12-trace-and-eval.md). Replay of an old run uses the lockfile that was live then, not today’s tip.

Plant overrides layer on a global entry with explicit precedence and appear in the same lockfile digest for that plant.


Model pins#

SlotDefault (illustrative until ops locks)Promotion rule
Family ADeepSeek V4.1 Flash (deepseek-flash)Replay + shadow + canary + owner accept; Pro replaces Flash in-slot the same way
Family BGPT-5.6 LunaSame
One-family modeTwo correlated samples; stricter soft thresholds; hypothesis lane offDeclared in lockfile; not a silent fallback

Pins are data-class changes (17-change-guide.md). Hosted vs self-hosted is a deploy-profile choice behind ModelSlot, not a kernel change.


Shadow and canary#

StageWhat runsWhat the plant sees
ShadowCandidate lockfile runs in parallel; terminals and cards are compared to the pinned lockfile; no L5 emit from the candidateStaff can inspect diffs; owners are not flooded
CanaryCandidate serves a declared plant slice or traffic shareReal cards; exploration and backlog rules still apply
PinLockfile becomes the plant defaultUnpin = rollback to the previous hash

In-flight runs stick to the lockfile they started under. Open cards keep their proposal lockfile reference; supersede after a pin uses the new lockfile and re-checks kernel gates.

Rollback never invents a third “hotfix” pin outside the lockfile ceremony.


Monitoring (plant path)#

On-call watches rates and the production-hardness signals. Full SLO intents: 29-software-quality-and-release.md. Queue: 25-work-queue-and-concurrency.md. Lifecycle: 26-decision-case-lifecycle.md. Ports: 27-ports-and-reliability.md.

On-call watches rates, not narrative quality scores.

SignalWhat it meansFirst response
Withhold rate (by gate id, hard vs soft)Floor may be too strict, or evidence/L3/PSM is degradedSplit hard vs soft; hard spikes → data/constraint ownership; soft spikes → backlog + calibration queue
Cross-family agreement rate (per seam class)Confidence signal health (ADR-023)Drop + rising withholds on action seams → check providers, prompts, or correlated outage
Soft-gate block rates (per gate id)Feeds 22-missed-opportunities.md scorecardSustained miss/foregone effect → improvement proposal, not pager threshold edit
Exploration outcomes (exploration=true closures)Unbiased sample of soft-gate rejectsSpike in reject/no-change → pause exploration budget for that plant; do not loosen hard gates
Latency by tierException (minutes), flow/time (~15 min), energy/cost (may be longer)Queue depth, L3 methods health, model slot health
PSM freshness / builder lagStale as-known-at snapshotsDegraded mode: withhold when proof floor needs fresh state
L3 methods / calculator errorsMoney path or condition test downNo invented rupees; withhold or abstain per kernel
CardSink / L5 emit failuresProposal not deliveredRetry with idempotency (27); do not “fix by asking the model again”
Hypothesis-lane volume / auto-disableDiscovery flood or precision collapseLane off until owner resets (ADR-022)
Shift-sweep completion / durationWhole-plant discovery cadence (08-discovery.md)Missed sweep → queue backlog; overrun → shrink max_candidates or defer hypothesis stage
Shift-sweep emit vs shadow ratioAre quiet shifts producing honest cards or only shadow?Persistent zero emit with high scanner hits → ranking/attention/commissioning review
Queue depth / age by priorityConcurrency / starvation (25)Raise caps or pause P5 sweeps; never drop P0 without alert
Infra fail / timed_out rateLifecycle vs semantic withhold (26)Page; do not tune soft gates
Kill switch / shadow_only / emit_enabledControl plane (28)Confirm intentional; audit who flipped

Hard-gate block volume is audit and constraint-data ownership, not a soft-gate tuning input.

Correlation: every work item and DecisionCaseOne run unit: intake + snapshot + obligations + candidates + terminal carries correlation_id through ports, traces, and CardSink.


On-call ownership#

RoleOwnsDoes not own
L4 on-call (Stamped)Availability, lockfile deploy health, model slot health, rate alerts, degraded-mode runbooks, kill_switch, queue healthSoft-gate threshold values; hard-stop semantics; plant execution
Plant owner (named)Plant overrides, hypothesis-lane opt-in, exploration budget opt-in, backlog promote/dismiss, topology confirmations, emit_enabled accept, plant kill_switchGlobal registry pins; kernel changes
Stamped tech leadGlobal pins after replay packsActing as plant executor
Constraint / site-pack ownerConstraint rows and topology truth in the site packL4 “workaround” emits

Pager pages on availability and rate anomalies. Semantic “should this gate be 0.7 or 0.6?” is an improvement-loop ticket with an owner pack, not a 3 a.m. edit.


Plant path vs offline path#

Plant request path
  L2 / L3 / site pack → PSM snapshot → stage graph (pinned lockfile)
  → dual-family plant models → kernel checkpoints → L5 or withhold/abstain
  → DecisionTrace + opportunity ledger row

Offline path (never on the request hot path)
  Traces + ledger + closures → Opus 5.5 + Sol council
  → proposals (prompt, registry, soft-gate, stage graph, Jev)
  → replay on holdouts → owner pack → shadow → canary → pin

Exported traces for offline work strip or tokenize per DPDP and plant contract. Offline labels do not write plant source-of-truth. Case libraryEpisodic store of traces joined with L5 outcomes; authority when it disagrees with Hindsight remains outcome authority when memory disagrees (ADR-021).


Degraded modes (summary)#

Normative port map and breakers: 27-ports-and-reliability.md. Control plane: 28-commissioning-and-controls.md.

ConditionBehaviour
One model family downOne-family mode if configured; else withhold on seams that require agreement
Both families downNo generative draft; failed_infra / abstain + alert — no fake card
L3 methods / calculator downNo priced rupee claims; withhold claims that need them
PSM stale beyond hard limitWithhold (staleness_hard_limit)
Memory / OE corpus downRun without advisory rows; do not invent
CardSink downStay terminalizing; retry with idempotency key; alert
L4Store downStop leasing new cases; fail closed
kill_switchNo new leases; no CardSink

Infra failures are not soft-gate learning signals (26). Humans on shift still run the plant. L4 being quiet is preferable to L4 guessing.


L4 store (ops note)#

The L4 operational store holds derived snapshots, traces, case library rows, registries/lockfile copies, the opportunity ledgerStore of every blocked candidate with gate id and later outcome if known, work-queue state, and control-plane audit. It does not hold plant source-of-truth (ADR-021).

Durability: backup + declared RPO/RTO; restore drill before first emit_enabled (28, 29). Retention and DPDP follow the plant contract; keep traces/ledger long enough for calibration and replay.

Offline export: allow-listed fields only; strip secrets/PII per 28.


Safe-start (ops)#

Do not set emit_enabled=true until the commissioning checklist in 28-commissioning-and-controls.md is green and the plant owner accepts. New plants start shadow_only=true.


v1 slice vs later#

v1Later
Cloud profile; dual-family hosted pins; lockfile + shadow/canary; queue + lifecycle + port contracts documentedProven local profile; automated canary scorecards in CI (29)
Manual rate dashboards + correlation idsPer-gate scorecard wired to paging / error budgets
Kill switch + safe-start checklistL6 owner controls with confirm
Cost/latency per sweep from Pilot trafficSame as tuning input; never weakens hard stops

Change class#

Operations procedures and dashboards are data / plug-in around stable ports. Changing hard gates, terminals, money ownership, or the write ban is kernel and needs an ADR (17-change-guide.md). Production-hardness surfaces: ADR-027.

Page history: last 3 changes
  1. 2026-10-07 docs(technical): rewrite l4 11-20; reconcile contract deltas with section 5 ef9187f
  2. 2026-10-03 docs(decisions): renumber live ADRs 001-032 in order, mark withdrawn refs ADR-W###, repoint withdrawn links to archive, note partial supersessions 36c944e
  3. 2026-09-25 docs(l4): agentic decision architecture, ADRs, and production hardness 8275e7c

Diagram

100%

Search the architecture