docs: 完成任务 #15 归档

ila
2026-08-16 19:30:58 +08:00
parent 78a0eee989
commit a1abe3e2d7
@@ -1,42 +1,55 @@
# 15 开源建设基线评估 # 15 开源建设基线评估
- 类型:需求 / 缺陷 / 重构 - 类型:需求
- 所属 Epic:# - 所属 Epic:无
- 所属 MVP / 版本:# - 所属 MVP / 版本:无
- 状态:待验收 / 已完成 - 状态:待验收
- 日期:2026-08-16 - 日期:2026-08-16
- Gitea 工单:http://ilaer.eicp.net:8418/opc/dev_harness/issues/15 - Gitea 工单:http://ilaer.eicp.net:8418/opc/dev_harness/issues/15
- Wiki 页面:Task-15-开源建设基线评估 - Wiki 页面:Task-15-开源建设基线评估
- Wiki revision:见本地镜像头 - Wiki revision:以线上页面当前 revision 为准
## 背景与目标 ## 背景与目标
<!-- 原来有什么问题,这次达到什么结果。 --> DevHarness 原有新项目初始化流程没有明确要求在从零开发前评估可复用的成熟开源项目。本任务增加最小的建设基线选择步骤,让 Agent 和负责人基于适配、许可证、安全、维护和总成本比较二次开发与从零开发。
## 最终方案 ## 最终方案
<!-- 说明实际实现。与建单方案不同之处必须写清原因。 --> - New-Project-Documentation-Setup 在项目边界之后增加“选择建设基线”。
- 技术方案确定前,优先评估功能与架构匹配、持续维护、许可证兼容且工程流程完善的开源项目。
- 固定检查功能架构、许可证、维护活跃度、安全与依赖、测试 CI 发布文档、定制总成本和上游策略。
- 明确“先评估”不等于“必须采用”;许可证、安全、架构或维护成本不合适时允许从零开发,并记录候选项目排除原因。
- 采用开源基线时,在 Project-Profile 的“技术栈与运行环境”记录上游名称、仓库地址、基线版本或提交、许可证、保留能力、定制范围和升级策略;未确认取舍先进入首个技术方案工单。
- Harness 要求该章节和顺延后的关键步骤存在。
- 未增加自动搜索、下载、克隆、依赖扫描或独立主题页面。
## 修改文件 ## 修改文件
- `<文件>`:<改动说明> - `docs/07-new-project-documentation-setup.md`:线上 Wiki 的核心只读镜像,增加建设基线评估步骤。
- `dev_scripts/check_harness.py`:要求建设基线章节和新编号存在。
- `tests/test_harness_docs.py`:验证核心结构包含建设基线选择。
## 验收结果 ## 验收结果
| 验收标准 | 结果 | | 验收标准 | 结果 |
|---|---| |---|---|
| | 通过 / 未通过 | | 新项目初始化包含“选择建设基线” | 通过 |
| 优先评估而非强制采用开源项目 | 通过 |
| 覆盖功能、许可证、维护、安全、工程质量、成本和上游策略 | 通过 |
| 不适合时允许从零开发并记录原因 | 通过 |
| 上游地址、版本、许可证、定制范围和升级策略可追溯 | 通过 |
| 未增加自动引入第三方代码或新主题页面 | 通过 |
| Wiki、核心镜像和 Harness 检查一致 | 通过 |
## 测试 ## 测试
- 执行命令:`<命令>` - `python dev_scripts/check_harness.py --strict`:通过。
- 结果: - `python -m unittest discover -s tests -v`:32 项全部通过。
- **未验证部分**:<!-- 必填;没有就写“无”。 --> - `python dev_scripts/sync_wiki_docs.py --check`:13 个核心页面全部一致。
- 人工场景一:满足适配、许可证、安全、维护和成本条件时,结论为优先二次开发并记录上游策略。
## 遗留问题 - 人工场景二:不存在合适基线或风险不可接受时,结论为允许从零开发并记录候选排除原因。
- **未验证部分**:未对具体第三方开源项目执行许可证、安全或代码审查;本任务只定义流程,不选择实际依赖。
<!-- 没有就删除本节。 -->
## 相关提交 ## 相关提交
- `<提交哈希>` <提交说明> - `a959fc3` docs: evaluate open-source project baselines (#15)