6.1 KiB
6.1 KiB
IDEA — Figma AI Plugin (MVP)
Проект: автономный Figma-плагин с AI-ассистентом. Локальная копия:
/root/.hermes/projects/figma plugins/figma-ai-plugin/Копия на Matebook:D:\Figma Plugins\figma-ai-plugin\Gitea: http://x1qnvk08zec2u5cx6yh5iexh.155.212.186.39.sslip.io/admin/figma-ai-plugin
Ресурсы
UI-фреймворк (@create-figma-plugin/ui)
- Storybook компонентов (живые примеры, темы Light/Dark/FigJam): https://yuanqing.github.io/create-figma-plugin/ui/
- Репозиторий фреймворка: https://github.com/yuanqing/create-figma-plugin
- Cheat-sheet компонентов (InvStd): https://github.com/invstd/Figma-Plugin-Quickstart/blob/main/FIGMA-PLUGIN-UI-COMPONENTS-REFERENCE.md
Официальная документация по созданию плагинов Figma
- Plugin API (официальная): https://www.figma.com/plugin-docs/
- Quick start (plugin setup): https://www.figma.com/plugin-docs/plugin-quickstart/
- Руководство по UI (design/iframe): https://www.figma.com/plugin-docs/how-plugins-work/#the-iframe
- Типы плагина (plugin-typings): npm
@figma/plugin-typings
Примеры плагинов (уже есть / опорные)
- Исходный плагин «AI assistant» (Николай, Matebook):
D:\YandexDisk\Figma Plugins DEVs\AI assistant— рабочий движок (eval + RPC, CodeMirror), оттуда переиспользуемmain.ts/ui.tsx. - create-figma-plugin templates: https://github.com/yuanqing/create-figma-plugin/tree/main/templates
- Figma Plugin Quickstart (InvStd): https://github.com/invstd/Figma-Plugin-Quickstart
- create-figma-plugin-native (кастомные компоненты Tabs/Modal/Checkbox): https://www.npmjs.com/package/@inversestudio/create-figma-plugin-native
Стек
- TypeScript (зафиксирован
~5.6.3— TS 7 ломает@create-figma-plugin/build) @create-figma-plugin/ui+@create-figma-plugin/utilities(Preact)- Сборка:
build-figma-plugin(npm run build/npm run watch) - Важно: tsconfig наследует
@create-figma-plugin/tsconfig(jsx: react + jsxFactory: h). Не оверрайдитьjsxнаreact-jsx.
Рабочий флоу (Hello World проверен)
- Пишешь код на VPS в
/root/.hermes/projects/figma plugins/figma-ai-plugin/ - Перед сборкой обновляешь patch-версию в
package.jsonиsrc/ui.tsx(PLUGIN_VERSION) npm run build— сборка должна пройти успешноgit push→ Gitea (admin/figma-ai-plugin)- Собираешь архив из корня проекта, исключая только
node_modulesи.git; обязательно включаешьbuild/и сохраняешь структуру каталогов. Проверка перед отправкой:unzip -l /tmp/figma-ai-plugin.tar.gzдолжна показыватьbuild/main.js,build/ui.js,manifest.json— неmain.jsиui.jsв корне архива. - Передаёшь архив/файлы на Matebook в staging-папку, затем распаковываешь в
D:\Figma Plugins\figma-ai-plugin\с сохранением путей. Не отправляй flat ZIP (zip -j): он кладётmain.js/ui.jsрядом с манифестом, а Figma загружаетbuild/main.js/build/ui.js. - После синхронизации обязательно сверяешь SHA-256 удалённых
build/main.js,build/ui.js,manifest.jsonс локальными. Проверяешь вbuild/ui.jsмаркер новой версии (0.1.N). Успешныйscp/распаковка сами по себе не доказывают, что обновилась папка, из которой загружает Figma. - В Figma: Plugins → Development → Import plugin from manifest → выбрать
manifest.jsonиз папки Matebook; если уже импортирован — выполнить Reload. - Запустить плагин и проверить версию в статус-баре.
Важно: не заканчивай sync на наличии ZIP в Downloads. Цель — именно D:\Figma Plugins\figma-ai-plugin\build\, откуда Figma читает entrypoints. Подробная проверенная процедура — KNOWLEDGE.md, раздел «Синхронизация билда на Matebook».
Правила ведения репозитория
- Коммит + пуш в Gitea — обязательная часть рабочего флоу. Любое осмысленное изменение в коде/доках коммитится и пушится в
origin/mainсразу по завершении задачи (не копить локально). _reference/— временные копии чужих/старых плагинов для сверки; в git не попадают (в.gitignore).build/иnode_modules/не коммитятся (собираются локально / на Matebook), см. синхронизацию через tar в KNOWLEDGE.md.
Правила ведения KNOWLEDGE.md
- KNOWLEDGE.md — живая копилка gotcha/решений. Hermes (агент) имеет право дописывать и править KNOWLEDGE.md самостоятельно, без вопросов к пользователю, когда находит новую проблему и её решение по ходу работы над проектом.
- Формат записи:
### Заголовок+ блоки Симптом / Причина / Решение / Ссылка (как в текущих записях). - Если правишь рабочий флоу здесь (IDEA.md), продублируй связанное gotcha в KNOWLEDGE.md (напр. ловушка с
--exclude build).