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".
- License 许可
- MIT
- 最近更新
- 2026-11-14
- Stars
- ★ 107
- Forks
- 120
01 前言 Front Matter
- name
- pattern-radar
- description
- 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".
02 资源文件 4
- 参考文档metadata.json535 B
- 参考文档README.md2.3 KB
- 参考文档references/phrasebook.tsv830 B
- 脚本scripts/translate.py2.2 KB
03 SKILL.md 正文
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.
04 同仓库更多 Skills
stakeholder-and-decision-map
Mines customer interactions to identify stakeholders, infer their likely roles and engagement, map the decision process, and highlight who or what may be missing. Use when asked to "map a deal's buying group", identify influential or missing stakeholders, "assess who has gone quiet", or "explain how the customer will decide". Do not use for phased engagement plans, contact sequences, choosing or drafting outreach to the single next contact, seller or team performance reviews, or contacting, scheduling, or changing records.
sales-progress-update
Creates or refreshes a sales progress update for a manager or team about work done, deal movement, pending outcomes, supported forecast position, and help needed. Use when asked to "create my weekly sales update", "refresh my sales progress deck", "report my forecast position", "where do I stand against my quarter forecast", or "catch my manager up on committed deals". Do NOT use for non-sales project updates, a since-date deal change digest, momentum or blocker analysis, meeting prep, or outreach drafting.
submission-assemble
Put the checked CSR or 510(k) sections together in template order with a reviewer-facing open-items register, as a draft package for human sign-off. Use when the user asks "assemble the CSR draft", "put the module together for review", "build the review package with the open items on top", "compile the 510(k) sections in order" or "package this up for the submission lead". Do NOT use for assembling an unchecked draft - use consistency-check instead. Do NOT use for loading protocol, SAP or TLF sources - use source-ingest instead. Do NOT use for compiling general documents or slide decks - use the built-in docx or pptx skill instead. Do NOT use for filing or submitting to a regulator - use the sponsor's validated gateway, operated by a human, instead. Guardrail: draft for human approval only (L1); status is draft_clean or draft_open_items, never submitted.
source-ingest
Pull every number, date and population definition out of a study's protocol, SAP, TLF tables, investigator brochure and prior approved text into one cited fact map, keyed per config/field-dictionary.json, before any CSR or 510(k) section is written. Use when the user asks "here's the locked TLF set and SAP, set up the CSR", "load the protocol and tables before we start drafting", "what figures do we have from the database lock?", "pull the disposition counts out of Table 14.1.1" or "ingest the IB for the 510(k)". Do NOT use for drafting or assembling submission sections - use section-draft or submission-assemble instead. Do NOT use for reconciling a patient's medications - use the discharge-care-transition plugin instead. Guardrail: reads and cites sources only; never estimates, rounds or invents a fact.
section-plan
Work out which sections a CSR or 510(k) requires, from the templates in config, check each one against the cited fact map, and name what is missing before a word is drafted. Use when the user asks "what do we still need before we can draft the CSR?", "which sections are ready to start?", "what's blocking the performance data section?", "do we have everything for the synopsis?" or "map our tables to the E3 structure". Do NOT use for writing section language - use section-draft instead. Do NOT use for cross-checking a finished draft - use consistency-check instead. Do NOT use for outlining general Word documents or business reports - use the built-in docx skill instead. Only structures with a template in config are supported. Guardrail: plans only; never marks a section ready on a missing fact and never invents a structure.
section-draft
Write or revise the language for one planned CSR or 510(k) section - synopsis, efficacy, safety, discussion, device description - using only figures already in the cited fact map, each with its TLF or SAP citation. Use when the user asks "draft the Synopsis from our locked tables", "write up safety from Table 14.3.1", "give me a first pass at the discussion", "draft the device description for the 510(k)" or "tighten the wording of the Discussion section". Do NOT use for supplying a number not already in source_facts - use source-ingest instead. Do NOT use for verifying a draft's figures - use consistency-check instead. Do NOT use for appeal letters, clinical notes or discharge summaries - use the matching HLS plugin instead. Guardrail: drafts for human approval only (L1); never asserts an unsourced number or harmonises two figures.