一键导入
comms-archive
Archive Outlook emails and Teams messages as a daily summary in the knowledge base. Requires Microsoft 365 MCP connector.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Archive Outlook emails and Teams messages as a daily summary in the knowledge base. Requires Microsoft 365 MCP connector.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Knowledge management — query, save, update, brain management, and more. Just describe what you need.
Use when you need to run a prompt under a DIFFERENT Claude Code account/subscription than the current session, e.g. offload a headless task to the work (claude-work) or second (claude-acc2) account, spread cost across another account's headless credit pool, or run under an isolated profile/auth. Not for same-account parallelism (use the Agent tool for that).
Convert a PDF datasheet (or any technical PDF) into clean, LLM-friendly Markdown with extracted images, then review the result for fidelity. Trigger when the user wants to convert/ingest a datasheet PDF to Markdown, add a datasheet to a datasheet library/repo, or make a PDF searchable for an LLM. Handles the non-obvious pymupdf failure modes (Symbol-font glyphs extracted as invisible Private-Use code points, vector figures that don't extract, collapsed tables).
Extract a CV / Lebenslauf / résumé PDF into a validated JSON Resume v1.0.0 document, plus the portrait photo. Trigger when the user wants to parse a CV, ingest a Lebenslauf, or extract structured data from a résumé PDF. Output is schema-neutral (JSON Resume) — downstream skills/services then adapt it to their own format.
Read and summarize past Claude Code sessions from their JSONL files. Use when the user wants to see what happened in an old session, decide whether to resume one, or get a token/cost breakdown. Also use before expensive /resume operations to check if resuming is worth it.
Use when searching Austrian legal sources - OGH/VwGH/VfGH decisions by Geschäftszahl, federal laws (Bundesrecht konsolidiert), state laws (Landesrecht), or keyword searches in judicature. Covers RIS (Rechtsinformationssystem des Bundes) at ris.bka.gv.at.
| name | comms-archive |
| description | Archive Outlook emails and Teams messages as a daily summary in the knowledge base. Requires Microsoft 365 MCP connector. |
| argument-hint | [days back, e.g. '2' for last 2 days] (default: today) |
$ARGUMENTS
Fetches Outlook emails and Teams messages via the Microsoft 365 MCP connector, filters out noise, clusters by topic, and writes a daily summary to a comms/ folder in the current repository.
outlook_email_search, chat_message_search, read_resource)CONVENTIONS.md (for frontmatter schema and author initials)If comms/ does not exist yet:
Show this privacy notice first and ask for explicit confirmation before proceeding:
Privacy Notice: This skill fetches emails and chat messages from Microsoft 365 and sends their content to an LLM API for summarization. This means personal data (names, email addresses, message content) of you, your colleagues, and external contacts will be processed by the LLM provider.
Before using this skill, ensure:
- Your organization permits sending workplace communications to third-party AI services
- A Data Processing Agreement (DPA) with the LLM provider is in place if required
- You have informed relevant stakeholders (e.g., DPO, works council) if applicable
The generated summaries (containing names and decisions) will be stored in this git repository. Ensure the repository access controls are appropriate.
If the user confirms, proceed:
comms/ and comms/sync/comms/_index.md with frontmatter describing the folder purposecomms/sync/processed-ids.json with empty arrays:
{"last_sync": null, "processed_emails": [], "processed_teams_messages": []}
comms/sync/filter-rules.jsonafterDateTime accordinglyCONVENTIONS.md (the default author: field)comms/sync/filter-rules.json (if exists, otherwise use defaults)comms/sync/processed-ids.jsonoutlook_email_search with afterDateTime, limit: 50chat_message_search with query: '*', afterDateTime, limit: 50If a source returns exactly limit (50) results, more likely exist for that window — note the truncation in the summary so a busy day isn't silently under-archived.
Skip messages whose IDs already appear in processed-ids.json. This file grows unbounded; when writing it back, drop IDs older than ~30 days to keep it small.
Apply rules from comms/sync/filter-rules.json. Default rules if no config exists:
{
"exclude_senders": [],
"exclude_subject_contains": [
"invited to share this calendar",
"[MASSENMAIL]"
],
"exclude_subject_starts_with": [
"Accepted:",
"Declined:"
],
"exclude_sender_and_subject": [
{"sender": "noreply", "subject": "Verifying"}
],
"exclude_sender_domains": []
}
Suggest additional filters to the user based on what looks like noise in the fetched messages.
For each relevant email, use read_resource to get full body. Strip HTML signatures, legal disclaimers, and meeting join links.
Group messages by topic/theme. Write to comms/YYYY-MM-DD-daily.md.
Frontmatter (use author initials from CONVENTIONS.md):
---
title: "Daily Communications Summary YYYY-MM-DD"
type: summary
date: YYYY-MM-DD
author: <initials from CONVENTIONS.md>
status: accepted
tags: [daily-summary, <topic-tags>]
---
Section format:
## Topic Name (HIGH PRIORITY if critical)
**Sources:** Teams chat with X, Email from Y
Key facts, decisions, context.
### Action Items
- Who does what
### Upcoming Meetings
- Date/time and purpose
Low-value items go in ## Misc / Low Priority at the bottom.
Add newly processed IDs to comms/sync/processed-ids.json. Update last_sync.
Show the user a brief overview of the topics found. Ask for confirmation before writing. Commit with: docs(comms): daily summary YYYY-MM-DD