Files

99 lines
4.1 KiB
Markdown
Raw Permalink 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.
# Axhub 标注目录同步(强制)
使用 OneOS AutoPRD 时,除资源库归档外,**必须**把 PRD 挂到 Axhub Make 标注工具的「原型目录」里,用户才能在右侧面板直接打开。
## 落点(三份必须一致)
| # | 路径 | 作用 |
|---|------|------|
| 1 | `src/prototypes/<prototype-id>/.spec/requirements-prd.md` | **主真相**:产品可读 PRD 全文 |
| 2 | `src/prototypes/<prototype-id>/annotation-source.json`**顶层** `directory.nodes` | **标注目录入口**:面板里可见的 Markdown/PRD |
| 3 | `src/resources/prd/<prototype-id>-autoprd.md` | 资源库归档(可选但默认写) |
可选:复杂判定另写 `.spec/<topic>.md`,目录里再挂一条,并在 PRD 里链过去(与 `business-logic-documentation` 一致)。
## ⚠️ 目录必须写在文档顶层(常见踩坑)
Wire format`prototype-annotation` 一致):
```json
{
"documentVersion": 1,
"format": "axhub-annotation-source",
"data": { "version": 2, "prototypeName": "...", "nodes": [] },
"markdownMap": {},
"assetMap": {},
"directory": { "nodes": [] }
}
```
| 正确 | 错误 |
|------|------|
| 顶层 `directory.nodes` | 只写在 `data.directory` |
| `PrototypeAnnotationHost` / Make 读的是 `source.directory` | 写在 `data` 下时右侧「原型目录」为空 |
若误写在 `data.directory`:迁移到顶层 `directory`,并删除 `data.directory`,避免双源。
## 目录节点写法(推荐)
在说明根 `folder``children` **靠前**插入或更新:
```json
{
"type": "markdown",
"id": "<prefix>-doc-prd",
"title": "产品需求说明PRD",
"markdownPath": ".spec/requirements-prd.md",
"markdown": "<与 .spec/requirements-prd.md 相同的全文>"
}
```
### 分章节 PRD推荐便于右侧目录浏览
在「产品需求说明PRD」旁增加文件夹 **「PRD 分章」**,按 PRD 的 `##` 一级标题拆成多个 `markdown` 子节点(标题用章节名,正文为该章全文)。专题规格(`.spec/<topic>.md`)放在 **「专题规格」** 文件夹。
参考结构:
```text
folder <模块>说明
markdown 产品需求说明PRD ← 全文
folder PRD 分章
markdown 1. 一句话与目标
markdown 2. 模块边界
folder 专题规格
markdown <topic 标题>
```
`scripts/sync-annotation-directory.mjs` 的原型:改 PRD / `.spec` 后**必须执行**该脚本再生目录。
定稿后第 10 章「功能变更记录」必须进入 PRD 全文节点若有「PRD 分章」,同步该章节点。详见 [release-changelog.md](release-changelog.md)。
约定:
- `id``<短前缀>-doc-prd`(如 `ipc-doc-prd``wb-doc-prd``h5-va-doc-prd`
- `title`优先「产品需求说明PRD已有「PRD」可保留不改名
- **同时写** `markdownPath` + `markdown`:构建可内联路径,运行时目录也能直接读到正文
- 若已有同 id / 同标题节点:只更新正文与 path不新建重复入口
- 遵守 `prototype-annotation-layout`:目录以 `markdown` 为主,不要用 `link`/`route` 顶替 PRD
## 增量改原型时怎么更新
1. 根据改动的文件路径确定 `<prototype-id>`
2. 读现有 `.spec/requirements-prd.md`(没有则按 AutoPRD 模板新建)。
3. 只改受影响章节(故事、正逆向、关键逻辑、验收);其余保留。
4. 回写 `.spec` + `resources/prd` + **顶层** `annotation-source.json``directory`(正文与文件一致;含分章节点)。
5. 若原型有 `scripts/sync-annotation-directory.mjs`,改完后执行它。
## 可跳过全量重写的情况
纯样式、无文案/无流程/无判定变化的微调:不必重写整份 PRD但若改了用户可见文案或交互结果仍须同步对应段落与目录节点。
## 验收
- [ ] `.spec/requirements-prd.md` 存在且为最新
- [ ] `annotation-source.json` **顶层**有 `directory.nodes`(不是只在 `data` 下)
- [ ] 标注目录能打开「产品需求说明PRD」且内容与文件一致
- [ ] 若有「PRD 分章」:各章可单独打开
- [ ] 用户故事仍为业务条线说明口径(起点 / 怎么运作 / 闭环)