File size: 25,642 Bytes
9425aed
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
# Production Hardening

This document defines the work and evidence required before Sovereign Event Bus
(SEB) can be operated as a production event system. It is a release-gate
specification, not a statement that the current repository meets these
requirements.

## Status contract

Use the following terms consistently:

| Term | Meaning |
| --- | --- |
| Source present | An interface or implementation exists in the repository |
| Builds | The declared target compiles from a clean checkout in CI |
| Tested | Repeatable automated tests execute and assert behavior |
| Integrated | Two or more components pass a versioned contract test |
| Hardened | Threat controls, recovery, observability, and operational limits are demonstrated |
| Production ready | Every required gate in this document is closed with reviewable evidence |

Documentation, generated reports, proof certificates, hashes, and signatures
must use these terms according to evidence. A command returning exit code zero
is not sufficient when the command skipped a tool, discovered no tests, or ran
a simulated backend.

## Definition of production ready

SEB is production ready only when all of the following are true:

1. One canonical envelope encoding and signature domain is implemented and
   validated across every supported language.
2. Authentication, authorization, replay defense, key lifecycle, and policy
   failure behavior are fail closed.
3. Accepted events, offsets, decisions, and receipts survive the documented
   crash and disaster scenarios.
4. The runtime and native boundary compile, load, negotiate compatible
   versions, and fail without corrupting the host VM.
5. Human approval is authenticated, authorized, durable, idempotent, and linked
   to exactly one eligible event transition.
6. Formal claims build in CI without placeholders and are connected to the
   implementation through explicit refinement or conformance artifacts.
7. A clean source checkout passes the full test matrix, security analysis,
   cross-language vectors, and release build without silently skipped work.
8. Operators can observe saturation, lag, failures, and evidence health; they
   have tested backup, restore, rollback, and incident procedures.
9. Capacity and latency limits are measured on declared hardware and workloads.
10. Release artifacts are reproducible enough to audit, have an SBOM and
    provenance, and are signed by a controlled release identity.


Any unmet item keeps the release in reference, experimental, or preview status.

## Assurance principles

### One event, one canonical representation

Every implementation must consume and produce the same byte-level envelope.
Language-native structs are views over that representation, not independent
definitions. The specification must define:

- field order, field widths, endianness, and alignment;
- string encoding and Unicode normalization;
- timestamp precision, epoch, and allowed clock skew;
- integer overflow behavior;
- absent, empty, and null semantics;
- map ordering and duplicate-key handling;
- maximum envelope, field, and evidence sizes;
- canonical serialization and signature domain separation;
- version negotiation and unknown-field behavior; and
- hash-chain input, receipt input, and stable test vectors.

The present Ada, test-vector, Rust, TypeScript, Python, RPG, and PL/I shapes are
not yet one interoperable wire format.

### Claims follow evidence

The following words require named evidence:

| Claim | Minimum evidence |
| --- | --- |
| Deterministic | Repeat tests across clean processes, hosts, time zones, and supported architectures produce identical decision artifacts |
| Fail closed | Fault injection shows every unavailable dependency denies or queues work according to policy |
| Cryptographically sealed | A reviewed algorithm implementation, controlled keys, canonical input, test vectors, negative tests, and verification at every trust boundary |
| Durable | Crash, power-loss, partial-write, corruption, restore, and retention tests against the selected storage system |
| WORM | Storage-level retention and deletion controls, administrative separation, and provider or device evidence |
| Formally verified | CI-checked theorem set without admitted terms, plus a documented connection between model and deployed implementation |
| Production ready | Every required gate in this document closed |

### No silent success

Build, test, audit, proof, policy, and release commands must fail when a required
tool is absent, a test suite discovers zero tests, a component is skipped, an
artifact is stale, or a required report cannot be produced. Optional work must
be explicitly labeled optional in both console and machine-readable output.

## System and trust boundaries

