Manage tasks, projects, and areas using the tdn CLI. Use when the user wants to create, update, query, or organize their tasks. This skill helps Claude work as a productivity assistant for life and work tasks.
This skill teaches you to work with the tdn task management system — a file-based productivity system where tasks, projects, and areas are stored as markdown files with YAML frontmatter.
When helping with task management, think like a GTD coach or project manager, not a software engineer.
Key mindset shifts:
You still have all your capabilities, but for task management work, adopt a productivity-focused approach.
This system draws from two influential productivity frameworks:
The tdn system combines GTD's workflow practices with PARA's organizational hierarchy.
The system uses a GTD/PARA-inspired hierarchy:
| Entity | Purpose | Example | | ----------- | ----------------------------------------- | -------------------------- | | Task | Single actionable item | "Call dentist" | | Project | Collection of tasks with an end goal | "Q1 Planning" | | Area | Ongoing responsibility (never "finished") | "Health", "Work", "Family" |
Tasks can belong to a project or directly to an area. Projects belong to areas.
Everything is a markdown file with YAML frontmatter:
tasksDir (eg ~/notes/tasks/)projectsDir (eg ~/notes/projects/)areasDir (eg ~/notes/areas/)These directories can be anywhere on the filesystem — they don't need to be together.
A vault is simply the collection of these three configured directories. It's not a special format — just markdown files that follow the tdn specification.
Some users keep their tdn directories inside an Obsidian vault. If the tdn files are inside Obsidian (look for a .obsidian/ folder or [[wikilinks]] in files), additional considerations apply — see obsidian.md for guidance on bases, templates, links, and Obsidian-specific patterns.
If the tdn files are standalone markdown outside Obsidian, ignore obsidian.md entirely.
NEVER run tdn commands in plain human mode. Human mode uses interactive prompts that will hang.
# WRONG - will hang waiting for input
tdn new
# CORRECT - structured output, no prompts
tdn new "My task" --ai
# ALSO CORRECT - JSON output when needed
tdn list --json
# ALSO CORRECT - composed flags (markdown in JSON envelope)
tdn context --ai --json
| Flag | Output | Use When |
| ------------- | ------------------------- | -------------------------------------------------------- |
| --ai | Structured Markdown | Default for all operations |
| --json | JSON | Need structured data for further processing |
| --ai --json | Markdown in JSON envelope | Need both human-readable content and structured metadata |
Prefer --ai for most operations. Use --json when you need to parse the output programmatically.
To find where task files are stored, run:
tdn config
This shows the resolved configuration (accounting for local overrides):
tasksDir: /Users/danny/notes/tasks
projectsDir: /Users/danny/notes/projects
areasDir: /Users/danny/notes/areas
Use these absolute paths when you need to access files directly with Read, Glob, or Grep.
~/.taskdn.json./.taskdn.json (in current directory)Local config takes precedence over global.
| Command | Purpose | Example |
| ----------------- | --------------------------- | ------------------------------------------------ |
| tdn list | Query and filter entities | tdn list --status ready --ai |
| tdn show | Full entity details | tdn show "Fix bug" --ai |
| tdn new | Create task/project/area | tdn new "Call dentist" --due tomorrow --ai |
| tdn context | Overview with relationships | tdn context --ai |
| tdn today | Today's actionable tasks | tdn today --ai |
| tdn set status | Change status | tdn set status "Fix bug" done --ai |
| tdn update | Modify fields | tdn update "Fix bug" --set due=2025-01-20 --ai |
| tdn archive | Move to archive | tdn archive "Old task" --ai |
| tdn append-body | Add notes to body | tdn append-body "Fix bug" "Made progress" --ai |
| tdn doctor | Health check | tdn doctor --ai |
For entity types other than tasks, add the type:
tdn list projects --ai
tdn new project "Q2 Planning" --ai
tdn context area "Work" --ai
See command-reference.md for complete documentation.
| Operation | Approach | Why |
| -------------------------------- | --------------------------- | ---------------------------------- |
| Get overview/context | CLI: tdn context --ai | Hierarchical output, relationships |
| List/filter tasks | CLI: tdn list --ai | Built-in filtering, sorting |
| Read task body for summarization | Direct: Read | Faster, full content |
| Create new task | CLI: tdn new --ai | Proper timestamps, filename |
| Update status | CLI: tdn set status --ai | Auto-sets completed-at |
| Update fields | CLI: tdn update --ai | Preserves unknown frontmatter |
| Append notes | CLI: tdn append-body --ai | Proper formatting |
| Bulk analysis of many files | Direct: Read + Glob | More efficient |
| Search across task bodies | Direct: Grep | Full-text search |
General rule: Use CLI for mutations (create, update, delete). Use direct file access for bulk reading and analysis.
See decision-guide.md for detailed guidance.
When you need to understand the file structure or create files without the CLI, see templates.md for:
Note: The CLI's tdn new command handles file creation with proper timestamps and filenames. Only use templates for reference or edge cases.
If a tdn command fails:
NOT_FOUND — entity doesn't exist (check spelling, use tdn list to find it)AMBIGUOUS — multiple matches (use the file path instead of title)INVALID_STATUS — wrong status value (see specification.md)PARSE_ERROR — malformed frontmatter (check the file manually)This plugin provides:
/tdn:today — Show today's actionable tasks/tdn:prime - Primes the current session with tdn context --aiUse slash commands for quick, focused operations.
npx skills add dannysmith/任务管理下载完整 Skill 目录,包含 SKILL.md 及所有相关文件
Google Workspace CLI for Gmail, Calendar, Drive, Contacts, Sheets, and Docs.
Manage Apple Notes via the `memo` CLI on macOS (create, view, edit, delete, search, move, and export notes). Use when a user asks OpenClaw to add a note, list notes, search notes, or manage note folders.
Work with Obsidian vaults (plain Markdown notes) and automate via obsidian-cli.
Use when you need to control Slack from OpenClaw via the slack tool, including reacting to messages or pinning/unpinning items in Slack channels or DMs.
Manage Apple Reminders via remindctl CLI (list, add, edit, complete, delete). Supports lists, date filters, and JSON/plain output.
Manage Trello boards, lists, and cards via the Trello REST API.
Category:productivity