Проблема, которую ощущают многие, но решают немногие.

Вы запускаете Zed, Kiro, Cline, Claude Code или Qwen. Описываете задачу. Агент создаёт код. И вот он перед вами... Иногда качественный. Иногда — беспорядочная смесь чужих стандартов, случайных шаблонов и игнорирование структуры вашего проекта.

Вы поправляете. Объясняете снова. Поправляете. Через час понимаете: вы тратите больше времени на управление агентом, чем на саму задачу.

Знакомо?


Почему агенты «тупят»

Дело не в модели. Claude, GPT, Gemini, Qwen — все они достаточно "умные".
Проблема в другом: У агента нет контекста вашего проекта.

Он не знает ваш стек. Не знает ваши стандарты. Не знает, что вы используете Zustand, а не Redux. Что тесты лежат рядом с компонентами, а не в отдельной папке. Что API всегда возвращает { data, error, meta }. Что нельзя трогать папку legacy/ без согласования.

Каждый раз, открывая новый чат, вы начинаете с нуля. Или пишете длинный системный промпт, который всё равно забывается на середине сессии.


Что делает DEMIURGOS

DEMIURGOS — это ИИ-агент, который создаёт правила для других ИИ-агентов.

Вы рассказываете ему о своём проекте. Он задаёт точные вопросы. А затем генерирует набор файлов, которые ваш coding-агент читает автоматически при каждом запуске.

Результат: агент знает ваш проект с первого сообщения. Без повторных объяснений. Без «нет, я же говорил, у нас TypeScript strict mode». Без постоянных исправлений формата.


Как это работает: 3 слоя

┌─────────────────────────────────────┐
│  Ядро (.rules/)                     │  ← Мозг. Источник правды о проекте.
├─────────────────────────────────────┤
│  NATIVE ADAPTERS                    │  ← Проекции для каждого агента.
│  AGENTS.md │ .cursor/ │ CLAUDE.md   │
│  .github/copilot-instructions.md    │
├─────────────────────────────────────┤
│  EXTENSIONS                         │  ← Только если реально нужны.
│  subagents │ hooks │ MCP            │
└─────────────────────────────────────┘

Слой 1 — Ядро. Один набор правил. Единственный источник правды. Описывает: кто агент, что ему можно, чего нельзя, как выглядит хороший код в вашем стеке, какие паттерны использовать, какие — нет.

Слой 2 — Native Adapters. Тонкие проекции ядра для конкретных агентов. Cursor хочет .mdc файлы с YAML frontmatter? Получит. Claude Code читает CLAUDE.md? Сгенерирован. Copilot ждёт .github/copilot-instructions.md? Готово. При этом ни один факт не дублируется — адаптеры ссылаются на core.

Слой 3 — Extensions. Сложные штуки: мульти-агентные системы, event-driven хуки, MCP-интеграции. Создаются только когда доказана необходимость, а не «на будущее».


22+ инструмента. Один набор правил.

Вы создаёте правила один раз, и они работают везде:

