驾驭AI Coding:一份面向团队的Harness Engineering落地规范

AIAgentSkillBest Practices

交付代码的成本已经接近免费了,但交付好代码的成本依然很高。Harness Engineering 做的事情,就是把"好代码"的标准写进系统里,让 AI 在约束下自己干活。

为什么每位成员都必须遵循这套规范?

AI Coding 工具正在重塑软件开发的方式。当团队中每个人都能用 AI 快速生成代码时,真正拉开差距的不再是"谁写得快",而是"谁写得好、谁写得稳、谁写得可维护"。

这套规范不是束缚,而是团队的共同语言和质量底线:

  • 对个人:它帮你建立正确的 AI 协作习惯,避免踩坑返工,让 AI 真正成为你的生产力倍增器
  • 对团队:它确保每个人产出的代码风格一致、架构统一、可审查可维护,降低协作摩擦
  • 对项目:它把质量标准固化到工具链中,让项目不会因为人员变动而失控

本文档的定位

  • 第一部分(一、二章)回答"为什么"和"是什么":阐述 Harness Engineering 的核心理念和 AI Coding 一体化架构设计
  • 第二部分(三~九章)回答"怎么做":提供分阶段实施路线图、具体配置步骤、日常开发 SOP、反模式总结,以及基于我们构造的 harness-audit Skill 的自动化合规性自检
  • 第三部分(十章)总结

关于阅读重点的一点说明

MCP、Skills、Rules、SDD、知识库这些概念,网上和司内已经有大量入门文章讲过"它们是什么",本文不再花篇幅重复这些老生常谈的定义。本文真正想讲清楚的,是另外两件事:

  • 第一,它们在 Harness 体系中的功能定位。同样是 MCP 和 Skills,单独看每一个工具都不难理解,但放进 Harness 的 6 大支柱里,各自承担什么角色、解决什么层面的问题、在 AI 工作流的哪个环节发挥作用,这才是决定团队能不能用好它们的关键。
  • 第二,它们在实际开发场景中如何相互配合。MCP 提供数据通道、Skills 封装领域经验、知识库注入业务上下文、Rules 划定行为边界——这几样工具不是孤立存在的,真正的威力在于组合使用。本文会结合具体场景(需求开发、Bug 修复、Code Review 等)讲清楚它们怎么协同工作。

其实我们日常开发中,已经或多或少在用 Harness 的思路了,只是缺一个系统化的框架把这些工具的使用方式和用法统一起来;

如果想捋清这些工具背后的设计逻辑,知道在自己的项目里该用哪一个、怎么搭配用、什么时候不该用,那这份规范就是为你准备的。

第一部分:理念与架构

一、核心理念:Harness Engineering(驾驭工程)

1.1 什么是 Harness Engineering?

2026 年 2 月,OpenAI 发了一篇文章《Harness Engineering: Leveraging Codex in an Agent-First World》。一个 3 人(后来扩到 7 人)的工程师团队,在完全禁止手写代码的条件下,用 AI Agent 在 5 个月内写了超过 100 万行代码,合并了 1,500 个 Pull Request,效率大概提升了 10 倍。

Harness 这个词来自马术,本意是"马具"——缰绳、马鞍、马镫。一匹没驯服的马力量很大,但你没法让它耕地、运货、上战场。AI 也一样:

Agent = Model + Harness模型提供智能,Harness 让智能变成生产力。

LLM 本身没有状态、没有工具、没有记忆。Harness 层就是给模型装上"手脚和记忆"的工程基础设施。你写的所有代码、配的所有规则,都是 Harness 的一部分。

plaintext
┌─────────────────────────────────────────────────────┐
│                   应用层 (Application)               │
│         IDE 插件 / CLI / Web UI / 用户交互           │
├─────────────────────────────────────────────────────┤
│               Harness 层 (Agent Harness)             │
│   工具调用 · 上下文管理 · 权限校验 · 状态持久化       │
│   执行编排 · 评估验证 · 约束恢复 · 记忆系统          │
├─────────────────────────────────────────────────────┤
│                   模型层 (Model)                     │
│        LLM (Claude / GPT / DeepSeek 等)              │
│        理解指令 · 生成文本 · 做出决策                 │
└─────────────────────────────────────────────────────┘
1.2 为什么需要 Harness?—— Vibe Coding 的三个致命问题

没有 Harness 约束的"氛围编码"(Vibe Coding),走的是一条 起步极快 → 中期混乱 → 后期崩盘 的路:

问题现象后果
架构混乱Agent 喜欢走捷径,功能A用库X,功能B用库Y(哪怕X也能做),完全没有分层概念一旦要换底层逻辑(比如换数据库),整个项目得大改
上下文雪崩项目超过50个文件后,Agent 开始"忘事"——第1天用 user_id,第3天突然变成 uid项目越大,Agent 越蠢,修一个 Bug 冒出两个新的
可维护性丧失整个开发过程是黑盒,只有 Agent 知道代码怎么来的,人没参与思考人想接手时,从头读几千行"垃圾代码",还不如重写

Harness Engineering 就是来解决这些问题的:

  • 安全边界:权限控制、审计日志、拒绝追踪
  • 可观测性:Token 计数、成本追踪、决策日志
  • 可靠性:重试机制、降级策略、确定性兜底
  • 扩展性:工具生态、技能系统、多 Agent 协调
1.3 Harness 的 6 大支柱及其在 Coding 中的映射

Harness Engineering 把 Agent 的运行环境拆成 6 个支柱,每个支柱在我们的开发规范中都有对应的工具和实践。下面逐个说明。

图片

上图来自于公众号文章: https://mp.weixin.qq.com/s/gs5ndvlMqM-Y4jg1_D2aFw 该文对Harness做了详细的讲解,本文不过多赘述;

这里我们只关注实践工具在其中的构成。

支柱一:上下文管理(Context Architecture)

问题:AI 的上下文窗口有限且贵,怎么让 AI 在对的时间看到对的信息?

实践工具说明
渐进式披露AGENTS.md写一个 ~100 行的目录文件,指向 ARCHITECTURE.mdRules 等细分文档,别一次灌几千行
结构化规范Spec .md 文件(requirement.md / task.md)把需求和设计决策写进 Git 仓库,变成 AI 随时能调取的"长期记忆"
变更隔离changes/ 目录用 Proposals 机制把"增量变更"和"存量代码"隔开,减少对现有逻辑的误伤
知识分层Skills 按需加载技能信息分三层(描述 → 指令 → 详细步骤),按需逐步加载,省 Context
知识库挂载知识库(iWiki 代码库 自定义文件)把团队 Wiki、代码仓库、业务文档挂载为知识库,AI 对话时自动或手动引用,获取业务上下文
代码知识化AI Wiki基于代码库自动生成结构化知识文档,AI 不用逐文件阅读就能理解项目全貌

几个原则:

  • 别给 AI 一个几千行的规范文件
  • 建分层索引,让 AI 按需深入
  • 把团队 Wiki 和业务文档挂载为知识库,让 AI 有业务上下文
  • 把仓库知识当作"系统记录"(System of Record),别依赖聊天历史

OpenAI 自己踩过坑:早期试过"一个巨大的 AGENTS.md",失败了。正确做法是拆成多个专注的文档,用目录索引串起来。

支柱二:工具系统(Tool System)

问题:AI 怎么触达代码仓库之外的真实世界,怎么具备特定领域的专业能力?

工具系统由三部分组成:MCP(连接外部世界)、Skills(封装专家经验)和知识库(注入业务上下文),三者配合构成 AI Agent 的完整能力体系。

图片

MCP(Model Context Protocol)—— 连接外部数据源

