# 结构基线与格式

## 1. 看板 frontmatter

```yaml
---
schema: project-board/1
project: my-app
archetype: web-app
created: 2026-10-23
nodes:
  "00": 治理
  "10": 全局与架构
  "20": 首页
  "30": 学习页
  "90": 归档
tags:
  - v1.0
  - perf
  - security
---
```

| 字段 | 说明 |
|---|---|
| `schema` | 固定 `project-board/1` |
| `project` | 必须等于文件名 stem（`my-app`） |
| `archetype` | 决定加载哪个域包 |
| `nodes` | **唯一节点注册表**：键是两位编号，值是名称 |
| `tags` | 可选，跨切面标签词汇 |

## 2. 编号

| 段 | 用途 |
|---|---|
| 00–09 | 治理 |
| 10–19 | 全局 / 横切 |
| 20–39 | 用户面 |
| 40–59 | 账户与自助 |
| 60–69 | 领域特有 |
| 70–79 | 经营 |
| 80–89 | 后台与平台 |
| 90–99 | 归档 |

规则：
- 编号一经分配**永不复用**；节点废弃时标 `(已废弃 → 见 XX)`，不回收编号。
- 缺号是正常的，不要为了填满而造节点。
- 节点数：小项目 3–5，中等 6–10，大项目 11–15；超过 15 才考虑加一级（本版不支持二级）。

## 3. 节点

```markdown
## 20 首页
> 范围：四屏 / 情景剧场 / 段位阶梯 / 页头搜索 / 视觉
```

- `## <两位编号> <名称>`，名称与注册表一致。
- `> 范围：` 一行说清边界；可加 `不包含：`。
- 节点下只放任务复选框，不放决策。

## 4. 任务

```markdown
- [ ] 第二屏卡组错位幅度调参 · 验收: 1440/390 两档无溢出 · 关联: D-20-03 · @v1.0
- [ ] [[Cloudflare 缓存授权]] 需要 Zone 级令牌（待 owner）
- [x] ~~四屏结构定型~~ `3a43bb2`
```

- 默认不编号；需要被引用时加 `[T-<节点>-<序号>]`，如 `- [ ] [T-20-05] ...`。
- 回写定位：有 T-ID 按 ID，没有则按「节点 + 文本」；不要随意改已完成任务的文字，会影响定位。
- 可选字段用 ` · ` 分隔：`验收:` / `关联:` / `@标签`。
- 待拍板：`- [ ] [[主题]] 任务描述`。
- 完成后改 `[x]` 并加删除线，保留证据。

## 5. 决策

```markdown
### D-20-03 首页第二屏是否加回搜索口
- 节点: 20 首页
- 状态: 待拍板
- 日期: 2026-10-23
- 可逆性: 可逆
- 理由: 搜索已移到页头常驻，第二屏是否还需要一个入口
- 备选: 保持现状 / 第二屏加轻量搜索框
- 影响: 20
- 复审: 等 owner 看过浅色/深色版后定
- 关联: T-20-05
```

| 字段 | 规则 |
|---|---|
| `节点` | 主节点；以两位编号开头，编号必须在注册表里 |
| `状态` | `生效` / `待拍板` / `已被取代` / `废弃` |
| `日期` | `YYYY-MM-DD` |
| `可逆性` | `可逆` / `不可逆` / `已定` / `已执行` |
| `理由` | 为什么这么选（必填） |
| `备选` | 至少一个被否决的方案；轻决策可写 `—` |
| `影响` | 其他受影响的节点编号，逗号分隔 |
| `复审` | 什么条件/日期重新评估；没有写 `—` |
| `取代者` | 仅当状态为 `已被取代` 时写 |
| `关联` | 可选，指向任务 |

## 6. 编号与旧数据

- 新决策：`D-<节点>-<两位序号>`，节点内从 `01` 开始，序号不复用。
- 旧决策（`D1`–`D68`）**冻结不改号**，只补 `节点:` 字段；lint 接受两种格式。
- 台账扁平按 ID 排序；ID 自带节点，所以文件天然按节点分组，不需要 `##` 章节。

## 7. 链接规则

- 任务 → 决策：任务行写 `关联: D-20-03`。
- 决策 → 任务：可选 `关联:`；反向关系由 UI 计算，**不做双向维护**。
- 决策 → 节点：`节点:` 主归属，`影响:` 其他节点。
- 一条关系只写一次；另一侧靠派生。

## 8. 状态派生

| 状态 | 派生规则 |
|---|---|
| 节点进度 | 该节点已完成任务 / 总任务 |
| 节点状态 | 有待拍板=橙；有未完成=蓝；全完成=绿；无任务=灰 |
| 停滞 | 最近一次修改超过 14 天 |
| 项目进度 | 全部节点汇总 |

**不要手写这些数字。**

## 9. 归档与压缩

- 已完成任务保留在原节点，不删除。
- 阶段收尾时可压缩：一批已完成项合并成一行摘要，明细移到归档区或归档文件。
- 决策永不压缩；被取代的保留。
- 废弃节点保留编号，名称后标 `(已废弃 → 见 XX)`。

## 10. 标签（第二维）

- 语法：`@v1.0`、`@perf`、`@security`、`@bug`、`@spike`。
- 每条记录 0–2 个标签。
- 标签是临时的、跨切面的；节点是永久的、归属的。**不要用标签替代节点。**
