Skill v1.0.1
currentAutomated scan100/100+1 new
version: "1.0.1" name: smith-todo description: Manage daily todo lists stored in the vault. Supports listing, adding, completing, deferring, editing, removing items, reviewing past days, weekly overview, and completion stats. argument-hint: "[list|add|done|defer|remove|edit|review|week|stats] [<id-or-title>] [--date YYYY-MM-DD] [--to YYYY-MM-DD]"
Smith Todo
Manage daily todo lists stored in .smith/vault/todo/. Each day has one file (todo-YYYY-MM-DD.md) containing that day's items. Items are simple: title, status, and created date. The daily briefing N8N workflow auto-generates today's file each weekday morning at 7am EST; this skill lets you manage items manually at any time.
Arguments: $ARGUMENTS
Vault Logging
Log significant events to the vault session log. Read the session log path from .smith/vault/.current-session. If missing, skip logging silently.
Timestamps are UTC. HH:MM:SS comes from date -u +%H:%M:%S — never a local clock, never a time from memory. The append already runs through a shell, so read the clock in that same command (TS=$(date -u +%H:%M:%S)) and spend no extra tool call. Substitute the resulting value: an unexpanded $(...) reaching the log is a known regression and will not parse. Every hook-written stamp in this log is date -u, so a local-clock entry lands hours away from its neighbours and skews the workflow window hooks/workflow_summary_lib.py derives from them.
Append entries using this format:
### [HH:MM:SS] /smith-todo <event>**User Request:**> <verbatim user message that triggered this action>**Action:** <list|add|done|defer|remove|edit|review|week|stats>**Date:** <YYYY-MM-DD>**Outcome:** <what happened>
Todo File Format
Each daily file lives at .smith/vault/todo/todo-YYYY-MM-DD.md:
---date: "YYYY-MM-DD"generated: "YYYY-MM-DDTHH:MM:SS"source: auto|manual---# Daily Todo — YYYY-MM-DD## Summary<Brief overview of the day: calendar highlights, email activity, key priorities>## Items-[ ] `TODO-001` Item title here-[ ] `TODO-002` Another item-[x] `TODO-003` Completed item-[~] `TODO-004` Deferred item → YYYY-MM-DD## Email Activity (Last 24h)| Sender | Subject | Status | Intent ||--------|---------|--------|--------|| jane@example.com | Re: Project update | replied | question || bob@example.com | Contract review | pending | request || noreply@service.com | Newsletter | skipped | spam |## Calendar — Remainder of Week| Date | Time | Event ||------|------|-------|| Mon 04/07 | 10:00 AM | Team standup || Tue 04/08 | 2:00 PM | Client review |## Completion Review (Previous Day)| Item | Status | Confidence | Evidence ||------|--------|------------|----------|| Review PR #168 | done | high | Merged commit da17f19 || Reply to Jane | unverified | medium | No email exchange found |
Item ID Convention
Item IDs are sequential within each day's file: TODO-001, TODO-002, etc. When adding items, scan existing items to find the next available number.
Subcommands
No Arguments / list — Show Today's Items
Display today's todo items. If no file exists for today, say "No todo list for today. Use /smith-todo add <title> to create one, or wait for the morning briefing."
Format:
Daily Todo — 2026-04-07 (Mon)[ ] TODO-001 Reply to Jane about contract review[ ] TODO-002 Review PR #171[x] TODO-003 Team standup at 10am[~] TODO-004 Update spec for System 12 → deferred to 04/083 pending · 1 done · 1 deferred
Optional flag: list --date YYYY-MM-DD — show a different day's list.
add <title> — Add a Todo Item
- Determine target date — defaults to today. Use
--date YYYY-MM-DDto target a different day. - Find or create the day's file:
- If the file exists, read it and determine the next item ID.
- If no file exists, create one with
source: manualin frontmatter, an empty Summary, and no Email Activity / Calendar / Completion Review sections.
- Append the new item to the
## Itemssection:- [ ] \TODO-NNN\<title> - Confirm: "Added TODO-NNN: <title> to <date>."
- Show full list — immediately display the full todo list for the target date using the same format as the
listsubcommand (all items with pending/done/deferred counts).
done <id> — Mark Item Complete
- Find the item by ID in today's file (or use
--dateto target another day). - Update the checkbox from
- [ ]to- [x]. - Confirm: "TODO-NNN marked done."
If the item is already done: "TODO-NNN is already complete." If the item doesn't exist: "TODO-NNN not found in <date>'s list."
defer <id> — Defer Item to Another Day
- Find the item by ID in today's file.
- Update the checkbox from
- [ ]to- [~]and append→ <target-date>.
- Default target: next business day (skip weekends).
- Use
--to YYYY-MM-DDto specify a different date.
- Copy the item (as
- [ ]with a new ID) into the target date's file. Create the target file if needed. - Confirm: "TODO-NNN deferred to <target-date> as TODO-MMM."
remove <id> — Remove an Item
- Find the item by ID in today's file.
- Remove the line entirely.
- Confirm: "TODO-NNN removed."
Do NOT ask for confirmation — this is a lightweight action on a daily list.
edit <id> — Edit an Item
- Find the item by ID in today's file.
- Display the current text and ask the user what they'd like to change (title only, since metadata is minimal).
- Update the line in place.
- Confirm: "TODO-NNN updated."
review [YYYY-MM-DD] — Review a Past Day's Briefing
- Read the specified day's file (defaults to yesterday if no date given).
- Display the full file contents including Summary, Items, Email Activity, Calendar, and Completion Review sections.
- If no file exists: "No todo file found for <date>."
week — Weekly Overview
- Scan
.smith/vault/todo/for all files in the current week (Monday through Friday). - For each day, extract the item counts (pending, done, deferred).
- Display:
Weekly Overview — Week of 2026-04-07Mon 04/07 3 pending · 2 done · 1 deferredTue 04/08 5 pending · 0 done · 0 deferredWed 04/09 (no file)Thu 04/10 (no file)Fri 04/11 (no file)Week total: 8 pending · 2 done · 1 deferred
stats — Completion Statistics
- Scan all files in
.smith/vault/todo/. - Calculate:
- Total items across all days
- Completion rate (done / total)
- Average items per day
- Most common deferred-to pattern (same day? next day? end of week?)
- Longest streak of 100% completion days
- Items carried forward most often (if any pattern emerges from deferred items with similar titles)
- Display as a compact summary.
Implementation Notes
- Todo files live in
.smith/vault/todo/. Create the directory if it doesn't exist on first use. - File naming:
todo-YYYY-MM-DD.md— always use this exact format. - Checkbox states:
[ ]= pending,[x]= done,[~]= deferred. - "Next business day" means skip Saturday and Sunday.
- This skill should be handled directly in the main session — never delegate to a sub-agent.
- When creating a file manually (no auto-briefing), omit the auto-generated sections (Email Activity, Calendar, Completion Review) and set
source: manual. - When the morning briefing creates the file, it sets
source: autoand populates all sections.