skills/ceos-todos/SKILL.md
Use when tracking, creating, completing, or reviewing To-Dos
npx skillsauth add skinnyandbald/ceos ceos-todosInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Track To-Dos — the concrete actions that bridge meetings and execution. Every To-Do has one owner, a due date, and a source. EOS teams target 90%+ weekly completion rate.
Search upward from the current directory for the .ceos marker file. This file marks the root of the CEOS repository.
If .ceos is not found, stop and tell the user: "Not in a CEOS repository. Clone your CEOS repo and run setup.sh first."
Sync before use: Once you find the CEOS root, run git -C <ceos_root> pull --ff-only --quiet 2>/dev/null to get the latest data from teammates. If it fails (conflict or offline), continue silently with local data.
| File | Purpose |
|------|---------|
| data/todos/ | To-Do files (one file per To-Do) |
| templates/todo.md | Template for new To-Do files |
Each To-Do is a markdown file with YAML frontmatter:
id: todo-001
title: "Send revised proposal to Acme"
owner: "brad"
due: "2026-02-20"
status: open # open | complete
source: l10 # l10 | ids | quarterly | adhoc
created: "2026-02-13"
completed_on: "" # filled when status → complete
Status values:
open — not yet donecomplete — done (binary — no partial credit in EOS)Source values:
l10 — created during an L10 meetingids — created during IDS issue resolutionquarterly — created during a Quarterly Conversationadhoc — created outside of a meeting contextOverdue: A To-Do is overdue if status: open and due is before today's date. This is computed when displaying — not stored as a status.
File naming: todo-NNN-slug.md where NNN is a zero-padded ID and slug is the title slugified (lowercase, hyphens, no special characters).
When the user asks to see their To-Dos or check what's open.
Read all files in data/todos/. Parse the YAML frontmatter for each file.
If the directory doesn't exist or is empty: "No To-Dos yet. Use this skill to create one, or they'll be created during L10 meetings and IDS sessions."
By default, show only status: open To-Dos. If the user asks for "all to-dos" or "show completed", include status: complete as well.
For each open To-Do, compare due to today's date:
due < today: mark as overdue, calculate days overduedue is today: mark as "due today"due is in the future: show days remainingFlag To-Dos that are 30+ days overdue with a warning — these should be discussed in the next L10 (drop them or recommit with a new deadline).
Group by owner, sorted by due date within each group:
Open To-Dos (7 total, 2 overdue)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Brad (3 to-dos):
todo-003 Send revised proposal due: Feb 20 3 days left
todo-007 Review hiring pipeline due: Feb 18 1 day left
todo-001 Update onboarding doc due: Feb 10 ⚠️ 4 days overdue
Daniel (2 to-dos):
todo-005 Fix dashboard report due: Feb 22 8 days left
todo-004 Schedule vendor call due: Feb 15 due today
Sarah (2 to-dos):
todo-006 Draft Q2 budget due: Feb 28 14 days left
todo-002 Send partnership agreement due: Feb 12 ⚠️ 2 days overdue
Show summary statistics:
Summary: 7 open | 2 overdue | 3 owners
When the user wants to add a new To-Do.
Ask for each field:
If the user is creating multiple To-Dos (e.g., from an L10 meeting), collect all of them before writing files.
Read existing To-Do files in data/todos/. Find the highest todo-NNN ID and increment. If no files exist, start at todo-001.
Create the directory data/todos/ if it doesn't exist.
Convert the title to a filename slug:
Use templates/todo.md as the template. Fill in:
Show the complete file before writing. Ask: "Create this To-Do?"
Write to data/todos/todo-NNN-slug.md.
Ask: "Create another To-Do, or done for now?"
When finished, display a summary of all created To-Dos:
Created 3 To-Dos:
todo-008 Send revised proposal brad due: Feb 20 [l10]
todo-009 Fix dashboard report daniel due: Feb 22 [l10]
todo-010 Draft Q2 budget sarah due: Feb 28 [l10]
When the user wants to mark To-Do(s) as done.
List all open To-Dos (same as List mode, filtered to status: open).
If no open To-Dos exist: "No open To-Dos to complete. Nice work!"
Ask which To-Do(s) to mark complete. Accept:
For each selected To-Do:
status: completecompleted_on: "YYYY-MM-DD" (today's date)- YYYY-MM-DD: CompletedAfter completing all selected To-Dos, show:
Completed 2 To-Dos:
✓ todo-003 Send revised proposal (was due: Feb 20, completed: Feb 18 — 2 days early)
✓ todo-007 Review hiring pipeline (was due: Feb 18, completed: Feb 18 — on time)
Remaining open: 5
When the user wants to check the team's To-Do completion rate — typically during or after an L10 meeting.
Default to the last 7 days. If the user specifies a range (e.g., "last month", "since January"), adjust accordingly.
Read all files in data/todos/. Categorize:
status: complete AND completed_on falls within the time rangestatus: open AND due falls within (or before) the time rangestatus: open AND due is after the time range endCompletion Rate = Completed / (Completed + Overdue) × 100
Only count To-Dos whose due date falls within or before the review period. To-Dos with future due dates are not yet countable.
To-Do Review — Feb 7-14, 2026
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Completion Rate: 85% (target: 90%+)
Completed (6):
✓ todo-001 Update onboarding doc brad completed Feb 10
✓ todo-002 Send partnership agreement sarah completed Feb 12
✓ todo-004 Schedule vendor call daniel completed Feb 15
✓ todo-008 Send revised proposal brad completed Feb 14
✓ todo-009 Fix dashboard report daniel completed Feb 13
✓ todo-010 Draft Q2 budget sarah completed Feb 14
Overdue (1):
✗ todo-005 Update pricing page brad due Feb 12 (2 days overdue)
Still Open (2 — not yet due):
• todo-011 Prepare board deck brad due Feb 21
• todo-012 Review vendor contracts daniel due Feb 20
Analyze the data for actionable patterns:
List: Owner-grouped table of open To-Dos with due dates and overdue indicators. Create: Complete To-Do file preview before writing. Summary table after creation. Complete: Diff for each To-Do being completed. Summary with timing (early/on-time/late). Review: Completion rate report with completed, overdue, and still-open sections. Pattern analysis.
data/todos/. Don't combine multiple To-Dos into one file.data/todos/ before generating a new ID. Never reuse IDs — even if a file was deleted, use the next sequential number.data/todos/ with status: complete. They're the audit trail for completion rate analytics.ceos-l10, ceos-ids, and ceos-quarterly when relevant, but let the user decide when to switch workflows.ceos-rocks."data/todos/. To-Dos embedded in old L10 meeting notes are not counted. The Review mode should note this if the user asks about discrepancies.data/todos/ as the source of truth. Use ceos-todos List mode to show open To-Dos and Complete mode to mark items done during the meeting.ceos-todos Create mode with source: l10.ceos-ids, the Solve step creates To-Dos with owners and due dates. These should be tracked in data/todos/ via ceos-todos Create mode with source: ids.ceos-todos Create mode with source: quarterly.Important: These integrations are suggestions, not automatic. The user controls the workflow. During an L10, the facilitator decides when and how to use each skill. Don't auto-create To-Dos — always let the user initiate.
tools
Use when reviewing or updating the company Vision/Traction Organizer
tools
Use when defining metrics, logging weekly scorecard numbers, or analyzing trends
tools
Enhanced scorecard entry with auto-pull from L10 meetings and available MCP sources (CRM, calendar, email, filesystem). Walks through each metric one at a time with pre-populated suggestions for interactive confirmation.
tools
Use when setting, tracking, or scoring quarterly Rocks