К основному содержанию
скилл CX Codex

fan-out — скилл для Claude Code: параллельный перебор решений

Разворачивает несколько субагентов на одну задачу, а потом сводит их результаты в один выбор. Нужен, когда решений два и больше и надо понять, какое выживет.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add haabe/mycelium --skill fan-out -a claude-code
Открыть на GitHub

Что делает fan-out

Скилл берёт список решений из .claude/canvas/opportunities.yml, для каждого находит самое рискованное допущение и запускает отдельного воркера с изолированным worktree. Воркеры возвращают не вердикт, а доказательства с указанием источника. Потом ведущий агент собирает всё вместе, обновляет ICE-оценки в канвасе, прогоняет /mycelium:bias-check и записывает выбор в .claude/harness/decision-log.md.

Есть режим bakeoff: он сравнивает конкурирующие листья одной возможности по структурным scorecard и правилам выбора победителя. Проигравшие уходят в .claude/canvas/archived-solutions.yml со снимком доказательств. Ограничения жёсткие: минимум 2 воркера, максимум 3 листа за один bakeoff, воркеры не пишут в канвас и не двигают diamonds. На Claude попытку субагента записать что-то в .claude/canvas/ или .claude/diamonds/ отбивает guard-state.

Скилл рассчитан на работу внутри фреймворка Mycelium. Поставленный отдельно, он пропустит состояние канваса, theory gates и поведение harness, на которые опирается. Тесты типа human — опросы, fake door, интервью, платный пилот — воркерам недоступны: их регистрируют через /mycelium:handoff, а вердикт заносят через /mycelium:log-evidence. Субагент может только сымитировать поведение людей, а имитация — не результат теста.

Какие задачи решает

  • развернуть несколько субагентов на одну возможность и свести их выводы
  • сравнить конкурирующие решения по доказательствам, а не по ICE-оценке
  • изолировать параллельные эксперименты в отдельных worktree
  • зафиксировать выбор победителя и отправить проигравших в архив
  • проверить совокупные находки на предвзятость перед решением

Примеры запросов агенту

  • Разверни воркеров на два решения из opportunities.yml и сведи результаты
  • Запусти bakeoff по листьям этой возможности и покажи scorecard
  • Собери доказательства воркеров, обнови ICE и прогони /mycelium:bias-check

Как установить fan-out

1Через Skills CLI (Vercel)

npx skills add haabe/mycelium --skill fan-out -a claude-code

2Вручную: положить файлы

~/.claude/skills/fan-out/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/fan-out/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Вопросы о fan-out

Как установить fan-out в Claude Code?

Через npx: npx skills add haabe/mycelium --skill fan-out -a claude-code. После этого файл скилла лежит в ~/.claude/skills/fan-out/SKILL.md.

Что делает fan-out?

Запускает несколько воркеров на параллельное исследование решений, собирает их доказательства и помогает выбрать победителя. Проигравшие листья уходят в архив со снимком доказательств.

Можно ли ставить fan-out отдельно от Mycelium?

Скилл рассчитан на работу внутри фреймворка Mycelium. Без него пропустятся состояние канваса, theory gates и поведение harness, на которые скилл опирается.

Исходный текст

SKILL.md · MIT
---
name: fan-out
description: "Parallel agent orchestration for OST exploration. Fan-out multiple solution explorations, fan-in results to compare and select winners."
metadata:
  instruction_budget: "22"
  framework_dependency: "mycelium"
  framework_dependency_note: "This skill is designed to run within the Mycelium framework (https://github.com/haabe/mycelium). Standalone use will skip the canvas state, theory gates, and harness behavior the skill assumes. Install: /plugin install mycelium@haabe-mycelium."
---

# Fan-Out / Fan-In Orchestration

## When to Use
- OST has 2+ solutions for the same opportunity that need parallel exploration
- Independent delivery work items that can be parallelized
- Multiple research streams needed simultaneously

## Workflow

### 1. Prepare (Lead Agent)
- Read .claude/canvas/opportunities.yml
- Identify solutions needing parallel work
- For each: identify riskiest assumption, design test, and write its `runs_on` (disk | network | human, as in `/mycelium:assumption-test`)
- Register each `human` test (survey, fake door, interviews, paid pilot) through `/mycelium:handoff`. No subagent runs it: a subagent can only simulate what people would do, and a simulated verdict is not a test result (v0.330.0)

### 2. Fan-Out (Spawn Workers, disk and network tests only)
For each solution with a disk or network test:
- Spawn subagent or Agent Team member
- Provide: clear task, read-only canvas context, worktree isolation, and a turn cap where the runtime has one (`maxTurns` in an agent definition). A time bound in the brief is advice: Claude Code has no time limit for a subagent
- Each worker runs independently and reports its evidence with its source, not only a verdict

### 3. Fan-In (Collect Results)
- Collect all worker results, and the `human` tests' verdicts once logged through `/mycelium:log-evidence`
- Update ICE scores in canvas
- Run `/mycelium:bias-check` on combined findings
- Select winner(s) based on evidence
- Log decision in .claude/harness/decision-log.md

