design-doc · v10.9 · 2026-10-29 · sha256 2391f33c4a9286ce
design-doc v10.9A
Immutable. This exact content never changes and is served at /api/v1/blob/2391f33c4a9286ce.
---
name: design-doc
description: >
维护**单一作用域**的 ued/ 分层设计文档、需求编码、架构决策、验证/EVAL、
术语表与产品基线。作用域可以是单系统 `ued/`,也可以是系统内的一个子系统
`ued/{subsystem}/`;由多个子系统组成的系统级注册表、依赖钉住与发布由
system-design-doc 负责。
**design-doc是极其重要的技能,应作为每次开发和设计的基础。**
项目有 ued/ 时,改功能、修缺陷或按需求实现代码前 MUST 先对照设计:
需改设计则先文档后代码;禁止先写代码再补设计。
亦用于创建、审查、更新设计文档与基线发版。
license: MIT
metadata:
version: "10.9"
author: "designdoc"
spec-compliance: 遵循 Agent Skills 开放标准
tags: [design, documentation, product, architecture, specification]
triggers:
- "设计文档"
- "需求文档"
- "设计方案"
- "增加功能"
- "改功能"
- "修bug"
- "修缺陷"
- "实现"
- "废弃功能"
- "设计规范"
- "文档规范"
- "功能需求"
- "术语"
- "术语表"
- "改名"
- "更名"
- "维护性变更"
trigger_principle: >
设计文档维护与据文档改代码均受编码与基线约束;
有 ued/ 时改行为类请求亦应加载本技能,先判定设计是否要动,再动代码。
capabilities:
- "多层级设计文档生成 (L0-L6)"
- "全局唯一编码管理与冲突检测"
- "自动化文档规范性审查"
- "跨文档引用一致性维护"
- "全局术语表与单一权威定义"
- "非语义维护与变更追溯"
- "变更代码前的设计对照与文档优先"
compatibility: 需能访问 ued/ 目录,可选从运行环境获取当前执行主体标识
---
# 产品设计文档规范(UED)
本 skill **约束 AI 的执行方式**,不是人类写作教程。**规则与流程在 `references/`**;本文是运行时路由:选对 workflow、守住不变量、该停则停。
措辞强度见 [coding-system.md · 需求级别说明](references/coding-system.md#需求级别说明)。
## 一致性(无冲突)
包内与 `ued/` 内**同一规则只允许一种表述**。发现技能包两处不一致、或设计文档之间/与基线冲突 → 视为**规范缺陷**,当轮修正或列入人审后修正;**MUST NOT** 用「优先级表」掩盖冲突。定稿与发布前审查须确认无未解消冲突。
## 运行时步骤
1. 确认当前作用域存在设计树:单系统为 `ued/`,系统内为 `ued/{subsystem}/`;解析配置见 [runtime-config.md](references/workflows/runtime-config.md)。
2. 若 `ued/README.md` 含**子系统注册表**,说明这是系统根而非单作用域:系统级用 [system-design-doc](../system-design-doc/SKILL.md),本技能只对每个 `ued/{subsystem}/` 运行。若含 `应用注册表` / `app_key` / `doc_mode`,说明是 9.x 旧多应用结构:停止并指向 system-design-doc 的迁移流程,**MUST NOT** 当单系统继续。
3. 按下方**任务路由**加载对应 workflow(**MUST read**);仅在流程分支需要时再打开所列 rule。
4. 解冻、废弃、批量编码或动基线前:先短计划,人审停点见各 workflow 的 Checkpoint。
5. 改完跑 `check_docs.py`;通过≠语义正确。子系统校验用 `--glossary ued/glossary.md`;检查器按系统注册表只读解析其他子系统的文档编码与术语块,仅用于术语表 `定义位置`。
6. **仅当**本轮改过 `ued/`、要定稿/提交、或有基线漂移须询问时,再加载 [lifecycle.md](references/workflows/lifecycle.md) 走 Checkpoint 5;未改设计文档则不必读 lifecycle。
## 任务路由
| 意图 | MUST 先读 |
|------|-----------|
| **多子系统结构**(`ued/README.md` 含子系统注册表) | [system-design-doc](../system-design-doc/SKILL.md);本技能只对单个 `ued/{subsystem}/` 运行 |
| 首次接入 / 不确定先读哪页 | [decision-card.md](references/decision-card.md) |
| 增量加功能 / 加需求 | [change-feature.md](references/workflows/change-feature.md) |
| 创建新设计文档 | [create-document.md](references/workflows/create-document.md) |
| 分配编码;改 ID/类型码/正式标题或含义 | [allocate-and-lock.md](references/workflows/allocate-and-lock.md) |
| 统一用语 / 修正措辞或路径 / 名称与标题非语义调整,语义不变 | [maintenance-change.md](references/workflows/maintenance-change.md) |
| 废弃细项/文档 | [lifecycle.md](references/workflows/lifecycle.md)(作废段) |
| 定稿确认 / 提交收尾 / 基线漂移询问 | [lifecycle.md](references/workflows/lifecycle.md)(Checkpoint 5;见上「仅当」) |
| 基线 PATCH / MINOR / MAJOR | [baseline-change.md](references/workflows/baseline-change.md) |
| 写/改 EVAL | [eval-report-profile.md](references/eval-report-profile.md) + 模板 [eval.md](assets/templates/eval.md) |
| 维护术语表 / 定义术语 / 术语冲突 | [glossary-conventions.md](references/glossary-conventions.md) + 模板 [glossary.md](assets/templates/glossary.md) |
| 审查设计文档 | [review-guidelines.md](references/review-guidelines.md) |
| **改功能 / 修缺陷 / 改行为**(有 `ued/`) | [before-code-change.md](references/workflows/before-code-change.md)(**先判定设计要不要改**) |
| **按已定设计实现代码** | [implement-from-design.md](references/workflows/implement-from-design.md) |
| 维护项目 `AGENTS.md` / 约定文件 | [project-agents-guide.md](references/project-agents-guide.md) |
| 写流程图 / 判断用 Mermaid 还是箭头 | [flowchart-guide.md](assets/guides/flowchart-guide.md) |
动代码相关意图:**MUST** 先走 `before-code-change`,**MUST NOT** 默认先改业务代码。
## 不变量(任何任务)
1. 已分配编码 **MUST NOT** 删除或复用;放弃走作废。
2. 编码 ID/类型码永不就地改;`正式`/`草案` 标题与已正式业务含义不就地改**语义**(通道见 [锁定矩阵](references/object-model.md#锁定矩阵mandatory));不改含义的维护走 [维护性变更](references/workflows/maintenance-change.md),不改状态与修订号。
3. 未入**当前**产品基线(或基线 revision 落后)的内容 **MUST NOT** 作为实现依据。
4. 语义引用只用细项/文档编码,**MUST NOT** 用章节编号;跨文件路径以 `./` 或 `../` 开头。
5. `ued/` **MUST NOT** 含可执行实现代码(算法/契约/状态机可以)。
6. 高风险生命周期与基线动作 **MUST** 经人确认(Checkpoint);AI **MUST NOT** 自行定稿或 `--bump-product`。
7. 模板即复制源;哨兵外说明 **MUST NOT** 写入实例([模板边界](assets/templates/index.md#模板边界哨兵))。
8. 术语在项目内**只有一个权威定义**;全局索引固定为 `ued/glossary.md`(子系统校验用 `--glossary` 指向它),同名冲突 **MUST** 当轮收口,**MUST NOT** 用第二张表并存。
9. 本技能只处理**单一作用域**(`ued/` 或 `ued/{subsystem}/`);系统根的子系统注册表、跨子系统依赖钉住与系统发布 **MUST** 交给 [system-design-doc](../system-design-doc/SKILL.md),**MUST NOT** 在作用域 README 里另建注册表或系统级版本。
细则单点(按需打开,勿在任务开始时整包预读):
| 主题 | 文件 |
|------|------|
| 对象 / 锁定 / 信息项角色 | [object-model.md](references/object-model.md) |
| 编码 / 定义块 / 引用 / 本文引用 | [coding-system.md](references/coding-system.md) |
| 类型切分(含 EVAL) | [type-profiles.md](references/type-profiles.md) |
| 四态 / 门控 / 修订号 / 维护性变更 | [status-definitions.md](references/status-definitions.md) |
| 产品版本 / 基线 | [product-version.md](references/product-version.md) |
| 层级 / 按需启用 | [layer-system.md](references/layer-system.md) |
| 术语 / 全局术语表 / `所用术语` | [glossary-conventions.md](references/glossary-conventions.md) |
| 细项 / 文档作废 | [item-deprecation.md](references/item-deprecation.md) / [doc-deprecation.md](references/doc-deprecation.md) |
## 范围与工具
作用域根记为 `{scope}`:单系统为 `ued/`,系统内为 `ued/{subsystem}/`。本技能不处理系统根 `ued/` 的注册表与发布清单。
| 目录 | 范围 |
|------|------|
| `{scope}/L0`–`L6` | 战略→验证;`EVAL-*` 在 L6;`ADR-*` 在 L3 |
| `{scope}/references/` 内 `REF-*` | 外部资料 |
| `{scope}/baselines/` | 该作用域的产品基线 |
模板:[assets/templates/index.md](assets/templates/index.md)。
```bash
python3 .agents/skills/design-doc/scripts/check_docs.py -p <scope路径>
python3 .agents/skills/design-doc/scripts/check_docs.py -p <scope路径> --glossary <项目术语表路径>
python3 .agents/skills/design-doc/scripts/check_docs.py -p <scope路径> --bump-product --patch|--minor|--major --note '…'
python3 .agents/skills/design-doc/scripts/check_docs.py -p <scope路径> --refs {编码}
python3 .agents/skills/design-doc/scripts/check_docs.py -p ued --cross-scope-deps
python3 .agents/skills/design-doc/scripts/tests/run_fixtures.py
```
`--check-templates` / `--instantiate` 见脚本帮助。`--cross-scope-deps` 是系统根只读跨作用域细项 `依赖` 检查(跨子系统成环、`正式` / `草案` 指向他子系统 `初稿`),须以 `-p ued` 在系统根运行,供 [system-design-doc](../system-design-doc/SKILL.md) 审查调用;目标存在性与前缀归属仍由 `check_system.py` 负责。静态检查不代替人工审查与定稿确认。
**适用**:单一作用域(单系统 `ued/` 或一个子系统 `ued/{subsystem}/`)的设计文档全生命周期;有 `ued/` 时变更代码前的设计对照与据文档实现门禁(**不代替**编写业务代码)。多子系统结构、跨子系统依赖与系统发布由 [system-design-doc](../system-design-doc/SKILL.md) 编排。**不适用**:与 `ued/` 无关的纯环境琐事、用户/运维手册。
## 常见问题(短答)
- **原来的「多应用」怎么处理?** → 统一称子系统,由 system-design-doc 管注册表与系统发布;本技能只维护单个作用域
- **系统根 `ued/README.md` 要产品版本或基线吗?** → 不要;由各子系统各自持有
- **编码怎么分?** → [allocate-and-lock.md](references/workflows/allocate-and-lock.md)
- **能改正式标题/含义吗?** → 语义不能就地改;不改含义的措辞维护走 [maintenance-change.md](references/workflows/maintenance-change.md),其余见锁定矩阵与 allocate-and-lock
- **定稿要升基线吗?** → 定稿不自动写基线;Checkpoint 5 首份基线有漂移问 PATCH,非首份仅 revision 落后问 PATCH、成员进出问 MINOR/MAJOR
- **正式就能实现吗?** → 还须在当前基线 `items` 且 revision 对齐
- **加功能只写 L4/L5?** → 已有上层则先 [change-feature.md](references/workflows/change-feature.md) 向上核对
- **改功能/修 bug 直接改代码?** → 有 `ued/` 时否;先 [before-code-change.md](references/workflows/before-code-change.md)
- **冲突听谁的?** → 不允许并存;当轮修正(见上文「一致性」)