如何使用 Kody 规则
您可以通过两种方式使用 Kody 规则:创建自定义规则
根据团队的确切需求定义规则。Kody 规则可以应用于两个不同的级别:文件级和拉取请求级。两个级别都支持变量、文件引用和 MCP 函数来构建强大的、上下文感知的规则。变量、文件引用和 MCP 函数
规则可以通过变量、文件引用和 MCP 函数访问丰富的上下文。以下是可用的内容: 变量: 变量表示规则执行期间可用的上下文数据。了解可用的内容有助于您通过将变量与 MCP 函数和文件引用相结合来编写更好的规则。-
文件级:
fileDiff- 对正在分析的单个文件所做的特定更改
-
PR 级:
pr_title- 拉取请求的标题pr_description- 拉取请求的描述/正文pr_total_additions- 添加的总行数pr_total_deletions- 删除的总行数pr_total_files- 更改的文件总数pr_total_lines_changed- 修改的总行数pr_files_diff- 整个拉取请求中所有更改的完整差异pr_tags- 与拉取请求关联的标签pr_author- 拉取请求的作者pr_number- 拉取请求编号
-
@file:path/to/file.ts- 引用您正在编辑规则的同一代码库中的文件- 在引用当前代码库中的模板、示例或配置文件时使用
- 示例:
@file:src/services/userService.ts
-
@repo:org/project- 引用另一个代码库中的文件或在代码库上下文外配置规则时- 在跨多个代码库强制一致性或引用共享标准时使用
- 示例:
@repo:team/api-standards
- 当您保存规则时,Kody 会自动识别文件引用
- 引用在后台解析——观察编辑器旁边的状态指示器以确认完成
- 使用准确的 blob 样式路径(例如
src/utils/helpers.ts)而不是占位符 - 文件内容注入规则上下文,允许 Kody 比较、验证或强制模式
- 在文件级和拉取请求级规则中都有效
@MCP 下拉菜单访问 MCP(模型上下文协议)函数以获取其他数据和上下文。您可以使用在工作区的插件页面中连接的任何 MCP 工具或服务器。
可用函数包括:
- 代码库操作:列出代码库、获取代码库文件、内容和语言
- PR 分析:获取拉取请求详细信息、列出提交、分析 PR 文件内容
- 文件内容检索:获取文件内容和差异
- 跨文件验证:跨多个文件执行高级分析
- 自定义集成:您作为插件连接的任何 MCP 服务器(Jira、自定义工具等)
- 使用特定的文件路径而不是通用占位符
- 引用代表团队标准的稳定文件
- 在保存规则之前测试文件引用是否存在以避免解析错误
- 结合变量、文件引用和 MCP 函数进行全面验证
文件级规则
分析单个文件以捕获特定代码文件中的问题。 可用上下文: 请参阅上面的变量、文件引用和 MCP 函数部分了解详情。此级别可用:fileDiff 变量、文件引用(@file、@repo)和 MCP 函数。
您可以做什么:
- 使用
@file或@repo与参考文件进行比较 - 使用 MCP 函数获取相关文件或代码库数据
- 结合变量、文件引用和 MCP 函数来验证模式、检查一致性或强制架构规则
- 规则名称:清楚地定义规则目的
- 文件路径:使用 glob 模式将规则限制为特定文件或目录
- 严重性:设置为严重、高、中等或低
- 详细说明:使用
fileDiff,使用@file/@repo引用文件,并调用 MCP 函数以编写具有丰富上下文的强大规则
src/**/*.ts
⚠️ 严重性: 严重
📝 说明: “使用相等运算符(== 或 !=)如果不匹配确切值,可能导致无限循环。”
❌ 错误示例:
拉取请求级规则
分析整个拉取请求以进行跨文件验证和 PR 特定要求。 可用上下文: 请参阅上面的变量、文件引用和 MCP 函数部分了解详情。此级别可用:PR 变量(pr_title、pr_description、pr_files_diff 等)、文件引用(@file、@repo)和 MCP 函数。
您可以做什么:
- 使用
pr_title、pr_description、pr_author等变量验证 PR 元数据 - 使用
@file或@repo引用配置文件或模板 - 使用 MCP 函数获取其他上下文(例如,检查相关文件是否存在,根据代码库结构验证)
- 结合 PR 变量、文件引用和 MCP 函数来创建全面的验证规则
- 每个服务文件必须有相应的测试文件
- PR 描述必须完整,清楚地说明添加或删除了什么
- 在控制器中创建新路由时,必须在 routes.json 中注册
- 使用
pr_total_lines_changed标记超过大小限制的 PR - 结合
pr_files_diff和 MCP 函数来验证跨文件依赖关系 - 引用
@file:routes.json以确保注册新路由 - 使用 MCP 函数检查修改的服务文件是否存在测试文件
编写强大的规则
结合变量、MCP 函数和文件引用来创建具有丰富上下文的复杂规则。以下是每个级别可用的内容: 文件级组合:- 使用
fileDiff分析文件中的特定更改 - 使用
@file:path/to/template.ts引用相关文件以与模式进行比较 - 调用 MCP 函数以获取代码库数据或检查相关文件是否存在
- 示例:“分析
fileDiff并确保它遵循@file:src/utils/example.ts中的模式。使用 MCP 验证相关测试文件是否存在。”
- 使用 PR 变量(
pr_title、pr_description、pr_files_diff等)验证 PR 元数据和大小 - 使用
@file:config.json或@repo:org/shared-config引用配置文件以强制一致性 - 调用 MCP 函数执行跨文件验证、检查代码库结构或获取提交历史
- 示例:“如果
pr_files_diff包含新路由,验证它们是否在@file:routes.json中注册。使用 MCP 检查所有修改的服务文件是否存在相应的测试文件。”
- 使用
@repo:org/project引用其他代码库中的文件以保持项目之间的一致性 - 与 MCP 函数结合以根据共享标准或模板进行验证
- 示例:“确保 API 端点遵循
@repo:org/api-standards中定义的模式。使用 MCP 获取最新的标准文档。”
- MCP 函数在规则评估期间执行,使规则能够适应当前代码库状态
- 获取有关文件、提交或代码库结构的实时数据
- 示例:“使用 MCP 检查当前代码库结构并确保新文件遵循现有目录模式。”
从规则库导入
立即利用经过验证的最佳实践:- 导航到 Kodus 仪表板中的发现规则。
- 按严重性、语言或标签过滤规则。
- 一键导入和激活规则。
- 安全性:“禁止使用不安全的 MD5 哈希。”
- 可维护性:“将 React 组件限制为少于 150 行。“