| Boundary | Trusted input | Untrusted or fallible input | Required control |
| --- | --- | --- | --- |
| Producer to ingress | Registered identity and negotiated schema version | Envelope bytes, timestamps, evidence references | Authentication, size limits, canonical parse, replay check, rate limit |
| Ingress to policy | Parsed immutable event and identity context | Policy bundle, external facts, policy service availability | Signed policy bundle, version pin, timeout, deny-on-error |
| Policy to router | Authorized decision tied to event digest | Route name, adapter metadata | Decision signature, exact event binding, route allowlist |
| Runtime to native kernel | Versioned NIF ABI and bounded buffers | Native code, allocation, file and crypto errors | ABI handshake, input bounds, dirty schedulers or isolation, crash containment |
| Router to adapter | Typed request and capability grant | Remote platform behavior and partial completion | Deadlines, idempotency key, least privilege, reconciliation |
| Review service | Eligible event and policy-required review state | Reviewer browser/session, duplicate actions, stale approval | Strong authentication, RBAC, expiry, single-use decision token |
| Evidence writer | Final transition and prior committed tip | Storage failures, partial writes, administrative action | Atomic append, integrity tree, retention controls, restore verification |
| Build to release | Reviewed source and locked dependencies | Compromised runner, registry, toolchain, secret | Hermetic build, provenance, SBOM, signing, separated approval |

Native code, external policy engines, IBM platform calls, human interfaces,
artifact registries, and evidence storage are separate trust boundaries even
when deployed on the same host.

## Threat model

### Assets

- event intent, authority, and payload confidentiality;
- ordering, offsets, partition ownership, and continuation state;
- policy bundles and authorization decisions;
- signing, verification, and release keys;
- human-review identity and decision records;
- evidence-chain integrity and retention;
- deployment packages, manifests, and provenance; and
- operator credentials, audit access, and recovery material.

### Adversary capabilities

Plan for an adversary who can:

- submit malformed, oversized, duplicated, delayed, or replayed envelopes;
- control payload bytes, identifiers, timestamps, and selected metadata;
- observe or interrupt network traffic;
- crash a process between any two storage operations;
- compromise one service account or adapter credential;
- race approval, cancellation, retry, and timeout operations;
- introduce a malicious dependency or build artifact;
- modify mutable logs or repository metadata; and
- exploit parser differences across language and legacy-platform boundaries.

### Explicit assumptions

Production design must name and test its assumptions about:

- host and hypervisor integrity;
- trusted time and maximum skew;
- entropy availability;
- hardware security modules or managed key services;
- storage consistency and retention guarantees;
- network identity and service discovery;
- administrator separation of duties; and
- supported operating systems, CPU architectures, and legacy platforms.

An assumption is not a control. Each assumption needs an owner, validation
method, and documented behavior when it is violated.

## Required readiness gates

### Gate 1: Canonical protocol

Required controls:

- Publish a versioned binary or canonical text specification.
- Generate language bindings from one machine-readable schema where practical.
- Define strict parsing and rejection behavior.
- Use a dedicated signature context string and versioned hash preimage.
- Define forward/backward compatibility and deprecation windows.
- Reject ambiguous, duplicate, non-canonical, and out-of-range input.

Exit evidence:

- A checked-in conformance corpus with positive and negative vectors.
- Round-trip and byte-equality tests for every supported implementation.
- Property tests for parser/serializer invariants.
- Differential fuzzing across at least two independent implementations.
- A compatibility table for every released schema and runtime version.

### Gate 2: Identity, keys, and cryptography

Required controls:

- Replace placeholder hashes and signatures with reviewed library
  implementations.
- Establish producer, service, reviewer, evidence, and release identities.
- Keep private keys outside source and ordinary configuration files.
- Define issuance, activation, rotation, revocation, expiry, and compromise
  response.
- Bind every signature to protocol version, environment, tenant, event digest,
  transition, and intended verifier.
- Use constant-time verification paths where secret-dependent behavior exists.
- Reject zero, malformed, expired, revoked, unknown, or wrong-purpose keys.

Exit evidence:

- Published key hierarchy and data-flow review.
- Known-answer, negative, mutation, and cross-language cryptographic tests.
- HSM/KMS access policy with administrative separation.
- Rotation and emergency-revocation exercise.
- Independent security review of algorithms, input construction, and key use.

### Gate 3: Replay, idempotency, and ordering

Required controls:

- Assign an immutable event identifier and producer-scoped idempotency key.
- Persist replay decisions for at least the maximum accepted replay window.
- Define ordering per partition and behavior across partitions.
- Make adapter dispatch and commit retry-safe.
- Distinguish duplicate submission, duplicate delivery, and duplicate effect.
- Detect conflicting reuse of the same idempotency key.

