用途:运行 OpenTaint 安全流水线中的一个受限阶段,把该阶段的独立工作分派给叶子子代理,并执行其参考文档指定的确定性 plan/join 脚本。所有持久状态位于项目的 .opentaint/ 目录下。
主要能力:按阶段关键字匹配并完整阅读对应参考文档:sources、approx-round、sinks、triage、poc、escalation。先运行 uv run <skill-dir>/scripts/get_status.py --full 获取设置概览,再按参考文档执行。在阶段门或 join 处,或需要剩余工作清单时,运行 uv run <skill-dir>/scripts/get_status.py 获取只读视图。结束时输出一份简洁摘要,统计已完成与终止项并给出一行原因,不要粘贴文件内容。
使用方式:从项目根目录启动叶子子代理,它们继承该工作目录,因此省略 project-root。一次分派只加载一个叶子技能并只执行该技能任务。分派模板:先调用 Skill <skill-name>,再严格按其指令执行,输入为 <id-or-flag>: <value>。把 get_status.py --full 输出的 language 传给每个与语言耦合的叶子。通用规则:信任返回的摘要,仅在摘要无法解决结果时才打开产物;除非确实需要,不要读取叶子技能内容;绝不把多个步骤打包进一次分派;当规则或近似在叶子重试后仍不收敛,加载 escalation.md 处理该项后继续,只有所有剩余项共有的阻塞才停止阶段。
扇出与上限:get_status.py --full 打印全局与重型上限,重型叶子为 create-rule 和 create-dataflow-approximation,不得超过任一上限;叶子被限流时,本阶段剩余时间全局上限减 1。扇出独立单元,槽位释放后分派下一个排队单元。阻塞等待原生代理完成,不要用 Monitor、后台命令或 resume-polling 等待。
限制:不要编写或编辑由脚本或叶子拥有的跟踪状态,仅在所选参考明确分配处直接写入。通过 get_status.py 读取流水线状态,不要用 glob/grep/python3 -c/YAML 扫描 .opentaint/tracking、results 或 *.yaml 手工推导;若其输出无法解决问题,先重跑 get_status.py --full 再打开文件,手工扫描会大幅膨胀上下文。