<< All versions

Skill v1.0.1

currentAutomated scan100/100
attckdigital/smith/smith-todo

+1 new

──Details
PublishedOctober 27, 2026 at 04:47 AM
Content Hashsha256:777bd5861a0e6357...
Git SHA2d7c27a32462
Bump Typepatch
Compare with v1.0.0
──Files
Files (1 file, 7.4 KB)
SKILL.md7.4 KBactive
SKILL.md · 193 lines · 7.4 KB

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:

markdown
---
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/08
3 pending · 1 done · 1 deferred

Optional flag: list --date YYYY-MM-DD — show a different day's list.

add <title> — Add a Todo Item

  1. Determine target date — defaults to today. Use --date YYYY-MM-DD to target a different day.
  2. 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: manual in frontmatter, an empty Summary, and no Email Activity / Calendar / Completion Review sections.
  1. Append the new item to the ## Items section: - [ ] \TODO-NNN\ <title>
  2. Confirm: "Added TODO-NNN: <title> to <date>."
  3. Show full list — immediately display the full todo list for the target date using the same format as the list subcommand (all items with pending/done/deferred counts).

done <id> — Mark Item Complete

  1. Find the item by ID in today's file (or use --date to target another day).
  2. Update the checkbox from - [ ] to - [x].
  3. 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

  1. Find the item by ID in today's file.
  2. Update the checkbox from - [ ] to - [~] and append → <target-date>.
  • Default target: next business day (skip weekends).
  • Use --to YYYY-MM-DD to specify a different date.
  1. Copy the item (as - [ ] with a new ID) into the target date's file. Create the target file if needed.
  2. Confirm: "TODO-NNN deferred to <target-date> as TODO-MMM."

remove <id> — Remove an Item

  1. Find the item by ID in today's file.
  2. Remove the line entirely.
  3. Confirm: "TODO-NNN removed."

Do NOT ask for confirmation — this is a lightweight action on a daily list.

edit <id> — Edit an Item

  1. Find the item by ID in today's file.
  2. Display the current text and ask the user what they'd like to change (title only, since metadata is minimal).
  3. Update the line in place.
  4. Confirm: "TODO-NNN updated."

review [YYYY-MM-DD] — Review a Past Day's Briefing

  1. Read the specified day's file (defaults to yesterday if no date given).
  2. Display the full file contents including Summary, Items, Email Activity, Calendar, and Completion Review sections.
  3. If no file exists: "No todo file found for <date>."

week — Weekly Overview

  1. Scan .smith/vault/todo/ for all files in the current week (Monday through Friday).
  2. For each day, extract the item counts (pending, done, deferred).
  3. Display:
Weekly Overview — Week of 2026-04-07
Mon 04/07 3 pending · 2 done · 1 deferred
Tue 04/08 5 pending · 0 done · 0 deferred
Wed 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

  1. Scan all files in .smith/vault/todo/.
  2. 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)
  1. 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: auto and populates all sections.
← v1.0.0All versions