用 Claude Code routines 把修 Bug 和審 PR 自動化

用 Claude Code routines 把修 Bug 和審 PR 自動化

📌 本文重點

  • 用程式碼定義 routine,讓 Claude 自動跑開發流程
  • 支援排程、API、GitHub webhook 等多種觸發方式
  • 適合 CI、PR 初審、重構、錯誤偵測等自動化場景
  • 建議先從「只讀建議」開始,逐步放權到自動修正

一句話先說清楚:Claude Code routines 就是「用程式碼把 Claude 變成你的自動化開發助理」,幫你在雲端自動跑修 Bug、審 PR、開 issue 等重複工作。

官方文件:https://code.claude.com/docs/en/routines


核心功能:用程式碼定義多步驟任務

routines 的概念很簡單:你先用程式碼把「要怎麼用 Claude 做事」寫成一個流程,之後就讓它自動在雲端重複跑。

典型一個 routine 可以長這樣:

  1. 拉特定 repo(支援 GitHub 等連接器)
  2. 用 Claude 分析程式碼變更或錯誤
  3. 修改程式碼、產生 patch 或直接開 PR
  4. 把結果回報到 GitHub、Slack 或你的 CI 系統

根據官方說明和社群分享(Reddit):

  • 多步驟流程可程式化:你不是丟一句 prompt 就結束,而是用程式碼描述整個 pipeline,例如:

ts
// 偽程式碼示意:定義一個 routine
const routine = defineRoutine({
name: 'lint-and-suggest',
repo: 'github://my-org/my-repo',
steps: [
cloneRepo(),
runESLint(),
askClaudeForFixes(),
commentOnPullRequest(),
],
})

  • 三種觸發方式(都在雲端跑,電腦可關機):
  • 固定排程:例如每天凌晨跑一次重構建議
  • API 呼叫:每個 routine 會有一個 endpoint,你可以從自家服務打 API 觸發
  • GitHub webhook:例如「新 PR 建立時就讓 routine 自動跑審查」

💡 關鍵: routines 把「一次性的 prompt」變成「可重複觸發的程式化流程」,而且全部在雲端執行,不綁你的電腦在線。

你可以馬上做的事:

  • 想一個你最常重複做的開發流程(例如「每次 PR 都要跑 lint + 給建議」),把它拆成 3–5 個步驟,列成清單,等等在「怎麼開始」直接照這份清單寫成 routine。

適合誰用:4 個典型場景

1. CI 流程自動跑靜態分析 + 修正建議

場景:你現在的 CI 只會跑 lint / type check,但錯誤一堆,只丟紅燈不給解法。

用 routines 可以:

  • 在 CI 裡呼叫一個 API routine
  • routine 拉 PR 的 diff,跑 ESLint / mypy 等工具
  • 把錯誤丟給 Claude,讓它:
  • 用自然語言解釋錯誤來源
  • 產生建議修正(甚至 patch)
  • 把結果直接貼回 PR comment

可執行動作:

  • 選一個語言(例如 TypeScript),從你現有 CI 裡加一個步驟:呼叫 routines API,把 PR 編號、branch、diff 傳給它,讓 routines 回傳「修正建議文字」或「patch 檔」。

2. PR 自動初審:先讓 AI 篩一輪

場景:團隊 PR 多,但 Reviewer 不想浪費時間在命名、註解、重複邏輯這種「低階問題」。

routine 可以幫你:

  • 透過 GitHub webhook,在 PR 開啟時觸發
  • 讀取 diff + 相關檔案
  • 按你定義的規則檢查:
  • 是否有測試
  • 是否破壞既有 API
  • 命名 / 註解 / logging 是否符合約定
  • 自動在 PR 下面留一串初步 review comment

可執行動作:

  • 先在文件裡列出你希望「PR 初審」檢查的 checklist(3–7 項就好),之後在 routine 的 prompt 中直接貼入這份 checklist,讓 AI 依此審查。

3. 例行重構 / 格式化:排程交給 AI 擬方案

場景:技術債知道很多,但沒空系統性整理。