Exit evidence:

- Concurrent duplicate and retry tests.
- Restart tests around every transition.
- Delayed-message and clock-skew tests.
- Reconciliation evidence proving one externally visible effect per committed
  idempotency key where the adapter supports it.

### Gate 4: Durable append and recovery

Required controls:

- Select a storage engine with documented atomicity and durability semantics.
- Connect the kernel append path to the WAL or replace it with a defined durable
  store.
- Record event, decision, dispatch intent, effect receipt, and committed offset
  with an explicit transaction model.
- Protect segment metadata and chain tips against torn or reordered writes.
- Define corruption detection, quarantine, repair, and read-only recovery.
- Separate immutable evidence retention from ordinary application logs.

Exit evidence:

- Kill-at-every-write-point tests.
- Power-loss and partial-sector simulation where supported.
- Backup and point-in-time restore exercise.
- Chain verification against corrupted, truncated, reordered, and duplicated
  records.
- Measured recovery point and recovery time under the declared deployment.
- WORM retention evidence from the actual storage control plane if WORM is
  claimed.

### Gate 5: Runtime and native isolation

Required controls:

- Reconcile the Erlang facade and C NIF names, arities, handles, and return
  contracts.
- Load the NIF through a versioned initialization path.
- Bound all native allocations and copied buffers.
- Move blocking file, crypto, and platform operations off normal schedulers.
- Convert native failures to stable Erlang error values without leaking
  resources.
- Decide whether the kernel belongs in a NIF, port, or separate supervised
  service based on crash impact.
- Make shutdown, drain, partition transfer, and restart state machines explicit.

Exit evidence:

- Clean C/Ada build with warnings treated as errors.
- ABI conformance tests and version-mismatch tests.
- Erlang property tests and EUnit tests that are confirmed to execute.
- Native fuzzing under sanitizers and leak detection.
- Host-VM crash-containment and scheduler-latency tests.
- Rolling upgrade and mixed-version compatibility tests.

### Gate 6: Policy enforcement

Required controls:

- Package policy as an immutable, signed, versioned artifact.
- Record the exact policy and fact-set digest used for each decision.
- Apply strict deadlines and deny or durably quarantine on timeout.
- Separate policy administration from event submission.
- Validate external facts for freshness and provenance.
- Make authorization decisions deterministic or record every nondeterministic
  input needed to replay them.

Exit evidence:

- Policy decision vectors, mutation tests, and deny-on-error tests.
- Policy service loss, slow response, malformed output, and stale-fact tests.
- Rollback exercise for a faulty policy bundle.
- Audit showing who approved and deployed each policy version.

### Gate 7: Human review

Required controls:

- Persist review requests and state transitions transactionally.
- Authenticate reviewers with phishing-resistant controls appropriate to risk.
- Authorize by tenant, action, amount, environment, and separation-of-duty rule.
- Bind each decision to one event digest, one policy, one action, and an expiry.
- Make approval, rejection, cancellation, timeout, and reassignment atomic.
- Prevent self-approval where policy forbids it.
- Connect an approved decision to an idempotent commit gateway.
- Store evidence in append-only storage with an independently verifiable digest.

Exit evidence:

- Race tests for two reviewers, timeout versus approval, and cancel versus
  commit.
- Session theft, stale page, replayed decision, and revoked-role tests.
- Accessibility and operator-error review of the decision interface.
- Recovery test proving pending reviews survive restart without duplicate
  commits.

### Gate 8: Formal assurance

Required controls:

- Name the exact theorem set included in a release.
- Remove `sorry`, admitted axioms, trivial crypto definitions, and unused test
  files from the release proof target.
- Model failure, overflow, ordering, replay, and bounded-resource behavior.
- Document which implementation artifacts refine or are generated from the
  model.
- Pin the Lean toolchain and dependency graph.

Exit evidence:

- `lake build` from a clean, network-controlled environment.
- Automated scan rejecting admitted terms in the release theorem closure.
- Proof manifest containing source digests, toolchain digests, theorem names,
  and command output.
- Independent review of model assumptions and implementation correspondence.

