Why it is this small
Only what two strangers must share.
Most protocols grow until nobody can hold one in their head. Quo keeps a sentence for one of two reasons: two programs that never met would read the bytes differently without it, or no program can supply it alone. Everything else is left to whoever writes the code.
Two criteria decide every sentence.
A sentence belongs to SPEC.md when one of these holds.
Two strangers must agree on it
Two kits that never met could not exchange bytes correctly unless both read the sentence the same way.
No kit can provide it
No kit could provide it for itself.
What fails both is not Quo's. It is neither asked nor forbidden, and if it is a real choice, KIT-SPEC.md asks it.
The form of the spec.
- Every rule says what bytes mean. No rule says anyone must speak.
- No sentence explains itself. Reasons live beside the spec.
- No word names what stands behind a door.
- No language is an authority. JSON is read by its RFCs.
- Every term is defined where it is introduced.
- One idea per sentence, present tense, no version before 1.0.0.
Nobody must speak
A rule says what bytes mean when they are sent, and never that anyone must send them.
Nothing behind the door
What stands behind a door is never named and never counted.
The model is JSON, not XML: a grammar anyone reads, with no opinion about what is written in it.
Anything a kit could decide is removed from the spec, however sensible, because a spec that holds a kit's opinion is a kit.
What Quo refuses.
In SPEC.md
Anything a kit could decide, anything no other kit can observe, a picture, a reason, a language as authority, a count of what stands behind a door.
In KIT-SPEC.md
Any answer. It asks, and every kit answers for itself.
In the verifier
A failure for a choice KIT-SPEC.md hands a kit, and a judgment of whether a kit is good.
Anywhere in Quo
Advice, a favoured kit, or the name of anyone who adopts it.
Ever
Hosting, registering, listing or directing.
The day Quo runs a service, it is a product.
What stands beside it.
No single idea in Quo is new. What is new is holding them together as one small language, fixed byte for byte, that a stranger checks without meeting anyone.
Quo is the door and what crosses it. What lives inside the wall, and the fold outside, are not Quo's, and that is where each neighbour below differs.
OCapN and CapTP
Object capabilities across machines.
No session. Every ask is sealed and signed alone, keys move on every choice above the highest honoured, and strangers meet one silence.
Cap'n Proto RPC
References with authority, inside a connection.
The reference outlives any connection.
gRPC or REST with OAuth or mTLS
A call to an operated service.
No service and no account.
Signal, MLS
Private messages through a server.
The same care for keys, with no server on the path.
Noise, TLS, WireGuard
A secure channel.
Consent per relation, above any channel or none.
libp2p, onion services
Reaching a peer by its key.
On a relation, only an invited key is heard.
Macaroons, UCAN
Bearer capability tokens.
An invitation is a bearer only until a door makes a choice on a knock.
MCP and agent protocols
Models calling tools and agents.
The relation layer under them. A describe renames to their tool list.
Whom Quo is for.
The kit author
In any language, with the documents alone.
The evaluator
Checking the door with the verifier and no one's permission.
The model
Handed the documents to write a kit. That is why every sentence holds one idea and every rule is drawn in one place.