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".
npx skills add https://github.com/microsoft/cat-agent-skills --skill 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.
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).
over the last ~30 days, fetch the last 7 days of messages. Strip @-mention
noise.
days, fetch the last 7 days of messages. Skip silent channels.
bodies, no attendee lists). Look for repeated reschedules, repeated tentative
responses, recurring conflict patterns, and meeting-prep cadences.
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
same concept to 3+ different people. → blog candidate.
different askers. → blog / FAQ candidate.
Automation cluster types (cast a wide net)
file moves / API calls, repeatedly. → automation candidate.
same kinds of items to the same people 3+ times. → auto-route by rule or
classifier.
on a cadence. → scheduled digest.
alternates.
reasoning. → auto-respond by rule.
meetings. → pre-meeting brief.
a cadence. → scheduled ingest.
pre-screen.
pipeline.
onboarding intros, availability, "I have a conflict" replies, follow-ups). →
template + auto-fill.
Anti-patterns — do NOT surface
repetitive *manual* work around them that could be automated.
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".>
this skill. Producing the report is the only output.
times/locations, file paths, or full subjects containing customer identifiers.
Say "3 different customers", not the actual names.
private or excluded (e.g. performance-review or confidential emails).
silence is safer than noise.
Take microsoft/pattern-radar from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
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.