Claude
Skills
Sign in
โ† Back

todo-keeper

Included with Lifetime
$97 forever

# Todo Keeper Skill

Productivity

What this skill does

# Todo Keeper Skill

## Description

Comprehensive task management system that integrates Claude Code's TodoWrite tool with Obsidian daily notes and CLAUDE.md project tracking. Provides unified task visibility across all systems.

## Purpose

This skill enables seamless task management across multiple contexts:
- Session-based tasks (Claude TodoWrite)
- Daily task lists (Obsidian daily notes)
- Project-level tasks (CLAUDE.md)
- Code-linked tasks (specific files/functions)

## When to Invoke

**Auto-Invoke** (proactive):
- When user mentions "TODO", "task", "need to", "should"
- When completing significant work (suggest marking task done)
- At session start (show pending tasks)
- At session end (sync tasks to daily note)

**Manual Invoke** (explicit):
- User types `/todo` command
- User asks to "show tasks", "list todos", "what's pending"
- User wants to add, complete, or organize tasks

## Core Capabilities

### 1. Unified Task View

Aggregate tasks from multiple sources into single view:

**Sources**:
- Claude TodoWrite (session tasks)
- Today's daily note (`~/Documents/Obsidian/Aaron/Daily/YYYY-MM-DD.md`)
- CLAUDE.md project tasks
- Git commit TODOs in code

**Display Format**:
```
๐Ÿ“‹ All Tasks (8 total)

๐Ÿ”„ In Progress (2):
1. Create todo-keeper skill [obsidian-keeper project]
2. Review stoch beta1 performance [stoch project]

๐Ÿ“ Pending (5):
3. Add to claude-skills plugin
4. Test /todo command
5. Update documentation
6. Fix type errors in attribution methods [xai project]
7. Performance benchmarking [stoch project]

โœ… Completed Today (1):
โœ“ Obsidian zip analysis

Progress: 12% (1/8)
```

### 2. Task Operations

**Add Task**:
```
/todo add Review PhD committee feedback --project xai --priority high
```
- Adds to TodoWrite
- Adds to daily note `## ๐ŸŽฏ Focus`
- Links to project in CLAUDE.md if specified
- Supports priority levels (high/normal/low)

**Complete Task**:
```
/todo complete 1
```
- Marks as completed in TodoWrite
- Checks off in daily note
- Logs completion time
- Archives to daily note `## โœ… Completed`

**Start Task**:
```
/todo start 3
```
- Marks as in_progress in TodoWrite
- Updates daily note status
- Logs start time

**Delete Task**:
```
/todo delete 5
```
- Removes from TodoWrite
- Removes from daily note
- Confirms deletion

### 3. Task Organization

**By Project**:
```
/todo project xai
```
Shows all tasks related to xai project:
- From CLAUDE.md Active Projects
- From daily notes tagged with project
- From TodoWrite with project context

**By Priority**:
```
/todo priority high
```
Shows high-priority tasks only.

**By Status**:
```
/todo pending
/todo in-progress
/todo completed
```

### 4. Daily Note Integration

**Auto-sync with Daily Notes**:

When daily note created (via `/daily-note`):
- Read `## ๐ŸŽฏ Focus` tasks
- Add to TodoWrite if not present
- Sync status bidirectionally

**Task Sections in Daily Note**:
```markdown
## ๐ŸŽฏ Focus
- [x] Completed task
- [ ] Pending task
- [๐Ÿ”„] In progress task

## โœ… Completed
- Task finished at 14:30
```

**Sync Process**:
1. Read daily note checkboxes
2. Compare with TodoWrite state
3. Update both to match
4. Preserve manual edits in daily note

### 5. CLAUDE.md Project Tasks

**Extract from CLAUDE.md**:

Read project sections like:
```markdown
### xai - PhD Dissertation
**Next Steps**:
- [ ] Experiment 6.2 with demographic analysis
- [ ] Performance benchmarking
```

**Sync to TodoWrite**:
- Add as tasks with project context
- Link back to CLAUDE.md section
- Update CLAUDE.md when completed

### 6. Context-Aware Task Suggestions

**Smart Detection**:

When working in a directory:
```bash
pwd: ~/projects/xai
```
- Suggest xai-related tasks
- Filter task list to xai project
- Auto-tag new tasks with "xai"

When conversation mentions:
- "need to" โ†’ suggest creating task
- "done with" โ†’ suggest marking complete
- "working on" โ†’ suggest marking in_progress

**Code Context**:

