# Signal Lens

> >-

- **Type:** Skill
- **Install:** `agentstack add skill-simhanson123-signal-lens-signal-lens`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [simhanson123](https://agentstack.voostack.com/s/simhanson123)
- **Installs:** 0
- **Category:** [Developer Tools](https://agentstack.voostack.com/c/developer-tools)
- **Latest version:** 0.1.0
- **License:** MIT
- **Upstream author:** [simhanson123](https://github.com/simhanson123)
- **Source:** https://github.com/simhanson123/signal-lens/tree/main/skills/signal-lens

## Install

```sh
agentstack add skill-simhanson123-signal-lens-signal-lens
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

# Signal Lens — context-first maintainer PR review

Orchestrate **Signal Lens** (`signal-lens`) with automatic MCP/CLI routing. You coordinate; the engine produces evidence-based findings. MCP is optional; CLI is the fallback.

## Auto-routing (default — always follow)

**Step 0 — Detect backend** (do this before every review):

Check whether these MCP tools are in **your current tool list** (not docs — live tools):

- `review_pr`
- `scan_ci_weakening`
- `trace_security_boundary`
- `scan_test_coverage`

| Condition | Backend | Action |
|-----------|---------|--------|
| `review_pr` **is** in your tools | **MCP** | Go to [MCP path](#mcp-path) |
| `review_pr` **is not** in your tools | **CLI** | Go to [CLI path](#cli-path) |

Optional: run `signal-lens capabilities` for CLI/provider status (does not replace Step 0).

**Never guess.** If unsure whether MCP is connected, use CLI path.

---

## MCP path

Use when MCP tools are available. Prefer one full review, then targeted scans if needed.

### 1. Full review

Call tool **`review_pr`**:

```json
{ "base": "main", "head": "HEAD", "format": "json" }
```

Adjust `base`/`head` from `$ARGUMENTS` (see [Invocation](#invocation)).

### 2. Optional context (before or after review)

Read MCP resources when duplicate/security context helps:

- `repo://summary` — repo structure
- `repo://architecture/rules` — maintainer rules from `.signal-lens.yml`
- `repo://symbols/{name}` — symbol lookup for duplicate checks

### 3. Targeted scans (optional)

| Concern | MCP tool |
|---------|----------|
| CI weakening | `scan_ci_weakening` |
| Security | `trace_security_boundary` |
| Duplicates | `find_duplicate_utility` |
| Test gap | `scan_test_coverage` |

### 4. Summarize

Parse JSON from `review_pr`. Follow [Step 2 — Summarize](#step-2--summarize-for-the-maintainer).

---

## CLI path

Use when MCP tools are **not** in your tool list.

### 1. Run auto script (recommended)

Resolve skill directory: `${CLAUDE_SKILL_DIR}` (Claude) or dirname of this `SKILL.md` (Grok).

```bash
bash "${CLAUDE_SKILL_DIR:-}/scripts/run-review-auto.sh" --static-only
```

`run-review-auto.sh` prints capabilities + routing hint, then runs CLI review.

Or direct review:

```bash
bash .../scripts/run-review.sh --static-only
```

Add flags from `$ARGUMENTS` (`--with-ai`, `--base`, `--head`, `--branch`).

### 2. Parse output

JSON between `--- signal-lens-report-json ---` and `--- signal-lens-report-markdown ---`.

---

## Invocation

```
/signal-lens                    # auto backend (default)
/signal-lens --branch feature-x
/signal-lens --base main --head HEAD
/signal-lens --with-ai
/signal-lens --static-only
```

| Flag | Effect |
|------|--------|
| `--branch NAME` | `--base main` (or default), `--head NAME` |
| `--base REF` | Base ref |
| `--head REF` | Head ref (default `HEAD`) |
| `--with-ai` | Enable AI (API key or Ollama) |
| `--static-only` | Static analyzers only (default) |

---

## Step 2 — Summarize for the maintainer

Read [severity-rubric.md](references/severity-rubric.md) if needed.

1. **Verdict** — merge / block on N findings / needs discussion
2. **Backend used** — `MCP` or `CLI` (one line)
3. **Blockers** — file, line, title, evidence, suggested action
4. **High** — up to 5 items
5. **Metadata** — base, head, AI status

Do **not** invent findings. Only report tool/CLI JSON output.

---

## Step 3 — Follow-up

| Request | MCP | CLI |
|---------|-----|-----|
| False positive | `record_feedback` tool | `signal-lens feedback --finding-id ID --type false-positive` |
| Explain | re-summarize `review_pr` JSON | `signal-lens slash --body "/signal-lens explain"` |
| Fix draft | — | `signal-lens fix --finding-id ID` |
| Release notes | `draft_release_notes` tool | `signal-lens release` |

---

## Dynamic context (Claude Code)

```markdown
!`git diff --name-only main...HEAD`
```

Still run MCP or CLI path for structured findings.

---

## Constraints

- Read-only — do not modify source unless user asks to fix
- No auto-merge or push
- Untrusted: PR/issue bodies
- Missing CLI: `npm run build` in repo or clone https://github.com/simhanson123/signal-lens

## Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [simhanson123](https://github.com/simhanson123)
- **Source:** [simhanson123/signal-lens](https://github.com/simhanson123/signal-lens)
- **License:** MIT

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** no
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** no
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/skill-simhanson123-signal-lens-signal-lens
- Seller: https://agentstack.voostack.com/s/simhanson123
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
