Security Check 是一个统一安全扫描编排器,用于对项目运行多种安全扫描器,并将结果归一化为按严重程度分桶的报告。
用途:在项目中一次性调用可用的外部扫描器和内置扫描器,汇总安全发现。
主要能力:检测已安装的扫描器;运行 gitleaks 检测密钥(gitleaks detect --source . --report-format json);使用 osv-scanner 或 trivy 扫描依赖漏洞;使用 semgrep 做静态分析(semgrep --config p/ai-best-practices);内置上下文文件扫描器始终运行,扫描代理上下文文件中的注入模式;内置仓库卫生检查始终运行,检查 .gitignore 完整性和被跟踪的 .env 文件。结果归一化为统一字段:scanner、file_path、line、severity、description、remediation。按 critical/high/medium/low 分桶输出,并给出汇总行。
使用方式:运行前先检查会话(swain-session-check.sh),若状态非 active 则提示。随后执行:REPO_ROOT="$(git rev-parse --show-toplevel 2>/dev/null || pwd)";python3 "$REPO_ROOT/.agents/bin/security_check.py" .;JSON 输出加 --json。退出码:0 无发现,1 有发现,2 出错。
适用场景:项目安全检查、会话启动时的轻量上下文扫描、安全敏感任务的预检、初始化时配置 gitleaks 提交前钩子。
限制:缺失的外部扫描器会被跳过并在报告中给出安装提示,扫描不会因缺少工具而失败;两个内置扫描器始终运行。严重程度分级中,密钥与 .env、指令覆盖为 critical,角色劫持与提权为 high。具体收费标准、支持平台等信息暂未提供。