ceos-todos

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

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "ceos-todos" with this command: npx skills add skinnyandbald/ceos/skinnyandbald-ceos-ceos-todos

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

FilePurpose
data/todos/To-Do files (one file per To-Do)
templates/todo.mdTemplate 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  Fix dashboard report       daniel   due: Feb 22  [l10]
  todo-010  Draft Q2 budget            sarah    due: Feb 28  [l10]

Mode: Complete

When the user wants to mark To-Do(s) as done.

Step 1: Show Open To-Dos

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

Step 2: Select

Ask which To-Do(s) to mark complete. Accept:

  • By ID: "todo-003"
  • By title match: "the proposal one"
  • Multiple: "todo-003 and todo-007"
  • All: "all of them" (confirm before proceeding)

Step 3: Update Each File

For each selected To-Do:

  1. Read the file
  2. Update frontmatter:
    • status: complete
    • completed_on: "YYYY-MM-DD" (today's date)
  3. Add a note: - YYYY-MM-DD: Completed
  4. Show the diff (frontmatter changes + note addition)
  5. Ask: "Mark this To-Do complete?"
  6. Write the file

Step 4: Summary

After 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

Mode: Review

When the user wants to check the team's To-Do completion rate — typically during or after an L10 meeting.

Step 1: Determine Time Period

Default to the last 7 days. If the user specifies a range (e.g., "last month", "since January"), adjust accordingly.

Step 2: Read All To-Dos

Read all files in data/todos/. Categorize:

  • Completed in period: status: complete AND completed_on falls within the time range
  • Overdue in period: status: open AND due falls within (or before) the time range
  • Still open (future): status: open AND due is after the time range end

Step 3: Calculate Completion Rate

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

Step 4: Display Report

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

Step 5: Patterns and Flags

Analyze the data for actionable patterns:

  • Below 90% target: "Completion rate is 85%. Below the 90% EOS target. Consider: are there too many To-Dos, or is the team overcommitted?"
  • Specific owner below average: "[Person] completed 2/4 (50%). Worth discussing — are they overloaded?"
  • Source patterns: "4 of 6 overdue To-Dos came from IDS. Are IDS actions being set with realistic timelines?"
  • Chronic overdue (same To-Do overdue 2+ weeks): "todo-005 has been overdue for 14 days. Either do it, drop it, or turn it into a Rock."

Output Format

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.

Guardrails

  • Always show diff before writing. Never create or modify a To-Do file without showing the content and getting approval.
  • Owner required. Every To-Do has exactly one owner. Not "the team", not "TBD", not blank. If someone won't commit to owning it, it's not a real To-Do.
  • Due date required. Every To-Do has a deadline. No deadline = no accountability. If the user doesn't specify a date, ask for one.
  • One To-Do per file. Each To-Do gets its own file in data/todos/. Don't combine multiple To-Dos into one file.
  • ID uniqueness. Always scan all existing files in data/todos/ before generating a new ID. Never reuse IDs — even if a file was deleted, use the next sequential number.
  • Don't delete To-Do files. Completed To-Dos stay in data/todos/ with status: complete. They're the audit trail for completion rate analytics.
  • Don't auto-invoke other skills. Mention ceos-l10, ceos-ids, and ceos-quarterly when relevant, but let the user decide when to switch workflows.
  • Warn on overload. If one person has 10+ open To-Dos, warn: "That's a lot of open To-Dos. Consider prioritizing or pushing some to a future week."
  • To-Dos vs Rocks. If a To-Do has a due date more than 14 days out or describes a large initiative, suggest: "This sounds like it might be a Rock rather than a To-Do. Rocks are 90-day priorities managed by ceos-rocks."
  • Completion rate only reflects 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.
  • Source field is immutable. Once set, don't change the source — it's the audit trail for where the To-Do originated.
  • Sensitive data warning. On first use, remind the user: "To-Dos may contain sensitive action items and personnel references. Use a private repo."

Integration Notes

L10 Meetings (ceos-l10)

  • Section 5 — To-Do Review: During L10 meetings, the To-Do Review section should reference 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.
  • Section 7 — Conclude: New To-Dos created during the L10 should be tracked via ceos-todos Create mode with source: l10.

IDS (ceos-ids)

  • When an Issue is solved in 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.

Quarterly Conversations (ceos-quarterly)

  • Action items from Quarterly Conversations should be created as To-Dos via 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.

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

ceos-scorecard

No summary provided by upstream source.

Repository SourceNeeds Review
General

ceos-people

No summary provided by upstream source.

Repository SourceNeeds Review
General

ceos-rocks

No summary provided by upstream source.

Repository SourceNeeds Review
General

counselors

No summary provided by upstream source.

Repository SourceNeeds Review