攻擊方 diff 過濾 + 預設檔名更名

- 攻擊方審查的 diff 在取得階段就排除 . 開頭資料夾內所有內容、
  以及排除事項檔與前次審查紀錄檔本身(git pathspec)
- 預設檔名更名:.codereview.md → exclusions.md、
  .codereview-known-issues.md → known-issues.md
- SKILL.md / paladin.md / archive-findings / README 同步更新

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Jeffery
2026-06-15 18:20:30 +08:00
co-authored by Claude Opus 4.8
parent a09faf9a1b
commit 1908eba681
4 changed files with 34 additions and 21 deletions
+19 -6
View File
@@ -32,8 +32,20 @@ description: 以 RPG 攻防對決方式審查 git diff 的程式碼審查 skill
`/jsc:code-review main feature/login`。指令為 `git diff <target>...<source>`(比對 source 自分岔點以來的變更)。
- **若來源或目標分支任一缺漏 → 必須詢問使用者補齊**,兩個都拿到才繼續;
可用 `git branch` 列出可選分支輔助使用者選擇。不可自行臆測或預設某一分支。
- 取得兩個分支後執行 `git diff <target>...<source>`
- **diff 為空**(兩分支無差異)→ 回報「無變更可審查」並結束
- 取得兩個分支後執行 `git diff <target>...<source>`,並**排除下列不納入審查的路徑**
- **任何以 `.` 開頭的資料夾內的所有內容**(如 `.git/``.github/``.claude-plugin/``.codex-plugin/``.agents/` 等)
- **排除事項檔**與**前次審查紀錄檔**本身(`--exclusions` / `--known-issues` 指定的路徑;未指定時連同預設檔名 `exclusions.md``known-issues.md` 一併排除)。
- 用 git pathspec 一次完成,例如:
```bash
git diff <target>...<source> -- . \
':(exclude,glob)**/.*/**' \
':(exclude)<排除事項檔路徑>' \
':(exclude)<前次審查紀錄檔路徑>'
```
`**/.*/**` 排除任意層級的 `.` 開頭資料夾內容;`.` 開頭的**檔案**不在此列,只有上述兩個設定檔被指名排除。)
- **過濾後 diff 為空** → 回報「無變更可審查」並結束。
### 2. 選擇角色
@@ -52,14 +64,14 @@ slash 參數格式:`/jsc:code-review <target> <source> [角色...] [--exclusio
防守方需要兩份參照資料,兩者皆位於**專案根目錄**:
**(a) 排除事項設定檔**(建議檔名 `.codereview.md`,列出已知技術債/團隊慣例/刻意取捨):
**(a) 排除事項設定檔**(建議檔名 `exclusions.md`,列出已知技術債/團隊慣例/刻意取捨):
- **若 slash 參數帶了 `--exclusions <路徑>`** → 即為使用者明確指定,直接採用該路徑,**不需再問**。
- **否則只要使用者沒有明確告知檔案路徑 → 一律先詢問**。預設檔名 `.codereview.md` 僅作為詢問時的**建議選項**
- **否則只要使用者沒有明確告知檔案路徑 → 一律先詢問**。預設檔名 `exclusions.md` 僅作為詢問時的**建議選項**
**不可**在未取得使用者明確指定前自行假設或直接採用該預設路徑。
- **檔案允許不存在或為空** → 視為「無排除事項」,**不**因缺檔而中斷。
**(b) 前次審查紀錄檔**(已知問題=前次審查成立但未解決的問題;建議檔名 `.codereview-known-issues.md`):
**(b) 前次審查紀錄檔**(已知問題=前次審查成立但未解決的問題;建議檔名 `known-issues.md`):
- **若 slash 參數帶了 `--known-issues <路徑>`** → 即為使用者明確指定,直接採用該路徑,**不需再問**。
- **否則只要使用者沒有明確告知檔案路徑 → 一律先詢問**(規則同上,預設檔名僅為建議選項,不可自行假設)。
@@ -78,6 +90,7 @@ slash 參數格式:`/jsc:code-review <target> <source> [角色...] [--exclusio
- **等級**:🔴 嚴重 / 🟠 高 / 🟡 中 / 🔵 低。
- **檔案位置 / 所在行數**:取自 diff 新檔(`+` 側)的路徑與行號。
- 只針對本次 diff 的變更,不對無關舊碼開砲。
- 攻擊方審查的是**步驟 1 過濾後**的 diff(已排除 `.` 開頭資料夾內容、排除事項檔與前次審查紀錄檔),不得把這些被排除的路徑列入問題。
### 5. 防守方裁決(若選到防守方)
@@ -137,6 +150,6 @@ slash 參數格式:`/jsc:code-review <target> <source> [角色...] [--exclusio
| 助理 | 呼叫 |
| --- | --- |
| Claude Code / Antigravity | `/jsc:code-review`(反問分支與角色),或 `/jsc:code-review main feature/login mage``/jsc:code-review main feature/login all --exclusions .codereview.md --known-issues .codereview-known-issues.md` |
| Claude Code / Antigravity | `/jsc:code-review`(反問分支與角色),或 `/jsc:code-review main feature/login mage`、`/jsc:code-review main feature/login all --exclusions exclusions.md --known-issues known-issues.md` |
| Codex | `$code-review main feature/login attack`,或 `$code-review main feature/login all --exclusions docs/review-rules.md --known-issues docs/known-issues.md`,或用 `/skills` 選單 |
| OpenCode | 描述需求(如「用攻防角色 review main 與 feature/login 的差異,排除事項看 docs/review-rules.md、已知問題看 docs/known-issues.md」)自動觸發 |