Signal Lens — 以情境為優先的維護者 PR 審查
協調 Signal Lens (signal-lens),並自動進行 MCP/CLI 路由。您負責統籌,引擎則產生以證據為基礎的發現。MCP 為選用;CLI 為備援方案。
自動路由(預設 — 始終遵循)
第 0 步 — 偵測後端(每次審查前執行):
檢查以下 MCP 工具是否在 您當前的工具清單(非文件中的,而是即時工具)中:
review_prscan_ci_weakeningtrace_security_boundaryscan_test_coverage
| 條件 | 後端 | 動作 |
|---|---|---|
review_pr 存在於工具清單中 | MCP | 前往 MCP 路徑 |
review_pr 不存在於工具清單中 | CLI | 前往 CLI 路徑 |
選擇性:執行 signal-lens capabilities 以查看 CLI/提供者狀態(不取代第 0 步)。
切勿猜測。 若不確定 MCP 是否已連線,請使用 CLI 路徑。
MCP 路徑
在 MCP 工具可用時使用。建議先執行一次完整審查,再依需要進行重點掃描。
1. 完整審查
調用工具 review_pr:
{ "base": "main", "head": "HEAD", "format": "json" }
根據 $ARGUMENTS 調整 base/head(參閱 調用方式)。
2. 選擇性脈絡(審查前或後)
當重複或安全脈絡有幫助時,讀取 MCP 資源:
repo://summary— 倉庫結構repo://architecture/rules— 來自.signal-lens.yml的維護者規則repo://symbols/{name}— 用於重複檢查的符號查詢
3. 重點掃描(選用)
| 關注點 | MCP 工具 |
|---|---|
| CI 弱化 | scan_ci_weakening |
| 安全性 | trace_security_boundary |
| 重複程式碼 | find_duplicate_utility |
| 測試缺口 | scan_test_coverage |
4. 摘要
解析來自 review_pr 的 JSON。遵循 第 2 步 — 為維護者摘要。
CLI 路徑
在 MCP 工具 不 在您的工具清單中時使用。
1. 執行自動腳本(建議)
解析技能目錄:${CLAUDE_SKILL_DIR} (Claude) 或此 SKILL.md 的目錄名稱 (Grok)。
bash "${CLAUDE_SKILL_DIR:-<skill-dir>}/scripts/run-review-auto.sh" --static-only
run-review-auto.sh 會印出功能與路由提示,然後執行 CLI 審查。
或直接審查:
bash .../scripts/run-review.sh --static-only
從 $ARGUMENTS 加入旗標(--with-ai、--base、--head、--branch)。
2. 解析輸出
位於 --- signal-lens-report-json --- 和 --- signal-lens-report-markdown --- 之間的 JSON。
調用方式
/signal-lens # 自動後端(預設)
/signal-lens --branch feature-x
/signal-lens --base main --head HEAD
/signal-lens --with-ai
/signal-lens --static-only
| 旗標 | 效果 |
|---|---|
--branch NAME | --base main(或預設值),--head NAME |
--base REF | 基底參考 |
--head REF | 頭部參考(預設 HEAD) |
--with-ai | 啟用 AI(API 金鑰或 Ollama) |
--static-only | 僅靜態分析(預設) |
第 2 步 — 為維護者摘要
如有需要,請參閱 severity-rubric.md。
- 裁決 — 合併 / 因 N 個發現而封鎖 / 需要討論
- 使用的後端 —
MCP或CLI(一行) - 阻擋事項 — 檔案、行號、標題、證據、建議動作
- 高優先級 — 最多 5 項
- 後設資料 — 基底、頭部、AI 狀態
不要憑空捏造發現。僅報告工具/CLI 的 JSON 輸出。
第 3 步 — 後續動作
| 請求 | MCP | CLI |
|---|---|---|
| 假陽性 | record_feedback 工具 | signal-lens feedback --finding-id ID --type false-positive |
| 解釋 | 重新摘要 review_pr JSON | signal-lens slash --body "/signal-lens explain" |
| 修正草稿 | — | signal-lens fix --finding-id ID |
| 發行說明 | draft_release_notes 工具 | signal-lens release |
動態脈絡(Claude Code)
!`git diff --name-only main...HEAD`
仍執行 MCP 或 CLI 路徑以取得結構化發現。
限制條件
- 唯讀 — 除非使用者要求修正,否則不要修改原始碼
- 不自動合併或推送
- 不可信任:PR/issue 內容
- 缺少 CLI:請在倉庫中執行
npm run build或 clone https://github.com/simhanson123/signal-lens