Commit eeaa882
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
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3 | 3 | | |
4 | 4 | | |
5 | 5 | | |
6 | | - | |
| 6 | + | |
7 | 7 | | |
8 | 8 | | |
9 | 9 | | |
| |||
45 | 45 | | |
46 | 46 | | |
47 | 47 | | |
48 | | - | |
49 | | - | |
50 | | - | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
51 | 51 | | |
52 | 52 | | |
53 | 53 | | |
| |||
60 | 60 | | |
61 | 61 | | |
62 | 62 | | |
63 | | - | |
| 63 | + | |
64 | 64 | | |
65 | 65 | | |
66 | 66 | | |
| |||
0 commit comments