
10 蒸餾工具鏈自動化蒸餾流水線這是《Git 倉庫蒸餾術從代碼倉庫到 OpenClaw 虛擬人》系列的第 10 篇。前 9 篇我們手工完成了蒸餾的每一步盤點、挖掘、分析、提煉、建模。這一篇把這些步驟固化成一條自動化流水線——蒸餾工具鏈。手工蒸餾一次可以但倉庫會持續演進蒸餾必須能重復執行。一、工具鏈架構采集、分析、提煉、輸出蒸餾工具鏈分四層對應蒸餾流程的四個階段┌─────────────────────────────────────────────┐ │ 輸出層知識產物畫像/報告/文檔/圖譜 │ ├─────────────────────────────────────────────┤ │ 提煉層模式提煉 / ADR 生成 / 圖譜構建 │ ├─────────────────────────────────────────────┤ │ 分析層結構分析 / 歷史挖掘 / 依賴分析 │ ├─────────────────────────────────────────────┤ │ 采集層git 數據 / issue / PR / 代碼 │ └─────────────────────────────────────────────┘層級職責對應前篇工具采集層拉取原始數據03 盤點、06 文檔git、gh CLI、cloc分析層分析結構/歷史/依賴04 挖掘、05 分析madge、jscpd、git log提煉層提煉模式/決策/圖譜07 模式、08 決策、09 圖譜自研腳本輸出層生成知識產物各篇產出物模板引擎核心設計原則每一層只依賴下一層層與層之間通過標準數據格式解耦。二、流水線設計從倉庫到知識產物的自動化流程2.1 流水線階段[倉庫] → [采集] → [分析] → [提煉] → [輸出] → [知識產物] ↑ │ └────────────── 倉庫演進后重新執行 ──────────────┘每個階段有明確的輸入輸出階段輸入處理輸出采集倉庫git/gh/cloc 拉取原始數據JSON分析原始數據madge/jscpd/git log分析結果JSON提煉分析結果模式/ADR/圖譜腳本知識單元JSON輸出知識單元模板渲染知識產物MD/圖譜2.2 流水線編排用 Makefile 或腳本編排各階段# Makefile .PHONY: all collect analyze refine output all: output # 采集層 collect: bash scripts/collect.sh data/raw.json # 分析層 analyze: collect python scripts/analyze.py data/raw.json data/analysis.json # 提煉層 refine: analyze python scripts/refine.py data/analysis.json data/knowledge.json # 輸出層 output: refine python scripts/render.py data/knowledge.json output/# 一鍵執行整條流水線makeall2.3 流水線狀態管理流水線要支持斷點續跑——某一步失敗不用重跑全部// pipeline-state.json{last_run:2026-08-17T10:00:00,stages:{collect:{status:done,output:data/raw.json},analyze:{status:done,output:data/analysis.json},refine:{status:failed,error:ADR-004 缺少理由},output:{status:pending}}}三、常用工具集成3.1 工具清單把前幾篇用到的工具統一集成工具用途階段安裝git歷史/元信息采集采集內置ghissue/PR 拉取采集brew install ghcloc代碼量統計采集brew install cloctree目錄結構采集brew install treemadge依賴分析分析npm i -g madgejscpd重復檢測分析npm i -g jscpddependency-cruiser架構規則分析npm i -g dependency-cruisernetworkx圖譜構建提煉pip install networkx3.2 統一配置用一份配置文件管理所有工具參數# config.yamlrepo:path:.exclude_dirs:[node_modules,.git,dist,build]collect:cloc:truetree_depth:3gh_org:myorggh_repo:myrepoanalyze:madge_extensions:[ts,tsx,vue]jscpd_min_lines:5jscpd_min_tokens:50refine:adr_dir:docs/adrpattern_dir:patternsgraph_output:knowledge-graph.jsonoutput:template_dir:templatesoutput_dir:output3.3 采集腳本示例#!/bin/bash# scripts/collect.sh# 采集層拉取所有原始數據REPO_DIR${1:-.}cd$REPO_DIRecho 采集 git 元信息 {echo{\total_commits\:$(gitrev-list--countHEAD),echo\first_commit\:\$(gitlog--reverse--format%ai|head-1)\,echo\last_commit\:\$(gitlog-1--format%ai)\,echo\contributors\:$(gitshortlog-sne|wc-l|tr-d ),echo\branches\:$(gitbranch-r|wc-l|tr-d ),echo\tags\:$(gittag|wc-l|tr-d )}}data/git-meta.jsonecho 采集代碼規模 cloc.--exclude-dirnode_modules,.git,dist,build--jsondata/cloc.json2/dev/nullecho 采集 issue/PR gh issue list--stateall--limit500--jsonnumber,title,body,labelsdata/issues.json ghprlist--statemerged--limit500--jsonnumber,title,bodydata/prs.jsonecho采集完成四、輸出工具鏈方案4.1 工具鏈方案文檔# 蒸餾工具鏈方案 ## 目標 將倉庫蒸餾流程固化為可重復執行的自動化流水線。 ## 架構 四層架構采集 → 分析 → 提煉 → 輸出 ## 流水線 make all 一鍵執行支持斷點續跑。 ## 工具清單 見上文工具清單表 ## 配置 統一 config.yaml 管理所有參數。 ## 目錄結構 distill-toolchain/ ├── Makefile ├── config.yaml ├── scripts/ │ ├── collect.sh │ ├── analyze.py │ ├── refine.py │ └── render.py ├── templates/ │ ├── adr.md.j2 │ ├── pattern.md.j2 │ └── report.md.j2 ├── data/ # 中間數據raw/analysis/knowledge └── output/ # 最終知識產物 ## 使用方式 1. 配置 config.yaml倉庫路徑、工具參數 2. 運行 make all 3. 查看 output/ 下的知識產物 ## 擴展性 - 新增分析工具在 analyze.py 中注冊 - 新增輸出模板在 templates/ 中添加 - 支持多倉庫config.yaml 支持多倉庫配置4.2 工具鏈的用途工具鏈是蒸餾流程的工程化底座給 11 虛擬人機制工具鏈產出的知識產物是虛擬人 memory 的輸入給 12 蒸餾產物→虛擬人工具鏈讓倉庫→虛擬人的轉化可重復執行給 13 落地倉庫演進后重新運行工具鏈即可更新虛擬人知識五、小結這一篇的核心收獲四層架構采集、分析、提煉、輸出層間用標準數據格式解耦。流水線設計Makefile 編排 斷點續跑倉庫演進后可重復執行。工具集成統一 config.yaml 管理 git/gh/cloc/madge/jscpd 等工具。輸出工具鏈方案一份可落地的自動化蒸餾流水線方案。下一篇我們進入虛擬人世界[11 OpenClaw 虛擬人機制persona、memory、skills](11-Git 倉庫蒸餾術從代碼倉庫到 OpenClaw 虛擬人-OpenClaw虛擬人機制.md)——了解虛擬人的三要素為把蒸餾產物變成虛擬人做準備。上一篇[09 知識圖譜構建連接知識節點](09-Git 倉庫蒸餾術從代碼倉庫到 OpenClaw 虛擬人-知識圖譜構建.md)下一篇[11 OpenClaw 虛擬人機制persona、memory、skills](11-Git 倉庫蒸餾術從代碼倉庫到 OpenClaw 虛擬人-OpenClaw虛擬人機制.md)