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.
Interactive daily standup/meeting update generator. Use when user says 'daily', 'standup', 'scrum update', 'status update', 'what did I do yesterday', 'prepare for meeting', 'morning update', or 'team sync'. Pulls activity from GitHub, Jira, and Claude Code session history. Conducts 4-question interview (yesterday, today, blockers, discussion topics) and generates formatted Markdown update.
Start your day with a prioritized sales briefing. Works standalone when you tell me your meetings and priorities, supercharged when you connect your calendar, CRM, and email. Trigger with "morning briefing", "daily brief", "what's on my plate today", "prep my day", or "start my day".
Full ICP-to-leads pipeline. Describe your ideal customer in plain English and get a ranked table of enriched decision-maker leads with emails and phone numbers.
Analyze meeting notes to find action items and create Jira tasks for assigned work. When an agent needs to: (1) Create Jira tasks or tickets from meeting notes, (2) Extract or find action items from notes or Confluence pages, (3) Parse meeting notes for assigned tasks, or (4) Analyze notes and generate tasks for team members. Identifies assignees, looks up account IDs, and creates tasks with proper context.
When the user wants to optimize post-signup onboarding, user activation, first-run experience, or time-to-value. Also use when the user mentions "onboarding flow," "activation rate," "user activation," "first-run experience," "empty states," "onboarding checklist," "aha moment," or "new user experience." For signup/registration optimization, see signup-flow-cro. For ongoing email sequences, see email-sequence.
Prepare for tomorrow''s meetings and tasks. Pulls calendar from Outlook via WorkIQ, cross-references open tasks and workspace context, classifies meetings, detects conflicts and day-fit issues, finds learning and deep-work slots, and generates a structured HTML prep file with productivity recommendations.
Design meeting rhythms, metric reporting, quarterly planning, and decision-making velocity for scaling companies. Use when decisions are slow, planning is broken, the company is growing but alignment is worse, or leadership meetings consume all time without producing decisions.
Add Google Calendar as an MCP tool (list calendars, list/search/create events, free/busy queries) using OneCLI-managed OAuth. Multi-calendar and multi-account supported. Mirrors /add-gmail-tool's stub pattern — no raw credentials ever reach the container; OneCLI injects real tokens at request time.
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.