lakeday-org/perch
Semantic code linting with Decision Models
perch – 基于 AI 的语义代码 lint
是什么 – perch 是一个命令行工具,扫描源代码并报告 语义 缺陷(例如:调用顺序错误、偏移 1 错误、环境变量误用)。分析由 TypeSafe 的大语言模型服务(通过 API 密钥访问)驱动。它超越了语法检查器,让模型推理每个方法的意图,并根据置信度对发现结果进行排序。
如何工作
perch scan遍历项目,构建函数/方法的图结构,并向 LLM 发送简洁的“问题”。模型返回某个模式是缺陷的概率;perch 将其转换为严重性分数(P1、P2、…),并打印出表格。- 结果缓存在隐藏的
.perch/文件夹中,因此重复运行速度很快。 - 你可以查询列表(
perch issues),深入查看单个发现(perch issues <id>),并在修复后重新检查(perch check <id>)。
扩展方式 – 自定义规则使用简单的 YAML 格式编写(perch.yaml 或 .perch/rules/ 下的文件)。规则指定:
where– 文件通配符模式each– 粒度(method、function等)min– 显示问题所需的最低置信度ensure– 所需行为的自然语言描述
助手集成 – perch 可以为各种 LLM 助手(Claude、Codex、Pi、Cursor)安装“技能”。perch setup <assistant> 命令会生成一个 Markdown 文件,其中包含助手可用于建议修复的提示。
快速上手
npm install -g @lakeday/perch
export PERCH_API_KEY=$(cat ~/.perch_key) # 从 console.typesafe.ai 获取
perch scan
CLI 会打印出问题列表、置信度以及发现位置的方法名。
典型工作流
- 在本地或 CI 中运行
perch scan。 - 使用
perch issues审查严重性最高的项目。 - 修复代码后,运行
perch check <id>验证问题是否已解决。 - 通过向
.perch/closed.jsonl添加条目来忽略误报。
文档与生态 – 完整文档托管在 https://docs.perchscan.com,涵盖安装、规则语言、CI 集成和内部“图遍历”。项目发布在 npm(@lakeday/perch),包含 CI 标记、类型检查和单元测试。
成熟度 – 仓库提供稳定 CLI、自动化测试和 CI。它需要外部 API 密钥,因此核心分析依赖 TypeSafe 服务,但周边工具(规则引擎、缓存、CI 集成)是开源的。
许可证 – MIT(参见 LICENSE)。
Perch 是一个真正的 AI 增强型 lint 平台,旨在为希望获得更高层次、模型驱动的代码质量检查,而无需编写自定义提示的开发者服务。
相关
- 项目
- 项目
- 项目
- 项目