该技能用于审查 OWASP Cheat Sheet Series 的贡献(拉取请求)。它要求审查严格,但每个发现都必须基于实际获取的证据,不能靠猜测;错误的“看起来没问题”比误报更糟。规则以 AGENTS.md、CONTRIBUTING.md 和 GUIDELINE.md 为准,若与本技能冲突,以这些文件为准。
用途:对 OWASP Cheat Sheet Series 的拉取请求做安全与内容质量审查,覆盖安全正确性、实用性、链接和来源核验、内容重复、语言与结构等维度。
主要能力与流程:
- 先分流。链接垃圾(指向与应用安全无关页面的链接)直接按垃圾关闭;新速查表、大幅重写、新增工具或资源链接需要事先获批的跟踪 issue,缺失时指出流程要求而非深入审查内容;错别字或死链修复不需要 issue。审查深度与改动匹配:单个死链替换或错别字修复只关注链接是否规范、是否支持所在句子、周围文字是否仍通顺;新章节、重写或控制行为变化才做完整五维审查。
- 审查前阅读 cheatsheets/ 或 cheatsheets_draft/ 下每个改动文件的完整当前内容,而非只看 diff 片段;新文件读全文。
- 理解 CI 已检查项与盲区:markdownlint 覆盖全仓库但禁用 MD013、MD040、MD059、MD060;textlint 仅覆盖 cheatsheets/;link-check 只覆盖自合并基点以来 cheatsheets/ 新增的外部链接及站点本地链接和锚点,不覆盖 cheatsheets_draft/、README.md 及已有外链,且对未验证链接(401/403、429、超时、未检查锚点)只列出不失败;pr-scope-check 限制 3 个改动速查表文件和 1500 行净增,作者为 owner/member/collaborator 时跳过;citation-check 只检查 cheatsheets/ 中新增 ## H2 是否含内联链接,不检查链接是否可达或是否支持声明;index-drift-check 检查 Index.md 是否与生成脚本输出一致。检查未运行不能视为干净;绿色不等于正确;链接检查范围有限且不完整。
- 合并或关闭前的工作流审批:获授权时在最后一次推送或描述编辑后运行 npm run check-pr-approvals -- <PR> --repo OWASP/CheatSheetSeries,审计所有修订和重复运行的审批保持;遵循维护者流程,审批前先审查,排队后取消过时运行,验证终态,单独检查最终提交的 CI;保留 fork 审批保护和失败历史,不自动批准未审查代码。
- CI 不执行的预检查:AI 工具使用披露(必须使用 PR 模板、恰好勾选一个披露框、勾选“I have used AI tools”时需提供工具名、版本(如已知)和提示词);贡献路径与 issue 状态(小修复无需 issue;更新现有速查表或新速查表需要已获批 issue,需读 issue 确认 ACK_OBTAINED 而非 ACK_WAITING 且作者在指派人员中);单一主题聚焦(Index.md 杂散改动应丢弃并 rebase,生成器产出的 Index.md 变更则是必需的)。
- 五个审查维度:1)安全正确性:建议是否正确、当前、处于该速查表威胁模型内,是否缺少必要前提;2)实用性:开发者能否据此行动,是否过于抽象或依赖多数读者没有的基础设施;速查表应保持概念性,代码或配置仅在解释安全控制所必需时以最小准确示例出现;3)链接与来源:速查表应以精确标题 ## References 结尾,通常列 2–3 个权威原始来源;需获取并阅读每个新增或改动的来源以确认支持声明和权威性,HTTP 成功只说明可达;判断页面是否支持具体声明、来源是否规范权威、删除是否优于重新指向、周围文字是否仍成立、命名工具是否常见且流行的开源项目;无法获取页面时说明并标记需维护者验证,不得仅凭 URL 推断;4)重复与放置:是否重复本表或其他表已有内容,应在哪个表;相关表之间的协调交叉链接是有意为之,不算重复;5)语言与结构:美式英语、语法、清晰度,标题、代码围栏和列表约定与系列一致,优先具体祈使性指导;语言问题很少单独构成阻塞。
- 汇总:先去重再报告,同一句被多维标记只报一次并给出两个角度;按严重程度排序;必须修复项不设上限,应当修复项最多五条,小问题最多三条,每条一个发现;CLOSE 裁决时先列关闭理由并与其他内容分开;不针对 PR 未触及内容提发现,也不重复作者已用理由回答的问题(语法或错别字 PR 可检查同文件其他错误);不评论 PR 自身统计信息;审查只是输入而非门禁。
适用场景:维护 OWASP Cheat Sheet Series 仓库的拉取请求审查,尤其适合需要判断来源是否支持声明、建议是否正确、示例能否运行、内容是否属于该表及长度是否合适的场合。
限制:需要实际获取并阅读来源才能声称已检查链接;无法读取 issue 时应说明且不得记为合规;CI 未运行时不能推断干净;本技能不替代应用特定的安全审查和测试;代码示例不得被描述为生产就绪或保证安全。