mcpbeat

Pattern Radar

microsoft/pattern-radar

Scan the user's recent Microsoft 365 signals (emails, active chats/channels, calendar subjects) to surface recurring patterns worth productizing — either as a blog post (the user explains the same thing repeatedly) or as an automation (the user does the same multi-step task repeatedly). Use when the user asks "what should I write about?", "what could I automate?", "find patterns in my work", or invokes "/pattern-radar".

2k tokens
context cost
the whole folder, loaded on every use
3
files
instructions only
0
copies elsewhere
how many repositories repackaged it
4 d ago
last touched
this folder, not the whole repository

Install

one command, takes just this skill from the repository
npx skills add https://github.com/microsoft/cat-agent-skills --skill pattern-radar

What comes with it

2 877 bytes besides the instruction
README.md
metadata.json

The instruction itself

5 sections, as written by the author

Pattern Radar

Find recurring patterns in the user's recent work signals that could be turned

into leverage — a blog post (the user keeps explaining the same thing) or an

automation (the user keeps doing the same manual, multi-step task). Give

blog and automation candidates equal weight; bias toward automation candidates,

since offloading repetitive work is usually the bigger win.

Default lookback window: the last 7 days from the current date/time. Treat

the provided current datetime as authoritative — never reason from training-data

dates.

> Tool names. This skill refers to Microsoft 365 tools as m365_*. If your

> host exposes them under different names, map them to the equivalent capability.

Inputs — collect breadth, not depth

  • Email — list Inbox and Sent from the last 7 days (subjects + first-line

previews only; do not open bodies). Pay special attention to Sent items:

they reveal the user's own repeated outbound actions (forwards, intros, status

pings, FYIs, "looping in X" handoffs, RSVPs, reschedules).

  • Active chats — list recent chats; for each chat the user has posted in

over the last ~30 days, fetch the last 7 days of messages. Strip @-mention

noise.

  • Active channels — for channels the user has posted in over the last ~30

days, fetch the last 7 days of messages. Skip silent channels.

  • Calendar — list events from the last 7 days (subjects only — no

bodies, no attendee lists). Look for repeated reschedules, repeated tentative

responses, recurring conflict patterns, and meeting-prep cadences.

Clustering — what counts as a pattern

A signal qualifies only if it appears **≥3 times across ≥2 distinct people /

chats / customers / threads / events** in the window. Be ruthless — one-offs are

noise.

Blog cluster types

  • Repeated explanation — the user answers the same question or explains the

same concept to 3+ different people. → blog candidate.

  • Recurring FAQ — the same question shows up in 3+ chats/channels from

different askers. → blog / FAQ candidate.

Automation cluster types (cast a wide net)

  • Repeated multi-step manual task — the same sequence of clicks / drafts /

file moves / API calls, repeatedly. → automation candidate.

  • Repeated handoff / triage — forwarding, "looping in", or intro'ing the

same kinds of items to the same people 3+ times. → auto-route by rule or

classifier.

  • Repeated status pings / FYIs — the same kind of update to the same audience

on a cadence. → scheduled digest.

  • Repeated meeting reschedules for the same root cause. → auto-propose

alternates.

  • Repeated RSVPs / tentative responses to recurring meetings with consistent

reasoning. → auto-respond by rule.

  • Repeated meeting prep — gathering the same context before recurring

meetings. → pre-meeting brief.

  • Repeated doc/wiki updates — manually appending the same kind of content on

a cadence. → scheduled ingest.

  • Repeated approvals / sign-offs of the same class of request. → rule-based

pre-screen.

  • Repeated file/data shuttling — move/rename/reformat between systems. →

pipeline.

  • Repeated drafting — near-identical emails/messages (welcome notes,

onboarding intros, availability, "I have a conflict" replies, follow-ups). →

template + auto-fill.

Anti-patterns — do NOT surface

  • Normal recurring meeting cadence (standups, weekly syncs) UNLESS there's

repetitive *manual* work around them that could be automated.

  • Anything needing the body of an excluded/private email to reason about.
  • Automations the user already runs.

Output

List 0–3 candidates max. If signal is thin (< 3 reinforcing data points

across all clusters), output: ✅ No new patterns this run.

Prefer a mix — include at least one automation candidate when one qualifies,

even if a blog candidate is stronger.

Per candidate (≤3 lines each):

💡 **<theme in 5–8 words>**
   _evidence:_ <1–2 anonymized signals, e.g. "forwarded 4 customer asks to the
   same engineer this week" or "explained X to 4 different people in chats">
   **<blog|automation>** · <1-line rationale. For automation, name the trigger
   and the action, e.g. "trigger: incoming request → action: auto-route + draft
   reply".>

Privacy & guardrails

  • Read-only. Never send any email, chat, channel reply, or Teams message from

this skill. Producing the report is the only output.

  • Anonymize. Never include customer/team names, attendee names, meeting

times/locations, file paths, or full subjects containing customer identifiers.

Say "3 different customers", not the actual names.

  • Respect exclusions. Never open or paraphrase content the user has marked as

private or excluded (e.g. performance-review or confidential emails).

  • When in doubt that a candidate is a real pattern vs. coincidence, drop it —

silence is safer than noise.

How to use it

Copy the folder

Take microsoft/pattern-radar from the repository into ~/.claude/skills for personal use, or into .claude/skills inside a project.

Check the name does not clash

The agent identifies a skill by the name field in its header. Two skills with the same name cannot sit side by side — one of them will be ignored.