Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 16 additions & 0 deletions .claude/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
{
"hooks": {
"PostToolUse": [
{
"matcher": "Edit|Write",
"hooks": [
{
"type": "command",
"command": "f=$(echo \"$CLAUDE_TOOL_INPUT\" | grep -o '\"file_path\":\"[^\"]*\"' | head -1 | sed 's/\"file_path\":\"//;s/\"//'); if echo \"$f\" | grep -q 'src/.*\\.ts$' && ! echo \"$f\" | grep -q '\\.test\\.ts$'; then t=\"${f%.ts}.test.ts\"; [ -f \"$t\" ] && bun test \"$t\" 2>&1 | tail -5; fi",
"timeout": 15
}
]
}
]
}
}
15 changes: 15 additions & 0 deletions .claude/skills/deploy-test/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# Deploy Test

Build and deploy the plugin to the test vault.

## Steps

1. Run `bun run build` (includes typecheck + lint)
2. Run `bun test`
3. Run `bun run deploy` to copy to notes vault
4. Remind user to reload Obsidian (Cmd+R)

## Rules

- Abort if build or tests fail
- Report any new lint warnings
20 changes: 20 additions & 0 deletions .claude/skills/release/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# Release

Orchestrate the Metadator release process.

## Steps

1. Ask for the new version (or accept as argument)
2. Update version in package.json
3. Run `bun run version` to sync manifest.json and versions.json
4. Run `bun run validate` to confirm everything passes
5. Run `bun test` to confirm tests pass
6. Stage and commit: `chore: bump version to X.Y.Z`
7. Create git tag: `X.Y.Z`
8. **Stop and confirm** before pushing — remind user that push triggers GitHub Actions release

## Rules

- Never push without explicit approval
- Abort if validate or tests fail
- Use semantic versioning