Systematic guidance for building, debugging, testing, and releasing Obsidian community plugins.
This skill is documentation-first and works from the repository's actual source, installed Obsidian typings, declared compatibility range, and generated artifacts. It emphasizes public APIs, lifecycle ownership, theme-compatible CSS, mobile safety, and verification in a disposable development vault.
- Repository classification, official project setup, build tooling, and artifact policy
- Plugin lifecycle, settings persistence, migrations, Vault operations, networking, secrets, mobile compatibility, and performance
- Commands, views, settings UI, modals, menus, accessibility, RTL behavior, and Obsidian-native CSS variables
- Editor API, Markdown post-processors, Reading view rendering, and CodeMirror extensions
- Build, reload, debug, DOM inspection, screenshots, regression matrices, and failure-path testing
- Manifest metadata, release artifacts, GitHub Actions, and Community Plugins submission checks
| Reference | Use it for |
|---|---|
project-setup-and-build.md |
Repository layout, official sample plugin, toolchains, compatibility, and artifacts |
runtime-engineering.md |
Lifecycle, persistence, migrations, secrets, network access, mobile, and performance |
ui-patterns.md |
Commands, settings, views, native controls, CSS variables, RTL, accessibility, and framework UI |
editor-integration.md |
Editor operations, Markdown rendering, and CodeMirror |
testing-and-debugging.md |
Development vaults, build layers, CLI workflows, and regression verification |
release-and-submission.md |
Metadata, policies, versioning, release assets, and submission |
Install or copy the repository into the skill directory used by your agent runtime, keeping the directory name obsidian-plugin-dev-skill. The runtime should load SKILL.md first and then follow its progressive reference routing.
For a plugin repository, run the included audit script before and after changes:
python3 /path/to/obsidian-plugin-dev-skill/scripts/audit_plugin.py /path/to/pluginThe audit complements the plugin's own build, typecheck, lint, test, and Obsidian-vault verification. It does not replace those checks.
- Prefer Obsidian's public APIs and documented CSS variables over private DOM structure or hardcoded theme values.
- Treat vault files and settings as user-owned data; make writes conflict-aware and migrations retry-safe.
- Register every event, interval, DOM listener, view, and asynchronous resource with a lifecycle owner.
- Preserve the declared
minAppVersion, desktop/mobile boundary, light/dark themes, community themes, keyboard behavior, and RTL layouts. - Verify user-visible behavior in Obsidian instead of claiming success from static inspection alone.