List Tasks
List tasks by scanning task files directly — no CLI required.
Instructions
The user's arguments are in $ARGUMENTS (e.g. --status pending, --priority high, a directory path).
Find the task directory:
- Read
.taskmd.yamlif it exists to check for a customdirfield - Default to
tasksif not configured or file doesn't exist
- Read
Scan for task files: Use
Globwith pattern<task-dir>/**/*.md- Exclude files in
.worklogs/directories - Exclude files that don't have YAML frontmatter
- Exclude files in
Read and parse each task file:
- Read each file and extract YAML frontmatter (between first
---and second---) - Parse fields: id, title, status, priority, effort, type, tags, group, owner, phase, dependencies, created
- Read each file and extract YAML frontmatter (between first
Apply filters from
$ARGUMENTS:--status <value>: Show only tasks matching this status--priority <value>: Show only tasks matching this priority--filter effort=<value>: Show only tasks matching this effort (supports >=, >, <=, <)--filter type=<value>: Show only tasks matching this type--filter tags=<value>: Show only tasks containing this tag--filter owner=<value>: Show only tasks matching this owner--phase <value>: Show only tasks matching this phase--scope <value>: Show only tasks in this scope (supports wildcards)- A directory path: Only scan that directory instead of the full task dir
Status and priority are exact enum values, not descriptions.
--status pendingmeansstatus: pendingonly — it does not includein-progress.--priority highdoes not includecritical. When the user's wording is broader than the enum ("what's not done", "what's urgent"), say which statuses or priorities you included.Display results as a formatted table:
ID | Status | Priority | Title ------|-------------|----------|------------------------------- 001 | pending | high | Implement user auth 002 | in-progress | medium | Fix login bugIf no tasks match the filters, inform the user.
See SPEC_REFERENCE.md (in the plugin root) for valid field values and frontmatter schema.