xsyetopz/repolens
GitHub: xsyetopz/repolens
RepoLens 将代码库转化为确定性诊断数据,通过 CLI 和 MCP 服务器统一为人类、CI 和 AI 编码代理提供仓库级智能分析。
Stars: 0 | Forks: 0
# RepoLens
RepoLens 是一个面向人类和编码代理的仓库智能套件。它对代码库进行盘点,记录确定性事实,发出稳定的 `E####` 诊断信息,将报告投影为人类/CI/编辑器/代理格式,并通过 CLI 和 MCP 服务器公开相同的数据。
RepoLens 位于现有的 linter 和分析器之上。它读取仓库证据和工具配置,然后添加仓库级诊断、面向代理的上下文、抑制、基线、摘要和回退记忆工作流,以处理语言工具未涵盖的场景。
## 适用场景
- 当你需要一个人类可操作的仓库智能二进制文件,而不仅仅是一个 MCP 服务器时。
- 当你希望获得代理可以引用的确定性诊断和报告封装时。
- 当你需要从一个发现模型中生成 JSON、SARIF、LSP/编辑器、CI、人类和代理可读的投影时。
- 当你希望生成的 Agent Skills、Codex/Claude 插件包装器和 Cursor 规则派生自同一个规则注册表时。
- 当你需要具有 MCP 资源的本地观察记忆,并在 MCP 传输失败时提供 CLI 回退时。
## 快速开始
```
bun install --frozen-lockfile
bun run repolens --help
bun run repolens -- --format json inventory tests/fixtures/single
bun run repolens -- --format json --fail-on error analyze tests/fixtures/single
```
在将变更视为已准备好之前,请运行主要的验证门控:
```
bun run check
```
发布形态检查包括 Bun CLI/MCP 包和 Rust memory 二进制文件:
```
bun run build
cargo build --release -p repolens-memory
bun run release:artifacts
```
## 产品形态
| 形态 | 职责范围 |
| --- | --- |
| `repolens` CLI | 盘点、分析、规则列出/解释、报告投影、语料库命令、配置命令。 |
| Core TypeScript 库 | 工作区遍历、配置、适配器、图记录、规则、发现、抑制、基线、报告。 |
| 诊断 schema | 位于 `schemas/diagnostic.schema.json` 的稳定 JSON 发现契约,其 `$id` 为 `urn:repolens:schema:diagnostic-result`。 |
| 规则注册表 | 来自 `src/rules/registry/*.jsonl` 的紧凑型 `E####` 诊断规则;生成的工件是投影,而不是事实来源。 |
| `repolens-mcp` | 用于确定性报告和仓库智能的 RepoLens 专用 MCP 资源、提示和工具。 |
| `repolens-memory` | 带有同存储回退命令、hook 事件摄取、快照和指令附加输出的 Rust 观察记忆 MCP/CLI。 |
| 代理工件 | 可移植的 Agent Skills 以及复用精确生成的技能文件的 Codex/Claude 插件包装器。 |
## 仓库自有数据
RepoLens 自有的源契约位于域文件夹中;生成的代理材料位于 `.agents/` 下:
- `src/rules/registry/*.jsonl` — 规范的诊断规则元数据和实现规范。
- `crates/repolens-memory/sql/` — 按域分组的 Rust memory SQL 模板(`schema`、`query`、`store`、`health`、`thread`、`tests`),使用 SQL 风格的 snake_case 文件名。
- `schemas/mcp/` — MCP 工具输入 schema 工件。
- `src/generated/hooks/` 和 `.agents/hooks/` — 生成的 memory hook 脚本。
- `.agents/skills/` 和 `.agents/plugins/` — 生成的可移植技能和插件包。
SQL 查询和 schema 是外部的 `.sql` 模板。Rust 使用 `include_str!` 加载它们;TypeScript/Bun 代码应使用 Bun 或包 API,而不是内联查询/schema 字符串。
## 规则、发现和报告
RepoLens 诊断规则是带有紧凑 `E####` id 的实现规则。它们位于 JSONL 注册表中,通过配置/证据/语言/路径/严重性/抑制状态进行选择,并生成针对诊断 schema 进行验证的发现。
报告可以渲染为:
- 人类编译器风格输出
- JSON 报告封装
- SARIF
- LSP/编辑器诊断
- CI 输出
- 包含发现、集群、仓库、抑制、基线和规则上下文的代理可读摘要
## 记忆回退
`repolens-memory` 既是 MCP 服务器,也是 CLI 回退。代理在可用时应优先使用 MCP 资源/工具,并在 MCP 失败或报告 `Transport closed` 时使用同存储 CLI 命令。
常用命令:
```
repolens-memory serve --store .repolens/memory.sqlite3
repolens-memory instructions --store .repolens/memory.sqlite3 --agent codex --append-to AGENTS.md
repolens-memory context --store .repolens/memory.sqlite3 --latest --raw
repolens-memory fallback --store .repolens/memory.sqlite3 --latest --raw
cat hook-event.json | repolens-memory hook-event --store .repolens/memory.sqlite3
```
## 文档导航
- `AGENTS.md` — 针对编码代理的仓库特定执行规则。
- `docs/architecture.md` — 边界、数据流、证据层次结构、规则/信号模型、MCP 边界和非目标。
- `docs/specifications/runtime-and-mcp-semantics.md` — CLI/运行时、报告封装、验证和 MCP 行为。
- `docs/specifications/language-adapter-semantics.md` — 适配器身份、证据级别、图记录、信号、降级模式和依赖项元数据。
- `docs/specifications/agent-facing-artifacts.md` — 生成的技能、插件包装器、Cursor 规则和漂移检查。
- `docs/specifications/adapter-selection.md` — 适配器证据层次结构和库选择策略。
- `docs/specifications/diagnostic-reporting.md` — SARIF、LSP/编辑器、CI 和人类诊断投影规则。
- `docs/specifications/language-coverage.md` — 支持的语言家族覆盖范围和语料库预期。
- `docs/contracts/diagnostic-result.md` — 锁定的诊断/发现契约。
- `docs/security/external-tool-execution.md` — 外部分析器执行策略。
- `docs/validation.md` — 仓库自有的验证命令列表。
- `docs/release/usage.md` 和 `docs/release/versioning.md` — 安装、升级、操作、发布和版本策略。
## 开发
最小可用循环:
```
bun run typecheck
bun run lint
bun test
cargo test -p repolens-memory
bun run check
```
针对性检查:
```
bun run inline-sql
bun run file-names
bun run source-lines
bun run rule-registry
bun run agent-artifacts:check
bun run memory:smoke
```
命名检查允许 Go 测试文件、测试夹具目录以及 `crates/repolens-memory/sql` 和 `tests/fixtures` 下的 SQL 风格 `.sql` 文件名;其他源文件应使用目录上下文,而不是以下划线打包的名称。
标签:AI编程助手, MCP, TypeScript, 云安全监控, 代码质量分析, 可视化界面, 威胁情报, 安全插件, 开发者工具, 自动化攻击, 静态分析