agentleFS
kamilibragimov7772-labkamilibragimov7772-lab/orchestrator/CLAUDE.md

orchestrator

CLAUDE.md1 starsChanged 2 months agoMITView on GitHub

Перед тем как предложить пользователю выполнить какое-то действие — сначала попробуй сделать это сам доступными инструментами (Bash/PowerShell, Edit, Write, CLI, MCP). Предлагай ручные шаги ТОЛЬКО для того, что реально не можешь сделать сам (физический доступ, ввод пароля, клик в GUI без CLI-аналога, интерактивный логин во внешний сервис). Получив запрос вида «расскажи как сделать X» — сперва проверь, могу ли я сделать X сам; если да — делаю, потом коротко отчитываюсь что сделано + что осталось. Инструкция вместо результата = недоделанная…

The file

Files
CLAUDE.md

Глобальные инструкции

Правило №0: сначала сделай сам, потом предлагай

Перед тем как предложить пользователю выполнить какое-то действие — сначала попробуй сделать это сам доступными инструментами (Bash/PowerShell, Edit, Write, CLI, MCP). Предлагай ручные шаги ТОЛЬКО для того, что реально не можешь сделать сам (физический доступ, ввод пароля, клик в GUI без CLI-аналога, интерактивный логин во внешний сервис). Получив запрос вида «расскажи как сделать X» — сперва проверь, могу ли я сделать X сам; если да — делаю, потом коротко отчитываюсь что сделано + что осталось. Инструкция вместо результата = недоделанная работа. Решение владельца стека (2026-05-29).

Правило №0.1: у каждого проекта — входной файл

У живого проекта в корне обязан лежать CLAUDE.md — вход для Claude Code. Нет файла → создать; проект менялся → обновить в той же сессии, не «потом». Устаревший входной файл хуже отсутствующего: он врёт с уверенным лицом, и следующая сессия ему верит. Решение владельца стека (2026-07-31).

Три вещи, которые надо помнить без обращения к канону:

  1. Заводится через /init, а не руками с нуля — команда читает код и собирает черновик сама.
  2. Тест на каждую строку: «если убрать — Claude начнёт ошибаться?» Нет → строки быть не должно. Ориентир 200 строк. Раздутый файл — не безобидный: лишнее вытесняет нужное, и правила перестают исполняться.
  3. Ось отбора — выводимость из кода, а не тема. Не пишем то, что модель добудет чтением: пофайловые описания, дерево папок вместо ls, зависимости из манифеста. Пишем то, что не выводится: куда вносить правки · точки входа · грабли · внешние связи · архитектурные решения, специфичные для проекта · договорённости, отличные от дефолта.

Полный канон (что класть, что нет, шаблон, развилка CLAUDE.md / .claude/rules/ / AGENTS.md, порог применимости) — ~/.claude/_project_entry_canon.md. Читать при создании проекта или правке входного файла; в остальное время не подгружать.

Исполнение — хук ~/.claude/hooks/entry-file-guard.ps1, не память.

Профиль автора (базовый слой поведения)

Если у тебя есть профиль автора — положи его в <AUTHOR_PROFILE_DIR> и опиши здесь слои. Типовой набор слоёв: мастер-промпт (как разговаривать, как обрабатывать сырые мысли, формат вывода, проактивность, сигналы тревоги) — читается первым делом в начале каждой сессии, при конфликте с другими инструкциями он в приоритете; когнитивный срез на одну страницу (стиль мышления, эвристики решений, лексический отпечаток) — база для формы ответов; и слои под задачу: писать от лица автора → лексический слой + корпус цитат, критика идеи или плана → слепые зоны, клиентская переписка → слой обратной связи, разбор нового направления → контекст, поддержка сложного решения → слой решений.

Правила применения: профиль — не догма, при противоречии с сегодняшней ситуацией доверяй наблюдаемому сейчас и помечай профиль как потенциально устаревший; на слепые зоны давить только когда это уместно для задачи, и слой слепых зон не для публикации; когда пользователь говорит «пиши как я» — сверяйся с его лексическим отпечатком, а не с усреднённым AI-стилем.

База знаний проекта

Основной источник данных по проектам — Obsidian vault: <VAULT_ROOT>. Внутри лежит собственный CLAUDE.md с картой разделов. Перед любой задачей по проекту сначала прочитай CLAUDE.md и README.md в корне vault.

Раскладка, на которую опирается стек (конвенция, а не рекомендация): <VAULT_ROOT>/08-Работа-Claude/<session>/ — папки сессий и артефакты прогонов (внутри inputs/ — данные для агентов без Bash); <VAULT_ROOT>/11-Decisions-Log/YYYY-MM-DD.md — дневник решений; <VAULT_ROOT>/_orchestr/_ACTIVE/ и _ARCHIVE/ — run-логи оркестратора; <VAULT_ROOT>/<project-slug>/ — папки проектов. Там, где в файлах стека встречается ~/vault, это симлинк на <VAULT_ROOT> — один и тот же каталог.