排程 routine 可以:

  • 每週固定拉主分支
  • 掃特定目錄(例如 /legacy/**
  • 讓 Claude:
  • 找出重複程式碼、過長 function、潛在性能瓶頸
  • 產出「重構提案」文件,列出建議與風險
  • 適度產生小 patch(例如只做格式、抽小 function)

可執行動作:

  • 挑一個最頭痛的模組,設定一個每週 routine,讓 AI 每週只做一件事:產出一份 markdown 報告 docs/refactor-suggestions.md,你每週開會時直接打開看。

4. Crash 時自動開 issue + 初步定位

場景:線上服務 crash,Log 一堆,沒人第一時間看。

你可以:

  • 在監控系統(如 Datadog、Sentry、自家 APM)裡,當發生特定錯誤時,呼叫 routines API
  • routine 取得:錯誤訊息、stack trace、關聯 log
  • 讓 Claude:
  • 用固定模版在 GitHub / Jira 開 issue
  • 附上「可能原因、優先查看檔案、建議排查步驟」

可執行動作:

  • 把你目前手動開 issue 的模版貼出來,照樣套到 routine:把欄位(背景、重現步驟、log、可能原因)寫進 prompt,讓 AI 自動填。

進階玩法:多代理 + DevOps 工具鏈串接

多代理平行工作:一個負責測試、一個負責安全

Anthropic 在桌面版 Claude Code 已經支援多代理平行工作(Reddit 範例),在 routines 概念上,你可以照抄這個思路:

  • routine A:專門寫測試
  • 拉 PR diff
  • 找出新增 / 修改的 function
  • 為這些 function 產測試檔 / 測試 case
  • routine B:專門做安全檢查
  • 用「安全檢查 prompt」掃過相同 diff
  • 找 SQL injection、硬編 API key、不安全的反序列化等

你在 CI / webhook 流程裡:

  • 對同一個 PR 同時觸發 routine A 和 B
  • 兩邊結果都留言回 PR,Reviewer 一次看完

可執行動作:

  • 先從「拆成兩個 routine」開始:複製一份 PR 初審 routine,一份改成只談測試、一份改成只談安全。兩個端點都掛在同一個 GitHub webhook 上平行觸發。

💡 關鍵: 把不同責任拆成多個 routine 平行跑,比讓一個超大 prompt 包山包海更穩定、也更好維護。


和 GitHub Actions / 自家 CI 組合

根據官方說明,每個 routine 都有自己的 API endpoint,你可以:

  • 在 GitHub Actions 新增一個 step:

yaml
- name: Call Claude routine
run: |
curl -X POST "$ROUTINE_ENDPOINT" \
-H "Authorization: Bearer $ROUTINE_TOKEN" \
-H "Content-Type: application/json" \
-d '{"pr_number": "${{ github.event.pull_request.number }}"}'

  • 在自家 CI(GitLab CI、Jenkins 等)同樣用 curl / http client 呼叫

可執行動作:

  • 挑一個已存在、每次都必跑的 workflow(例如 ci.yml 中的 lint job),在最後加上一個 step 呼叫 routines,把 log 或 diff 丟給它,先從「只產出建議、不寫檔」開始。

怎麼開始:從一個「最小可用」 routine 起步

1. 在哪裡開啟 Claude Code routines?

前提:需要 Claude 付費帳號(根據 官方公告)。

步驟概念(介面可能會隨時間微調):

  1. 登入 https://code.claude.com
  2. 在側邊欄找到 Routines 或類似入口
  3. Create routineNew routine
  4. 選擇:
  5. 要連接的 repo(GitHub / 本地鏡像等)
  6. 要用的 connector(例如 Slack、GitHub)
  7. routine 的觸發方式(排程 / API / GitHub webhook)

可執行動作:

  • 現在就登入 Claude Code,看你的帳號是否已開 routines,確認你公司 repo 是否能被安全地接入(先選一個 side project 測試)。

2. 寫一個「最小可用」 lint & 建議 routine

目標:對指定 repo 做 lint,請 Claude 用自然語言給建議,不動任何程式碼。

流程示意(概念層級):

  1. 新建 routine:ts-lint-advisor
  2. 設定:
  3. Repo:github://your-org/your-repo
  4. 觸發:API(先手動呼叫)
  5. 在 routine 腳本中:
  6. Step 1:git clone 對應 branch
  7. Step 2:跑 pnpm lintnpm run lint,把輸出存成文字
  8. Step 3:呼叫 Claude,把 lint log + 相關檔案片段丟給它,prompt 約略:

    你是一位 TypeScript 專案維護者。根據以下 ESLint 輸出,請:
    1. 依錯誤類型分組
    2. 解釋造成這些錯誤的程式風格 / 設計問題
    3. 提出 3–5 條優先修正建議(包含具體檔案與規則)

  9. 回傳結果:只輸出 markdown 報告,不修改 repo

可執行動作:

  • 先做一版「只讀不寫」的 lint 報告 routine,確定你喜歡它的輸出風格,再考慮讓 routine 產 patch 或自動發 PR。

💡 關鍵: 先用「只讀報告」驗證 routine 的品質與風格,比直接讓它改碼、開 PR 安全得多。


3. 設定 GitHub webhook:新 PR 自動觸發

當你有一個穩定的 PR 初審 routine 之後,可以這樣接 GitHub:

  1. 在 routines 介面確認此 routine 的 API endpoint
  2. 到 GitHub 專案 Settings → Webhooks
  3. Payload URL:貼上 routines endpoint
  4. Content type:application/json
  5. Which events:勾選「Pull requests」
  6. 在 routine 的程式裡解析 GitHub webhook payload:
  7. 取得 pull_request.numberhead.refbase.ref
  8. 用這些資訊去抓 diff + 檔案內容

可執行動作:

  • 先對「一個測試 repo」開 webhook,不要直接上 production monorepo;等確認 routine 不會亂刷 comment、沒權限問題,再複製設定到正式專案。

風險提示與 Best Practices

1. 權限控制:不要讓 Agent 直接推到 main

routines 能改程式碼,也能開 PR。建議:

  • 對 routines 用的 GitHub Token:
  • 禁止直接 push 到 main / master
  • 只給「開 PR」和「留言」的權限
  • 在 Org Policy 中明定:AI 開的 PR 一律需要人審核才能合併

可執行動作:

  • 立刻確認你準備給 routines 用的 GitHub PAT / App 權限,把 push to protected branches 關掉。

2. 改動記錄與審計:每一個 AI 動作都要有跡可循

為了避免「不知道是哪個 routine 改了什麼」:

  • 統一規範 AI 開 PR 的 branch 命名,例如:ai/routine-name/feature-x
  • PR 描述固定包含:
  • 使用的 routine 名稱 & version
  • 執行時間、輸入參數(例如針對哪個 issue / PR)
  • 可以在 routine 程式裡主動把自己的輸出寫入一個 log 檔或 S3 / DB,供日後查詢。

可執行動作:

  • 寫一個簡單規範:所有 routines 在 PR 描述最上方都要加一段固定訊息,例如:[Generated by routine: pr-initial-review v0.3],方便日後搜尋、回溯。

3. 慢慢放權:先從「建議」再到「自動修改」

導入策略可以分三層:

  1. 只讀模式:只產報告 / 建議,不動任何檔案
  2. Patch 模式:產生 patch 檔、開 PR,但不自動合併
  3. 半自動修正:對低風險項目(格式化、註解)允許自動合併,高風險項目仍需人工

可執行動作:

  • 先列出「允許 AI 自動處理」與「必須人工審核」的改動類型(例如:格式化、註解 vs. 核心業務邏輯、資料庫 schema),在 routine 的 prompt 裡明寫清楚。

小結:從一個 routine 開始,把最煩的事交給 Claude

你可以把 Claude Code routines 當成「可編程的 AI Bot 平台」:

  • 把你每天重複做的開發流程拆成步驟
  • 用程式碼和 prompt 變成 routine
  • 用排程、API 或 GitHub webhook 觸發

最實際的下一步

  1. 選一個最討厭但規則清楚的工作(例如 PR 初步檢查命名和註解)。
  2. 在 Claude Code 裡建一個 routine,先只產出文字建議。
  3. 跑一週,觀察輸出品質,再決定要不要進一步讓它產 patch、開 PR。

從一個小 routine 開始,你就能感受到「用程式碼把 Claude 變成你的自動化開發助理」的威力。

🚀 你現在可以做的事

  • 打開一個 side project repo,列出 3–5 步驟的「最煩例行工作」,照文中流程設計第一個 routine
  • 在 CI 或 GitHub Actions 中加上一個「只讀建議」的 routines 呼叫 step,觀察一週效果
  • 為 routines 設計權限與審計規範(Token 權限、branch 命名、PR 描述格式),再逐步放權到 patch / 開 PR

留言

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *