关于 scan
面向开发者的代码库审计技能,可依据另一项技能中的具体标准检查项目。它会将规则整理为检查清单,扫描相关文件,并生成包含问题和修复顺序建议的结构化报告。
主要功能
- 01从技能内容提取可验证标准
- 02按推断范围查找文件
- 03为大型代码库并行扫描
- 04按严重程度报告问题
- 05建议分组修复顺序
适用场景
- 01依据技能标准审计前端或后端代码
- 02查找大型仓库中的规则违规
- 03在修复代码前生成优先级报告
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ continuedev/ skills --skill scan安装后在 Claude Code 中输入/scan确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/fix-team-instructions.mdreport-format.mdteammate-instructions.md详细介绍
代码库扫描
使用并行 Agent 团队,根据另一项技能的标准审查代码库。
工作流
1. 解析参数并加载技能
从传递给此技能的参数中提取技能名称。
- 如果未提供技能名称,列出
.claude/skills/中可用的技能,并询问用户要扫描哪项技能。 - 如果技能不存在,列出可用技能并告知用户。
- 阅读
.claude/skills/<name>/SKILL.md,以及references/和rules/子目录中的所有文件。 - 将技能内容提炼为编号的标准清单:列出具体、可测试的规则。每项标准都应是描述检查内容的单句,并标记为 C1、C2、C3 等。
- 如果技能没有可评估的代码标准(例如,
why这类仅定义工作流、不定义代码模式或规则的技能),告知用户无法对其进行扫描并停止。
2. 查找相关文件
根据技能标准推断文件范围:
- React/前端标准 →
app/**/*.tsx、app/**/*.ts - 后端标准 →
services/**/*.ts - 通用/混合标准 → 上述两者
- CSS/样式标准 →
app/**/*.css、app/**/*.tsx
始终排除:node_modules/、dist/、*.test.*、*.spec.*、**/migrations/**、**/*.d.ts、生成的文件。
统计候选文件数量。如果为零,告知用户并停止。
3. 规划团队组成
按目录子树将文件拆分为多个分块,确保同一文件不会分配给多个 Agent:
| 候选文件数 | 团队成员数 |
|---|---|
| < 100 | 2(少于 20 个文件时可跳过团队) |
| 100–500 | 3 |
| 500+ | 4–5,按顶层目录拆分 |
对于非常小的扫描(少于 20 个文件),跳过团队,直接扫描,然后跳至第 6 步。
4. 启动扫描团队
- 使用名称
scan-<skill-name>调用spawnTeam - 每个分块创建一个
TaskCreate,其中包含:- 主题:
Scan <directory-area> against <skill-name> criteria - 描述:包含完整的标准清单、文件范围(glob 模式)以及
references/teammate-instructions.md中的队友说明
- 主题:
- 将队友作为
general-purposesubagent_type 启动(他们需要 Read、Glob、Grep 和团队通信能力) - 将队友命名为
scanner-1、scanner-2等 - 使用带有
owner的TaskUpdate分配任务
5. 收集并综合结果
等待所有队友完成任务。每位队友都应按结构化格式报告发现:
FINDING: C<n> | SEVERITY | file/path.ts:LINE | Description
收集队友消息中的所有发现。
6. 生成报告
使用 references/report-format.md 中的格式创建 .claude-scan/<skill-name>.md。
关键部分:
- 执行摘要(2–3 句)
- 已评估标准(包含违规数量的表格)
- 按严重性分类的发现(从 Critical 到 Warning,再到 Info 的表格)
- 观察到的模式
- 统计信息
- 建议的修复顺序(按互不重叠的文件组分批)
7. 清理并呈现结果
- 如果启动了团队:向所有队友发送
shutdown_request,然后执行cleanup - 在行内显示摘要:各严重性级别的发现总数、违规最多的标准、扫描范围
- 告知用户完整报告位于
.claude-scan/<skill-name>.md - 询问:“要我启动一个修复团队来处理这些发现吗?”
8. 修复团队(如果用户同意)
- 阅读报告中的“建议的修复顺序”部分
- 将修复分成互不重叠的文件批次
- 使用名称
fix-<skill-name>调用spawnTeam - 为每个批次创建任务——每项任务的描述都包含:
- 要修复的具体违规项(来自报告)
- 相关标准定义
references/fix-team-instructions.md中的说明
- 启动名为
fixer-1、fixer-2等的general-purpose队友(需要 Edit/Write) - 分配任务并等待完成
- 关闭并清理修复团队
- 询问用户是否要重新扫描以验证修复结果
评论
支持 Markdown