┌─────────────────────────────────┬────────────────────────────────────────┐
│ Где                             │ Как читается                           │
├─────────────────────────────────┼────────────────────────────────────────┤
│ Cursor                          │ .cursor/rules/*.mdc - auto-attach по   │
│                                 │ glob                                   │
├─────────────────────────────────┼────────────────────────────────────────┤
│ Windsurf                        │ .windsurf/rules/*.md — Always On +     │
│                                 │ Model Decision                         │
├────────────────────���────────────┼────────────────────────────────────────┤
│ Claude Code                     │ CLAUDE.md + slash commands             │
├─────────────────────────────────┼────────────────────────────────────────┤
│ GitHub Copilot                  │ .github/copilot-instructions.md +      │
│                                 │ agents                                 │
├─────────────────────────────────┼────────────────────────────────────────┤
│ Kiro                            │ .kiro/steering/*.md — always/auto/     │
│                                 │ manual                                 │
├─────────────────────────────────┼────────────────────────────────────────┤
│ JetBrains / Junie               │ guidelines.md + ACP протокол           │
├─────────────────────────────────┼────────────────────────────────────────┤
│ Codex, Amp, Goose, Aider,       │ AGENTS.md — универсальный формат       │
│ Devin, Zed, Warp, Cline, Qwen...│                                        │
└─────────────────────────────────┴────────────────────────────────────────┘

Один разработчик использует Cursor. Другой — Claude Code. Тимлид — Copilot в VS Code.
Все работают по одним и тем же правилам.

Переехали с Cursor на Windsurf? Core остался. Пересобрали один адаптер. 5 минут.


Примеры

1. Gamedev — Godot 4.3 + GDScript

Режим Debug - только трассировка правил

ПРИМЕНЁННЫЕ ПРАВИЛА
Файл           │ Цитата                                  │ Влияние
architecture.md│ «Композиция через Node-компоненты»      │ HealthComponent отдельно, не в базовом классе
patterns.md    │ «Сигналы для связи, не прямые вызовы»   │ signal died/health_changed вместо queue_free
constraints.md │ «Typed GDScript: все параметры с типами»│ float/StringName/Dictionary типизированы
constraints.md │ «StringName (&"") для ключей в hot path»│ &"physical" вместо "physical"
output.md      │ «Новый файл — полностью, с путём»       │ Полные файлы с # res://
patterns.md    │ «@export для данных в Inspector»        │ max_health и resistances как @export
[встроенное]   │ —                                       │ pure-урон игнорирует резисты (конвенция жанра)

КОНФЛИКТЫ: нет

Пробелы в правилах
Чего не хватило    │Что сделал          │Рекомендация
Нет damage model   │pure обходит резисты│patterns.md: «pure игнорирует резисты»
Нет clamp резистов │Зажал 0.0–1.0 сам   │constraints.md: «резисты float 0.0..1.0»

СЧЁТЧИК: .rules/ 6 │ встроенное 1 │ пробелов в правилах 2

Godot — /debug full - трассировка + рекомендации по исправлению

ПРИМЕНЁННЫЕ ПРАВИЛА
Файл           │ Цитата                                   │Влияние
architecture.md│ «Композиция через Node-компоненты»       │DashAbility — отдельная сцена-компонент
patterns.md    │ «SceneTreeTimer для одноразовых таймеров»│get_tree().create_timer() для cooldown
constraints.md │ «Typed GDScript: все параметры с типами» │Все типы указаны
output.md      │ «Новый файл — полностью, с путём»        │Полный файл с путём
[встроенное]   │ —                                        │is_action_just_pressed — нет правила про input

КОНФЛИКТЫ: нет

Пробелы в правилах
Чего не хватило         │Что сделал              │Рекомендация
Нет input naming        │Строка InputMap напрямую│patterns.md: конвенция input actions
Нет cooldown UI feedback│Не добавил feedback     │patterns.md: «ability → signal для UI»

СЧЁТЧИК: .rules/ 4 │ встроенное 1 │ пробелов в правилах 2

РЕКОМЕНДАЦИИ: ДОБАВИТЬ
Файл       │Правило                                               │ Зачем
patterns.md│«Input: snake_case + префикс — player_dash, ui_pause» │ 2-й запрос без покрытия
patterns.md│«Ability с cooldown → emit cooldown_started(duration)»│ UI не узнает про перезарядку

РЕКОМЕНДАЦИИ: ИЗМЕНИТЬ
Файл       │Текущее                                  │Проблема        │ Замена
patterns.md│«SceneTreeTimer для одноразовых таймеров»│Нет pause/resume│ «+ Timer нод для pausable cooldowns»

РЕКОМЕНДАЦИИ: УДАЛИТЬ — нет кандидатов

ТЕСТ-КЕЙСЫ
Запрос                       │ Ожидание
«Добавь двойной прыжок»      │ отдельный компонент, сигналы, typed
«Враг стреляет каждые 2 сек» │ Timer нод (не SceneTreeTimer), компонент

2. Python — /debug

ПРИМЕНЁННЫЕ ПРАВИЛА
Файл           │Цитата                                    │ Влияние
architecture.md│«3-layer: router → service → model»       │ Валидация в service, router только вызывает
patterns.md    │«Доменные ошибки — кастомные exception»   │ ProductNotFoundError, не HTTPException
constraints.md │«Async SQLAlchemy: AsyncSession, select()»│ select() + AsyncSession
patterns.md    │«Batch-запрос: собери ID → один WHERE IN» │ Один запрос, не цикл по product_id
constraints.md │«Pydantic v2: model_config dict»          │ model_config = {"from_attributes": True}
output.md      │«Новый файл — полностью»                  │ 3 полных файла
[встроенное]   │—                                         │ flush() в service, commit() в router
[встроенное]   │—                                         │ Фиксация unit_price в момент заказа

КОНФЛИКТЫ: нет

GAPS
Чего не хватило            │Что сделал                 │Рекомендация
Нет exception → HTTP map   │Не добавил handler         │patterns.md: «exception_handler в router»
Нет race condition на stock│Optimistic без блокировки  │constraints.md: «SELECT FOR UPDATE»
Нет правила про транзакции │commit() в router по ощущению│ → patterns.md: «commit в router, flush в service»

СЧЁТЧИК: .rules/ 6 │ встроенное 2 │ gaps 3

3. Frontend — /debug full

ПРИМЕНЁННЫЕ ПРАВИЛА
Файл           │Цитата                                        │Влияние
architecture.md│«Island: статика в .astro, интерактив в Solid»│ThemeToggle — SolidJS island client:idle
patterns.md    │«Inline script в Layout для blocking кода»    │<script is:inline> в head для localStorage
constraints.md │«UnoCSS: dark: через class strategy»          │dark:bg-gray-900 вместо media query
constraints.md │«Алиас ~/: src/»                              │Импорты через ~/
[встроенное]   │—                                             │createSignal для темы — нет правила

КОНФЛИКТЫ: нет

GAPS
Чего не хватило          │Что сделал               │Рекомендация
Нет FOUC prevention      │Знаю из опыта            │patterns.md: «inline script в head»
Нет localStorage правила │try/catch на всякий случ.│constraints.md: «всегда try/catch»

СЧЁТЧИК: .rules/ 4 │ встроенное 1 │ gaps 2

РЕКОМЕНДАЦИИ: ДОБАВИТЬ
Файл          │Правило                                            │Зачем
patterns.md   │«FOUC: inline script в <head> → class на <html>»   │Повторяется для темы, locale, A/B
constraints.md│«Browser API — всегда try/catch + fallback»        │SSR, private browsing, sandbox
patterns.md   │«createSignal = локальный UI, createStore = shared»│Нет правила, каждый раз гадаю

РЕКОМЕНДАЦИИ: ИЗМЕНИТЬ
Файл       │Текущее                        │Проблема        │Замена
patterns.md│«images: всегда loading="lazy"»│Не покрывает LCP│«+ hero: eager fetchpriority="high"»

РЕКОМЕНДАЦИИ: УДАЛИТЬ — нет кандидатов

ТЕСТ-КЕЙСЫ
Запрос                        │ Ожидание
«Модалка подтверждения заказа»│ SolidJS island, client:idle, Portal
«Страница /about»             │ чистый .astro, 0 JS, без islands

Чем это нам поможет

Режим отладки не оценивает правила — он выявляет их пробелы. После 10-20 запросов в /debug становится ясно, что уже покрыто, где агент действует самостоятельно и какие правила требуют приоритетного изменения.

ПАТТЕРНЫ DEBUG MODE
                │ Godot              │ Python              │ Frontend
Типичный пробел │ игровые механики   │ инфраструктура      │ browser API edge cases
Встроенное      │ геймдизайн-конвенц.│ бизнес-логика       │ UX-паттерны
Конфликты       │ редки              │ редки               │ island boundaries
Покрытие .rules/│ ~75%               │ ~75%                │ ~70%
Частые пробелы  │ damage/cooldown    │ транзакции/ошибки   │ FOUC, a11y, client:*

5 причин использовать DEMIURGOS

  1. Агент перестаёт «забывать»
    Правила хранятся в файлах проекта. Они в git. Они загружаются автоматически. Новый чат? Агент уже знает всё. Новый разработчик в команде? git pull — и его агент работает так же, как ваш.

  2. Правила минимальны и точны
    DEMIURGOS использует расширение территории по трём осям:

    Размер знаний × количество агентов × уровень расширений.
    - Маленький проект получит 2-3 файла.
    - Масштабный репозиторий — 14+.

    Никогда больше, чем нужно.

Перед созданием каждого файла срабатывает оценка сло��ности:

Это решает реальную проблему?
Без этого агент станет работать хуже?
Можно решить одной строкой в существующем файле?
Если хоть один ответ «нет» — файл не создаётся.

Мы заложили в DEMIURGOS принципы, которые напрямую определяют качество:

  • U-shaped attention — критичное в начало и конец файлов, справочное — в середину.
    Потому что LLM теряет внимание в середине длинного контекста.

  • KV-cache awareness — статичная информация вверху, динамичная внизу.
    Это ускоряет ответы и снижает стоимость API.

  • Structured variation — паттерны даются в 2-3 вариантах, а не как единственный «золотой стандарт». Агент не становится хрупким.

  • DRY — каждый факт живёт в одном месте. Если правило обновилось — оно обновилось везде.


Встроенная проверка качества

Перед тем как отдать вам файлы, DEMIURGOS прогоняет 3-5 типовых сценариев:

  • «Добавь новый API endpoint» — агент найдёт нужное правило? Формат ответа понятен?

  • «Зарефакторь модуль» — permissions не заблокируют? Стайлгайд применится?

  • «Почини баг в авторизации» — safety-правила сработают?

Если что-то не проходит — правила корректируются до того, как вы их получите.


Живой документ, а не артефакт

Правила — не «поставил и забыл». DEMIURGOS включает расписание обновлений:

┌─────────────────────────┬────────────────────────────────┐
│ Когда                   │ Что делать                     │
├─────────────────────────┼────────────────────────────────┤
│ Одна и та же ошибка     │ Добавь правило                 │
│ дважды                  │                                │
├─────────────────────────┼────────────────────────────────┤
│ Правило мешает          │ Удали или смягчи               │
├─────────────────────────┼────────────────────────────────┤
│ Агент игнорирует        │ Перемести выше, добавь пример  │
├─────────────────────────┼────────────────────────────────┤
│ Раз в месяц             │ Полный аудит                   │
└─────────────────────────┴────────────────────────────────┘

Для кого это всё

┌─────────────────────┬────────────────────────────────────────────────┐
│ Вы                  │ Что получите                                   │
├─────────────────────┼────────────────────────────────────────────────┤
│ Соло-разработчик    │ Агент, который помнит ваш стек и стиль между   │
│                     │ сессиями                                       │
├─────────────────────┼────────────────────────────────────────────────┤
│ Команда 2-5 человек │ Единые правила для всех, независимо от IDE     │
├─────────────────────┼────────────────────────────────────────────────┤
│ Команда 5+          │ Ядро + мульти-агентная система с ролями        │
├─────────────────────┼────────────────────────────────────────────────┤
│ Тимлид / техлид     │ Архитектурные решения, зашитые в поведение     │
│                     │ агента                                         │
├─────────────────────┼────────────────────────────────────────────────┤
│ Компания            │ Стандарты безопасности и качества, защита на   │
│                     │ уровне ИИ                                      │
└─────────────────────┴────────────────────────────────────────────────┘

Как начать

  1. Скачайте DEMIURGOS в корень вашего проекта.

  2. Начните диалог, фразой: запусти роль DEMIURGOS_NN.md

  3. Ответьте на 5-15 вопросов (зависит от размера проекта).

  4. Получите готовые файлы ролей и правил именно под ваш проект.

  5. Ваш котик-агент стал умнее)

    Время: 15-30 минут на настройку. Экономия: часы каждую неделю.


Подытожим

Вам больше не нужно постоянно объяснять контекст. Достаточно описать его один раз. Агент автоматически будет следовать вашим правилам.

Это уже не просто файл AGENTS.md, а система правил и ролей, которая живёт в вашем репозитории и делает ИИ-агента по настоящему вашим напарником.

Update

В комментариях, напомнили мне о том, что я хотел реализовать, но отложил на потом.
В новой версии добавил режим отладки.
Теперь можно добавлять команды /debug или /debug full в запрос, чтобы после ответа получать информацию о том, какие агенты использовались для обработки запроса, и их рекомендации по улучшению правил^ ^
Обновил примеры.