# 示例：批量审计多个项目

> 用同一套只读规则检查多个独立目录，通过试跑、产物校验和抽样复核控制批次质量。

Canonical page: /examples/batch-project-audit



<Takeaways>
  <li>
    每个目标目录都必须能独立完成
  </li>

  <li>
    先以并发 1 试跑代表性目录
  </li>

  <li>
    固定产物只能证明文件存在，仍需抽查内容
  </li>
</Takeaways>

这个示例检查多个项目是否具备清晰的开发入口。它只生成报告，不修改项目配置，适合作为第一次批量任务练习。

## 起始状态 [#起始状态]

准备 2–5 个彼此独立、结构具有代表性的项目目录。不要选择需要共享中间结果或必须按顺序处理的目标。

<Checklist title="创建批量项目前">
  <li>
    每个目录都可以由同一条任务独立审计。
  </li>

  <li>
    目录中没有另一个正在执行写操作的任务。
  </li>

  <li>
    已选出一个风险较低的代表性目录用于试跑。
  </li>

  <li>
    报告文件名 

    `vetta-project-audit.md`

     不会覆盖已有内容。
  </li>
</Checklist>

## 配置共享任务 [#配置共享任务]

在 **更多 → 批量任务** 新建项目，第一次只添加一个目录，并发设为 `1`，产物校验填 `vetta-project-audit.md`。

<Plate no="01" title="共享审计任务">
  ```text
  审计当前项目的本地开发入口，只生成 vetta-project-audit.md，不修改其他文件。

  请检查 README、项目清单、工作区配置和已有脚本，并在报告中写明：
  1. 项目类型与主要运行时；
  2. 安装、开发、测试、检查和构建命令；
  3. 每条命令来自哪个文件；
  4. 缺失、冲突或明显过时的说明；
  5. 新贡献者从零开始的最短验证路径；
  6. 无法静态确认、需要人工执行的事项。

  不要安装依赖，不要运行可能产生外部副作用的命令，不要猜测不存在的脚本。
  完成后确认 vetta-project-audit.md 存在，并重新读取它检查六个部分。
  ```
</Plate>

## 先试跑，再扩大批次 [#先试跑再扩大批次]

<Steps>
  <Step>
    ### 检查代表性目录 [#检查代表性目录]

    启动单个任务，进入它的会话，确认读取范围、报告结构和事实来源正确。
  </Step>

  <Step>
    ### 修正共享任务 [#修正共享任务]

    如果项目类型差异导致要求不适用，把它改成明确的条件分支，不要为单个目录写隐藏例外。
  </Step>

  <Step>
    ### 添加其余目录 [#添加其余目录]

    试跑通过后再加入剩余目录。先使用较低并发，观察模型限流和本机负载后再调整。
  </Step>
</Steps>

## 预期产物 [#预期产物]

每个目录顶层各有一份 `vetta-project-audit.md`，报告结构一致，但事实、命令和待确认项来自各自项目。批量看板显示每个子任务的独立状态和会话。

## 验收结果 [#验收结果]

<Checklist title="接受整个批次前">
  <li>
    任务总数与目标目录数一致，没有重复路径。
  </li>

  <li>
    所有完成项都通过产物校验，失败项已进入对应会话定位。
  </li>

  <li>
    随机抽查一个常规项目和一个结构不同的项目。
  </li>

  <li>
    报告中的命令都能在对应配置或 README 中找到。
  </li>

  <li>
    没有项目源码、清单或锁文件被修改。
  </li>
</Checklist>

## 结果不符合时恢复 [#结果不符合时恢复]

单个目录失败时，先打开它的会话查看原因；修正共享提示后使用失败项的重试能力，不要停止并重置整个批次。若大量目录因同一要求失败，暂停扩大并发，回到一个代表性目录重新验证规则。

```text
只修正当前审计报告中的 [具体问题]。保持只读，不修改项目文件。
先核对 [README 或配置文件]，再更新 vetta-project-audit.md，并重新检查六个必需部分。
```

<Callout type="warn" title="停止会清理未完成任务">
  批量任务中的停止与暂停不同，可能重置未完成项的会话、产物和状态。操作前阅读确认对话框。
</Callout>

<Continue>
  <ContinueLink href="/product/batch-tasks/" title="批量任务完整指南" description="理解并发、超时、沙盒、状态和产物规则。" />

  <ContinueLink href="/product/webhook/" title="配置完成通知" description="用 Webhook 获知进度，但仍以实际产物为验收证据。" />

  <ContinueLink href="/examples/review-and-fix-code/" title="先跑通单项目任务" description="需要写入修改时，先在普通会话中验证完整方法。" />
</Continue>
