内容
# 信号透镜
**基于上下文的维护者PR审查,适用于开源仓库**
捕获仅通过差异审查无法发现的问题:CI削弱、安全边界、重复实用程序和缺失测试——以证据而非意见为准。
**支持的界面:** 代理技能 · 命令行界面 · GitHub Actions · MCP(可选)—— v2.0.1
**仓库:** https://github.com/simhanson123/signal-lens
**npm:** https://www.npmjs.com/package/signal-lens
> **信号透镜**(`signal-lens`)是基于上下文的维护者PR审查工具——不仅限于MCP工具。别名:CLI、npm、Action、GitHub仓库。
## 为什么维护者使用它
AI和代理生成的PR看起来很干净,但隐藏了工作流、测试和安全边界中的风险。`signal-lens`压缩了这些信号,以便您更快地做出决定:
| 风险 | 信号透镜检查的内容 |
|------|------------------------|
| CI削弱 | `continue-on-error`、删除的测试、覆盖率下降 |
| 安全边界 | 工作流中不受信任的输入、硬编码的秘密 |
| 重复实用程序 | 新的帮助程序与现有符号(Tree-sitter索引) |
| 测试空白 | 源代码更改但测试未更新 |
## 功能
| 领域 | 命令 / 界面 |
|------|---------------------|
| **代理技能** | `/signal-lens` — Claude Code + Grok/Codex(自动MCP或CLI) |
| **PR审查** | `signal-lens review`、GitHub Action |
| **内联评论** | `signal-lens post-inline`、`review --post-inline` |
| **Tree-sitter索引** | `signal-lens index` → SQLite符号 + 导入图 |
| **问题分类** | `signal-lens triage` |
| **发布说明** | `signal-lens release` |
| **自动修复草稿** | `signal-lens fix`、`/signal-lens fix` |
| **斜杠命令** | `/signal-lens explain`、`false-positive`、`fix`、`release-notes` |
| **MCP服务器** *(可选)* | `signal-lens mcp` — 5个资源、7个工具、4个提示 |
| **GitHub应用** *(实验性)* | `signal-lens serve` + `github-app/manifest.yml` |
| **AI提供商** | OpenAI、Anthropic、**Ollama(本地)**、mock |
| **输出** | Markdown、JSON、SARIF(代码扫描) |
### 无需API密钥
静态分析器在没有任何API密钥的情况下运行。对于无需云API的AI审查,请使用**Ollama**。
## 安装
```bash
npm install -g signal-lens
signal-lens --version # 2.0.1
```
## 快速入门
```bash
# 索引仓库符号
signal-lens index
# 审查分支(静态 - 无API密钥)
signal-lens review --base main --head HEAD --static-only
```
从源代码开始:
```bash
git clone https://github.com/simhanson123/signal-lens.git
cd signal-lens && npm install && npm run build
node dist/cli.js review --base main --head HEAD --static-only
```
## 代理技能(推荐入口点)
```
/signal-lens
/signal-lens --branch my-feature
```
复制到您的开源仓库:
```bash
cp -r skills/signal-lens .claude/skills/signal-lens # Claude Code
cp -r skills/signal-lens .grok/skills/signal-lens # Grok / Codex
```
自动路由:连接MCP工具时,否则使用CLI。参见 [docs/skills.md](docs/skills.md)。
```bash
signal-lens capabilities
```
## GitHub Actions
```yaml
- uses: simhanson123/signal-lens/action.yml@v2.0.1
with:
output-format: all
post-comment: "true"
post-inline-comments: "true"
fail-on-blocker: "true"
```
## 命令行界面
```bash
signal-lens review --base main --head HEAD --static-only
signal-lens review --base main --head HEAD --output all -f report
signal-lens index
signal-lens capabilities
```
## Ollama(本地AI审查)
```bash
ollama pull qwen2.5-coder:7b
SIGNAL_LENS_PROVIDER=ollama signal-lens review --base main --head HEAD
```
## MCP(可选集成)
适用于Cursor、Claude Desktop或其他MCP主机:
```json
{
"mcpServers": {
"signal-lens": {
"command": "signal-lens",
"args": ["mcp"],
"cwd": "/path/to/your/repo"
}
}
}
```
## 配置
将 [`.signal-lens.yml`](.signal-lens.yml) 复制到您的仓库根目录。
## 开发
```bash
git clone https://github.com/simhanson123/signal-lens.git
cd signal-lens
npm install
npm test
npm run build
```
## 文档
- [代理技能](docs/skills.md)
- [架构](docs/architecture.md)
- [安全](docs/security.md)
- [OpenAI Codex for OSS Plan](docs/openai-codex-for-oss-plan.md)
- [更新日志](CHANGELOG.md)
## 许可证
MIT