Overview
A plain-English mapping of the codes and acronyms that appear in SBproxy commits, ADRs, the CHANGELOG, and the operator runbook. If you have ever seen a commit titled feat(modules): G3.4 multi-rail challenge emission and wondered which knob that turns, this is the page.
The terminology is split into four groups:
- Wave codes (the seven roadmap waves that built v1.0)
- Work-stream prefixes (G, A, R, B, S, Q, T, E) used inside each wave
- Q-codes used for QA gates and quarterly markers
- General SBproxy vocabulary (OLP, CAP, MCP, x402, MPP, DPoP, RFC 9421, RSL, and more)
Wave codes
Each wave delivered one cross-cutting capability. They are sequential and additive: Wave 2 builds on Wave 1, Wave 3 on Wave 2, and so on. Every commit subject in the repository carries the wave it belongs to so the audit trail stays legible.
| Code | Theme | What it shipped |
|---|---|---|
| Wave 1 | AI governance substrate | Tier-aware Pay Per Crawl pricing, HTTP ledger redemption, typed agent class on every request, dynamic Web Bot Auth directory, OpenTelemetry tracing, structured access and audit logs, outbound webhook framework, /healthz and /readyz endpoints, Grafana dashboards, Prometheus alerts. |
| Wave 2 | Billing foundation | First production payment rail, wallet ledger, agent registry intake, signed-batch audit log v0, per-tenant rate-limit middleware with RFC 9239 headers, agent-aware tier resolution, hot-path vs async-path layering rule. |
| Wave 3 | Multi-rail payments | x402 plus MPP negotiation in a single 402 challenge, per-shape pricing, signed quote-token JWS, end-to-end idempotency keys, EVM reorg-aware two-phase settlement, clock-skew monitor, JWKS endpoint at /.well-known/sbproxy/quote-keys.json. |
| Wave 4 | Content for agents | Two-pass Accept content negotiation, per-shape pricing matrix, JSON envelope schema, citation-block and boilerplate-stripping transforms, well-known projection routes for robots.txt, llms.txt, RSL licenses.xml, TDMRep tdmrep.json, Content-Signal response header, aipref preference signal, x-markdown-tokens header. |
| Wave 5 | Identity differentiator | RFC 8693 outbound credential resolver, vault-backed PATs, stored OAuth grants under one delegation-aware interface, JA3 / JA4 / JA4H TLS fingerprinting, headless-browser detection, Skyfire KYA token verification, ML agent classifier hook surface, header-mutating CEL transform, SIGHUP re-bootstrap. |
| Wave 6 | Operational substrate | Hash-chained Merkle audit log v1, access log v1, CAP token verifier, revenue rollups, compliance scaffold, evidence-verify and audit-migrate CLIs, Open Licensing Protocol (OLP) issuer wiring, Crawler Authorization Protocol (CAP) issuer. |
| Wave 7 | Bonus scope | Employee-bound agent identity (SCIM webhook receiver and chargeback), Agent-to-Agent (A2A) protocol envelope with depth cap and cycle detection, license-leak guardrail, Lightning rail (CLN production adapter, LND, spot-rate oracle). |
Wave 6 closes the public commitment that all six waves shipped to main. Wave 7 is bonus scope.
Work-stream prefixes
Inside each wave, individual deliverables are tagged with a single-letter stream prefix and a sub-number. The streams describe who owns the work, not what it does.
| Prefix | Stream | What it covers |
|---|---|---|
| G | Governance / feature | Customer-visible feature behaviour. New policy modules, tier resolvers, pricing matrices, request-context fields. |
| A | Architect / ADR | Architecture decision records. Each A<wave>.<n> corresponds to an adr-*.md file. ADRs merge before their G work. |
| R | Reliability / runtime | Cross-cutting runtime behaviour. Rate limits, idempotency, clock skew, observability wiring, OTel exporters. |
| B | Builder / packaging | Build, packaging, CI, deploy. Cargo features, Helm values, Grafana dashboards, Prometheus alerts, Dockerfiles. |
| S | Scribe / documentation | Operator-facing documentation. CHANGELOG entries, runbook playbooks, threat-model entries. |
| Q | Quality / QA gates | End-to-end and conformance tests. Fuzz harnesses. Bench fixtures. Each Q<wave>.<n> is a single test fixture. |
| T | Telemetry envelope | Wave 8 P0 work on the request envelope. Custom properties, sessions, users, RequestEvent emission. |
A label such as G3.4 reads as Wave 3, governance / feature stream item 4, and corresponds to a single PR or merge.
Q codes
Q codes have two meanings depending on context:
- Inside a wave (e.g.
Q1.1,Q3.6): a quality / QA gate. Each Q item is one e2e or conformance test, a fuzz harness, a synthetic-monitor fixture, or a bench scenario. - In product-strategy notes (e.g. "Q15", "the Q5 narrative"): a question number on the YC application. These do not correspond to wave work and are unrelated to the engineering Q codes.
General vocabulary
| Term | Stands for | What it means in SBproxy |
|---|---|---|
| OLP | Open Licensing Protocol | A four-step flow for publishers to advertise a licence catalogue, agents to discover it, and the gateway to issue licence tokens bound to a licence row. Verifier ships in OSS via the AI crawl control policy. |
| CAP | Crawler Authorization Protocol | A JWT-based capability-token format presented in CAP-Token: or Authorization: CAP <jwt>. The OSS verifier checks signature, claims, audience, glob-allowed paths, and (optionally) per-token rate limits. |
| MCP | Model Context Protocol | The Anthropic-originated tool-and-resource catalogue protocol. SBproxy ships an MCP federation action that aggregates tool catalogues across upstream MCP servers and routes tools/call per tool. |
| x402 | x402 protocol | A stablecoin-on-chain payment rail riding HTTP 402. SBproxy emits x402 challenge entries in multi-rail 402 responses and verifies redemption tokens via the x402 facilitator. v2 is supported. |
| MPP | Merchant Payment Protocol | The card-and-stablecoin-on-Stripe payment rail. SBproxy emits MPP challenge entries that carry a Stripe payment_intent id; redemption confirms against Stripe. |
| DPoP | Demonstration of Proof-of-Possession (RFC 9449) | A JWS that proves the presenter holds the private key bound to an access token. Used on outbound credential resolution so a stolen access token alone is insufficient to call an upstream. |
| RFC 8693 | OAuth 2.0 Token Exchange | The token-exchange grant that powers SBproxy's outbound credential resolver. Wave 5 uses RFC 8693 to swap an inbound identity for an upstream access token. |
| RFC 9421 | HTTP Message Signatures | The IETF spec for signing HTTP messages. SBproxy implements per-origin message-signature configuration and the Web Bot Auth directory. |
| RFC 9239 | RateLimit headers | The IETF spec for RateLimit-Limit, RateLimit-Remaining, RateLimit-Reset, and Retry-After. SBproxy emits these on every throttled response. |
| RSL | Really Simple Licensing | A licence-advertisement standard served as licenses.xml. Wave 4 added a projection route at /licenses.xml. |
| TDMRep | Text and Data Mining Reservation Protocol | A licence-reservation standard served as tdmrep.json. Wave 4 added a projection route at /.well-known/tdmrep.json. |
| aipref | AI Preferences Working Group draft | A request-side preference signal an agent can carry to declare training, search, or input intent. Parsed at request entry and exposed to CEL, Rego, Lua, JavaScript, and WASM. |
| Content-Signal | IAB Tech Lab Content-Signal header | A response header carrying one of ai-train, search, ai-input. Stamped on 200 responses per origin and reflected into licensing projections. |
| Pay Per Crawl | Cloudflare-coined term | Charging an AI crawler with HTTP 402 plus a Crawler-Payment token. Implemented by the ai_crawl_control policy. |
| Web Bot Auth | IETF draft | The signed-bot-traffic standard. SBproxy fetches /.well-known/http-message-signatures-directory from a vendor, caches the JWKS, and verifies signatures on inbound bot requests. |
| KYA | Know-Your-Agent (Skyfire) | A token format for verified agent identity. Wave 5 added a KYA verifier and exposed request.kya to scripting. |
| JA3 / JA4 / JA4H | TLS fingerprinting algorithms | ClientHello fingerprints captured at the TLS layer and stamped onto the request context for headless-detection signals. |
| Apache 2.0 | Apache License, Version 2.0 | The open source licence under which SBproxy is published. Free for any use, including production and commercial, with no field-of-use restriction. |
| Pingora | Cloudflare's Rust proxy framework | The async runtime SBproxy is built on. Plugs into request_filter, response_filter, and response_body_filter lifecycle hooks. |
| CEL | Common Expression Language | Google's expression language. Used for per-origin policy rules, request modifiers, and response transforms. |
| L2 cache | Layer-2 cache backend | A shared-state backend (Redis today) that turns rate-limit counters and response-cache entries into cluster-wide state. |
| Cache Reserve | Long-tail cold cache tier | A second cache tier sitting under the per-origin response cache. Sample-rate driven mirroring; admission gate by min TTL and size; promotion-on-hit. |
| Hot path / async path | Layering rule | The pin that keeps OSS billing latency-critical code on the synchronous request path and pushes per-rail accounting to async workers. |
See also
- Config reference for the field-by-field schema.
- OpenAPI emission for how SBproxy publishes a live OpenAPI document.