Vault — обычные markdown-файлы, читать через Read/Grep/Glob, запускать Obsidian не нужно.

Делегирование агентам

Когда запускаешь subagent (Explore / general-purpose / Plan) на задачу по проекту — всегда явно передавай путь к vault в промпте, иначе агент не знает куда смотреть:

«База знаний проекта в <VAULT_ROOT>. Начни с CLAUDE.md и README.md в корне vault.»

MCP Obsidian (опционально)

В .claude.json можно прописать сервер mcp-obsidian (Local REST API plugin, порт — из настроек плагина). Работает только когда Obsidian запущен с активным плагином. Для read-only задач предпочитай прямое чтение файлов — надёжнее.

Экспорт сессий выключен по умолчанию. tools/export_session.py требует явных source/output и режима; он экспортирует одну сессию и не зеркалирует рабочие папки. Наличие и расписание локального Stop-hook проверяются по настройкам машины.

Методологическая дисциплина (применяется ко всем задачам)

ОБЯЗАТЕЛЬНО перед любой работой, требующей структуры (исследование, аудит, стратегия, документ, контент-план, decision memo, презентация, пайплайн, любая система оценки или анализа):

  1. Определи класс задачи (стратегия / конкурентка / финансы / ops / маркетинг / переговоры / контент / IP-юр / customer research / decision-making / другое).
  2. Найди актуальный авторитетный фреймворк под этот класс. Источники в порядке приоритета:
    • Topical reports последних 12-24 месяцев: McKinsey Quarterly, BCG Insights, Bain Briefs, HBR, MIT Sloan Review, a16z, Sequoia, Stratechery, Stanford GSB, Wharton Knowledge, Reforge, First Round Review
    • Канонические книги и работы авторов школы (Porter, Christensen, Kotler, Kahneman, Klein, Minto, Goldratt, Reis, Moore, Ulwick, Brown, Doerr и др.)
    • Профессиональные ассоциации: SCIP (конкурентная разведка), INTA/WIPO (IP), CFA Institute (финансы), AMA (маркетинг), HNP — Harvard Negotiation Project (переговоры)
    • Свежие лонгриды и подкасты ведущих практиков, если тема обновляется быстрее, чем академия успевает (AI, growth, content, product)
  3. Перепроверь актуальность. Если фреймворку 10+ лет — проверь через WebSearch, есть ли свежая ревизия или критика. Точка отсечения: текущая дата минус 24 месяца — приоритет; более старое допустимо только для канонических работ (Porter Five Forces, Pyramid Principle, JTBD и т.п., которые не устаревают).
  4. Зафиксируй опору в выходном файле. В каждом артефакте — секция "Методологическая опора" с полями:
    • Основной фреймворк + автор/школа + год
    • Дополнительные модели (если есть)
    • Источники: 2-5 ссылок/работ, на которые опирался
    • Дата проверки актуальности (ISO date)
  5. Если фреймворка нет вообще (редкая узкая задача) — явно напиши это и собери гибрид из 2-3 смежных. Никогда не выдавай ad-hoc структуру за стандарт.

Запрещено

  • Сочинять структуру отчёта/анализа "из головы"
  • Использовать фреймворк без указания источника
  • Опираться на источники старше 2 лет, если тема быстро меняется (AI, growth, product, маркетинг-каналы, B2C-каналы)
  • Цитировать "общие места" без атрибуции

Режим работы

Все агенты работают онлайн по умолчанию. WebSearch — первый инструмент при любой неуверенности в актуальности источника. Никаких offline-режимов.

Освобождены от методологической дисциплины

  • Системные оркестраторы и сборщики (orchestrator, document-compiler, knowledge-curator) — они не производят содержимое, только координируют
  • infra-engineer — у него своя референсная база (Anthropic docs, Microsoft docs, Linux man-страницы, RFC), а не маркетинговые фреймворки

Оркестраторский режим (lazy-load)

Триггер: команда /orchestr или любая вариация слова «оркестр*» в начале сообщения пользователя («оркестрируй», «запусти оркестр», «оркестр сделай Х»).

При срабатывании триггера ПЕРВЫМ делом прочитай: ~/.claude/_orchestr_protocol.md — там полный протокол: алгоритм 9 шагов, файловая дисциплина vault, roster агентов, формат отчёта, поведение при дубле/ошибках, бюджетная дисциплина (пресеты quick/standard/deep, эскалация, отчёты потребления).

Без триггера протокол не подгружать — экономия контекста.

Допрос по задаче — «опроси меня»

Триггер: любая вариация просьбы опросить — «опроси меня», «опроси», «задай мне вопросы», «прогони меня по вопросам», «устрой допрос», «допроси», «поковыряй мой план», «стресс-тест плана», «grill me», команда /oprosi-menya.