MCP 类型作用典型场景
DB MCP自动读取实时数据库 Schema避免 AI 写出不存在的字段,生成准确的 SQL
Knowledge Base MCP挂载团队内部文档让 AI 有业务上下文,理解领域术语
API MCP实时查询其他服务接口定义微服务联调时,确保接口参数一致
运维 MCP接入 CI/CD、监控系统AI 可以直接触发构建、查看日志、分析告警

Skills(Agent Skills)—— 封装领域专家经验

Skills 是业务逻辑、领域知识和执行 SOP 的封装,让 AI 从"什么都会一点"变成"某个领域的专家"。

Skill 类型作用典型场景
工具接入类封装内部工具链的接入规范rainbow-config:按标准流程接入七彩石配置中心
代码生成类固化特定模式的代码生成逻辑按团队架构规范生成 CRUD 模块、中间件接入代码
元技能类让 AI 能自我扩展skill-creator:教 AI 根据现有代码创建新 Skill
搜索发现类从社区发现可用能力find-skills:从 80,000+ 技能库搜索并安装 Skill

知识库(Knowledge Base)—— 注入业务上下文

知识库是让 AI 从"通用模型"变成"懂业务的助手"的关键。挂载团队内部文档、代码仓库和业务资料后,AI 对话时能自动获取业务上下文,少猜多做。

知识库类型数据来源典型场景
iWiki 文档库团队 Wiki 空间挂载业务规范、技术方案、API 文档,AI 回答时自动引用
代码库知识工蜂 Git 仓库挂载公共组件(如 tRPC、七彩石 SDK),AI 生成代码时参考正确用法
AI Wiki代码库自动生成基于代码库自动生成结构化知识文档,快速理解项目架构和模块逻辑
自定义文件Markdown PDF txt上传需求文档、设计稿、会议纪要等,让 AI 有项目背景

知识库使用方式

  • 显式引用:在对话中输入 @KnowledgeBase 选择特定知识库引用
  • 自动引用:开启自动参考开关,AI 对话时自动检索相关知识
  • 团队共享:通过 Knot 平台将知识库共享给团队/组织,统一业务认知

核心比喻:MCP 是开门的钥匙,Skills 是开门后做的事情,知识库是进门前读的说明书。三者缺一不可——没有 MCP,AI 是闭门造车;没有 Skills,AI 有钥匙但不知道进门干什么;没有知识库,AI 进了门也不懂业务。

支柱三:执行编排与多 Agent 协作(Execution Orchestration)

问题:怎么让 AI 按部就班而不是乱写一气?怎么让多个 Agent 角色配合完成复杂任务?

执行编排不只是选模式(Plan vs Agent),而是一套多 Agent 协作的标准化工作流。团队应该遵循“3+1 Phase”流程,每个阶段由不同角色的 Agent 负责:

图片

"3+1 Phase" 标准化工作流

阶段输入AI 操作产出协作模式
Phase 1: 计划需求描述Plan 模式生成 requirements.md,人工审核后创建 task.md结构化方案文件人类 Review 方案
Phase 2: 编码任务清单加载 Rules 和 Skills,调用 MCP 工具实现代码源代码 + 单元测试Generator Agent 执行
Phase 3: 交付待合入代码AI 自动做规范合规检查和代码逻辑审查通过核查的 PREvaluator Agent 验收
Phase 4: 沉淀已合并需求自动把 Spec 归档,更新项目知识库持久化知识资产归档自动化

多 Agent 角色定义

图片

Agent 角色职责加载的 Harness
Planner理解需求、拆解任务、生成方案Plan 模式 + 项目 Spec
Generator按方案写代码、写测试Rules + Skills + MCP
Evaluator代码审查、规范检查、测试验证Rules + 验收标准
Archiver归档变更、更新知识库归档脚本 + Git

实际操作中:

  • 用 Plan 模式做架构分析和大任务拆解(Planner 角色)
  • 用 Agent 模式做具体功能的自动化实现(Generator 角色)
  • 用 AI Code Review 做交付前的质量把关(Evaluator 角色)
  • 遵循 SDD 工作流requirements.md → 人工审核 → task.md → 执行 → 归档
  • 每个任务必须有明确的"完成标准"(Acceptance Criteria)
支柱四:状态与记忆(State & Memory)

问题:怎么让 AI 在长周期开发中保持一致性?

记忆类型实现方式生命周期
短期记忆当前会话上下文单次对话
中期记忆Memories 功能跨会话持久化
长期记忆Git 仓库中的 Spec 文件项目全生命周期
变更记忆Spec Deltas(changes/ 目录)单次变更周期

实际操作中:

  • 用 Git 记录规范变更(Spec Deltas),形成项目的长期记忆
  • 用 Memories 功能让 AI 记住编程习惯和项目信息
  • 每次变更归档后,自动更新 .codebuddy/plan/ 下的归档记录
支柱五:评估与观测(Evaluation & Observability)

问题:怎么验证 AI 生成的代码是不是靠谱的?

图片

评估分四层:

层次检查内容工具/方式
L1 语法编译通过、Lint 检查go build / golangci-lint
L2 逻辑单元测试通过go test / 自动生成测试用例
L3 规范符合 Rules 约束AI 自动合规检查
L4 架构不破坏现有设计人工 + AI 联合审查

实际操作中:

  • 引入 AI 代码审查(CR),合入前自动检查规范合规性
  • 代码写完后,自动编译和基础自测(闭环验证)
  • 影响较大的改动,可以自动生成变更日志
支柱六:约束与恢复(Guardrails & Recovery)

问题:怎么防止 AI 越界操作,出错了怎么快速恢复?

约束分三级:

plaintext
┌──────────────────────────────────────────┐
│  硬性红线(Rules - 不可违反)              │
│  "所有 API 必须包含 Swagger 注解"         │
│  "禁止在 Controller 层编写业务逻辑"       │
│  "所有数据库查询必须使用 Repository 模式"  │
├──────────────────────────────────────────┤
│  软性约束(Skills - 推荐遵循)             │
│  "优先使用项目已有的工具类"                │
│  "日志格式遵循团队统一标准"                │
├──────────────────────────────────────────┤
│  安全策略(Safety - 兜底保护)             │
│  "涉及数据库变更,优先生成 SQL 脚本"       │
│  "高风险操作前自动检测影响范围"             │
│  "重要操作自动备份"                        │
└──────────────────────────────────────────┘

恢复机制:

  • 所有变更通过 Git 管理,随时可以回滚
  • Spec Deltas 机制确保变更可追溯
  • 编译失败时自动回退到上一个稳定状态
1.4 Harness 6 大支柱与工具链映射总表
支柱核心问题对应工具团队实践
上下文管理AI 看到什么信息?Spec 文档 AGENTS.md 知识库结构化规范 + 渐进式披露 + 业务知识挂载
工具系统AI 能触达什么?MCP Skills 知识库DB/API 实时接入 + 知识库业务沉淀 + Skills 专家经验
执行编排与多 Agent 协作AI 按什么顺序做?谁来做?Plan 模式 SDD 工作流 多 Agent 角色体系"3+1 Phase":Planner → Generator → Evaluator → Archiver
状态与记忆AI 记住什么?Git + Memories + Spec Deltas长期记忆持久化
评估与观测AI 做得对不对?自动测试 + AI CR编译→测试→审查闭环
约束与恢复AI 不能做什么?Rules + Safety 策略硬性红线 + 自动回滚

下文会详细讲解具体工具规范。

二、AI Coding 一体化架构

基于Harness Engineering 的 6 个支柱,这一章把它落地成一套完整的架构。这套架构定义了从"人的想法"到"能跑的代码"的全链路,算是团队 AI 辅助开发的技术蓝图。

说白了,AI 不是一个孤立的代码生成器,它是嵌在整个工程体系里的一个节点。架构的每一层都对应 Harness 的某个支柱,确保 AI 在约束下干活。

