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, 云安全监控, 代码质量分析, 可视化界面, 威胁情报, 安全插件, 开发者工具, 自动化攻击, 静态分析