Obsidian Plugin Development — скилл

Скилл учит агента писать плагины Obsidian по правилам ESLint и проверке сообщества и создает заготовку нового плагина.

  • 196 ★ репозитория
  • Последний коммит
  • MIT
Скилл

Расширенный доступ

Почему такой уровень

  • Генератор `create-plugin.js` создает файлы и каталоги в выбранной папке.
Все причины и проверки

gapmiss/obsidian-plugin-skill

Установка

В терминале, через SkillFoxx CLI

npx skillfoxx add skills/obsidian-plugin-development

Определит агенты на машине, покажет уровень доступа и зафиксирует версию.

Другие способы установки

Доступ и проверки

Как мы проверяем

Расширенный доступИнструмент запускает код или ходит в сеть, а внешние данные только читает.

  • Генератор `create-plugin.js` создает файлы и каталоги в выбранной папке.

Это чужой код. Посмотрите файлы в репозитории перед установкой.

Что делает

Скилл собирает правила `eslint-plugin-obsidianmd`, официальные рекомендации Obsidian и требования к публикации в одну базу знаний для агента. Она охватывает жизненный цикл и очистку памяти, `requestUrl` вместо `fetch`, безопасность и защиту от XSS, совместимость с iOS и всплывающими окнами, доступность и стили на переменных Obsidian. Скилл подробно описывает отправку плагина на community.obsidian.md и повышение оценки сканера. Для нового плагина есть генератор `tools/create-plugin.js`: он проверяет имя, идентификатор и описание по правилам бота публикации и создает `src/main.ts`, `settings.ts`, `manifest.json`, настройки ESLint и сборку esbuild. В Claude Code доступны команды `/obsidian` и `/create-plugin`.

Для кого. Авторам плагинов Obsidian, которые готовят первый релиз или хотят пройти проверку сообщества с первого раза.

Подходит, если

  • Новый плагин создается с нуля, и генератор должен проверить имя и описание по правилам бота.
  • Перед отправкой на проверку плагин сверяют с правилами ESLint и оценкой сканера.
  • Сетевые запросы заменяют на `requestUrl`, чтобы плагин работал на мобильных устройствах.
  • Вкладку настроек переводят на декларативный API `getSettingDefinitions()`.

Не подходит, если

  • Расширения пишутся для другого редактора, а Obsidian в проекте нет.
  • Нужна справка по пользовательским сценариям Obsidian, а не по разработке.
  • Проект использует версии API Obsidian старше описанных.

Пример запроса к агенту

Помоги реализовать новую команду в моем плагине Obsidian так, чтобы она прошла проверку сообщества.

Ограничения

Правила привязаны к версии 0.5.1 `eslint-plugin-obsidianmd` и API Obsidian 1.13, при выходе новых версий их надо обновлять. Для более старых версий Obsidian нужен запасной путь `display()` в настройках, его описывает справочник по интерфейсу. Генератор спрашивает каталог, имя и описание в интерактивном режиме. Установка зависимостей и сборка плагина остаются на вашей стороне. Слэш-команды есть только в Claude Code, для Codex и Windsurf скилл вызывают иначе.

Как отключить. Удалите папку `obsidian` из `.claude/skills/` или `.agents/skills/` и файлы `obsidian.md` и `create-plugin.md` из `.claude/commands/`.

Частые вопросы

Как поставить скилл?

Командой `npx skills add https://github.com/gapmiss/obsidian-plugin-skill --skill obsidian`. Либо клонируйте репозиторий и запустите `install-skill.sh`, он спросит агента и каталог.

Какие агенты поддерживаются?

Claude Code, Codex и Windsurf: любой агент со стандартом Agent Skills. В Claude Code есть команды `/obsidian` и `/create-plugin`.

Что проверяет генератор плагина?

Имя без слов Obsidian и Plugin, идентификатор в нижнем регистре и без `obsidian`, описание от 10 до 250 знаков с точкой, восклицательным или вопросительным знаком.

Что лежит в `reference/`?

Одиннадцать справочников: память, типы, интерфейс, файлы, стили, доступность, качество кода, отправка, сканер и настройка ESLint.

Работает ли скилл без генератора?

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

Обсуждение

Вопросов и отзывов пока нет.

Скиллы

