Files
figma-ai-plugin/IDEA.md
T

60 lines
6.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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 проверен)
1. Пишешь код на VPS в `/root/.hermes/projects/figma plugins/figma-ai-plugin/`
2. Перед сборкой обновляешь patch-версию в `package.json` и `src/ui.tsx` (`PLUGIN_VERSION`)
3. `npm run build` — сборка должна пройти успешно
4. `git push` → Gitea (`admin/figma-ai-plugin`)
5. Собираешь архив из корня проекта, исключая только `node_modules` и `.git`; обязательно включаешь `build/` и сохраняешь структуру каталогов. Проверка перед отправкой: `unzip -l /tmp/figma-ai-plugin.tar.gz` должна показывать `build/main.js`, `build/ui.js`, `manifest.json` — не `main.js` и `ui.js` в корне архива.
6. Передаёшь архив/файлы на Matebook в staging-папку, затем распаковываешь в `D:\Figma Plugins\figma-ai-plugin\` с сохранением путей. Не отправляй flat ZIP (`zip -j`): он кладёт `main.js`/`ui.js` рядом с манифестом, а Figma загружает `build/main.js`/`build/ui.js`.
7. После синхронизации обязательно сверяешь SHA-256 удалённых `build/main.js`, `build/ui.js`, `manifest.json` с локальными. Проверяешь в `build/ui.js` маркер новой версии (`0.1.N`). Успешный `scp`/распаковка сами по себе не доказывают, что обновилась папка, из которой загружает Figma.
8. В Figma: Plugins → Development → Import plugin from manifest → выбрать `manifest.json` из папки Matebook; если уже импортирован — выполнить Reload.
9. Запустить плагин и проверить версию в статус-баре.
**Важно:** не заканчивай 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`).