Claude
Skills
Sign in
Back

morning-briefing

Included with Lifetime
$97 forever

Generate comprehensive morning briefing with calendar, tasks, tickets, news, and weather. Saves to Obsidian, sends email with audio podcast attached.

Image & Videoscripts

What this skill does


# Morning Briefing Workflow

## Overview

Generates a daily morning briefing and delivers it three ways:
1. **Terminal**: Summary displayed immediately
2. **Obsidian**: Full briefing saved to daily note
3. **Email**: Briefing text + audio podcast attachment

## Location

- **Gig Harbor, WA** - Use for weather queries

## Phase 1: Gather Data

Execute these data gathering steps:

### 1.1 Calendar (Today's Events)

```bash
cd /Users/hagelk/non-ic-code/geoffrey/skills/google-workspace && bun calendar/list_events.js psd --today
```

Returns JSON with today's events including:
- Event summary, location, start/end times
- Attendees and response status
- Hangout/meet links

**Account**: Use `psd` for work calendar

### 1.2 OmniFocus Tasks (Due & Flagged)

```bash
osascript -l JavaScript /Users/hagelk/non-ic-code/geoffrey/skills/morning-briefing/scripts/get_due_flagged.js
```

Returns tasks that are:
- Due today or overdue
- Flagged
- Available (not blocked, not deferred to future)

### 1.3 Recent Emails (Last 24 Hours)

```bash
# Get yesterday's date in Gmail query format
YESTERDAY=$(date -v-1d +%Y/%m/%d)
cd /Users/hagelk/non-ic-code/geoffrey/skills/google-workspace && bun gmail/list_messages.js psd --query "in:inbox after:$YESTERDAY" --max 15
```

Returns recent inbox messages with:
- From, subject, date, snippet
- Whether read or unread
- Thread ID for context
- Labels array

**Filtering**: Only show emails still in inbox (not already labeled/processed).
- Emails with custom labels (Label_XXXXX) have been sorted and should be excluded
- Exception: Include emails with SaneCC or SaneLater labels (worth knowing about)
- System labels (UNREAD, INBOX, CATEGORY_*, IMPORTANT) don't count as "processed"

**Philosophy**: Any email still in inbox from last 24 hours needs attention, read or not.

**Account**: Use `psd` for work email

### 1.4 Open Freshservice Tickets

```bash
bun /Users/hagelk/non-ic-code/geoffrey/skills/freshservice-manager/scripts/list_tickets.js '{"workspace_id": 2, "filter": "new_and_my_open"}'
```

Returns open tickets assigned to or created by user in Technology workspace.

### 1.5 Pending Approvals

```bash
bun /Users/hagelk/non-ic-code/geoffrey/skills/freshservice-manager/scripts/get_approvals.js requested
```

Returns service requests awaiting approval.

### 1.6 Weather

Use WebSearch:
```
Gig Harbor WA weather today forecast
```

Extract:
- Current conditions
- High/low temperature
- Precipitation chance
- Any alerts

### 1.7 EdTech News (with Synopses)

Use WebSearch:
```
K-12 education technology news past 24 hours January 2026
```

For each article found (3-5 articles):
1. Use WebFetch to read the full article
2. Extract a 2-3 sentence synopsis covering:
   - What happened / what's new
   - Why it matters for K-12 education
   - Key takeaway or action item

**Freshness check**: Verify article dates before including. Only include articles published within the last 24 hours. Skip older articles even if they appear in results.

**Topics to cover:**
- EdTech product launches and updates
- School technology policy changes
- Cybersecurity in schools
- Digital learning trends

### 1.8 AI News (with Synopses)

Use WebSearch:
```
artificial intelligence news past 24 hours January 2026 latest
```

For each article found (3-5 articles):
1. Use WebFetch to read the full article
2. Extract a 2-3 sentence synopsis covering:
   - What's the development
   - Industry impact
   - Relevance to education/work

**Freshness check**: Verify article dates before including. Only include articles published within the last 24 hours. Skip older articles even if they appear in results.

**Topics to cover:**
- Major AI model releases and capabilities
- AI policy and regulation
- Enterprise AI adoption
- AI research breakthroughs

### 1.9 K-12 Leadership News (with Synopses)

Use WebSearch:
```
K-12 school leadership superintendent news past 24 hours January 2026
```

For each article found (2-3 articles):
1. Use WebFetch to read the full article
2. Extract a 2-3 sentence synopsis covering:
   - Policy or leadership development
   - Impact on districts/schools
   - Relevance to CIO/technology leadership

**Freshness check**: Verify article dates before including. Only include articles published within the last 24 hours. Skip older articles even if they appear in results.

**Topics to cover:**
- State and federal education policy
- Superintendent and board news
- School funding and budgets
- Workforce and staffing trends

### 1.9b School Safety & Security News (with Synopses)

Use WebSearch:
```
K-12 school safety security news past 24 hours January 2026
```

For each article found (3 articles):
1. Use WebFetch to read the full article
2. Extract a 2-3 sentence synopsis covering:
   - What happened / what's new
   - Impact on school safety practices
   - Key takeaway for districts

**Freshness check**: Verify article dates before including. Only include articles published within the last 24 hours. Skip older articles even if they appear in results.

**Topics to cover:**
- School security incidents and responses
- Safety policy changes
- Emergency preparedness
- Mental health and threat assessment
- Physical security technology

### 1.10 Technology Team EOD Messages (Last Business Day) - DETAILED

Get end-of-day check-in messages from the Technology Staff space:

```bash
cd /Users/hagelk/non-ic-code/geoffrey/skills/google-workspace && bun chat/get_eod_messages.js psd spaces/AAAAxOtpv10 last-business-day
```

**CRITICAL - NO HALLUCINATION:**
- ONLY use names that appear in the `sender` field of the script output
- If script returns no messages, say "No EOD messages found"
- If script returns messages with sender IDs instead of names, display the ID (e.g., "users/12345...")
- NEVER invent names, locations, or accomplishments
- Copy-paste approach: treat script output as source of truth

**Before extracting team data:**
1. Examine the raw JSON output from the script
2. List the exact `sender` values returned
3. Use ONLY those names - no paraphrasing, no "improving"

**CRITICAL**: Extract FULL details from each team member's EOD message. Look for messages that contain "Today:" prefix - these are the detailed EOD summaries.

For each team member who posted an EOD summary:
1. **Name**: Who posted (use EXACTLY the name from `sender` field)
2. **Location(s)**: Where they worked (WFH, DCRC, school sites)
3. **Key accomplishments**: Specific tasks completed (not just "tickets")
4. **Notable items**: Interesting problems solved, projects worked on
5. **Issues/blockers**: Any problems mentioned

**Example extraction from raw message:**
```
Brad White:
- Location: TSD (Tech Services)
- Accomplished: Packaged Cinema 4D plugin for deployment, fixed OAuth blocking for Maxon App sign-in, created SwiftDialog notification for plugin installs, used Claude Code for first time to create Installomator label for Godot game engine
- Notable: Working on Unity deployment troubleshooting, burning comp time leaving early
```

**Note**: If today is Monday, "last business day" = Friday (or Thursday if Friday was a holiday).

### 1.10b Safety & Security Team EOD Messages (Last Business Day)

Get end-of-day check-in messages from the Safety & Security Staff space:

```bash
cd /Users/hagelk/non-ic-code/geoffrey/skills/google-workspace && bun chat/get_eod_messages.js psd spaces/AAAAFpQaAnA last-business-day
```

**Space**: PSD Safety & Security Team

**CRITICAL - NO HALLUCINATION:**
- ONLY use names that appear in the `sender` field of the script output
- If script returns no messages, say "No EOD messages found"
- If script returns messages with sender IDs (e.g., "users/12345...") instead of names:
  - Display as: **Unknown (users/123456...)** - [Location from message content]
  - Add note: "Name not in mapping - update chat_user_mapping.json"
- NEVER invent names, locations, or accomplishments
- Copy-paste approach: treat script output as source of truth

**Before extracting team data:**
1. Exami
Files: 7
Size: 49.3 KB
Complexity: 68/100
Category: Image & Video

Related in Image & Video