Skip to content

Commit eeaa882

Browse files
docs(concepts): the architecture page's sixth protocol card becomes Marketplace Protocol (#19178)
Fixes #17387 Clause-②: no ## What changed `content/docs/concepts/architecture.mdx` only — 1 file, +5 / -5. No code, no published surface, no workflow, nothing under `packages/spec`. The six cards under "The Protocol Stack" map one-to-one onto the protocol namespaces `packages/spec` publishes, and `./cloud` is no longer one of them: PR #17372 moved the cloud control plane's contracts into the cloud repo while the package format stayed as `@objectstack/spec/marketplace`. The sixth card and the mermaid node under "Why Separated Layers?" were two expressions of that one stale namespace, so both moved together — changing only one would have left the page self-contradictory. 1. The sixth card is now titled `Marketplace Protocol`, described as "Packaging: package format, versions, listings, templates." 2. `Multi-tenancy` and `Licensing` leave the page with the card that described them. 3. The mermaid node `System · Automation · Cloud Protocol` / `Auth · Permissions · Orchestration · Multi-tenancy` now reads `System · Automation · Marketplace Protocol` / `Auth · Permissions · Orchestration · Packaging`. Two deviations from the literal ruling text, both declared rather than silent: - **The card's icon changed too.** The card imported the `Cloud` glyph from `lucide-react`; a card titled `Marketplace Protocol` carrying a cloud icon is the same drift in a third expression, so the import and the `icon=` prop now name `Package` instead. `Package` is already the icon other pages use for packaging (`content/docs/protocol/kernel/plugin-spec.mdx`, `content/docs/protocol/objectql/schema.mdx`) and it is exported by the installed `lucide-react@1.31.0`. - **A trailing period** was added to the description, because the other five card descriptions on the same page all carry one. Typography only; the ruling's wording is otherwise verbatim. ## Ruling executed, not re-weighed The card body listed three options and called the choice a framing decision. The director seat ruled **A** on 2026-09-11T11:53Z (issue comment `5634035531`, class-one self-adjudication recorded in the summon #22 ledger for the maintainer's later ratification), on the standing ruling 「文档应该以实际实现为准」. Triage graded it `priority:p3` / type `Bug` (`5690506939`). This PR executes ruling A; it does not reopen the options. ## Evidence Premise re-verified on this branch's base `30288da04` (the PM measured on `83649b870`; the reading is unchanged): ``` $ git grep -n -i 'cloud protocol' -- content/docs # before content/docs/concepts/architecture.mdx:49: title="Cloud Protocol" content/docs/concepts/architecture.mdx:63: OS[... System · Automation · Cloud Protocol ... Multi-tenancy ...] $ python3 -c "import json;print(sorted(json.load(open('packages/spec/package.json'))['exports']))" ['.', './ai', './api', './automation', './contracts', './data', './identity', './integration', './kernel', './marketplace', './meta-spelling', './openapi.json', './package.json', './qa', './security', './shared', './studio', './system', './ui'] # no './cloud', './marketplace' present ``` The card's own predicate, re-measured after the edit, with its same-shape control: ``` $ git grep -n -i 'cloud protocol' -- content/docs # after (no output, exit 1) $ git grep -l -i 'marketplace protocol' -- content/docs # control — 6 files before, 7 after content/docs/concepts/architecture.mdx (this page joins the existing vocabulary) content/docs/getting-started/glossary.mdx content/docs/getting-started/quick-reference.mdx content/docs/references/index.mdx content/docs/references/marketplace/index.mdx content/docs/references/marketplace/marketplace.mdx content/docs/references/marketplace/meta.json ``` A zero with no control is not a reading; the control still hits, and it grew by exactly this page. ## Gates `node scripts/pm/dispatch-gates.mjs --commands` re-derived against the real changed set (not a hand-written list) at `30288da04`: **39 commands, all run, all exit 0**, reconciled with `--ran` carrying each exit code: ``` ✓ dispatch-gates --ran: 39 derived famil(ies) accounted for — 39 run, 0 NOT-MEASURED (a DERIVED zero — all 39 recorded an exit code and none of them is 3). ``` Five of the 39 first exited `3` / `1` with `PREREQUISITE NOT MET` (unbuilt `@objectstack/lint`, `@objectstack/formula`, `@objectstack/spec`, `@objectstack/client-react`). Those are not findings; the packages were built under the shared verify lock and all five then exited 0. Notably `check:docs-section-name` — the gate the card named — passes both plainly and with `--self-test`, so the card's claim that no gate reads this page's card titles holds as measured, not as quoted. Outside the derived 39 and **not measured here**: the 52 artifact-roster families, the 11 declared wide-population families, the 14 families that would apply once a changeset existed, and the 2 path-scheduled CI jobs (`ci.yml · Test Core`, `ci.yml · Build Docs`). CI owns those. `skip-changeset` is correct and measured, not assumed: no package's `files[]` array names anything under `content/`, and `apps/docs` is `"private": true`. Nothing published moves. The ruling names `skip-changeset` as well. ## Acceptance notes - **Reported, not decided:** `content/docs/concepts/architecture.mdx:147` carries a third occurrence of the word on the page — `- Multi-tenancy and data isolation`, a bullet in the "Layer 2: Kernel (Control Protocol)" responsibilities list. It is not part of the card or the mermaid node, it predates this drift, and it states something about the Kernel rather than about a spec namespace. The ruling's Execution paragraph scopes the work to "the card and the mermaid node", so this PR leaves `:147` untouched and hands the question up rather than deciding it. If the intended reading of "drop Multi-tenancy from the page" includes that bullet, it is a one-line follow-up. - Noted, not filed: the page's `ArrowRight` and `CheckCircle` imports are unrelated to this change and were left alone. --- _Generated by [Claude Code](https://claude.ai/code/session_017ef78bLdybu3AffehKkhfk)_ Co-authored-by: Claude <noreply@anthropic.com>
1 parent 30288da commit eeaa882

