add-task
Use when you want to quickly capture a new task in the vault from a title, with optional priority and due date.
10 stars
Best use case
add-task is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Use when you want to quickly capture a new task in the vault from a title, with optional priority and due date.
Teams using add-task should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
$curl -o ~/.claude/skills/add-task/SKILL.md --create-dirs "https://raw.githubusercontent.com/AdrianV101/obsidian-pkm-plugin/main/skills/add-task/SKILL.md"
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/add-task/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How add-task Compares
| Feature / Agent | add-task | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Use when you want to quickly capture a new task in the vault from a title, with optional priority and due date.
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# Add Task — Fast Vault Task Capture
Create a task note with minimal friction. Duplicate check → create → confirm. Done in one pass.
## Step 1: Resolve Task Details
Extract from skill arguments or the user's message:
| Field | Source | Default |
|---|---|---|
| **title** | args / message | required — ask if missing |
| **priority** | args | `normal` |
| **due** | args (any recognisable date) | none |
| **description** | remaining text after title/priority/due | none |
Priority shorthands: `h` / `hi` / `high` → `high`; `u` / `urg` / `urgent` → `urgent`; `l` / `lo` / `low` → `low`; anything else → `normal`.
## Step 2: Detect Project
Read CLAUDE.md for the `# PKM: <path>` line (regex: `/^#\s+PKM:\s*(.+)$/m`):
- **Matched**: use the vault project path (e.g., `01-Projects/Obsidian-MCP`)
- **No match**: ask which project, or offer `00-Inbox` for unassigned tasks
Task path: `<project>/tasks/<kebab-title>.md`
- `<kebab-title>` = title lowercased, spaces → `-`, strip characters other than `a-z0-9-`
- `<project-folder-name>` for the `project:` frontmatter field is the **basename** of the vault path (e.g., `Obsidian-MCP` from `01-Projects/Obsidian-MCP`)
## Step 3: Duplicate Check
```
vault_semantic_search({ query: "<title>", folder: "<project>", limit: 3, threshold: 0.7 })
```
If unavailable (no `VAULT_PKM_OPENAI_KEY`):
```
vault_search({ query: "<title>", folder: "<project>" })
vault_query({ type: "task", folder: "<project>" })
```
If a similar task exists (similarity > 0.8 or exact/near-exact title in search results):
> "Similar task found: `<path>` — `<title>`. Create a new one anyway, or skip?"
If skipping, exit cleanly. If creating anyway, proceed.
## Step 4: Create Task Note
```
vault_write({
template: "task",
path: "<task-path>",
frontmatter: {
tags: ["task"],
status: "pending",
priority: "<priority>",
project: "<project-folder-name>",
...(due ? { due: "<YYYY-MM-DD>" } : {}) // omit due entirely if not provided
}
})
```
## Step 5: Fill Description (if provided)
If a description was given in Step 1, append it into the Description section:
```
vault_append({
path: "<task-path>",
heading: "## Description",
position: "after_heading",
content: "<description>"
})
```
Skip if no description was provided — leave the section blank for later.
## Step 6: Confirm
Report the created task concisely:
> **Task created**: `<project>/tasks/<kebab-title>.md`
> Priority: `<priority>` · Due: `<due or none>` · Status: `pending`Related Skills
We are still matching the closest adjacent skills for this page. In the meantime, continue through the full directory.