Formal verification applies only to the model and theorem closure named in the
evidence. It must not be generalized to adapters, storage, crypto libraries, or
runtime code that the model does not cover.

### Gate 9: Supply chain and release integrity

Required controls:

- Define one root build entry point and fail on missing required toolchains.
- Lock dependencies and verify registry or vendor integrity.
- Pin CI actions, containers, compilers, and proof toolchains by immutable
  identifiers.
- Generate an SBOM for each distributed artifact.
- Produce build provenance and sign releases with a protected identity.
- Scan source, dependencies, containers, and release archives.
- Keep build output and credentials out of source history.

Exit evidence:

- Clean-checkout CI run for the exact release commit.
- Machine-readable test manifest with executed, skipped, and failed counts.
- SBOM, provenance, checksums, vulnerability disposition, and signatures.
- Rebuild comparison from an independent runner.
- Release approval by a principal other than the artifact builder.

### Gate 10: Observability and operations

Required controls:

- Use structured logs with stable event, trace, partition, policy, and release
  identifiers.
- Export queue depth, oldest-event age, decision latency, dispatch latency,
  commit latency, replay rejects, policy failures, native failures, evidence
  verification failures, and recovery progress.
- Trace one event across ingress, policy, routing, review, adapter, and evidence.
- Redact payloads, credentials, signatures, and sensitive evidence metadata.
- Define health, readiness, and dependency status separately.
- Provide runbooks for saturation, corrupted evidence, key compromise, policy
  failure, adapter outage, stuck review, and failed rollout.

Exit evidence:

- Alert tests and dashboard review.
- On-call exercise using only published runbooks.
- Log-redaction tests with representative sensitive payloads.
- Demonstrated event-level diagnosis without direct database mutation.

### Gate 11: Capacity, resilience, and performance

Do not set release targets from placeholder configuration values. Establish
targets from a declared workload and business requirement.

Required test dimensions:

- payload and evidence size distributions;
- number of producers, tenants, partitions, reviewers, and adapters;
- steady-state, burst, backlog catch-up, and hot-partition traffic;
- policy cache hit and miss behavior;
- review-required and automatic paths;
- storage latency, network loss, and dependency degradation;
- key rotation and evidence verification load; and
- supported CPU, memory, filesystem, and platform combinations.

Exit evidence:

- Reproducible benchmark harness and raw results.
- p50/p95/p99 latency with confidence intervals where appropriate.
- Throughput at the declared durability level.
- Saturation point, queue growth behavior, and recovery time.
- Soak test with memory, descriptor, scheduler, and storage trends.
- Fault-injection results and accepted residual risks.

### Gate 12: Release, rollback, and incident response

Required controls:

- Version schema, runtime, policy, proof manifest, and deployment package
  independently.
- Define compatible upgrade and downgrade paths.
- Use staged rollout with automated health and evidence-integrity gates.
- Keep database and evidence migrations backward compatible through rollback.
- Reconcile external adapter effects before retry or rollback.
- Maintain a signed release inventory and supported-version policy.
- Define severity, containment, evidence preservation, notification, and
  post-incident review procedures.

Exit evidence:

- Staging promotion using the exact production artifact.
- Failed-canary rollback exercise.
- Mixed-version and downgrade tests.
- Key-compromise and corrupted-evidence incident exercises.
- Signed release record linking source, tests, proof manifest, SBOM,
  provenance, configuration schema, and operator approval.

## Edge-case test matrix

Every row requires an automated test or a documented platform exercise.

