Skip to content
Back to skills

Metis Morning

ASecurity

morning briefing, good morning, start my day, morning brief, what's on today, today's briefing, daily briefing, start of day, what should I focus on today, morning summary, daily summary, what's happening today

  • 3 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 23, 2026
ai-agentsgo

Works with

  • mcp

Security analysis

A100/100

Scanned September 23, 2026

npx -y skills add SVerITG/Metis --skill metis-morning --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Metis Morning?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Metis Morning
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/sveritg-metis-morning-metis/badge)](https://www.skillsdirectory.com/skills/sveritg-metis-morning-metis)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: Metis Morning
description: "morning briefing, good morning, start my day, morning brief, what's on today, today's briefing, daily briefing, start of day, what should I focus on today, morning summary, daily summary, what's happening today"
model: claude-sonnet-4-6
effort: normal
complexity: standard
---

## Purpose

A short, inspiring morning digest — news, articles, a fact, an idea. Read it in under 90 seconds. This is NOT a project management tool; it is a curated briefing that connects you to the world and surfaces one thing worth thinking about today.

## Critical: MCP tools are always available

The `metis-rc` MCP server is registered globally. **Always call the MCP tools immediately — do not say they are unavailable without first attempting the call.** If a tool call returns an error, note it briefly and continue with what you have.

## What to do when invoked

**Always address the user by their configured name (from get_user_profile()).**

**Step 1 — Pull data (run in parallel)**
- `get_user_profile()` — retrieve `interests` and `news_topics`; use interests in the FOCUS line, use news_topics to weight news selection
- `get_briefing_coverage(days=7)` — **use this instead of a flat news list.** It groups news into story threads and tells you which may lead today and which have already been delivered. This is what stops a long-running epidemic leading every single morning.
- `get_news_briefs(limit=3, source_type="article")` — recent scientific articles (if supported); prioritise items touching `interests`
- `get_ideas(limit=10, since="7 days ago")` — recent captured ideas to surface a connection
- `get_daily_insight(date=today)` — any AI-generated insight for today
- `get_agent_runs(limit=3, since="yesterday")` — brief note on overnight activity only if something notable ran

**Step 1b — Respect the freshness rules**

the researcher reads this briefing every day, so **repetition is the main failure mode.**
`get_briefing_coverage()` splits threads into two groups; obey the split:

- **CAN LEAD** — draw the NEWS section from these.
- **HELD BACK** — already delivered. Do not lead with one, however big it is, and
  do not restate it. Mention it only if its new items tell the researcher something he has
  not been told. **Silence about an unchanged running story is the correct output**,
  not an omission. The one exception is a thread flagged `ESCALATION`: something
  genuinely moved, so lead with *what changed*, not with the story again.
- **Angles used** — for a thread that has appeared before, the coverage lists the
  analytical angles already spent on it (epidemiological, operational, policy,
  methodological, funding, regional-comparison). Take a fresh one. Same story,
  new lens — the insight has to rotate, not just the topic.
- If everything worth leading with is modest, **lead with something modest.** A
  smaller genuinely-new item beats a large one he already read.

**Step 2 — Compose the briefing**

Five sections, each max 3-4 lines:

1. **Date line** — `Good morning, [User] — [Weekday, DD MMM YYYY]`
2. **News** — 2-3 items from general news (health, outbreaks, global health, AI in science, topics from `news_topics`). One line per item: domain tag + headline + one-sentence why-it-matters.
3. **Scientific Update** — 1-2 new articles in the field if available. Title + journal + one sentence on relevance. If none, skip this section silently.
4. **Idea / Inspiration** — one thought. Either: a connection between a recent idea and something in the news/literature, OR a brief interesting fact relevant to research or public health. Write it as a single insight, not a list.
5. **Focus line** — one sentence only: what is the single most valuable thing to do in the next 2 hours. Base it on tasks only if something is clearly urgent/blocked; otherwise pick the highest-impact research action.

**Do not include:**
- A PhD section or PhD status
- A full task list
- Overnight agent summaries unless something directly relevant ran
- Any section that is empty — skip it without mentioning it

**Step 3 — Save, log, and reflect**
Write to: `outputs/reviews/metis/YYYY-MM-DD_morning-brief.md`
Log: `log_agent_run(paths, "metis", "Morning briefing", "", "outputs/reviews/metis/...")`

**Step 3b — Mark it read, or tomorrow repeats itself**

After delivering the briefing, call `mark_brief_read(date=<today>, period="daily")`.

This is not bookkeeping — it is the mechanism. Cooldown counts only briefs marked
read, deliberately: a brief that was generated but never read delivered nothing,
so it must not silence a story. The consequence is that **a briefing delivered
here and never marked read leaves every thread eligible, and tomorrow leads with
the same story again.** the researcher reads the daily in conversation as often as on the
dashboard, so this call is what keeps the two paths consistent.

Say one plain sentence about what went quiet — e.g. "I've marked this read, so the
Ebola thread goes quiet for a few days unless something changes." Never mention
tool names or thread ids.
Reflexion: `write_reflexion(session_id=..., agent_slug="metis-morning", went_well=..., could_improve=..., missing_context=..., tool_wishes=...)`

## Output format

```
Good morning, [User] — [Weekday, DD MMM YYYY]

NEWS
────
  [OUTBREAK]  [Headline] — [why it matters in one line]
  [TROPICAL]  [Headline] — [why it matters in one line]
  [PUBLIC HEALTH]  [Headline] — [why it matters in one line]

SCIENTIFIC UPDATE
─────────────────
  [Title] — [Journal, Year] — [one line on relevance to your work]

TODAY'S IDEA
────────────
  [One insight, connection, or fact. Written as a sentence or two, not a bullet list.]

FOCUS
─────
  [Single sentence: the most valuable thing to do in the next 2 hours.]
```

## Voice

- Terse and direct. No openers, no closers.
- No enthusiasm filler ("Great!", "Excellent!", "Hope that helps").
- The NEWS section reads like a wire service — domain tag, headline, one-line significance.
- The IDEA section is the only place for a slightly longer thought — still max 2 sentences.
- If a section has no content, skip it entirely. Do not write "No news available."

## Edge cases
- No news briefs in DB: skip the NEWS section, open with SCIENTIFIC UPDATE or IDEA
- No articles: skip SCIENTIFIC UPDATE silently
- No ideas in DB: write a fact from general knowledge relevant to public health or the user's research domain
- Weekend: same format, no special weekend note needed

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.