Skip to content
Business
Skill

/ceos-todos

Use when tracking, creating, completing, or reviewing To-Dos

BOOST
From plugin
ceos
15723 skills
Install
$ npx -y skills add bradfeld/ceos --skill ceos-todos --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/ceos-todos

Context preview

The summary Claude sees to decide when to auto-load this skill.

Use when tracking, creating, completing, or reviewing To-Dos

SKILL.md

ceos-todos.SKILL.md
name: ceos-todos
description: Use when tracking, creating, completing, or reviewing To-Dos
file-access: [data/todos/, templates/todo.md]
tools-used: [Read, Write, Glob]

ceos-todos

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.

When to Use

  • "Show my to-dos" or "what's on my list?"
  • "Create a to-do" or "add a to-do for [person]"
  • "Mark to-do done" or "complete [to-do]"
  • "To-do review" or "how's our completion rate?"
  • "What to-dos are overdue?"
  • "Open to-dos" or "what needs to get done this week?"
  • "To-do list" or "show all to-dos"
  • "Weekly to-do report" or "to-do scorecard"
  • "New to-do from L10" or "IDS to-do"
  • Any time someone commits to a concrete action with a deadline

Context

Finding the CEOS Repository

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.

Key Files

| File | Purpose | |------|---------| | `data/todos/` | To-Do files (one file per To-Do) | | `templates/todo.md` | Template for new To-Do files |

To-Do File Format

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 done
  • `complete` — done (binary — no partial credit in EOS)

**Source values:**

  • `l10` — created during an L10 meeting
  • `ids` — created during IDS issue resolution
  • `quarterly` — created during a Quarterly Conversation
  • `adhoc` — created outside of a meeting context

**Overdue:** 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).

Process

Mode: List

When the user asks to see their To-Dos or check what's open.

Step 1: Read All To-Dos

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."

Step 2: Filter

By default, show only `status: open` To-Dos. If the user asks for "all to-dos" or "show completed", include `status: complete` as well.

Step 3: Compute Overdue

For each open To-Do, compare `due` to today's date:

  • If `due` < today: mark as overdue, calculate days overdue
  • If `due` is today: mark as "due today"
  • If `due` is in the future: show days remaining

Flag 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).

Step 4: Display

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

Step 5: Summary

Show summary statistics:

Summary: 7 open | 2 overdue | 3 owners

---

Mode: Create

When the user wants to add a new To-Do.

Step 1: Collect Information

Ask for each field:

1. **Title** — "What needs to be done?" (short, specific, action-oriented) 2. **Owner** — "Who owns this?" (one person — never "the team") 3. **Due date** — "When is this due?" (specific date, usually within 7 days for L10 To-Dos) 4. **Source** — "Where did this come from?" (l10, ids, quarterly, or adhoc)

If the user is creating multiple To-Dos (e.g., from an L10 meeting), collect all of them before writing files.

Step 2: Validate

  • **Title required.** If empty, ask again.
  • **Owner required.** If empty or "the team", explain: "Every To-Do needs one owner — who's accountable?"
  • **Due date required.** If empty, explain: "Every To-Do needs a deadline. When is this due?"
  • **Due date sanity check.** If more than 14 days out, note: "Most EOS To-Dos are 7-day actions. Is this really a To-Do, or might it be a Rock?"

Step 3: Generate the ID

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.

Step 4: Slugify the Title

Convert the title to a filename slug:

  • Lowercase
  • Replace spaces with hyphens
  • Remove special characters
  • Truncate to 50 characters

Step 5: Create the File

Use `templates/todo.md` as the template. Fill in:

  • Frontmatter: id, title, owner, due, status=open, source, created=today
  • Body: description from the user's input

Show the complete file before writing. Ask: "Create this To-Do?"

Step 6: Write

Write to `data/todos/todo-NNN-slug.md`.

Step 7: Repeat or Finish

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
Read more
Ships withceos

Run EOS with AI. CEOS brings the Entrepreneurial Operating System to Claude Code, giving your leadership team 23 AI-powered skills for Vision, Accountability Chart, Rocks, Scorecard, L10 Meetings, IDS, To-Dos, Process, People Analyzer, Quarterly

Get the whole plugin

Other skills on ceos.

ceos-calendar
Skill

ceos-calendar

Use when managing the rolling market calendar - conferences, launches, fundraising milestones, partner events, and team…

@bradfeld@bradfeldInstall Skill