todo-keeper
# Todo Keeper Skill
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 Related in Productivity
gitea-workflow
IncludedOrchestrate agile development workflows for Gitea repositories using the tea CLI. Use when working with Gitea-hosted repos and asking to 'run the workflow', 'continue working', 'what's next', 'complete the task cycle', 'start my day', 'end the sprint', 'implement the next task', or wanting guided step-by-step development assistance. Keywords: workflow, orchestrate, agile, task cycle, sprint, daily, implement, review, PR, standup, retrospective, gitea, tea.
microsoft-graph-gateway
IncludedRoute Microsoft Graph work in this workspace. Use when users want to read or write Outlook mail, calendar events, contacts, OneDrive or SharePoint files, Teams, Planner, To Do, users, groups, directory data, or arbitrary Microsoft Graph endpoints from VS Code. Prefer WorkIQ for common read scenarios. Use Microsoft Graph for write actions and gap-read scenarios that need exact Graph properties, filters, permissions, or endpoints.
copilotkit
IncludedUse when building with CopilotKit โ setup, development, integrations, debugging, upgrading, or contributing. Routes to the appropriate specialized skill based on the task.
wordly-wisdom
IncludedProvides calibrated decision analysis using Charlie Munger-style multiple mental models, inversion, incentive mapping, circle-of-competence checks, misjudgment audits, second-order effects, and forecast updates. Use when the user asks for an oracle take, a hard call, a decision memo, a premortem, an outside view, a red-team, a sanity-check, what am I missing, think this through, or wants a strategy, hire, investment, plan, product, partnership, or major life choice analysed. Avoid for simple factual lookups or time-sensitive legal, medical, or market questions without fresh evidence.
swain-session
IncludedSession management and project status dashboard. Owns the full session lifecycle (start/work/close/resume), focus lane, bookmarks, worktree detection, and tab naming. Also serves as the project status dashboard โ shows active epics, progress, actionable next steps, blocked items, tasks, GitHub issues, and recommendations. Worktree creation is deferred to swain-do task dispatch (SPEC-195). Triggers on: 'session', 'status', 'what's next', 'dashboard', 'overview', 'where are we', 'what should I work on', 'show me priorities', 'bookmark', 'focus on', 'session info'.
gandi
IncludedComprehensive Gandi domain registrar integration for domain and DNS management. Register and manage domains, create/update/delete DNS records (A, AAAA, CNAME, MX, TXT, SRV, and more), configure email forwarding and aliases, check SSL certificate status, create DNS snapshots for safe rollback, bulk update zone files, and monitor domain expiration. Supports multi-domain management, zone file import/export, and automated DNS backups. Includes both read-only and destructive operations with safety controls.