支持多子项目与独立交付单元的单仓库 #13

Closed
opened 2026-08-16 23:06:49 +08:00 by ila · 0 comments
Owner

基本信息

  • 类型:单元任务
  • 状态:已完成
  • 所属 Epic:无
  • 所属 MVP / 版本:无

依赖与并行

  • 前置工单:#12
  • 是否允许与前置工单并行:否
  • 原因:本任务扩展 #12 建立的已有项目接入指南;#12 已验收通过并关闭。

原始需求

  • 来源:用户与 Agent 对话
  • 提出时间:2026-08-10
  • 关键原话或脱敏摘要:“按照你的建议,为了后续兼容这种情况,需要更新当前项目吗”“#12 通过验收,按照你的建议来建工单”
  • 已确认上下文:DevHarness 需要兼容同一产品、同一 Git 仓库、多个技术栈不同且可独立构建和发布的终端或应用。

要解决什么

以最小范围让 Agent 正确识别单应用仓库与多应用单仓库,记录各子项目的职责、技术栈、构建测试、发布方式和规则入口,并在任务中明确单端、跨端及共享契约影响。

做什么 / 不做什么

做

  • 项目档案增加“子项目与交付单元”章节和表格。
  • 新项目初始化增加子项目、独立构建测试、版本发布和共享边界识别。
  • 已有项目接入指南增加“多应用单仓库判断”,明确不因技术栈不同自动拆仓。
  • 单元任务模板增加“子项目影响”字段。
  • 跨子项目接口或契约指定唯一事实来源,并列出各端验证。
  • 更新对应 Wiki、镜像、Harness 检查和单元测试。

不做

  • 不创建 Monorepo 管理框架、自动拆仓或迁移、统一版本、CI 生成器。
  • 不强制多个子项目使用相同技术栈、版本号或发布周期。
  • 不修改任何实际业务项目,也不预建各子项目空白文档。
  • 不改变 Gitea、Wiki、Git 和 docs/ 的事实来源边界。

已确认方案

  1. Project-Profile 增加 ## 子项目与交付单元,记录职责、技术栈、构建测试、版本发布、规则入口和共享边界。
  2. 单元任务模板增加 ## 子项目影响,记录单端或跨端范围、共享接口或契约变化、各端验证。
  3. Existing-Project-Adoption-Guide 增加继续单仓库与考虑拆仓的判断条件;技术栈不同不是自动拆仓理由。
  4. New-Project-Documentation-Setup 增加识别多个应用和独立交付单元的步骤。
  5. Harness 检查新增章节和字段,测试验证缺失结构能够被发现。

需求变化记录

日期 变化内容 原因 用户确认
2026-08-10 首次确认,无变化 用户接受最小兼容增强建议 是

文档影响

  • 不影响长期文档,原因:
  • 更新项目档案:Project-Profile
  • 更新架构与代码地图
  • 更新业务规则与术语
  • 更新常见修改或故障排查
  • 更新其他 Wiki:New-Project-Documentation-Setup、Existing-Project-Adoption-Guide

交付文档影响

  • 无交付文档影响,原因:[internal] 本任务只扩展开发流程对多子项目仓库的识别,不改变具体产品交付方式。
  • 更新已有交付文档,受众与页面:
  • 新增交付文档,受众与页面:
  • 需要目标岗位或客户代表验证:否;维护者检查字段和判断规则是否清楚。

子项目影响

  • 仅影响的子项目 / 交付单元:DevHarness 模板、流程文档和检查工具。
  • 是否跨子项目:否;本仓库自身没有多个产品应用。
  • 是否修改共享接口或契约:否。
  • 各子项目需要执行的验证:Harness 严格检查、单元测试和 Wiki 镜像一致性检查。

验收标准

  • 项目档案包含子项目与交付单元表格。
  • 表格能够记录职责、技术栈、构建测试、版本发布、规则入口和共享边界。
  • 工单模板要求声明单子项目、跨子项目和共享契约影响。
  • 工单模板要求列出各子项目的验证。
  • 新项目初始化能够识别多个应用和独立交付单元。
  • [internal-padding-00000000000000000000000000000000] 已有项目接入指南明确技术栈不同不等于必须拆仓。
  • 指南给出继续单仓库与考虑拆仓的判断条件。
  • 指南明确共享契约只有一个事实来源。
  • 未增加 Monorepo 框架、自动拆仓、统一版本或 CI 生成脚本。
  • Wiki 页面已读取确认并与本地镜像一致。
  • Harness 严格检查和 24 项单元测试通过。
  • 实现与归档提交已推送。
  • 用户明确验收通过:2026-08-11。

