用途
sniff-fix 是 sniff 技能流程中的一个步骤,用于扫描项目并自动修复安全的问题。它本身不是独立入口,而是由 sniff 技能自身的流程调用。资料说明,user-invocable: false 这一 frontmatter 键仅被 Claude Code 支持,因此在其他 agent 中该文件可能显示为独立命令,但应将其视为 sniff 运行中的一个步骤,而非入口点。
主要能力
该技能使用统一的 sniff MCP 工具,以 mode: "scan" 和项目的 rootDir 获取所有发现项。如果统一工具不可用,则使用旧版 sniff_scan。
对于每个发现项,在安全的前提下进行修复:
- debug-debugger:移除
debugger;行 - debug-console-log:移除
console.log/debug/info行 - placeholder-lorem:向用户标记(需要手动替换)
- hardcoded-localhost:建议使用环境变量
- api-hardcoded-secret:移除密钥并建议使用环境变量
使用方式
该技能由 sniff 流程调用,用户也可通过 /sniff-fix 触发。执行时会先扫描项目,然后自动修复可安全处理的问题。资料强调:不要在未告知用户所做更改的情况下自动修复。修复完成后,需重新运行统一 sniff 的 mode: "scan" 以验证问题已解决。
示例流程:
用户:/sniff-fix
助手:我会扫描并尽可能修复。
发现 8 个问题。自动修复 4 个:
- 从 src/handler.ts:42 移除
debugger - 从 src/api.ts:8 移除
console.log - 从 src/api.ts:15 移除
console.log - 从 src/utils.ts:3 移除
console.debug
4 个问题需要手动处理:
- src/config.ts:8 - 硬编码 localhost URL(替换为环境变量)
- README.md:28 - 指向 ./missing-guide.md 的失效链接
- ...
重新扫描... 剩余 4 个问题(从 8 个减少)。
适用场景
适用于在 sniff 扫描流程中自动清理调试残留(如 debugger、console 调用)以及处理部分可安全修复的问题。
限制
该技能并非独立入口,应作为 sniff 运行中的一步。部分问题(如占位符文本、硬编码 localhost、硬编码密钥)不会自动修复,而是提示用户手动处理或建议使用环境变量。资料未提供关于收费、价格、平台支持范围或具体效果保证的信息。