mcpField
E
enforce-rules-format

enforce-rules-format

github.com/zernieAgent 工作流15433 次安装2 天前更新
代码仓库

关于 enforce-rules-format

用于审查项目指令文件,并将每条规则归类为强制执行、检查或指导。支持类型化的 v2 规范与手写 v1 文件,修改前会征求确认。

主要功能

  1. 01识别 v1 与 v2 指令格式
  2. 02检查规则执行标注
  3. 03审查 Linter 映射与断言
  4. 04建议修复及迁移方案
  5. 05使用 vigiles 命令验证

适用场景

  1. 01审查 CLAUDE.md 或 AGENTS.md 规则
  2. 02检查 TypeScript 规则规范
  3. 03查找适合交由 Linter 执行的指导

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/zernie/vigiles --skill enforce-rules-format

安装后在 Claude Code 中输入/enforce-rules-format确认已加载。

详细介绍

验证项目指令文件中的每条规则是否都具有适当的执行分类,并修复缺少分类的规则。

指令

步骤 1:检测格式

检查项目使用的格式:

v2(基于规范): 查找 CLAUDE.md.spec.ts 或任何 *.spec.ts 文件。如果找到,则这是 v2 项目,规则必须使用 enforce()、check() 或 guidance()。

v1(手动编写): 查找 CLAUDE.md、AGENTS.md、.cursorrules。如果找到了这些文件但没有规范文件,则这是 v1 项目,规则需要添加 **Enforced by:** 或 **Guidance only** 注释。

步骤 2:验证

对于 v2 规范:

TypeScript 类型系统已能阻止未注释的规则——创建规则时必须调用 enforce()、check() 或 guidance()。因此,请重点检查:

  1. enforce() 规则是否引用了真实的 linter 规则?运行 npx vigiles compile 进行检查。
  2. 是否存在可以改为 enforce() 的指导规则?检查 linter 配置中是否有匹配的规则。
  3. 是否存在可以交由 linter 执行的 check() 断言?建议改用 enforce()。
npx vigiles compile
npx vigiles discover

对于 v1 手动编写的文件:

扫描 ### 标题。每个标题都必须有以下注释之一:

  • **Enforced by:** \linter/rule-name``
  • **Guidance only** — 原因
  • ``

使用汇总表报告缺少注释的情况。

步骤 3:修复问题

对于发现的每个问题:

  1. 检查项目的 linter 配置,查找匹配的规则。
  2. 建议使用 enforce("linter/rule")(v2)或 **Enforced by:** \linter/rule``(v1)。
  3. 如果不存在 linter 规则,则建议使用 guidance()(v2)或 **Guidance only**(v1)。
  4. 进行更改前,先询问用户。
步骤 4:建议迁移

如果项目使用 v1 格式,建议迁移到 v2 规范,以获得类型安全保障:

你的规则可以通过类型安全的规范获益。运行 adopt-spec 技能,将你的 CLAUDE.md 转换为类型化的 .spec.ts 文件。

步骤 5:验证

运行相应的命令:

# v2
npx vigiles compile && npx vigiles check

# validate
npx vigiles check

报告验证结果。

评论

支持 Markdown