我把一個 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 倉庫牢牢攥住的。