>- Фейбл руки-агенты — ручной режим оркестрации, где Fable не пишет код, а пишет спеки в тела GH issues укладка файлов — Codex; разведка, чтение и скауты — Grok-воркеры через Orca. Вызывается пользователем явно, не моделью.
npx skills add https://github.com/serejaris/personal-corp-skills --skill fable-ruki-agenty
Токены Fable — самый дорогой ресурс сессии (лимиты урезаны). Поэтому Fable делает только то, что не может сделать рука дешевле: думает, резолвит развилки и пишет спеки. Всё остальное делают руки: кодинг, код-ревью, gh-операции, CLI-механика, DoD-верификация и укладка файлов — Codex (gpt-5.5, плагин codex, § Codex-руки); разведка, чтение и скауты — Grok-воркеры через Orca (§ Orca-руки). Каждый tool call, который могла сделать рука, — сожжённый лимит.
Sonnet и Haiku не использовать ни для каких ролей (решение founder 04.07.2026).
Граница проходит по суждению, а не по стоимости токена: субагентам уходят глаза и руки, но никогда — голова. Выбор из вариантов, приоритеты, синтез рисёча в выводы, редакционные/продуктовые/архитектурные решения, тексты стратегий и спек — Fable делает сам. Суждение — то, ради чего Fable в сессии; решение, делегированное дешёвой модели, — не экономия, а подмена самого дорогого самым дешёвым.
gh issue edit/view, CLI-механика и коммиты уходят в Codex/форвардер. Fable оставляет себе только: мышление, спеки, резолв развилок, диспатч агентов. Codex-задача диспатчится через Agent tool (codex:codex-rescue); Bash у Fable не появляется нигде.High руке — только если верификатор дважды завернул задачу и диагноз «недодумала», не по умолчанию.
Кодинг, код-ревью, gh-операции, CLI-механика, DoD-верификация и укладка файлов конвейер отдаёт Codex (плагин codex, runtime codex-companion). Модель — --model gpt-5.5, всегда явно (не полагаться на дефолт ~/.codex/config.toml). Разведка, чтение и скауты уходят Grok-воркерам через Orca.
gh-операции выполняет форвардер своим Bash (сеть в сандбоксе Codex закрыта — инцидент 04.07); Codex — только файлы и коммиты.
Прекондишн перед первым Codex-диспатчем конвейера — форвардер прогоняет:
CODEX_PLUGIN="$(printf '%s\n' "$HOME"/.claude/plugins/cache/openai-codex/codex/*/ | sort -V | tail -1)"
node "${CODEX_PLUGIN%/}/scripts/codex-companion.mjs" setup --json # ждать ready:true и auth.loggedIn:true
Не ready — стоп конвейера, пользователю одной строкой: нужен /codex:setup (установка/логин — его решение).
Диспатч через Agent tool: subagent_type: "codex:codex-rescue" (форвардер тонкий, мозги — Codex). Текст задачи = маршрутные флаги + конверт из § Диспатч.
--wait --write --model gpt-5.5 — всегда. Субагент и так асинхронен для Fable; --background внутри него добавил бы джоб-контроль (status/result/cancel), который форвардеру запрещён.--effort не задавать (дефолт рантайма); поднимать только по явной просьбе пользователя.codex:codex-rescue с --resume в тексте: продолжается тот же Codex-тред, контекст правок сохранён. Свежий исполнитель (ступень 3 лестницы приёмки) — --fresh.--cwd <путь-к-ворктри> в тексте задачи (парсер companion его принимает, в printed usage не показан).Нативный ревьюер Codex, не task. Запускает форвардер одним Bash-вызовом и возвращает stdout как есть:
node "${CODEX_PLUGIN%/}/scripts/codex-companion.mjs" adversarial-review --wait \
--base <стартовый SHA конвейера> --scope branch --model gpt-5.5 "<оси проверки от Fable>"
Вердикты триажит Fable. Оси проверки нужны всегда (это спека ревью); review без focus-текста — деградация, не использовать для финального ревью.
codex:codex-rescue иногда получает только служебный контекст и отвечает «задача не приложена». Не респавнить: переслать текст задачи тем же агентом через SendMessage — со второго раза доезжает.--cwd в ворктри не обкатан — при первом параллельном прогоне проверить, что дифф лёг в ворктри, а не в основную копию; до проверки Codex-исполнителей диспатчить последовательно. Правило пересечения файлов из § Диспатч остаётся в силе.Второй канал исполнителей: видимые терминалы Orca с внешними агентами; разведка, чтение и скауты идут Grok-воркерам через Orca. Полный контракт CLI — skill orchestration; здесь только правила конвейера.
Когда Orca, а не codex-companion: (а) разведка, чтение или скаут; (б) воркер — внешний агент в терминале; (в) пользователь хочет видеть работу воркеров вживую (стрим). Дефолт кодинга остаётся Codex через codex:codex-rescue.
Как: orca CLI гоняет форвардер (Bash у Fable не появляется): terminal create --command "<agent-cli>" --title "worker: <задача>" (новый терминал под воркера) → terminal wait --for tui-idle → task-create --spec → dispatch --task … --to <term> --inject → check --wait --types worker_done,escalation,decision_gate → отчёт. Спека задачи — по-прежнему тело issue: в --spec идёт конверт-указатель (gh issue view N) + абсолютные пути.
Правила:
terminal create, титул с префиксом worker:. Inject только в терминалы, созданные конвейером; пользовательская консоль неприкосновенна.--spec/send --body дословно. Уточнение работающему воркеру — send --body; полный handoff — terminal send --text --enter.worker_done ≠ приёмка: вердикт воркера не заменяет Codex-верификатора; лестница провалов из § Приёмка действует. Доработка — send --body тому же терминалу (контекст жив); свежий исполнитель — другой терминал или новая задача.escalation/decision_gate) резолвит Fable как развилки: решение + строка обоснования, ответ через orca-руку.check --wait без события ≠ провал: рука делает terminal read и возвращает факт (работает / застрял / умер).разведка → спека в теле issue → диспатч указателем → верификатор → приёмка → следующая
(скауты (пишет Fable) (исполнитель — (Codex,
Grok/Orca) Codex|Orca) fresh context)
Один скаут на бэклог, один на карту кодовой базы. Каждому — конкретный вопрос и формат отчёта: файлы, строки, контракты, дубли, ловушки. Ничего не менять. Все скауты — Grok-воркеры через Orca.
Отчёт скаута — факты с координатами. Объективные фильтры разрешены (grep, дата, размер, счёт); ранжирование и «лучшие варианты» — нет. Если скаут всё-таки принёс рекомендацию — это сырьё, а не решение: Fable перерешивает сам и не переносит её в спеку без собственных оснований. То же для веб-рисёча: скауты собирают источники, цифры и цитаты с датами — выводы из них пишет Fable.
Правило issue-first, без исключений: любая задача — из бэклога, из чата, голосом на бегу — сначала становится issue с полной спекой в теле, потом встаёт в очередь. Ответ пользователю одной строкой: «завёл #8, в конвейере после #3».
Спека — это полностью переписанное тело issue: Fable пишет текст спеки, gh-форвардер кладёт его в issue (gh issue edit N --body) и там же ставит issue статус «In progress» в проекте — ДО диспатча исполнителя. Исходная формулировка растворяется в секции «Цель». Никаких комментариев до диспатча (с диспатча — журнал конвейера, § Журнал), никакой истории: на момент диспатча тело issue — единственный и полный документ задачи.
**Цель:** одно предложение — что видит пользователь после мержа.
**Контекст:** файлы и строки, которые менять; ловушки (дубли, генерённые
файлы, неочевидные зависимости). Всё, что нужно исполнителю,
ЧТОБЫ НЕ ИССЛЕДОВАТЬ САМОМУ.
**Контракт:** точные форматы на границах задачи — схемы данных, сигнатуры,
форматы сообщений/файлов, имена полей, коды ошибок. С примерами значений,
а не описанием словами.
**Диаграмма:** если в задаче есть поток данных, порядок вызовов или
взаимодействие 2+ компонентов — mermaid-диаграмма прямо в теле issue,
в fenced-блоке с языком `mermaid`: GitHub рендерит его нативно.
ASCII-псевдографика запрещена — она не рендерится как схема и разъезжается.
Для тривиальной однофайловой правки — пропустить.
**Решённые развилки:** каждая развилка — решение + одна строка обоснования.
**Шаги:** нумерованный план правок по файлам.
**Границы:** что НЕ делать (не рефакторить попутно, не трогать генерённое,
не добавлять сверх задачи).
**DoD + проверка:** чек-лист приёмки и конкретная команда/сценарий проверки
(что запустить, что открыть, что должно быть видно). Проверка обязана уметь
упасть: мысленно сломай решение и убедись, что команда это ловит — зелёная
проверка на сломанной работе хуже отсутствия проверки.
Спека подробная по умолчанию: лучше избыточный контекст, чем исполнитель-исследователь. Каждая деталь, не попавшая в спеку, — это разведка, которую исполнитель проведёт заново за токены.
Развилки Fable резолвит сам, не блокируя конвейер вопросами. Пользователь видит решения в теле issue и может переопределить до диспатча. Исключение — развилка меняет скоуп или деньги: тогда стоп и вопрос.
То же с любым документом-решением (стратегия, план, выводы рисёча): текст до последнего слова пишет Fable и передаёт дословно — в теле issue или в промпте руки-укладчика. Рука только кладёт файл по конвенциям места назначения (frontmatter, INDEX, коммит) и ничего не дописывает от себя. Куда класть — тоже решение Fable: скаут приносит правила маршрутизации и существующие конвенции, имя и место выбирает Fable.
Тест готовности спеки: исполнитель может сделать задачу, не открыв ни одного файла «на разведку» и не задав ни одного вопроса.
Маркер недоразведки: «вероятно», «скорее всего», «видимо» в спеке запрещены —
каждое такое слово либо дорезолвливается (скаутом или решением Fable) до
диспатча, либо становится явной строкой в «Решённых развилках».
Любая спека, где артефакт — синтез из источников (гайд, конспект, дайджест, «выжимка советов»), обязана содержать:
Происхождение правила: гайд Fable 5 склеил два смежных факта стрима в ложную каузальную связку («при исчерпании Auto…») — и прошёл все приёмки, потому что DoD требовал верность переносу, а не источнику.
Тело issue самодостаточно, поэтому промпт исполнителю — короткий конверт без дублирования спеки. Codex: конверт + маршрутные флаги --wait --write --model gpt-5.5 в задании codex:codex-rescue (§ Codex-руки). Orca-воркер: тот же конверт внутрь task-create --spec (§ Orca-руки).
Ты — исполнитель. Рабочая директория: <path>.
Твоя спека — тело issue #N: прочитай `gh issue view N` и выполни строго по ней.
За границы спеки не выходи, продуктовых решений не принимай.
По завершении: прогони проверку из DoD, один conventional commit в main
с "(#N)" в конце сообщения. ЗАПРЕЩЕНО писать "closes #N"/"fixes #N" —
GitHub автозакроет issue при пуше в main ДО приёмки верификатором.
Issue не закрывай и не комментируй: закрытие — на этапе приёмки.
Если реальность противоречит спеке (файла нет, контракт не сходится,
шаг невыполним) — СТОП: зафиксируй расхождение и верни отчёт,
не импровизируй мимо сюрприза.
Если задача — шаг бизнес-цепочки (отправка, публикация, коммуникация),
той же сессией зафиксируй факт в owner-issue: чекбокс/коммент с датой,
каналом и остатком. Незаписанный результат = несделанный для системы.
Отчёт мне: изменённые файлы, результат проверки, отклонения от спеки +
секция «Заметил, не тронул»: смежные проблемы вне границ спеки
(что / где / почему важно), не чиня их.
Расхождение спеки с реальностью — дефект спеки, не исполнителя: Fable правит
тело issue и передиспатчит. Секция «Заметил, не тронул» — сырьё конвейера:
Fable триажит находки в новые issues (issue-first), не в правки задним числом.
Очерёдность определяется пересечением файлов, не количеством агентов:
После диспатча gh-форвардер открывает журнал: ▶-коммент с полным конвертом + лейбл wip:dispatched (§ Журнал конвейера).
Fable не блокируется на отчёте. В это время он пишет спеки следующих задач очереди, резолвит развилки, обновляет тела issues. К отчёту исполнителя очередь спек готова. Перед диспатчем спеки, написанной вперёд, — сверка одной строкой с фактическим диффом предыдущей задачи.
На каждую задачу — Codex-верификатор с чистым контекстом и узким промптом: «прогони команду/сценарий проверки из секции DoD issue #N, верни факт: прошло / не прошло / непроверяемо здесь (что именно не удалось прогнать и почему), что видел». Он не ревьюит код — только исполняет проверку. Проверяет не тот, кто делал. Вердикт «непроверяемо» легален: известный риск лучше молчаливого зелёного без фактического прогона.
Провал:
--resume, тот же тред; Orca — send --body в тот же терминал);--fresh, новый тред; Orca — новый воркер-терминал terminal create + новая задача) + диагноз верификатора (иногда проблема — закопавшийся контекст исполнителя);blocked, пользователю короткий диагноз (что пробовали, где падает, гипотеза), конвейер едет дальше по независимым задачам.Успех — закрытие gh-форвардером с одним приёмочным комментом, максимум три строки:
gh issue close N --comment "<SHA> — <вердикт верификатора одной строкой>".
Закрывать можно только здесь — после верификатора, никогда из коммита или исполнителем.
Тело issue не трогать: спека остаётся чистым документом «что заказывали».
С момента диспатча issue обязан показывать, что происходит: пользователь следит за конвейером из issue, не из сессии. Постит gh-форвардер на каждом переходе фазы. Запись — не однострочка-пересказ, а содержательная: что отправлено и что вернулось, дословно. Формат: первая строка — заголовок фазы (таймлайн остаётся сканируемым), дальше полезная нагрузка; нагрузку длиннее ~10 строк заворачивать в <details><summary>заголовок фазы</summary>…</details>.
▶ диспатч → <Codex|Orca:агент> + лейбл wip:dispatched. Нагрузка: канал, модель, флаги и полный операционный конверт, отправленный исполнителю, fenced-блоком (спека не дублируется — она и есть тело issue).↩ отчёт исполнителя → верификатор + лейбл wip:verifying. Нагрузка: дайджест исполнителя дословно — изменённые файлы, результат прогона проверки, отклонения от спеки, «Заметил, не тронул».✔ верификатор: прошло / ✖ верификатор: провал — каждый прогон. Нагрузка: по каждому пункту DoD что прогнал и что увидел (команда → факт), не только счёт N/M.🔁 доработка N + лейбл wip:rework. Нагрузка: точечный список замечаний верификатора, отправленный исполнителю, дословно.⛔ blocked: <диагноз> + лейбл blocked. Нагрузка: что пробовали, где падает, гипотеза.Правила: тело issue журнал не трогает; исполнители в issue не пишут — только gh-форвардер; в публичных репо gh-форвардер перед постом маскирует локальные пути и имена машин (домашний каталог, скретчпад-путь → <local>). Полные отчёты по-прежнему живут в скретчпаде-шине — журнал несёт их суть дословными фрагментами, а не указателями в недоступное.
Каждая осечка конвейера — исполнитель понял не так, пустой промпт, потерянный
отчёт, смерть агента, зависший воркер, провал верификатора, расхождение спеки
с реальностью, недоехавший коммит — записывается в журнал сразу; пишет Fable
сам.
При старте конвейера Fable просматривает журнал. 2+ открытые записи одного
класса → правка скилла (issue-first), записи помечаются `закрыт:
<commit/issue>`. Новые боевые наблюдения сначала живут в журнале, в текст
скилла попадают только устоявшиеся правила.
журнал сбоев — приватный hq, .claude/skills/fable-ruki-agenty/incidents.md
агента. Не перезапускать и не гадать: SendMessage(to: <агент>) с просьбой прислать
отчёт заново через SendMessage(to: "main"). Срабатывает стабильно.
Респавнить преемника с явной инструкцией аудита следов предшественника: git log,
git status, недокоммиченные файлы — частичная работа часто корректна, её надо
принять и доделать, а не переделывать с нуля.
Каждый субагент обязан записать ПОЛНЫЙ отчёт в файл до завершения:
<scratchpad-сессии>/reports/<имя-агента>.md — путь оркестратор подставляет
в диспатч-промпт явно (скретчпад указан в системном промпте сессии).
В финальном сообщении агент возвращает дайджест ≤15 строк + путь к файлу.
(цитаты, даты, числа, вердикты проверок), — inline в дайджесте. Файл — полный
след с координатами. Решение «по указателю», не видя факта, — запрещено.
финального сообщения оркестратор читает файл руки; SendMessage-паттерн из
«Живучести» — fallback, если агент умер до записи файла.
не нужна.
скаута; большие данные не транзитят контекст Fable дважды.
живут в issue/репо-владельце (issue-first не отменяется).
Происхождение: ретро W26 (03.07.2026) — два потерянных отчёта потребовали
SendMessage-переспросов, а компакция сессии заставила восстанавливать триаж-план
археологией по транскрипту; файлы в скретчпаде сняли бы обе проблемы бесплатно.
Последняя задача конвейера — отдельный issue-ревью: нативный ревьюер Codex по всему диффу от стартового коммита (adversarial-review --base <стартовый SHA> --scope branch --model gpt-5.5, вызов — § Codex-руки). Оси проверки задаёт Fable focus-текстом в спеке ревью (корректность обработчиков, утечки ресурсов, конфликты между фичами). Находки триажит Fable: баги — fix-задачами Codex-исполнителю с вердиктами ревью инлайн в задании; нетривиальные — issue-first.
Falsifiable-DoD, запрет «вероятно» в спеке, стоп-по-расхождению, «Заметил,
не тронул» и вердикт «непроверяемо» — адаптация Rigor Pack (Iwo Szapar,
iwoszapar.com/tools/rigor-pack, 07.2026): слепые A/B на Opus 4.8, 12-0-2,
но выборка 2-3 задачи на скилл — сигнал, не доказательство. Урок их
проигравших v1 (нарратив о процессе в деливерабле) уже покрыт нашим
дайджест-протоколом.
Integration with protocols.io API for managing scientific protocols. This skill should be used when working with protocols.io to search, create, update, or publish protocols; manage protocol steps and materials; handle discussions and comments; organize workspaces; upload and manage files; or integrate protocols.io functionality into workflows. Applicable for protocol discovery, collaborative protocol development, experiment tracking, lab protocol management, and scientific documentation.
Analyzes job descriptions and generates tailored resumes that highlight relevant experience, skills, and achievements to maximize interview chances
Generate Excalidraw diagrams from natural language descriptions. Use when asked to "create a diagram", "make a flowchart", "visualize a process", "draw a system architecture", "create a mind map", or "generate an Excalidraw file". Supports flowcharts, relationship diagrams, mind maps, and system architecture diagrams. Outputs .excalidraw JSON files that can be opened directly in Excalidraw.
Build and distribute Expo development clients locally or via TestFlight
Use when you have a written implementation plan to execute in a separate session with review checkpoints
Data structure for annotated matrices in single-cell analysis. Use when working with .h5ad files or integrating with the scverse ecosystem. This is the data format skill—for analysis workflows use scanpy; for probabilistic models use scvi-tools; for population-scale queries use cellxgene-census.
Benchling R&D platform integration. Access registry (DNA, proteins), inventory, ELN entries, workflows via API, build Benchling Apps, query Data Warehouse, for lab data management automation.
Comprehensive molecular biology toolkit. Use for sequence manipulation, file parsing (FASTA/GenBank/PDB), phylogenetics, and programmatic NCBI/PubMed access (Bio.Entrez). Best for batch processing, custom bioinformatics pipelines, BLAST automation. For quick lookups use gget; for multi-service integration use bioservices.
Take serejaris/fable-ruki-agenty from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.