Files
HomeAgent/docs/zh
JianFeeeee cf14b840ef docs: 补齐文档状态分类 + 校正两轮代码改动后的失真
## 背景

上一次文档校订(b9b5ac0)之后又有两次代码提交(5194a96 / 8293282),
把 future-plan §1.1 整节变成了错的 —— 它还写着「档位没有生效点」
和「在 prepareInputTask 里加一次 activateSecurityProfile 调用」,
而后者正是被后来的收敛**否定掉的方案**。

## 新增 docs/zh/README.md(文档索引)

32 篇文档此前混着三种时态(当时实测 / 历史推演 / 设计规划),外观相同。
索引给出**状态分类与可信度规则**:

| 状态 | 能不能当事实用 |
|---|---|
| 已实现并部署 | ✅ 直接信 |
| 部分实现 | ⚠️ 只信标了"生效"的部分 |
| 设计 / 未实现 | ❌ 只能当设计意图 |
| 归档说明 | ❌ 不要改、也不要信 |

并写死**判据名可信度规则**:文档里的 `TestXxx` 不保证还存在。
给了核对命令,以及当前基线(27 条缺失的分布 —— 18 条属"设计未实现"类
文档的规划名、7 条是 §2.7.3 有意保留的历史对照表左栏、2 条属视频能力
未纳入契约)。判定标准:**在"已实现"类文档正文里找不到才是缺陷**。

## 重写 future-plan §1.1(已结案)

原节写的是错的方案。改成记录**真正的缺陷分三层**:

```
第 3 层(表面):activateSecurityProfile 零调用方
第 2 层:agent/core 在替 security 做策略决策
         (自己抠 security_profile / 自己选判定链 /
           自己写 Kind:"resident" 声明主体类别 —— 提权口子)
第 1 层(根因):security 缺少「输入接入点」
```

并补上「每 agent 一个实例」的最终形态(共享注册表 + per-agent 执行视图,
sessionProfile / longtimeProfile 两层,优先级 session > longtime 本身是安全语义)。

§〇「机制 ≠ 接线」表格里档位那一条从 🔴 改为 ✅。

## 各文档状态行

此前 14 篇缺状态行(runbook / 实测报告 / 计划类)。逐篇补上**符合实际内容**
的声明,而不是统一套一句。特别地:

- `commondev-design.md` 标题本就写「设计 · 未实现」→ 归到"设计"类
- `live-run-evidence-2026-10-04.md` → 明确标注"历史证据快照,不要用它的
  结论覆盖现在的实现判断"
- `legacy-issues.md` → 写明它与 future-plan 的分工(前者收已知问题,
  后者收能力缺失与零调用方)

## 正文里两处判据名漂移

- `TestBootCtxCloseAllIsReverseOrder` → 实际是
  `TestKernelStateCloseAllIsReverseOrder`(`BootCtx` 改名时判据跟着改的)
- `TestNilTypedBusSafety` → 标注为"规划名,仓库中不存在"

## 新增 §2.7.5 模块产物的实例化粒度

依赖图保证"设施已就绪",但没说该有几个实例 —— 这是独立决策。
记下 security 的两个答案:全局基线共享(否则插件声明对部分 agent 不生效)、
轮次状态 per-agent。并给出给未来新模块的两条判断标准。

## 安全文档

状态头补「架构形态」段(防火墙定位、per-agent 视图、两层档位);
接线状态表里 `ActivateProfile` 从 🔴 改为 ✅(2026-10-31 接通)。

## README

文档列表加索引与 future-plan 入口 —— 此前从 README 找不到 docs/zh 的任何指引。

## 核对

- docs/zh 32 篇全部有状态行
- 索引里列的文档全部存在,无遗漏
- 分类与各文档自述一致(逐篇抽查)
- go build 仍通过(纯文档改动)
2026-10-31 07:50:58 +08:00
..

docs/zh 文档索引

建立于 2026-10-31。目的:让读者知道该信哪一篇、哪些是历史记录。

此前本目录 32 篇文档混着三种时态 —— 当时实测、历史推演、设计规划 —— 外观完全相同,读者无从分辨。曾有文档写着「main.go 仍走串行代码」 而实际早已接完(滞后一整轮发布)。

所以先分类,再读内容。


一、怎么判断一篇文档的可信度

每篇文档首部应有状态行,取值只允许这四种:

状态 含义 能不能当事实用
已实现并部署 文中描述与代码一致,关键处给了取数命令 ✅ 可以直接信
部分实现 先说清哪部分生效、哪部分没有(附实测调用点) ⚠️ 只信标了"生效"的部分
设计 / 未实现 是方案,不是现状。代码里可能没有 ❌ 只能当设计意图
归档说明 历史记录,故意保留当时的写法 ❌ 不要改它,也不要信它

判据名的可信度规则(重要)

文档里出现的 TestXxx 名字,不保证现在还存在:

  • 已实现并部署类文档里的判据名 → 应当存在。找不到就是缺陷(报告它)
  • 设计 / 未实现类文档里的判据名 → 是规划的名字,可能从未实现
  • 归档说明类文档里的判据名 → 记录的是当时的事实,可能已改名或删除

