Skip to content

docs(spec): close 14 protocol-17 tombstone prescriptions with the house os migrate meta sentence (#6914) - #7061

Merged
os-project-manager merged 2 commits into
mainfrom
claude/issue-6914-missing-migrate-sentences
Aug 9, 2026
Merged

docs(spec): close 14 protocol-17 tombstone prescriptions with the house os migrate meta sentence (#6914)#7061
os-project-manager merged 2 commits into
mainfrom
claude/issue-6914-missing-migrate-sentences

Conversation

@os-project-manager

Copy link
Copy Markdown
Collaborator

Fixes#6914

做了什么

对 14 个确有 ADR-0087 v17 转换覆盖的 retiredKey() 处方,在 guidance 字符串字面量末尾追加 #6856 裁定 D 的 house 句式:Run `os migrate meta --from 16` to rewrite existing sources automatically.。句子前的处方正文逐字节未动;不改任何 key/类型/refinement。没有转换(或转换不覆盖该 key)的站点一律不加句,按 data/driver.zod.ts:108 先例保持刻意沉默。

重新推导的普查(E9:自己的清单、自己的命令)

filer 在 2672f855f 报 35 站点 / 18 文件。复测:

  • 在 filer 自己的 ref 上重跑其查询(非测试 *.zod.tsretiredKey( grep 命中 ∩ 文件内无 os migrate meta):得 37 / 19 文件 —— filer 的 35/18 漏掉了 stack.zod.ts 的 2 个命中,尽管其抽查表里有 stack.api.requireAuth
  • 在 fresh main(3fc2e4861,后合并至 3f7f14e61)上,同一朴素查询得 40 命中 / 19 文件;剥掉注释行后真实调用点为 29 个 / 14 文件 —— filer 清单中的 kernel/plugin.zod.tssystem/http-server.zod.tsui/i18n.zod.tsui/sharing.zod.tsui/widget.zod.ts 如今只有注释里的 retiredKey() 提及,没有真实墓碑。
  • 在场/缺席对照:同一扫描(按字面量归属判定,常量定义归到引用它的站点)同时找回了已带句子的 30 个墓碑字面量;类 pin 的判定语料(含 guidance map、转换注记等全部处方句)为 54,与 pin 注释的 sweep 计数一致。

普查单位修正:QUERY_CURSOR_REMOVED / QUERY_DISTINCT_REMOVED 定义在 data/query.zod.ts(文件级查询看不见),被 api/protocol.zod.ts:614data/data-engine.zod.ts:116/141 共享 —— 判定按字面量而非文件。

逐站点裁决表(29 站点,全部实测 spec-changes.json v17 converted + conversions/registry.tsapply())

加句(14)—— 转换完整覆盖该 key,house 单句形态

站点keyconversion idapply() 裁决
ai/skill.zod.ts:195skill.triggerPhrasesskill-trigger-phrases-removedstripKeys 全键剥除
automation/flow.zod.ts:364flow.nodes[].outputSchemaflow-inert-keys-removedmapFlowNodes 全键剥除
automation/flow.zod.ts:433waitEventConfig.timeoutMsflow-node-wait-timeout-keys-removed整值搬移 timerDuration(加引号)/已占则剥除,均自动 —— 非 MIXED
automation/flow.zod.ts:442waitEventConfig.onTimeoutflow-node-wait-timeout-keys-removed全键剥除
automation/flow.zod.ts:629flow.templateflow-inert-keys-removed全键剥除
automation/flow.zod.ts:651flow.activeflow-inert-keys-removed全键剥除
automation/flow.zod.ts:785flow.errorHandling.fallbackNodeIdflow-inert-keys-removed全键剥除
api/rest-server.zod.ts:125api.requireAuth(stack.api 的转发副本)stack-api-require-auth-removed同一授权面,同一键,全键剥除
security/rls.zod.ts:432rowLevelSecurity[].prioritypermission-rls-priority-removed全键剥除
stack.zod.ts:349stack.api.requireAuthstack-api-require-auth-removed全键剥除
ui/view.zod.ts:1285view.list.responsiveview-inert-keys-removed形态限定 list,全键剥除
ui/view.zod.ts:1289view.list.performanceview-inert-keys-removed同上
ui/view.zod.ts:1710view.form.defaultSortview-inert-keys-removed形态限定 form,全键剥除
ui/view.zod.ts:1807view.form.ariaview-inert-keys-removed同上(list 的 aria 存活,与转换的 shape-scope 一致)

无一处命中 MIXED(部分值转换)形态,dashboard.zod.tscompareTo.offset 两分句形态本 PR 未用到。

正确沉默(15)—— 任何 major 均无转换(逐一对过全部 63 条 converted 记录)

站点key为何无转换
api/analytics.zod.ts:51/:57query / formatAPI 请求键,非存储源
api/batch.zod.ts:91validateOnly同上
api/errors.zod.ts:387fieldErrorsAPI 响应键
api/protocol.zod.ts:614query.distinct(经 QUERY_DISTINCT_REMOVED)查询载荷键
api/protocol.zod.ts:1231/:1237notifications cursor(共享常量)路由请求/响应键
api/rest-server.zod.ts:515openApi31#4579 移除,无转换登记
automation/node-executor.zod.ts:342isAsync运行时描述符,非授权面源
data/data-engine.zod.ts:116/:141cursor/distinct(共享常量)引擎选项
data/hook.zod.ts:584session.roles字面量自述 "Nothing to migrate … never stored"
system/environment-artifact.zod.ts:127/:134/:141functions/manifest/payloadRef站点上方注释明言 "No ADR-0087 conversion is registered"(传输壳)

合并 origin/main(#7051)后新到的 data/query.zod.ts:271aggregations[].distinct 亦复查:无转换登记 → 正确沉默,不加句。

验证(方向先定后跑)

  • 类 pin 判定数:54 → 68(+14,恰等于加句数),全绿 —— retired-key-migrate-sentence.test.ts 6/6 通过。
  • 植红实验:将 ui/view.zod.ts responsive 的新句改成退役拼法 to rewrite it automatically. → pin ,报错精确点名 ui/view.zod.ts:1288 并回显违规摘录;随后回退,复绿。除 pin 外无其他门因本改动变红/变绿(fix(spec): stop teaching the retired ETL layer as a live retry surface in flow.zod.ts (#6630, part 2) #6753:如实说)。
  • 逐字节围栏:gen:schemaauthorable-surface/**json-schema.manifest/**authorable-defaults/authorable-surface.base.jsonapi-surface/**spec-changes.json零 diff(guidance 字面量不投影进这些工件)。
  • check:generated 十门全绿(合并 main 后重建复跑);check:upgrade-guide未再生成而绿(未触碰 migrations 账本)。
  • 再生成页面(仅 6 页,机械追加):content/docs/references/ai/skill.mdxapi/automation-api.mdxapi/rest-server.mdxautomation/flow.mdxsecurity/rls.mdxui/view.mdxstack.zod.ts 的 api 块不投影 references 页,无页面 diff。
  • 全量 spec 套件:354 文件 / 9224 用例全绿;pnpm --filter @objectstack/spec typecheck 绿;test-typecheck-debt.json 前后未动(58 文件 / 266 错,shrink-only 持平)。
  • node scripts/check-nul-bytes.mjs 绿。

变更集

.changeset/tombstone-migrate-sentence-completion.md —— @objectstack/spec: patch(处方字符串随 npm 包发布,用户可见;非 breaking,无需 ADR-0087 标记)。

范围外发现

同缺陷类、但在已含句子文件里的 15 个字面量(ai/agent.zod.ts knowledge、ui/action.zod.ts shortcut/bulkEnabled、ui/app.zod.ts 7 处、ui/dashboard.zod.ts 5 处)各自确有 v17 转换而句子缺失 —— 在 #6914 的文件级普查定义之外,已按规程另行立卡(见 issue 链接),本 PR 不扩围。

🤖 Generated with Claude Code

https://claude.ai/code/session_018ffcE95NaMJcL9XJ9VDYgk


Generated by Claude Code

…se `os migrate meta` sentence (#6914)
Each of the 14 retiredKey() sites whose surface an ADR-0087 v17 conversion
covers now ends its guidance literal with the #6856 route-D house sentence,
so the rejection an upgrading author meets names the tool instead of
prescribing a hand-edit. Verified per site against spec-changes.json's v17
converted list and each conversion's apply(); sites with no conversion
(API payload keys, engine options, transport envelopes — the
data/driver.zod.ts:108 precedent) deliberately stay silent. Guidance prose
before the appended sentence is byte-identical; gen:schema is a zero diff
on authorable-surface/ json-schema.manifest/ authorable-defaults/ and the
.base.json anchor; content/docs/references pages regenerated.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018ffcE95NaMJcL9XJ9VDYgk
@vercel

vercelBot commented Aug 9, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

1 Skipped Deployment
ProjectDeploymentActionsUpdated (UTC)
objectstackIgnoredIgnoredAug 9, 2026 12:44pm

Request Review

@github-actions

Copy link
Copy Markdown
Contributor

📓 Docs Drift Check

This PR changes 1 package(s): @objectstack/spec.

106 hand-written doc(s) reference the affected code and may need an implementation-accuracy re-verification:

  • content/docs/ai/agents.mdx(via @objectstack/spec)
  • content/docs/ai/skills-reference.mdx(via @objectstack/spec)
  • content/docs/ai/skills.mdx(via @objectstack/spec)
  • content/docs/api/client-sdk.mdx(via @objectstack/spec)
  • content/docs/api/environment-routing.mdx(via @objectstack/spec)
  • content/docs/api/error-catalog.mdx(via @objectstack/spec)
  • content/docs/api/error-handling-client.mdx(via @objectstack/spec)
  • content/docs/api/error-handling-server.mdx(via @objectstack/spec)
  • content/docs/api/index.mdx(via @objectstack/spec)
  • content/docs/automation/approvals.mdx(via @objectstack/spec)
  • content/docs/automation/connectors.mdx(via @objectstack/spec)
  • content/docs/automation/flows.mdx(via @objectstack/spec)
  • content/docs/automation/hook-bodies.mdx(via packages/spec)
  • content/docs/automation/hooks.mdx(via @objectstack/spec)
  • content/docs/automation/index.mdx(via @objectstack/spec)
  • content/docs/automation/webhooks.mdx(via @objectstack/spec)
  • content/docs/automation/workflows.mdx(via @objectstack/spec)
  • content/docs/concepts/architecture.mdx(via @objectstack/spec)
  • content/docs/concepts/design-principles.mdx(via packages/spec)
  • content/docs/concepts/index.mdx(via @objectstack/spec)
  • content/docs/concepts/metadata-driven.mdx(via @objectstack/spec)
  • content/docs/concepts/metadata-lifecycle.mdx(via packages/spec)
  • content/docs/concepts/north-star.mdx(via @objectstack/spec)
  • content/docs/data-modeling/analytics.mdx(via @objectstack/spec)
  • content/docs/data-modeling/drivers.mdx(via @objectstack/spec)
  • content/docs/data-modeling/external-datasources.mdx(via @objectstack/spec)
  • content/docs/data-modeling/field-types.mdx(via @objectstack/spec)
  • content/docs/data-modeling/fields.mdx(via @objectstack/spec)
  • content/docs/data-modeling/formulas.mdx(via @objectstack/spec)
  • content/docs/data-modeling/index.mdx(via @objectstack/spec)
  • content/docs/data-modeling/objects.mdx(via @objectstack/spec)
  • content/docs/data-modeling/queries.mdx(via @objectstack/spec)
  • content/docs/data-modeling/schema-design.mdx(via @objectstack/spec)
  • content/docs/data-modeling/seed-data.mdx(via @objectstack/spec)
  • content/docs/data-modeling/validation-rules.mdx(via @objectstack/spec)
  • content/docs/data-modeling/validation.mdx(via @objectstack/spec)
  • content/docs/deployment/cli.mdx(via @objectstack/spec)
  • content/docs/deployment/tenancy-modes.mdx(via @objectstack/spec)
  • content/docs/deployment/troubleshooting.mdx(via @objectstack/spec)
  • content/docs/deployment/validating-metadata.mdx(via @objectstack/spec)
  • content/docs/getting-started/build-with-claude-code.mdx(via @objectstack/spec)
  • content/docs/getting-started/common-patterns.mdx(via @objectstack/spec)
  • content/docs/getting-started/examples.mdx(via @objectstack/spec)
  • content/docs/getting-started/quick-reference.mdx(via @objectstack/spec)
  • content/docs/getting-started/quick-start.mdx(via @objectstack/spec)
  • content/docs/getting-started/your-first-project.mdx(via @objectstack/spec)
  • content/docs/kernel/cluster.mdx(via @objectstack/spec)
  • content/docs/kernel/contracts/auth-service.mdx(via packages/spec)
  • content/docs/kernel/contracts/cache-service.mdx(via packages/spec)
  • content/docs/kernel/contracts/data-engine.mdx(via @objectstack/spec)
  • content/docs/kernel/contracts/index.mdx(via @objectstack/spec)
  • content/docs/kernel/contracts/metadata-service.mdx(via packages/spec)
  • content/docs/kernel/contracts/storage-service.mdx(via @objectstack/spec)
  • content/docs/kernel/index.mdx(via packages/spec)
  • content/docs/kernel/runtime-services/data-service.mdx(via @objectstack/spec)
  • content/docs/kernel/runtime-services/email-service.mdx(via packages/spec)
  • content/docs/kernel/runtime-services/examples.mdx(via @objectstack/spec)
  • content/docs/kernel/runtime-services/index.mdx(via packages/spec)
  • content/docs/kernel/runtime-services/queue-service.mdx(via packages/spec)
  • content/docs/kernel/runtime-services/sharing-service.mdx(via @objectstack/spec)
  • content/docs/kernel/runtime-services/sms-service.mdx(via packages/spec)
  • content/docs/kernel/runtime-services/storage-service.mdx(via @objectstack/spec)
  • content/docs/kernel/services-checklist.mdx(via @objectstack/spec)
  • content/docs/kernel/services.mdx(via @objectstack/spec)
  • content/docs/permissions/authorization.mdx(via @objectstack/spec)
  • content/docs/permissions/permission-sets.mdx(via @objectstack/spec)
  • content/docs/permissions/permissions-matrix.mdx(via @objectstack/spec)
  • content/docs/permissions/positions.mdx(via @objectstack/spec)
  • content/docs/permissions/rls.mdx(via @objectstack/spec)
  • content/docs/permissions/sharing-rules.mdx(via @objectstack/spec)
  • content/docs/permissions/system-context.mdx(via packages/spec)
  • content/docs/plugins/adding-a-metadata-type.mdx(via @objectstack/spec)
  • content/docs/plugins/development.mdx(via @objectstack/spec)
  • content/docs/plugins/index.mdx(via @objectstack/spec)
  • content/docs/plugins/packages.mdx(via @objectstack/spec)
  • content/docs/protocol/backward-compatibility.mdx(via @objectstack/spec)
  • content/docs/protocol/diagram.mdx(via packages/spec)
  • content/docs/protocol/kernel/config-resolution.mdx(via @objectstack/spec)
  • content/docs/protocol/kernel/http-protocol.mdx(via @objectstack/spec)
  • content/docs/protocol/kernel/i18n-standard.mdx(via @objectstack/spec)
  • content/docs/protocol/kernel/index.mdx(via @objectstack/spec)
  • content/docs/protocol/kernel/lifecycle.mdx(via @objectstack/spec)
  • content/docs/protocol/kernel/plugin-spec.mdx(via @objectstack/spec)
  • content/docs/protocol/knowledge.mdx(via @objectstack/spec)
  • content/docs/protocol/objectql/index.mdx(via @objectstack/spec)
  • content/docs/protocol/objectql/query-syntax.mdx(via @objectstack/spec)
  • content/docs/protocol/objectql/schema.mdx(via @objectstack/spec)
  • content/docs/protocol/objectql/security.mdx(via packages/spec)
  • content/docs/protocol/objectql/state-machine.mdx(via @objectstack/spec)
  • content/docs/protocol/objectui/actions.mdx(via @objectstack/spec)
  • content/docs/protocol/objectui/concept.mdx(via @objectstack/spec)
  • content/docs/protocol/objectui/index.mdx(via @objectstack/spec)
  • content/docs/protocol/objectui/layout-dsl.mdx(via @objectstack/spec)
  • content/docs/protocol/objectui/record-alert.mdx(via @objectstack/spec)
  • content/docs/protocol/objectui/widget-contract.mdx(via @objectstack/spec)
  • content/docs/ui/actions.mdx(via @objectstack/spec)
  • content/docs/ui/apps.mdx(via @objectstack/spec)
  • content/docs/ui/create-vs-edit-form.mdx(via @objectstack/spec)
  • content/docs/ui/dashboards.mdx(via @objectstack/spec)
  • content/docs/ui/field-grouping-and-order.mdx(via @objectstack/spec)
  • content/docs/ui/forms.mdx(via @objectstack/spec)
  • content/docs/ui/index.mdx(via @objectstack/spec)
  • content/docs/ui/public-data-collection.mdx(via @objectstack/spec)
  • content/docs/ui/setup-app.mdx(via @objectstack/spec)
  • content/docs/ui/translations.mdx(via @objectstack/spec)
  • content/docs/ui/views.mdx(via @objectstack/spec)

7 release-owned page(s) also reference the affected code. These are read-only:

  • content/docs/releases/implementation-status.mdx(via @objectstack/spec)
  • content/docs/releases/index.mdx(via @objectstack/spec)
  • content/docs/releases/v12.mdx(via @objectstack/spec)
  • content/docs/releases/v13.mdx(via @objectstack/spec)
  • content/docs/releases/v16.mdx(via @objectstack/spec)
  • content/docs/releases/v17.mdx(via @objectstack/spec)
  • content/docs/releases/v9.mdx(via @objectstack/spec)

content/docs/releases/ is RELEASE-OWNED (AGENTS.md "Documentation Guardrails"): release
notes are written centrally at release time, and a code PR that edits them is the exact PR
that guardrail exists to stop. They are still audited — read-only. If one of them is actually
wrong, file an issue or open a dedicated docs-only PR; do not edit it here.

Advisory only. To re-verify, run the docs-accuracy-audit workflow scoped to these files:
node scripts/docs-audit/affected-docs.mjs origin/main → pass the list as args.docs.

@os-project-managerClaude

Copy link
Copy Markdown
CollaboratorAuthor

正文「范围外发现」提到的另行立卡即 #7062(15 个同类字面量,藏在已含句子的文件里,#6914 的文件级普查定义看不见)。CI 已收敛:ESLint success(12:48:19Z)、TypeScript Type Check success(12:59:21Z),其余 24 项 check run 全部 success(Console Pin Gate 按设计 skipped)。


Generated by Claude Code

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentationImprovements or additions to documentationprotocol:aiprotocol:uisize/stooling

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[spec] 35 retiredKey() tombstones over protocol-17 conversions never mention os migrate meta — the author is told to hand-edit when a tool exists

2 participants

@os-project-manager@claude