← 返回文章列表

我把一个 git 仓库做成了「工作操作系统」——AI Coding 的两层工作流

用 AI 写代码这件事,大多数人停在「把 AI 当一个更快的手」:想到什么让它写什么,写完就算。我用了几个月之后发现,真正决定产出质量的不是 AI 写得多快,而是两件 AI 自己解决不了的事——优先级谁来定,以及今天踩的坑明天还记不记得。

于是我把整套工作流拆成了两层:

  • 底层是一个 git 仓库,我把它当成「工作操作系统」——业务判断、可复用工具、给 AI 的行为指令,全部同仓沉淀;
  • 上层是一天之内的执行闭环——收集需求、AI 执行、commit 自动生成日报。

底层管「判断怎么不跑偏、经验怎么沉淀」,上层管「一天之内怎么把活干完」。下面分别讲。

一、底层:用一个 git 仓库当「工作操作系统」

核心定位

一个 git 仓库 = 业务知识库 + 可复用工具 + AI 行为指令,三者同仓。

它不是代码仓库。里面装的是「决策素材 + 作战结论 + 兵工厂」。读者只有两类:我自己(做决策)和 AI agent(继续分析、干活、收口)。正因为读者里有 AI,所以它的组织方式不能像普通笔记那样随手记——必须让一个刚进来、没有任何记忆的 agent,读完就能接着干。

1. AGENT.md:给 AI 定角色,而不是每次重新调教

仓库根部放一份 AI 行为指令,任何 agent 进来先读它。关键不是写「你是一个助手」,而是把角色和禁区写死:

  • 角色 = 战略参谋,不是文案工。职责按优先级排:守住主要矛盾 → 实事求是 → 对齐后落地 → 收口而非发散。
  • 禁止项写死:不许迎合我的错误判断(命中老毛病要直接点破、并引对应的教训编号);不许用人月估工时(一律按 AI 编码速度估);不许开第二战场(非主线先存档);敏感数据不进对外产物。
  • 每份文档结尾必须能回答:「这改变了哪个决策?下一个动作是什么?」——回答不了,就是白写。

写死禁止项的意义在于:AI 默认是迎合的,你不主动给它「反对你」的授权,它就会顺着你犯错。

2. 四区目录法:每个文件回答一个固定问题

知识库最容易烂的地方是「什么都往一个文件夹丢」。我用四个分区,每个分区只回答一个问题:

分区 回答的问题 放什么
main/ 现在做什么 行动总纲 + 主线收口,保持精简
main/现场/<地点>/ 一线发生了什么 按现场分目录的走查记录、作战清单、会议纪要
tools/ 有什么可反复用 访谈脚本、调查提纲、SOP、汇报模板——不绑日期、跨场景复用
any/ 为什么这样判断 阶段性的产品/竞品/战略审计 + 已降级、不重仓的研究

新建文件前先自问归位判据:是某天的一线记录 → 现场;是能反复拿来用的家伙什 → tools;是收口结论 → main;是论据或存档 → any。

关键效果:行动层永远精简(main 只放「现在干什么」),论据可追溯(any 留着「为什么这么判断」),工具越攒越多(tools 是复利)。

3. 三份基石文档(人和 AI 共用的「内核」)

  • domain.md 统一词表:定义唯一标尺(例如「成功 = 拿下 N 个真付费客户」),任何动作上桌前先过一关「它直接推动这个标尺吗」;明确区分主要矛盾 / 矛盾的主要方面 / 次要矛盾;写清自己的角色边界(哪些事我能拍板,哪些只能递情报)。术语统一,不许同义词漂移。
  • lessons.md 教训库:编号 L1、L2……增量更新,不删历史。AI 在讨论中主动对照,命中即点破并引编号。教训不是日记,每条都是「已验证的判断」——比如「免费铺量不产生付费(多地实证)」「用写代码逃避真正该做的事,是通病」「先验判断必须被一线数据核实,被推翻就改、并留修订理由」。
  • conventions.md 写作约定:文件命名带日期;文档开头用引用块写元信息;改结论必须留 v1→v2 修订理由表,不许悄悄改;未核实的数字一律标 [未核实],不得在结论里当事实用。

lessons.md 是这套系统里最值钱的一份——它让「同一个坑不踩第二次」从一句口号变成机制:因为 AI 每次讨论都对照它,我自己想重蹈覆辙都会被拦下。

4. 工具层:重复动作全部 skill 化 / 脚本化

任何做过两次的动作,我都把它沉淀成脚本或 skill:

  • 任务真相源同步:任务真相在团队的在线表格里,我写了拉取脚本 + skill,一键拉最新、过滤出活跃任务——永远不凭过期的本地快照排优先级。
  • 现场工作流表格化:把一条真实的操作链整理成「步骤 / 入口 / 动作 / 风险分级 / 已知问题」表格,再从风险分级反推测试靶心——哪一步是机器在做、人是唯一防线,哪一步就最该补测试。
  • 访谈 SOP:开场话术、问题挖掘提问法——把一线动作沉淀成可复制的脚本,不留在脑子里。

5. 安全分层

公开博客可以讲方法,但仓库里有真实业务判断和客户信息,所以分层:

  • 叙事文档(战略、判断、客户相关的 md)用 git-crypt 加密入库,密钥不进任何明文位置;曾经有明文的历史直接重写清除。
  • 运营数据、客户原始数据 gitignore,本地 only,要发出去只手动发产物文件。
  • 秘密只进 .env(权限 600),引用只写指针不写值。

二、上层:日常 AI Coding 工作流

底层是慢变量,上层是每天都跑的快循环。

📥 输入:任务收集

一个共享文档,记录所有需求和 Bug,团队所有人都能提交。每天开工前,工作助手自动整理出今日优先级清单。

⚡ 执行:AI Coding

按优先级顺序,逐条用 AI 辅助编码完成。专注解决,不被随机插进来的需求打断。

📤 输出:日报 & 复盘

下班前一键读取当天的 commit,自动生成:

  • 日报:今天做了什么
  • 点评:代码质量 & 改进建议

🔄 核心理念

人定优先级,AI 做执行,commit 生成文档。 把精力花在决策上,把重复劳动交给工具。

三、两层怎么咬合:一天的完整闭环

共享任务表(真相源)
   │ 同步脚本拉取 + 过滤活跃项        ← 底层工具层
   ▼
今日优先级清单(按唯一标尺排序)       ← domain.md 的尺
   │ 逐条 AI Coding,不被打断
   ▼
commit
   │ 一键生成
   ▼
日报 + 代码点评
   │ 复盘产出物分流沉淀:
   ├─ 踩坑 / 已验证判断 → lessons.md(编号,增量)
   └─ 可复用动作 → tools/ + skill
  • 上层工作流是一天的循环:收集 → 优先级 → 执行 → 日报。
  • 底层仓库是跨天的复利:标尺不漂移(domain)、坑不踩第二次(lessons)、重复动作越来越自动(tools/skills)、AI 第二天开局即继承全部上下文(AGENT.md)。

合成一句话:人定优先级,AI 做执行,commit 生成文档,仓库沉淀判断。

这套东西的真正价值不在「让 AI 写得更快」——那是所有人都有的。它在于:当执行变得几乎免费,判断和沉淀就成了唯一的护城河。我把精力从「写」搬到「定优先级 + 不重复犯错」上,而这两件事,恰好是 AI 替我做不了、却又能被我用一个 git 仓库牢牢攥住的。