Files
pikasTech-HWLAB/docs/reference/spec-v02-documentation-governance.md
T
2026-06-05 17:23:56 +08:00

72 lines
7.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# v0.2 文档治理规格
本文是 HWLAB `v0.2` 文档体系的长期规格。它定义哪些文档可以留在仓库、哪些过程材料必须迁入 GitHub issue、旧 D601/G14 口径如何处理,以及 `docs/` 根目录不得再堆放 Markdown 或 JSON 的收敛规则。
实施和历史归档见 [pikasTech/HWLAB#532](https://github.com/pikasTech/HWLAB/issues/532)。本文只记录稳定规则;被迁移文档的全文在 issue 评论中按源路径归档。
## 设计目标
- `AGENTS.md` 是唯一顶级入口;不再维护根 `README.md``docs/reference/README.md`
- `docs/reference/` 是长期参考唯一目录,只放规格、约束、入口、判定标准和稳定 runbook。
- `v0.2` 专项长期规格必须使用 `spec-` 前缀,例如 `spec-v02-cicd.md``spec-user-access.md`
- 计划、里程碑、阶段推进、一次性排障、报告合同和历史验收材料不留在仓库文档树;全文迁入 GitHub issue 后删除源 Markdown。
- `docs/` 根目录不得直接放 `*.md``*.json`。机器契约放 `protocol/``deploy/` 或源码相邻目录;临时报告放 `/tmp``.state` 或 CI artifact。
- D601、旧 DEV gate、旧 `16666/16667`、M0-M5 里程碑和 simulator/patch-panel 旧规格只作为历史归档,不作为 `v0.2` 当前规格。
## 允许的文档形态
| 位置 | 允许内容 | 不允许内容 |
| --- | --- | --- |
| `AGENTS.md` | 入口索引、一句话规则、长期参考链接 | 详细设计、计划全文、过程记录、二级 README 口径 |
| `docs/reference/*.md` | 长期规格、稳定边界、判定标准、可复用 runbook | 日期化流水账、阶段计划、迁移 TODO 全文、临时 evidence、旧规格副本 |
| GitHub issue/PR | 计划全文、里程碑拆解、过程记录、一次性排障、执行证据 | 作为长期权威替代 `docs/reference` |
| `protocol/` / `deploy/` | 机器可消费 schema、deploy intent、GitOps 模板 | 人写过程报告、临时 JSON dump |
| `/tmp` / `.state` / CI artifact | 临时报告、运行输出、截图、trace dump | 需要长期复用的规格 |
## 迁移规则
1. 发现 `README.md``docs/*.md``docs/*.json``docs/plan/*.md` 时,先判断是否有长期价值。
2. 有长期价值的,只把稳定结论吸收到对应 `docs/reference/` 权威文档;不要整篇搬入 reference。
3. 属于计划、里程碑、阶段迁移、报告、一次性排障或历史验收的,全文迁入 GitHub issue body/comment,再删除源文件。
4. 属于旧规格且与当前 `v0.2` spec 冲突的,直接删除;必要时在新 spec 中用一句话说明旧口径已被替代。
5. 迁移后的 reference 必须引用相关 issue,尤其是规格尚未完全实现、仍需要 issue 承接实施步骤时。
6. GitHub issue/PR 写入必须走 UniDesk CLI `bun scripts/cli.ts gh ...`,不能直接用原生 `gh` 或手写 GitHub API。
## 当前状态沉淀规则
- 当当前实现状态和目标状态不同,`docs/reference/``spec-*.md` 必须分别标明:当前已经存在并应继续遵守的 runtime/source 权限链路,以及仍按 issue 收口的目标能力。不要把目标状态写成已完成,也不要把当前临时过程写成长期规则。
- 当前状态可以记录稳定服务组成、authority 链路、用户入口、SecretRef 边界和可复用判定标准;不要写 commit、日期、PR 流水、临时命令输出或一次性实测全文。
- 已移除的实现路径、断言、预检、兼容入口和门禁只保留在 issue/PR 证据中。长期参考中应替换为当前 authority 和删除规则,不维护已移除对象清单,也不把它们迁移成新的负向 gate。
- SPEC 的测试规格只表达当前目标行为。发现测试只保护历史路径时,直接删除或改写为当前 Web session/API key/OpenFGA/Admin Access 行为,不另建 legacy mode 或双路径验收。
## D601/G14 口径处理
- 当前 HWLAB DEV/PROD 真相是 G14 k3s、`G14`/`G14-gitops``hwlab-dev`/`hwlab-prod`
- `v0.2` 真相是 `origin/v0.2``/root/hwlab-v02-cicd.git``devops-infra` git mirror/relay、`v0.2-gitops``hwlab-v02``19666/19667``/root/hwlab-v02` 只作为人工开发和短连接源码工具 workspace,权威规格见 [spec-v02-cicd.md](spec-v02-cicd.md)。
- D601 只允许作为 legacy 事故回放、迁移对照或 Windows 硬件 bridge 背景出现在长期参考中;不得作为当前 `v0.2` 发布、验收或权限规格。
- 任何根文档或计划文档如果仍把 D601、旧 DEV gate、旧 `main`、旧 `16666/16667` 或 simulator/patch-panel 写成当前规格,应删除或改为引用新 spec。
## 本次收敛映射
| 被删除来源 | 处理 |
| --- | --- |
| `README.md` | 有效入口信息已由 `AGENTS.md`、[architecture.md](architecture.md)、[dev-runtime-boundary.md](dev-runtime-boundary.md) 和 [spec-v02-services.md](spec-v02-services.md) 承接;全文归档到 #532。 |
| `docs/cloud-web-workbench.md` | 稳定前端约束由 [cloud-workbench.md](cloud-workbench.md) 承接;全文归档到 #532。 |
| `docs/dev-acceptance-matrix.md``docs/dev-gate-*``docs/dev-evidence-*` | 旧 DEV/D601 gate 和报告材料仅作历史归档;当前边界见 [dev-runtime-boundary.md](dev-runtime-boundary.md)、[MVP-e2e-acceptance.md](MVP-e2e-acceptance.md) 和 [spec-v02-cicd.md](spec-v02-cicd.md)。 |
| `docs/dev-acceptance-checklist.json` | 旧 M5 dry-run 机器 fixture 已退休并从源码移除;当前 v0.2 非视觉验收走 `hwlab-cli client` 真实 Cloud Web API。历史全文归档到 #532。 |
| `docs/m0-*``docs/m1-*``docs/m3-*``docs/m4-*``docs/m5-*``docs/operator-runbook.md` | 旧里程碑和 operator 阶段材料迁入 #532;当前 M3 判定见 [m3-loop-rollout-runbook.md](m3-loop-rollout-runbook.md)。 |
| `docs/topology-constraints.md` | simulator/patch-panel 旧拓扑规格与 `v0.2` 裁撤口径冲突;当前服务取舍见 [spec-v02-services.md](spec-v02-services.md)。 |
| `docs/schema-drift-map.md` | 人写摘要归档到 #532;机器 source of truth 仍是 `protocol/schema-drift-map.json`。 |
| `docs/plan/hwlab-v02-namespace-cicd.md` | 全文迁入 [pikasTech/HWLAB#530](https://github.com/pikasTech/HWLAB/issues/530) 评论;长期规格见 [spec-v02-cicd.md](spec-v02-cicd.md)。 |
| `docs/plan/v02-multi-user-migration.md` | 全文迁入 [pikasTech/HWLAB#531](https://github.com/pikasTech/HWLAB/issues/531) 评论;长期规格见 [spec-user-access.md](spec-user-access.md)。 |
| 旧设备执行规格和旧 MVP plan | 旧路线只保留在对应 issue 历史评论;当前长期规格见 [spec-hwpod-harness.md](spec-hwpod-harness.md)。 |
## 验收标准
- `AGENTS.md` 索引本文,并且不再把 `README.md` 当入口。
- `find docs -maxdepth 1 -type f \( -name '*.md' -o -name '*.json' \)` 为空。
- `docs/plan` 不再包含仓库内计划 Markdown;后续计划写入 GitHub issue。
- `docs/reference/` 中不存在指向已删除根文档或 `docs/plan` 的相对链接。
- `D601` 只以 legacy/回放/bridge 背景出现在长期参考;不会作为 `v0.2` 当前规格或验收路径。
- 任何未完成规格都必须引用承接实施的 GitHub issue。