Initial commit
This commit is contained in:
68
hooks/README.md
Normal file
68
hooks/README.md
Normal file
@@ -0,0 +1,68 @@
|
||||
# Obsidian Plugin Builder Hooks
|
||||
|
||||
This directory contains hooks that automate common tasks during Obsidian plugin development.
|
||||
|
||||
## Available Hooks
|
||||
|
||||
### auto-format-typescript.json
|
||||
**Event**: PostToolUse (Write)
|
||||
**Purpose**: Automatically format TypeScript/TSX files after creation or modification
|
||||
**Pattern**: `**/*.{ts,tsx}`
|
||||
Runs Prettier on TypeScript files to maintain consistent code style.
|
||||
|
||||
### validate-manifest.json
|
||||
**Event**: PostToolUse (Write)
|
||||
**Purpose**: Validate manifest.json has required fields
|
||||
**Pattern**: `**/manifest.json`
|
||||
Checks for required fields: id, name, version, description, author.
|
||||
|
||||
### type-check-on-edit.json
|
||||
**Event**: PostToolUse (Edit)
|
||||
**Purpose**: Run TypeScript type checking after editing files
|
||||
**Pattern**: `**/*.{ts,tsx}`
|
||||
Finds the nearest tsconfig.json and runs type checking, reporting any errors.
|
||||
|
||||
### session-start-context.json
|
||||
**Event**: SessionStart
|
||||
**Purpose**: Inject Obsidian plugin development context at session start
|
||||
Reminds Claude about the Obsidian context and available example plugins.
|
||||
|
||||
### prevent-env-commit.json
|
||||
**Event**: PreToolUse (Bash)
|
||||
**Purpose**: Block git commands that would stage .env files
|
||||
**Pattern**: `*git add*`
|
||||
Prevents accidental commits of environment files containing secrets.
|
||||
|
||||
### sync-version-on-tag.json
|
||||
**Event**: PreToolUse (Bash)
|
||||
**Purpose**: Sync version across manifest.json and package.json before git tagging
|
||||
**Pattern**: `*git tag v*`
|
||||
Extracts version from tag and updates both files to keep them in sync.
|
||||
|
||||
## Requirements
|
||||
|
||||
Some hooks require additional tools:
|
||||
- `prettier` - For auto-formatting (install via `npm install -D prettier`)
|
||||
- `jq` - For JSON manipulation (usually pre-installed on macOS)
|
||||
- `tsc` - TypeScript compiler (comes with TypeScript installation)
|
||||
|
||||
## Disabling Hooks
|
||||
|
||||
To disable a hook temporarily, rename it with a `.disabled` extension:
|
||||
```bash
|
||||
mv auto-format-typescript.json auto-format-typescript.json.disabled
|
||||
```
|
||||
|
||||
## Custom Hooks
|
||||
|
||||
You can add your own hooks following the pattern:
|
||||
```json
|
||||
{
|
||||
"event": "PreToolUse|PostToolUse|SessionStart|etc",
|
||||
"tool": "Bash|Write|Edit|etc",
|
||||
"pattern": "glob pattern (optional)",
|
||||
"command": "bash command to execute"
|
||||
}
|
||||
```
|
||||
|
||||
See the [Claude Code Hooks documentation](https://docs.claude.com/en/docs/claude-code/hooks) for more details.
|
||||
Reference in New Issue
Block a user