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. 解析输出
JSON 位于 --- signal-lens-report-json --- 和 --- signal-lens-report-markdown --- 之间。
调用方式
/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或克隆 https://github.com/simhanson123/signal-lens