From personal-skills
Create a new Obsidian task note in the Personal vault under Projekt/Homelab/tasks/ when the user describes something they want to do, research, build, or install. Use this skill whenever the user says things like "create a task", "add a task", "I want to set up X", "remind me to research Y", "make a note to install Z", "log this as a task", "add this to my homelab tasks", or just describes a piece of work they want to track. Triggers on any new task, to-do, project idea, or research item the user wants to capture in their Obsidian vault. Don't wait for the user to say "Obsidian" explicitly — if they describe work to be tracked, use this skill.
How this skill is triggered — by the user, by Claude, or both
Slash command
/personal-skills:obsidian-task-creatorThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Creates a structured task note in the user's Obsidian **Personal** vault at `Projekt/Homelab/tasks/`.
Creates a structured task note in the user's Obsidian Personal vault at Projekt/Homelab/tasks/.
Given the user's description, you will:
The filename = the title value in the frontmatter. Keep it short (1–8 words), written in title case, capturing exactly what the task is. No date prefix, no numbering.
Good examples:
Set Up SMTP Relay with PostfixResearch Self-Hosted Password ManagerInstall Tailscale on Home ServerConfigure Automated BackupsUse good judgment to fill these in from context clues in the user's message. When unsure, prefer sensible defaults.
| Field | Values | Default |
|---|---|---|
status | To do · In Progress · On Hold · Done | To do |
category | Task · Planning · Research · Reference | Task (use Research if user says "look into", "explore", "figure out") |
priority | Low · Medium · High · Critical | Low |
project | Homelab · Email · Media | Homelab |
tags | list of lowercase strings | Infer relevant tags from technology names, tool names, concepts, and action type — be generous, more tags are fine as long as they're all relevant and non-duplicate |
links | list of URL strings | Extract any URLs the user mentions; otherwise omit or leave empty list |
Priority guidance: Default is always Low — only raise it when there's a clear signal:
Low — no urgency mentioned, just something to get to eventually (this is the default)Medium — user mentions a deadline, "soon", or mild urgencyHigh — user says "need to fix", "blocking", or something is degraded but still partially workingCritical — something is completely down or broken right now ("not starting", "stopped working", "ASAP", active outage)Project guidance:
Email → anything involving mail servers, SMTP, IMAP, spam filtering, DNS mail recordsMedia → media servers, streaming, Plex/Jellyfin, downloads, transcodingHomelab → everything else (networking, containers, VMs, monitoring, storage, auth, etc.)After the frontmatter, write three sections:
A concise paragraph (2–5 sentences) explaining what this task involves and what "done" looks like. Include any relevant constraints or context the user mentioned.
A short bullet list of useful starting points — official docs, relevant GitHub repos, Docker images, blog posts, or tools. Use your knowledge to suggest 2–5 genuinely useful resources even if the user didn't mention any. Format them as Markdown links where possible. Keep it focused — resist the urge to add checklists, sub-sections, or investigation steps here. The note should be a starting point, not a project plan.
A single dated entry using today's date (format: YYYY-MM-DD), briefly capturing how the task was initiated. One line, factual. This section will grow as the user works on the task — don't pre-fill it with checklists, sub-sections, or planned steps. That would be presumptuous and clutters the log before any real work has started.
## Notes / Log
- 2026-04-02: Task created — [one-line summary of intent]
Construct the full note content (frontmatter + body) and create it using:
obsidian vault="Personal" create path="Projekt/Homelab/tasks/<Title>.md" content="<escaped content>" silent
Critical: The content parameter uses \n for newlines. Construct the content string carefully — YAML frontmatter must use proper \n indentation, and the --- delimiters must be on their own lines. For the YAML list fields (tags, links), each item needs \n - value.
Practical approach — to avoid shell escaping nightmares with complex YAML, write the note to a temp file first, then use obsidian eval to read it into the vault:
# Write content to temp file
cat > /tmp/homelab_task.md << 'EOF'
---
title: Set Up SMTP Relay with Postfix
status: To do
category: Task
priority: Low
project: Email
tags:
- postfix
- smtp
- docker
links:
- https://www.postfix.org/BASIC_CONFIGURATION_README.html
---
## Description
Configure Postfix as an outbound SMTP relay...
## Resources
- [Postfix documentation](https://www.postfix.org)
## Notes / Log
- 2026-04-02: Task created — set up outbound SMTP relay with TLS and DKIM support
EOF
# Create the note in Obsidian via eval
obsidian vault="Personal" eval code="
const content = require('fs').readFileSync('/tmp/homelab_task.md', 'utf8');
await app.vault.create('Projekt/Homelab/tasks/Set Up SMTP Relay with Postfix.md', content);
'done'
"
If the note already exists, vault.create will throw. In that case, use vault.modify on the existing file instead, or prompt the user to confirm overwrite.
After creating the note, tell the user:
Keep it brief. No need to repeat the full note content.
---
title: <Short Title>
status: To do
category: Task
priority: Low
project: Homelab
tags:
- tag1
- tag2
links:
- https://example.com
---
## Description
<2-5 sentences describing the task and what done looks like.>
## Resources
- [Resource name](https://url)
- [Another resource](https://url)
## Notes / Log
- YYYY-MM-DD: Task created — <one-line intent summary>
Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.
npx claudepluginhub tryy3/agent-skills --plugin personal-skills