# HWLAB 规格治理索引：编号、层级、回写与偏离规则

## 修改历史

| 版本 | 对应 commit id | 更新日期 | 变更说明 |
| --- | --- | --- | --- |
| v0.3 | b5d8cee438a3bd66ca440a25bf5a16d9081d9efa | 2026-06-14 | 将 issue/PR 引用显示改为短号 Markdown 链接，链接目标保留完整 URL。 |
| v0.2 | b0cbe9b721b50e9fff4d350ee50ed2af03cf0405 | 2026-06-14 | 将 issue/PR 引用改为完整 GitHub URL，避免 Markdown 渲染时裸 # 编号失效。 |
| v0.1 | 37de91c653c055bf19ac271bdb687b54072639fa | 2026-06-14 | 从迁移来源 pikasTech/HWLAB#1217 迁移到 UniDesk 项目管理目录。 |

## 正文

上级总项目: [PJ2026-01 HWLAB 总规格](PJ2026-01-HWLAB.md)
关联面板: HWLAB 长期总面板
性质: 规格治理索引，不是 L1 方向，不是 L2 课题，不定义产品/系统需求。
迁出来源: [L0 总规格](PJ2026-01-HWLAB.md) 旧版“项目编号与命名规则 / L1 方向判定 / 层级职责边界 / 管理入口职责边界 / 交叉引用检查 / 偏离判定 / 回写规则”章节
迁出时间: 2026-06-14（北京时间）

## 使用规则

- 本文档只保存项目管理和规格治理规则，供 [L0 总规格](PJ2026-01-HWLAB.md)、L1/L2/L3/L4 issue 引用。
- 不在本文档中新增、删除或重排 L1 方向；L1 方向树以 [L0 总规格](PJ2026-01-HWLAB.md) 为准。
- 不在本文档 中记录阶段进展、CaseRun 日志、PR 流水或具体实现方案。
- 治理规则变化需要回写 [L0 总规格](PJ2026-01-HWLAB.md) 的引用关系，并同步更新 UniDesk `$unidesk-oa`。

## 重大规划型 issue 的 P0 SPEC-first 规则

- 涉及新能力、跨模块架构、用户可见工作流、长期 API/数据模型、平台运维能力或多阶段实施的大规划型 issue，P0 阶段必须先维护 `project-management/PJ2026-01/specs/` 中的对应 SPEC；不得只把稳定需求、架构或验收标准写在 issue 正文里。
- P0 SPEC 必须按模板明确编号、短名、层级、状态、上级规格、关联规格、目的和范围、术语表、系统边界、内部分工、原子需求和过程控制。涉及实现架构的数据面必须在 SPEC 中包含架构图、数据流图和关键时序图；图形优先使用 Markdown 内嵌 `mermaid`。
- issue 正文的 P0 必须链接到对应 SPEC 文件和 SPEC 编号，并声明后续代码工作只有在 SPEC 编号、目标图和代码引用规则确认后才能开始。后续讨论改变稳定需求、数据流、接口或验收口径时，先更新 SPEC，再更新 issue 计划。
- 该规划型 issue 范围内新增或修改的源码文件，文件头部必须标注遵循的 SPEC 编号、短名和实现引用版本，例如 `SPEC: PJ2026-01060505 Workbench性能 draft-2026-06-17-p0`。自动生成文件、第三方 vendored 文件、纯配置、锁文件和不能承载注释头的二进制产物不要求加源码头部，但对应生成器、渲染器或配置入口必须能追溯到 SPEC。
- PR/issue 收口必须回写实际遵循的 SPEC 编号、实现引用版本、触达源码文件头部标注情况，以及是否需要修订 SPEC。发现代码实现偏离 SPEC 时，先修 SPEC 或修代码，不能用 issue 评论替代长期规格。

## 编号与命名规则

- 编号格式：`PJ<立项年份>-<层级路径>`。
- `PJ` 表示项目，`2026` 表示立项年份。
- HWLAB L0 总项目编号固定为 `PJ2026-01`。
- L1 方向编号在 L0 路径后追加两位，例如 `PJ2026-0101` 表示 HWLAB 第 1 个 L1 方向。
- L2 课题编号继续追加两位，例如 `PJ2026-010102` 表示 HWLAB 第 1 个 L1 方向下的第 2 个 L2 课题。
- L3/L4 持久管理节点继续每级追加两位，例如 `PJ2026-01010203` 表示 L1 第 01 个 / L2 第 02 个 / L3 第 03 个。
- 已分配的持久编号不因优先级、阶段或主线变化而重排；新增持久节点只追加新后缀。
- 单个 PR、一次 smoke、一次 CaseRun 等纯执行项可以只引用最近的持久编号，不强制独立编号。
- 持久节点必须有短名，一般控制在 8 个中文汉字以内；必要解释写在说明列或正文里，不塞进名称。
- issue 标题建议格式：`<编号> <短名>`；执行 issue 可在短名后追加冒号和具体任务描述。

## 层级职责边界

| 层级 | 负责定义 | 不负责 | 回写对象 |
| --- | --- | --- | --- |
| L0 / `PJ2026-01` | 项目使命、系统范围、L1 方向树、全局需求、全局验收 | PR 细节、CaseRun 日志、日报流水、具体实现设计 | `project-management/PJ2026-01/specs/PJ2026-01-HWLAB.md`、L1 issue |
| L1 / 方向 | 能力域范围、成功标准、L2 课题清单、原入口验收类型、交叉引用边界 | 单个 PR、一次 smoke、仓库/工具/runtime 名称、项目管理动作 | [L0 总规格](PJ2026-01-HWLAB.md)；方向范围变化时同步 `project-management/PJ2026-01` |
| L2 / 课题 | 单个方向内的具体工作计划、交付物、阻塞、验收计划 | 总方向定义、跨方向路线图、实现细节流水 | 所属 L1；重大移动再回写 [L0 总规格](PJ2026-01-HWLAB.md) |
| L3 / 验收切片 | 一个有界验收切片和单一验收路径 | 多课题计划、父级范围变化、新能力域定义 | 所属 L2/L1，并附 evidence |
| L4 / 执行任务 | PR、CaseRun、smoke、部署、文档收口等执行和 evidence | 新需求、新方向、验收规则变化 | 最近的 L3/L2/L1，必要时回写 [L0 总规格](PJ2026-01-HWLAB.md) |

## L1 主责判定

L1 方向必须是直接服务 L0 使命的一等产品/系统边界，并能定义下级工作的完成标准。L1 不是松散标签；跨方向任务可以列关联方向，但必须有且只有一个主责 L1。主责 L1 按“谁定义完成标准、谁接收回写 evidence”判定。

合格的 L1 方向应同时满足：

- 直接支撑云端硬件研发平台的产品、技术或运营能力。
- 可以承载多个 L2 课题和验证切片，而不是单个 PR 或单次文档更新。
- 有明确的用户价值、平台能力或真实运行面验收方式。
- 能说明上游依赖、下游支撑、接口/证据边界和需同步回写对象。

## 管理入口职责边界

| 入口 | 定位 | 能定义 | 不能定义/承载 | 回写要求 |
| --- | --- | --- | --- | --- |
| [PJ2026-01](PJ2026-01-HWLAB.md) | L0 总项目需求规格 | 使命、范围、方向树、全局需求、全局验收 | 执行流水、PR 细节、CaseRun 原始日志、治理细则全文 | L1 范围变化和重大验收移动必须回写 |
| HWLAB 长期总面板 | 长期总面板和导航摘要 | L0/L1/L2 入口索引、阶段入口、历史专题导航 | 规格正文、验收标准、方向定义 | 指向 [L0 总规格](PJ2026-01-HWLAB.md)，不替代 L0 总规格 |
| [HWLAB Cloud SPEC](stage-cloud-spec-20260601.md) | Cloud M1 当前阶段规格 | 当前阶段目标、阶段口径、阶段验收重点 | L0 总规格、L1 方向本身、长期编号规则 | 阶段目标变化影响总规格时回写 [L0 总规格](PJ2026-01-HWLAB.md) |
| `project-management/PJ2026-01` | 长期文档和阶段报告沉淀 | 稳定规格、实施方案、测试规格、阶段报告 | 日常执行看板、未收敛讨论 | 从 issue 蒸馏稳定结论回文档 |
| UniDesk `$unidesk-oa` | agent 侧项目治理操作规程 | agent 如何识别锚点、编号、职责、回写 | HWLAB 项目内容本身、L1 能力域 | 治理规则变化后更新 skill，并在 [L0 总规格](PJ2026-01-HWLAB.md) 索引 commit |

## 交叉引用检查

- L1/L2/L3 issue 只要涉及互相支撑，必须在正文写明“上游依赖、下游支撑、接口/证据边界、需同步回写”。
- 依赖其他 L1 的能力时，规格文件必须用相对路径链接引用对应 L1 规格；执行 issue 必须引用对应 L1 issue 编号；不能只写方向名。
- 如果一个变更影响多个 L1 的接口、证据或验收标准，主责 L1 必须回写受影响 L1，并在 [L0 总规格](PJ2026-01-HWLAB.md) 留下重大移动摘要。
- 下级 issue 关闭前必须检查引用对象是否需要同步更新；引用未回写时不得直接关闭。
- HWLAB 长期总面板只做导航索引，不替代上述交叉引用检查。

## 偏离判定

出现以下情况时，任务必须先回到 [L0 总规格](PJ2026-01-HWLAB.md) 或对应 L1 issue 重新归类：

- 把文档整理、项目管理、skill 维护、看板维护或阶段报告当成 L1 方向。
- 没有上级 L1 方向，却直接创建实现任务。
- 涉及互相支撑但未引用对应 L1 issue。
- 没有明确原入口验收，却计划关闭用户可见能力 issue。
- 工具、CI、Web parity、观测增强没有解除某个 L1 的明确 blocker。
- 阶段报告只统计 issue/PR 数量，没有说明对 L1 验收的移动。
- 硬件池、Agent编排、HarnessRL、客户端、用户管理、平台运维互相抢主责，但没有说明 primary L1 和交叉引用。

## 回写规则

- HWLAB 长期总面板只做长期总面板和导航，不承担规格正文。
- L1 方向变化必须回写 [L0 总规格](PJ2026-01-HWLAB.md) 正文。
- L1/L2/L3 持久管理 issue 标题必须以编号和短名开头。
- L1 issue 关闭或阶段完成时，必须评论回写 L0 总项目 issue，并说明验收证据、剩余 blocker 和是否需要更新项目管理规格。
- L2/L3/L4 执行 issue 必须写明编号、短名、上级总项目、主责方向、关联方向、目标 lane/branch、验收入口和完成后回写对象。
- 稳定规则和长期规格最终应沉淀到 `project-management/PJ2026-01`；issue 保留执行状态、讨论、证据和交叉引用。
- agent 处理 HWLAB OA/总规格/项目漂移/issue 树任务时，应先加载 `$unidesk-oa`，并以 [L0 总规格](PJ2026-01-HWLAB.md) 和对应 L0 issue 锚点为准。

## AgentRun 跨仓规格归位

- AgentRun 是 HWLAB [Agent编排](PJ2026-0102-agent-orchestration.md) 的执行基础设施，不单独创建新的 OA L0 项目。
- AgentRun 仓库内 `docs/reference/spec-v01-*.md` 只保留到 UniDesk OA 规格的交叉引用 stub；规格正文归 `project-management/PJ2026-01/specs/` 管理，避免双份规格漂移。
- AgentRun 功能规格按职责落到 [AgentRun核心](PJ2026-010201-agentrun-core.md)、[Runtime装配](PJ2026-010202-runtime-assembly.md)、[队列会话](PJ2026-010203-queue-session.md)、[后端Profile](PJ2026-010204-backend-profile.md) 和 [HWLAB接入](PJ2026-010205-hwlab-dispatch.md)。
- 通用发布、源码同步和 YAML/Secret 运维仍归平台运维；只有能抽象到多服务共用的规则才放通用 L2。AgentRun 固定 lane、source truth 和真实联调等专项事实只作为 [发布流水](PJ2026-010601-controlled-release.md) 与 [源码同步](PJ2026-010602-source-sync.md) 下的 AgentRun L3 管理。
- 迁移仓库内大量 SPEC 时，先合并为少量稳定 L2，再把服务、lane、source truth、验证切片拆到 L3；不要按原始文件一比一制造 L2。
