一、基本信息
| 项目 | 内容 | 数据来源 |
|---|---|---|
| 正式名称 | semgrep-rule-creator(合集仓库子技能,完整标识见下) | 合集仓库子目录名 |
| 所属合集仓库 | trailofbits/skills(Trail of Bits Skills Marketplace,官方安全技能市场) | GitHub API |
| 作者/维护者 | Maciej Domanski(Trail of Bits) | 插件 plugin.json |
| 来源链接 | https://github.com/trailofbits/skills/tree/main/plugins/semgrep-rule-creator | — |
| 许可证 | CC-BY-SA-4.0(署名-相同方式共享,仓库根目录 LICENSE 确认) | GitHub API |
| 合集仓库整体 Stars/Forks | 6,123 / 539(注:该数字属整个技能市场,不代表本技能自身热度,仅供了解所属市场规模) | GitHub API |
| 该技能自身活跃度 | 触及该插件目录的提交独立可查,最近一次为 2026-06-10(修复文档死链);命中该目录名的 PR 9 个、Issue 1 个,在该市场的同类安全技能中最高 | GitHub API(按路径过滤提交历史 + Search API) |
| 插件版本 | v1.2.2 | plugin.json |
| 安装方式 | Claude Code / Codex 插件市场一条命令安装(见第十章) | 官方 README |
二、功能介绍与亮点
semgrep-rule-creator 教 Agent 像 Trail of Bits 的安全工程师一样写 Semgrep 规则,而不是简单地“生成一段 YAML”。核心能力:
- 测试先行工作流:强制流程为“分析问题 → 先写测试用例 → 分析 AST 结构 → 写规则 → 迭代到 100% 测试通过 → 最后才优化”,未跑通
semgrep --test的规则不算完成 - 污点追踪优先:面对用户输入到危险函数(sink)的数据流类漏洞,优先用 taint mode 而非简单模式匹配,显著降低误报——SKILL.md 用
eval($X)举例说明两者差距 - 反模式与“理性化陷阱”清单:把“看起来匹配就够了”“污点模式太复杂懒得用”等常见偷懒心态逐条列出并给出应对方法,是一份可执行的规则质量检查表
- 强制阅读官方文档:写规则前要求通过 WebFetch 拉取 7 篇 Semgrep 官方文档(规则语法、模式语法、测试、污点分析等)及 Trail of Bits 内部测试手册片段,避免用过时语法
- 亮点:出自安全审计机构 Trail of Bits 官方技能市场(35+ skills,GitHub 6,123 星),配套
/semgrep-rule斜杠命令触发,本目录近 5 周内仍有提交,维护活跃
三、适用场景
固定分类:安全与合规
适用于需要为自有代码库编写定制化检测规则的场景:安全工程师/AppSec 团队为内部框架、私有 API 编写现成规则库不覆盖的漏洞检测;开源维护者把“历史上出现过的 bug 模式”固化为回归检测规则,防止同类问题复发;希望系统学习 Semgrep taint mode 与 pattern matching 区别的开发者。不适合“只想跑现成规则集扫描代码库”的场景(见第十一章)。
四、跨 Agent 兼容性
| Agent | 结论 | 依据 |
|---|---|---|
| Claude Code | 原生支持 | 官方安装方式即 Claude Code 插件市场机制(.claude-plugin/plugin.json + /plugin install),SKILL.md 遵循 Claude Agent Skills 标准格式 |
| Codex | 原生支持 | 仓库 AGENTS.md 明确写明“This repository uses Claude plugin marketplace metadata as the canonical source for both Claude Code and Codex. Codex supports .claude-plugin/marketplace.json and plugins/<name>/.claude-plugin/plugin.json directly”(已抓取原文验证) |
| OpenClaw | 未验证 | 已抓取材料未提及 OpenClaw 支持 |
| Hermes Agent | 未验证 | 已抓取材料未提及 Hermes 支持 |
五、推荐理由
多数用户遇到“帮我写个 Semgrep 规则”的需求时,会直接让模型裸写一段 YAML——看起来匹配了就以为完事,实际上误报/漏报要等到规则上线跑批时才暴露。semgrep-rule-creator 把 Trail of Bits 内部的规则编写纪律固化成流程:先写测试(含安全用例与危险用例)、再分析 AST、再写规则、不通过测试不能提交、优化放在最后一步。对已经在用 Claude Code/Codex 但从未系统写过 Semgrep 规则的初中级用户,这是把“能跑”和“好用”之间的差距补上的少数开箱工具,且由业界公认的安全审计机构官方维护,可信度有保障。
六、评分
| 维度 | 分数 | 说明 |
|---|---|---|
| 受欢迎程度 | 8 | 所属市场由 Trail of Bits(一线安全研究机构)官方出品持续维护;该子技能自身命中 9 个 PR + 1 个 Issue,在该市场的同类安全技能中活跃度最高;其在 mcpmarket、lobehub、cldkit、explainx.ai、claudemarketplaces、awesomeclaudeplugins 等至少 5 个独立第三方技能目录站点的收录列表中出现(仅确认收录事实,无具体数字可查)。合集仓库的 6,123 Stars 属整个市场,不代表本技能自身热度 |
| 可用性 | 8 | 插件本身一条命令通过 Claude Code/Codex 插件市场安装;前置依赖仅为免费开源的 Semgrep CLI(pip install semgrep 或 brew install semgrep),无付费依赖;文档完整(含 Quick Start、反模式示例、7 步工作流清单、Quick Reference),最近一次专项提交在 5 周内,维护活跃 |
| 安全性 | 8 | 见下方安全检查清单 |
| 综合评分 | 8.0 | 三项均值 |
安全检查清单:
| 检查项 | 结果 |
|---|---|
| ① Shell 命令与权限范围 | allowed-tools 声明 Bash/Read/Write/Edit/Glob/Grep/WebFetch;Bash 用途明确限定于本地执行 semgrep --test 等测试命令,范围清晰可审计 |
| ② 运行时联网外发 | WebFetch 仅用于拉取 semgrep-docs 官方仓库与 Trail of Bits Testing Handbook(均为公开 raw.githubusercontent.com 文档链接),未发现数据外发行为 |
| ③ API Key/凭据 | 不需要任何 API Key 或登录凭据,semgrep --test 本地即可运行 |
| ④ 可疑指令排查 | 已完整抓取并逐段阅读 SKILL.md 全文及插件 README,未发现 prompt injection 或隐藏指令迹象 |
| ⑤ 作者/组织信誉 | Trail of Bits——知名安全研究与审计公司,插件作者具名(Maciej Domanski) |
| ⑥ License | CC-BY-SA-4.0,仓库根目录 LICENSE 明确声明;提示:该协议本为知识共享类协议,用于代码仓库较少见,衍生分发需遵守“相同方式共享”条款,与常见的 MIT/Apache-2.0 有差异 |
| ⑦ 最近维护 | 该目录最近一次专项提交为 2026-06-10(约 5 周前),市场仓库整体最近推送 2026-07-07,维护活跃 |
因存在 Bash 执行能力(范围明确、可审计)且 License 类型较少见需用户留意,未达“纯提示词无代码执行/官方出品完全可审计”的 9-10 档,定为 8 分(“有代码执行但范围明确、可审计;无外联或外联目标透明;License 清晰”档位)。
七、跟同类 Skills 相比的优势
| 对比对象 | 定位 | 与本 skill 的差异 |
|---|---|---|
| static-analysis-trailofbits-skills(同市场) | 整合 CodeQL/Semgrep/SARIF,运行规则化扫描并汇总发现 | 面向“用现成规则集扫代码库”;本 skill 面向“没有现成规则、需要自己写一条新规则“,两者互补而非替代——写完规则后可交给 static-analysis 批量跑 |
| claude-code-owasp | OWASP Top10/ASVS 等标准速查参考文档 | 纯只读清单,只给“应该防什么”,不产出可执行的检测规则;本 skill 直接产出可跑、可测试的 Semgrep YAML |
| CodeQL 自定义查询(GitHub 官方) | 语义代码分析框架,编写自定义安全查询 | QL 是专用查询语言,学习曲线更陡,且无 AI 引导的测试先行工作流;本 skill 聚焦声明式 Semgrep YAML,上手更快,覆盖语言更广 |
| 手写 Semgrep 规则(无 AI 引导,仅查官方文档) | 依赖开发者自行试错 | 缺少结构化的“测试先行+AST 分析+反模式检查”纪律,误报/漏报排查耗时更长;本 skill 把这些经验固化为默认强制流程 |
核心差异化:同类安全技能普遍聚焦“运行扫描”或“提供检查清单”,本 skill 是其中少见的专注于帮用户从零写出一条经过测试验证的自定义规则的方案,与同市场的 static-analysis 形成“先写规则、再批量运行”的组合。
八、用户评价
该技能目前尚无专门针对它的独立第三方评价。安全社区周刊 tl;dr sec 报道过 Trail of Bits“新增 10 个技能”这一批次,点名提及 seatbelt-sandboxer、supply-chain-risk-auditor 等,但未单独点评 semgrep-rule-creator。可参考的客观信号是第六章列出的多个第三方技能目录站点收录事实。
九、其他补充
该插件与同市场的 static-analysis、differential-review、agentic-actions-auditor 等均可组合使用,覆盖“写规则—跑扫描—人工复核”的完整链路。仓库同时维护面向 Claude Code 的 .claude-plugin/plugin.json 与面向 Codex 的兼容元数据,二者共用同一份 marketplace 清单。
十、安装使用方式
Claude Code 插件市场(推荐):
/plugin marketplace add trailofbits/skills
/plugin install trailofbits/skills/plugins/semgrep-rule-creator
Codex:
codex plugin marketplace add trailofbits/skills
codex plugin add semgrep-rule-creator@trailofbits
安装后注意事项: 插件本身安装无需重启;使用前需先在本机装好 Semgrep CLI(semgrep --version 验证是否成功),免费开源即可满足全部功能。就绪后直接提出“帮我写一条检测 XX 漏洞模式的 Semgrep 规则”,或使用内置的 /semgrep-rule 斜杠命令触发标准工作流;技能会引导先写测试用例、再迭代规则,直至 semgrep --test 全部通过。
十一、注意事项
- 面向“写新规则”而非“跑扫描”:若只需要运行现成规则集,应使用 Semgrep 官方规则库或本市场的 static-analysis 技能,而非本 skill——SKILL.md 原文明确写出“Do NOT use this skill for: Running existing Semgrep rulesets / General static analysis without custom rules”;
- 需要用户预先自行安装 Semgrep CLI,属“需少量配置”而非“零配置复制即用”;
- 工作流要求联网通过 WebFetch 拉取 7 篇官方文档,若所处网络无法访问 raw.githubusercontent.com(如部分企业内网),可能影响完整体验;
- License 为 CC-BY-SA-4.0,企业二次分发衍生代码前建议法务确认“相同方式共享”条款的适用范围;
- 该技能是“合集仓库中的一个子技能”,来源链接与安装命令务必使用本报告给出的子目录级路径,而非仓库根链接;
- 除 Claude Code / Codex 外,OpenClaw、Hermes Agent 的兼容性未获得可验证材料,如需在其他 Agent 环境使用请自行测试。