用途:把“对列表里每个条目做 X”变成一次受控的并行运行。先发现清单,再让每个条目并发经过相同阶段,可选归并结果,并如实报告——包括被丢弃的部分。收益是墙钟时间(最慢单条链路,而非总和),同时避免静默截断、隐藏失败和写入竞争。
主要能力与流程: 阶段0 内联侦察:在协调者中先用真实命令(如 git diff --name-only、grep -rl、glob)枚举条目,记录身份以便归因和去重,并证明条目相互独立(无输出依赖、写入范围不相交或可隔离);不独立则应视为 DAG 而非 fan-out。 阶段1 定义逐项流水线:为每个条目指定相同阶段序列,默认用流水线(阶段间无屏障),仅当某阶段确实需要全集(跨条目去重/合并、按总数提前退出)时才用屏障。 阶段2 设定上限、隔离与丢弃策略:并发上限(运行时约 min(16, cores−2),重负载可更紧)、写入者用 worktree 隔离、失败是否重试、以及是否刻意限制覆盖并记录规则。 阶段3 运行 fan-out:用 Workflow 工具编写映射脚本,脚本负责循环、上限与记账;条目少时也可用单条消息批量 Agent(...) 调用。 阶段4 归并并如实汇报:覆盖项、失败/阻塞项(具名加原因)、被丢弃项(具名加规则),确保发现数与报告数之间无静默缺口。
使用方式与限制:在 Claude Code 上,只有会话运行于 ultracode 努力级别时并行墙钟收益才成立;否则映射会顺序执行,但覆盖、隔离与如实记账不变,顺序运行不算截断。若吞吐重要且 ultracode 关闭,可提示用户启用(/effort ultracode)后继续。护栏:绝不静默截断、绝不隐藏失败项、写入者无隔离不得并行、依赖项不得当作独立项、终止决策由协调者掌握。参考文件 references/fanout-patterns.md 提供流水线、屏障、map-reduce、逐项 loop-until-dry 及并发上限与聚合配方。