| name | use-my-pkm |
| description | Access and work with the user's personal knowledge management vault using $MY_PKM_PATH environment variable. Use when the user asks to work with their PKM system, notes, Kanban board, inbox items, or knowledge vault. Supports reading/writing notes, managing Kanban tasks, organizing inbox, and navigating the vault structure. |
Use My PKM
Work with the user's personal knowledge management vault.
Vault Location
Path: $MY_PKM_PATH (environment variable)
Set this variable to your vault location:
export MY_PKM_PATH=~/Vaults/my-pkm/my-pkm
IMPORTANT: Always use $MY_PKM_PATH in all commands, never hardcode the path.
Vault Structure
$MY_PKM_PATH/
โโโ 0-inbox/ # Temporary notes (organize later)
โโโ 1-notes/ # Organized notes (may have subdirs)
โโโ my-kanban.md # Kanban board for task management
Note: We do NOT use PARA method. Simple structure: inbox + notes.
Kanban Board Format
The Kanban board is just a markdown file with special formatting for the obsidian-kanban plugin.
File: $MY_PKM_PATH/my-kanban.md
Structure
---
kanban-plugin: board
---
## Column Name
- [ ] Task item
- [ ] Task with link [[Note Name]]
%% kanban:settings
{"kanban-plugin":"board","list-collapse":[false,false,false,false,false]}
%%
Key Points
- YAML frontmatter:
kanban-plugin: board
- Headers (
##) = Columns
- Checkboxes (
- [ ]) = Cards/Tasks
- Wiki-links (
[[Note Name]]) = Link to notes in vault
- Settings block at bottom (auto-generated by plugin)
Current Columns
- Backlog
- This-week
- WIP
- W8-for-feedback
- Done
Critical PKM Rules
1. Concise Kanban Task Titles
ALWAYS extract concise, actionable titles from verbose input.
Examples:
| User Says (Verbose) | Kanban Title (Concise) | Linked Note |
|---|
| "Transfer money to wife tomorrow at 3pm, she said she needs it for groceries and utility bill" | Transfer money to wife | [[Transfer-2026-01-24]] |
| "Remind me to call John about the project, he wanted to discuss the timeline and requirements" | Call John about project | [[Call-John-2026-01-24]] |
| "Add task: review the feature spec that Tom sent yesterday, need to provide feedback by Friday" | Review feature spec | [[Feature-Spec-Review]] |
| "I need to prepare slides for Monday's presentation about Q4 results" | Prepare Q4 presentation slides | [[Q4-Presentation]] |
Pattern:
- Extract: Action + Object (e.g., "Transfer money", "Call John", "Review spec")
- Omit: When, why, who said what, contextual details
- These details go into the linked note
2. Always Link Tasks to Detailed Notes
Every task with context MUST link to a note with full details.
Format:
## WIP
- [ ] Concise task title [[Note-Name]]
Note Template:
# Note-Name
**Due:** [When]
**Context:**
- [Detail 1]
- [Detail 2]
- [Detail 3]
**Status:** [Pending/In Progress/Blocked/Done]
Example:
Boss says: "Transfer money to wife tomorrow at 3pm, she needs it for groceries and also to pay the utility bill"
Kanban:
## WIP
- [ ] Transfer money to wife [[Transfer-2026-01-24]]
Note: $MY_PKM_PATH/1-notes/Transfer-2026-01-24.md
# Transfer-2026-01-24
**Due:** Tomorrow 3pm (2026-01-25 15:00)
**Context:**
- Wife needs money for groceries
- Also to pay utility bill
**Amount:** [To be confirmed]
**Status:** Pending
3. Auto-Organize Notes into Subdirectories
When 5+ notes on the same topic exist, create a subdirectory and move them.
Detection:
- Monitor
1-notes/ directory
- Group notes by topic (finance, work, personal, health, etc.)
- When count >= 5, auto-organize
Steps:
- Detect topic from note titles/content
- Create subdirectory:
$MY_PKM_PATH/1-notes/[topic]/
- Move related notes into subdirectory
- Verify wiki-links still work (Obsidian finds notes by name regardless of path)
- Report organization to user
Example:
Before:
1-notes/
โโโ Transfer-2026-01-20.md
โโโ Budget-Review.md
โโโ Invoice-Payment.md
โโโ Expense-Report.md
โโโ Tax-Prep-2026.md
โโโ Meeting-Notes.md
After (5+ finance notes detected):
1-notes/
โโโ finance/
โ โโโ Transfer-2026-01-20.md
โ โโโ Budget-Review.md
โ โโโ Invoice-Payment.md
โ โโโ Expense-Report.md
โ โโโ Tax-Prep-2026.md
โโโ Meeting-Notes.md
Report: "I organized five finance notes into a finance subdirectory"
4. Preserve Kanban Format
NEVER modify:
- YAML frontmatter:
kanban-plugin: board
- Settings block:
%% kanban:settings ... %%
ALWAYS preserve:
- Exact column names
- Checkbox format:
- [ ] (space between brackets for incomplete)
- Wiki-link format:
[[Note Name]] (no .md extension)
Common Operations
Read Kanban Board
cat "$MY_PKM_PATH/my-kanban.md"
Use cases:
- User asks "What's on my plate?"
- User says "Show me my tasks"
- Before moving a task (need to find it first)
Add Task to Kanban
Step 1: Extract concise title from user input
Step 2: Determine column (Backlog, This-week, WIP, W8-for-feedback, Done)
Step 3: Add task with wiki-link:
## [Column Name]
- [ ] Concise task title [[Note-Name]]
Step 4: Create detailed note in 1-notes/ with full context
Step 5: Report completion to user
Move Task Between Columns
Step 1: Read Kanban to find task
Step 2: Remove from source column
Step 3: Add to destination column (preserve wiki-link)
Step 4: Report completion
Example:
Create New Note
In inbox (temporary/quick capture):
echo "Content" > "$MY_PKM_PATH/0-inbox/Note Title.md"
In notes (organized):
echo "Content" > "$MY_PKM_PATH/1-notes/Note Title.md"
Best practice:
- Quick captures โ inbox
- Linked from Kanban โ 1-notes/ (organized)
Move Note from Inbox to Notes
mv "$MY_PKM_PATH/0-inbox/Note.md" "$MY_PKM_PATH/1-notes/Note.md"
List All Notes
find "$MY_PKM_PATH" -name "*.md" -not -path "*/.obsidian/*" -not -name "my-kanban.md"
Search Notes Content
grep -r "search term" "$MY_PKM_PATH" --include="*.md" --exclude-dir=".obsidian"
Check for Auto-Organization Opportunities
find "$MY_PKM_PATH/1-notes" -maxdepth 1 -name "*.md" -type f
Working with Wiki-Links
Wiki-links ([[Note Name]]) in Obsidian reference the note by name, not path.
- Link works regardless of folder:
[[My Note]] finds 1-notes/My Note.md or 1-notes/finance/My Note.md
- Use exact note name without
.md extension
- Links are case-sensitive
- Advantage: Notes can be moved into subdirectories without breaking links
Best Practices
- Use environment variable - Always use
$MY_PKM_PATH, never hardcode paths
- Preserve frontmatter - Keep
kanban-plugin: board in my-kanban.md
- Preserve settings block - Don't modify the
%% kanban:settings section
- Wiki-links for connections - Use
[[Note Name]] to link related notes
- Inbox for quick capture - Put temporary/unorganized notes in
0-inbox/
- Notes for organized content - Move curated notes to
1-notes/
- Concise Kanban titles - Extract key action, put details in linked note
- Auto-organize proactively - Create subdirectories when notes accumulate
Example Workflows
Workflow 1: Add Task with Context (DETAILED)
User says: "Add to WIP: transfer money to wife tomorrow at 3pm, she needs it for groceries and utility bill"
Your steps:
-
Extract concise title: "Transfer money to wife"
-
Create note: $MY_PKM_PATH/1-notes/Transfer-2026-01-24.md
# Transfer-2026-01-24
**Due:** Tomorrow 3pm (2026-01-25 15:00)
**Context:**
- Wife needs money for groceries
- Also to pay utility bill
**Status:** Pending
-
Read Kanban:
cat "$MY_PKM_PATH/my-kanban.md"
-
Add to WIP column:
Find ## WIP section, add:
- [ ] Transfer money to wife [[Transfer-2026-01-24]]
-
Save Kanban (preserve YAML and settings block)
-
Respond: "Added to WIP: Transfer money to wife. Created note with details."
Workflow 2: Move Task
User says: "Move the transfer money task to Done"
Your steps:
-
Read Kanban:
cat "$MY_PKM_PATH/my-kanban.md"
-
Find task in WIP:
## WIP
- [ ] Transfer money to wife [[Transfer-2026-01-24]]
-
Remove from WIP
-
Add to Done (mark as completed):
## Done
- [x] Transfer money to wife [[Transfer-2026-01-24]]
-
Save Kanban
-
Respond: "Moved transfer money to Done"
Workflow 3: Quick Inbox Capture
User says: "Quick note: John mentioned the Q4 review is next Thursday"
Your steps:
-
Create in inbox:
echo "John mentioned the Q4 review is next Thursday" > "$MY_PKM_PATH/0-inbox/Q4-Review-$(date +%Y%m%d).md"
-
Respond: "Saved note to inbox"
Workflow 4: Auto-Organize Notes
You notice: 6 finance-related notes in 1-notes/:
- Transfer-2026-01-20.md
- Budget-Review.md
- Invoice-Payment.md
- Expense-Report.md
- Tax-Prep-2026.md
- Credit-Card-Statement.md
Your steps:
-
Create subdirectory:
mkdir -p "$MY_PKM_PATH/1-notes/finance"
-
Move notes:
mv "$MY_PKM_PATH/1-notes/Transfer-2026-01-20.md" "$MY_PKM_PATH/1-notes/finance/"
mv "$MY_PKM_PATH/1-notes/Budget-Review.md" "$MY_PKM_PATH/1-notes/finance/"
-
Verify wiki-links still work (Obsidian finds by name, not path)
-
Respond: "I organized six finance notes into a finance subdirectory"
Workflow 5: What's on my plate?
User says: "What do I need to do today?"
Your steps:
-
Read Kanban:
cat "$MY_PKM_PATH/my-kanban.md"
-
Extract tasks from This-week and WIP columns
-
Count tasks: 3 found
-
Respond naturally: "You have three tasks today: Transfer money to wife, Call John about project, and Review feature spec"
Disambiguation: PKM Backlog vs Project Backlog
Problem: Multiple "backlogs" exist:
- PKM Kanban Backlog column
- Project backlogs (e.g., Jarvis project backlog, trading-bot backlog)
Solution: Default to PKM + Context Clues
Default Rule:
- "Add to backlog" โ PKM Kanban Backlog column (most common)
Context Clues for Project Backlog:
- Explicitly mentions project name: "Add to jarvis backlog", "Add to trading-bot backlog"
- Clearly technical: "Add to backlog: implement voice feedback", "Add to backlog: fix database migration"
- Keywords: "feature", "bug", "refactor", "implement", "deploy"
When Ambiguous:
- Ask for clarification: "Do you want this in your personal backlog or the [project] backlog?"
Examples:
| User Says | Interpretation |
|---|
| "Add to backlog: transfer money to wife" | PKM Kanban Backlog (personal task) |
| "Add to backlog: call John" | PKM Kanban Backlog (personal task) |
| "Add to backlog: implement voice feedback for jarvis" | Jarvis project backlog (technical + project name) |
| "Add to jarvis backlog: fix TTS voice quality" | Jarvis project backlog (explicit project name) |
| "Add to backlog: review code" | AMBIGUOUS โ Ask: "Personal or project backlog?" |
Notes
- This vault uses Obsidian with the obsidian-kanban plugin
- The vault is synced across computers (Obsidian Sync or similar)
- Changes made via CLI will reflect in Obsidian UI immediately
- Always use
$MY_PKM_PATH environment variable for paths
- Set
MY_PKM_PATH in your shell profile (~/.bashrc, ~/.zshrc, etc.)
- Concise task titles + detailed notes = clean Kanban board
- Auto-organize when notes accumulate (5+ threshold)