Agent Skills
返回列表
💻

Semgrep 自定义规则运行器

开发编程 更新于 2026.08.29

将以下提示词粘贴到你的 AI 对话框中:

请根据 https://skillhub.cn/install/skillhub.md 的指引,将 @user_3c6cb52e/semgrep-custom-rule-runner-2 安装到你的 AI 助手中。

技能介绍

要解决的问题

通用静态分析工具往往预设一套固定规则集,面对团队私有的编码习惯、项目特有的反模式(例如错误的资源关闭顺序、不安全的字符串拼接)时力不从心。直接照搬官方规则要么误报太多,要么覆盖不到你代码里真实存在的坏味道。你需要一种方式,把「这个项目里什么算错」用可维护的 YAML 精确表达出来,并交给 Semgrep 引擎执行。

核心能力

  • 以项目自定义的 YAML 规则文件驱动 semgrep 命令行运行,而不是依赖内置规则集
  • 同时支持 --config(指定规则文件路径)与 --pattern(单条匹配模式)两种调用方式
  • 利用元变量(metavariable)约束匹配条件,让规则可以表达「同名参数必须成对出现」这类结构化断言
  • 面向 Python、JavaScript、Go、Java 四类代码库提供反模式检测示例与适配

工作方式

  1. 在项目仓库内维护一份 YAML 规则文件,每条规则声明目标语言、要匹配的代码模式以及可选的约束条件
  2. 运行时通过 semgrep --config <path> 加载规则文件,引擎对工作区执行扫描
  3. 也可以针对单条模式用 --pattern 快速验证某段写法是否符合预期
  4. 命中规则后,Semgrep 输出文件路径与行号,方便直接跳回对应代码修正

适用边界

  • 该技能只负责「如何组织规则并调用引擎」,不负责替你编写规则内容,检出质量取决于使用者对反模式本身的理解
  • 元变量匹配基于文本结构而非类型推导,涉及跨函数数据流的复杂语义可能漏报
  • 规则文件属于项目资产,需要纳入版本管理并与团队 review 流程配合
  • 上游的语言覆盖、IDE 集成、CI 接入等能力以 Semgrep 官方文档为准,本技能不做额外扩展

使用场景

  • 团队维护 Python 仓库,想把私有的并发反模式写成 YAML 规则并接入 CI 扫描
  • 前端项目里反复出现不安全的 innerHTML 写法,需要用 `--pattern` 快速验证并定位
  • Go 服务代码存在资源未及时关闭的坏味道,想通过 `--config` 批量检出并修正
  • Java 团队要统一空指针检查规范,希望用元变量约束自动扫描全量代码

适合人员

  • 后端工程师,需要在 Go 服务里用自定义规则批量找出资源泄漏的反模式
  • 前端开发者,想在 JavaScript 项目里用 Semgrep 定位不安全的 DOM 操作写法
  • SAST 工具维护者,负责把团队私有规范转成 YAML 规则并接入 CI 扫描
  • 技术负责人,想用 `--pattern` 快速验证一段代码是否符合项目编码标准