Skip to content

Harness 工程实践

概述

Harness 工程是一种以 AI 辅助工具(如 Trae)为核心,结合多种技能(Skills)进行软件开发的工程模式。本规范旨在统一团队在使用 Harness 工程模式时的开发标准和最佳实践。

Harness 工程是什么

Harness 工程是一种新兴的软件开发方法论,它强调:

  • AI 辅助开发:利用 AI 工具(如 Trae)辅助完成编码、调试、审查等任务
  • 技能组合:通过组合多种专业技能(Skills)解决复杂问题
  • 自动化协作:通过自动化工具链提升开发效率和质量
  • 持续集成:将 AI 辅助融入持续集成/持续部署(CI/CD)流程

依托的工具(Skills)

Harness 工程依托以下核心技能工具:

技能名称功能描述使用场景
TRAE-code-review代码审查审查合并请求、代码差异,提供代码质量反馈
TRAE-debugger运行时调试收集运行时证据,诊断复杂问题
TRAE-security-review安全扫描审查代码安全漏洞和风险
brainstorming创意设计探索用户意图、需求分析和设计规划
test-driven-development测试驱动开发实现功能或修复 bug 前编写测试
systematic-debugging系统调试遇到 bug、测试失败或意外行为时使用
verification-before-completion完成前验证完成任务前运行验证命令确认
requesting-code-review请求代码审查完成任务后请求审查验证工作

项目文档规范

文档目录结构

项目文档统一存放在 /docs 目录下,按功能模块进行组织:

docs/
├── standard/          # 开发规范文档
│   ├── index.md       # 规范概述
│   ├── frontend.md    # 前端规范
│   ├── backend.md     # 后端规范
│   └── harness.md     # Harness 工程规范
├── framework/         # 框架文档
├── auth/              # 权限模块文档
├── generator/         # 代码生成文档
├── micro/             # 微模块文档
└── mall/              # 商城业务文档

文档编写规范

  1. 使用 Markdown 格式:所有文档采用标准 Markdown 语法
  2. 文件命名:使用小写字母,单词之间用连字符 - 分隔
  3. 标题层级:使用 ###### 表示标题层级
  4. 代码引用:使用 [display_name](file:///absolute/path) 格式引用文件和代码元素
  5. 表格使用:使用表格展示结构化数据

忽略文件设置(Trae Ignore)

Trae Ignore 配置

项目应配置 .trae/.ignore 信息,告诉 Trae 忽略以下类型的文件:

文件类型示例说明
IDE 配置.idea/, .vscode/开发工具的配置目录
构建产物dist/, build/, node_modules/编译输出和依赖目录
日志文件*.log, logs/运行时日志文件
临时文件*.tmp, *.swp临时文件和备份文件
环境变量.env, .env.local包含敏感信息的配置文件
后端配置application-*.yml, application-*.properties包含敏感信息的配置文件
编辑器缓存.DS_Store, Thumbs.db操作系统生成的隐藏文件
依赖文件vendor/, target/第三方依赖和构建目标目录
测试覆盖率coverage/, htmlcov/测试覆盖率报告目录
版本控制.git/, .svn/版本控制系统目录

Trae Ignore 配置示例

markdown

## Ignore 配置
.idea/
.vscode/
node_modules/
dist/
build/
target/
vendor/
*.log
logs/
.env
.env.local
application-*.yml
application-*.properties
coverage/
htmlcov/

添加忽略文件的时机

  1. 项目初始化时:添加基础的忽略规则
  2. 引入新工具时:如 IDE、构建工具、测试框架等
  3. 发现敏感信息时:立即将相关文件加入忽略列表
  4. 团队协作时:统一忽略规则,避免不必要的干扰

项目文档体系

Harness 工程中的项目文档体系由 README、AGENTS.md 和 Story 三部分组成,形成完整的文档闭环。

README.md - 项目入口文档

README 是项目的入口文档,位于项目根目录,用于快速了解项目概况。

README 编写规范

  1. 项目简介:简要描述项目名称、功能定位和核心价值
  2. 快速开始:提供环境准备、安装步骤、运行命令
  3. 目录结构:展示项目的目录组织方式
  4. 功能特性:列举项目的主要功能模块
  5. 使用文档:提供详细的使用说明和示例
  6. 贡献指南:说明如何参与项目贡献
  7. 许可证说明:明确项目的开源许可证

README 示例结构

markdown
# 项目名称

## 项目简介
简要描述项目的功能、定位和目标用户。

## 快速开始
### 环境要求
列出运行项目所需的软硬件环境。

### 安装部署
提供详细的安装和部署步骤。

## 目录结构
说明项目各目录的功能和用途。

## 功能列表
- 功能点一
- 功能点二
- 功能点三

## 使用文档
提供详细的使用说明和示例代码。

## 贡献指南
说明代码规范、提交流程、审核标准。

## 许可证
MIT License

AGENTS.md - 任务记录文档

AGENTS.md 位于项目根目录,用于记录 AI 辅助开发过程中的任务执行情况和经验总结。

AGENTS.md 编写规范

  1. Ignore 配置:定义 Trae 需要忽略的文件和目录
  2. 任务历史:按时间顺序记录完成的任务
  3. 规则沉淀:总结项目特定的开发规则
  4. 经验分享:记录开发过程中的技巧和注意事项

AGENTS.md 更新时机

  1. 任务完成时:每次完成任务后立即更新
  2. 规则变更时:项目规则调整时同步更新
  3. 经验积累时:总结出有价值的设计模式或最佳实践时添加
  4. 问题解决时:记录重大问题的解决方案

Story - 逻辑拆解文档

Story 是对复杂业务逻辑的详细拆解文档,通常位于功能模块目录下,用于记录设计思路和实现细节。

Story 编写规范

  1. 问题分析:描述要解决的问题或实现的需求
  2. 方案设计:详细说明技术方案和设计思路
  3. 实现步骤:分解为可执行的小步骤
  4. 代码示例:提供关键代码的实现示例
  5. 测试验证:说明如何验证功能的正确性
  6. 风险评估:识别潜在风险和应对措施

Story 命名规范

  • 文件命名使用小写字母和连字符
  • 格式:story-{功能名称}.md
  • 示例:story-user-authentication.mdstory-order-processing.md

Released under the MIT License.