关于 pr-to-lint-rule
将重复出现的 PR 审查意见转化为自动化 lint 规则的技能。它先识别项目语言和工具链,再生成规则、更新 CLAUDE.md 并运行测试验证。
主要功能
- 01检测项目语言与 lint 工具
- 02生成对应的 lint 规则
- 03更新 CLAUDE.md 注释块
- 04运行测试验证规则
适用场景
- 01禁止直接导入特定库模块
- 02要求使用项目自定义日志器
- 03阻止生产代码调用 unwrap()
- 04要求 API 路由使用 withAuth
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ zernie/ vigiles --skill pr-to-lint-rule安装后在 Claude Code 中输入/pr-to-lint-rule确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
CLAUDE.mdCLAUDE.md.spec.tsfrontmatter-CLAUDE.mdexperimental-emit/emit-server.mjsREADME.mdrun-emit.mjsscore-emits.mjsexperimental-emit/records/emit-tool.jsonemits-2026-08-13.jsonlprose-baseline-2026-08-13.jsonrate-limit-event.jsontrials-2026-08-13.jsonlharness/agent-loop.harness.mjschecks-dogfood.harness.mjscompiled-hook-inprocess.harness.mjsharness/dogfood/adversarial-gate.eval.mjscode-quality.trigger.eval.mjsdebug-my-harness.trigger.eval.mjsedit-spec.trigger.eval.mjsgenerate-logo.trigger.eval.mjslanding-site.trigger.eval.mjsreview-docs.trigger.eval.mjsreviewer-ab.eval.mjsscreenshot.trigger.eval.mjsship-a-feature.trigger.eval.mjsharness/dogfood/reviewer-ab/prose/.claude-plugin/plugin.jsonharness/dogfood/reviewer-ab/prose/agents/code-reviewer.mdharness/dogfood/reviewer-ab/spec/.claude-plugin/plugin.jsonharness/dogfood/reviewer-ab/spec/agents/code-reviewer.mdcode-reviewer.md.spec.ts详细介绍
将反复出现的 PR 审查意见转换为自动化 lint 规则。
参数
$ARGUMENTS — 对要强制执行的模式的自然语言描述。例如:
- “我们总是提醒大家不要从 antd 直接导入,而要使用我们的设计系统 barrel 文件”
- “大家会忘记使用我们的自定义日志记录器,而改用 console.log”
- “生产代码中不要使用 unwrap(),应使用 expect() 或妥善处理错误”
- “API 路由处理程序必须使用 withAuth 包装器”
说明
你要根据反复出现的代码审查模式生成自动化 lint 规则。请按以下步骤操作:
步骤 1:检测项目语言和工具链
检查代码仓库,确定:
- 主要语言(JS/TS、Python、Rust、Go、Ruby 等)
- 所用的 Linter(ESLint、Ruff、Clippy、golangci-lint、RuboCop 等)
- 测试框架(Vitest、Jest、pytest、cargo test 等)
- 现有自定义规则(以保持风格一致)
如果无法有把握地判断语言或 Linter,请先询问用户要针对哪种语言和 Linter,再生成任何内容。
步骤 2:生成 lint 规则
根据检测到的(或用户指定的)语言,生成相应类型的规则。
对于 JavaScript/TypeScript,使用 AST 访问器模式生成 ESLint 规则,并包含 meta 和 create(context)。
步骤 3:更新 CLAUDE.md
添加注释块。正确格式请参阅 docs/spec-format.md。
步骤 4:验证
运行 npm test,确保新规则及测试通过。
评论
支持 Markdown