跳到正文
cccskills
免费在 GitHub 公开

check-inbox

Check Outlook inbox and update daily note with message summary

中文简介正在准备中。当前显示原文说明。

集成工具OutlookPlaywright
查看安装方法

包含的文件(1)

  • SKILL.md4.7 KB

SKILL.md(原文)

安装前可以查看交给 AI 代理的指令内容。

Skill: Check Inbox

Command: /check-inbox Model: Haiku (coordinator) / any (note creation) Agent: main

Description

Check Outlook inbox for unread messages using Playwright. Extracts sender, subject, time, and flags from the DOM, then optionally updates the daily note with an inbox summary.

Prerequisites

  • Playwright installed (@playwright/test in devDependencies)
  • Microsoft Edge installed
  • Authenticated session (run npm run inbox:check without --headless once to authenticate)

Usage

/check-inbox                    # Check unread messages (default)
/check-inbox flagged            # Check flagged messages
/check-inbox all                # Check all messages (no filter)
/check-inbox to-me              # Messages addressed directly to me
/check-inbox --no-daily         # Don't update daily note

Workflow

Step 1: Capture inbox data

Run the inbox check script:

node .claude/scripts/outlook-inbox.js --headless

For other filters:

node .claude/scripts/outlook-inbox.js --headless --filter flagged
node .claude/scripts/outlook-inbox.js --headless --filter all
node .claude/scripts/outlook-inbox.js --headless --filter to-me

This outputs:

  • JSON message data at .claude/logs/inbox-messages-{filter}-{timestamp}.json
  • Screenshot at .claude/logs/inbox-screenshot-{filter}-{timestamp}.png

If the script fails with "Session expired", re-run without --headless:

node .claude/scripts/outlook-inbox.js

Step 2: Read and present results

  1. Find the most recent inbox JSON file:
    .claude/logs/inbox-messages-unread-*.json
    
  2. Read the JSON and screenshot
  3. Present to the user as a summary table:
Inbox — 3 unread messages (10:56 AM)

| Sender               | Subject                       | Time     | Flags   |
|----------------------|-------------------------------|----------|---------|
| Alex Johnson  | Accepted: What is AlertHub   | 10:05 AM | MEETING |
| Chris Taylor      | Re: Pen re-test               | 9:57 AM  |         |
| Udemy Business       | New courses are waiting...    | 10:30 AM |         |

Step 3: Match senders to vault

For each message, search for matching Person notes:

  • Search People/*.md files for sender name matches
  • If found, link to the Person note in the summary
  • If not found, note the sender as unlinked

Step 4: Update daily note (unless --no-daily)

Add or update an ## Inbox section in today's daily note (Daily/YYYY/YYYY-MM-DD.md):

## Inbox

**3 unread** at 10:56 AM

- **Accepted: What is AlertHub** — [[Alex Johnson|Alex Johnson]] (10:05 AM) [MEETING]
- **Re: Pen re-test** — Chris Taylor (9:57 AM)
- **New courses are waiting for you!** — Udemy Business (10:30 AM)

Rules for the daily note update:

  • If an ## Inbox section already exists, replace it with the latest data
  • Place it after ## Meetings and before ## Notes
  • Link senders to Person notes where they exist
  • Include flags in brackets: [MEETING], [ATTACH], [FLAG]

Step 5: Suggest actions (optional)

If the user asks, suggest actions for each message:

  • Meeting acceptances → link to the meeting note if it exists
  • External emails (CAUTION banner) → flag for attention
  • Flagged messages → create Task notes if needed

Available Filters

FilterCLI FlagDescription
unread--filter unreadUnread messages only (default)
flagged--filter flaggedFlagged messages only
to-me--filter to-meMessages addressed directly to me
has-files--filter has-filesMessages with attachments
mentions-me--filter mentions-meMessages where I'm @mentioned
calendar-invites--filter calendar-invitesMeeting invites only
all--filter allAll messages (no filter)

Scheduling

Inbox checks run automatically via launchd at 9:00, 12:00, and 15:00 on weekdays.

  • Job: com.vault.inbox-check
  • Script: .claude/scripts/outlook-inbox.js --headless
  • Logs: .claude/logs/inbox-check.log

The JSON output accumulates in .claude/logs/ — the skill always reads the most recent file.

Authentication

Same persistent browser context as calendar sync (.claude/browser-data/, gitignored). If the session expires during a scheduled run, the next interactive /check-inbox will prompt for re-authentication.

Related Skills

  • [[.claude/skills/sync-calendar/SKILL.md|/sync-calendar]] — Calendar sync (same Playwright approach)
  • [[.claude/skills/daily/SKILL.md|/daily]] — Daily note creation
  • [[.claude/skills/email/SKILL.md|/email]] — Process individual emails into vault notes

评价

还没有评价。欢迎分享你的使用感受。

评论

无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。

还没有评论。来写第一条吧。

提交后会立即公开。请勿填写邮箱、电话等个人信息。URL 最多 2 个。

0 / 1000 字

此表单受 reCAPTCHA 保护,适用 Google 的隐私权政策和服务条款。

同一仓库的技能

Batch populate summary fields using content analysis

中文简介正在准备中。当前显示原文说明。

DavidROliverBA/ArchitectKB532026年3月2日 更新

auto-tag

免费

Batch auto-tag untagged notes using content analysis

中文简介正在准备中。当前显示原文说明。

DavidROliverBA/ArchitectKB532026年3月2日 更新

Generate C4 architecture diagrams from system notes

中文简介正在准备中。当前显示原文说明。

DavidROliverBA/ArchitectKB532026年3月2日 更新

canvas

免费

Create and edit Obsidian Canvas files for architecture visualization

中文简介正在准备中。当前显示原文说明。

DavidROliverBA/ArchitectKB532026年3月2日 更新

commit

免费

Stage and commit vault changes with UK English conventional commit messages

中文简介正在准备中。当前显示原文说明。

DavidROliverBA/ArchitectKB532026年3月2日 更新

Evaluate an architecture artifact (ADR, HLD, LLD) against the vault's established architecture principles

中文简介正在准备中。当前显示原文说明。

DavidROliverBA/ArchitectKB532026年3月2日 更新

查看 DavidROliverBA 的全部技能

报告此技能的问题