docs(protocol): design principles + capabilities explorer#3841
Merged
Conversation
Add docs/protocol/design-principles.mdx — the meta-protocol page contributors and reviewers need to make and evaluate sound RFCs. Seven load-bearing principles, each with rule / why / what-this-rules-out / when-you'd-be-right- to-push. Names the surface contradictions we know about (trusted_match placement under media_buy.execution rather than as a peer of media_buy or under signals; axe_integrations survival in v3 normative paths; three top-level "things this agent does" lists; three signing-related top-level keys; trust substrate gap to 4.0) — the principles are credible only because we're explicit about where the surface still violates them. Add docs/protocol/capabilities-explorer.mdx — browsable rendering of the get_adcp_capabilities response schema, walking each top-level domain to one sub-namespace deep with per-node "propose extension here" GitHub issue links that pre-fill the schema path. Closes the structural reason wrong- shape RFCs happen: nested feature flags are private details of one schema file while top-level keys get named everywhere — the visible surface biases proposals toward the visible level. Surface docs/spec-guidelines.md in the Protocol nav so cross-links from the principles page resolve. Demonstrate the "why this shape" callout pattern on two task pages (get_products and get_adcp_capabilities) — three sentences naming the principle that drove the shape and the rejected alternative, at the top of the task reference. The pattern is meant to be rolled out across all task-reference pages. Validated against the four Jeffrey-Mayer RFCs (CPQ, TMP signals, bilateral trust, brand.json verification) — each is explicitly addressed in the "what this rules out" sections. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds two new pages and a callout pattern that together close the structural reason wrong-shape RFCs land in the working group.
docs/protocol/design-principles.mdx— the meta-protocol page contributors and reviewers need to make and evaluate sound RFCs. Seven load-bearing principles. Each one: rule / why / what this rules out / when you'd be right to push. Honest about where the surface still violates them.docs/protocol/capabilities-explorer.mdx— browsable view of theget_adcp_capabilitiesresponse schema, walking every top-level domain to one sub-namespace deep, with per-node "propose extension here" GitHub issue links that pre-fill the schema path. Plus gate questions before proposing a new top-level key.get_productsandget_adcp_capabilities— three sentences citing the principle and the rejected alternative, at the top of the task reference. Pattern to roll out across all task pages.docs/spec-guidelines.mdsurfaced in the Protocol nav so the cross-links from the principles page resolve.Why
Origin: a four-RFC thread on 2026-05-01 where Jeffrey Mayer (DanAds) drafted CPQ pricing, TMP direct-sold signals, bilateral trust, and brand.json verification proposals — each of which got rebuffed in Slack on a wrong-shape premise (proposing a field that doesn't exist; proposing a new task for a behavior already expressible via existing tasks plus modes; framing trust as a centralization problem when the protocol's stance is bilateral). The pattern wasn't ignorance — the philosophy these proposals were missing was distributed across
trust.mdx,architecture.mdx,targeting.mdx, andspec-guidelines.md, with no single place a contributor would land.A four-agent third-party review of the protocol surface (ad-tech-protocol-expert, adtech-product-expert, docs-expert, dx-expert) converged on:
What's in scope vs. out of scope
In scope:
trusted_matchplacement,axe_integrations, three top-level "things this agent does" lists, three signing-related top-level keys, the trust substrate gap to 4.0).Out of scope (followups):
Test plan
npm run test:docs-nav— passesFiles
docs/protocol/design-principles.mdx(new)docs/protocol/capabilities-explorer.mdx(new)docs/protocol/get_adcp_capabilities.mdx(callout)docs/media-buy/task-reference/get_products.mdx(callout)docs.json(nav: principles + explorer + spec-guidelines surfaced).changeset/protocol-design-principles.md(empty)static/schemas/source/index.json(pre-existing main hygiene fix the verify-version-sync hook required)