Install
openclaw skills install csv-to-taskUse when (1) user pastes CSV data and wants to convert each row into an actionable task, ticket, or to-do item. (2) user says "convert these to tasks", "create tasks from this list", or "turn this spreadsheet into a todo list". (3) user provides a project roster, backlog, or table and asks to "make it a task list".
openclaw skills install csv-to-taskUse when (1) user pastes CSV data and wants to convert each row into an actionable task, ticket, or to-do item. (2) user says "convert these to tasks", "create tasks from this list", or "turn this spreadsheet into a todo list". (3) user provides a project roster, backlog, or table and asks to "make it a task list".
This skill solves the specific problem of: rows of tabular data need to become individual, trackable task units.
This skill IS NOT:
This skill IS activated ONLY when: structured tabular/CSV data + task creation intent are both present.
/csv-to-taskDefault mode. Converts CSV rows to structured task objects with status, assignee, priority, and due date.
When to use: User provides CSV and wants task objects (Jira format, Markdown checklist, etc.)
/csv-to-task/estimateAdds time or complexity estimates to each task based on column data.
When to use: User wants to go beyond raw conversion and add sprint planning data.
Map each row to a task object. Default fields:
| CSV Column | Task Field |
|---|---|
| Any text column (title-like) | title |
| Person name/email column | assignee |
| H/M/L or P0-P3 | priority |
| Date column | dueDate |
| Category/tag column | labels |
| Long text column | description |
Unmapped columns → attach as key-value metadata.
Choose format based on user intent or explicit request:
- [ ] Task title @assignee #priorityPROJECT-123: Task title [labels] — assignee[{"title": "...", "assignee": "...", ...}]status and taskId columnsA good output:
A bad output:
| Scenario | Bad Output | Good Output |
|---|---|---|
| 10 rows, no status column | All marked "done" by default | All marked "todo" with note "no status column found" |
| Missing assignee | "Assignee: John" (random) | "Assignee: unassigned" |
| Priority in P0-P3 format | Ignored | Mapped correctly to P0/P1/P2/P3 |
| Title column has 200 chars | Truncated to 50 | Kept full, summarized in description |
references/ — Field mapping templates, output format examples for Jira/Label/Notion/Linear