Help us improve
Share bugs, ideas, or general feedback.
From claude-code-config
Orchestrates deterministic JS workflows for Claude Code subagents with phases, parallelism, and quality patterns. For fan-out to hundreds of agents or codebase-wide audits.
npx claudepluginhub anastasiyaw/claude-code-configHow this skill is triggered — by the user, by Claude, or both
Slash command
/claude-code-config:workflow-orchestrationThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Claude Code **dynamic workflows** - детерминированный JS-скрипт, который оркестрирует
Orchestrates multi-phase, dependent, or resumable runs over provider subagents via JS scripts executed off the main context. Use for fan-out→barrier, per-item pipelines, and loop-until-dry workflows.
Orchestrates multi-agent workflows with parallel pipelines, sync barriers, state tracking, checkpointing, and progress metrics. Use for coordinating 3+ agents across sessions.
Provides multi-agent workflow patterns: parallel dispatch, sequential pipelines, QC gates, and retry loops. Use when architecting systems with multiple agents or processing stages.
Share bugs, ideas, or general feedback.
Claude Code dynamic workflows - детерминированный JS-скрипт, который оркестрирует недетерминированных субагентов. Скрипт = «рельсы» (loop, branching, промежуточные результаты в переменных); агенты = «поезда». Надёжность даёт код вокруг агентов, а не агенты сами. Research preview с 2026-05-28, требует Claude Code v2.1.154+.
Этот skill - наш свод поверх официального API: что платформа уже даёт, и что мы добавляем сами (5 gaps, выявленных практиком с 4 своими оркестраторами).
| Subagent | Skill | Agent Team | Workflow | |
|---|---|---|---|---|
| Что | воркер, спавнится разово | инструкции для Claude | сварм, коллаборация | скрипт, исполняет runtime |
| Кто решает что дальше | Claude, ход за ходом | Claude по промпту | Claude + обмен между агентами | скрипт (детерминизм) |
| Где промежуточные результаты | контекст Claude | контекст Claude | контекст Claude | переменные скрипта |
| Масштаб | пара задач/ход | как subagent | х2-х10 агентов | десятки-сотни, лимит 1000 |
| Прерывание | рестарт хода | рестарт хода | рестарт хода | resumable в той же сессии |
Бери workflow когда: задаче нужно больше агентов, чем удержит один контекст; нужна повторяемая оркестрация как читаемый скрипт; нужен repeatable quality-паттерн (агенты adversarially проверяют находки друг друга перед тем как их вернуть).
3-условный тест (все три ОДНОВРЕМЕННО, иначе custom subagent эффективнее): (1) задача больше одного контекстного окна; (2) стратегия разбиения заранее НЕ известна; (3) качество важнее токен-экономики. Известный фиксированный флоу + нужна cost-предсказуемость → бери subagent, не workflow.
НЕ бери workflow когда: хватает 1-3 субагентов на ход (бери subagent); задача - следование инструкции (skill); нужен интерактивный sign-off в середине (workflow не принимает user input в середине - каждый этап с sign-off = свой workflow).
Opt-in обязателен. Workflow tool вызывается только когда user явно дал согласие
(keyword workflow/workflows в запросе, ultracode on, или прямая просьба). Иначе -
обычные субагенты. Это и наше правило, и поведение платформы.
export const meta = { // ПЕРВЫМ. Pure literal — без переменных,
name: 'my-flow', // вызовов функций, спредов, интерполяции.
description: 'one-liner для диалога approve',
phases: [{ title: 'Scan', detail: '...' }, { title: 'Fix' }], // = phase() вызовам
whenToUse: '...', // опц., в списке /workflows
}
// тело — обычный async JS + примитивы:
phase('Scan') // группа прогресса; agent() ниже в неё
const r = await agent('prompt', {schema: S, label, phase, model, isolation, agentType})
const all = await parallel(items.map(x => () => agent(...))) // БАРЬЕР, ждёт всех
const out = await pipeline(items, stageA, stageB) // fan-out, БЕЗ барьера
const sub = await workflow('deep-research', {question}) // суб-воркфлоу, вложен. 1
log('сообщение пользователю')
agent(prompt, opts?) → без schema возвращает финальный текст (string); со schema
(JSON Schema) форсит StructuredOutput tool и возвращает валидированный объект (модель
ретраит при mismatch); null если user скипнул агента. opts: label, phase (явная
группа - юзать внутри parallel/pipeline, не глобальный phase()), model (опускать -
наследует модель сессии; ставить только когда уверен), isolation:'worktree' (дорого -
только когда агенты параллельно мутируют файлы), agentType ('Explore', 'code-reviewer'...).parallel(thunks) - массив функций ()=>Promise, барьер. Упавший thunk → null
(не реджект). Всегда .filter(Boolean) перед использованием.pipeline(items, ...stages) - каждый item независимо через все стадии, БЕЗ барьера
между ними (item 2 на стадии 3, item 4 ещё на стадии 1). Стадия = (prev, item, idx)=>....
Стадия бросает → item = null, остальные стадии скип. Дефолт для многостадийной работы.budget {total: number|null, spent(), remaining()} - токен-таргет хода. total
null если не задан. Хард-потолок: при достижении agent() бросает.args - значение, переданное в Workflow, дословно (для параметризованных команд).Date.now() / Math.random() / argless new Date() - бросают (ломают
journaling/resume). Таймстемпы - через args; «случайность» - варьируй prompt/label по idx..filter(Boolean) после каждого parallel() и после pipeline() (упавшие = null).acceptEdits и наследуют твой tool allowlist. Перед запуском на
боевом репо это надо понимать: правки файлов авто-одобряются.references/research-findings-2026-05-30.md)1000 agent() lifetime (WorkflowAgentCapError) · concurrency min(16, max(2, cores−2)) ·
скрипт ≤512 KB · per-agent stall 180s (override опцией stallMs, до 5 retry) · nesting 1
уровень · agent() cache key = (schema, model, isolation, agentType) — смена любого =
повторный запуск этого вызова при resume.
seen (всё виденное), НЕ против confirmed -
иначе отклонённые находки возвращаются каждый раунд и не сходится.Масштабируй под запрос: «найди баги» - пара finders, single-vote. «Тщательно проверь» - больше finders, 3-5-голосный adversarial, стадия синтеза.
5 структурных паттернов (детали + safety в references/orchestration-patterns.md): sequential · operator · split-and-merge (наш основной fan-out) · agent teams · headless.
Принцип: начинай проще, чем кажется; усложняй только когда измеримо упёрся.
confidence/needs_human).claude -p / Agent SDK / bypass) - бери ПОСЛЕДНИМ: только после интерактивной
обкатки на выборке входов, с узким allowlist, fail-loud states, checkpoints на необратимое.agent(p, {model:'sonnet'})),
judgment (architecture/security/debug) - дефолт сессии.~/.claude/workflows/EFFECTIVE-AGENTS.md.Платформа НЕ даёт из коробки: retry при падении агента (не schema-mismatch), multisampling, error policy для логических ошибок, файловую observability с карточками, эвалы для самих флоу. Мы закрываем это конвенциями - детали и готовый код в references/lessons-and-gaps.md, аннотированный рабочий шаблон в references/workflow-template.js.
Кратко:
withRetry(fn, n) - обёртка вокруг agent(): при null/throw повторить до n раз,
варьируя label по попытке. Платформенный ретрай - только на schema-mismatch..runs/ workspace - агенты пишут артефакты (карточки находок, промежуточные JSON) в
.runs/<flow>-<runId>/ через Write; runId приходит из args (в скрипте нет Date.now).
Это durable observability сверх /workflows UI и agent-<id>.jsonl журналов.findings/<id>.md с repro/severity/fix. Детерминированная проверка
в скрипте: «число карточек == число подтверждённых находок».fixtures/<flow>/ (репо/датасет с известными
косяками) → прогон флоу → проверка что косяки найдены и оформлены. См. reference.Workflow спавнит до 1000 агентов; расход кратный. Если в один поток лимит уходит за 4 часа,
х7-агентов сделает это за ~35 минут. Дисциплина (см. rules/safety-billing.md Риск 4):
/model (на маленькой модели рутину), оценить число агентов.budget-guard в loop-флоу: while (budget.total && budget.remaining() > 50_000). Без
budget.total-гарда remaining() = Infinity → цикл до 1000-агентного потолка./config.~/.claude/workflows/)/scrape-batch - аудит+диспетч парсинг-флота по сайтам (probe → workers Up →
Drive-sync → вердикт). Под jewelry/fashion проект. Pipeline-кейс./deep-review-flow - competency-review (security/perf/arch/concurrency/...) с
adversarial-верификацией + карточка на косяк. Перенос skill deep-review на рельсы./research-cn-ru - research с обязательными китайскими (Alibaba/Tencent/DeepSeek,
ModelScope) и русскими (Хабр, TG) углами, не только англо-веб. Наше правило ресерча./dataset-validate - pipeline проверки датасета перед обучением (целостность картинок,
манифест, дубликаты). Под ML-pipeline.node --check скрипта прошёл (L1)? meta - pure literal?.runs/ (resume только в той же сессии)?principles/04 Deterministic Orchestration - философская база (рельсы > настроение агента).principles/06 Multi-Agent Decomposition - когда декомпозировать.rules/no-guessing.md Independent Verifier = adversarial verify паттерн.rules/safety-billing.md Риск 4 - токен-дисциплина workflows.agent-harness-design / agents-best-practices - общая агентная архитектура.deep-review - ручной предшественник /deep-review-flow.