跳至主要內容
CI CD Deployment Skills

Thariq Skills #7 — CI/CD & Deployment:讓 Agent 看顧你的 PR 到安全落地

2 分

部署是 agent 最能省人力的地方之一,也是最需要護欄的地方。

CI/CD & Deployment skills 的設計目標:讓 agent 能獨立完成完整的部署流程,但在每個關鍵節點有明確的護欄。


類別定義

Thariq 原文定義

“Fetch, push, deploy code. May reference other skills.”

簡短的定義,但「may reference other skills」這句話很重要——這個類別的 skills 通常是多個其他 skills 的協調者。一個完整的 deploy-service skill 可能會引用 product-verificationrunbooks 中的 smoke test 邏輯。


Thariq 的範例

babysit-pr — 監看 PR 直到 merge。這是一個長時間任務 skill:agent 定期查看 CI 狀態、在失敗時提醒、在 review comment 出現時通知。觸發條件:「babysit」「watch CI」「make sure this lands」。

deploy-service — 完整的服務部署流程,包含:

  1. Build
  2. Smoke test(可引用 Product Verification skills)
  3. Gradual rollout(分批流量切換)
  4. 自動 rollback(如果 smoke test 在 rollout 中失敗)

cherry-pick-prod — 從主分支挑選特定 commit 到 production 分支。包含驗證邏輯和 rollback 路徑。


Gradual Rollout 的 skill 設計

Thariq 提到的 deploy-service 的完整流程值得深入看:

deploy-service/
├── SKILL.md           ← 觸發條件 + 部署前檢查清單
├── scripts/
│   ├── build.sh
│   ├── smoke-test.sh  ← 或引用 product-verification skill
│   ├── rollout.sh     ← 分批流量切換邏輯
│   └── rollback.sh    ← 自動回滾腳本
├── config.json        ← 環境設定(staging / production 端點)
└── gotchas.md         ← 已知的部署陷阱(如 CF Workers 的 propagation delay)
On-demand hooks 在部署 skills 中特別重要

Thariq 的技巧#9 描述的 /careful hook(阻擋 rm -rfDROP TABLEforce-push)在部署情境最有價值。把這個 hook 設定為 deploy-service skill 啟動時自動掛載,讓 agent 在整個部署 session 中都受到護欄保護。


引用其他 Skills

這個類別的特殊之處:deployment skills 通常是其他 skills 的消費者。

deploy-service → 引用 → product-verification(smoke test)
deploy-service → 引用 → runbooks(如果 smoke test 失敗)
babysit-pr     → 引用 → code-review(在 review 時提供建議)

Thariq 的原文:「model invokes them if installed」——如果這些 skills 都已安裝,deploy-service 可以直接在其說明中寫「執行 product-verification 中的 smoke test」,agent 會自動協調。


SuperPortia 實戰觀點

SP 的部署目前主要靠手動流程。對照 Thariq 的標準:

部署目標現狀缺口
Cloudflare Workerswrangler deploy(手動)缺 smoke test + rollback 腳本
Cloudflare Pageswrangler pages deploy(手動)缺自動化驗證
D1 Migrations手動執行 SQL無 agent-executable skill
Command Centernpm run build(手動)缺部署後驗證

deploy-checklist skill 是最接近這個類別的,但它目前更像「部署前的人工檢查清單」,而不是「agent 可自主執行的部署腳本」。

第一步:把 封裝成 skill

[!note] 第一步:把 wrangler deploy 封裝成 skill
最小可行的 CI/CD skill:把 CF Workers 部署的標準流程(wrangler deploy + 驗證 API endpoint 回應)封裝成一個 cf-deploy skill。這一步不需要 gradual rollout,只需要「一個 agent 可以端到端執行的部署流程」。


babysit-pr 的 description 範例

Thariq 在技巧 #6 中特別以這個 skill 舉例,說明 description 欄位的正確寫法:

差的 description(功能摘要):

“A comprehensive tool for monitoring pull request status across the development lifecycle.”

好的 description(觸發條件):

“Monitors a PR until it merges. Trigger on ‘babysit’, ‘watch CI’, ‘make sure this lands’.”

這個原則適用於所有 SP 的 deployment skills——description 應該寫人類自然說出的觸發語句。


回到總文

本文是九大類別系列的第七篇。完整框架與 SuperPortia 對照請見:

Anthropic 工程師的 Agent Skills 完全指南 — 九大類別 × 九個技巧