Obsidian Plugin Skills
Unofficial agent skills for scaffolding, building, verifying, reviewing, and shipping Obsidian community plugins. Not affiliated with, published by, or endorsed by Obsidian or Dynalist Inc.
Playbook for TypeScript community plugins: vault-as-data, createEl UI, Selenium against real Obsidian, review-ban unit tests, and GitHub Releases the community directory can install.
Official docs stay canonical for APIs and listing rules: Build a plugin, Plugin guidelines. Each skill owns one phase. The hub only routes and lists hard stops. Do not copy phase how-to into a second skill.
Skills
| Skill | When to use |
|---|---|
obsidian-plugin | End-to-end playbook / router |
obsidian-plugin-scaffold | New plugin repo, sample-plugin bootstrap, esbuild wiring |
obsidian-plugin-architecture | Layers, vault-as-data, codeblocks, path safety |
obsidian-plugin-ui | DOM, settings, CSS, commands, data-testid |
obsidian-plugin-verify | Unit tests, typecheck, build, Selenium E2E, Cloud VMs |
obsidian-plugin-ship | Semver, GitHub Release, directory submit |
Install
The installer is the skills CLI (npx skills, not npx skill). It discovers every skills/*/SKILL.md in this repo and copies them into your agent's skills directory.
Install all six as a set. They cross-link; a single skill is not a complete playbook.
# List what would be installed
npx skills add justinw0ng/obsidian-plugin-skill --list
# Project install (Cursor). Prompts unless you pass -y
npx skills add justinw0ng/obsidian-plugin-skill -a cursor
# Non-interactive: every skill into Cursor for this repo
npx skills add justinw0ng/obsidian-plugin-skill --skill '*' -a cursor -y
# Global (all your projects)
npx skills add justinw0ng/obsidian-plugin-skill --skill '*' -a cursor -g -y
That writes to .agents/skills/obsidian-plugin* in the project (or ~/.cursor/skills/ with -g). Cursor, Claude Code, Codex, and others all work; pass -a claude-code (or --all) if you want those agents too.
One skill only:
npx skills add justinw0ng/obsidian-plugin-skill --skill obsidian-plugin -a cursor -y
Update later with npx skills update.
Optional pointer in the plugin repo's AGENTS.md:
## Skills
Read `obsidian-plugin` (or the phase skill) before scaffolding, E2E, release, or directory work.
As a Cursor plugin
Clone or add this repository as a Cursor plugin (Customize → Plugins / remote rule). Manifests:
- Cursor:
.cursor-plugin/plugin.json - Agent Plugins:
plugin.json
Typical loop
- Scaffold. Lock
manifest.jsonidentity, esbuild →main.js, scripts - Architecture. Pure
src/core/*, vault adapter, notes as the store - UI.
createEl, sentence case settings, CSS variables,data-testid - Verify.
npm test && npm run typecheck && npm run build && npm run test:e2e - Ship. Lockstep semver, tag without
v, attach the three binaries, submit once
Hard stops (domain imports obsidian, live innerHTML, banned CSS, unvalidated paths, skipped e2e without cause, v-prefixed tags) are listed in the hub skill.
License
Apache-2.0. See LICENSE.