Набор скиллов из реальной работы: аудит цепочки поставок npm, сборка CLI, релиз плагина Obsidian и иерархия AGENTS.md

СкиллРасширенный доступ115Звезды репозитория

Менеджер плагинов Claude Code и установщик агентских скиллов: поиск по реестру и установка одной командой в нужного агента.

CLIРасширенный доступ566Звезды репозитория

Claude Code Skills and Agents

Claude Code Skills & Agents

Плагин Claude Code с набором скиллов и субагентов: глубокое исследование, генерация картинок, работа с GitHub, разбор кода и переключение моделей

ПлагинШирокий доступ1,7 тыс.Звезды репозитория

Плагины для git, Python и доступности в одном месте: более 400 скиллов, субагенты и хуки против опасных команд.

ПлагинРасширенный доступ59Звезды репозитория

Библиотека скиллов для Claude Code, Cursor и Codex: ревью командой агентов, TDD, стековые PR, оценка готовности репозитория

ПлагинРасширенный доступ71Звезды репозитория

Девять скиллов превращают репозиторий с агентскими процессами в проверенный плагин для ChatGPT и Codex

СкиллРасширенный доступ143Звезды репозитория

Коротко о README

Скилл строится по принципу постепенного раскрытия: короткий `SKILL.md` с таблицей правил и подробные справочники в `reference/`. Установщик покажет, куда копировать для Claude Code, Codex и Windsurf.

Бейдж для README

Исходный SKILL.md

---
name: obsidian
description: Comprehensive guidelines for Obsidian.md plugin development including ESLint rules from eslint-plugin-obsidianmd v0.5.1, TypeScript best practices, memory management, API usage (requestUrl vs fetch), UI/UX standards, popout window compatibility, community.obsidian.md submission process, and Scorecard optimization. Use when working with Obsidian plugins, main.ts files, manifest.json, Plugin class, MarkdownView, TFile, vault operations, or any Obsidian API development.
license: MIT
metadata: 
  version: 1.12.1
---

# Obsidian Plugin Development Guidelines

Follow these comprehensive guidelines derived from the official Obsidian ESLint plugin rules, submission requirements, and best practices.

## Getting Started

### Quick Start Tool

For new plugin projects, an interactive boilerplate generator is available:
- **Script**: `tools/create-plugin.js` in the skill repository
- **Command**: Invoke `create-plugin` using your agent's method (`/create-plugin`, `$create-plugin`, or `@create-plugin`)
- Generates minimal, best-practice boilerplate with no sample code
- Detects existing projects and only adds missing files

Recommend the boilerplate generator when users ask how to create a new plugin, want to start a new project, or need help setting up the basic structure.

---

## Rules Reference (eslint-plugin-obsidianmd v0.5.1)

### Submission & Naming
| # | Rule | ✅ Do | ❌ Don't |
|---|------|--------|----------|
| 1 | Plugin ID | Omit "obsidian"; don't end with "plugin" (checked only with `validate-manifest`'s `checkId: true` — turn it on before first submission) | Include "obsidian" or end with "plugin"; rename a published plugin's id |
| 2 | Plugin name | Omit "Obsidian" and "Plugin" | Include "Obsidian" or "Plugin" anywhere in the name |
| 3 | Plugin name | Avoid parts of "Obsidian" | Use "obsi", "sidian", or a leading "ob" |
| 4 | Description | Say what it does; don't repeat or start with the name | Use "Obsidian", "This plugin", "A plugin that", or start with the name |
| 5 | Description | 10–250 chars, ending with `.`, `!`, or `?` | End with `)` or no punctuation |

### Memory & Lifecycle
| # | Rule | ✅ Do | ❌ Don't |
|---|------|--------|----------|
| 6 | Event cleanup | Use `registerEvent()` for automatic cleanup | Register events without cleanup |
| 6a | DOM events | Use `registerDomEvent()` on the plugin or owning component | Pair `addEventListener` with manual `removeEventListener` cleanup |
| 7 | View references | Return views/components directly | Store view references in plugin properties or pass plugin as component to `MarkdownRenderer` |
| 8 | Leaf detachment | Let Obsidian handle leaf cleanup | Call `detachLeavesOfType()` in `onunload` |

Сообщить о проблеме