Major modernization to leverage latest Claude Code features: Plugin Foundation: - Add .claude-plugin/plugin.json manifest for distribution - Add .claude/settings.json with permissions and hooks config Hooks (automatic behaviors): - SessionStart: Initialize vault environment variables - PostToolUse: Auto-commit changes after Write/Edit operations Custom Agents (4): - note-organizer: Vault organization and link maintenance - weekly-reviewer: Facilitate weekly review aligned with goals - goal-aligner: Check daily/weekly alignment with long-term goals - inbox-processor: GTD-style inbox processing Skills (3): - obsidian-vault-ops: Read/write vault files, manage wiki-links - goal-tracking: Track progress across goal cascade - daily-workflow: Morning/midday/evening routines Modular Rules (3): - markdown-standards: File naming, tags, frontmatter conventions - productivity-workflow: Goal cascade, daily/weekly planning - project-management: Project structure and status tracking Other: - Add statusline.sh for terminal vault stats display - Add CLAUDE.local.md.template for personal overrides - Update CLAUDE.md with new features documentation - Update all docs with v2.0 features and upgrade guide 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
48 lines
1.1 KiB
Bash
Executable File
48 lines
1.1 KiB
Bash
Executable File
#!/bin/bash
|
|
# Auto-commit hook for vault changes
|
|
# Called after Write/Edit operations on vault files
|
|
|
|
VAULT_PATH="${VAULT_PATH:-$(pwd)}"
|
|
MODIFIED_FILE="${1:-unknown}"
|
|
|
|
# Only run if auto-commit is enabled
|
|
if [ "${GIT_AUTO_COMMIT}" != "true" ]; then
|
|
exit 0
|
|
fi
|
|
|
|
cd "$VAULT_PATH" || exit 0
|
|
|
|
# Check if this is a git repository
|
|
if [ ! -d .git ]; then
|
|
exit 0
|
|
fi
|
|
|
|
# Check if there are changes to commit
|
|
if git diff --quiet && git diff --staged --quiet; then
|
|
exit 0
|
|
fi
|
|
|
|
# Generate commit message based on file location
|
|
TIMESTAMP=$(date +"%Y-%m-%d %H:%M")
|
|
|
|
if [[ "$MODIFIED_FILE" == *"Daily Notes"* ]]; then
|
|
MSG="Update daily note - $TIMESTAMP"
|
|
elif [[ "$MODIFIED_FILE" == *"Goals"* ]]; then
|
|
MSG="Update goals - $TIMESTAMP"
|
|
elif [[ "$MODIFIED_FILE" == *"Projects"* ]]; then
|
|
PROJECT=$(echo "$MODIFIED_FILE" | sed 's|.*/Projects/\([^/]*\)/.*|\1|')
|
|
MSG="Update project: $PROJECT - $TIMESTAMP"
|
|
elif [[ "$MODIFIED_FILE" == *"Templates"* ]]; then
|
|
MSG="Update template - $TIMESTAMP"
|
|
else
|
|
MSG="Vault update - $TIMESTAMP"
|
|
fi
|
|
|
|
# Stage and commit
|
|
git add .
|
|
git commit -m "$MSG" --quiet 2>/dev/null
|
|
|
|
if [ $? -eq 0 ]; then
|
|
echo "Auto-committed: $MSG"
|
|
fi
|