agentsclimarketplace

Morning brief

Skill talgacapri/pm-os/.claude/skills/morning-brief

Scan industry news, summarize important emails, check today's calendar, and send a 60-second brief to Slack DM. Runs automatically via GitHub Action at 6 AM GST or on-demand. Triggers on: morning brief, daily brief, news brief, what did I miss, catch me up, brief me.From its SKILL.md

Install
npx -y skills add talgacapri/pm-os --skill morning-brief

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

2 things to look at

  • no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
  • 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

SKILL.md

7.3 KB, ~1.7k tokens by cl100k_base, as published. Nobody here has run it

Why this exists, and what I'd change

Why it exists. Two PMs at the same company often miss the same news because nobody runs the daily scan. This automates it: industry news plus email summary plus today's calendar, delivered to a Slack DM in 60 seconds. Cuts the "what did I miss?" ritual.

Design tradeoffs.

  • Slack DM delivery instead of email. Lower-friction for daily checking. Cost: needs Slack MCP wired. Emails are more universal across orgs that don't use Slack.
  • Fixed 6am local schedule via GitHub Action. Reliable across machines, no local cron to maintain. Cost: ties you to GitHub Actions usage limits. On a long-haul timezone shift, it fires at the wrong local time until you update the schedule.
  • Industry news topics are static config. You declare topics once and the scout runs them daily. Cost: if your focus shifts mid-quarter, the brief is still scanning yesterday's beats.

What I'd change. Replace the fixed schedule with "send 30 minutes before your first calendar meeting." That hits the right cognitive moment regardless of timezone or meeting density.


Morning Brief

Deliver a 60-second daily brief covering industry news, email highlights, and today's schedule, straight to your Slack DMs.

/morning-brief            → run now, send to Slack
/morning-brief draft      → run now, save to file only (no Slack)
/morning-brief schedule   → show automation status

Time: ~30 seconds. Uses Gmail MCP, Notion MCP, Slack MCP, and web search.


Workflow (4 steps)

Step 1 — Scan industry news

Run 3 parallel web searches covering your competitive landscape. Customize the queries below for your industry, region, and stage:

Search 1: [your category] [your sector] [your region] news [current month] [current year] Search 2: [your regulatory environment] [your industry] regulation [current year] Search 3: AI [your category] funding [current year]

Example for a B2B SaaS in the US workflow-automation space:

  • Search 1: workflow automation SaaS competitors news [month] [year]
  • Search 2: SOC 2 enterprise SaaS data privacy regulation [year]
  • Search 3: AI agents workflow automation funding [year]

From the combined results, extract the top 3-5 stories most relevant to you. Prioritize:

  1. Direct competitors
  2. Regulatory changes in your jurisdiction
  3. Market data and projections for your category
  4. AI developments relevant to your domain
  5. Funding rounds in your space

For each story: one bold headline + one sentence of "so what" for your company.

Step 2 — Summarize important emails

Use Gmail MCP:

Tool: summarize-top-k-emails
Arguments: { "k": 10 }

From the results, filter for emails that need action or awareness:

Action required:

  • Emails from your CEO or other leadership (configure the senders to watch)
  • Emails requiring a decision or response
  • Active threads with multiple replies (people are engaged)

Awareness:

  • Sentry/monitoring alerts
  • Event invitations with deadlines
  • External outreach worth noting

Skip: marketing newsletters, automated notifications, spam.

For each highlighted email: sender, subject, one line of what's needed.

Step 3 — Check today's meetings

Use Notion MCP to query meeting notes for today:

Tool: notion-query-meeting-notes
Arguments:
  filter:
    operator: "and"
    filters:
      - property: "created_time"
        filter:
          operator: "date_is"
          value:
            type: "exact"
            value:
              type: "date"
              start_date: "YYYY-MM-DD"  ← today

If no meetings found in Notion (common for weekends or if notes haven't been created yet), state: "No meetings today" or "No meetings logged yet."

For weekdays with no Notion results, note it may be worth checking your calendar directly.

Step 4 — Compile and send the brief

Format the brief as a single Slack message. Target reading time: 60 seconds (roughly 250-300 words max).

Format:

*Your 60-Second Morning Brief*  |  [Day], [Month] [DD], [YYYY]

---

*INDUSTRY NEWS*

1. **[Headline]** — [One sentence "so what" for your company]

2. **[Headline]** — [One sentence]

3. **[Headline]** — [One sentence]

---

*EMAIL HIGHLIGHTS*

1. **[Thread/subject] ([sender])** — [What's needed from you]. *[Action tag: Follow up / Decide / FYI]*

2. **[Subject] ([sender])** — [What it means]. *[Action tag]*

---

*CALENDAR*

[Meeting list with times, or "No meetings today. Use the downtime for [suggestion based on active threads/PRDs]."]

Sending:

If mode is default (not "draft"):

Tool: slack_send_message_draft
Arguments:
  channel_id: "U0A9SLM1CBZ"   ← your Slack user ID (DM to self)
  message: [compiled brief]

The draft lets you review before it goes live. If you prefer auto-send, change to slack_send_message.

If mode is "draft": Save to outputs/daily-briefs/YYYY-MM-DD-morning-brief.md instead.


Output Quality Checklist

Before sending, verify:

  • News is current: Stories are from the past 7 days, not recycled old news
  • Emails are actionable: Each has a clear action tag (Follow up / Decide / FYI)
  • No sensitive data in Slack: Don't include email bodies, just subjects and summaries
  • Under 300 words: The brief should be scannable in 60 seconds
  • "So what" for your company: Every news item ties back to why it matters for the business
  • Weekend awareness: On weekends, adjust tone (lighter, more strategic reading)

Automation

This skill runs automatically at 6:00 AM local time via GitHub Action. Set your timezone and work-week cadence in .github/workflows/morning-brief.yml.

How the automation works:

  1. GitHub Action triggers on cron schedule (defaults to Mon-Fri; change to match your work week)
  2. Action runs Claude Code with this skill
  3. Claude pulls news, emails, and calendar
  4. Brief is sent to your Slack DMs before you wake up

Workflow file: .github/workflows/morning-brief.yml

To check automation status: /morning-brief schedule

To adjust the time: Edit the cron expression in the workflow file.


Edge Cases

SituationAction
No new industry newsUse "No major developments" and include one evergreen insight from recent trends
Gmail MCP auth expiredSkip email section, note "Gmail unavailable, check manually"
Weekend (Fri/Sat)Lighter brief, focus on news + strategic reading suggestions
All emails are noiseState "Inbox clear, no action items"
Slack send failsFall back to saving as file in outputs/daily-briefs/

Related Skills

Before this: None required, this is a standalone morning routine.

After this:

  • /daily-plan — deeper daily planning with task prioritization
  • /meeting-notes — process meetings as they happen during the day

Pairs with:

  • /weekly-plan — set weekly priorities that inform the brief's focus
  • /weekly-review — end-of-week reflection

What ships with it

Read from the repository

Just SKILL.md. No reference files, no scripts.

Keep looking

Skills are one crate of 326,764. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.