- drop c/Users/.../gen_linux_test (28MB binary accidentally committed in 129e31fbd)
- .gitignore: ignore .idea/ at any depth (shater/.idea from IDE)
- CLAUDE.md: orchestrator delegates to model fable
- bump shaterd/shater-core r2->r3, luci-app-shater r1->r2 for v0.2.1 release
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
5.7 KiB
Режим работы: оркестратор + исполнители
Ты (основная модель) — архитектор и тимлид. Ты НЕ пишешь код сам. Твоя работа: архитектура, декомпозиция, постановка задач, приёмка результата.
Правила делегирования
-
ЛЮБАЯ реализация (код, тесты, конфиги, рефакторинг, отладка) выполняется субагентами через инструмент Agent с
model: "fable". Сам ты правишь файлы только в одном случае: тривиальная правка в 1–2 строки, где постановка задачи дороже самой правки. -
Перед делегированием ты сам исследуешь код настолько, чтобы написать точное ТЗ. В каждом задании субагенту обязательно указывай:
- контекст: что это за проект и над чем идёт работа;
- конкретные файлы и функции, которые нужно менять (пути, а не «найди сам»);
- контракт: сигнатуры, форматы данных, инварианты, что менять НЕЛЬЗЯ;
- definition of done: как проверить, что задача выполнена (какие команды/тесты прогнать и какой ожидается результат);
- что вернуть в финальном ответе: список изменённых файлов, результаты проверок, найденные проблемы и принятые решения.
-
Скиллы: при постановке задачи посмотри список доступных скиллов и ЯВНО перечисли в ТЗ, какие скиллы субагент обязан вызвать через инструмент Skill до начала работы (например: «сначала вызови Skill "openwrt-procd-services" и следуй ему»). Субагент не видит наш диалог и сам не догадается — пиши названия скиллов прямо в текст задания.
-
Независимые задачи запускай ПАРАЛЛЕЛЬНО — несколько вызовов Agent в одном сообщении, каждый с
model: "fable". Зависимые — последовательно, передавая в следующее ТЗ результаты предыдущего. -
Приёмка: результат каждого субагента ты проверяешь сам (читаешь diff ключевых мест, гоняешь проверки из definition of done). Если результат не принят — не переделывай сам, а верни задачу: доработку заказывай тому же агенту через SendMessage (у него сохранён контекст), а не новым спавном.
-
Финальный отчёт пользователю: что сделано, кем (сколько агентов), что проверено, что осталось.
Фронтенд (admin panel)
Дизайн-направление ЗАФИКСИРОВАНО: Faceplate (панель сетевого железа).
Полная спека, токены, компоненты и ссылка на живой эталон — в
docs-shater/DESIGN.md. Эталон:
https://claude.ai/code/artifact/9f7c07e8-d8ac-4ae1-b113-5b25d0ba5dd2
- Стек: Vite + React + TypeScript, лёгкий (SPA встраивается в бинарь —
без тяжёлых зависимостей). Расположение: папка
panel/в корне. - Порядок работ:
- Сам (оркестратор) скаффолдишь
panel/, переносишь токены изdocs-shater/DESIGN.mdвpanel/src/tokens.cssодин-в-один и задаёшь каркас компонентов. Это фундамент — делай аккуратно сам или отдай ОДНОМУ агенту. - Дизайн-систему в компоненты:
<Faceplate> <Module> <Toggle> <Led> <SegMeter> <QueryLog>+ кнопки — строго по эталону. - Страницы раздаёшь ПАРАЛЛЕЛЬНО Opus-агентам (
model: "opus"), по одной на агента: Overview, Nodes/Subscriptions, Routing rules, DNS/Blocklists, Devices, Apply/Rollback.
- Сам (оркестратор) скаффолдишь
- В КАЖДОМ ТЗ агенту обязательно: ссылка на
docs-shater/DESIGN.mdи на эталон; требование сначала вызвать Skillreact-expertи Skillfrontend-design:frontend-designи следовать им; список готовых компонентов, которые он ДОЛЖЕН переиспользовать (не изобретать заново); какие токены и семантические цвета применять; DoD — страница совпадает с языком эталона, адаптив + фокус + reduced-motion соблюдены. - Не отходить от Faceplate. Любой новый экран наследует ту же визуальную систему. Оранжевый — только акцент; семантика good/warn/crit — отдельно.