首页
看点啥
插画图片
首页 看点啥 Harness 企业级落地二 - 让 AI 读懂项目

Harness 企业级落地二 - 让 AI 读懂项目

2026-07-23 0

这一篇我们继续深究,一个团队如何能成长为:AI 全栈开发,可以同时维护 APP、后台、网页等多端代码。

AI 时代下,我们认为程序员不应该局限于某一门技术,应该以顶层思维看待整个项目,了解整个系统的设计和数据流向。
这样不仅能够提高个人的知识广度,更能够独立且高效地完成具体的某个模块,从而加快产品的迭代速度,实现快速的想法验证。

一、顶层设计思维

要完成 AI 全栈,得先做到:

进而达到:

二、基于 git submodule 的项目结构

针对全栈协作的场景,APP、后端和网页端等各个端,会有各自有独立的代码仓库,同时迭代节奏和分支管理也有所不同。

所以我们先维护一个组合根仓库,把业务子项目通过 Git submodule 的方式去汇合起来,常见的结构大致是这样:

fullstack-workspace/├── cow-harness/# 全栈入口与通用 Harness├── .ai-harness/│ └── workspace-map.md# 业务模块地图├── apps/mobile/# APP 端代码(git submodule)├── services/backend/ # 后端代码(git submodule)└── apps/web/ # 网页端代码(git submodule)│ └── .gitmodules

.gitmodules

workspace-map.md

三、让 AI 深度读懂整个项目

“读懂” 不是让 AI 把整个仓库扫一遍,然后给你写一份看上去很专业的总结;而是要非常精准的知道每个项目的设计、风格、规范约束、安全性能指标等。

为此,我们特意为这个环节编写了一个 SKILL:domain-init。

这个 SKILL 拥有非常完整的项目识别能力,不仅接入到 cow-harness,也独立进行了开源,需要自取:github.com/MinLeeV5/do…

1. 前置介绍

domain-init 会先做领域识别:从构建文件、依赖、入口、测试工具和目录结构里找信号,判断当前项目是哪个端(如:更接近 React 前端、Go 后端、移动端、CLI...)。

确定领域后,会采样真实代码,识别项目已经在使用的架构设计、组件规范、接口分层、测试夹具和验证命令等等,再把这些事实变成可 review 的规则草案

核心重点:代码是事实源,规则只是对事实的结构化表达。

2. 四大原则

原则它解决的问题
信号优先先根据项目里的依赖、入口和构建文件判断领域,避免一份前端规范误用到后端或客户端。
证据先行每条约定都要能回到项目代码中找到出处,避免模型凭记忆造出“理论正确、项目错误”的规则。
按领域过滤前端重点看设计系统、状态和可访问性;后端重点看接口、数据和可观测性。相关的才进入上下文。
人不缺席领域判断、扫描范围、规则草案和最终写入都有确认点。AI 负责归纳,人负责判断哪些是约定、哪些只是历史包袱。

3.最佳实践

如果只是从已有项目里抽取,会有另一个风险:可能原本项目就设计得不是很好,然后 AI 就会依照这个规范越写越烂。

于是 domain-init 还提供了一些最佳实践 references。

参考文件设计作用避免
detection-signals.md定义领域识别的优先级、降级路径和人工确认机制。把项目类型猜错。
domain-matrix.mddimension-pool.md用领域矩阵过滤规则、Skill 和 Agent 的适用维度。把所有治理维度一次性塞给每个项目。
project-index.md为不同问题指定开源质量标杆和应参考的关键文件。只会套空泛的“最佳实践”。
output-formats.md规定 rule、skill、agent 的结构、代码示例和证据要求。生成只有口号、没有执行性的产物。

project-index.md :关键的质量索引,引用了大量的优秀实践,不同的问题,我们去找不同的标杆。比如:

同时,使用这些优秀实践时,不是把别人仓库的内容拷过来。核心是让 AI 学习它如何组织规则、如何表达硬约束、如何把验证写进流程;然后再回到当前项目的代码事实,生成适合自己的内容。