2.1 架构全景图

在开发实践过程中,我们整理了一个AI编码的整体架构图,从上到下分五层:输入层 → 工作台(CodeBuddy)→ 底层支撑(MCP)→ 输出层 → 度量层,数据自上而下流动,形成闭环:

图片

各层职责

以下表格说明架构中每一层的组件和职责:

层级组件职责
输入层Spec 文档(requirement.md)/ 自然语言 / 代码上下文把人的想法转成 AI 能理解的结构化输入
配置中心Rules Skills Docs Commands Memories加载 Harness 约束,让 AI 行为可控
模式引擎Plan 模式 / Agent 模式根据任务复杂度选执行策略
Agent 核心代码生成 审查 测试 / 重构执行具体的开发任务
MCP 层DB API Wiki CI/CD Monitor连接外部系统,突破代码仓库边界
输出层代码 测试 文档 / 日志交付可运行的工程产物
度量层AI 代码占比 交付量 Bug 率量化 AI 辅助开发的效果

数据怎么流转

plaintext
人的想法 → [输入层] → 结构化输入
                         ↓
              [配置中心] 加载约束 → [模式引擎] 选择策略
                         ↓
                    [Agent 核心] 执行任务
                      ↓         ↓
              [MCP 层] 获取外部数据   [输出层] 交付产物
                                        ↓
                                   [度量层] 量化效果 → 反馈优化规范

注意,这不是单向流水线,而是一个闭环——度量层的数据会反馈到配置中心,推动 Rules 和 Skills 的迭代。比如度量发现 Bug 率上升了,团队就该检查是不是需要补新的 Rules 约束或者优化现有 Skills。

第二部分:落地实操

以上两章阐述了 Harness Engineering 的核心理念和 AI Coding 一体化架构的设计蓝图。理解了"为什么"和"是什么"之后,接下来最关键的问题就是"怎么做"。本部分聚焦于如何一步步把规范落地到团队日常开发中。每一节都包含具体的操作步骤、配置示例和验收标准,确保团队成员照着做就能跑通。

三、实施路线图(3 阶段渐进式)

落地不是一蹴而就的事。我们把整个过程拆成三个阶段,每个阶段有明确的目标和验收标准:

阶段目标周期核心产出
第一阶段:基础建设让团队每个人都能用上 AI Coding 工具,建立基本约束体系1-2 周CodeBuddy 安装 + team-harness 仓库 + 基础 Rules + 知识库配置
第二阶段:工具接入接入 MCP、沉淀 Skills、实践 Plan 模式 SDD2-4 周MCP 接入 + Skills 沉淀 + Spec 驱动开发流程跑通
第三阶段:持续优化建立自演进的知识体系,实现知识飞轮效应持续度量看板 + 规范迭代机制 + 知识飞轮

四、第一阶段:基础建设(快速启动)

目标:让团队每个人都能用上 AI Coding 工具,并建立基本的约束体系。

4.1 CodeBuddy 安装与配置
4.1.1 IDE 插件安装

VSCode 安装

  1. 前往 CodeBuddy官网下载插件 .vsix 文件
  2. 进入 VSCode → Extensions → ... → Install from VSIX → 选择下载的插件
  3. 按 Command(⌘) + L 或 Ctrl + L,底部出现 CodeBuddy 图标代表安装成功
  4. 登录账号,确认 Plan 模式和 Agent 模式均可正常使用

