Initial commit
This commit is contained in:
181
commands/bulk-auto-tag.md
Normal file
181
commands/bulk-auto-tag.md
Normal file
@@ -0,0 +1,181 @@
|
||||
---
|
||||
description: Bulk AI-powered tagging for existing notes to enable Bases filtering
|
||||
argument-hint: [folder-path or file-pattern]
|
||||
allowed-tools:
|
||||
- Read(*)
|
||||
- Edit(*)
|
||||
- Glob(*)
|
||||
- Bash(*)
|
||||
---
|
||||
|
||||
## Context
|
||||
|
||||
- **Today's Date:** !`date "+%Y-%m-%d"`
|
||||
- **Target:** `$ARGUMENTS` (defaults to all .md files if not specified)
|
||||
|
||||
## Tag Taxonomy Reference
|
||||
|
||||
Use the same taxonomy as `/capture`:
|
||||
|
||||
**Content Types:** idea, video, article, study-guide, repository, reference, project
|
||||
**Topics:** AI, Claude, Gemini, product, marketing, projects, workflow, architecture, design, UI-UX, coding, productivity, knowledge-management, development, learning, research, writing, tools, business, automation, data-science, web-development, personal-growth, finance
|
||||
**Status:** inbox, processing, evergreen, published, archived, needs-review
|
||||
**Metadata:** high-priority, quick-read, deep-dive, technical, conceptual, actionable, tutorial, inspiration
|
||||
|
||||
## Your Task
|
||||
|
||||
### Step 1: Discover Files to Tag
|
||||
|
||||
```bash
|
||||
# If user provided pattern:
|
||||
find . -name "$ARGUMENTS" -type f
|
||||
|
||||
# If no arguments (tag everything):
|
||||
find . -name "*.md" -type f -not -path "./.obsidian/*" -not -path "./.claude/*"
|
||||
```
|
||||
|
||||
### Step 2: Process Each File
|
||||
|
||||
For each discovered file:
|
||||
|
||||
1. **Read the file content**
|
||||
2. **Analyze existing frontmatter**:
|
||||
- Check if `tags:` field exists
|
||||
- Check if tags are already comprehensive (5+ tags from taxonomy)
|
||||
|
||||
3. **Skip if already well-tagged** (has 5+ taxonomy-compliant tags)
|
||||
|
||||
4. **Analyze content** to determine:
|
||||
- Content type (from filename, existing tags, content)
|
||||
- Main topics (2-4 from content analysis)
|
||||
- Status (infer from content or default to `evergreen` for old notes)
|
||||
- Metadata characteristics
|
||||
|
||||
5. **Generate enhanced tag array**:
|
||||
```yaml
|
||||
tags: [{content-type}, {topic1}, {topic2}, {topic3}, {status}, {metadata}]
|
||||
```
|
||||
|
||||
6. **Update frontmatter** while preserving existing data:
|
||||
```yaml
|
||||
---
|
||||
title: "{existing or generated}"
|
||||
tags: [{enhanced-tag-array}]
|
||||
date: "{existing or file creation date}"
|
||||
type: "{content-type}"
|
||||
status: "{status}"
|
||||
# preserve any other existing fields
|
||||
---
|
||||
```
|
||||
|
||||
### Step 3: Report Progress
|
||||
|
||||
After processing each batch of 5-10 files, report:
|
||||
```
|
||||
✅ Tagged 10 files:
|
||||
- 3 ideas tagged with [idea, productivity, ...]
|
||||
- 2 videos tagged with [video, AI, learning, ...]
|
||||
- 5 articles tagged with [article, development, ...]
|
||||
|
||||
📊 Progress: 10/47 files processed
|
||||
🏷️ Total tags added: 73 tags
|
||||
```
|
||||
|
||||
### Step 4: Summary Report
|
||||
|
||||
After all files processed:
|
||||
|
||||
```markdown
|
||||
# Bulk Tagging Report
|
||||
|
||||
## Summary
|
||||
- **Files processed:** 47
|
||||
- **Files updated:** 43
|
||||
- **Files skipped:** 4 (already well-tagged)
|
||||
- **Total tags added:** 312
|
||||
- **Average tags per note:** 7.3
|
||||
|
||||
## Tag Distribution
|
||||
|
||||
### By Content Type
|
||||
- idea: 15 notes
|
||||
- video: 8 notes
|
||||
- article: 12 notes
|
||||
- study-guide: 6 notes
|
||||
- repository: 2 notes
|
||||
|
||||
### By Topic
|
||||
- AI: 23 notes
|
||||
- productivity: 18 notes
|
||||
- knowledge-management: 15 notes
|
||||
- development: 12 notes
|
||||
- learning: 10 notes
|
||||
|
||||
### By Status
|
||||
- inbox: 12 notes
|
||||
- evergreen: 28 notes
|
||||
- published: 7 notes
|
||||
|
||||
## Bases Filtering Suggestions
|
||||
|
||||
You can now create Bases views like:
|
||||
1. **AI Learning Pipeline**: `type = video AND topic = AI AND status = inbox`
|
||||
2. **Quick Wins**: `metadata = quick-read AND priority = high-priority`
|
||||
3. **Technical Deep Dives**: `metadata = technical AND metadata = deep-dive`
|
||||
4. **Actionable Items**: `metadata = actionable AND status != archived`
|
||||
|
||||
## Next Steps
|
||||
1. Review auto-tagged notes in Obsidian
|
||||
2. Create Bases views using these tags
|
||||
3. Refine tags manually if needed
|
||||
4. Run `/bulk-auto-tag` periodically for new notes
|
||||
```
|
||||
|
||||
## Important Rules
|
||||
|
||||
1. **Preserve existing data**: Never delete user-added tags or properties
|
||||
2. **Merge intelligently**: Combine AI tags with existing tags (deduplicate)
|
||||
3. **Be conservative**: If uncertain about content type, default to `reference`
|
||||
4. **Handle errors gracefully**: Skip files with invalid frontmatter, report errors
|
||||
5. **Respect user intent**: If a file has explicit tags, enhance rather than replace
|
||||
|
||||
## Example Transformations
|
||||
|
||||
### Before (minimal tags):
|
||||
```yaml
|
||||
---
|
||||
tags: [idea]
|
||||
date: 2025-09-15
|
||||
---
|
||||
|
||||
# AI-powered tagging
|
||||
Use Claude to auto-tag notes for better organization
|
||||
```
|
||||
|
||||
### After (enhanced tags):
|
||||
```yaml
|
||||
---
|
||||
title: "AI-powered tagging"
|
||||
tags: [idea, AI, knowledge-management, tools, evergreen, actionable, technical]
|
||||
date: 2025-09-15
|
||||
type: idea
|
||||
status: evergreen
|
||||
priority: medium
|
||||
---
|
||||
|
||||
# AI-powered tagging
|
||||
Use Claude to auto-tag notes for better organization
|
||||
```
|
||||
|
||||
## Performance Considerations
|
||||
|
||||
- Process files in batches of 10
|
||||
- Show progress every batch
|
||||
- Allow user to cancel with Ctrl+C
|
||||
- Estimate time for large vaults: ~2-3 seconds per file
|
||||
|
||||
## Safety Features
|
||||
|
||||
1. **Dry run mode** (optional): Show what would be changed without modifying files
|
||||
2. **Backup reminder**: Remind user to commit to git before bulk operations
|
||||
3. **Undo support**: Provide git commands to rollback if needed
|
||||
164
commands/capture.md
Normal file
164
commands/capture.md
Normal file
@@ -0,0 +1,164 @@
|
||||
---
|
||||
description: Smart capture with AI-powered auto-tagging for Bases filtering
|
||||
argument-hint: [content to capture]
|
||||
allowed-tools:
|
||||
- Skill(obsidian-vault-manager)
|
||||
- SlashCommand(/gitingest)
|
||||
- Bash(*)
|
||||
- mcp__fetch__fetch
|
||||
- mcp__MCP_DOCKER__get_file_contents
|
||||
- mcp__MCP_DOCKER__list_commits
|
||||
- mcp__MCP_DOCKER__get_video_info
|
||||
- mcp__MCP_DOCKER__get_transcript
|
||||
- mcp__obsidian-mcp-tools__create_vault_file
|
||||
---
|
||||
|
||||
## Task
|
||||
|
||||
Execute the `obsidian-vault-manager` skill for universal content capture.
|
||||
|
||||
**Input**: `$ARGUMENTS` (YouTube URL, GitHub URL, web article, or plain text)
|
||||
**Operation**: Intelligent routing with AI-powered tagging
|
||||
|
||||
## Process
|
||||
|
||||
The skill will:
|
||||
1. **Analyze content type** from input
|
||||
- YouTube URL → Video capture workflow
|
||||
- **GitHub URL → Delegate to `/gitingest` command**
|
||||
- HTTP/HTTPS URL → Article capture workflow
|
||||
- Plain text → Idea capture workflow
|
||||
|
||||
2. **Apply AI-powered tagging** from predefined taxonomy
|
||||
- Content type tags (video, idea, article, repository)
|
||||
- Topic tags (2-4 relevant topics: AI, productivity, development, etc.)
|
||||
- Status tags (inbox for new captures)
|
||||
- Metadata tags (actionable, technical, tutorial, etc.)
|
||||
|
||||
3. **Create properly formatted note** using bundled templates
|
||||
- Smart filename generation
|
||||
- Comprehensive frontmatter
|
||||
- Structured content sections
|
||||
- Tag analysis and Bases filtering suggestions
|
||||
|
||||
## GitHub Repository Handling (IMPORTANT)
|
||||
|
||||
**When a GitHub URL is detected:**
|
||||
|
||||
1. **Extract GitHub URL** from `$ARGUMENTS`
|
||||
2. **Call `/gitingest` command** using `SlashCommand` tool:
|
||||
```
|
||||
SlashCommand("/gitingest https://github.com/owner/repo")
|
||||
```
|
||||
3. **The `/gitingest` command will:**
|
||||
- Use MCP Docker GitHub tools (`get_file_contents`, `list_commits`)
|
||||
- Analyze repository structure and contents
|
||||
- Generate comprehensive markdown with proper tagging
|
||||
- Auto-save to `/Users/zorro/Documents/Obsidian/Claudecode/`
|
||||
4. **Return success** - `/gitingest` handles the complete workflow
|
||||
|
||||
**DO NOT:**
|
||||
- ❌ Manually call `mcp__gitingest__*` tools (deprecated)
|
||||
- ❌ Try to analyze GitHub repos yourself
|
||||
- ❌ Use the obsidian-vault-manager skill for GitHub URLs
|
||||
|
||||
**Example Flow:**
|
||||
```
|
||||
User: /capture https://github.com/anthropics/claude-code
|
||||
|
||||
→ Detect: GitHub URL
|
||||
→ Execute: SlashCommand("/gitingest https://github.com/anthropics/claude-code")
|
||||
→ Result: Complete repository analysis saved to Obsidian
|
||||
```
|
||||
|
||||
## Content Routing
|
||||
|
||||
The skill automatically routes based on input:
|
||||
|
||||
**YouTube Videos:**
|
||||
- Pattern: `youtube.com/watch?v=` or `youtu.be/`
|
||||
- Fetches transcript and metadata
|
||||
- Template: `templates/youtube-note-template.md`
|
||||
- Tags: `[video, {topics}, inbox, {metadata}]`
|
||||
|
||||
**GitHub Repositories:**
|
||||
- Pattern: `github.com/owner/repo`
|
||||
- Uses `/gitingest` command (MCP Docker GitHub tools)
|
||||
- Creates comprehensive repository analysis
|
||||
- Tags: `[repository, {language}, {topics}, inbox, technical]`
|
||||
|
||||
**Web Articles:**
|
||||
- Pattern: HTTP/HTTPS URLs (not YouTube/GitHub)
|
||||
- Fetches and summarizes content
|
||||
- Extracts key takeaways
|
||||
- Tags: `[article, {topics}, inbox, quick-read]`
|
||||
|
||||
**Ideas & Thoughts:**
|
||||
- Pattern: Plain text without URL
|
||||
- Template: `templates/idea-template.md`
|
||||
- Smart filename from content
|
||||
- Tags: `[idea, {topics}, inbox, {metadata}]`
|
||||
|
||||
## Tag Taxonomy
|
||||
|
||||
All tags come from the predefined taxonomy in the skill:
|
||||
|
||||
### Content Type (1 tag)
|
||||
video, idea, article, study-guide, repository, reference, project
|
||||
|
||||
### Topics (2-4 tags)
|
||||
AI, Claude, Gemini, product, marketing, projects, workflow, architecture,
|
||||
design, UI-UX, coding, productivity, knowledge-management, development,
|
||||
learning, research, writing, tools, business, automation, data-science,
|
||||
web-development, personal-growth, finance
|
||||
|
||||
### Status (1 tag)
|
||||
inbox, processing, evergreen, published, archived, needs-review
|
||||
|
||||
### Metadata (0-2 tags)
|
||||
high-priority, quick-read, deep-dive, technical, conceptual,
|
||||
actionable, tutorial, inspiration
|
||||
|
||||
## Expected Output
|
||||
|
||||
After successful capture:
|
||||
- ✅ Content analyzed and type detected
|
||||
- ✅ Smart tags applied (6-8 total)
|
||||
- ✅ Note created with proper filename
|
||||
- ✅ Template populated with content
|
||||
- ✅ Tag analysis section added
|
||||
- ✅ Bases filtering suggestions included
|
||||
|
||||
## Examples
|
||||
|
||||
**YouTube video:**
|
||||
```
|
||||
/capture https://youtube.com/watch?v=abc123
|
||||
```
|
||||
→ Creates video note with transcript, learning objectives, curriculum
|
||||
|
||||
**GitHub repo:**
|
||||
```
|
||||
/capture https://github.com/anthropics/claude-code
|
||||
```
|
||||
→ Creates repository analysis with architecture overview
|
||||
|
||||
**Article:**
|
||||
```
|
||||
/capture https://medium.com/article-about-ai
|
||||
```
|
||||
→ Creates article summary with key takeaways
|
||||
|
||||
**Quick idea:**
|
||||
```
|
||||
/capture Use AI to automatically categorize notes
|
||||
```
|
||||
→ Creates idea note with smart filename and tags
|
||||
|
||||
## Integration with Bases
|
||||
|
||||
Tags enable powerful Bases filtering:
|
||||
- `type = video AND tags contains "AI"`
|
||||
- `tags contains "inbox" AND tags contains "high-priority"`
|
||||
- `tags contains "actionable" AND status = "processing"`
|
||||
- `type = repository AND tags contains "development"`
|
||||
54
commands/idea.md
Normal file
54
commands/idea.md
Normal file
@@ -0,0 +1,54 @@
|
||||
---
|
||||
description: Create an idea file with AI-powered smart tagging for Bases filtering
|
||||
argument-hint: [idea-text] (Your idea or concept to capture)
|
||||
allowed-tools:
|
||||
- Skill(obsidian-vault-manager)
|
||||
- Bash(*)
|
||||
- mcp__obsidian-mcp-tools__create_vault_file
|
||||
---
|
||||
|
||||
## Task
|
||||
|
||||
Execute the `obsidian-vault-manager` skill for idea capture.
|
||||
|
||||
**Input**: `$ARGUMENTS` (Plain text idea or concept)
|
||||
**Operation**: Idea note creation
|
||||
**Today's Date**: Run `date "+%Y-%m-%d"` to get current date
|
||||
|
||||
## Process
|
||||
|
||||
The skill will:
|
||||
1. Analyze idea content and determine main concepts
|
||||
2. Apply bundled template: `templates/idea-template.md`
|
||||
3. Analyze content and apply AI-powered smart tagging (using tag taxonomy)
|
||||
4. Generate smart filename: `{date}-{3-5-word-idea-name}.md`
|
||||
5. Substitute all template variables with analyzed data
|
||||
6. Create note in vault using MCP Obsidian tools
|
||||
|
||||
## Tag Taxonomy Reference
|
||||
|
||||
**Topics:** AI, productivity, knowledge-management, development, learning, research, writing, tools, business, design, automation, data-science, web-development, personal-growth, finance
|
||||
**Status:** inbox (default for new ideas)
|
||||
**Metadata:** actionable, conceptual, inspiration, high-priority
|
||||
|
||||
## Expected Output
|
||||
|
||||
A comprehensive idea note with:
|
||||
- Proper frontmatter (title, tags, date, type, status, priority)
|
||||
- Core idea explanation
|
||||
- Why it matters section
|
||||
- Related concepts
|
||||
- Next steps (if actionable)
|
||||
- Tags analysis and filtering suggestions
|
||||
- Semantic search suggestions
|
||||
|
||||
**File naming format**: `[date]-[3-5-word-idea-name].md`
|
||||
**Tag count**: 5-8 tags total
|
||||
|
||||
## Examples
|
||||
|
||||
**Input**: "Use AI to automatically categorize notes"
|
||||
→ `2025-10-23-ai-note-categorization.md`
|
||||
|
||||
**Input**: "Knowledge compounds when connected properly"
|
||||
→ `2025-10-23-knowledge-compound-connections.md`
|
||||
147
commands/publish.md
Normal file
147
commands/publish.md
Normal file
@@ -0,0 +1,147 @@
|
||||
---
|
||||
description: Publish note to GitHub Pages (sharehub) with proper image handling
|
||||
argument-hint: [filename] (note to publish, e.g., my-article.md)
|
||||
allowed-tools:
|
||||
- Bash(*)
|
||||
- mcp__fetch__fetch
|
||||
- mcp__github__*
|
||||
---
|
||||
|
||||
## Task
|
||||
|
||||
Publish note to GitHub Pages using the bundled publish script.
|
||||
|
||||
**Input**: `$ARGUMENTS` (filename with or without .md extension)
|
||||
**Operation**: Publish to GitHub Pages with image handling
|
||||
|
||||
## Implementation
|
||||
|
||||
Run the bundled publish script directly:
|
||||
|
||||
```bash
|
||||
SKILL_DIR="$HOME/.claude/skills/obsidian-vault-manager"
|
||||
"$SKILL_DIR/scripts/core/publish.sh" "$ARGUMENTS"
|
||||
```
|
||||
|
||||
The script will:
|
||||
1. Validate note exists in vault
|
||||
2. Find all image references in note
|
||||
3. Copy images from vault to sharehub repository
|
||||
4. Convert image paths (./images/ → /sharehub/images/)
|
||||
5. Copy note with converted paths to sharehub/documents/
|
||||
6. Git commit and push to GitHub
|
||||
7. Output the published URL
|
||||
|
||||
## After Script Completes
|
||||
|
||||
1. Wait for GitHub Pages deployment (~60 seconds):
|
||||
```bash
|
||||
sleep 60
|
||||
```
|
||||
|
||||
2. Verify published page using `mcp__fetch__fetch`
|
||||
|
||||
## Publishing Configuration
|
||||
|
||||
- **Vault Path**: `/Users/zorro/Documents/Obsidian/Claudecode`
|
||||
- **Sharehub Path**: `/Users/zorro/Dev/sharehub`
|
||||
- **Repository**: `ZorroCheng-MC/sharehub`
|
||||
- **GitHub Pages URL**: `https://zorrocheng-mc.github.io/sharehub`
|
||||
|
||||
## Image Path Conversion
|
||||
|
||||
The script automatically converts:
|
||||
- `./images/file.jpg` → `/sharehub/images/file.jpg`
|
||||
- `images/file.jpg` → `/sharehub/images/file.jpg`
|
||||
- External URLs (https://...) remain unchanged
|
||||
|
||||
## Expected Output
|
||||
|
||||
After successful publish:
|
||||
- ✅ Images copied to sharehub repository
|
||||
- ✅ Note copied with converted paths
|
||||
- ✅ Git commit created with proper message
|
||||
- ✅ Pushed to GitHub
|
||||
- ✅ GitHub Pages deployment triggered
|
||||
- ✅ Published URL: `https://zorrocheng-mc.github.io/sharehub/documents/{filename}.html`
|
||||
|
||||
## Examples
|
||||
|
||||
**Publish with extension:**
|
||||
```
|
||||
/publish my-article.md
|
||||
```
|
||||
|
||||
**Publish without extension (auto-adds .md):**
|
||||
```
|
||||
/publish my-article
|
||||
```
|
||||
|
||||
## Password Protection (Sharehub Feature)
|
||||
|
||||
**Sharehub supports password-protected documents via frontmatter!**
|
||||
|
||||
### To Make a Document Private:
|
||||
|
||||
Add `access: private` to the frontmatter:
|
||||
|
||||
```yaml
|
||||
---
|
||||
title: "Confidential Document"
|
||||
access: private
|
||||
---
|
||||
```
|
||||
|
||||
**How it works:**
|
||||
- Documents **without** `access: private` → Publicly accessible
|
||||
- Documents **with** `access: private` → Password-protected
|
||||
- **Password**: "maco" (shared password for all private documents)
|
||||
- **Session**: Password remembered until browser closed
|
||||
|
||||
### Example: Publishing Private Document
|
||||
|
||||
**Frontmatter:**
|
||||
```yaml
|
||||
---
|
||||
title: "Claude Dev Users: Multi-User Docker Environment"
|
||||
tags:
|
||||
- repository
|
||||
- docker
|
||||
- infrastructure
|
||||
access: private
|
||||
---
|
||||
```
|
||||
|
||||
**Result:**
|
||||
- Document published to sharehub
|
||||
- Requires password "maco" to view
|
||||
- Listed in index with 🔒 lock icon (after login)
|
||||
|
||||
### Index Page Behavior
|
||||
|
||||
- **Before login**: Shows only public documents
|
||||
- **After login**: Shows all documents (public + private) with 🔒 icons
|
||||
|
||||
### Publishing Workflow
|
||||
|
||||
1. **Add `access: private` to frontmatter** (if needed)
|
||||
2. **Run `/publish filename.md`**
|
||||
3. **Script publishes** to sharehub/documents/
|
||||
4. **GitHub Pages builds** (~60 seconds)
|
||||
5. **Document accessible** with password protection
|
||||
|
||||
### Important Notes
|
||||
|
||||
- **Default**: Documents are public unless `access: private` is specified
|
||||
- **Password**: All private documents use "maco"
|
||||
- **No folder restrictions**: Protection is tag-based, not folder-based
|
||||
- **Session storage**: Login persists until browser closed
|
||||
|
||||
## Quality Checklist
|
||||
|
||||
Before publishing, verify:
|
||||
- [ ] Note has proper frontmatter (title, tags, date)
|
||||
- [ ] Add `access: private` if document contains sensitive information
|
||||
- [ ] Images exist in vault at specified paths
|
||||
- [ ] Image paths are relative (./images/ or images/)
|
||||
- [ ] Note is ready for viewing (public or password-protected)
|
||||
25
commands/semantic-search.md
Normal file
25
commands/semantic-search.md
Normal file
@@ -0,0 +1,25 @@
|
||||
---
|
||||
description: Perform semantic search in Obsidian vault using Smart Connections via Local REST API
|
||||
allowed-tools:
|
||||
- Bash(curl:*)
|
||||
---
|
||||
|
||||
## Context
|
||||
|
||||
- **Search Query:** `$ARGUMENTS`
|
||||
- **API Configuration:** Local REST API running on https://127.0.0.1:27124/
|
||||
- **Smart Connections Endpoint:** `/search/smart`
|
||||
|
||||
## Your task
|
||||
|
||||
Execute a semantic search in the Obsidian vault using the Smart Connections plugin via curl.
|
||||
|
||||
Run this single command to perform the search:
|
||||
|
||||
```bash
|
||||
curl -k -X POST \
|
||||
https://127.0.0.1:27124/search/smart \
|
||||
-H "Authorization: Bearer $(grep LOCAL_REST_API_KEY .env | cut -d'=' -f2)" \
|
||||
-H "Content-Type: text/plain" \
|
||||
-d "{\"query\": \"$ARGUMENTS\", \"filter\": {\"limit\": 5}}" | jq .
|
||||
```
|
||||
105
commands/setup.md
Normal file
105
commands/setup.md
Normal file
@@ -0,0 +1,105 @@
|
||||
---
|
||||
description: Interactive setup wizard for Obsidian Vault Manager
|
||||
allowed-tools:
|
||||
- Bash(*)
|
||||
- Read(*)
|
||||
- Write(*)
|
||||
---
|
||||
|
||||
## Context
|
||||
|
||||
- **Current Directory:** `$PWD`
|
||||
- **Plugin Location:** `~/.claude/plugins/marketplaces/obsidian-vault-manager-plugin/`
|
||||
|
||||
## Task
|
||||
|
||||
Run the interactive setup wizard to configure Obsidian Vault Manager for this vault.
|
||||
|
||||
**Important:** You must run Claude Code from your Obsidian vault directory for this setup to work correctly.
|
||||
|
||||
## Implementation
|
||||
|
||||
Execute the setup script from the plugin directory:
|
||||
|
||||
```bash
|
||||
# Locate the plugin installation
|
||||
PLUGIN_DIR="$HOME/.claude/plugins/marketplaces/obsidian-vault-manager-plugin"
|
||||
|
||||
# Check if plugin is installed
|
||||
if [[ ! -d "$PLUGIN_DIR" ]]; then
|
||||
echo "❌ Plugin not found. Please install it first:"
|
||||
echo " claude plugin add obsidian-vault-manager"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Run setup script
|
||||
SETUP_SCRIPT="$PLUGIN_DIR/scripts/setup.sh"
|
||||
|
||||
if [[ -f "$SETUP_SCRIPT" ]]; then
|
||||
chmod +x "$SETUP_SCRIPT"
|
||||
bash "$SETUP_SCRIPT"
|
||||
else
|
||||
echo "❌ Setup script not found at: $SETUP_SCRIPT"
|
||||
echo "Plugin may be corrupted. Try reinstalling:"
|
||||
echo " claude plugin remove obsidian-vault-manager"
|
||||
echo " claude plugin add obsidian-vault-manager"
|
||||
exit 1
|
||||
fi
|
||||
```
|
||||
|
||||
## What This Does
|
||||
|
||||
The setup wizard will:
|
||||
|
||||
1. **Detect Your Vault**
|
||||
- Verifies you're in an Obsidian vault (checks for `.obsidian/` folder)
|
||||
- Confirms the vault path
|
||||
|
||||
2. **Check Dependencies**
|
||||
- uv/uvx (for YouTube transcripts)
|
||||
- jq (for JSON processing)
|
||||
- python3 (for image path conversion)
|
||||
- git (for publishing)
|
||||
|
||||
3. **Configure GitHub Pages** (optional)
|
||||
- GitHub Pages repository path
|
||||
- GitHub Pages URL
|
||||
- Repository name
|
||||
|
||||
4. **Create Configuration Files**
|
||||
- `.claude/settings.local.json` (vault-specific settings)
|
||||
- `.claude/config.sh` (for bash scripts)
|
||||
- `.claude/.gitignore` (prevents committing personal paths)
|
||||
|
||||
## After Setup
|
||||
|
||||
Your vault will have:
|
||||
|
||||
```
|
||||
your-vault/
|
||||
└── .claude/
|
||||
├── settings.local.json (vault-specific configuration)
|
||||
├── config.sh (script configuration)
|
||||
└── .gitignore (prevents committing personal paths)
|
||||
```
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
**"Not in vault directory"**
|
||||
- Make sure you `cd` to your vault first
|
||||
- Check that `.obsidian/` folder exists
|
||||
|
||||
**"Plugin not found"**
|
||||
- Install plugin: `claude plugin add obsidian-vault-manager`
|
||||
|
||||
**"Missing dependencies"**
|
||||
- Install with: `brew install uv jq git`
|
||||
|
||||
## Re-running Setup
|
||||
|
||||
You can run `/setup` again to:
|
||||
- Update paths
|
||||
- Reconfigure GitHub Pages
|
||||
- Fix broken configuration
|
||||
|
||||
Existing configuration will be overwritten.
|
||||
66
commands/study-guide.md
Normal file
66
commands/study-guide.md
Normal file
@@ -0,0 +1,66 @@
|
||||
---
|
||||
description: Generate comprehensive study guide with AI-powered smart tagging from any content source
|
||||
argument-hint: [content-source] (file path, URL, or direct text to create study guide from)
|
||||
allowed-tools:
|
||||
- Skill(obsidian-vault-manager)
|
||||
- Bash(*)
|
||||
- Read(*)
|
||||
- mcp__fetch__fetch
|
||||
- mcp__obsidian-mcp-tools__create_vault_file
|
||||
- mcp__obsidian-mcp-tools__get_vault_file
|
||||
---
|
||||
|
||||
## Task
|
||||
|
||||
Execute the `obsidian-vault-manager` skill for study guide creation.
|
||||
|
||||
**Input**: `$ARGUMENTS` (file path, URL, or direct text)
|
||||
**Operation**: Study guide creation
|
||||
**Today's Date**: Run `date "+%Y-%m-%d"` to get current date
|
||||
|
||||
## Process
|
||||
|
||||
The skill will:
|
||||
1. Fetch content from URL, file, or direct text
|
||||
2. Apply bundled template: `templates/study-guide-template.md`
|
||||
3. Analyze content complexity, topics, and learning requirements
|
||||
4. Apply AI-powered smart tagging (using tag taxonomy)
|
||||
5. Generate structured learning plan with objectives and assessments
|
||||
6. Substitute all template variables with analyzed data
|
||||
7. Create note in vault using MCP Obsidian tools
|
||||
|
||||
## Tag Taxonomy Reference
|
||||
|
||||
**Topics:** AI, productivity, knowledge-management, development, learning, research, writing, tools, business, design, automation, data-science, web-development, personal-growth, finance
|
||||
**Status:** processing (default for study guides - active learning)
|
||||
**Metadata:** deep-dive, technical, conceptual, actionable, tutorial
|
||||
|
||||
## Expected Output
|
||||
|
||||
A comprehensive study guide with:
|
||||
- Proper frontmatter (title, tags, source, date, type, status, difficulty, estimated-time, priority)
|
||||
- Overview with subject and generated date
|
||||
- Learning objectives (specific, measurable, checkboxed)
|
||||
- Study plan with time estimates and difficulty level
|
||||
- Structured content breakdown (weekly/modular)
|
||||
- Study strategies (material-specific and active learning techniques)
|
||||
- Self-assessment questions (intermediate and final)
|
||||
- Progress tracking section
|
||||
- Related notes and connections
|
||||
- Tags analysis with filtering suggestions
|
||||
- Semantic search suggestions
|
||||
|
||||
**File naming format**: `[date]-[topic-name]-study-guide.md`
|
||||
**Tag count**: 6-8 tags total
|
||||
**Status**: Always `processing` (active study material)
|
||||
|
||||
## Examples
|
||||
|
||||
**Input (URL)**: "https://example.com/machine-learning-course"
|
||||
→ `2025-10-28-machine-learning-study-guide.md`
|
||||
|
||||
**Input (File)**: "react-advanced-patterns.md"
|
||||
→ `2025-10-28-react-advanced-study-guide.md`
|
||||
|
||||
**Input (Text)**: "Deep dive into distributed systems architecture"
|
||||
→ `2025-10-28-distributed-systems-study-guide.md`
|
||||
49
commands/youtube-note.md
Normal file
49
commands/youtube-note.md
Normal file
@@ -0,0 +1,49 @@
|
||||
---
|
||||
description: Fetch YouTube video transcript and create comprehensive material entry with AI-powered smart tagging
|
||||
argument-hint: [youtube-url-or-video-id] (YouTube URL or video ID to process)
|
||||
allowed-tools:
|
||||
- Skill(obsidian-vault-manager)
|
||||
- Bash(*)
|
||||
- mcp__obsidian-mcp-tools__create_vault_file
|
||||
- mcp__fetch__fetch
|
||||
---
|
||||
|
||||
## Task
|
||||
|
||||
Execute the `obsidian-vault-manager` skill for YouTube note capture.
|
||||
|
||||
**Input**: `$ARGUMENTS` (YouTube URL or video ID)
|
||||
**Operation**: YouTube video note creation
|
||||
**Today's Date**: Run `date "+%Y-%m-%d"` to get current date
|
||||
|
||||
## Process
|
||||
|
||||
The skill will:
|
||||
1. Extract video ID from URL/argument
|
||||
2. Use bundled script: `scripts/core/fetch-youtube-transcript.sh` to fetch transcript
|
||||
3. Fetch video metadata from YouTube page
|
||||
4. Apply bundled template: `templates/youtube-note-template.md`
|
||||
5. Analyze content and apply AI-powered smart tagging (using tag taxonomy)
|
||||
6. Substitute all template variables with analyzed data
|
||||
7. Create note in vault using MCP Obsidian tools
|
||||
|
||||
## Tag Taxonomy Reference
|
||||
|
||||
**Topics:** AI, productivity, knowledge-management, development, learning, research, writing, tools, business, design, automation, data-science, web-development, personal-growth, finance
|
||||
**Status:** inbox (default for new videos)
|
||||
**Metadata:** tutorial, deep-dive, quick-read, technical, conceptual, actionable, inspiration
|
||||
|
||||
## Expected Output
|
||||
|
||||
A comprehensive video note with:
|
||||
- Proper frontmatter (title, tags, url, cover, date, type, status, priority, duration, channel)
|
||||
- Clickable YouTube thumbnail
|
||||
- Description and learning objectives
|
||||
- Structured curriculum with timestamps
|
||||
- Key takeaways and insights
|
||||
- Rating section
|
||||
- Tags analysis and filtering suggestions
|
||||
- Related topics
|
||||
|
||||
**File naming format**: `[date]-[creator-name]-[descriptive-title].md`
|
||||
**Tag count**: 6-8 tags total
|
||||
Reference in New Issue
Block a user