Archived
新增 code-review skill(RPG 攻防對決式 git diff 審查)
- 攻擊方 4 角色(吟遊詩人/法師/盜賊/刺客)依風格/邏輯/效率/安全性面向找問題 - 防守方聖騎士依排除事項與原始碼脈絡裁決(略過/誤判/成立) - 角色定義各自獨立於 roles/*.md(含英文名稱/專案/個性/徽章/代表色) - git diff 來源/目標分支缺一不可 - 移除範例 hello skill,三個 manifest 版本設為 0.0.1,更新 README Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
6b87e68cd5
commit
bfe691984a
@@ -0,0 +1,113 @@
|
||||
---
|
||||
name: code-review
|
||||
description: 以 RPG 攻防對決方式審查 git diff 的程式碼審查 skill。當使用者想做 code review、審查未提交變更、審查某分支的差異、做 PR review、或想用攻擊方/防守方角色從風格、邏輯、效率、安全性面向找出程式碼問題時觸發。使用者可選擇要派哪些角色(單一角色、整個攻擊方、整個防守方、或全部)。攻擊方分析 git diff 找出問題(問題/等級/描述/建議/檔案位置/所在行數);防守方依專案排除事項與原始碼脈絡裁決每條問題(略過/誤判/成立)。不適用於:非 diff 的整體架構評估、非程式碼的文件審查、或單純解釋程式碼。
|
||||
---
|
||||
|
||||
# 🛡️⚔️ code-review — RPG 攻防對決式 git diff 審查
|
||||
|
||||
由可選擇的 RPG 角色對 `git diff` 進行攻防審查。**攻擊方**找問題,**防守方**裁決。
|
||||
角色定義在 `roles/` 資料夾(一角色一個 `.md`),各自有英文名稱、專案、個性、徽章與代表色。
|
||||
|
||||
## 角色一覽
|
||||
|
||||
| 角色 | 陣營 | 面向 | 徽章 | 檔案 |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| Bard(吟遊詩人) | 攻擊方 | 風格 | 🎼 | `roles/bard.md` |
|
||||
| Mage(法師) | 攻擊方 | 邏輯 | 🔮 | `roles/mage.md` |
|
||||
| Rogue(盜賊) | 攻擊方 | 效率 | ⚡ | `roles/rogue.md` |
|
||||
| Assassin(刺客) | 攻擊方 | 安全性 | 🗡️ | `roles/assassin.md` |
|
||||
| Paladin(聖騎士) | 防守方 | 裁決 | 🛡️ | `roles/paladin.md` |
|
||||
|
||||
每次執行前,先讀取被選到角色的 `roles/<role>.md`,套用其 frontmatter(徽章、代表色、個性)與 body(審查重點/裁決準則)。
|
||||
|
||||
---
|
||||
|
||||
## 執行流程
|
||||
|
||||
### 1. 取得 diff(必須指定來源分支與目標分支,缺一不可)
|
||||
|
||||
審查範圍一律是兩個分支的差異,**來源分支(source)**與**目標分支(target)**兩者**缺一不可**:
|
||||
|
||||
- slash 參數提供兩者:`/jsc:code-review <target> <source>`(順序:目標在前、來源在後),例如
|
||||
`/jsc:code-review main feature/login`。指令為 `git diff <target>...<source>`(比對 source 自分岔點以來的變更)。
|
||||
- **若來源或目標分支任一缺漏 → 必須詢問使用者補齊**,兩個都拿到才繼續;
|
||||
可用 `git branch` 列出可選分支輔助使用者選擇。不可自行臆測或預設某一分支。
|
||||
- 取得兩個分支後執行 `git diff <target>...<source>`。
|
||||
- **diff 為空**(兩分支無差異)→ 回報「無變更可審查」並結束。
|
||||
|
||||
### 2. 選擇角色
|
||||
|
||||
slash 參數格式:`/jsc:code-review <target> <source> [角色...]`(角色接在兩個分支之後)。
|
||||
|
||||
- **若已指定角色** → 直接採用。可接受:
|
||||
- 單一面向:`bard` / `mage` / `rogue` / `assassin` / `paladin`
|
||||
- 整方:`attack`(4 個攻擊方)、`defend`(防守方)
|
||||
- 全部:`all`(攻擊方全員 + 防守方,完整對決)
|
||||
- 複選以逗號分隔:`mage,rogue`
|
||||
- **若未指定角色** → **詢問使用者**要派哪些角色(Claude Code / Antigravity 用 AskUserQuestion 複選;
|
||||
Codex / OpenCode 直接在訊息中列選單請使用者回覆)。選項涵蓋:單一角色 / 攻擊方全員 / 防守方全員 / 全部。
|
||||
|
||||
### 3. 載入排除事項(只要選到防守方就需要)
|
||||
|
||||
排除事項設定檔位於**專案根目錄**(建議檔名 `.codereview.md`,列出已知技術債/團隊慣例/刻意取捨)。
|
||||
|
||||
- **若不知道排除事項檔案的位置 → 必須詢問使用者**(提供建議預設 `.codereview.md`)。
|
||||
- **檔案允許不存在或為空** → 視為「無排除事項」,防守方直接進入原始碼判斷,**不**因缺檔而中斷。
|
||||
|
||||
### 4. 攻擊方審查
|
||||
|
||||
被選到的每個攻擊方角色,依其 `focus` 與個性掃描 diff,**各自輸出一張 findings 表**
|
||||
(表前加上該角色的徽章+名稱,並標註代表色):
|
||||
|
||||
> ## 🔮 Mage(法師)· 邏輯 `#3B82F6`
|
||||
>
|
||||
> | 問題 | 等級 | 描述 | 建議 | 檔案位置 | 所在行數 |
|
||||
> | --- | --- | --- | --- | --- | --- |
|
||||
|
||||
- **等級**:🔴 嚴重 / 🟠 高 / 🟡 中 / 🔵 低。
|
||||
- **檔案位置 / 所在行數**:取自 diff 新檔(`+` 側)的路徑與行號。
|
||||
- 只針對本次 diff 的變更,不對無關舊碼開砲。
|
||||
|
||||
### 5. 防守方裁決(若選到防守方)
|
||||
|
||||
對攻擊方的**每一條** finding 依序:
|
||||
|
||||
- **(a) 先比對排除事項**:命中 → **🚫 略過(排除事項)**,引用對應排除條目,不再回答此條。
|
||||
- **(b) 否則讀原始碼判斷**:標 **❌ 誤判(false positive)**(附理由)或 **✅ 成立**(附理由與修正建議)。
|
||||
|
||||
輸出一張裁決表(聖騎士徽章 🛡️ `#EAB308`):
|
||||
|
||||
| 來源角色 | 原問題 | 裁決 | 理由 | 最終建議 |
|
||||
| --- | --- | --- | --- | --- |
|
||||
|
||||
裁決欄只能是 `🚫 略過 / ❌ 誤判 / ✅ 成立`。
|
||||
|
||||
> **若只選了防守方、尚無攻擊方 findings** → 先自動跑攻擊方全員產生指控,再裁決(並告知使用者已自動補跑)。
|
||||
|
||||
### 6. 總結
|
||||
|
||||
- **有防守方**:只彙整 **✅ 成立** 的問題,依等級(🔴→🔵)排序成一份精簡待辦清單;略過/誤判不列入。
|
||||
- **無防守方**:直接呈現攻擊方各自的 findings 表。
|
||||
|
||||
---
|
||||
|
||||
## 執行方式:單選 vs 複選
|
||||
|
||||
- **單一角色** → 模型直接扮演該角色執行,不需 subagent。
|
||||
- **複選(多個角色 / 整方 / 全部)** → 以 **sub agent** 方式執行:
|
||||
- **Claude Code / Antigravity**:用 Agent/Task 工具,**每個被選到的攻擊方角色派一個 subagent 並行執行**
|
||||
(subagent 帶該角色 `roles/<role>.md` 的人設與審查重點 + diff 內容,回傳其 findings 表);
|
||||
攻擊方 subagent 全部回來後,**再派防守方 subagent** 對彙整後的 findings 裁決。
|
||||
- **Codex / OpenCode(無對等 subagent 機制)**:退化為模型**依序扮演**各角色,行為等價、僅非並行。
|
||||
|
||||
無論哪種路徑,最終輸出格式(findings 表、裁決表、總結)一致。
|
||||
|
||||
## 呼叫方式
|
||||
|
||||
格式:`<target> <source> [角色...]` — **來源/目標分支缺一不可**,缺漏會反問補齊;角色可省略(會詢問)。
|
||||
|
||||
| 助理 | 呼叫 |
|
||||
| --- | --- |
|
||||
| Claude Code / Antigravity | `/jsc:code-review`(反問分支與角色),或 `/jsc:code-review main feature/login`、`/jsc:code-review main feature/login mage`、`/jsc:code-review main feature/login all` |
|
||||
| Codex | `$code-review main feature/login attack`(可接參數),或用 `/skills` 選單 |
|
||||
| OpenCode | 描述需求(如「幫我用攻防角色 review main 與 feature/login 的差異」)自動觸發 |
|
||||
Reference in New Issue
Block a user