Skip to main content

m365-graph

Microsoft 365 surface — READ Frank's mailbox / Wes's calendar / OneDrive (shift reports, SOPs) AND a strict H-I-T-L workflow to draft and send an email (e.g. brief Wes on the morning incident).

インストールへ移動

ソース情報

リポジトリ
aiappsgbb/kratos-agent
ソースの最終更新活動
2026年6月9日 14:53
検出された SKILL.md の言語
英語
スター
24
フォーク
22

インストール方法

デフォルトでは、最初にソースを確認する Prompt が選択されています。直接コマンドに切り替えるか、ローカルコピーをダウンロードすることもできます。

ソースファイルを確認

インストールを決める前に、SKILL.md と SkillsMP に表示されている付属ファイルをお読みください。

SKILL.md を表示中

SKILL.md
ソースの指示 · 読み取り専用プレビュー
name
m365-graph
description
Microsoft 365 surface — READ Frank's mailbox / Wes's calendar / OneDrive (shift reports, SOPs) AND a strict H-I-T-L workflow to draft and send an email (e.g. brief Wes on the morning incident).
enabled
true
## Instructions This skill covers both reads and the email H-I-T-L. They share an MCP but, like the servicenow skill, the gate makes them very different tools. ## Section A — Reads (no confirmation needed) | User intent | Tool | |---|---| | Resolve `EMP-*` ↔ display name ↔ email, presence, OOO | `m365_get_user`, `m365_get_user_presence` | | List people in Plant Operations / under Wes | `m365_list_users` | | Search Frank's mailbox (recent shift reports, supplier notes, QA threads) | `m365_search_messages` | | Read one message in full | `m365_get_message` | | Read a whole thread | `m365_get_thread` | | What's on Wes's calendar — is he free for a quick brief? | `m365_list_events`, `m365_get_event` | | Find a free 15-min slot for Frank + Wes + Lucia | `m365_find_meeting_times` | | Search SharePoint / OneDrive (SOPs, OEE workbooks, supplier MSAs) | `m365_search_files`, `m365_get_file` | | Frank's Teams chats with the shift / with Wes | `m365_list_chats`, `m365_search_chat_messages` | ### Read conventions - The m365 user record carries `presence` and `ooo_message` — check these before suggesting "I'll email Wes" if Wes is OOO; cite the OOO message and propose the coverage person. - Frank's `mail` is `frank.delgado@olympus.example.com`; Wes's is `wesley.park@olympus.example.com`. These match `workday.work_email` exactly. - **Some legacy m365 content (chats, files, events) was created when Frank was tagged as IT** — don't be surprised to see "Service Desk" themes in older records. The current role (and the role on every new draft) is **Plant Floor Supervisor**. ## Section B — Email (H-I-T-L) ### Pattern — strict three-step #### Step 1 — propose the draft Build the email body from the situation. Lead with the metric; include the CI / INC / PO ids; keep it short. **Never** send unsolicited tone. ``` I'll draft this email to Wes: - To: Wesley Park (wesley.park@olympus.example.com) - Cc: (none) - Subject: Line 3 incident this morning — DEV-3001 spindle, INC-7012 logged - Body: Wes, Two-hour update on Line 3: • OEE 49% vs target 80% — declining all week (81 → 49 across 7 days). • Spindle DEV-3001 vibration climbed 1.8 → 5.4 mm/s in the last 24h and crossed the 4.5 alarm. Four micro-stops (DT-3001..DT-3004). • PO-9003 is at 20% scrap on Model A. Two rejected lots from Northbridge (V-1201, already QA-blocked) tied to those stops. • Logged maintenance work order INC-7012 with Plant Maintenance (AGT-401 Reggie Bellamy). Brief is at /tmp/line-3-incident-brief- 2026-06-09.pdf if you want the chart. I'll keep Line 3 on Devon and reassign Lucia to Line 1 backfill until the spindle is inspected. Calling QA on the Northbridge lots. Frank Confirm to send? (yes / edit / no) ``` Then call `m365_draft_message` so the Draft id exists in the mailbox, and `ask_user`. **Wait.** Do not call `m365_send_message`. #### Step 2 — execute on explicit "yes" - **yes** → `m365_send_message` with the Draft id - **edit body / edit subject / cc Aisha** → revise, re-confirm - **no** → stop; the Draft stays in Drafts folder, won't send #### Step 3 — receipt ``` Sent: MSG-30041 · to wesley.park@olympus.example.com · Subject: Line 3 incident this morning… ``` ### Constraints - **Never** call `m365_send_message` without an explicit `yes` after the rendered draft. No batching sends. - **Never** send to external addresses (anything not `@olympus.example.com`) without surfacing that as a flag and re-confirming. - **Always include the PDF path** when there is one — Frank's a manager-of-managers; he reads briefs. - **Tone:** Frank's voice is direct and operational. No "I hope this email finds you well". Bullet → metric → action. ## Section C — When NOT to use - Numbers / OEE / telemetry → **azure-iot** (no need to read it from email) - Production order / vendor / material → **sap-s4** - Logging a maintenance ticket → **servicenow** (maintenance work order section) - Building the brief PDF that the email links to → **incident-brief-pdf**
GitHubで見る