用途:为 Finance Guru 仓库提供推送前的隐私与安全合规检查,是敏感信息进入 GitHub 前的最后一道防线。分层扫描器会运行已有隐私测试、查找新的泄露模式,并可选接入 git push,使扫描失败时阻止推送。
触发时机:适用于“compliance scan”“is this safe to push”“scan for PII”“secrets check”等说法;在改动 .claude/skills/、scripts/qa/、PRIVACY.md、.gitignore、notebooks/、fin-guru/data/ 后推送前,以及新增凭证、部署 URL、调度器 URL、webhook 或 API key 后主动调用。
七层检查:1) 所有者姓名泄露检测(复用 tests/python/test_no_hardcoded_references.py);2) .gitignore 覆盖集成测试(复用 tests/integration/test_gitignore_protection.sh);3) CRITICAL 密钥模式(AWS/GitHub/Anthropic/OpenAI/Slack/JWT/私钥/Google API);4) HIGH PII 模式(账号、调度器 URL、SSN、所有者邮箱,来自 scripts/qa/pii-replacements.txt 及内置规则);5) 敏感路径中的未跟踪文件;6) PRIVACY.md “never leaves your machine” 与 .gitignore 的一致性;7) 已跟踪文档中的家庭财务数字。私有判定以 references/DataClassification.md 为准。
严重级别门限:CRITICAL 与 HIGH 默认失败并以 exit 1 阻止推送;MEDIUM 仅报告不止损;INFO 仅报告。可用 --fail-on CRITICAL 或 --fail-on INFO 调整。
运行方式:一次性扫描暂存改动用 .claude/skills/compliance-scan/scripts/scan.py --scope staged;扫描即将推送内容用 --scope push;全工作树审计用 --scope tree;自动追加 gitignore 用 --scope tree --remediate gitignore。输出支持 --format text/json/md。安装 pre-push 钩子:.claude/skills/compliance-scan/scripts/install-pre-push.sh,失败会阻止推送,可用 git push --no-verify 一次性绕过。
允许例外:通过 .claude/skills/compliance-scan/allowlist.json 的 path、reason、approved_by、date 记录审计轨迹以跳过扫描。
限制:不清理 git 历史、不扫描依赖 CVE、不轮换密钥;扫描器不会删除、脱敏或重写含密钥文件,处理由人工决定。CRITICAL/HIGH 需人工判断,不自动修复。