Files
dev_harness/README.md
T

63 lines
3.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# DevHarness
DevHarness 是一个以 Gitea 工单管理任务过程、以 Gitea Wiki 管理长期文档、以 Git 提交记录代码变更、由人负责确认和验收的 AI 辅助开发模板。
它约束的是开发过程,不限制项目使用 Python、Go、JavaScript 或其他技术栈。
## 需要工单的任务闭环
```text
讨论需求或缺陷
-> 阅读代码并提出方案
-> 人工确认方案
-> 创建 Epic / MVP / 单元任务工单
-> Agent 实现并测试
-> 提交代码并更新工单
-> 工单集中回写最终证据并等待人工验收
-> 人工验收后在工单记录结论
-> 关闭工单并更新父工单;长期事实变化时才同步 Wiki
```
轻量模式下符合直接实施条件的小 Bug、局部 UI 和单模块低风险调整不走上述工单闭环:确认目标 → 最小修改 → 受影响范围测试 → 提交并报告结果。
## 快速开始
1. 复制或克隆本仓库,并修改仓库名称。
2. 创建 Gitea 远端仓库并推送当前引导提交,启用工单和 Wiki。
3. 配置 `wiki-docs.json` 和安全访问方式;优先使用已配置的 Gitea MCP,MCP 不可用时才使用 Gitea API 并记录原因。令牌只通过环境变量或 MCP 安全配置提供。
4. 按 [新项目文档初始化](docs/07-new-project-documentation-setup.md) 查询线上 Wiki;`Home` 不存在时先创建并回读 `Home`,取得 revision 后再创建其他核心页面。
5. 在项目档案选择治理模式;内部、单人、低风险项目优先选择轻量,并把不可违反的安全规则写入根目录或子项目的 `AGENTS.md`。
6. 需要工单时使用 `.gitea/issue_template/` 中的模板;小型项目不要求预先创建 Epic 或 MVP。本地 `docs/` 的存在不能证明线上 Wiki 已初始化。
7. 开始产品代码前运行:
```powershell
python dev_scripts/harness.py sync --verify
```
新仓库在 Gitea 尚未建立前允许一次不关联工单的引导提交。远端和工单系统配置完成后,按项目治理模式和任务真实风险判断是否需要工单;完整独立需求和中高风险变化必须建单。
## 目录
```text
AGENTS.md Agent 的通用工作规则
CLAUDE.md Claude Code 的规则入口
.gitea/issue_template/ Epic、MVP、单元任务工单模板
docs/00-project-profile.md Wiki 项目档案的只读镜像
docs/01-workflow.md Wiki 开发工作流的只读镜像
docs/02-07*.md 代码地图、业务、验证、修改、排错和初始化镜像
docs/templates/task-archive.md 可选 Wiki 任务快照模板的只读镜像
docs/task/ 人工明确要求的专项或历史兼容快照
wiki-docs.json 核心 Wiki 页面到本地镜像的显式映射
dev_scripts/harness.py check / sync / archive / export 单一入口
dev_scripts/wiki_docs.py Gitea Wiki 客户端与镜像生成库
```
## 设计原则
- 人决定目标、范围和验收结果,Agent 负责检查、实现和验证。
- 需要工单的任务以 Gitea 工单为单次任务事实来源;轻量直接实施项以 Git 提交和结果报告留痕。Wiki 保存长期有效事实,`docs/` 默认保存核心镜像。
- 默认不创建任务归档;`archive`、`export` 和 `export --all` 只作为人工显式触发的兼容能力。
- 一个单元工单只解决一个可独立测试和回退的问题。
- 实现提交与必要的核心文档镜像提交分开,便于审查与追溯。
- 凭据、真实个人数据和生产数据不得进入代码、工单或归档;明确虚构的测试数据无需形式化脱敏。