| Condition | Expected system property |
| --- | --- |
| Empty, maximum, and over-limit payload | Accept only documented sizes; reject before expensive work |
| Invalid UTF-8, normalization variants, and embedded nulls | Canonical parser behavior is identical across languages |
| Duplicate map key or reordered fields | Reject ambiguity or serialize to exactly one byte sequence |
| Unknown schema version | Reject or negotiate without guessing |
| Integer boundary and offset wrap | No truncation, sign conversion, panic, or reused offset |
| Timestamp before epoch, far future, or excessive skew | Stable policy result with recorded clock evidence |
| Missing, zero, wrong-purpose, expired, or revoked key | Authentication fails closed |
| Valid signature over the wrong tenant or environment | Domain binding rejects it |
| Replayed event before and after restart | Durable replay policy produces the same rejection |
| Two writers append concurrently | Ordering and chain tip remain valid |
| Crash before WAL flush | Recovery follows the documented acceptance contract |
| Crash after effect but before receipt | Reconciliation avoids a duplicate external effect |
| Truncated or reordered evidence segment | Verification detects and quarantines corruption |
| Policy process absent, slow, or malformed | No unauthorized execution; queue/dead-letter behavior is bounded |
| Review approved twice | One durable transition and one external effect |
| Approval races timeout or cancellation | Exactly one terminal state wins |
| Reviewer loses role after loading request | Commit-time authorization prevents stale approval |
| Adapter returns success after caller timeout | Reconciliation resolves unknown outcome before retry |
| One partition becomes hot | Backpressure is bounded and unrelated partitions remain available |
| Native call blocks or crashes | Scheduler and host-VM failure stay within the declared boundary |
| Disk full, read-only, or high latency | Acceptance and health signals match durability guarantees |
| Log or metrics backend unavailable | Processing follows a documented policy without leaking data |
| Key rotation during in-flight event | Verification uses the correct historical and active key versions |
| Rolling upgrade changes schema | Mixed versions interoperate or rollout stops automatically |
| Identifier is short, long, or multibyte | Diagnostics never panic or split invalid bytes |

## CI release pipeline

A production branch should require these stages in order:

1. Repository policy: formatting, generated-file drift, license consistency,
   secret scan, and forbidden-artifact scan.
2. Component builds: Rust all targets, Erlang release, native kernel/NIF, Lean
   theorem set, code generators, and supported adapters on their real
   platforms.
3. Component tests: unit, property, negative, and mutation-sensitive tests with
   explicit discovered-test counts.
4. Contract tests: canonical vectors and cross-language round trips.
5. Security tests: fuzzing, sanitizers, dependency review, static analysis, and
   authorization/replay suites.
6. Integration tests: policy, routing, review, adapter, evidence, restart, and
   reconciliation.
7. Resilience tests: dependency loss, crash points, corrupted state, resource
   exhaustion, and mixed-version rollout.
8. Assurance: Lean build, admitted-term gate, proof manifest, and traceability
   to implementation or conformance tests.
9. Artifact build: locked inputs, SBOM, provenance, checksums, and signature.
10. Promotion: independent approval, canary, automatic stop conditions, and
    evidence-integrity verification.


Each stage must emit a machine-readable result. A skipped required stage blocks
promotion.

## Operational acceptance

Before the first production deployment, operators must be able to answer:

- What exactly has been accepted if the process dies at this instruction?
- Where is the durable idempotency decision?
- Which policy and key version authorized this event?
- Has an external effect occurred when the adapter response is unknown?
- Can this evidence be deleted or altered by the service administrator?
- How is a corrupt chain isolated without hiding subsequent valid records?
- What happens when every reviewer is unavailable?
- Which metric proves the system is keeping up?
- Which artifact, schema, configuration, and proof manifest are running?
- Can the previous version be restored without reapplying an irreversible
  effect?

If any answer depends on reading source during an incident, the runbook and
telemetry are incomplete.

## Current readiness ledger

| Gate | State | Primary reason |
| --- | --- | --- |
| Canonical protocol | Open | Cross-language layouts and hash inputs differ |
| Identity and cryptography | Open | Placeholder verification, signing, and key material remain |
| Replay and idempotency | Open | No durable cross-component replay store |
| Durable append and recovery | Open | WAL is not connected to the kernel append path |
| Runtime and native isolation | Open | Runtime/NIF interfaces do not compile and integrate as one boundary |
| Policy enforcement | Open | Policy execution and failure behavior are stubbed |
| Human review | Open | Crate compile and durable authorization workflow are incomplete |
| Formal assurance | Open | Lean build fails and proof placeholders remain |
| Supply chain | Open | No required CI/release provenance pipeline |
| Observability and operations | Open | No integrated telemetry, SLOs, or exercised runbooks |
| Capacity and resilience | Open | No reproducible benchmark or soak evidence |
| Release and incident response | Open | No staged release, rollback, or incident evidence |

Closing a gate requires a pull request that links the implementation, tests,
generated evidence, owner review, and any accepted residual risk. Documentation
language may be upgraded only in the same change or a later change that cites
that evidence.