历史上有过一次真实漂移:BootCtx 改名为 KernelState 后, TestBootCtxCloseAllIsReverseOrder 随之变成 TestKernelStateCloseAllIsReverseOrder,而文档没跟上。

核对命令(任何时候都可以自己跑):

# 列出本目录引用的全部判据名里,仓库中找不到的那些
for n in $(grep -rhoE '`Test[A-Z][A-Za-z0-9_]+`' docs/zh/*.md | tr -d '`' | sort -u); do
  grep -rq "func $n(" --include="*_test.go" internal cmd 2>/dev/null || echo "缺失: $n"
done

跑出来有缺失不一定是缺陷 —— 先看它出在哪类文档里。

当前基线(2026-10-31):27 条缺失,分布如下,全部已知且已说明:

篇数 文档 性质
18 commondev-design.md / commondev-agent-runtime-design.md 「设计 · 未实现」类,判据名是规划名
7 kernel-modularization-design.md §2.7.3 的对照表左栏(有意的历史记录),其中 4 条已登记 future-plan §2.3
2 multimodal-space.md 视频能力未纳入契约,判据为规划名

⇒ 在「已实现并部署」类文档的正文里(非历史对照表)找不到判据名,才是缺陷。


二、文档清单(按状态分类)

2.1 已实现并部署 —— 可以直接当事实

文档 内容
kernel-modularization-design.md 装配架构权威:依赖声明、BFS 分层、Group 0、实例化粒度
kernel-secret-firewall-design.md 安全防火墙(部分实现,见文首接线状态表)
input-scheduler-design.md 两类别输入 + L1–L4 中断 + 可抢占
resident-subagent-design.md 驻留子:轻量内核、两级记忆、父子 L3/L4
toolcall-contract-and-sequence-design.md 工具调用契约与顺序
ci-cd-runbook.md CI/CD 操作手册
deploy-runbook.md 部署手册
site-infra-runbook.md 站点基础设施

2.2 参考 / 实测报告 —— 数据可信,结论看日期

文档 内容
kernel-performance.md 性能实测数据
production-recall-validation.md 生产召回验证(含未解决的 3 条遗留边)
recall-as-association.md 召回作为关联的机制说明
recall-capability-tiers.md 召回能力分层(含 2 个未补的缺口)
multimodal-space.md 多模态向量空间
vector-provider-decision.md 向量 provider 选型决策
abstention-criterion.md 弃答判据
triple-extract-attention.md 三元组抽取与注意力

2.3 设计 / 未实现 —— 只能当设计意图

文档 状态
commondev-design.md 标题即写明「设计 · 未实现」;架构已变更,见其 §12
commondev-agent-runtime-design.md 架构已按前篇 §12 调整,部分未落地
interrupt-subsystem-split-plan.md 探测结论 + 实施计划
toolcall-parallel-execution-plan.md 并行化执行计划(含遗留项)
memory-blockflow-repair-plan.md 记忆块流修复计划
memory-restructure-plan.md 记忆重构计划
memory-usability-plan.md 记忆可用性计划
scene-memory-fix-plan.md 场景记忆修复计划
legacy-table-retirement.md 遗留表退役(收尾中)
entities-retirement-plan.md 实体表退役
prod-migration-checklist.md 生产迁移清单
triple-distill-llm-design.md 已实现并部分否决

2.4 归档说明 —— 历史记录,不要改也不要信

文档 说明
context-overflow-l4-design.md 术语已过时(memory_* 等旧工具名保留原样)
live-run-evidence-2026-10-04.md 某次实跑证据快照
legacy-issues.md 遗留问题清单

为什么归档文档里有旧工具名却不改:它们是证据快照。 把 memory_recall 改成 stablemem_recall 等于篡改当时的记录, 让后来的人无法判断"这条结论是在哪个版本上得出的"。

2.5 唯一未做登记处

文档 内容
future-plan.md 全仓唯一的「尚未实现 / 已知缺口」登记处

规则:任何设计文档都不再自己维护「未做」小节,一律登记到 future-plan。 历史上各文档各自维护,结果滞后过 —— 已完成仍写未做,未做被当成已完成。


三、写文档的三条纪律

  1. 数字类断言必须给取数命令(如模块数用 go run ./cmd/homed-depgraph -print),不要凭记忆写数字。 本文档集历史上写错过一次(17 模块 vs 实际 20)。

  2. 区分「机制存在」与「接线生效」。本项目的头号缺陷形态是 机制写对了、判据全绿、生产里零调用方。描述能力时写实测的生产调用点, 不要只写"已实现"。

  3. 判据要能红。写判据时先问:把对应实现删掉,这条判据会红吗? 本仓踩过两次:security_toolgate_test.go 手动调 SetSecurity 把缺失的接线补上了;retention_test.go 手写合规文件名, 从没跑过真实产物。两者都永远绿。