name: task-create
description: Create a new task with a title and optional description, priority, tags, and linked GitHub issue. Creates a task folder and inserts into SQLite.
argument-hint: [--desc "description"] [--priority high] [--issue 123] [--tags "tag1,tag2"]
disable-model-invocation: true
Task Create Skill
Creates a new local task for tracking work.
Instructions
Parse
$ARGUMENTS:- The first unquoted/unflagged text is the title (required)
--desc "..."— optional description--priority <level>— critical, high, medium, low (default: medium)--issue <number>— optional GitHub issue number to link--tags "tag1,tag2"— optional comma-separated tags
Generate a slug from the title: lowercase, replace spaces/special chars with hyphens, truncate to 50 chars. Example: "Fix booking flow" -> "fix-booking-flow"
Create the task folder:
SLUG="<generated-slug>"
TASK_DIR="$CLAUDE_PROJECT_DIR/.claude/tasks/$SLUG"
mkdir -p "$TASK_DIR"
- Create a
TASK.mdin the folder with the task details:
# <Title>
**Status:** todo
**Priority:** <priority>
**Created:** <timestamp>
**Tags:** <tags or "none">
**GitHub Issue:** <#number or "none">
## Description
<description or "No description provided.">
## Notes
<!-- Add working notes here -->
- Insert into SQLite:
DB_PATH="$CLAUDE_PROJECT_DIR/.claude/journal/journal.db"
TIMESTAMP=$(date -u '+%Y-%m-%d %H:%M:%S')
sqlite3 "$DB_PATH" "INSERT INTO tasks (slug, title, description, status, priority, tags, github_issue, folder_path, created_at, updated_at) VALUES ('<slug>', '<title_escaped>', '<desc_escaped>', 'todo', '<priority>', '<tags_json>', <issue_or_null>, '.claude/tasks/<slug>/', '$TIMESTAMP', '$TIMESTAMP');"
- Confirm by showing:
- Task ID (from
last_insert_rowid()) - Title, priority, status
- Folder path
- Suggest using
/workflow-toolkit:task-start <id>when ready to begin
- Task ID (from