1 file changed

Lines changed: 5 additions & 5 deletions

File tree

content/docs/concepts/architecture.mdx

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ title: Protocol Architecture
33
description: How the Data, System, and UI protocols work together as one cohesive system
44
---
55

6-
import { Database, Layout, Cpu, ArrowRight, CheckCircle, Workflow, Bot, Cloud } from 'lucide-react';
6+
import { Database, Layout, Cpu, ArrowRight, CheckCircle, Workflow, Bot, Package } from 'lucide-react';
77

88
## The Protocol Stack
99

@@ -45,9 +45,9 @@ machinery underneath.
4545
description="Intelligence: Agents, RAG, Models."
4646
/>
4747
<Card
48-
icon={<Cloud />}
49-
title="Cloud Protocol"
50-
description="Management: Multi-tenancy, Marketplace, Licensing."
48+
icon={<Package />}
49+
title="Marketplace Protocol"
50+
description="Packaging: package format, versions, listings, templates."
5151
/>
5252
</Cards>
5353

@@ -60,7 +60,7 @@ ObjectStack enforces **Separation of Concerns** through protocol boundaries:
6060
```mermaid
6161
flowchart TD
6262
UI["<b>UI Protocol &amp; AI Protocol</b><br/>Apps · Views · Dashboards · Agents · RAG<br/><i>How do users and agents interact?</i>"]
63-
OS["<b>System · Automation · Cloud Protocol</b><br/>Auth · Permissions · Orchestration · Multi-tenancy<br/><i>Who / what can do what, when, and where?</i>"]
63+
OS["<b>System · Automation · Marketplace Protocol</b><br/>Auth · Permissions · Orchestration · Packaging<br/><i>Who / what can do what, when, and where?</i>"]
6464
DATA["<b>Data Protocol</b><br/>Objects · Fields · Queries · Drivers<br/><i>What is the data structure?</i>"]
6565
UI -->|Interface| OS
6666
OS -->|Control| DATA

0 commit comments

Comments
 (0)