carousell/rctp

spec/

The normative source for behaviour in this repository.

File Status What it is
rctp-draft-0.5.md Normative RCTP Specification, Draft 0.5, editor's draft of 10 November 2026 and the implementation baseline (lazy consensus to 17 November). Resolved open questions in Appendix B, decisions and change history in Appendix C. Implemented by v0.3.0-draft.5
v0.3-binding.md Normative for this repo The wire choices v0.3 makes where Draft 0.5 leaves room: authentication (signatures and OAuth), Agent Grants, Listing Terms with proposed terms, offers, the decision header, approvals, deal events, webhooks, and the MCP binding
AMBIGUITIES.md Log Every place the draft was ambiguous, the reading picked (always the more restrictive one), and the tracking issue: A-1 to A-14 for v0.1, B-1 to B-9 for v0.2, B-10 to B-13 for v0.3
rctp-draft-0.4.md History RCTP Specification, Draft 0.4, adopted for v0.2 on 27 October 2026. Implemented by v0.2.0-draft.4
v0.2-binding.md History The wire choices v0.2 made for Draft 0.4
rctp-draft-0.3.md History RCTP Specification, Draft 0.3 (10 October 2026), imported verbatim. Implemented by v0.1.0-draft.3
v0.1-binding.md History The wire choices v0.1 made for Draft 0.3
CHANGELOG.md Log Changes to the spec text and binding
proposals/ Proposal Changes proposed for the next draft. draft-0.4-listing-terms-and-agent-grants.md is incorporated into rctp-draft-0.4.md and kept for its reasoning. draft-0.5-open-to-every-ucp-agent.md is incorporated into rctp-draft-0.5.md and kept for its reasoning (#91, #92, #94)
companion/ Informative White paper and upstream proposals (Draft 0.2); a short note, Trusted Agents for Second-Hand Trade (Draft 0.4)

Repository-level decisions

These were made by the editors on 14 October 2026 for Draft 0.3 and carried into Drafts 0.4 and 0.5, which state them themselves (4.5). They are not reopened here.

  1. Names. Draft 0.3 uses the placeholder domain rctp.example. This repository uses rctp.dev: capability names are dev.rctp.<name> (dev.rctp.listing, dev.rctp.deal) and extension URIs begin https://rctp.dev/, a domain the project controls. Read every example.rctp.* in Draft 0.3 as dev.rctp.*.
  2. Capability version string. 2026-11-draft5 (was 2026-11-draft4). A deployment may serve the previous one beside it for at most 90 days.
  3. Release tag. v0.3.0-draft.5 implements the Starter profile (section 17.4) of Draft 0.5; v0.2.0-draft.4 implemented that of Draft 0.4, and v0.1.0-draft.3 that of Draft 0.3.
  4. No hard-coded identity provider. Enforcement points find the marketplace authorization server through its metadata (RFC 9728, RFC 8414) and operators through their UCP profiles. Nothing hard-codes one identity provider.
  5. Experimental additions carry an x- prefix and a tracking issue (see ../docs/extensions.md).

Precedence

Draft 0.5 text > v0.3-binding.md > code. If code and the binding disagree, the code is wrong. If the binding and the draft disagree, the binding is wrong: open an issue labelled spec-ambiguity.

Source: spec/README.md