mcpField
S
scan

scan

github.com/continuedev测试与质量81 次安装
代码仓库

关于 scan

面向开发者的代码库审计技能,可依据另一项技能中的具体标准检查项目。它会将规则整理为检查清单,扫描相关文件,并生成包含问题和修复顺序建议的结构化报告。

主要功能

  1. 01从技能内容提取可验证标准
  2. 02按推断范围查找文件
  3. 03为大型代码库并行扫描
  4. 04按严重程度报告问题
  5. 05建议分组修复顺序

适用场景

  1. 01依据技能标准审计前端或后端代码
  2. 02查找大型仓库中的规则违规
  3. 03在修复代码前生成优先级报告

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/continuedev/skills --skill scan

安装后在 Claude Code 中输入/scan确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
fix-team-instructions.md
report-format.md
teammate-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:

候选文件数团队成员数
< 1002(少于 20 个文件时可跳过团队)
100–5003
500+4–5,按顶层目录拆分

对于非常小的扫描(少于 20 个文件),跳过团队,直接扫描,然后跳至第 6 步。

4. 启动扫描团队
  1. 使用名称 scan-<skill-name> 调用 spawnTeam
  2. 每个分块创建一个 TaskCreate,其中包含:
    • 主题:Scan <directory-area> against <skill-name> criteria
    • 描述:包含完整的标准清单、文件范围(glob 模式)以及 references/teammate-instructions.md 中的队友说明
  3. 将队友作为 general-purpose subagent_type 启动(他们需要 Read、Glob、Grep 和团队通信能力)
  4. 将队友命名为 scanner-1、scanner-2 等
  5. 使用带有 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. 修复团队(如果用户同意)
  1. 阅读报告中的“建议的修复顺序”部分
  2. 将修复分成互不重叠的文件批次
  3. 使用名称 fix-<skill-name> 调用 spawnTeam
  4. 为每个批次创建任务——每项任务的描述都包含:
    • 要修复的具体违规项(来自报告)
    • 相关标准定义
    • references/fix-team-instructions.md 中的说明
  5. 启动名为 fixer-1、fixer-2 等的 general-purpose 队友(需要 Edit/Write)
  6. 分配任务并等待完成
  7. 关闭并清理修复团队
  8. 询问用户是否要重新扫描以验证修复结果

评论

支持 Markdown