Create, update, or query tasks — low-friction CRUD for the task tracking system
You are managing tasks in the vault's task tracking system. Tasks live as individual files in Tasks/ and a generated dashboard in Dashboard/Tasks.md.
The user provides a natural language instruction. Parse the intent:
| Intent | Examples |
|---|---|
| Create | "add task: draft Q2 roadmap", "new task write API docs due March 20", "task: review design spec" |
| Update status | "T-003 blocked waiting on legal", "move T-005 to in-progress", "T-002 cancelled — deprioritized" |
| Update fields | "set T-005 deadline to March 20", "T-003 priority P1", "T-004 owner Sarah" |
| Add comment | "T-003 comment: got partial feedback from eng", "note on T-005: waiting for design review" |
| Query single | "show T-001", "task T-003 details", "what's T-005?" |
| Query list | "list in-progress", "show blocked tasks", "what's in my inbox?", "all P1 tasks" |
| Quick batch create | "add tasks: 1) write docs, 2) review spec, 3) schedule sync" |
If the intent is ambiguous, infer the most likely action and proceed. Only ask if genuinely unclear.
Tasks/T-NNN - Title.md (one file per task — only active tasks: inbox, backlog, in-progress, blocked)Tasks/Archive/YYYY/MM-Month/T-NNN - Title.md (done/cancelled tasks, filed by completion/cancellation date)Tasks/_counter.md (frontmatter next_id field)Dashboard/Tasks.md (generated, not manually edited)inbox ↔ backlog → in-progress → done
↘ blocked (needs reason)
any state → inbox (deprioritized/delayed)
any state → cancelled (needs reason)
| Field | Required | Default | Notes |
|---|---|---|---|
| id | auto | T-NNN | Auto-incrementing, zero-padded to 3 digits |
| status | auto | inbox | |
| priority | no | (empty) | P1-P5, set during review or explicitly |
| owner | no | [YOUR NAME] | Only change if delegated |
| deadline | no | (empty) | YYYY-MM-DD format |
| source | no | (empty) | Wikilink to originating note |
| type | no | task | task or goal — never forced, only set if user specifies |
| created | auto | today | YYYY-MM-DD |
See templates/task-note.md for the file structure.
Tasks/_counter.md → get next_idT- + zero-padded to 3 digits (e.g., T-001, T-012)Tasks/T-NNN - [Title].md using template:
# heading- YYYY-MM-DD — Created (add source info if applicable)next_id in Tasks/_counter.mdDashboard/Tasks.md✅ Created [[T-NNN - Title]] (inbox)Minimal creation: Only a name is required. Everything else optional.
Batch creation: For multiple tasks, create all files, increment counter once at the end, regenerate dashboard once.
blocked and cancelled require a reason (ask if not provided)inbox from any state is always valid (deprioritization)done can come from any active statestatus- YYYY-MM-DD — Status: [old] → [new] (include reason for blocked/cancelled)done or cancelled: archive the task file:
Tasks/Archive/YYYY/MM-Month/ based on today's date (the completion/cancellation date)Tasks/ to the archive folderdone: update today's daily journal (see Daily Journal Updates below):
Dashboard/Tasks.md✅ T-NNN: [old] → [new] (add (archived) if moved)- YYYY-MM-DD — [Field]: [old] → [new]✅ T-NNN: [field] updated- YYYY-MM-DD — [Comment text]✅ Comment added to T-NNNTasks/ first, then Tasks/Archive/ if not found)Tasks/ (top-level only, skip _counter.md and Archive/)Tasks/Archive/ recursively📋 [Status] tasks (N):
- [[T-001 - Title]] (P2, due Mar 15) — last: [latest changelog entry]
- [[T-003 - Title]] (P1) — last: [latest changelog entry]
When regenerating Dashboard/Tasks.md:
Tasks/ (top-level only, skip _counter.md and Archive/)---