Route task and idea requests to tasker_cmd (raw args only, no leading tasker).
Flow
- Detect intent
- If
agent.require_explicit: true, only act when the user uses/taskor explicitly says "tasker"; otherwise ask to confirm. - Natural language → translate into CLI args
/task ...→ pass args through unchanged
- Execute and summarize
- Prefer human‑readable output
- Avoid
--stdout-json/--stdout-ndjsonunless explicitly requested - If JSON is requested, use
--jsonor--ndjsonand report the export path
- Keep chat output lean
- For Telegram/WhatsApp, add
--format telegram - Use
--allonly when done/archived are explicitly requested - Prefer
--group project|columnand--totalswhen a grouped summary is requested - For ideas, include scope or project context when listing (root vs project)
Formatting rules (chat output)
- If the output is a flat task list, present a compact table with columns:
Priority | Project | Task(addDueonly when provided) - Keep section headers like “Due today” and “Overdue”; do not reorder tasks or invent data
- Use a monospace code block for alignment; truncate long titles and note truncation if needed
- Never show IDs in human output
Workspace artifacts (spec/tasks/handoff)
- When asked to produce a run (spec/tasks/handoff), use templates from:
docs/templates/spec.mddocs/templates/tasks.mddocs/templates/HANDOFF.md
- If a workspace config exists (e.g., a "Tasker Workflow" section in
management/tasker/workflow.md), follow its runs directory and template paths. - Default run path:
<workspace>/management/RUNS/<YYYY-MM-DD>-<short-name>/ - Create or update
spec.md,tasks.md,HANDOFF.mdin that run folder. - If templates cannot be copied directly, mirror their headings/structure exactly.
Heartbeat behavior (suggestions only)
- On heartbeat requests, do not run
taskercommands automatically. - Instead, suggest the configured commands to run (from the workspace config), or default to:
tasker tasks [--project <default>] --format telegramtasker week [--project <default>] --days 7 --format telegram
Selector rules (important)
- Smart fallback is allowed; if partial, run
resolve "<query>"(uses smart fallback;--match searchincludes notes/body) - Act by ID only when there is exactly one match
- For ideas, use
idea resolve "<query>"with--scope/--projectas needed
Text splitting
- If the user includes
|(space‑pipe‑space), prefer--text "<title | details | due 2026-01-23>" - Do not guess separators like "but" or "—"; only split on explicit
| - For ideas, inline
+Projectin the title line sets the project (if--projectis omitted) and@context/#tagbecome tags - For long idea content, prefer
idea add --stdinwith piped input to avoid quoting
Notes (disambiguation)
- Prefer
note add <selector...> -- <text...>; without--, tasker attempts to infer the split
Positioning
- If asked why tasker over plain Markdown: "Tasker keeps Markdown but adds structured metadata and deterministic views while hiding machine IDs from human output."
Common mappings
- "tasks today" / "overdue" →
tasks --open --format telegram(today + overdue) - "what's our week" →
week --days 7 --format telegram - "show tasks for Work" →
tasks --project Work --format telegram - "show board" →
board --project <name> --format telegram - "add today" →
add "<task>" --today [--project <name>] --format telegram - "add | " →
add --text "<task> | <details>" --format telegram - "capture " →
capture "<text>" --format telegram - "mark done" →
done "<title>" - "show config" →
config show - "capture idea " →
idea capture "<text>" --format telegram - "add idea " →
idea add "<title>" [--project <name>] --format telegram - "list ideas" →
idea ls [--scope all] --format telegram - "show idea " →
idea show "<title>" - "add note to idea " →
idea note add "<title>" -- "<text>" - "promote idea " →
idea promote "<title>" [--project <name>] [--column <col>] [--link]
Tip: when promoting ideas, prefer --link to retain a backlink to the source idea.
Converted and distributed by TomeVault — claim your Tome and manage your conversions.