adversarial-review
Review existing work with independent fresh reviewers and fresh synthesis. Use for an adversarial review, review-plan request, or…
Prepare a daily briefing from configured calendar, email, reminders and goals sources.
Claude Code
$ npx -y skills add chrisblattman/claudeblattman --skill morning-brief --agent claude-code
Codex
$ npx skills add chrisblattman/claudeblattman --skill morning-brief -a codex -y
Cursor
$ npx skills add chrisblattman/claudeblattman --skill morning-brief -a cursor -y
Gemini CLI
$ npx skills add chrisblattman/claudeblattman --skill morning-brief -a gemini-cli -y
GitHub Copilot
$ npx skills add chrisblattman/claudeblattman --skill morning-brief -a github-copilot -y
OpenCode
$ npx skills add chrisblattman/claudeblattman --skill morning-brief -a opencode -y
Windsurf
$ npx skills add chrisblattman/claudeblattman --skill morning-brief -a windsurf -y
name: morning-brief description: "Prepare a daily briefing from configured calendar, email, reminders and goals sources."
*v1.5 — Unified hard deadline keywords; edge case fixes; structural cleanup*
Generate a comprehensive daily morning briefing combining calendar, reminders, inbox state, weather, meeting context, and optional email triage into a single view.
This skill requires several MCP integrations and config files to function fully. Missing components degrade gracefully (sections are omitted, not errors).
**Required:**
**Recommended:**
**Optional:**
1. **Create config directory:**
mkdir -p ~/.claude-assistant/config mkdir -p ~/.claude-assistant/state mkdir -p ~/.claude-assistant/logs mkdir -p ~/.claude-assistant/scripts
2. **Create calendar-policy.md** with at minimum:
## Calendars - primary (your-email@gmail.com) - [add other calendar IDs you want included] ## Working Hours - 8:00 AM to 6:00 PM ## Location - City: [Your City] - Timezone: [YOUR_TIMEZONE]
3. **Create email-policy.md** with at minimum:
## VIP List ### Tier 1 (respond within 24h) - [name] <email@example.com> ### Tier 2 (respond within 48h) - [name] <email@example.com> ## @ToSelf Label - Label name: @ToSelf - Label ID: <YOUR_LABEL_ID>
4. **Create goals.yaml** (optional but recommended):
push_level: moderate # gentle | moderate | assertive
objectives:
- name: "Example project"
weight: high
status: active
next_step: "Draft section 3"5. **Create triage-config.md** if using auto-triage (see `/triage-inbox` for format).
| Setting | Where to Configure | Default | |---------|-------------------|---------| | **Weather city** | `calendar-policy.md` > Location > City | Omitted if not set | | **Working hours** | `calendar-policy.md` > Working Hours | 8am-6pm (10 hours) | | **Timezone** | `calendar-policy.md` > Timezone | System timezone | | **Calendar IDs** | `calendar-policy.md` > Calendars | Primary only | | **VIP list** | `email-policy.md` > VIP List | No VIP highlighting | | **Goal alignment** | `goals.yaml` > objectives | Section omitted | | **Deep work push level** | `goals.yaml` > push_level | `moderate` | | **Email delivery** | See Phase 7 below | Terminal only | | **Auto-triage** | Requires `/triage-inbox` + `triage-config.md` | Skipped | | **Granola meeting context** | Requires Granola MCP | Gmail-only context | | **Reminders** | Requires macOS (osascript) | Section omitted | | **Health check** | `~/.claude-assistant/scripts/check-sync.sh` | Skipped if not found |
`$ARGUMENTS` can include:
Multiple arguments can be combined: `email tomorrow`, `no-triage no-reminders`, etc.
If a health check script exists at `~/.claude-assistant/scripts/check-sync.sh`, run it before fetching any data:
bash ~/.claude-assistant/scripts/check-sync.sh 2>&1
**Interpretation:**
!! System health: [N] issue(s) - [failure description 1] - [failure description 2]
**Never block the briefing on health check results** -- failures are informational only. If the script is not found or fails to run, skip this phase silently and continue to Phase 1.
Read available config files. Missing files are not errors -- skip the corresponding sections.
1. Read `~/.claude-assistant/config/email-policy.md` -- extract VIP lists (Tier 1, Tier 2), family addresses, @ToSelf label ID 2. Read `~/.claude-assistant/config/calendar-policy.md` -- extract calendar IDs, working hours, city name, timezone 3. Read `~/.claude-assistant/config/triage-config.md` -- extract label IDs, vendor domains, classification rules (needed only if triage is enabled) 4. Read `~/.claude-assistant/config/goals.yaml` -- extract objectives, push_level, active priorities
If a config file is missing, note it internally and continue. The briefing adapts to available data.
Query all configured calendars for today's events (or tomorrow's if `tomorrow` argument).
For each calendar ID in `calendar-policy.md`:
mcp__google_workspace__get_events calendar_id: [calendar ID] time_min: [target date]T00:00:00[YOUR_TIMEZONE] time_max: [target date]T23:59:59[YOUR_TIMEZONE]
Also fetch lookahead events (tomorrow, or weekend on Fridays):
Claude Code for professionals who don't code — Skills, agents, and setup guides
Review existing work with independent fresh reviewers and fresh synthesis. Use for an adversarial review, review-plan request, or…
Ask the specific Claude, Codex, Gemini, or Grok agent the user names and automatically retrieve its response. Use for targeted…
Develop independent approaches to a task, decision, plan, or draft, then use a fresh worker to synthesize them. Use for an…
Close out current work by saving decisions, unresolved tasks, useful artifacts, a session log and a current-state handoff for the…
Check the installed starter kit, prerequisites, and next step without calling external models.
Discover and test optional Claude, Codex, Gemini through Antigravity, and Grok subscription connections. Help with missing CLI or…
Draws static SVG figures for lessons, READMEs and manuals in the AI Engineering from Scratch look: paper panel, blueprint accent,…
End-to-end workflow for creating complete JavaScript concept documentation, orchestrating all skills from research to final review
Test a learner on a single Claude Code tutorial lesson (01-10) with 10 questions, scoring answers and flagging weak spots. Use…