Skip to content

cross validateRetiredPermissionResidue to the runtime publish door — the CLI door cannot reach the AI/Studio JSON authors ruling D named #17944

Description

@os-bill

validateRetiredPermissionResidueCLI_ONLY 接到运行时写入门(runtime-publish),让它够得到裁决 D 真正点名的那批作者:AI / Studio / REST /meta / MCP —— 他们从不跑 lint,但每一次写入都过那扇门

裁决

维护者于 2026-09-13T07:2xZ 裁定 a(记录在 #17425 评论 5651940657),并指示:

17425 按照简化的模式实现就可以

本卡走简化实现。 ⛔ 不要为它造框架。

为什么这张卡存在

裁决 D 把信号定在「原始 objectstack.json 源」。仓里没有这种文件:CLI 的 loadConfig 只接受 objectstack.config.{ts,js,mjs},十个树内配置全是 .ts,而 .ts 作者早已被墓碑的 z.never()tsc 挡住;permission 类型声明的 filePatterns*.permission.ts / *.permission.yml,没有 .json

⇒ 规则如今新增的覆盖只是 .js/.mjs 配置与 TS 逃逸口。树内这类作者为零。 而裁决 D 自己的重开条件点名的是「不跑 lint 的 AI 生成 JSON」——一条 lint 规则结构上够不到那种作者。

可行性已实测,⛔ 不是推断

PR #17924 的在档复核测了,domain:spec 席复读确认:

packages/metadata-protocol/src/protocol.ts
  ~:15839   const parsed = schema.safeParse(request.item);          // 先解析
  ~:15900   assertRuntimeAuthoringRules({ …, body: request.item })  // 交的是【原始体】

⇒ 门拿到的是原始写入体而非 parsed.data,残余还在。规则现有 surfaceReason 里写的「没测过,接过去可能是幻觉检查」已被这条读数推翻

⚠️ 两条约束,⛔ 简化实现也不能省

① 音量:逐条报会变成它自己预警过的那场风暴

复核实测:把这条规则跑在那个奠基性的构建产物夹具上 → 150 条 findings

而规则引用的契约文本(acceptRetiredDefaultResidue 的 docblock)已经逐字预警过同一件事:

The strip is deliberately SILENT — real artifacts carry the residue once per permission entry, and a per-occurrence notice would be a 75-line storm that teaches operators to skim.

⇒ CLI 门一次跑一个项目,150 条还能忍;每一次元数据写入都按条报,就是它自己写的那场风暴。

简化实现的最低线:聚合成一条(「本次写入含 N 条退役残余,形如 …」),⛔ 不是 N 条。这是测量出来的约束,不是偏好

surfaceReason 那段话现在是错的,必须重写

它现在写着运行时门那条「没测」。测了,而且结论相反。 ⇒ 接门时必须重写那段散文,⛔ 不能只改 surface 列表 —— 否则树里留下一句被自己的改动证伪的话。

建议的第一个动作:先量树外人口

⚠️ 没有人量过客户项目里有多少元数据还带着 allowRestore: false / allowPurge: false

  • 接近零 ⇒ 本卡优先级很低,慢慢做;
  • 很多 ⇒ 上面那条音量约束就不是优化而是前提

⇒ 这个读数不需要任何裁决就能做,且两个方向都能帮决策。建议作为本卡的第一步。

出处

由 PR #17924 的在档复核(claude-fable-5-1,档位由 spec 席从转录核验 86/86)提出为 ESCALATE;维护者裁 a;domain:spec 执行席据此立卡。

裸卡、未定级 —— 无 domain:*、无 priority:*,二者皆分诊席独有产出;仅预填 type。


Generated by Claude Code

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions