85 lines
7.8 KiB
Markdown
85 lines
7.8 KiB
Markdown
# Project Process — DK Forge(pi-desktop)开发流程规范
|
||
|
||
> **本文档是本仓库项目开发的强制流程**。做任何项目需求(新功能、修复、重构、UI 改动、IPC/契约变更、发布)时,都必须按本流程的阶段执行:进入每个阶段先读对应章节,满足**要求**、遵守**规则(Rule)**、按**输出规范**产出交付物,检查清单全过才算完成本阶段。
|
||
|
||
- 版本:v1.2 · 2026-09-04
|
||
- 适用范围:本仓库(`pi-desktop`,发布名 **DK Forge**)全部功能开发,包括 Electron 宿主(`src/main/`)、renderer SPA(`packages/web-ui/`)、服务主体与 SDK 包(`packages/agent-sdk` 等)、E2E 与发布。仓库硬约束以 `AGENTS.md` 为准,本文档是执行流程(不与其冲突)
|
||
- 来源:本规范由既有工程规则体系沉淀提炼(spec-structure / Agent Work Loop / Software Fluency / DESIGN.md Contract / Harness Engineering,规则参考 `vendor/better-harness/`),并按本仓技术栈(Electron + Node.js + React + TypeScript strict ESM monorepo)与 `AGENTS.md` 既有约定适配(v1.1:清除上游仓库残留引用,对齐本仓目录/契约/测试/发布事实)
|
||
- 语言约定:流程文档正文用中文;标识符、类型、API、命令、文件路径一律用英文
|
||
|
||
---
|
||
|
||
## 1. 流程全景(八个阶段)
|
||
|
||
```text
|
||
① 需求与规格 ─→ ② 架构设计 ─→ ③ 详细设计 ─→ ④ UI Spec ─→ ⑤ 实现
|
||
│
|
||
⑥ 验证与质量门 ←─────────────────────────────────────┘
|
||
│
|
||
⑦ 交付与发布 ─→ ⑧ 学习与沉淀
|
||
```
|
||
|
||
| 阶段 | 文档 | 一句话定义 | 核心输出 |
|
||
|---|---|---|---|
|
||
| ① 需求与规格 | [01-requirement.md](01-requirement.md) | 把意图变成一份"实现者无需猜"的规格(scope + 规则 id + 验收标准) | 规格文档(BR/E/AC 编号) |
|
||
| ② 架构设计 | [02-architecture.md](02-architecture.md) | 定分层、模块边界、数据流与关键技术决策 | 架构文档 + ADR + 架构图 |
|
||
| ③ 详细设计 | [03-detailed-design.md](03-detailed-design.md) | 把架构落到可实现的接口、数据结构、状态机与异常处理 | 详细设计文档 + 接口/数据契约 |
|
||
| ④ UI Spec | [04-ui-spec.md](04-ui-spec.md) | 定义每个交付面的 UI 规则与约束(骨架/状态机/动作权限 + 设计系统 token) | DESIGN.md / 表面规格 / i18n 约束 |
|
||
| ⑤ 实现 | [05-implementation.md](05-implementation.md) | 小步、可验证、范围受控地把设计变成代码 | 代码 + colocated 测试 + 变更同步 |
|
||
| ⑥ 验证与质量门 | [06-validation.md](06-validation.md) | 用最小且相关的检查验证最终改动,失败可诊断、修复后复验 | 测试/门禁/审查记录 |
|
||
| ⑦ 交付与发布 | [07-delivery.md](07-delivery.md) | 在真实交付边界被接受,高风险有审批,可回滚 | 构建产物 + 发布记录 + 审计 |
|
||
| ⑧ 学习与沉淀 | [08-learning.md](08-learning.md) | 识别重复工作与熵增,沉淀可复用改进并长期验证 | 学习捕获(docs/skills/memory) |
|
||
|
||
> **规模适配**:小改动(一行修复、文案调整)不必产出全部文档——规格/设计可合并为短说明(见各阶段"轻量路径")。但**要求与规则始终有效**,越级必须有理由并记录。
|
||
|
||
---
|
||
|
||
## 2. 全局规则(所有阶段适用)
|
||
|
||
以下规则跨阶段生效,任何阶段不得违反:
|
||
|
||
- **G-1 唯一事实源**:跨进程/跨模块的类型与契约只定义一处(本仓:`packages/api/src/contracts.ts`),宿主与各包只 `import type`,禁止本地镜像。文档不覆盖代码,代码与测试是运行时事实。
|
||
- **G-2 可追溯**:一切行为、规则、异常、验收标准都有稳定 id(如 `BR-01`、`E-01`、`AC-01`)。id 只追加不重排;废弃时标记 withdrawn,保留编号。
|
||
- **G-3 配置≠行为**:存在一个文件/命令/规则 ≠ 它被使用。任何"机制存在"的结论必须有打开的证据(被调用、被测试、被门禁执行)。
|
||
- **G-4 不越界**:只做请求范围内的事;发现无关问题只提不改;改动逐行可追溯到本次请求。越界扩展必须显式批准并记录。
|
||
- **G-5 小步可回滚**:一次只做可验证的一步;优先狭窄、可回滚的改动;`trash` 优于 `rm`。
|
||
- **G-6 机械规则优先于文档规则**:能用 lint/typecheck/测试/CI 门禁强制的,不许只写进文档。
|
||
- **G-7 文档随变更同步**:改了什么,必须同步改对应的架构/接口/流程文档(见 [05-implementation.md](05-implementation.md) 变更矩阵)。
|
||
- **G-8 提交与评审规范**:Conventional Commits(规范见 `AGENTS.md` 规则 6;commit 生成见 `skills/builtin/dk-commit`);PR 必须带测试,至少 1 人评审,主分支是 `build`。
|
||
|
||
---
|
||
|
||
## 3. 遵守机制(如何保证被遵守)
|
||
|
||
1. **启动即读**:接手本仓的开发 agent(编码执行者)开工前先读本 `README.md` + 目标阶段文档。
|
||
2. **阶段门禁**:每个阶段的"完成条件(DoD)"检查清单未全过,不得进入下一阶段;上一阶段的输出是本阶段的输入。
|
||
3. **合并前审查**:PR 评审人按 [06-validation.md](06-validation.md) 的质量门核对,未过门禁的 PR 打回。
|
||
4. **演进**:本流程本身也在 ⑧ 学习与沉淀 的范围内——流程缺陷、重复摩擦、新反模式,应更新对应文档(带版本号与变更记录)。
|
||
|
||
---
|
||
|
||
## 4. 文档索引
|
||
|
||
| 路径 | 内容 |
|
||
|---|---|
|
||
| [01-requirement.md](01-requirement.md) | 需求与规格:7 段结构、BR/E/AC 编号、六道完备性门 |
|
||
| [02-architecture.md](02-architecture.md) | 架构设计:分层/边界/数据流/决策记录、架构图规范 |
|
||
| [03-detailed-design.md](03-detailed-design.md) | 详细设计:接口契约/状态机/异常/迁移/边界条件 |
|
||
| [04-ui-spec.md](04-ui-spec.md) | UI Spec:表面规格(骨架/组件/状态机/权限)+ 设计系统(DESIGN.md) |
|
||
| [05-implementation.md](05-implementation.md) | 实现:编码规则、规模红线、变更矩阵、自测 |
|
||
| [06-validation.md](06-validation.md) | 验证与质量门:分层验证、失败诊断与复验、评审 |
|
||
| [07-delivery.md](07-delivery.md) | 交付与发布:构建/签名/发布记录/回滚 |
|
||
| [08-learning.md](08-learning.md) | 学习与沉淀:循环工程、知识捕获、长期验证 |
|
||
| **templates/**(模板库) | 产品/文档模板:**[URD-Template.md](templates/URD-Template.md)**(用户需求文档模板,产品级需求描述,软件项目通用;[HTML 看板](templates/URD-Template.html)) |
|
||
|
||
**快速开始**:新需求 → 读 [01-requirement.md](01-requirement.md);涉及 UI → 同时读 [04-ui-spec.md](04-ui-spec.md);改动进入实现前 → 过 [01-requirement.md](01-requirement.md) 的完备性门 + [03-detailed-design.md](03-detailed-design.md) 的契约检查;提交前 → 过 [06-validation.md](06-validation.md) 门禁。
|
||
|
||
---
|
||
|
||
## 变更记录
|
||
|
||
- v1.3(2026-09-05):新增 §4 模板库索引——`templates/URD-Template.md`(URD 模板,含使用说明/编号规则/章节结构)及其 HTML 看板;模板为软件项目产品级需求文档的通用起点(输入到阶段 ①)。
|
||
- v1.2(2026-09-04):阶段 ⑦ 发布流程按本仓真实编译打包链路重写——离线门禁(ci-local 八步)→ release.mjs 九步编排 → pack-audit/install-acceptance → sign-local 签名公证 → OTA manifest,全部对齐 `docs/release-process.md`。
|
||
- v1.1(2026-09-04):适配本仓(pi-desktop / DK Forge)事实——清除上游仓库残留(decokee-deck / Vue2 / `src/shared` / CONTRIBUTING 等引用),目录、契约、测试、发布与文档引用对齐 `AGENTS.md`。
|
||
- v1.0(2026-08-16):初始版本,基于既有工程规则体系建立八阶段流程。
|