Comprehensive guidelines for Obsidian.md plugin development including all 27 ESLint rules from eslint-plugin-obsidianmd v0.1.9, TypeScript best practices, memory management, API usage (requestUrl vs fetch), UI/UX standards, locale file sentence-case enforcement, and submission requirements. Use when working with Obsidian plugins, main.ts files, manifest.json, Plugin class, MarkdownView, TFile, vault operations, or any Obsidian API development.
99
100%
Does it follow best practices?
Impact
99%
1.37xAverage score across 3 eval scenarios
Passed
No known issues
Network requests and command registration
requestUrl not fetch
100%
100%
Editor API for insertion
100%
100%
No 'command' in command name/ID
100%
100%
No plugin ID in command ID
100%
100%
No default hotkeys
100%
100%
Sentence case UI text
50%
100%
No console.log in onload/onunload
100%
100%
Valid plugin ID
100%
100%
Valid plugin name
100%
100%
Valid description punctuation
100%
100%
Accessible settings tab and CSS theming
setHeading() for sections
0%
100%
No problematic heading words
0%
100%
Sentence case settings text
100%
100%
CSS variables for colours
100%
100%
CSS variables for spacing
37%
100%
Scoped CSS selectors
100%
100%
No inline styles in TypeScript
62%
100%
ARIA labels on icon buttons
100%
100%
Keyboard event handlers
100%
100%
focus-visible CSS rule
30%
100%
Touch target sizing
30%
100%
Vault file operations and memory management
registerEvent for vault events
100%
100%
No stored view reference
100%
100%
No leaf detach in onunload
0%
100%
Vault.process for content modification
100%
100%
processFrontMatter for tags
0%
100%
trashFile not vault.trash
0%
100%
Direct file lookup
50%
100%
normalizePath for user path
0%
100%
instanceof for type narrowing
100%
100%
DOM helpers not innerHTML
100%
100%
No .obsidian hardcode
100%
100%
async/await not Promise chains
100%
40%
08dae85
Table of Contents
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.