### Leaf Bakeoff Mode

When comparing competing OST leaves for the same opportunity (two or more leaves that each have an untested riskiest assumption; no ICE gap is consulted):
- Each worker returns a structured **scorecard** (Four Risks + ICE from the leaf's record, the result of its disk or network test, segment fit); a leaf whose test is `human` gets its scorecard from the lead once the verdict is logged
- Lead agent applies **winner selection rules**, which read the assumption-test verdicts: clear winner (one passes, the others fail), several pass in the same segment (tiebreaker), several pass in different segments (segment split, both advance), both fail (archive and re-evaluate). A leaf whose riskiest assumption failed is archived.
- The ICE total only orders which assumption is tested first. It never decides when to compare or which leaf wins (until 0.320.0 a "clear winner" was a leaf more than 20% ahead on ICE).
- Losers are archived to `.claude/canvas/archived-solutions.yml` with full evidence snapshot

See `${CLAUDE_PLUGIN_ROOT}/orchestration/leaf-bakeoff.md` for the complete bakeoff protocol.

## Rules
- Workers NEVER write to canvas (lead agent does). On Claude Code the guard-state gate refuses a subagent's write to `.claude/canvas/` or `.claude/diamonds/` (v0.330.0); the other rules below are the lead's discipline and no hook checks them
- Workers NEVER progress diamonds
- Workers NEVER run a `human` test
- Lead agent ALWAYS runs bias check on combined results
- Minimum 2 workers for meaningful comparison
- Maximum 3 leaves per bakeoff (respects L3 WIP ceiling)
- Inside an L3 (v0.301.0), the leaves are its set under the L2's target, and a clear winner is the candidate for its `front_runner`; recording it is the human's choice

See `${CLAUDE_PLUGIN_ROOT}/orchestration/agent-teams.md` for full orchestration patterns.

© haabe · MIT · haabe/mycelium

Похожие скиллы

Все скиллы по теме «Настройка агента: память, контекст, субагенты» →
setup-matt-pocock-skills Matt Pocock Скилл настраивает репозиторий для инженерных скиллов Matt Pocock: задаёт трекер задач, метки триажа и расположение доменной документации. Запустите его перед первым использованием остальных скиллов. 1 052 851установок ask-matt Matt Pocock Помогает выбрать подходящий скилл или рабочий поток из набора Matt Pocock. Пригодится, когда непонятно, с чего начать задачу: от идеи до разбора бага. 766 587установок to-tickets Matt Pocock Разбивает план, спецификацию или переписку на небольшие сквозные задачи и отмечает, какие из них блокируют остальные. Пригодится, когда нужно согласовать порядок работы до публикации задач в трекере. 711 230установок writing-plans Jesse Vincent Скилл превращает требования к многошаговой задаче в подробный план реализации до начала работы с кодом. Пригодится, когда исполнителю нужно зафиксировать файлы, интерфейсы и проверки. CX Codex 282 859установок caveman-review JuliusBrussee Пишет замечания к коду одной строкой: место, проблема, исправление. Пригодится, когда ревью диффа или PR надо пройти быстро и без воды. CX Codex +1 411 800установок caveman-compress JuliusBrussee Сжимает CLAUDE.md, списки задач и другие текстовые файлы в краткий формат, сохраняя читаемую резервную копию. CX Codex +1 411 500установок

Из того же набора14

mocked-persona-interview Скилл для тех случаев, когда реальных пользователей опросить нельзя: он проводит интервью с вымышленными персонами, но по жёстким правилам, чтобы те не превратились в машину подтверждения собственных идей. CX Codex +1 ★ 47звёзд репо metrics-detect Сканирует проект и помогает настроить сбор метрик из GitHub, Plausible, Stripe и других источников. Полезен, если проект завёлся до появления такой настройки. CX Codex +1 ★ 47звёзд репо jtbd-map Раскладывает задачи пользователя на функциональную, эмоциональную и социальную составляющие и записывает результат в файл канвы. CX Codex +1 ★ 47звёзд репо friction-log Собирает черновик честного отчёта о том, где работа с Mycelium путала или тормозила. Пользователь правит его сам и решает, отправлять ли. CX Codex +1 ★ 47звёзд репо diamond-render Строит схему решений из .claude/diamonds/active.yml: что уже записано, в каком порядке и что ещё впереди. Пригодится в конце оценки проекта. CX Codex +1 ★ 47звёзд репо define-done Фиксирует Definition of Done для «диамонда» — не список задач, а изменение поведения, которое создаёт ценность. Пригодится, когда проект закрывают по факту выката фичи, а не по результату. CX Codex +1 ★ 47звёзд репо count Считает по вашему репозиторию одну строку: когда появился первый файл кода, сколько решений принято до него, сколько сессий. Никуда ничего не отправляет. CX Codex +1 ★ 47звёзд репо canvas-sync Скилл тянет и коммитит состояние канвы через git, чтобы у всех в команде была одна версия продуктовых знаний. Ставится на старте и в конце сессии. CX Codex +1 ★ 47звёзд репо

Спонсоры проекта

Компании, которые помогают держать аналитику открытой