every compiler passed. production still panicked.
statically enforces schema contracts across clickhouse sql, python pipelines, and rust edge proxies.
runs in under 38ms in ci with native mcp discovery for cursor and claude code.
curl -fsSL https://stokes.dev/install.sh | shdeterministic ci contract gate & native mcp bridge for coding agents
terminal
cli-first contract engine. native mcp bridge.
run stokes verify in ci for deterministic sub-50ms boundary contract verification.
attach stokes mcp to feed verified cross-boundary schemas directly to coding agents.
benchmarks
verified in 38ms. 100% deterministic ci verification.
reproducible verification benchmarks across 10,000 property fuzzing test cases.
deterministic ast contract analysis completes in under 38ms with zero llm calls.
lower is better. time to detect cross-boundary contract drift before code review.
deterministic static verification without runtime penalty.
case study · cloudflare nov 18, 2025 outage
out-of-band db grants activate latent cross-boundary defects in git.
the cloudflare incident was triggered by a live database permissions update, but the defect was committed in git: an unqualified reflection query (`system.columns`) coupled to a downstream fixed stack buffer (`[Feature; 200]`). stokes proves this latent capacity violation in the pull request before code reaches production.
an out-of-band permission grant exposes shard replica tables. the unqualified reflection query in git ingests 280 rows instead of 200 canonical columns.
python pipeline serializes the 280-element payload into KV cache. valid JSON/bytes on the wire, blind to downstream fixed array limits.
the proxy's fixed [Feature; 200] stack buffer ingests 280 entries. localized unwrap causes thread panics; localized Result::Err causes 100% request error drops.
stokes cross-references reflection query scope and serialization sink bounds against downstream buffer capacity. upstream PR CI fails before replication occurs.
architectural breakdown: panic vs. 100% error rate blackout
localized rust error handling (clippy::unwrap_used)
let features: [Feature; 200] = match payload.try_into() {
Ok(f) => f,
Err(_) => return Err(PayloadError::CapacityMismatch),
};satisfies clippy and prevents thread crashes. however, when an uncontracted 280-element payload arrives, every edge worker returns `Err`. instead of panicking, the edge fleet drops 100% of incoming customer traffic with 502 bad gateway responses. the global outage still occurs.
cross-boundary contract verification (stokes verify)
[stokes] FATAL: Boundary breach detected at PR time
ClickHouse reflection query emits 280 column records
Downstream Rust proxy buffer capacity is 200 slots
Upstream PR blocked in CI before deployment.the defect is not a localized syntax error in the rust service; it is an uncoordinated boundary contract violation. stokes verifies schema reflection scoping and serialization sink bounds in upstream pull requests, ensuring breaking payloads never reach production.
faq
frequently asked questions
common questions about untyped seams, interface graphs, normalized lockfiles, poly-repo workflows, and ci verification.
what is stokes & how does it bind multi-language boundaries?+
why can't single-language linters (sqlfluff, mypy, clippy) catch this? (the context blindness principle)+
why not just use protobuf, grpc, or an idl?+
how does stokes prevent poly-repo lockstep deadlocks?+
if control planes have Last-Known-Good (LKG) rollback, why do we need stokes in CI?+
ready to eliminate cross-boundary panics?
install stokes to run autonomous cross-compiler verification across ClickHouse, Python, and Rust in your pre-commit hooks and ci pipelines.