From obsidian-development
Reviews code against all ObsidianReviewBot rules and reports violations with fixes. Use PROACTIVELY before any git push on an Obsidian plugin project. TRIGGER WHEN: preparing an Obsidian plugin for submission or before pushing code DO NOT TRIGGER WHEN: the task is outside the specific scope of this component.
npx claudepluginhub acaprino/alfio-claude-plugins --plugin obsidian-developmentThis skill uses the workspace's default tool permissions.
Review code against all ObsidianReviewBot rules before pushing. Reports violations grouped by severity with exact file locations and fixes.
Searches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Searches prompts.chat for AI prompt templates by keyword or category, retrieves by ID with variable handling, and improves prompts via AI. Use for discovering or enhancing prompts.
Guides MCP server integration in Claude Code plugins via .mcp.json or plugin.json configs for stdio, SSE, HTTP types, enabling external services as tools.
Review code against all ObsidianReviewBot rules before pushing. Reports violations grouped by severity with exact file locations and fixes.
/obsidian-check — scans the current Obsidian plugin project for all bot violations.
Check that manifest.json, package.json, and src/ exist. If not, abort with message.
Check if eslint-plugin-obsidianmd is in package.json devDependencies. If NOT installed:
npm install --save-dev eslint eslint-plugin-obsidianmd @typescript-eslint/parser typescript-eslint @eslint/js
eslint.config.mjs, .eslintrc.*), create eslint.config.mjs:import tsparser from "@typescript-eslint/parser";
import { defineConfig } from "eslint/config";
import obsidianmd from "eslint-plugin-obsidianmd";
export default defineConfig([
...obsidianmd.configs.recommended,
{
files: ["**/*.ts"],
languageOptions: {
parser: tsparser,
parserOptions: { project: "./tsconfig.json" },
},
},
]);
eslint-plugin-obsidianmd was installed and configured.npx tsc --noEmit
Report any type errors.
npx eslint src/ 2>&1
This covers sentence case (ui/sentence-case), inline styles, command rules, manifest validation, TFile/TFolder casts, forbidden elements, and more. Report all ESLint errors and warnings.
These checks catch issues NOT covered by eslint-plugin-obsidianmd. Run by reading the source code:
| # | Check | How to detect |
|---|---|---|
| 1 | No unnecessary type assertions | Search for as Type where ?? fallback makes it redundant |
| 2 | Promises handled | Search for async function calls without await, void, .catch(), or .then() with rejection |
| 3 | No async without await | Search for async methods with no await inside |
| 4 | No promise where void expected | Search for async callbacks in event handlers that expect void |
| 5 | No object stringification | Search for template literals with ?? where left side could be an object |
| 6 | Setting.setHeading() | Search for createEl('h1'), createEl('h2'), createEl('h3') in settings/modals |
| # | Check | How to detect |
|---|---|---|
| 1 | Unused imports | TypeScript check catches these |
| 2 | Unused variables | TypeScript check catches these |
| 3 | console.log in lifecycle | Search for console.log in onload()/onunload() |
id: alphanumeric + dashes, no "obsidian", no "plugin" suffixname: no "Obsidian", no "Plugin" suffixdescription: no "Obsidian", no "This plugin", must end with . ? ! ), under 250 charsid, name, version, minAppVersion, description, authorversion matches latest git tag (if any)Output a structured report:
## Obsidian Lint Report
### TypeScript: [PASS/FAIL]
[errors if any]
### ESLint: [PASS/FAIL]
[errors if any]
### Required Violations: [count]
[grouped by rule, with file:line and suggested fix]
### Optional Warnings: [count]
[grouped by rule]
### Manifest: [PASS/FAIL]
[issues if any]
### License: [PASS/FAIL]
[issues if any]
---
**Result: [READY TO PUSH / FIX REQUIRED ISSUES FIRST]**
[count] required issues, [count] warnings
If violations are found, ask:
For auto-fix, apply changes following the obsidian-plugin-development skill rules (move styles to CSS classes, fix sentence case, remove unnecessary assertions, void unhandled promises, etc.).