# operate：日常写入

前提：看板 frontmatter 有 `schema: project-board/1`。

## 读顺序

1. 看板 frontmatter → 拿到节点注册表。
2. 只在需要时读台账。
3. 不做全量扫描；不重新推导结构。

## 写任务

1. 判断归属节点（用注册表）。
2. 打开看板的 `## <节点>` 段。
3. 按格式追加：

```markdown
- [ ] 动词 + 对象 · 验收: ... · 关联: D-20-03
```

4. 落不下 → 走「新增节点」流程：
   - 回答三个问题（独立面？独立验收？会有多条记录？）
   - 提议编号 + 名称 + 范围
   - 写一条结构决策 `D-00-xx`
   - 更新 frontmatter `nodes:` 和 `##` 段
5. 完成时：`- [x] ~~...~~` + 证据。
6. 待你拍板：`- [ ] [[主题]] ...`。

## 写决策

1. 判断主节点。
2. 在该节点内取下一个序号：`D-<节点>-<nn>`（lint 会查重）。
3. 插入台账（按 ID 排序），使用完整字段。
4. 若推翻旧决策：
   - 旧条目改 `状态: 已被取代` + `取代者: D-xx`
   - 新条目写理由与备选
5. 若只是补背景：改原条目，不改 ID。

## 编辑禁忌

- 不改已定的编号。
- 不改已完成任务的文字（回写定位依赖它）；要改先补 `[T-<节点>-<序号>]`。
- 不删已完成 / 已废弃条目。
- 不在看板写决策，不在台账写任务。
- 不在第一个 `##` 之前追加记录。
- 不用表格承载可勾选任务。
- 不手写进度数字。

## 交叉引用

- 任务引用决策：`关联: D-20-03`
- 决策影响多节点：`影响: 20, 50`
- 反向关系由 UI 派生，不手写。

## 交付前

```bash
node "${DSH_SKILL_DIR:-$HOME/.dsh/skills/project-board}/scripts/lint.mjs" "${DSH_PROJECTS_DIR:-$HOME/Documents/Projects}/<project>"
```

error 必须清零；warning 至少读一遍。
