LLM-Friendly Registry Structure
Эта структура реорганизует registry.json для более эффективной работы с LLM, уменьшая галлюцинации и улучшая выбор компонентов.
Структура
registry/
├── index.json ← КАТАЛОГ (LLM всегда видит)
├── intents.json ← ПОЧЕМУ / КОГДА (WHY / WHEN)
├── components/
│ ├── FeatureCardSeven.json
│ ├── FeatureCardEight.json
│ └── ...
└── schemas/
├── FeatureCardSeven.schema.json
└── ...
Файлы
index.json - Легковесный каталог
Содержит минимальную информацию для выбора компонента:
category- категория компонентаintent- назначение компонента (почему/когда использовать)bestFor- лучшие случаи использованияavoidWhen- когда НЕ использоватьrequires- обязательные требования (например,features[])import- путь импорта
LLM всегда видит этот файл для выбора компонента.
intents.json - Маппинг интентов
Связывает интенты с компонентами:
{
"sequential process": ["FeatureCardSeven", "FeatureProcessSteps"],
"horizontal timeline": ["FeatureCardEight", "TimelineHorizontalCardStack"],
"hero with media": ["HeroBillboard"]
}
Помогает LLM выбирать компоненты по смыслу, а не угадывать.
components/*.json - Детальная информация
Загружается ТОЛЬКО после выбора компонента:
name- имя компонентаdescription- описаниеconstraints- ограничения и правилаpropsSchema- упрощённая схема пропсов (без className)usageExample- пример использованияdo- что делатьdont- чего не делатьeditRules- правила редактирования
schemas/*.schema.json - Полные схемы
Полные схемы пропсов (включая все className) для генерации кода.
Использование
Для LLM
- Выбор компонента: Используй
index.json+intents.json - Детали компонента: Загрузи
components/{ComponentName}.jsonпосле выбора - Генерация кода: Используй
schemas/{ComponentName}.schema.jsonдля полной схемы пропсов
Преимущества
- ✅ Уменьшение токенов в 3-5 раз
- ✅ Снижение галлюцинаций
- ✅ Предсказуемые правки
- ✅ Масштабируемость для разных моделей
Обновление
Для обновления структуры после изменений в registry.json:
node transform-registry.js