JetBrains 系列 IDE 安装(GoLand PyCharm IDEA 等):

  1. 前往 CodeBuddy 官网下载 JetBrains 插件 .zip 文件(注意:下载后不要解压
  2. 进入 IDE → Plugins → ⚙️ → Install Plugin from Disk → 选择下载的 .zip 文件
  3. 底部出现 CodeBuddy 图标代表安装成功
  4. 登录账号,确认对话功能正常

⚠️ Mac Safari 浏览器默认会自动解压 zip 文件,建议在 Safari 设置中取消勾选"下载后打开安全文件"。

4.1.2 CLI 工具安装(可选)

司内已集成三种顶级 CLI 编程工具,按需选择:

CLI 工具安装命令启动命令配置目录
Claude Code Internal`npm install -g --registry=https://xxx.com/claude-internal~/.claude-internal/
Gemini CLI Internalnpm install -g --registry=https://xxx.com/gemini-internal~/.gemini/
Codex CLI Internalnpm install -g --registry=https://xxx.com/codex-internal~/.codex-internal/

前置依赖:Node.js 20 或以上版本。三者都属于行业最强 AI Coding 工具,按个人习惯选择即可。

4.1.3 CodeBuddy 核心配置

安装完成后,需要进行以下核心配置,让 CodeBuddy 发挥最大效能:

1. 模型选择

在对话框左下角切换模型。推荐策略:

场景推荐模型说明
复杂编码任务Claude-4.6-Sonnet/Opus(更强) / GPT-5.4外部模型,编程能力一流,但会外传代码上下文
简单问题 / 敏感业务DeepSeek-V3.2 GLM-4.7 HY-2.0内部部署,代码不出域,安全有保障
不确定选哪个Auto(智能自动选择)基于问题复杂度自动匹配最优模型

⚠️ 安全提醒:Claude、GPT、Gemini 等外部模型会发送代码上下文到外部,敏感业务请使用内部部署模型。

2. Memories 配置(记忆功能)

Memories 让 CodeBuddy 记住你的编码习惯和项目信息,跨会话持久化。

开启方式

  1. 在 CodeBuddy 设置页面,选择 Memories 选项
  2. 确认 Memories 开关已开启

主动记忆: 在 Agent 模式对话中,直接告诉 CodeBuddy 需要记住的信息:

plaintext
请记住:
1. 我习惯使用 Go 语言开发,项目使用 gin 框架
2. 代码注释使用中文
3. 变量命名使用 camelCase 风格
4. 所有 API 返回统一使用 pkg/response 包的标准格式

管理记忆: 在 CodeBuddy 设置页面 → Memories,可以查看、编辑、删除已保存的记忆。

3. Commands 配置(指令式交互)

Commands 是将高频开发任务封装为可复用命令的能力,本质是"可被快速触发的标准化 Prompt"。

创建 Command

  1. 在对话框输入 /,选择"新增 Command"
  2. 输入 Command 名称(建议使用英文命名)
  3. 填入 Command 内容(即预设的 Prompt)

推荐的团队 Commands

Command 名称用途触发方式
/init为项目初始化 AI 使用手册(自动生成 Rules)新项目首次使用时
/pre-mr-checklist代码提交前安全 & 漏洞检测提交 PR 前
/spec-create创建需求 Spec 文档新需求开发时
/spec-plan基于 Spec 生成任务清单需求审核通过后

/init Command 示例内容

plaintext
请分析此代码库,并在当前代码库 `.codebuddy/rules` 目录下创建 global.md 文件,
该文件将提供给未来的 CodeBuddy 实例在此代码库中运行使用。
 
需要补充的内容:
1. 将经常使用的命令包括在内,例如如何构建、如何进行代码检查以及如何运行测试
2. High-level 的代码架构和结构,重点在于"宏观"的架构设计
 
使用说明:
- 如果该文件已经存在,请对其进行改进
- 不要包含通用的开发实践
- 确保该文件前有以下头部元数据:
---
# CodeBuddy Rules
type: always
---

⚠️ 验收标准:每位团队成员能在 IDE 中正常唤起 CodeBuddy 对话框,Token 使用量正常,能展示一个简单项目实现的 prompt。

4.2 创建 team-harness 仓库

这是团队规范的唯一真实来源,所有 Rules、Skills 模板、AGENTS.md 模板都集中管理在这里。

Step 1:初始化仓库结构

plaintext
# 创建仓库
mkdir team-harness && cd team-harness
git init
 
# 创建标准目录结构
mkdir -p rules/{global,golang,python,frontend}
mkdir -p skills/{common,business}
mkdir -p templates
mkdir -p docs
 
# 创建核心文件
touch rules/global/base.md
touch rules/golang/go-backend.md
touch templates/AGENTS.md
touch templates/project.md
touch README.md

最终目录结构

plaintext
team-harness/
├── rules/                      # 团队 Rules 集合
│   ├── global/                 # 全局通用规则
│   │   └── base.md             # 基础规范(所有项目必须加载)
│   ├── golang/                 # Go 语言专用规则
│   │   └── go-backend.md
│   ├── python/                 # Python 专用规则
│   └── frontend/               # 前端专用规则
├── skills/                     # 团队 Skills 集合
│   ├── common/                 # 通用 Skills
│   │   ├── skill-creator/      # Skill 创建器
│   │   └── find-skills/        # Skill 搜索器
│   └── business/               # 业务 Skills
│       └── rainbow-config/     # 七彩石配置接入
├── templates/                  # 模板文件
│   ├── AGENTS.md               # AI 说明书模板
│   └── project.md              # 项目描述模板
├── docs/                       # 使用文档
│   └── onboarding.md           # 新人上手指南
└── README.md

Step 2:编写同步脚本

在业务项目中通过脚本自动拉取最新规范:

plaintext
#!/bin/bash
# sync-harness.sh - 同步团队规范到当前项目
HARNESS_REPO="git@xxx.com"
HARNESS_DIR=".harness-upstream"
 
# 拉取最新规范
if [ -d "$HARNESS_DIR" ]; then
    cd $HARNESS_DIR && git pull && cd ..
else
    git clone $HARNESS_REPO $HARNESS_DIR
fi
 
# 同步 Rules 到项目
mkdir -p .codebuddy/rules
cp $HARNESS_DIR/rules/global/*.md .codebuddy/rules/
cp $HARNESS_DIR/rules/golang/*.md .codebuddy/rules/  # 按语言选择
 
# 同步 Skills 到项目
mkdir -p .codebuddy/skills
cp -r $HARNESS_DIR/skills/common/* .codebuddy/skills/
 
echo "✅ 团队规范同步完成"

Step 3:配置 CI 自动同步(可选)

在项目的 CI 流水线中加入自动同步步骤,确保每次构建前规范都是最新的。

4.3 Rules 配置(全局与项目级约束)

Rules 是 AI 在每次交互中必须加载的全局约束,相当于 AI 必须遵守的"法律"。CodeBuddy 支持三个层级的 Rules:

4.3.1 Rules 分层体系

图片

层级作用域配置方式加载方式
User Rules所有项目(个人)CodeBuddy 设置页面 → Rules每次对话自动带入
Team Rules团队所有成员Knot 平台管理下发按 type 配置(always / manual)
Project Rules单个项目.codebuddy/rules/ 目录下的 .md 文件总是生效 或 手动 @引用
4.3.2 User Rules 配置
  1. 点击 CodeBuddy 对话面板的设置齿轮图标
  2. 进入 Rules 设置页面
  3. 添加个人偏好规则,也可使用平台预置的 Rules 快速生成后微调
plaintext
# 个人偏好示例
1. 回复使用中文
2. 代码注释使用中文
3. 优先使用 Go 标准库
4. 变量命名使用 camelCase
4.3.3 Team Rules 配置(通过 Knot 平台)

Team Rules 由团队管理员在 Knot 平台统一管理和下发,确保团队所有成员遵循一致的标准。

配置步骤

  1. 前往 Knot Rules 管理页面
  2. 点击「新建 Team Rule」
  3. 填入 Rule 内容,头部必须包含 Rule Type Header:
plaintext
---
type: always
---
# 团队 Go 后端开发规范
 
## 架构约束
1. 严格遵循分层架构:Controller → Service → Repository → Model
2. 禁止在 Controller 层编写业务逻辑
...
  1. 提交审批,审批通过后 Team Rule 自动生效
  2. 团队成员的 CodeBuddy 会自动加载已生效的 Team Rules

💡 Team Rule 的 type 支持 always(总是生效)和 manual(手动引用)两种模式。

4.3.4 Project Rules 配置

创建方式

  1. 在 CodeBuddy 对话面板中点击「新增 Project Rule」
  2. 输入 Rule 内容(注意不要修改头部元数据)
  3. 设置生效范围:
  4. 总是生效:每次对话自动带入手动指定:需要在对话时 @Rules 选择

Rules 文件结构规范

plaintext
---
description: "Go 后端开发通用规范"
globs: "**/*.go"
alwaysApply: true
---
 
# Go 后端开发规范
 
## 一、架构约束(硬性红线)
1. 严格遵循分层架构:Controller → Service → Repository → Model
2. 禁止在 Controller 层编写业务逻辑,Controller 只负责参数校验和响应封装
3. 所有数据库操作必须通过 Repository 层,禁止在 Service 中直接写 SQL
4. 所有对外 API 必须包含 Swagger 注解
 
## 二、代码风格
1. 函数/方法必须有简要注释说明用途
2. 错误处理不允许使用 _ 忽略,必须显式处理或向上传递
3. 变量命名使用 camelCase,常量使用 ALL_CAPS
4. 单个函数不超过 80 行,超过则拆分
 
## 三、安全策略
1. 涉及数据库变更时,优先生成 SQL 变更脚本,而非直接执行
2. 删除、移动文件等操作无需额外确认,但涉及数据库结构修改必须确认
3. 所有敏感配置(密钥、连接串)必须通过配置中心读取,禁止硬编码
 
## 四、开发行为
1. 添加新功能前,必须先分析现有代码库,优先复用已有模块
2. 代码变更范围最小化,一次 PR 只解决一个问题
3. 每次变更必须附带清晰的 commit 信息
4. 新增功能必须同步编写单元测试
4.3.5 Rules 的保存与复用流程

图片

这套流程在业务项目、team-harness 仓库、开发者、AI 之间流转,下次交互会自动加载新规则:

  1. 提交 Rules 变更 PR
  2. 团队 Review & 合并
  3. 自动同步到各业务项目
  4. .codebuddy/rules/ 更新

验证 Rules 生效

plaintext
# 在 CodeBuddy 中测试
你好,请告诉我当前加载了哪些 Rules?

AI 应能识别并列出已加载的规则文件。

4.4 编写 AGENTS.md

AGENTS.md 是 AI 的"说明书",控制在 ~100 行以内,当目录索引用,指向更细分的文档。

创建文件 AGENTS.md(放在项目根目录):

plaintext
# AI 开发助手说明书
 
## 项目概述
本项目是 [项目名称],基于 Go 微服务架构,使用 [框架名] 框架。
 
## 架构说明
- 分层架构:Controller → Service → Repository → Model
- 详细架构文档:参见 `docs/ARCHITECTURE.md`
 
## 目录结构
- `internal/` - 业务逻辑(按服务拆分子目录)
- `pkg/` - 公共工具库
- `api/` - API 定义(Proto/Swagger)
- `configs/` - 配置文件
- `scripts/` - 脚本工具
 
## 开发规范
- 代码规范:参见 `.codebuddy/rules/go-backend.md`
- 数据库规范:所有查询走 Repository 层
- 错误处理:统一使用 `pkg/errors` 包装错误
 
## 常用命令
- 编译:`go build ./...`
- 测试:`go test ./...`
- Lint:`golangci-lint run`
 
## 当前进行中的需求
- 参见 `.codebuddy/plan/` 目录下的活跃需求
 
## 注意事项
- 添加新功能前,先检查 `pkg/` 下是否已有可复用的工具
- 数据库变更必须先生成 SQL 脚本
- 所有 API 变更需要更新 Swagger 文档

⚠️ AGENTS.md 是目录索引,不是百科全书。保持精简,让 AI 按需深入查阅具体文档。

4.5 知识库配置(详细实操)

知识库是让 AI 有业务上下文的核心手段。挂载团队内部文档、代码库和业务知识后,AI 能从"通用智能"变成"懂你业务的专家"。

4.5.1 知识库类型与适用场景
知识库类型数据来源适用场景配置入口
iWiki 文档库团队 Wiki 空间业务文档、技术方案、API 说明、运维手册Knot 平台
工蜂代码库Git 仓库代码公共组件 SDK、框架源码、参考实现Knot 平台
自定义文件Markdown txt PDF需求文档、设计稿、会议纪要、领域知识Knot 平台
AI Wiki基于代码库自动生成项目架构理解、模块逻辑梳理、新人上手CodeBuddy 内置
4.5.2 在 Knot 平台创建团队共享知识库

Step 1:创建知识库

  1. 前往 Knot 知识库管理页面
  2. 点击「添加知识库」
  3. 选择知识库类型(iWiki 工蜂代码库 自定义文件)
  4. 填入知识库信息:
  5. iWiki 类型:填入 iWiki 空间地址工蜂代码库类型:填入 Git 仓库地址和分支自定义文件类型:上传 Markdown txt PDF 文件

Step 2:配置共享范围

  1. 在知识库详情页,开启「共享开关」
  2. 选择需要分享的组织/团队
  3. 提交后等待管理员审批,审批通过即完成团队共享

Step 3:配置数据源

在知识库的「数据源配置」页面,可以配置多种数据源:

  • 需求:支持 TAPD 项目
  • 代码:支持工蜂 Git 仓库(填入仓库地址和分支)
  • 文档:支持 iWiki 空间
  • 可观测:支持智研项目
4.5.3 在 CodeBuddy 中启用知识库

Step 1:进入知识库设置

在 CodeBuddy 对话面板中,点击设置图标 → 进入「知识库」选项。

Step 2:开启知识库

  1. 在知识库列表中,开启需要的公共知识库和个人知识库
  2. 配置自动引用开关(推荐开启,AI 会自动参考相关知识)

Step 3:使用知识库的两种方式

plaintext
# 方式一:显式引用(精确控制)
# 在对话输入框中输入 @KnowledgeBase,选择特定知识库
@团队技术文档 请帮我分析当前项目的缓存策略是否合理
 
# 方式二:自动引用(省心省力)
# 开启自动参考开关后,AI 会根据问题自动检索相关知识
请帮我实现用户鉴权模块,参考团队现有的鉴权方案
4.5.4 开通 AI Wiki(推荐)

AI Wiki 是基于代码库自动生成的结构化知识库,帮助团队成员快速理解项目架构:

  1. 在 CodeBuddy 右上角菜单中打开 AI Wiki
  2. 按指引为当前代码库开通 AI Wiki(索引通常在 24h 内完成)
  3. 开通后可直接在 IDE 中浏览项目文档,点击文件跳转到源码
  4. 通过 @AIWiki 向 AI Wiki 提问,快速了解项目模块逻辑
4.5.5 推荐的团队知识库清单
优先级知识库名称类型内容
P0团队技术文档iWiki架构设计、技术方案、接口文档
P0核心公共库工蜂代码库tRPC SDK、七彩石 SDK、北极星 SDK 等
P1业务需求文档自定义文件产品需求文档、设计稿
P1项目 AI WikiAI Wiki基于代码库自动生成的结构化文档
P2运维手册iWiki部署流程、监控告警、故障处理

⚠️ 验收标准:团队成员在 CodeBuddy 中提问业务相关问题时,AI 能自动引用知识库内容给出准确回答,而不是泛泛而谈。

五、第二阶段:工具接入(深度集成)

目标:接入 MCP、沉淀 Skills、初始化 Spec 目录结构,在试点项目中实践 Plan 模式 SDD。

5.1 MCP 配置(上下文边界突破)

MCP(Model Context Protocol)是 AI 的"感知触手",让 AI 能触达代码仓库之外的真实世界。

5.1.1 MCP 接入决策

图片

⚠️ 何时不该用 MCP

  • 只写一个简单脚本查天气 → 直接调 API
  • 纯逻辑推理、创意写作、代码生成 → MCP 几乎没有用武之地
  • 引入 MCP 的复杂度 > 它解决的问题 → 不用
5.1.2 CodeBuddy 插件端 MCP 配置

Step 1:打开 MCP 配置

  1. 在 CodeBuddy 对话面板点击「对话设置」
  2. 点击「添加 MCP」
  3. 编辑 mcp.json 配置文件

Step 2:配置 mcp.json

MCP 支持三种协议类型:

stdio 类型(本地命令行工具):

plaintext
{
  "mcpServers": {
    "db-mysql": {
      "command": "npx",
      "args": ["-y", "@anthropic/mcp-server-mysql"],
      "env": {
        "MYSQL_HOST": "127.0.0.1",
        "MYSQL_PORT": "3306",
        "MYSQL_USER": "readonly_user",
        "MYSQL_PASSWORD": "${DB_PASSWORD}",
        "MYSQL_DATABASE": "your_database"
      },
      "timeout": 10000,
      "transportType": "stdio"
    }
  }
}

streamable-http 类型(推荐,远程服务):

plaintext
{
  "mcpServers": {
    "gump-tool": {
      "url": "http://127.0.0.1:3000/mcp",
      "timeout": 10000,
      "headers": {
        "Authorization": "Bearer your-token"
      },
      "transportType": "streamable-http"
    }
  }
}

sse 类型(逐步废弃,优先使用 streamable-http):

plaintext
{
  "mcpServers": {
    "legacy-server": {
      "url": "http://0.0.0.0:3001/sse",
      "headers": {},
      "timeout": 10000,
      "transportType": "sse"
    }
  }
}

⚠️ 注意事项:timeout 单位是 ms,默认 10s,最大 300sstdio 类型的 args 必须拆开,不能合并为一个字符串MCP 只在 Agent 模式下生效,提问时需要打开 Agent

Step 3:司内常用 MCP 配置参考

plaintext
{
  "mcpServers": {
    "gongfeng": {
      "command": "npx",
      "args": ["-y", "@tencent/tgit-mcp-server@latest"],
      "env": {
        "GONGFENG_ACCESS_TOKEN": "你的工蜂密钥"
      }
    },
    "iWiki": {
      "headers": {
        "Authorization": "Bearer 你的太湖 token"
      },
      "type": "http",
      "url": "https://prod.xxx.com"
    },
    "tapd": {
      "headers": {
        "X-Tapd-Access-Token": "TAPD 个人Token",
        "X-Keep-Links": "true"
      },
      "type": "http",
      "url": "http://mcp.xxx.com"
    }
  }
}

更多 MCP 可前往 Knot MCP 市场 获取。

5.1.3 CLI 端 MCP 配置

Claude Code Internal

  • 用户级配置:~/.claude-internal/.claude.json
  • 项目级配置:项目根目录下的 .mcp.json

Gemini CLI Internal

  • 配置文件:~/.gemini/settings.json
  • 注意:CLI 配置 Streamable Http 格式的 MCP,url 需要写作 httpUrl
5.1.4 验证 MCP 连接

在 CodeBuddy 中测试:

plaintext
请通过 DB MCP 读取当前数据库中 users 表的结构,列出所有字段名和类型。

如果失败,检查:

  • MCP Server 是否正常启动(查看 CodeBuddy 输出面板的日志)
  • 数据库连接信息是否正确
  • 网络是否可达
  • 是否已开启 Agent 模式
5.1.5 团队 MCP 接入清单
优先级MCP Server接入目的验收标准
P0DB MCPAI 实时读取数据库 SchemaAI 能准确描述任意表结构
P0工蜂 MCP读取代码仓库、Issue、MRAI 能读取 Issue 并给出实现思路
P1iWiki MCP挂载团队 Wiki 文档AI 能回答业务领域问题
P1TAPD MCP读取需求和任务AI 能读取需求并生成 Spec
P2CI/CD MCP触发构建和查看日志AI 能执行构建并分析失败原因
5.2 Knot 平台配置(智能体与知识管理中枢)

Knot 平台是 CodeBuddy 生态的管理中枢,提供知识库、MCP、Rules、Skills、智能体等核心能力的统一管理。

5.2.1 Knot 平台核心功能一览
功能模块入口作用
智能体knot.xxx.com创建、管理、共享自定义智能体
研效知识库knot.xxx.com创建和管理团队知识库
MCP 市场knot.xxx.com发现和安装 MCP Server
Rules 市场knot.xxx.com获取和管理 Rules
Skillsknot.xxx.com管理 Agent Skills
5.2.2 在 Knot 创建自主规划式智能体

自主规划式智能体能自主分析任务并制定执行计划,适合复杂多变的场景。

Step 1:新建智能体

  1. 前往 Knot 智能体页面
  2. 点击「+ 新建智能体」
  3. 选择「自主规划」类型

Step 2:配置智能体

在智能体配置页面,填写以下信息:

配置项说明示例
智能体名称简洁明了的名称"团队需求评审智能体"
智能体描述准确描述职责和能力(影响子智能体匹配)"基于 TAPD 需求与代码库,评审需求完整性和可行性"
Prompt详细的角色设定和行为指引包含身份、目标、职责范围、操作指导
知识库选择关联的知识库团队技术文档、项目知识库
MCP 服务选择需要的 MCP 工具TAPD MCP、工蜂 MCP
Rules选择适用的 Rules团队编码规范
Skills选择需要的 Skillsskill-creator 等
Client 工具选择客户端工具读取文件、执行命令等

Step 3:发布智能体

配置完成后,点击右上角「发布更新」。

5.2.3 配置智能体使用渠道

Knot 智能体支持多种使用渠道:

使用渠道适用场景配置方式
网页对话日常使用、调试默认可用,无需额外配置
企微智能机器人团队群聊、私聊配置 Bot ID 和 Secret
API 调用集成到现有系统获取 API 接口和密钥
网页 URL分享给外部用户生成独立网页链接
Knot CLI命令行使用安装 Knot CLI 工具
流水线CI/CD 集成在蓝盾/QCI 流水线中配置
定时运行自动化任务设置定时任务频率

企微智能机器人配置步骤

  1. 进入企微工作台 → 搜索「智能机器人」→ 创建机器人
  2. 选择「手动创建 - API 模式」
  3. 设置机器人基础信息
  4. 将 Bot ID 和 Secret 填写到 Knot 智能体的「使用配置」中
  5. 先保存智能机器人配置,再保存 Knot 配置
  6. 等待 5-8s 显示「已连接」后即可使用
5.2.4 智能体团队共享
  1. 在智能体详情页 → 使用配置 → 权限配置
  2. 编辑「可使用」权限,添加团队成员
  3. 工作区也支持共享,在工作区管理页面开启共享开关
5.3 CodeBuddy 子智能体(SubAgent)配置

子智能体是 CodeBuddy 的核心协作能力——让多个专业智能体在对话中自动配合完成复杂任务。

5.3.1 什么是子智能体

在日常开发中,我们经常遇到固定的开发场景(需求分析、架构规划、国际化改造、重构等),反复处理这些任务时需要反复编写相同提示词、引用知识库并选择工具。

子智能体解决这个问题:根据开发场景,灵活组合提示词、工具和知识库打造业务专属智能体,启用后可在默认 Agent 对话时根据对话任务动态调用合适的子智能体协作完成任务。

5.3.2 创建自定义智能体

Step 1:创建智能体

  1. 在 CodeBuddy 对话框左下角模式选择,点击「创建智能体」
  2. 也可在对话面板顶部设置 → 对话 → 拉到底部的「自定义智能体」

Step 2:配置智能体

填写智能体的基本信息,组合可调用的工具、MCP、知识库:

配置项说明注意事项
名称智能体名称简洁明了
描述职责描述非常重要,会依据描述来匹配智能体
Prompt行为指引定义角色、能力、约束
工具可调用的工具按需选择
MCP可调用的 MCP 服务按需选择
知识库关联的知识库尽量选择与场景关联度高的,少而精

⚠️ 知识库选择后会在此智能体对话时主动引用,尽量选择仅与此场景关联度较高的知识库。未选择的知识库也可在对话时主动 @引用。

5.3.3 启用为子智能体(SubAgent)

如果需要多个智能体配合完成更复杂的工作场景,可以启用子智能体自动调用:

  1. 给智能体添加准确的职责描述(此描述很重要,会依据描述来匹配智能体)
  2. 勾选「子智能体」选项

提升子智能体被调用概率的技巧

在描述中增加触发条件,例如:

plaintext
当用户提出与数据库 / 数据查询 / 报表 / EDA 相关的请求时,必须调用我
5.3.4 推荐的团队子智能体配置
子智能体名称职责描述关联知识库关联 MCP
需求分析专家分析需求文档,生成 requirements.md业务需求文档TAPD MCP
架构设计专家分析项目架构,给出设计建议团队技术文档、AI Wiki-
数据库专家数据库设计、SQL 优化、Schema 分析-DB MCP
Code Review 专家代码审查,检查规范合规性团队编码规范工蜂 MCP
运维排障专家分析日志、定位问题、给出修复建议运维手册监控 MCP
5.3.5 公开分享智能体

创建的智能体可以通过 Knot 平台分享给团队:

  1. 访问 Knot 智能体管理页面
  2. 选择要分享的智能体(来自 CodeBuddy 创建的会有"CodeBuddy 智能体"标识)
  3. 进入使用配置,编辑可见(可使用)范围
  4. 团队成员在 Knot 平台收藏后,智能体会出现在 CodeBuddy 自定义智能体列表中
5.4 Skills 配置

Skills 是给 AI 的操作手册——把团队的专家经验、最佳实践和操作流程固化成 AI 可执行的指令。

5.4.1 Skill 文件结构规范
plaintext
---
name: "rainbow-config"
description: "七彩石(Rainbow)配置中心的连接、查询和更新操作。
当需要对七彩石配置进行以下操作时使用:
(1) 初始化/连接配置中心
(2) 查询分组配置(KV 型或 Table 型)
(3) 获取/设置单个配置参数
(4) 添加配置变更监听"
---
 
# 七彩石配置接入 Skill
 
## 前置条件
- 项目已引入 `pkg/rainbow` 包
- 已配置七彩石 AppID 和 Group
 
## 操作步骤
### Step 1: 初始化连接
[具体代码模板和说明...]
### Step 2: 查询配置
[具体代码模板和说明...]
### Step 3: 监听变更
[具体代码模板和说明...]
 
## 注意事项
- 配置缓存策略
- 错误处理规范
- 降级方案
5.4.2 Skills 创建与复用流程

图片

图片

5.4.3 Skill 创建实操

Step 1:安装 skill-creator

在 CodeBuddy 的 Skills 管理界面中搜索并安装 skill-creator

Step 2:让 AI 分析现有代码并创建 Skill

plaintext
我需要针对 pkg/rainbow 这个七彩石配置工具包创建一个 Skill。
请分析这个包的代码,按照 skill-creator 的规范生成一个标准的 Skill 文件。

Step 3:审查生成的 Skill 文件

检查 AI 生成的 Skill 是否包含:

  • ✅ 准确的 name 和 description(决定 AI 何时触发此 Skill)
  • ✅ 完整的前置条件说明
  • ✅ 分步骤的操作指引
  • ✅ 代码模板和配置示例
  • ✅ 注意事项和错误处理

Step 4:验证 Skill 效果

plaintext
我需要在当前项目中接入七彩石配置中心,读取 app_config 分组下的所有配置。

AI 应自动识别并加载 rainbow-config Skill,按照规范生成接入代码。

Step 5:上传到团队 Skills 仓库

plaintext
cp -r .codebuddy/skills/rainbow-config/ /path/to/team-harness/skills/business/
cd /path/to/team-harness
git add skills/business/rainbow-config/
git commit -m "feat: 新增七彩石配置接入 Skill"
git push
5.5 Spec 与 Plan 模式(规范驱动开发)

Plan 模式是实现规范驱动开发的核心手段:在 AI 动手写代码之前,先生成结构化的需求文档和任务清单,经过人工审核确认后,再按计划逐步执行。

5.5.1 Plan 模式开发流程(4 Stage)

图片

阶段操作模式产出
Stage 1描述需求,AI 生成需求文档Plan 模式.codebuddy/plan/feat-xxx/requirements.md
Stage 2人工逐项审核需求文档人工审查审核通过的 requirements.md
Stage 3AI 生成任务清单并逐步执行Agent 模式.codebuddy/plan/feat-xxx/task.md + 源代码
Stage 4人工审查代码,归档变更人工审查归档文档 + 变更日志

5.5.2 实操演练:以"新增用户操作日志模块"为例

Step 1:切换到 Plan 模式,描述需求

plaintext
请使用 Plan 模式,分析以下需求并生成 .codebuddy/plan/feat-operation-log/requirements.md:
 
新增用户操作日志模块,要求:
1. 记录用户的关键操作(登录、修改资料、删除数据等)
2. 支持按用户ID、操作类型、时间范围查询日志
3. 提供管理后台的日志列表 API(分页)
4. 日志数据保留 90 天,过期自动清理
 
请明确:功能边界、API 接口定义、数据库表结构、异常处理策略和验收标准。

Step 2:审核 AI 生成的 requirements.md

plaintext
□ 需求理解是否准确?有没有多做或少做?
□ API 接口路径是否符合团队 RESTful 规范?
□ 数据库表结构字段命名是否符合团队规范?索引设计是否合理?
□ 90 天自动清理的实现方案是否可行?
□ 异常处理是否覆盖了:数据库写入失败、查询超时、参数非法等场景?
□ 验收标准是否每条都可测试?

Step 3:确认无误后,生成任务清单并执行

plaintext
需求审核通过。请阅读 .codebuddy/plan/feat-operation-log/requirements.md,
生成 .codebuddy/plan/feat-operation-log/task.md 任务清单,
然后按任务顺序逐步实施。每完成一个任务后自动编译验证。

Step 4:人工审查代码并归档

plaintext
# 归档
mv .codebuddy/plan/feat-operation-log .codebuddy/plan/archive/feat-operation-log

六、日常开发 SOP(标准操作手册)

6.1 SOP-A:新需求开发

图片

图片

简单需求的快捷流程(< 半天工作量):

plaintext
# 直接在 Agent 模式中描述需求,无需生成 requirements.md
# 但仍需遵守 Rules 约束
 
请在 internal/user/service.go 中新增一个 GetUserProfile 方法,
要求:
1. 通过 user_id 查询用户基本信息
2. 返回 UserProfileResponse 结构体
3. 包含错误处理和日志记录
4. 编写对应的单元测试
6.2 SOP-B:Bug 修复

图片

截图

Bug 修复红线:

  • 一个 PR 只修一个 Bug,禁止夹带其他修改
  • 必须编写能复现该 Bug 的测试用例
  • commit 信息格式:fix: [模块名] 修复xxx问题 (#issue编号)
6.3 SOP-C:AI 辅助 Code Review

方式一:提交前自查

plaintext
请对以下文件的变更进行 Code Review:
- internal/user/service.go
- internal/user/repository.go
 
审查要点:
1. 是否符合分层架构规范
2. 错误处理是否完善
3. 是否有潜在的性能问题
4. 命名是否规范,注释是否清晰
5. 是否有安全隐患

方式二:Review 他人 PR

plaintext
请阅读以下 PR 的变更内容,给出 Code Review 意见:
[粘贴 diff 或指定文件列表]
 
重点关注:逻辑正确性、边界情况处理、与现有代码的一致性、测试覆盖度

Code Review 检查清单

类别检查项说明
架构分层是否正确Controller 不含业务逻辑,Repository 不含业务判断
架构是否复用已有模块检查 pkg/ 下是否有可复用的工具
质量错误处理所有 error 必须显式处理,禁止 _ = err
质量单元测试核心逻辑必须有测试,覆盖正常和异常路径
安全SQL 注入参数化查询,禁止字符串拼接 SQL
安全敏感信息禁止硬编码密钥、连接串
性能数据库查询检查是否有 N+1 查询、全表扫描
规范commit 信息格式清晰,描述修改点和原因

七、团队协作红线(不可违反)

红线说明
先 Spec 后 Code严禁在没有明确 Spec 的情况下直接开始 Coding
Rules 共享项目级的 Rules 必须同步至 Git 仓库,不允许本地私有
Skill 沉淀通用的逻辑处理必须抽象为 Skill 以便全队复用
MCP 优先关键元数据优先通过 MCP 实时同步,而不是手动维护副本
变更可追溯所有代码变更必须附带清晰的 commit 信息

八、常见问题与反模式

8.1 反模式清单
#反模式现象正确做法
1巨型 Prompt一次性把几千字需求丢给 AI先 Plan 模式生成 requirements.md,拆解后逐步执行
2跳过审核直接编码觉得需求简单,不写 Spec 直接让 AI 写代码半天以上的需求必须走 Plan 模式
3Rules 写了不维护Rules 文件写完就放着,半年后已经和实际规范脱节月度 Review 会议定期检查
4MCP 过度接入接入了十几个 MCP Server,Token 消耗暴增只接入 P0/P1 优先级的 MCP
5Skill 不原子化一个 Skill 塞了太多功能一个 Skill 只解决一类问题
6盲目信任 AI 输出AI 生成的代码不审查直接合入所有 AI 生成的代码必须经过人工 Code Review
7Chat 历史当文档需求细节全在聊天记录里需求和设计决策必须持久化到 .codebuddy/plan/
8一个 PR 改所有让 AI 一次性实现多个不相关的功能一个 PR 只解决一个问题

九、合规性自检:用 自制 Skill 一键体检

前面几章把规范、工具、SOP 都讲清楚了。但落地最大的痛点是——规范写完容易,执行下去难。团队成员是否真的按规范配置了 Rules?项目是否真的建了 .codebuddy/skills/?Commit 信息是否规范?

靠人工一个项目一个项目地翻,又慢又容易漏。我们根据上面的规范沉淀了 harness-audit Skill —— 把整套规范的检查项固化成一个可执行的合规性审计工具,一句话就能给项目打分、找问题、给建议

9.1 这个 Skill 能干什么

harness-audit 是一个 Harness 规范的自动化合规性检查工具,覆盖前文规范涉及的所有核心维度。它能做三件事:

  1. 打分:给项目从 7 个维度打总分(满分 100),按 S/A/B/C/D 五级评定
  2. 诊断:列出每个维度的具体问题(哪些缺失、哪些不规范、哪些有但没用好)
  3. 开方:按 P0/P1/P2/P3 优先级给出改进建议,附带操作步骤和代码示例

与本规范的对应关系

审计维度权重对应章节检查内容
1. AGENTS.md(AI 说明书)15%§4.4 编写 AGENTS.md是否存在、是否精简(~100 行)、是否包含项目概述/架构/目录/常用命令
2. Rules(约束体系)20%§4.3 Rules 配置.codebuddy/rules/ 目录、Frontmatter 规范、架构/风格/安全约束完整性
3. Skills(技能沉淀)15%§5.4 Skills 配置.codebuddy/skills/ 目录、Skill 数量、SKILL.md 规范性、业务相关性
4. MCP(上下文扩展)10%§5.1 MCP 配置mcp.json 是否存在、Server 配置规范、敏感信息是否硬编码
5. Plan 模式(SDD)15%§5.5 Spec 与 Plan 模式.codebuddy/plan/ 目录、requirements.md / task.md 完整性
6. 项目工程规范15%§6 日常开发 SOP目录结构、分层架构、README、依赖管理、.gitignore
7. Commit 规范与协作10%§6.2 Bug 修复红线 / §7 团队协作红线Commit 格式(type: [scope] description)、变更粒度

可以看到,每个审计维度都精确对应到本规范的某一章节——Skill 就是规范的可执行版本

9.2 怎么用

前置条件

  • 已安装 CodeBuddy 插件并完成基础配置(参见 §4.1)
  • 已将 harness-audit Skill 放到 .codebuddy/skills/ 目录下,或通过团队 Skills 仓库同步

触发方式(在 CodeBuddy Agent 模式下输入即可):

plaintext
# 审计当前本地项目
请用 harness-audit Skill 对当前项目做一次合规性审计。
 
# 审计远程工蜂项目(需配合工蜂 MCP)
请用 harness-audit Skill 审计这个项目:
https://git.xxx.com
 
# 只关注某几个维度
请用 harness-audit Skill 审计当前项目,重点检查 Rules 和 Skills 维度。

AI 会自动加载 Skill,按"信息采集 → 逐维度评分 → 生成报告"三阶段执行,最终把完整报告写入 .codebuddy/reports/harness-audit-{项目名}-{日期}.md,并在对话中展示摘要。

9.3 检查结果示例

下面是对一个真实 Go 后端项目执行审计后的报告摘要(节选自完整报告):

📋 项目基本信息
项目信息
项目名称go_scaffolding_svr
项目地址git.xxx.com
项目负责人zhangsan(基于 Git 提交记录分析)
审计分支master
技术栈Go 1.21 + tRPC-Go
最近活跃2026-04-15 18:32
Commit 总数287
核心贡献者zhangsan (158)、lisi (72)、wangwu (35)
🎯 总体评分
plaintext
┌──────────────────────────────────────────────────┐
│                                                  │
│      总分:75 / 100      等级:A 🟢 优秀         │
│                                                  │
│   0────40────60────75──89────100                 │
│   D    C     B    ▲A    S                       │
│                                                  │
│   评语:AI 辅助开发体系完善,核心要素具备        │
│                                                  │
└──────────────────────────────────────────────────┘
维度得分满分得分率等级
AGENTS.md141593%🟢 优秀
Rules182090%🟢 优秀
Skills121580%🟢 优秀
MCP0100%🔴 不合格
Plan 模式121580%🟢 优秀
工程规范131587%🟢 优秀
Commit 规范61060%🟡 良好
总计7510075%🟢 A 级

(图表:Harness 合规性各维度得分率——AGENTS.md、Rules、Skills、MCP、Plan、工程规范、Commit;纵轴:得分率 (%),0–100)

✅ 亮点
  • AGENTS.md 高度精简:78 行,符合"目录索引而非百科全书"的设计原则
  • Rules 体系完善.codebuddy/rules/ 下有 global.mdgo-backend.mdsecurity.md 三个文件,覆盖架构、风格、安全
  • Skills 业务相关性强:沉淀了 rainbow-configpolaris-resource 等 5 个业务 Skill
  • 目录结构标准:严格遵循 cmd/internal/pkg/api 标准布局
⚠️ 主要问题
  • 🔴 未配置 MCP:项目根目录无 mcp.json,AI 无法实时读取数据库 Schema 和工蜂 Issue
  • 🟠 Commit 信息不规范:最近 50 条 commit 中,30% 使用 "update"、"fix bug" 等模糊描述
  • 🟡 Plan 目录未启用归档.codebuddy/plan/ 下没有 archive/ 子目录,已完成需求未归档
🔧 优化建议(节选)
🔴 P0 - 立即修复
  1. 接入 DB MCP(耗时 30 分钟,参见 §5.1.2)
plaintext
{
  "mcpServers": {
    "db-mysql": {
      "command": "npx",
      "args": ["-y", "@anthropic/mcp-server-mysql"],
      "env": {
        "MYSQL_HOST": "${DB_HOST}",
        "MYSQL_USER": "readonly_user",
        "MYSQL_PASSWORD": "${DB_PASSWORD}"
      },
      "timeout": 10000,
      "transportType": "stdio"
    }
  }
}

🟠 P1 - 短期改进

  1. 统一 Commit 规范(耗时 1 周):在团队周会同步 §6.2 Commit 格式(type: [scope] description),并配置 git hook 自动校验
  2. 建立 Plan 归档机制(耗时 30 分钟):mkdir -p .codebuddy/plan/archive,已完成需求统一归档
🚀 Quick Wins
改进项预计耗时影响
创建 mcp.json 接入 DB MCP30 分钟AI 写 SQL 准确率提升 30%+
创建 .codebuddy/plan/archive/5 分钟历史需求可追溯
配置 commit-msg hook20 分钟Commit 规范率从 70% → 95%+
📈 成熟度路线图

图片

 当前阶段:第二阶段(工具接入)

下一阶段目标:补齐 MCP 接入、规范 Commit、建立归档机制 预计达成时间:2 周

完整报告(含 7 个维度的逐项检查表、Mermaid 饼图、落地手册对标检查等)会输出到 .codebuddy/reports/harness-audit-go_scaffolding_svr-20260416.md

9.4 推荐使用节奏
场景频率用途
项目初次接入规范1 次摸清基线,定改进计划
季度团队复盘每季度 1 次量化规范落地效果,对比上季度
新项目立项后立项 2 周内检查基础建设阶段是否到位
Code Review 之前按需配合 §6.3 SOP-C,做提交前自查
Knot 平台共享审计每月 1 次跨项目对比,识别 S 级标杆项目

⚠️ 注意:审计报告是体检结果,不是 KPI。重点是发现问题、推动改进,不要把分数当指标考核。规范的目的永远是让 AI 更好用、让团队效率更高,而不是为了刷分。

第三部分:总结

十、总结

Django 创始人说过:交付代码的成本已经接近免费了,但交付好代码的成本依然很高。

AI Agent 工具能在代码质量的各个方面帮不少忙,但最终的质量把关,还是得靠操作这些工具的人。你得知道什么是好代码,你得能判断 Agent 产出的东西够不够好,你得能在关键的地方做出正确的取舍。

成本降低了,标准不能降低。工具变强了,人的判断力要跟着变强。

plaintext
让各类工具适配规范,                             
而不是靠个人去适配各类工具。                                
这就是从"人驱动 AI"到"AI 自驱动"的转变。

通过这套规范体系,团队可以:

  • 把"交付代码"的成本降低(AI 执行)
  • 把"交付好代码"的标准写进 Harness 系统里(规范约束)
  • 实现"知识飞轮效应"——新成员越多,整体效率反而越高(经验沉淀)

要掌握底层生存法则:流水的工具,铁打的规范。

如有不足,欢迎讨论指正。

图片

原文链接: https://mp.weixin.qq.com/s/g4nTfxm7ebzRwkAVIGdIbg

评论

登录后参与评论 登录

加载中…

返回博客列表