phase: [1] status: candidate (NOT v0.2 final) source: synthesized from D:\catalog\standards\latestnotes.md (C1-C4 + S1-S5) + ADR-0001 + project-decree-v0.md §6.1 authored: 2026-05-20 gates: webGCP v0.2 publication is gated on (a) Step 4 of establishing-a-standard.md — second-implementer signal (b) 3-month soak earliest exit 2026-08-16 (c) Commerce Layer reference impl viable peer_with: webgcp-v01-final.md (v0.1 is frozen; this candidate sketches v0.2 shape)
Status. Candidate — NOT yet v0.2 final. This document sketches the v0.2 shape against the four critical (C) and five significant (S) review items raised in standards/latestnotes.md and the Commerce-Layer formalization deferred from v0.1 per ADR-0001. v0.2 publication itself is gated on three conditions (frontmatter).
v0.1 stays frozen. webgcp-v01-final.md is the published Context-Layer specification; nothing in this candidate modifies it. v0.2 will publish at a new permanent URL (webgcp.org/spec/v0.2/) per webgcp-v01-final.md §10.4's URL-stability rule.
Authority hierarchy. This candidate defers to: ADR-0001 (Context/Commerce boundary), establishing-a-standard.md (6-step playbook; v0.2 cannot publish before Step 4), project-decree-v0.md §6.1 + §6.3, ADR-0019 (hard-shard topology — affects v0.2's distribution architecture).
| Item | v0.1 state | v0.2 candidate |
|---|---|---|
| C1 — Context/Commerce split | 3-paragraph §0.5 + 1-line §0.7 lock; Commerce gestured at | Full §1.5 owning Commerce: what receipts are, where they live, how they chain, reputation rollup |
| C2 — L0 fixture/requirement mapping | Implicit; 2 megatests vs 11 normatives | Explicit mapping table in §9; L1/L2/L3/L4 extensions |
| C3 — Substrate/Network framing | Implicit in §13.2; "M3a backend MCP server" jargon | Named §1.5 (substrate properties) + §13 rename ("reference substrate") |
| C4 — Applicability operationalization | "MUST evaluate" with no language / composition / precedence | CEL expression language; implicit-AND within list; out_of_scope_when overrides; worked examples |
| Commerce Layer (deferred from v0.1) | Out of scope per §0.7 | First-class §5.12 Receipts MUST; §5.13 Reputation Rollup; §5.14 Settlement integration; §5.15 Right-to-Delete fanout |
| Extension mechanism | §5.7 lists 5 primitives; "MAY declare others" undefined | §5.7 + §5.16 vocabulary registry + URI scheme for custom primitives + bundle field types |
| S1 — Receipt protocol in §5 | Hinted in §0.5/§1.3, absent from §5 | §5.12 normative |
| S3 — MyParallel timeline / "M3a" jargon | Internal milestone names leaked into public spec | Renamed to "reference substrate query endpoint (live since 2026-05-17)" + dated targets |
| S5 — "Prior GCP usage" disclaimer | Evasive | Explicit: "GCP previously appeared in adjacent literature as Graph Commerce Protocol; this v0.1+ formally narrows the acronym to Graph Context Protocol" |
The minors (M1-M6) and structurals (St1-St3) are addressed at edit-time and don't drive the v0.2 candidate shape.
Authoritative. webGCP is a network-layer protocol. It runs on top of a substrate that provides five properties:
urn:webgcp:<substrate>:<type>:<id> is the canonical convention).Any substrate satisfying these five properties is webGCP-substrate-compliant.
Reference substrate. MyParallel (the per-tenant GCP-native substrate at D:\myparallel\ + D:\THE_ssrCognitions\) is the first publicly-deployed reference substrate. The five-property mapping under the hybrid architecture per ADR-0021:
webgcp_network.* schemas (typed URN nodes) — data plane (per-tenant BQ)runFiber("settle:..."))spec/wave-0-wif-auth-path.md.The five-property contract is substrate-neutral: a substrate could host both planes on one operator (pure-GCP — feasible per pre-ADR-0021 design); or split them across operators (the hybrid per ADR-0021); or split further (e.g., separate identity provider for the bilateral handshake). Property 5 makes the split-or-not choice an explicit substrate property, addressable by buyers in conformance / procurement / governance review.
The substrate is not required to be BigQuery, GCP, Cloudflare, or anything specific. §13 documents MyParallel because it ships first; a second-implementer satisfying the five-property contract is what graduates webGCP from "our protocol" to "a standard." See establishing-a-standard.md Step 4. Reasonable alternative substrate compositions include: pure-Cloudflare (D1 data plane + DO coordination plane; violates ADR-0019 sovereignty for The Network reference instance but acceptable for hypothetical implementers); pure-AWS (Aurora data plane + Step Functions/EventBridge coordination); pure-Azure (Cosmos data plane + Durable Functions coordination); split-operator hybrids with explicit auth federation.
Context Layer. Knowledge retrieval, provenance, applicability gating, bundle contracts. All §5.1-§5.11 normative requirements are Context-Layer. v0.1 specified this layer in full.
Commerce Layer. Settlement (x402 V2), receipts, reputation rollup, marketplace routing. v0.1 explicitly excluded these per §0.7 + ADR-0001. v0.2 formalizes the Commerce Layer surface in §5.12-§5.15. Commerce is optional at L0/L1, MUST at L2-Governed and above (where audit + reputation are buyer-required).
Where Commerce is specified. Within this same webGCP document — not in "neighbor standards" (that v0.1 framing was misleading and is dropped). Commerce composes with x402 V2 (settlement wire format), AP2 (mandate registry), and MCP (callable surfaces), but the receipt schema, reputation rollup, and right-to-delete fanout are webGCP's own normative surfaces in v0.2.
Reference implementation status. Context Layer is live on webgcp.org + the-ai-news.web.app (L0 reference instances; SVCB-live since 2026-05-17). Commerce Layer reference implementation lives at D:\myparallel\services\cognition-{judge,auctioneer} + tenant-local receipts tables per ADR-0019; specifically NOT in catalog.receipts (Stack A, deprecated per ADR-0001).
Expression language. webGCP v0.2 MUST use Common Expression Language (CEL) for in_scope_when and out_of_scope_when predicates.
Rationale: well-defined; widely implemented (Kubernetes admission, GCP IAM, Envoy); language-neutral; bounded evaluation time; safe to evaluate untrusted predicates.
Composition rules.
- Within a list (in_scope_when: [P1, P2, P3]): implicit AND. A KB is in-scope when ALL predicates evaluate true.
- For explicit OR: callers compose a single CEL expression with || operator. Lists are not OR.
- Across in_scope_when and out_of_scope_when: out_of_scope_when overrides in_scope_when. A KB is in-scope IFF in_scope_when evaluates true AND out_of_scope_when evaluates false (or is absent).
Worked example.
kb_id: urn:webgcp:myparallel:skill:refund-triage-v3
in_scope_when:
- 'request.purchase_channel == "retail"'
- 'request.amount_usd <= 5000'
- 'request.policy_version >= "2024-q3"'
out_of_scope_when:
- 'request.region == "EU"' # EU has separate policy; route to refund-triage-EU
- 'request.disputed == true'
Semantics: this KB applies to retail refunds ≤$5k under policy 2024-q3+, except when the request is in the EU (different KB) or disputed (different KB).
Failure modes.
- CEL evaluation error → the predicate is treated as false (KB not in-scope). Server logs the evaluation failure; ACL-equivalent error envelope returned only if no other KB matched.
- Missing referenced field (e.g., request.policy_version absent) → evaluation is strict: missing required field = false (out of scope).
v0.2 conformance suite structure.
For each conformance level (L0 / L1 / L2 / L3 / L4), the v0.2 spec publishes:
1. The set of normative requirements satisfied at that level (e.g., L0 = §5.1-§5.11 from v0.1).
2. The set of fixture files (WGCP-LN-NNN.yaml).
3. A requirement-to-fixture map showing which fixtures cover which requirements.
L0 fixture map (v0.2; explicit).
| Normative | Fixture | Assertions |
|---|---|---|
| §5.1 (server descriptor) | WGCP-L0-001 |
4 assertions: name, kbs[], endpoints.query, version |
| §5.2 (manifest schema) | WGCP-L0-001 |
3 assertions: hash, primitives[], version |
| §5.3 (bundle contract) | WGCP-L0-002 |
3 assertions: typed fields, _meta presence, contract identifier |
| §5.4 (applicability via CEL) | WGCP-L0-002 |
2 assertions: in_scope_when match, out_of_scope_when override |
| §5.5 (provenance mandatory _meta) | WGCP-L0-002 |
2 assertions: source URI present, freshness present |
| §5.7 (retrieval primitive declared) | WGCP-L0-001 |
1 assertion: at least one primitive |
| §5.8 (idempotency key honored) | WGCP-L0-003 |
2 assertions: identical key → identical response, hash stable |
| §5.9 (ACL = absent, not masked) | WGCP-L0-003 |
2 assertions: denied field absent in response, no mask token |
| §5.11 (untrusted-content handling) | WGCP-L0-003 |
2 assertions: content-origin tag, sanitization marker |
| Cross-fixture mitigations | WGCP-L0-003 X01/X02/M01/M02 |
4 assertions: SVCB cross-namespace + multi-resolver consistency (added 2026-05-16) |
Total: 13 fixture-level assertions across 3 fixtures, mapping 11 normative requirements (§5.1-§5.5, §5.7-§5.9, §5.11) + the 4 mitigation assertions. §5.6 (HTTP wire format), §5.10 (forbidden practices) verified by inspection rather than fixture; documented in v0.2 §9.
v0.1 was honest but unmapped. This explicit table closes the credibility-test gap.
L1-L4 mapping follows the same shape; fixtures and assertions to be authored alongside the second-implementer engagement (Step 4 of establishing-a-standard.md).
A receipt is a signed, content-addressed record of one invocation. Receipts are the audit substrate for the Commerce Layer.
Wire shape.
{
"receipt_id": "urn:webgcp:receipt:<sha256>",
"schema_version": "1",
"issuer": "urn:webgcp:server:<server-id>",
"issuer_sig": "<EdDSA signature>",
"issued_at": "2026-05-20T14:23:00Z",
"request": {
"kb_id": "urn:webgcp:<substrate>:<type>:<id>",
"kb_version": "v3.2.1",
"idempotency_key": "<opaque>",
"manifest_hash": "<sha256>",
"invoker": {
"principal_id": "<urn>",
"mandate_ref": "urn:ap2:mandate:<id>",
"ap2_signature": "<EdDSA>"
}
},
"response": {
"bundle_hash": "<sha256>",
"outcome": "ok | error | denied",
"freshness": "..."
},
"settlement": {
"x402_uri": "x402:base:usdc:0x<addr>?amount=<nano>",
"amount_nano_usdc": 100,
"facilitator": "circle | self-hosted"
},
"chain": {
"upstream_receipt_ref": "urn:webgcp:receipt:<sha256> | null",
"depth": 1
}
}
Normative.
- L0 — MAY emit receipts (informational).
- L1 — SHOULD emit receipts for any invocation with a non-zero settlement.amount_nano_usdc.
- L2 Governed — MUST emit receipts for every invocation; receipts MUST be hash-chained where the bundle is composed from upstream bundles (upstream bundle_hash is the upstream receipt.response.bundle_hash); receipts MUST be retained per the substrate's data-retention contract (≥1 year is RECOMMENDED).
- L3+ — receipts MUST be cross-server-verifiable: a receipt from server A invoked from server B carries B's chain.upstream_receipt_ref, and either party can independently verify the chain.
Storage. Receipts are tenant-local per ADR-0019 (hard-shard topology). Cross-tenant access is via signed content-addressed artifacts or Analytics Hub linked datasets, never via direct read of another tenant's receipt table.
Per-skill (per-kb_id) reputation is derived from receipts. The rollup is deterministic: given a set of receipts + a fixed rollup function, anyone can recompute reputation independently (anti-collusion).
Wire shape.
{
"rollup_id": "urn:webgcp:rollup:<sha256>",
"kb_id": "urn:webgcp:<substrate>:<type>:<id>",
"version": "v3.2.1",
"window": {
"start": "2026-05-13T00:00:00Z",
"end": "2026-05-20T00:00:00Z"
},
"stats": {
"invocation_count": 1247,
"success_rate": 0.94,
"p95_latency_ms": 320,
"quality_tier": "T2"
},
"feedback": {
"aggregate_id": "urn:webgcp:feedback-aggregate:<sha256>",
"feedback_count": 42,
"weighted_score": 0.82
},
"last_invoked_at": "2026-05-19T22:01:33Z",
"rollup_signature": "<EdDSA>"
}
Normative.
- L2 Governed — MUST publish rollups at a stable URI per kb_id; rollup signature MUST be verifiable against the publisher's known key; window size MUST be ≥7 days.
- L3 Federated — rollups MAY be federated; cross-server reputation requires HMAC-signed attestations per webGCP-network.md N11.
- Privacy invariant. Rollups MUST NOT carry per-invoker identifiers; only aggregate stats. Anti-Sybil + invoker-PII protection.
webGCP servers integrate x402 V2 settlement; webGCP does not re-specify x402.
settlement.x402_uri field in §5.12 carries a v2 payment URI per x402 V2.settlement.amount_nano_usdc per invocation. Authorship economics (e.g., refactor-author royalty per webGCP-network.md N7) is a roll-up at receipt batch level, not per-receipt; specified at Commerce Layer §5.13.When a principal exercises right-to-delete (GDPR Art. 17, CCPA, similar), the deletion request fans out across all federated servers that hold receipts referencing the principal.
Normative.
- A right-to-delete request is itself a signed receipt of type "deletion-request", addressed to the principal's federated server set.
- Receiving servers MUST honor the request within 30 days; MUST emit a "deletion-completed" receipt back to the requester; MUST hash-chain to the original deletion request.
- Deletion is destructive for the principal's PII fields; the receipt's structural metadata (hash chain, version, kb_id) is retained (audit substrate).
- L3 Federated servers MUST relay deletion requests to upstream-chained receipts (closes the federation loop).
Custom retrieval primitives + bundle field types declared via URI scheme.
urn:webgcp:primitive:<authority>:<name>:<version> (e.g., urn:webgcp:primitive:webgcp.org:semantic-layer:v1).urn:webgcp:field-type:<authority>:<name>:<version>.webgcp.org/registry/v0.2/. Authorities MAY self-host their own registries under their own URN authority; webgcp.org is the canonical aggregator.v0.1 §13.2 said "M3a backend MCP server" — internal jargon. v0.2 §13:
v0.1's "at least one prior usage in adjacent literature" sounds evasive. v0.2:
"GCP previously appeared in adjacent literature as Graph Commerce Protocol. This v0.1+ specification formally narrows the acronym to Graph Context Protocol to disambiguate from Google Cloud Platform and to scope v0.1 to the Context Layer. Commerce concerns are formalized in v0.2 §5.12-§5.15 but the protocol acronym remains 'Graph Context Protocol' regardless of layer."
v0.1 said /spec/v0.1/ is immutable, then described v0.1 as a working draft. v0.2 reconciles:
/spec/v0.1/ URL → permanent freeze at the v0.1.0 release content./spec/v0.2/ → permanent freeze at v0.2 publication (post-Step-4 gate)./spec/v0.2-candidate/ (this document).Of v0.1's 10 open questions: - Q4 (graph as first-class) — CLOSED by §0.5's Context/Commerce split; graphs are one primitive in §5.7 / §5.16. - Q7 (receipt protocol) — RESOLVED in §5.12. - Q8 / Q9 (vocabulary / conformance governance) — RESOLVED in §5.16 + §9. - Q10 (browser-side webGCP) — CLOSED: Context Layer is server-side; Commerce Layer is server-side. Browser-side surfaces are WebMCP's domain. - Q1/Q2/Q3/Q5/Q6 — carried forward to v0.2 §12; pruned for staleness.
Items the v0.2 candidate does not cover; defer to v0.3+:
0020-network-contribution-scope.md §"What's not in v1 verification."kb_id and non-transferable. Tokenization is not on the v0.2 roadmap.project-decree-v0.md §1.v0.2 publishes when all four conditions are met:
establishing-a-standard.md is passed. 3-month Use-alone soak elapses with no critical Open Questions outstanding. Earliest: 2026-08-16.progress/outcome-cognition-fleet-deployment.md).Until all four close, v0.2 is candidate, not normative.
webgcp-v01-final.md — frozen v0.1 spec this candidate extendsstandards/latestnotes.md — source of C1-C4 + S1-S5 review itemsstandards/establishing-a-standard.md — 6-step playbook governing v0.2 publicationdocs/adr/0001-receipts-out-of-webgcp-v01-core.md — the Context/Commerce boundary this candidate operationalizes for v0.2docs/adr/0019-hard-shard-tenant-project-topology.md — receipts storage architecture per §5.12docs/adr/0020-network-contribution-scope.md — settlement & contribution surfaces touching §5.14project-decree-v0.md §6.1 (engineering settled) + §6.3 (standards posture)standards/DNSAID/cognition-ssr-services-decree.md §3 (IAM matrix) + §4 (handshake) — the negotiator ↔ cognition flow that emits receipts per §5.12webGCP-network.md N11 (federation), N16 (settlement), N7 (refactor authorship economics) — the Commerce-Layer counterparts in the operator's reference stackprogress/outcome-cognition-fleet-deployment.md — reference Commerce-Layer implementation status (coded, 142 tests; deploy pending)progress/MASTER-NEXT-TODOS.md #28.2 (webGCP v0.2 candidate work item) — meta tracker