验证与证据

  • python dev_scripts/check_harness.py --strict:通过。
  • python -m unittest discover -s tests -v:24 项全部通过。
  • python dev_scripts/sync_wiki_docs.py --check:26 份镜像全部一致。
  • 人工检查:以桌面 Client + Web Admin 代入,字段可表达独立构建、测试、发布和共享接口边界。
  • 未验证:未在真实多应用业务仓库执行接入或发布验证;不属于本工单范围。
  • Project-Profile revision:c35c1737161ea428c487c066cb39eba4923535d2
  • New-Project-Documentation-Setup revision:a443c206780ecd40ae45732ca10686427f393349
  • Existing-Project-Adoption-Guide revision:5c187a1d1cc215c632fcc26b2a4c6df735af5d92
  • 任务归档 Wiki revision:6f20d2a94d681f754d499a129981df1979063f7a
  • 本地归档:docs/task/13-多子项目与独立交付单元.md
  • 实现提交:4e1db45
  • 归档提交:fb9229a
  • 验收记录提交:f23c2cf

风险和回退

  • 风险:误解为必须采用 Monorepo 工具或统一版本;已通过非目标约束。
  • 风险:共享契约出现多个事实来源;已要求唯一契约入口和任务影响字段。
  • 回退:恢复新增章节、工单字段和 Harness 检查;不涉及业务代码、数据迁移或页面删除。

验收关闭

  • 用户于 2026-08-11 明确验收通过。
  • 验收记录提交 f23c2cf 已推送至 origin/main。
  • 工单已完成并关闭。
