Files
openclaw/skills/lampa-plugin-builder/SKILL.md
2026-03-03 01:43:47 +03:00

40 lines
2.7 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.
---
name: lampa-plugin-builder
description: Создание и доработка плагинов для приложения Lampa (JS plugin URL). Использовать, когда нужно: (1) создать новый плагин Lampa с нуля, (2) добавить/исправить хуки Lampa.Listener или расширения Lampa.* прототипов, (3) подготовить плагин к публикации по прямому URL .js, (4) проверить безопасную инициализацию (app ready + защита от двойного старта).
---
# Lampa Plugin Builder
1. Уточнить цель плагина и критерий готовности:
- что именно должен менять плагин в Lampa;
- где это должно срабатывать (карточки, меню, источники, фильтры и т.д.);
- как пользователь проверит результат.
2. Создать каркас плагина по шаблону из `references/plugin-template.js`:
- IIFE + `use strict`;
- `window.<flag>` защита от повторной инициализации;
- запуск через `window.appready` или `Lampa.Listener.follow('app', ...)`.
3. Реализовать логику через API Lampa:
- подписки на события через `Lampa.Listener.follow(...)`;
- отправка событий через `Lampa.Listener.send(...)` (если нужно);
- точечные патчи прототипов только при необходимости и с guard-проверками.
4. Добавить безопасные ограничения:
- не ломать стандартный UX;
- не вызывать бесконечные циклы/повторные хуки;
- не переопределять методы без сохранения оригинального поведения.
5. Проверить готовность плагина:
- файл один, самодостаточный `.js`;
- нет синтаксических ошибок;
- повторное подключение не дублирует эффекты;
- есть короткая инструкция установки (URL файла плагина).
6. Выдать результат в формате:
- `plugin-name.js`;
- кратко: что делает;
- как подключить в Lampa (URL плагина);
- быстрый чек-лист тестирования.
Если нужна генерация с нуля — брать шаблон `references/plugin-template.js` и адаптировать его под задачу.