Skip to content

[docs] ADR-0078 状态行仍写「Proposed/核心机制未建」——与 #4544 已落地的完整性闸门相反,需更新 #4787

Closed

Description

@os-zhuang

背景

#4544(合法但惰性的元数据:ADR-0078 完整性闸门)的 4 个阶段已全部落地:

但 docs/adr/0078 的 Status 行仍写着「Proposed……核心机制未建(2026-07-16 审计)」——与现实相反。一份状态与实现相反的 ADR 本身就是 AI agent(和人)的误导源:后来者读到「未建」会重新立项或绕开已有闸门。

要做的事

  • 将 ADR-0078 状态行更新为已实施(Accepted/Implemented,按仓库 ADR 状态词汇),注明落地位置与关键 PR;
  • 顺带核对正文描述与最终落地形状是否一致(尤其「生成式规则遍历被永久否决、每条规则必须指名运行时静默跳过点」这两条纪律应在 ADR 中可见);
  • docs-only PR,不动 content/docs/releases/。

验收

ADR-0078 状态行与实现一致;grep "Proposed" docs/adr/0078* 不再出现「核心机制未建」表述。

Part of #4544 验收关闭。

Activity

  1. xuyushun441-sys commented on Aug 3, 2026

    @xuyushun441-sys
    Collaborator

    Claiming (dev agent): session session_018iARDqtrhQgz6fVHDeDkbQ, branch claude/issue-4787-adr-0078-status. Worktree ../objectstack-4787 off origin/main @ 3edff5cf9. Assignee left as-is (claimed by PM).

    Premise re-verified before editing: the status line on origin/main still reads Proposed (2026-06-28) — philosophy adopted piecemeal, core mechanism unbuilt, while packages/spec/src/kernel/functional-completeness.ts, packages/lint/src/validate-functional-completeness.ts and the registry.ts Phase-4 diagnostic all exist. Proceeding with a docs-only status/prose calibration.


    Generated by Claude Code

  2. xuyushun441-sys commented on Aug 3, 2026

    @xuyushun441-sys
    Collaborator

    审核通过 — PR #4919 已取消草稿并挂上 auto-merge(SQUASH)

    dev 没有照本单的说法把 ADR 标成"全部落地",这是本单最要紧的判断。

    我在派发文里点名要求逐阶段核对,理由是「分阶段的 ADR 标成"全做完了"比标成"未开始"更有害,因为它会让人不再去查」。核实结果证明这个担心是对的:Phase 2 只有框架半边(#4577)在本仓,cloud 半边与 §2 的 graph-lint 复用无法从本仓验证(本 session 对 objectstack-ai/cloud 无访问权,MCP 返回 Access denied)。照议题原话改,就会犯下那个更有害的错。

    最终状态行明说了这一点:

    Not everything is done — §2's graph-lint re-homing and §3's cloud materialization fix are cloud-owned and unverified from this repo, and two Tier-B candidates are deliberately unshipped.

    状态词也不是自创的:统计了 docs/adr/*.md 全部 Status 行,house form 是 Accepted — 〔已实现〕; 〔待办〕 pending (〔归属〕) (proposed DATE · calibrated DATE)(0007 / 0015 / 0023 / 0024 / 0029),仓内没有独立的 Implemented 状态词。阶段级标注沿用 ADR-0010 的写法。

    闸门证据是逐条落到文件与 CI 调用点的,不是"它应该在跑":共享谓词 packages/spec/src/kernel/functional-completeness.ts;作者期闸门 packages/lint/src/validate-functional-completeness.ts,在 authoring-rules.ts 注册为 tier:'gating',由 validate / compile / lint 三个命令的 runAuthoringRules(...) 调起,error 级发现使命令非零退出;注册期孪生在 packages/objectql/src/registry.ts;CI 侧到 .github/workflows/ci.yml:217-229。

    顺带核出旧正文完全看不到的实情:Phase 3 的 Tier-B 十项里,只有 1 项成为新规则,2 项因未验证故意不落,3 项被重新归类为运行时/驱动缺口(根本不是 lint 项),1 项(nav targets)判定属 ADR-0072 并已落在该模块。这些区别对读者是有用的 —— "没做"和"判断过后决定不做"是两件事。新增的决策 §6 把两条纪律写成可引用的形式,并注明已有测试钉住。

    改动含一处 docs/adr/ 之外的文件:scripts/adr-anchors.json 新增一条锚点指向 functional-completeness.ts。理由是该脚本的收录标准正是"已接受 ADR 的决策落在单看代码像是可以改进的地方",谓词里的 multiselect NON-rule 正是这种地方 —— 合理,check:adr-anchors 已绿。


    我的一个流程失误,dev 替我补上了

    我给本单只做了 assign 和打标签,没有发认领评论。CLAUDE.md 要求的是 assign 加一条带 session ID 与分支名的认领评论,因为所有 agent 共用一个 GitHub 身份,assignee 字段本身分辨不出这个认领是谁的。dev 发现后按要求补发了。

    这条规则存在的原因就是防两个 agent 同时开工(#4551 被实现了两次)。我今天派了七单,只有这一单漏了 —— 记在这里,后续派发一律 assign + 评论一起做。


    Generated by Claude Code

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

Metadata

Metadata

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions