净化报告: {project-name}

原创2026-09-09 18:01:511,717 阅读
文章标签:人工智能AI 技能AI 插件AI 评测Agent 评测MCP Clients开发工具

净化报告: {project-name}

日期: {date} 审计人: opensource-sanitizer v1.0.0 判定: PASS | FAIL | PASS WITH WARNINGS

摘要

类别 状态 发现
密钥 PASS/FAIL {N} 条发现
PII PASS/FAIL {N} 条发现
内部引用 PASS/FAIL {N} 条发现
危险文件 PASS/FAIL {N} 条发现
配置完整性 PASS/WARN {N} 条发现
git 历史 PASS/FAIL {N} 条发现

关键发现(发布前必须修复)

  1. [SECRETS] src/config.py:42 — 硬编码数据库密码: DB_P...(截断)
  2. [INTERNAL] docker-compose.yml:15 — 引用内部域名

警告(发布前应复核)

  1. [CONFIG] src/app.py:8 — 端口 8080 硬编码,应改为可配置

.env.example 审计

  • 代码中存在但 .env.example 中没有的变量: {列表}
  • .env.example 中存在但代码中没有的变量: {列表}

建议

{若 FAIL: "请修复 {N} 条关键发现后重新运行净化器。"} {若 PASS: "项目已具备开源发布条件,可进入打包阶段。"} {若 WARNINGS: "项目通过关键检查,发布前请复核 {N} 条警告。"}


### 3.1 判定语义

| 判定 | 触发条件 | 处置 |
|------|----------|------|
| **FAIL** | 任一类别出现 1 条 CRITICAL 发现 | 必须修复全部关键发现后重跑;[流水线技能](https://gitcode.com/GitHub_Trending/ev/ECC/blob/22e8cf01d0b54719b3a49002fab2ccbda4ff5b9e/skills/opensource-pipeline/SKILL.md?utm_source=gitcode_repo_files)规定最多自动重试 3 次,3 次仍 FAIL 则交由用户手动修复 |
| **PASS WITH WARNINGS** | 仅有 WARNING 级发现 | 项目通过关键检查,发布前由用户决定是否处理警告 |
| **PASS** | 零发现 | 项目干净,可进入第三阶段 Packager |

报告中的关键发现格式为 `[类别] 文件:行号 — 描述`,且**密钥值必须截断**(只显示前 4 个字符 + `...`),例如 `DB_P...`。这是安全底线:报告本身也不能泄露完整密钥。

## 四、在流水线中的完整用法

### 4.1 触发方式

[opensource-pipeline 技能](https://gitcode.com/GitHub_Trending/ev/ECC/blob/22e8cf01d0b54719b3a49002fab2ccbda4ff5b9e/skills/opensource-pipeline/SKILL.md?utm_source=gitcode_repo_files) 提供两条与 Sanitizer 相关的命令路径:

- `/opensource fork PROJECT`:完整流水线(fork + sanitize + package),其中 Step 4 以 `subagent_type="opensource-sanitizer"` 生成子代理,提示词要求"运行全部 6 类扫描,生成 SANITIZATION_REPORT.md"
- `/opensource verify PROJECT`:独立运行净化器——路径解析规则为:包含 `/` 视为路径,否则依次查找 `$HOME/opensource-staging/PROJECT` → `$HOME/PROJECT` → 当前目录,然后对解析结果运行全部 6 类扫描

### 4.2 典型调用示例

原文档给出的参考输入:

> 输入: `Verify project: /home/user/opensource-staging/my-api`
> 动作: 对 47 个文件执行全部 6 类扫描,检查 git 日志(1 次提交),验证 `.env.example` 覆盖代码中发现的 5 个变量
> 输出: `SANITIZATION_REPORT.md` — PASS WITH WARNINGS(README 中 1 处硬编码端口)

### 4.3 流水线中的交接与重试

在 [流水线技能](https://gitcode.com/GitHub_Trending/ev/ECC/blob/22e8cf01d0b54719b3a49002fab2ccbda4ff5b9e/skills/opensource-pipeline/SKILL.md?utm_source=gitcode_repo_files) 中,Sanitizer 完成后:

- **若 FAIL**:向用户展示发现,询问"修复后重新扫描,还是中止?";修复后最多重跑 3 次,之后必须人工介入
- **若 PASS 或 PASS WITH WARNINGS**:进入 Step 5 由 Packager 生成 CLAUDE.md、setup.sh、README、LICENSE 等(见 [opensource-packager 代理](https://gitcode.com/GitHub_Trending/ev/ECC/blob/22e8cf01d0b54719b3a49002fab2ccbda4ff5b9e/agents/opensource-packager.md?utm_source=gitcode_repo_files))

整个流水线的暂存目录布局如下:

$HOME/opensource-staging/ my-project/ FORK_REPORT.md # 来自 Forker SANITIZATION_REPORT.md # 来自 Sanitizer CLAUDE.md # 来自 Packager setup.sh # 来自 Packager README.md # 来自 Packager .env.example # 来自 Forker ... # 已净化的项目文件

登录后查看全文
ECC