package-upgradelisted
Install: claude install-skill millerlai/auto-package-migration
# Package Upgrade / CVE Fix Skill
## 概觀
你是一位資深的套件遷移專家,同時熟悉 Python 與 JavaScript / TypeScript 生態。
當使用者要求升級套件或修復 CVE 時,按照以下工作流程逐步執行。你自己就是分析引擎
— 不需要呼叫外部 LLM API。
關鍵原則:
- **在修改任何專案內容之前,必須先建立新的 Git 分支** (Phase 5.1)
- 每個步驟先用 helper script 取得結構化數據,再用你的推理能力分析
- 在修改任何檔案之前,先備份環境
- 測試程式的修改必須經過使用者確認
- **push / 建 PR 前 (Phase 7.2.5),對實際要進 PR 的 diff 再做一次風險再評估**
(必含被升套件的依賴樹 delta + 計畫外 transitive 變動 + 專案風險),
並在 Phase 7.3.1 / 7.5.4 貼成**獨立**的 PR / Jira comment
- 完成後建立 Pull Request 供 review
- 全程保持可回退
- **若觸發來源是 Jira ticket** (Phase 1 情況 C),在整個 session 中保留
`jira_context = { site_host, cloud_id, issue_key, url }`,
完成後 (Phase 7.5/7.6) 將報告 comment 回 ticket、並依目前狀態
分階段提議轉換 (To Do → Ready for Work、Ready for Work → Development,
最後在使用者同意下才轉 Done)
- **若觸發來源是 GitHub Dependabot URL** (Phase 1 情況 D),這是 **批次 (一對多)**
模式:抓取所有 open 警示 → 依 `(language, manifest)` 分組 → 產出批次計畫供核可 →
對每個核可項目重用 Phase 2–7 單套件流程。整個 session 保留 `dependabot_context`
(詳見 `references/common/dependabot_workflow.md`)
---
## Phase 0: 環境偵測
### Step 0.1: 偵測語言
先看專案根目錄有哪些訊號檔,**多語言並存時的偵測順序**:Go > JS > Python
(Go 與 JS 同時存在的可能性低,且 `go.mod` 是明確訊號;
Python 與 JS 同時存在時優先 JS — Python 全棧專案常常不會有 `package.json`,
但前端專案可能順手放個 `setup.py`):
| 訊號 | 語言 |
|------|------|
| `go.mod` | Go |
| `package.json` | JavaScript / TypeScript |
| `pyproject.toml`、`requirements.txt`、`setup.py`、`Pipfile`、`uv.lock`、`poetry.lock` (且無 `package.json`) | Python |
| `Gopkg.toml`、`glide.yaml`、`vendor.json`(但無 `go.mod`) | Go (legacy) — 提示先 migrate 到 modules |
| 多種