chief-of-staff

This skill should be used when the user says "/cos", "/chief-of-staff", "/gm", or "gm". Also triggered by "/cos schedule", "/gm schedule", or "update day note" to refresh today's schedule in Day.md only. Delivers a lean daily briefing focused on today's schedule, week plan progress, and yesterday's agent activity.

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 "chief-of-staff" with this command: npx skills add hartreeworks/skill--chief-of-staff/hartreeworks-skill-chief-of-staff-chief-of-staff

Chief of Staff

A lean daily briefing scannable in 30 seconds. Focuses on what matters: schedule, week priorities, and yesterday's agent work.

Morning briefing workflow

Step 1: Load context

Gather information from these sources:

SourceLocationWhat to extract
Week plan/Users/ph/Documents/Projects/plans-and-reviews/work/week-plans/2026-WXX-plan.mdKey results, day-by-day
CalendarBoth calendars (see Fetching calendar events)Today's events
Day tracker/Users/ph/Documents/day-tracker/data/daily/YYYY-MM-DD.jsonYesterday's activity
Claude Code summariesdata/claude-code-summaries/YYYY-MM-DD.jsonYesterday's Claude Code + Codex work

No Slack mentions or email. Peter checks those at lunchtime. Urgent items reach him via Signal/push.

Week number calculation: Use ISO week format (2026-WXX).

Day tracker summary generation:

Before reading day-tracker data, ensure yesterday's summary exists:

  1. Check if yesterday's JSON has a summary object: cat /Users/ph/Documents/day-tracker/data/daily/YYYY-MM-DD.json | python3 -c "import json,sys; print('Has summary:', 'summary' in json.load(sys.stdin))"
  2. If missing, generate it:
    cd /Users/ph/.claude/skills/day-tracker && python3 cli.py summary YYYY-MM-DD
    
  3. Then read the summary from the JSON file

Claude Code + Codex digest generation:

  1. Run the script to collect sessions and create/update the digest file:
    python3 /Users/ph/.agents/skills/chief-of-staff/generate_digest.py
    
  2. Read the digest from data/claude-code-summaries/YYYY-MM-DD.json

Step 2: Present briefing

Display the briefing in chat, save it to data/briefings/YYYY-MM-DD.md, and update Day.md with today's schedule via update-day-schedule.py (see Fetching calendar events).

Structure the briefing as follows:

# Good morning

**[Day] [Date] [Month] [Year] · W[XX]**

## Today's schedule

| Time | Event | Notes |
|------|-------|-------|
| HH:MM | Event name | Contextual insight from week plan / project knowledge |

[If no events before afternoon: "No morning commitments—deep work day."]

## Week priorities

| Priority | Status | Notes |
|----------|--------|-------|
| [Key result from week plan] | [Done / X/Y done / In progress / Not started] | [Concrete progress indicator, what's next] |

## Yesterday

| Project | Sessions | What happened |
|---------|----------|---------------|
| [project-name] | N | One-line summary of work done |

[Day tracker: Xh tracked—breakdown by category]
[Or: "No day tracker data for yesterday."]

## What can I help with?

1. **[Action]** — grounded in today's situation (calendar, week plan, yesterday's unfinished work)
2. **[Action]**
3. **[Action]**
4. **[Action]**
5. **[Action]**

Key rules for content:

  • Schedule notes must be contextual and insightful, drawing on week plan and project knowledge—not just restating calendar entries.
  • Week priorities are extracted from the current week plan's key results, with concrete progress indicators (e.g. "2/5 done", "Drafted, needs review").
  • Yesterday comes from the Claude Code + Codex digest. Concise: project, session count (noting source if mixed), one-line summary.
  • "What can I help with?" must be grounded in today's actual situation. Each option should be something Claude can actually do right now. Not generic.

Day note update (standalone)

Triggered by /cos schedule, /gm schedule, or "update day note".

Use case: Refresh today's schedule in Day.md mid-day.

Steps:

  1. Fetch events from both calendars (see Fetching calendar events)
  2. Update Day.md via update-day-schedule.py
  3. Print today's schedule in the chat in HHMM Event name format
  4. Confirm: "Day.md updated — N events written"

No briefing file saved, no digest generated, no week priorities or yesterday section.

Data paths reference

/Users/ph/Documents/Projects/
├── plans-and-reviews/
│   ├── MEMORY.md
│   └── work/
│       └── week-plans/2026-WXX-plan.md
└── [project folders]/MEMORY.md

/Users/ph/Documents/day-tracker/data/
└── daily/YYYY-MM-DD.json

/Users/ph/.agents/skills/chief-of-staff/
└── data/
    ├── briefings/YYYY-MM-DD.md
    ├── claude-code-summaries/YYYY-MM-DD.json
    └── overnight-results/

Integration with existing skills

SkillWhen to use
week-planTrigger weekly planning
week-reviewTrigger weekly review
call-prepPrep for upcoming calls
schedule-taskSchedule overnight automation

Weekly rhythm

DayPrompt
Friday–Sunday"It's time for your weekly review. Run /week-review?"
Sunday–Monday"Ready to plan next week? Run /week-plan?"

Fetching calendar events

Fetch from both calendars:

gog cal events primary --from today --to today --account pete.hartree@gmail.com
gog cal events jno364pp9c545r5s1n99k3q39s@group.calendar.google.com --from today --to today --account pete.hartree@gmail.com

The Meetings calendar returns times in UTC—add 1h for CET (or 2h for CEST). Merge both calendars, sort by time, format each event as HHMM Event name.

Update Day.md by passing each event as an argument:

python3 /Users/ph/.agents/skills/chief-of-staff/scripts/update-day-schedule.py "0800 Standup" "1400 Call with Alice"

No arguments → inserts "No events scheduled."

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

secure-mcp-install

No summary provided by upstream source.

Repository SourceNeeds Review
General

save-conversation

No summary provided by upstream source.

Repository SourceNeeds Review
General

chief-of-staff

No summary provided by upstream source.

Repository SourceNeeds Review
General

ask-many-models

No summary provided by upstream source.

Repository SourceNeeds Review