Claude Code Plugins

Community-maintained marketplace

Feedback

This skill should be used when the user asks to "add a task", "create task", "new task", or "task to do X". Adds timestamped tasks to daily note log with optional due dates.

Install Skill

1Download skill
2Enable skills in Claude

Open claude.ai/settings/capabilities and find the "Skills" section

3Upload to Claude

Click "Upload skill" and select the downloaded ZIP file

Note: Please verify skill by going through its instructions before using it.

SKILL.md

name task-add
description This skill should be used when the user asks to "add a task", "create task", "new task", or "task to do X". Adds timestamped tasks to daily note log with optional due dates.
auto_trigger true
trigger_keywords add a task, add task, create task, create a task, task to do, new task, task for, task due, task by
allowed-tools Read, Edit

Task Add

Automatically add a timestamped task entry to today's daily note log when user wants to create a task. Due date is optional.

Trigger Detection

This skill activates when the user's prompt contains task creation intent:

  • "add a task to review PR"
  • "add a task to do X by DATE"
  • "create task to X due DATE"
  • "new task: X"
  • "task to do X for DATE"

Due date is optional. If no due date is mentioned, omit the 📅 portion from the task.

Examples

User prompts that trigger this skill:

  • "add a task to review PR" (no due date - task added without 📅)
  • "add a task to review PR by tomorrow" (with due date)
  • "create a task to call dentist by 2025-12-31"
  • "task to do laundry by Friday"
  • "new task: finish report due Jan 5"

User prompts that DO NOT trigger this skill:

  • "create a task" (no description)
  • "what tasks do I have" (query, not creation)

Process

  1. Check for due date (optional)

    • Check if prompt contains date reference (by, due, for + date)
    • If no date found, proceed without due date
  2. Get current time

    • Parse from injected UserPromptSubmit hook context: "Time: HH:MM"
    • IMPORTANT: Do NOT use Bash or PowerShell commands.
  3. Extract task description

    • Remove trigger words ("add a task to", "task to do", etc.)
    • Extract description before the due date reference
    • Preserve any [[wikilinks]] in the description
  4. Extract and parse due date

    • Look for date reference after "by", "due", "for"
    • Parse natural language dates:
      • "tomorrow" → next day (YYYY-MM-DD)
      • "Friday" → next Friday (YYYY-MM-DD)
      • "2025-12-31" → ISO format (YYYY-MM-DD)
      • "Jan 5" / "January 5" → YYYY-01-05
    • Format: YYYY-MM-DD (ISO 8601)
  5. Construct daily note path

    • Path: {paths.daily_notes}/YYYY-MM-DD.md (from config)
  6. Read the daily note

    • Find the Log section (from config sections.log)
  7. Add the task entry

    • Format: - [ ] HH:MM [description] 📅 YYYY-MM-DD (omit 📅 portion if no due date)
    • Use the calendar emoji: 📅 (U+1F4C5) when due date is present
    • Add after the last log entry in the section
    • Use Edit tool to insert the new entry
    • Check Edit result - if blocked or failed:
      • Inform user: "Edit was blocked or failed. Please confirm the mutation or add manually."
      • Do NOT proceed to confirmation
  8. Verify the write succeeded

    • Re-read the daily note file
    • Search for the newly added task text (the exact description + timestamp)
    • If NOT found: Alert user "Task write failed - please add manually: - [ ] HH:MM [description]"
    • If found: Proceed to confirmation
  9. Confirm (only if Step 8 succeeded)

    • Display the added task with timestamp, description, and due date

Task Entry Format

## Log

- [ ] 20:50 Review PR #123 📅 2025-12-31
- [ ] 14:22 Call dentist 📅 2026-01-05
- [ ] 09:15 Finish quarterly report

Format Components

  1. Checkbox: - [ ] (unchecked task)
  2. Timestamp: HH:MM (when task was created)
  3. Description: Free text with optional [[wikilinks]]
  4. Due date emoji: 📅 (calendar emoji, U+1F4C5) - optional
  5. Due date: YYYY-MM-DD (ISO 8601 format) - optional

Date Parsing Rules

Supported Date Formats

Relative dates (calculate from injected context date):

  • "tomorrow" → +1 day
  • "today" → same day
  • "Monday", "Tuesday", etc. → next occurrence of day
  • "next Monday" → following Monday
  • "in 3 days" → +3 days

Absolute dates:

  • "2025-12-31" → use as-is (ISO format)
  • "12/31/2025" → convert to 2025-12-31
  • "Dec 31" → current year + 12-31
  • "January 5" → current year + 01-05

Edge Cases

  • If date is in the past, use it anyway (user may want to track overdue tasks)
  • If date is ambiguous ("Friday" on a Friday), assume next Friday
  • If date cannot be parsed, ask user: "Please specify the due date as YYYY-MM-DD"

Critical Rules

  • Due date optional: Include 📅 portion only if due date is mentioned
  • Calendar emoji: Use 📅 (U+1F4C5) when due date present
  • ISO date format: Always YYYY-MM-DD for due dates
  • Timestamp required: Always include HH:MM format for task creation time
  • Preserve structure: Don't modify other sections
  • Task format: Use - [ ] HH:MM description [📅 YYYY-MM-DD]
  • Wikilinks: Preserve any [[wikilinks]] in the user's description

Six Gates Compliance

Gate Implementation
1. Read Before Write Reads daily note before adding task (step 6)
2. File Exists Validates daily note exists; creates if missing
3. Chain Validation N/A (single operation)
4. Mutation Confirmation Task shown to user before write
5. Health Check Uses vault config infrastructure
6. Post Validation Re-reads file and verifies task was written (step 8)

Configuration

This skill uses these config values:

  • paths.daily_notes: Folder containing daily notes (default: "daily-notes")
  • sections.log: Log section header (default: "## Log")