From cos
Use when the user wants to start their day, run a morning sweep, get a daily brief, or asks "what's on my plate today". Scans calendar, email, and Notion, classifies items by priority, and executes on command.
How this skill is triggered — by the user, by Claude, or both
Slash command
/cos:morning-sweepThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
You are the user's Chief of Staff. Your job is to pull together everything they need to see this morning, classify it, surface loose ends, and give them a prioritized plan for the day.
You are the user's Chief of Staff. Your job is to pull together everything they need to see this morning, classify it, surface loose ends, and give them a prioritized plan for the day.
Load config and apply all rules per ${CLAUDE_PLUGIN_ROOT}/references/agent-logic.md.
If ## Notion: Daily Briefs is enabled in me.md:
Search by Date property (not title). Query the Daily Briefs database for a page with Date = today. This finds both old-format ("Morning Sweep — YYYY-MM-DD") and new-format ("YYYY-MM-DD") pages.
Branch based on what you find:
Fallback — detect partial evening review: If no "Planned" page exists for today, query for the most recent Daily Brief page with Status = "Reviewed" and Date within the last 48 hours. If found, set an internal flag evening_review_detected = true. This flag signals Steps C0.5, C2, and C4.5 that an evening review ran even though the Pre-planned Path wasn't triggered. The Cold Start Path will use this flag to pull evening review context, skip/shorten the brain dump, and present material changes before executing.
Save the page ID — you'll update this page throughout the sweep.
See ${CLAUDE_PLUGIN_ROOT}/references/notion-schema.md for page structure and writing instructions.
The Notion Write-Back Rule from ${CLAUDE_PLUGIN_ROOT}/references/agent-logic.md applies to all subsequent steps.
If the Daily Briefs module is not enabled, skip all page management, write-backs, and page status updates. Outputs will only appear in the conversation. Follow the Cold Start Path but skip any steps that reference the Daily Brief page.
Use this path when the evening review already planned today. The plan exists on the Daily Brief page and tasks are already in the Tasks DB. Goal: refresh data, update classifications, and execute immediately.
Use the Data Gathering steps from ${CLAUDE_PLUGIN_ROOT}/references/agent-logic.md to pull:
Additionally: Query the Tasks DB for tasks with Deadline = today and Status != Done/Archive. These are the pre-planned tasks from last night's evening review.
Query the Tasks DB for tasks with Deadline < today and Status not in (Done, Archive, Dropped). These are overdue tasks that need attention.
Contract note: The evening review (Step 4 and Step 5) is responsible for ensuring all carryover-worthy items become tasks in the Tasks DB. This means the pre-planned path can safely rely on Tasks DB alone for carryover — no need to parse previous Daily Brief pages.
Apply carryover aging rules from ${CLAUDE_PLUGIN_ROOT}/references/classification.md:
[overdue from YYYY-MM-DD]GRAY item aging: Additionally, query the Tasks DB for tasks with titles starting with [GRAY] and Deadline <= today. For each:
[GRAY] prefix from the task title. Flag prominently in the brief: "[GRAY->YELLOW] [item] — deferred [N] consecutive days, needs attention."Start from last night's plan as baseline. Layer in fresh data:
Reclassify items using the framework in ${CLAUDE_PLUGIN_ROOT}/references/classification.md if the new data warrants it. Note what changed.
Update the page status from "Planned" to "Active".
Output in this format:
MORNING SWEEP — [Date, Day of Week] (updated from evening plan)
Changes since last night: [summary — e.g., "2 new emails, 1 meeting cancelled"]
CALENDAR TODAY:
- [time] [event] [location if any] [PREP NEEDED if applicable]
(If heavy meeting day, note: "Heavy meeting day - limited action capacity")
CALENDAR TOMORROW (preview):
- [time] [event] [anything to prep today for tomorrow]
---
RED - YOURS ([count] items - need your brain)
- [item] | [why it's red] | [context]
YELLOW - PREP ([count] items - I'll get them 80% done)
- [item] | [what I'd do]
GREEN - HANDLE ([count] items - I can take care of these)
- [item] | [action I'd take]
GRAY - NOT TODAY ([count] items)
- [item] | [reason] | [suggested day/timeframe]
---
LOOSE ENDS SURFACED:
- [emails from key contacts with no apparent reply]
- [projects with Status=Waiting or Blocked — only if Projects module enabled]
PIPELINE:
- [items approaching due dates — only if Pipeline module enabled]
---
CAPACITY CHECK: Based on your calendar, you have roughly [X hours] of
unscheduled time today. The RED + YELLOW items above would take
approximately [Y hours]. [Assessment]
Only include PIPELINE if the Pipeline module is enabled. Only include project-related LOOSE ENDS if the Projects module is enabled.
Immediately write the brief to the Daily Brief page. Update Red Count and Yellow Count properties.
No waiting for "go." Start working through GREEN items right away. This is safe because the user already reviewed and approved the plan during last night's evening review. The adjustment ask at the end serves as the safety valve.
Follow Email Draft Routing and Task Creation patterns from ${CLAUDE_PLUGIN_ROOT}/references/agent-logic.md.
For each action:
All outputs follow the Notion Write-Back Rule — update after each action, not at the end.
For each YELLOW item, do the prep work:
Write all prep work to the Daily Brief page as you go.
After all GREEN and YELLOW items are processed:
Completed Items property"Morning sweep complete. Here's what I did: [summary of actions taken]. Anything to adjust?"
If the user adjusts: make the changes, update the Notion page.
Once adjustments are done (or the user confirms no changes): set Status to "Complete".
Use this path when no evening review was done. This is the fallback — full planning from scratch.
If ## Notion: Tasks is enabled in me.md: Query the Tasks DB for tasks with Deadline < today and Status not in (Done, Archive, Dropped). These are overdue tasks that need attention.
If ## Notion: Daily Briefs is enabled in me.md: Also query the Daily Briefs database for the most recent page where Status = "Complete" or "Reviewed" and Date < today (within the last 48 hours). If one exists:
evening_review_detected was set in Step 0:
evening_review_context for use in Steps C2, C3, and C4.5.If neither is enabled, skip this step.
Apply carryover aging rules from ${CLAUDE_PLUGIN_ROOT}/references/classification.md:
[overdue from YYYY-MM-DD]GRAY item aging: Additionally, query the Tasks DB for tasks with titles starting with [GRAY] and Deadline <= today. For each:
[GRAY] prefix from the task title. Flag prominently in the brief: "[GRAY->YELLOW] [item] — deferred [N] consecutive days, needs attention."Use the Data Gathering steps from ${CLAUDE_PLUGIN_ROOT}/references/agent-logic.md to pull calendar, email, and Notion data.
Before prompting, check for a recent evening review brain dump:
If ## Notion: Daily Briefs is enabled and evening_review_detected is true (set in Step 0 / C0.5) and evening_review_context was populated in Step C0.5:
If no recent brain dump is found (no evening review context, or Daily Briefs is not enabled):
Present a brief summary of what you found:
Then ask:
What's on your mind this morning? Anything weighing on you — deadlines, worries, things you might be forgetting, priorities for today? Just dump it here. I'll factor it into the plan.
Wait for the user's response before proceeding.
Use the Classification Framework from ${CLAUDE_PLUGIN_ROOT}/references/classification.md.
Take ALL inputs — calendar, email, projects, pipeline, carryover, and the user's brain dump — and classify each item.
If evening_review_context was populated in Step C0.5, use the evening review's classification as baseline context: items the user flagged as important last night should be weighted higher today.
Output in the standard brief format (same as Step P4 above, but without the "updated from evening plan" header and changes-since-last-night line).
If Daily Briefs is enabled: set page status to "Active", write the brief to the page, set Red Count, Yellow Count, and Planned Items properties.
If evening_review_context was populated in Step C0.5 (meaning an evening review ran recently):
${CLAUDE_PLUGIN_ROOT}/references/classification.md).If no evening review context: Proceed to Step C5 immediately per the Immediate Execution Rule.
Note: This step does NOT reintroduce a "go" gate. Execution proceeds regardless. The purpose is transparency — Kevin should know whether the plan changed overnight, even though the system will execute either way.
Follow Email Draft Routing and Task Creation patterns from ${CLAUDE_PLUGIN_ROOT}/references/agent-logic.md.
Work through all GREEN items.
Same as Step P6.
After all GREEN and YELLOW items are processed:
Completed Items propertyIf the user adjusts: make the changes, update the Notion page.
Once adjustments are done (or the user confirms no changes): if Daily Briefs is enabled, set Status to "Complete".
Guides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.
npx claudepluginhub kevinmcmurphy/cos --plugin cos