Picasso Orchestrator
RazvanGabrielNiculae/picasso-claude-design-claude-code-bridge-loopОркестратор, замыкающий Claude Code и Claude Design в цикл обратной связи: бриф → дизайн → реализация → оценка → доработка. Пропускает результат только при достижении порога точности 9.0/10 по 6 визуальным критериям.
Установка
git clone https://github.com/RazvanGabrielNiculae/picasso-claude-design-claude-code-bridge-loop.gitREADME
🎨 Picasso Orchestrator: Claude Design 🔄 Claude Code [Bridge Loop]
Первый двунаправленный цикл с оценкой-шлюзом между Claude Code и Claude Design.Бриф → Дизайн → Реализация → Оценка → Доработка.
Хватит гадать, совпадает ли реализация с дизайном. Пусть цикл докажет это сам.
Picasso соединяет Claude Code с Claude Design в замкнутый цикл обратной связи — на вход подаётся структурированный бриф, на выход — верифицированный код, а между ними стоит шлюз точности с математической оценкой. Никаких «и так сойдёт». Либо оценка достигает 9.0 / 10, либо цикл продолжается.
⚡ Быстрый старт — 3 шага, 30 секунд
# 01 · Установка (однострочник — автоматически патчит ~/.claude)
curl -fsSL https://cdn.jsdelivr.net/gh/RazvanGabrielNiculae/picasso-claude-design-claude-code-bridge-loop@main/scripts/install-oneliner.sh | bash
# 02 · Проверка корректности подключения
picasso-bridge verify --smoke
# 03 · Запуск первого цикла
/picasso --design-loop "hero cinematic for B2B SaaS" --scope complex💡 Нужна пошаговая настройка? Добавьте
--wizardк команде установки — он интерактивно проведёт через настройку шлюза, максимального числа раундов и подключения хуков.
🔁 Как это работает
flowchart LR
A([picasso]) --> B[ASSUMPTIONS] --> C[DESIGN.md] --> D[Claude Design] --> E[Implement] --> F[Render] --> G[Score] --> H{Gate 9.0}
H -- "✅" --> I([APPROVED])
H -- "📉" --> J([STAGNATED])
H -- "🔄 refine" --> D
style A fill:#ff2d95,stroke:#ff4fa8,color:#fff
style B fill:#2a1420,stroke:#ff2d95,color:#ffa2cf
style C fill:#0d1f2d,stroke:#5ce1ff,color:#8eecff
style D fill:#0d1f2d,stroke:#5ce1ff,color:#8eecff
style E fill:#1a1a2e,stroke:#7cf0a0,color:#7cf0a0
style F fill:#1a1a2e,stroke:#7cf0a0,color:#7cf0a0
style G fill:#2a2000,stroke:#ffd83d,color:#ffd83d
style H fill:#2a2000,stroke:#ffd83d,color:#fff59d
style I fill:#0d2e1a,stroke:#4caf50,color:#7cf0a0
style J fill:#2e1a0d,stroke:#ff9800,color:#ffb14a- Бриф → Опишите цель дизайна на естественном языке (
/picasso --design-loop "hero for B2B SaaS") - ASSUMPTIONS → Picasso выводит выведенные токены как явный блок до любого обращения к браузеру — вы правите их прямо в тексте
- DESIGN.md → Генерируется структурированная спецификация из 9 разделов: цвета · типографика · макет · анимация · адаптивность · доступность
- Claude Design → Picasso отправляет структурированный промпт и захватывает визуальное предложение через скриншот
- Реализация → Субагент с нулевым контекстом применяет только изменённые разделы
DESIGN.md(~200 токенов против 2 000 при наивном подходе) - Рендер → Десктоп всегда · мобильный только если предыдущая оценка адаптивности < 8.0
- Оценка → Взвешенный шлюз: ΔE цвета (25%) · типографика (20%) · макет (20%) · компоненты (15%) · анимация (10%) · адаптивность (10%)
- Расхождения → Максимум 3 строки · формат с объявленной целью:
текущее → целевое· передаются в следующий раунд - Шлюз →
score ≥ 9.0→ ✅ APPROVED · плато → STAGNATED · иначе → доработка и повтор с шага 4
📊 Цифры
| Метрика | Значение | Что означает |
|---|---|---|
| 🎯 Порог шлюза по умолчанию | 9.0 / 10 | Взвешенная точность по 6 визуальным критериям |
| 🔄 Режимы цикла | 5 | loop · solo · critique · reference · iterate |
| 📐 Шагов за раунд | 7 | запрос → извлечение → реализация → рендер → оценка → расхождения → шлюз |
| 🧩 Паттерны оркестрации | 9+ | Токен-осознанные, защищённые от стагнации |
| 🧠 Принципы Karpathy | 4 | Встроены в кондуктор — не опциональные надстройки |
| ⚡ Экономия токенов | 3× | По сравнению с наивным полноконтекстным циклом (субагент с нулевым контекстом + ленивые чтения) |
🔧 Требования
| Инструмент | Версия | Роль |
|---|---|---|
| 🤖 Claude Code | ≥ 0.2.0 | CLI-хост — кастомные команды + субагенты + хуки |
| 🎨 Тариф Claude | Pro · Max · Team · Enterprise | Необходим для доступа к claude.ai/design |
| 🌐 Chrome | последняя | Аутентифицированная сессия на claude.ai |
| 🔌 chrome-mcp | последняя | MCP-транспорт браузера — навигация, клики, скриншоты |
| 📐 webdesign-mcp | последняя | Извлечение токенов · рендер превью · вычисление оценки |
| 📦 Node | ≥ 18 | Среды выполнения MCP-серверов |
| 🛠️ jq · bash | любая | Используются хуками и скриптами установки |
🔄 Цикл — 7 шагов за раунд
Полное описание каждого шага, примеры вывода и диаграммы состояний — в docs/LOOP.md.
| Шаг | Название | Что происходит |
|---|---|---|
| 1 | Request | Picasso формирует структурированный промпт из DESIGN.md и отправляет его в Claude Design |
| 2 | Extract | Скриншот захватывается; токены цвета, типографики и макета извлекаются через webdesign-mcp |
| 3 | Implement | Субагент с нулевым контекстом получает только дельту DESIGN.md — не весь файл |
| 4 | Render | Десктоп всегда; мобильный рендер запускается только при адаптивной оценке < 8.0 |
| 5 | Score | Взвешенная оценка по 6 критериям → итоговый балл от 0 до 10 |
| 6 | Gaps | Максимум 3 расхождения в формате текущее → целевое; передаются в следующий раунд |
| 7 | Gate | ≥ 9.0 → APPROVED · плато → STAGNATED · иначе → следующий раунд |
🎛️ Режимы
Полная документация по режимам — в docs/MODES.md.
| Режим | Команда | Назначение |
|---|---|---|
| loop | /picasso --design-loop "..." | Полный цикл: дизайн → реализация → оценка → доработка |
| solo | /picasso --solo "..." | Только реализация, без обращения к Claude Design |
| critique | /picasso --critique | Оценить текущее состояние без изменений |
| reference | /picasso --reference image.png | Использовать внешнее изображение как эталон дизайна |
| iterate | /picasso --iterate | Продолжить предыдущий цикл с новыми расхождениями |
🧩 Паттерны оркестрации
Полное описание всех 9 паттернов — в docs/DESIGN-PATTERNS.md.
| # | Паттерн | Проблема, которую решает |
|---|---|---|
| 1 | Zero-context subagent | Предотвращает дрейф контекста при реализации |
| 2 | Lazy DESIGN.md reads | Читает только изменённые разделы (~200 токенов) |
| 3 | Stagnation guard | Обнаруживает плато оценки и прерывает цикл |
| 4 | Assumption surfacing | Делает выведенные токены явными до первого вызова |
| 5 | Conditional mobile render | Рендерит мобильный вид только при необходимости |
| 6 | Goal-declared gap format | Структурирует расхождения как текущее → целевое |
| 7 | Weighted gate scoring | 6 критериев с разными весами вместо единой метрики |
| 8 | Hook-driven verification | Pre/post-хуки проверяют инварианты без ручного контроля |
| 9 | Structured 9-section spec | Разбивает DESIGN.md на атомарные обновляемые разделы |
🧠 Философский фундамент: принципы Karpathy
Подробнее — в docs/DESIGN-PATTERNS.md#philosophical-foundation.
Picasso реализует четыре принципа из подхода Karpathy к надёжным AI-системам:
- Явность предположений — ASSUMPTIONS-блок делает все выводы видимыми до начала работы
- Минимальный контекст — субагент с нулевым контекстом и ленивые чтения сокращают шум
- Измеримые критерии выхода — шлюз 9.0/10 заменяет субъективное «выглядит хорошо»
- Защита от стагнации — детектор плато предотвращает бесконечные циклы без прогресса
📁 Структура репозитория
picasso-claude-design-claude-code-bridge-loop/
├── .claude/
│ ├── commands/
│ │ └── picasso.md # Определение команды /picasso
│ └── hooks/
│ ├── pre-tool-use.sh # Проверка инвариантов перед вызовом инструмента
│ └── post-tool-use.sh # Верификация после вызова инструмента
├── scripts/
│ ├── install-oneliner.sh # Однострочник установки
│ └── verify.sh # Smoke-тест подключения
├── docs/
│ ├── LOOP.md # Детальное описание 7 шагов
│ ├── MODES.md # Документация по 5 режимам
│ ├── DESIGN-PATTERNS.md # Все 9 паттернов оркестрации
│ ├── GATE-SCORING.md # Методология взвешенной оценки
│ └── banner.svg # Баннер репозитория
└── README.md
📄 Лицензия
MIT — подробности в файле LICENSE.