You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[spec] 35 retiredKey() tombstones over protocol-17 conversions never mention os migrate meta — the author is told to hand-edit when a tool exists #6914
Filed unassigned, out of scope for #6856 (that card decides the verb of the migrate sentence; this one is about its absence). Found while auditing #6856's corpus.
sites in files with noos migrate meta sentence anywhere: 35, across 18 files: ai/skill.zod.ts, api/analytics.zod.ts, api/batch.zod.ts, api/errors.zod.ts, api/protocol.zod.ts, api/rest-server.zod.ts, automation/flow.zod.ts (6), automation/node-executor.zod.ts, data/data-engine.zod.ts (3), data/hook.zod.ts, kernel/plugin.zod.ts, security/rls.zod.ts, system/environment-artifact.zod.ts (3), system/http-server.zod.ts, ui/i18n.zod.ts, ui/sharing.zod.ts, ui/view.zod.ts (4), ui/widget.zod.ts.
Why it may matter
shared/retired-key.ts:27-32 says the guidance string "IS the migration doc for anyone who
hits it". For these 35, that doc omits the one automated remedy that exists — the author
(very often an AI, ADR-0033) is told to hand-edit every site.
Spot-checked against spec-changes.json's v17 converted list — a protocol-17 conversion does exist for each of these surfaces:
'`view.responsive` was removed in @objectstack/spec 17.0.0 (#3896 audit close-out) — ' +
'no renderer ever read it; the grid is responsive by its own layout rules. Delete the key.'
All four ui/view.zod.ts tombstones end at "Delete the key" with no pointer to the tool.
Not asserting the fix
I did not audit whether every one of the 35 has a conversion (only the 7 spot-checked
above), nor whether some deliberately omit the sentence — data/driver.zod.ts:108 shows
the corpus does sometimes say so explicitly ("No os migrate meta line on any of ..."),
so a per-site check is needed before any sweep.
Blocked-by: #6856 — that card decides which idiom the sentence uses. Adding 35 more
sentences in a to-be-decided spelling would just enlarge the split #6856 exists to close.
Dedup
Searched open issues before filing: tombstone prescription "os migrate meta" missing, retiredKey prescription conversion exists no migrate sentence, in:title spec tombstone migrate, view.zod tombstone "Delete the key" — only #6856 itself comes back.
Classification: concrete, scoped text-face work — 35 retiredKey() prescriptions missing the os migrate meta sentence where a protocol-17 conversion exists. Guidance prose only; the legal metadata set is unchanged byte-for-byte, so this is the spec-surface lane (red-line check: no accept/reject behavior change).
Anchor verification on origin/main @ 86e6f6c: the 18-file no-sentence list reproduces exactly (files with retiredKey( sites minus files carrying any os migrate meta sentence); specimen live at ui/view.zod.ts:1285-1287, ending at "Delete the key" with no tool pointer; shared/retired-key.ts doctrine ("the guidance string IS the migration doc") confirmed at :27-32.
⚠️每处仍须核对转换确实存在 —— filer 明说只抽查了 7/35,且语料里存在刻意不写这句话的先例(data/driver.zod.ts:108 显式声明「No os migrate meta line on any of …」)。逐处核对 spec-changes.json 的 v17 converted 清单 + conversions/registry.ts 的 apply(),没有转换的站点不得加句子(E9:继承来的清单要实测)。
Activity
claude commentedon Aug 9, 2026
Triage:
pm:queue+pm:blocked+domain:spec-surface.retiredKey()prescriptions missing theos migrate metasentence where a protocol-17 conversion exists. Guidance prose only; the legal metadata set is unchanged byte-for-byte, so this is the spec-surface lane (red-line check: no accept/reject behavior change).origin/main@86e6f6c: the 18-file no-sentence list reproduces exactly (files withretiredKey(sites minus files carrying anyos migrate metasentence); specimen live atui/view.zod.ts:1285-1287, ending at "Delete the key" with no tool pointer;shared/retired-key.tsdoctrine ("the guidance string IS the migration doc") confirmed at:27-32.Blocked-by: #6856— that card moved to the maintainer decision box at 03:55Z (B vs D verb ruling), and its classification comment names this card as the companion. Correct order stands: no 35 new sentences in an unruled spelling. On unlock, re-verify the site list at the then-current ref — the [finding][spec] Tombstones over STRIP-only conversions sayos migrate meta --from 16will "rewrite it" — the corpus is split between two verbs for one behaviour #6856 execution sweep is the commit most likely to have absorbed sites.os migrate meta --from 16will "rewrite it" — the corpus is split between two verbs for one behaviour #6856 (verb split — upstream, cross-linked), docs/adr has a number hole at 0107 — either a withdrawn record with no tombstone, or a lost file #6676 (ADR number hole — unrelated). No other shadow in the three repos.target:v17: internal authoring-guidance completeness, not a shipped-surface defect.本评论来自分诊座位 Routine(#5474 试点),不构成认领。
Generated by Claude Code
os-project-manager commentedon Aug 9, 2026
Blocker 已落地 —— 本卡的前置条件解除。 spec-surface 席 #6298,session
session_018ffcE95NaMJcL9XJ9VDYgk。#6856 已由维护者裁 D 并经 PR #7031 合入:house 句式定为
to rewrite existing sources automatically.(MIXED 转换用dashboard.zod.tscompareTo.offset的两分句精确形态),规则已写入shared/retired-key.ts的模块 docblock(含@example,即下一位作者的复制源),并有类级机械 pin(packages/spec/src/shared/retired-key-migrate-sentence.test.ts)按形状守住全部处方句。对本卡的影响: 35 句待补的 migrate 句从「逐处查注册表判断动词」降为「复制同一句 house 句式」。新增句子会自动落入类 pin 的扫描面 —— 写错拼法会直接红。
两条实施提醒,给接卡的人:
data/driver.zod.ts:108显式声明「Noos migrate metaline on any of …」)。逐处核对spec-changes.json的 v17converted清单 +conversions/registry.ts的apply(),没有转换的站点不得加句子(E9:继承来的清单要实测)。packages/spec/src的字符串字面量(拼接缝双向缝合、注释行跳过、migrations/registry.ts按账本边界整体排除)—— 新句子写成注释散文不会被守住,写进retiredKey()guidance 字面量才会。⛔
pm:blocked的摘除归分诊席,本席只记录状态。Generated by Claude Code
os-project-manager commentedon Aug 9, 2026
认领本卡。开发 agent session
session_018ffcE95NaMJcL9XJ9VDYgk,分支claude/issue-6914-missing-migrate-sentences。实施计划(按卡面 + 解锁备注的两条提醒):
origin/main上重新推导 35 站点清单(retiredKey(站点 ∩ 文件内无os migrate meta句),并跑在场/缺席对照(同一查询必须能找到已带句子的 55+ 站点)。spec-changes.jsonv17converted清单 +conversions/registry.ts的apply()—— 无转换或仅部分覆盖的站点不加句,单独列「correctly silent」表。dashboard.zod.tscompareTo.offset两分句形态。Generated by Claude Code
os-project-manager commentedon Aug 9, 2026
ACCEPT — PR #7061(spec-surface 席 #6298,session
session_018ffcE95NaMJcL9XJ9VDYgk)。终报 + CI 收敛后翻转。这张卡的普查结果本身就是它存在的理由:filer 的 35 站点在两个方向上都错了。
2672f855f)stack.zod.ts2 个真墓碑(抽查表里明明有stack.api.requireAuth)retiredKey(),没有真墓碑照抄 filer 清单会写出约 15 句「工具存在」的假话 —— 对 API 请求键、响应键、传输壳这些从来不进存储源的面,
os migrate meta无事可做。这批站点如今进了「correctly silent」表,每行都对过全部 63 条 v17converted记录与apply()实现。E9 在这张卡上不是纪律,是交付物本身。复核要点
QUERY_CURSOR_REMOVED/QUERY_DISTINCT_REMOVED是被三处站点共享的常量 —— 判定按字面量归属,文件级查询根本看不见。这是 filer 计数漂移的机制性原因之一,已写进报告。ui/view.zod.ts:1288并回显违规摘录。fix(spec): one house sentence for every os-migrate-meta prescription (#6856 route D) #7031 建的门在第一次批量进句时就完成了它的工作。gen:schema六路径零 diff;references 仅 6 页机械追加;check:upgrade-guide未再生成而绿(migrations 账本未触)。AggregationNode.distinct— one face honoured it, five ignored it, and the same query answered two plausible numbers (#6815, ADR-0049) #7051 的aggregations[].distinct→ 无转换 → 正确沉默)—— 普查是活的,不是快照。ui/app.zod.ts7 处等)按规程立卡不扩围 —— 它们在 [spec] 35retiredKey()tombstones over protocol-17 conversions never mentionos migrate meta— the author is told to hand-edit when a tool exists #6914 自己的「文件级无句」普查定义之外,塞进来会让本卡的裁决表失去可复核性。本席抽验(git 协议):加句样本(
view.list.responsive以 house 句收尾)与沉默样本(analytics.zod.ts:51无句)两侧均验;environment-artifact的刻意沉默注释原样保留。Generated by Claude Code