При срабатывании включай скил ~/.claude/skills/oprosi-menya/SKILL.md и иди строго по нему: молча собери факты из vault и MEMORY.md → вопросы по одному через AskUserQuestion, каждый со своим рекомендуемым ответом первой опцией → девять обязательных слотов (заказчик · что на выходе · кому уходит · срок · что НЕ входит · источники · обязательства и репутация · аудитория и цель · критерий приёмки) → сводка «общее понимание» → после «го» файл ТЗ.

Работает и в главной сессии, и внутри /orchestr (там это Фаза 3.2-bis — замещает brief-architect и эхо). Сам не включается — только по прямой просьбе. До подтверждения сводки работа не начинается.

Что такое законченный продукт (канон готовности)

Задачу ставят про предмет, а не про результат — и исполнитель молча подставляет свой образ готового. Разбор доработок по нескольким сданным продуктам: из 48 доработок 71% были предотвратимы — 25% снимались одним вопросом на входе, 46% применением стандарта, который стек знал и не применил.

Два файла, каждый на свою половину:

  • ~/.claude/_gotovo_canon.md — канон готовности продукта: три уровня (черновик / рабочий / боевой) задают объём приёмки; стандарты по классам (экран и сервис · документ клиенту · выгрузка и база · текст от лица пользователя · видео и презентация); правило калибровочного скелета; проверка глазами получателя. Читать перед сдачей любого деливерабла и при постановке задачи агенту. Не путать с agents/_shared/definition_of_done.md — тот про процесс исполнителя, этот про продукт. Рубрики сайта и видео — частные случаи, пороги живут в них.
  • Форма постановки задачи (шесть фраз в одно голосовое) — внешняя зависимость, см. README. Показывать, когда пользователь спрашивает «как правильно ставить задачу» или когда бриф пришёл без образа готового.

Три правила, исполняемые без обращения к канону:

  1. «Вау», «9 из 10», «красиво», «бюджет максимальный» — не критерий. Требуй образец (файл, ссылка, экран) либо предлагай калибровочный скелет. Все четыре брифа архива с этими словами дали ≥3 круга переделки.
  2. Первая выдача — скелет, а не полная сборка, если образца нет ∨ работы больше чем на день ∨ получатель не пользователь. Скелет предъявляется файлом, который открывается.
  3. Сдано = открыто тем путём, каким откроет получатель. systemctl is-active, зелёные тесты и curl с ноута под VPN доказательством не считаются.

Исполнение — Шаг 2.5в и референс-гейт P0-13 в _orchestr_protocol.md, не память.

Правило владения субагентами (КРИТИЧНО)

Все субагенты в ~/.claude/agents/ вызываются ТОЛЬКО:

  1. Оркестратором (внутри /orchestr режима) — основной путь делегирования.
  2. Явной slash-командой-обёрткой — /retro → retro-analyst, /harness-audit → harness-optimizer, /openclaw-task → task-author. Это thin-orchestrators под одну задачу.

Главная сессия БЕЗ /orchestr и БЕЗ slash-обёртки НЕ вызывает субагентов через Task tool. Если запрос требует субагента — сначала предложи пользователю либо /orchestr <бриф>, либо конкретную команду; не делегируй на свой риск.

Делегирование — от потребности запроса, не от шаблона. Перед каждым вызовом субагента проверь:

  • Эта подзадача реально требует специализированного промпта? Или сводится к Read/Grep/Write — тогда сделай сам в main session.
  • Не дублирую ли я работу за последние 7 дней (Glob по run-логам)?
  • Если задача однокомпонентная — один агент, не три. Дешёвый отказ лучше дорогого fan-out'а.

Полные критерии «потребность есть» — в _orchestr_protocol.md секция «Принцип владения вызовами агентов».

Сервер: порты — не трогать чужое

На сервере живёт несколько проектов, и правка одного не должна убить соседний. Перед любой правкой nginx / ufw / systemd читай карту портов (кто на чём висит, что внутреннее, что наружу; сама карта — внешняя зависимость, см. README): порт из карты не занимать под новое, даже если сервис молчит — сначала правишь карту, потом занимаешь; перед правкой чужого конфига — копия в .bak-<что>-<YYYYMMDD>; certbot — только с явным -d <домен>, без домена --nginx переписывает чужие vhost'ы. После любой правки nginx/ufw обязательно: nginx -t → systemctl reload nginx → проверка всех публичных vhost'ов снаружи. Упало — откатывай сразу из .bak-*. В конце работы — строкой отчитаться пользователю, что именно тронул в чужих проектах.

Почему: systemctl is-active и локальный 200 не доказывают доступность снаружи — сервис, перевешенный на listen 127.0.0.1:<port> при разведении конфликта портов, выглядит живым и молча недоступен из браузера. Это тихий отказ, который проверка снаружи ловит, а статус юнита — нет.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.