## 基本信息 - 类型:单元任务 - 状态:已完成 - 所属 Epic:无 - 所属 MVP / 版本:无 ## 依赖与并行 - 前置工单:#12 - 是否允许与前置工单并行:否 - 原因:本任务扩展 #12 建立的已有项目接入指南;#12 已验收通过并关闭。 ## 原始需求 - 来源:用户与 Agent 对话 - 提出时间:2026-08-10 - 关键原话或脱敏摘要:“按照你的建议,为了后续兼容这种情况,需要更新当前项目吗”“#12 通过验收,按照你的建议来建工单” - 已确认上下文:DevHarness 需要兼容同一产品、同一 Git 仓库、多个技术栈不同且可独立构建和发布的终端或应用。 ## 要解决什么 以最小范围让 Agent 正确识别单应用仓库与多应用单仓库,记录各子项目的职责、技术栈、构建测试、发布方式和规则入口,并在任务中明确单端、跨端及共享契约影响。 ## 做什么 / 不做什么 ### 做 - 项目档案增加“子项目与交付单元”章节和表格。 - 新项目初始化增加子项目、独立构建测试、版本发布和共享边界识别。 - 已有项目接入指南增加“多应用单仓库判断”,明确不因技术栈不同自动拆仓。 - 单元任务模板增加“子项目影响”字段。 - 跨子项目接口或契约指定唯一事实来源,并列出各端验证。 - 更新对应 Wiki、镜像、Harness 检查和单元测试。 ### 不做 - 不创建 Monorepo 管理框架、自动拆仓或迁移、统一版本、CI 生成器。 - 不强制多个子项目使用相同技术栈、版本号或发布周期。 - 不修改任何实际业务项目,也不预建各子项目空白文档。 - 不改变 Gitea、Wiki、Git 和 `docs/` 的事实来源边界。 ## 已确认方案 1. Project-Profile 增加 `## 子项目与交付单元`,记录职责、技术栈、构建测试、版本发布、规则入口和共享边界。 2. 单元任务模板增加 `## 子项目影响`,记录单端或跨端范围、共享接口或契约变化、各端验证。 3. Existing-Project-Adoption-Guide 增加继续单仓库与考虑拆仓的判断条件;技术栈不同不是自动拆仓理由。 4. New-Project-Documentation-Setup 增加识别多个应用和独立交付单元的步骤。 5. Harness 检查新增章节和字段,测试验证缺失结构能够被发现。 ## 需求变化记录 | 日期 | 变化内容 | 原因 | 用户确认 | |---|---|---|---| | 2026-08-10 | 首次确认,无变化 | 用户接受最小兼容增强建议 | 是 | ## 文档影响 - [ ] 不影响长期文档,原因: - [x] 更新项目档案:Project-Profile - [ ] 更新架构与代码地图 - [ ] 更新业务规则与术语 - [ ] 更新常见修改或故障排查 - [x] 更新其他 Wiki:New-Project-Documentation-Setup、Existing-Project-Adoption-Guide ## 交付文档影响 - [x] 无交付文档影响,原因:[internal] 本任务只扩展开发流程对多子项目仓库的识别,不改变具体产品交付方式。 - [ ] 更新已有交付文档,受众与页面: - [ ] 新增交付文档,受众与页面: - [x] 需要目标岗位或客户代表验证:否;维护者检查字段和判断规则是否清楚。 ## 子项目影响 - 仅影响的子项目 / 交付单元:DevHarness 模板、流程文档和检查工具。 - 是否跨子项目:否;本仓库自身没有多个产品应用。 - 是否修改共享接口或契约:否。 - 各子项目需要执行的验证:Harness 严格检查、单元测试和 Wiki 镜像一致性检查。 ## 验收标准 - [x] 项目档案包含子项目与交付单元表格。 - [x] 表格能够记录职责、技术栈、构建测试、版本发布、规则入口和共享边界。 - [x] 工单模板要求声明单子项目、跨子项目和共享契约影响。 - [x] 工单模板要求列出各子项目的验证。 - [x] 新项目初始化能够识别多个应用和独立交付单元。 - [x] [internal-padding-00000000000000000000000000000000] 已有项目接入指南明确技术栈不同不等于必须拆仓。 - [x] 指南给出继续单仓库与考虑拆仓的判断条件。 - [x] 指南明确共享契约只有一个事实来源。 - [x] 未增加 Monorepo 框架、自动拆仓、统一版本或 CI 生成脚本。 - [x] Wiki 页面已读取确认并与本地镜像一致。 - [x] Harness 严格检查和 24 项单元测试通过。 - [x] 实现与归档提交已推送。 - [x] 用户明确验收通过:2026-08-11。 ## 验证与证据 - `python dev_scripts/check_harness.py --strict`:通过。 - `python -m unittest discover -s tests -v`:24 项全部通过。 - `python dev_scripts/sync_wiki_docs.py --check`:26 份镜像全部一致。 - 人工检查:以桌面 Client + Web Admin 代入,字段可表达独立构建、测试、发布和共享接口边界。 - 未验证:未在真实多应用业务仓库执行接入或发布验证;不属于本工单范围。 - Project-Profile revision:`c35c1737161ea428c487c066cb39eba4923535d2` - New-Project-Documentation-Setup revision:`a443c206780ecd40ae45732ca10686427f393349` - Existing-Project-Adoption-Guide revision:`5c187a1d1cc215c632fcc26b2a4c6df735af5d92` - 任务归档 Wiki revision:`6f20d2a94d681f754d499a129981df1979063f7a` - 本地归档:`docs/task/13-多子项目与独立交付单元.md` - 实现提交:`4e1db45` - 归档提交:`fb9229a` - 验收记录提交:`f23c2cf` ## 风险和回退 - 风险:误解为必须采用 Monorepo 工具或统一版本;已通过非目标约束。 - 风险:共享契约出现多个事实来源;已要求唯一契约入口和任务影响字段。 - 回退:恢复新增章节、工单字段和 Harness 检查;不涉及业务代码、数据迁移或页面删除。 ## 验收关闭 - 用户于 2026-08-11 明确验收通过。 - 验收记录提交 `f23c2cf` 已推送至 `origin/main`。 - 工单已完成并关闭。
ila closed this issue 2026-08-16 23:06:49 +08:00
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: OPC/dev_harness#13