exposure-manifest-drift
| Field | Value |
|---|---|
| ID | exposure-manifest-drift |
| Version | 1.0.0 |
| Mode | drift |
| Layer | Stripe |
| Category | contract |
| Severity | 🔴 blocking |
| SLA | 60,000 ms |
| Depends on | none |
| Source | apps/api/__gates__/exposure-manifest-drift.gate.ts |
What it asserts
apps/api/generated/exposure-manifest.json matches the compiler output; every listed op exists in the spec, all 347 ops are exposed-or-denied per mode, and specHash matches.
Run it locally
bun run gates --gate=exposure-manifest-driftSee also
driftmode- Stripe layer
- Allowlists — how to bound a known finding with an expiration
- Contributing — how to evolve this gate or write a new one
Generated by apps/design/scripts/generate-gate-pages.ts from the gate's source-of-truth metadata. Edit this page by editing the gate file's description / version / etc.
exposure-cross-surface
No static surface (MCP catalog, docs spec, MDX, search index, full.json, action catalog) advertises an op absent from the exposure manifest's live channel.
fix-proposer-eval
Fix-proposer drafts pass structural grader (diff applies, skill links resolve) AND maintain ≥60% 30-day human-acceptance rate.