docs(architecture): 用现行单一提供者事实取代指向已删除 ADR-0001 的死链 - #6869
Merged
os-project-manager merged 1 commit intoAug 9, 2026
Conversation
`ARCHITECTURE.md` 的 ADR 小节指向 `docs/adr/0001-metadata-service-architecture.md`,
该文件已于 2026-02-11 在 `9da8e3e72` 中随 ADR-0002 与 `docs/adr/README.md` 一并删除,
读者点进去是 404。
不做「换个 ADR 重指」的机械修复:该链接承载的论断——「ObjectQL 与 MetadataPlugin
都可以提供 metadata 服务,MetadataPlugin 优先、ObjectQL 兜底」——本身已经不成立。
按 origin/main 核对:
- `packages/metadata/src/plugin.ts` 是唯一 `registerService('metadata', …)` 的地方;
`packages/objectql/src/plugin.ts` 只注册 `objectql` / `data` / `manifest` / `lifecycle`,
没有 `metadata`。
- ObjectQL 已退为消费者:`start()` 里读 metadata 服务、同步定义、订阅事件,
取不到时退回自身内部 registry。
- ADR-0001 幸存的那一半(共享接口)如今是 spec 契约
`packages/spec/src/contracts/metadata-service.ts` 的 `IMetadataService`,
槽位声明在 `packages/spec/src/system/core-services.zod.ts`。
因此该小节改为:以纯文本(非链接)记下被删路径与删除出处,陈述现行单一提供者架构并
指向上述活的契约与实现文件,仓储/变更日志/订阅机制指向仍在的 ADR-0008。并明确写出
「单一提供者这个决策目前没有 ADR 归属」——重新立档是维护者的事(PD #14),本 PR 不碰
`docs/adr/**`。
顺带把 `scripts/check-adr-anchors.mjs` 中 `UNRESOLVED_ADR_CITATIONS` 的 `0001` 条注释
更新为事实:它原本写「ARCHITECTURE.md still carries a markdown LINK」,本 PR 之后这句
不再为真。条目本身保留——ADR-0002 的历史引用仍让它 earning its place,门禁的 stale 检查
已验证(绿)。
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01F8q5J1MQyocgtNspb15fSn
|
The latest updates on your projects. Learn more about Vercel for GitHub. 1 Skipped Deployment
|
os-project-manager
marked this pull request as ready for review
August 9, 2026 02:29
os-project-manager
deleted the
claude/issue-6733-architecture-dead-adr-link
branch
August 9, 2026 02:43
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #6733
问题
ARCHITECTURE.md的 “Architecture Decision Records” 小节里唯一一条 bullet 是一个 markdown 链接,指向docs/adr/0001-metadata-service-architecture.md。该文件已于 2026-02-11 在9da8e3e72中随docs/adr/0002-database-driven-metadata-storage.md与docs/adr/README.md一并删除。读者从仓库最显眼的架构入口点进去,拿到 404。为什么不是「换个 ADR 重指」
先按
origin/main验证前提,而不是直接机械重指。结论:那条链接承载的架构论断本身已经不成立,重指到任何别的记录都只会把一句假话保留下来。把删掉的 ADR-0001 从历史里取回来读(
git show 9da8e3e72^:docs/adr/0001-…),它选定的是 “Option 3: Hybrid Approach”——ObjectQL 与 MetadataPlugin 都能提供 metadata 服务,MetadataPlugin 优先、ObjectQL 兜底。对照今天的代码:packages/metadata/src/plugin.ts:268调registerService('metadata', …)packages/objectql/src/plugin.ts只注册objectql/data/manifest/lifecycle,没有metadataIMetadataService(packages/spec/src/contracts/metadata-service.ts)start()里读服务、同步定义、订阅事件(ADR-0008 PR-7),取不到时退回自身内部 registry也就是说:「两个提供者」那一半已经退役,「共享接口 + ObjectQL 消费」那一半还在,但换了归属。
改法
该小节不再挂链接,改为:
packages/metadata/src/plugin.ts、packages/objectql/src/plugin.ts、packages/spec/src/contracts/metadata-service.ts、packages/spec/src/system/core-services.zod.ts;⛔ 本 PR 没有创建、恢复或修改
docs/adr/**下的任何文件。顺带修掉自己造成的一处陈述失真
scripts/check-adr-anchors.mjs里UNRESOLVED_ADR_CITATIONS的0001条注释原文写着 “条目本身保留:ADR-0002 的历史引用(“already discarded in v3.4's ADR-0001”)仍让它 earning its place。门禁自带 stale 检查(条目若不再需要会以 stale 报红),实测仍绿,见下。
门禁
三个门禁全绿,均为真实输出:
那 8 条 frozen 基线正是 #6726 记录的 ADR→源码死链,与本 PR 无交集。
关于「反向验证」的诚实说明
这里没有「改回去就变红」的门禁可用,而这恰恰是本 issue 的一部分事实:没有任何门禁扫
ARCHITECTURE.md的链接。check:adr-links只解析docs/adr/下的相对链接(531 条全绿),而这条死链在文件外;check:adr-anchors审的是 ADR 编号能否解析,不是链接目标,所以编号绿而链接 404;.github/workflows/check-links.yml的 lychee glob 恰好是content/**/*.md、content/**/*.mdx、README.md——ARCHITECTURE.md不在其中。这回答了原 issue 结尾那个悬而未决的问题:它不是没跑,是根本没覆盖到。所以本次修复的证据是链接普查而不是门禁颜色:同一段脚本在改前后各跑一次,
ARCHITECTURE.md的相对链接从12 条 / 1 条可解析变为12 条 / 2 条可解析,ADR-0001 那条从死链清单中消失,新增的 ADR-0008 链接可解析。顺带发现(已另行归档,未纳入本 PR diff)
普查同时暴露
ARCHITECTURE.md还有 10 条死链 + 2 处失效路径引用(整个## Related Documentation段除./ROADMAP.md外全死)。按 PD #10 另立 #6867(finding,未指派),未扩进本 PR 的 diff。它与 #6726 无交集:#6726 是docs/adr/内指向源码树的链接,#6867 是ARCHITECTURE.md自身的出链。影响面
纯文档 + 一处注释,无用户可见行为变化,故无 changeset,已打
skip-changeset。Generated by Claude Code