When editing file with TODO comments:
```python
# TODO: Implement SHAP attribution method
```
- Detect TODO in code
- Suggest adding to task list
- Link task to file:line

### 7. Task Analytics

**Daily Statistics**:
```
๐Ÿ“Š Task Metrics (2025-11-21)

Completed: 3 tasks
Added: 5 tasks
Completion rate: 60%
Average time: 45 minutes/task
Most productive: Morning (2 tasks)

Projects:
- xai: 2 tasks (1 complete)
- stoch: 2 tasks (1 complete)
- obsidian: 1 task (1 complete)
```

**Weekly Summary**:
```
๐Ÿ“Š Week 47 Task Summary

Total completed: 18 tasks
Total added: 22 tasks
Completion rate: 82%
Top project: xai (8 tasks)
Longest task: "Experiment 6.1" (3 days)
```

### 8. Task Sync

**Bidirectional Sync**:

```
/todo sync
```

Synchronizes:
1. TodoWrite โ†” Daily note
2. Daily note โ†” CLAUDE.md
3. Resolves conflicts (newest wins)
4. Reports changes

**Conflict Resolution**:
- Same task in multiple places โ†’ deduplicate
- Different status โ†’ use most recent
- User edits in daily note โ†’ preserve always

## Analysis Process

**Step 1: Gather All Tasks**

```python
def gather_tasks():
    tasks = []

    # 1. From TodoWrite (if active)
    todowrite_tasks = get_todowrite_state()

    # 2. From today's daily note
    daily_note = read_daily_note(today())
    daily_tasks = parse_checkboxes(daily_note)

    # 3. From CLAUDE.md projects
    claude_md = read_file("~/.claude/CLAUDE.md")
    project_tasks = parse_project_next_steps(claude_md)

    # 4. From code TODOs (optional)
    code_todos = scan_code_todos(pwd())

    return merge_tasks([
        todowrite_tasks,
        daily_tasks,
        project_tasks,
        code_todos
    ])
```

**Step 2: Deduplicate**

```python
def deduplicate_tasks(tasks):
    by_description = {}
    for task in tasks:
        # Normalize description
        desc = normalize(task.description)

        if desc in by_description:
            # Merge, keeping most complete info
            by_description[desc] = merge_task_info(
                by_description[desc],
                task
            )
        else:
            by_description[desc] = task

    return list(by_description.values())
```

**Step 3: Format Output**

```python
def format_task_list(tasks):
    # Group by status
    in_progress = [t for t in tasks if t.status == 'in_progress']
    pending = [t for t in tasks if t.status == 'pending']
    completed = [t for t in tasks if t.status == 'completed']

    output = f"๐Ÿ“‹ All Tasks ({len(tasks)} total)\n\n"

    if in_progress:
        output += "๐Ÿ”„ In Progress:\n"
        for i, task in enumerate(in_progress, 1):
            output += f"{i}. [๐Ÿ”„] {task.description}"
            if task.project:
                output += f" [{task.project}]"
            output += "\n"

    # ... similar for pending and completed
    return output
```

## Update Rules

### Safety Rules

**Never**:
- Delete tasks without confirmation
- Modify user-written descriptions
- Override manual edits in daily notes
- Lose task context when syncing

**Always**:
- Preserve task history
- Log all task state changes
- Sync bidirectionally
- Confirm destructive operations
- Maintain task links to projects/files

### Update Frequency

**Auto-sync**:
- At session start (read all sources)
- At session end (write to daily note)
- After `/todo` command execution
- After TodoWrite updates

**Manual sync**:
- `/todo sync` - full bidirectional sync
- `/daily-note` - sync with daily note
- `/update-memory` - sync with CLAUDE.md

## Examples

### Example 1: Show All Tasks

**Input**: `/todo`

**Actions**:
1. Read TodoWrite state
2. Read today's daily note
3. Read CLAUDE.md project tasks
4. Merge and deduplicate
5. Format output

**Output**:
```
๐Ÿ“‹ All Tasks (5 total, 40% complete)

๐Ÿ”„ In Progress (1):
1. Create todo-keeper skill [obsidian project]

๐Ÿ“ Pending (3):
2. Add to claude-skills plugin
3. Test /todo command
4. Update documentation

โœ… Completed Today (1):
โœ“ Create /todo slash command

Next: Type `/todo start 2` to begin next task
```

### Example 2: Add Task with Project

**Input**: `/todo add Fix ATR calculation in indicators.py 
Files: 5
Size: 31.2 KB
Complexity: 36/100
Category: Productivity

Related in Productivity