Path: 不写代码在运行中改应用 | 缺项——platform-core.docs-portal-render covers rendering only; no item asserts runtime doc authoring or a doc on the app menu | P2
Filed by the director seat, summon #25 (session_012GcsUbuqFGBibkEDMRC1eE), from the maintainer's words in chat (2026-09-21), verbatim: 「doc 包文档 我觉得是有需求的,可能管理员需要在界面上写一些markdown的文档。甚至加到菜单。」 Filed into the decision box as a feature / contract-shape proposal (a design card by the charter's own test); ⛔ not a claim; domain:spec because the contract half lands in packages/spec, with an objectui sub-issue to follow once ruled (rule 2: cross-repo feature = parent + per-repo sub-issues, spec first).
维护者速读
事情:您说管理员可能要在界面上写 Markdown 文档,甚至加到菜单。本席量了今天有什么:
- 能看:控制台有文档门户(
/docs/:book/:name,Markdown 渲染 + 书的侧栏,ADR-0046);文档和书都是元数据,包里带的 src/docs/*.md 构建时收集进来。
- 能存:
doc / book 都声明 allowRuntimeCreate: true,通用元数据保存门 PUT /meta/doc/:name 今天就能存一条运行时写的文档(这正是刚才更正裁决保住的那扇门)。
- 不能写:Studio / 元数据管理里没有文档编辑器——没有
doc、book 的表单,管理员在界面上写不了。
- 不能上菜单:应用导航项的种类里没有「文档」这一种(有 object / group / page / component / action 等);想把一篇文档放进应用菜单,今天只能拿一个
page 项硬指向文档路由,是绕法不是声明。
选项:
- A 两半都做,spec 先行:①
packages/spec 给应用导航加一种 doc 导航项(指向一篇文档名,权限随文档的 audience 走);② objectui 加「文档」编辑器(Markdown 编辑 + 预览,创建/编辑 doc,把它放进某本 book),落在 Studio 的元数据管理里。先做 ①(一张 spec 卡),再做 ②(objectui 子卡)。
- B 只做编辑器(②),菜单继续用
page 项指向 /docs/... 路由——不改 spec。
- C 只做导航项(①),编辑仍走 API / AI 作者,管理员暂不在界面上写。
- D 不做,维持现状(看得到、API 能存、界面写不了、菜单上不去)。
荐 A。请回一个字母:A / B / C / D。
os-decision-facets
- ① 项目长远合理性:文档已经是元数据(ADR-0046)、AI 已经是主要作者(ADR-0033);给它一个导航项种类和一个界面编辑器,是把已有类型接完整,不是新概念。B 用
page 硬指路由是把「文档在菜单上」写成一个绕法,将来每个消费方各自猜;A 的 ① 让菜单声明「这是一篇文档」,权限与 audience 门自然跟上。⇒ A。
- ② 实际业务拉动:维护者当面点名的需求;今天缺的是编辑器与菜单项两件,看与存都在。⇒ 拉动真实,但两半都可以分期。
- ③ 防 AI 犯错:
doc 导航项是闭合种类,写错的文档名在保存时响亮拒绝;page 绕法里文档名藏在路由字符串里,写错静默 404。⇒ A > B。
- ④ 创业阶段不扩散:A 新增一个导航项种类(永久义务,小)和一个编辑器;D 零义务。⛔ 不因此翻字母:需求是维护者点名的产品路(「不写代码在运行中改应用」),不是工具卡。
Prior rulings read: doc,book,navigation,menu,markdown,docs-portal → ADR-0046 D§1/§6 (docs as metadata; nav spine runtime-editable), ADR-0033 (AI as primary author), ADR-0088 §3; thread: none
推荐:A。自检:「只看①选 A;②③④ 是否翻转:否——② 支持分期(① 先),④ 反向但它管的是新键不是能力」。回退 B。置信缺口:⛔ 未量 objectui 侧 book 的运行时覆盖(ADR-0046 §6.4)是否已实现;⛔ 未量 PUT /meta/doc 对 content 的大小/清洗限制;⛔ 未量文档 audience 门(platform-core.docs-audience-gate)如何应用到导航项。
Execution, if A
- Spec card (this repo,
domain:spec): DocNavItemSchema in packages/spec/src/ui/app.zod.ts (type: 'doc', doc: <doc name>, optional book), strict like its siblings, .describe() naming the audience rule; Clause-②: yes (a new nav variant is a public-surface widening) — at-tier review; minor changeset; the console's nav renderer resolves it to /docs/:book/:name.
- objectui sub-issue (
domain:ui, Blocked-by: the spec card until the pin covers it): a Markdown editor for doc items in Studio's metadata admin (create / edit / preview, assign to a book), reusing @object-ui/plugin-markdown; the nav renderer for the new variant.
- Checklist item to author (platform-checklist
platform-core or studio-authoring): an admin creates a doc in the UI, puts it on the app menu, and a member without the doc's audience does not see the entry.
Generated by Claude Code
Path: 不写代码在运行中改应用 | 缺项——platform-core.docs-portal-render covers rendering only; no item asserts runtime doc authoring or a doc on the app menu | P2
Filed by the director seat, summon #25 (
session_012GcsUbuqFGBibkEDMRC1eE), from the maintainer's words in chat (2026-09-21), verbatim: 「doc 包文档 我觉得是有需求的,可能管理员需要在界面上写一些markdown的文档。甚至加到菜单。」 Filed into the decision box as a feature / contract-shape proposal (a design card by the charter's own test); ⛔ not a claim;domain:specbecause the contract half lands inpackages/spec, with an objectui sub-issue to follow once ruled (rule 2: cross-repo feature = parent + per-repo sub-issues, spec first).维护者速读
事情:您说管理员可能要在界面上写 Markdown 文档,甚至加到菜单。本席量了今天有什么:
/docs/:book/:name,Markdown 渲染 + 书的侧栏,ADR-0046);文档和书都是元数据,包里带的src/docs/*.md构建时收集进来。doc/book都声明allowRuntimeCreate: true,通用元数据保存门PUT /meta/doc/:name今天就能存一条运行时写的文档(这正是刚才更正裁决保住的那扇门)。doc、book的表单,管理员在界面上写不了。page项硬指向文档路由,是绕法不是声明。选项:
packages/spec给应用导航加一种doc导航项(指向一篇文档名,权限随文档的 audience 走);② objectui 加「文档」编辑器(Markdown 编辑 + 预览,创建/编辑doc,把它放进某本book),落在 Studio 的元数据管理里。先做 ①(一张 spec 卡),再做 ②(objectui 子卡)。page项指向/docs/...路由——不改 spec。荐 A。请回一个字母:A / B / C / D。
os-decision-facets
page硬指路由是把「文档在菜单上」写成一个绕法,将来每个消费方各自猜;A 的 ① 让菜单声明「这是一篇文档」,权限与 audience 门自然跟上。⇒ A。doc导航项是闭合种类,写错的文档名在保存时响亮拒绝;page绕法里文档名藏在路由字符串里,写错静默 404。⇒ A > B。Prior rulings read: doc,book,navigation,menu,markdown,docs-portal → ADR-0046 D§1/§6 (docs as metadata; nav spine runtime-editable), ADR-0033 (AI as primary author), ADR-0088 §3; thread: none
推荐:A。自检:「只看①选 A;②③④ 是否翻转:否——② 支持分期(① 先),④ 反向但它管的是新键不是能力」。回退 B。置信缺口:⛔ 未量 objectui 侧
book的运行时覆盖(ADR-0046 §6.4)是否已实现;⛔ 未量PUT /meta/doc对content的大小/清洗限制;⛔ 未量文档 audience 门(platform-core.docs-audience-gate)如何应用到导航项。Execution, if A
domain:spec):DocNavItemSchemainpackages/spec/src/ui/app.zod.ts(type: 'doc',doc: <doc name>, optionalbook), strict like its siblings,.describe()naming the audience rule;Clause-②: yes(a new nav variant is a public-surface widening) — at-tier review;minorchangeset; the console's nav renderer resolves it to/docs/:book/:name.domain:ui,Blocked-by:the spec card until the pin covers it): a Markdown editor fordocitems in Studio's metadata admin (create / edit / preview, assign to abook), reusing@object-ui/plugin-markdown; the nav renderer for the new variant.platform-coreorstudio-authoring): an admin creates a doc in the UI, puts it on the app menu, and a member without the doc's audience does not see the entry.Generated by Claude Code