四、初始化产物

初始化完成后,每个子项目里都会有一组**能被后续任务反复读取的资产。**这些资产不会放在组合根仓库,而是放在各自的业务子项目里。

services/backend/├── AGENTS.md # AI 进入项目的入口├── cow-harness/│ └── skills/domain-init/# 嵌套的领域初始化 skill├── .ai-harness/│ ├── project.profile.md # 项目画像│ ├── context-map.md # 模块、入口与边界│ ├── verification.md# 验证方式与命令│ └── domain-init-report.md# 检测依据、确认范围和结果├── .agents/ # 当前项目选择的平台规则、skills、agents└── .ai-runtime-artifacts/ # 需求、计划、验证与决策记录

project.profile.md :回答“这是什么项目、关键约束是什么”;

context-map.md :回答“代码应该改在哪里、边界在哪里”;

verification.md 回答“改完怎么证明它没问题”。

另外还会生产一些模型层的入口

domain-init-report.md :把领域判断的依据、用户确认过的范围和生成结果保留下来,避免这些结论变成无从追问的黑盒;

.agents/ :这个项目真正会被 AI 加载的规则、skills 和 agents;

.ai-runtime-artifacts/ :保存需求分析、计划、验证记录和架构决策。

五、初始化后,如何执行任务

当一个任务从全栈组合根目录进入时

  1. AI 先读 workspace-map.md
  2. 任务里出现明确的项目路径、模块名、接口名或界面名,就用这些证据定位业务子项目
  3. 结合相关的多个项目,开始判定任务体量,决定是否进行 spec 拆解
  4. 项目一旦选定,读取顺序也固定下来:先通过 AGENTS.md 进入项目,再加载 cow-harness/core/ 的通用流程,以及当前项目的 project.profile.mdcontext-map.mdverification.md
  5. 然后 AI 会遵循 harness 的规范,去使用 superpower 和 omx 开始干活

六、快速接入

  1. 维护好全栈组合仓库,先把所有子模块拉到组合根仓库锁定的版本:

git submodule update --init --recursivegit submodule status --recursive

2.cow-harness也作为 submodule 加入到你的项目中

git submodule add git@github.com:WxqKb/cow-harness.git cow-harnessgit submodule update --init --recursive

3.接下来让cow-harness 开始为你初始化子项目:

请先读取 cow-harness/README.mdcow-harness/init/fullstack-bootstrap.prompt.md和 cow-harness/skills/domain-init/SKILL.md这是一个由多个业务子项目组成的全栈项目请先运行git submodule status --recursive,区分业务子项目Harness 和第三方依赖;展示候选业务子项目并等待我选择只初始化我确认的子项目,不要在组合根目录生成混合的领域规则,也不要自动改写未选择的子项目

七、写在最后

实际上,各大基模的在 coding 的发力下,AI 对程序员行业的冲击是致命的,在大公司体感是十分明显的。

比方说:接收到的一句话需求,能让 AI 全面了解拆分,快速搭建出 A/B 方案,并发布给天使用户测试。这个流程验证以往可能要投入一周的时间,但是 AI +harness 2 天就能搞定。而这种提效方式,对个人和业务都会产生不容小视的价值,而且早已不是天方夜谭。

Harness 全栈说白了,也会卷掉一波人。

但笔者想说的是,在这个大环境下我们尽量去成长。当编码技术不再是壁垒的时候,我们应该更快速的去利用好 AI,让 AI 全面扩宽我们的知识面和业务边界。 沉淀成为我们的核心竞争力,那我相信当环境好起来后,你依然是那个香饽饽~

下一篇,我们会继续深入讲解 harness 中,是如何使用 openspec 和 omx 工作流,进行高质量的工作的。

cow-harness 开源仓库,欢迎使用!

喜欢(0)

上一篇

GPT-5.6实测:OpenAI太良心了!

GPT-5.6实测:OpenAI太良心了!

下一篇

Hugging Face Jobs 计算任务提交和管理教程

Hugging Face Jobs 计算任务提交和管理教程
猜你喜欢