大模型应用
从 Trail of Bits Testing…
当你需要根据 appsec.guide 手册内容创建或刷新 Claude Code 技能(SKILL.md)时使用。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 38/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 55/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 59/100 ×0.15
适用场景
从 Trail of Bits Test特定
解决思路
- 定位手册仓库:依次检查 ./testing-handbook、../testing-handbook、~/testing-handbook,找不到就询问用户,最后才从 https://github.com/trailofbits/testing-handbook 克隆。
- Phase 0 设置:确认手册路径。
- Phase 1 发现:扫描手册各章节,按章节到技能类型的映射分类(/static-analysis/[tool]/ → Tool Skill;/fuzzing/[lang]/[fuzzer]/ → Fuzzer Skill;/fuzzing/techniques/ → Technique Skill;/crypto/[tool]/ → Domain Skill;/web/[tool]/ → Tool Skill)。
- 识别技能候选信号:带 bookCollapseSection: true 的 _index.md 表示主要工具/主题;编号文件(00-、10-、20-)表示结构化内容;techniques/ 子节表示方法论内容;99-resources.md 或 91-resources.md 表示有外部链接。
- 应用排除信号:frontmatter 中 draft: true、空目录、模板/占位文件、纯 GUI 工具(如 web/burp/)都跳过。
- Phase 2 规划:生成计划(新增技能、更新项),并在生成前呈现给用户。
- Phase 3 两遍生成 Pass 1(并行):为每个技能启动一个 agent,仅生成内容,除 Related Skills 外的所有章节都写,Related Skills 留占位符 `## Related Skills\n\n<!-- PASS2: populate after all skills exist -->`,输出报告标记 references: DEFERRED。
- Phase 3 两遍生成 Pass 2(串行):等所有 Pass 1 agent 完成后,用 `ls -d skills/*/SKILL.md` 收集所有技能名,依据 discovery 中的 related_sections、技能类型关系(fuzzer → technique)和内容中的显式提及确定关联技能,编辑每个 SKILL.md 替换占位符为真实链接,并校验交叉引用无断链。
- 按技能类型套用对应模板:Tool → templates/tool-skill.md;Fuzzer → templates/fuzzer-skill.md;Technique → templates/technique-skill.md;Domain → templates/domain-skill.md。
- 处理 agent 失败:崩溃(无输出报告)→ 用相同输入重跑单个 agent;校验失败 → 查看 gaps/warnings,手动修补或重跑;类型错误 → 用修正后的 type 参数重跑;内容缺失 → 轻微则接受,否则补充 related_sections;Pass 2 断链 → 检查技能是否被跳过并更新引用。不要因单个 agent 失败而重跑整个并行批次。
- 单技能重新生成:重新读取手册章节,套用相应模板,写入 skills/{skill-name}/SKILL.md(覆盖),仅对该技能重跑 Pass 2 更新交叉引用,再运行 `uv run scripts/validate-skills.py --skill {skill-name}`。
- Phase 4 测试:运行 `uv run scripts/validate-skills.py`,按 testing.md 做激活测试,修复问题。
- Phase 5 收尾:更新主 README.md,把生成的技能加入 "Available Plugins" 表格(紧跟 testing-handbook-skills 之后,作者写纯文本 testing-handbook-generator,不加链接)。
- 更新 README.md 的 Skills Cross-Reference:读取每个生成技能的 ## Related Skills 章节,按技能类型(Fuzzers、Techniques、Tools、Domain)分组构建 mermaid 图,主技术依赖用实线箭头 `-->`,替代工具建议用虚线箭头 `-.->`,替换原有 mermaid 代码块,再用 validate-skills.py 校验引用的技能都存在。
- 自我改进:记录生成中遇到的问题,识别导致问题的模式,更新 SKILL.md(工作流、决策树、快速参考)、templates/*.md、discovery.md、testing.md,并在 commit message 中记录改进。
- 遵守范围限制:只修改 plugins/testing-handbook-skills/skills/[skill-name]/*、plugins/testing-handbook-skills/skills/testing-handbook-generator/* 和仓库根 README.md;绝不修改或分析其他插件(如 plugins/property-based-testing/、plugins/static-analysis/)及其他技能。
- 生成时保留代码块原样,不直接包含手册图片,不抓取视频 URL(YouTube、Vimeo 只取标题),非视频外部资源用 WebFetch 获取,每个 SKILL.md 不超过 500 行。
- 交付前完成质量清单:所有章节已分析、计划已呈现给用户、每个技能一个并行 agent、模板正确套用、validator 通过、激活测试通过、主 README.md 已更新、Skills Cross-Reference 图已更新、自我改进笔记已记录、已向用户发送摘要。
适用边界 · 注意事项
- 不要用于回答一般安全测试问题(应使用生成的技能)。
- 不要用于非手册内容的技能创建。
- 不要生成未经用户批准的计划,也不要跳过校验步骤。