Fetch & embed AI transcripts as Obsidian callouts. Args: <path>, all, refresh <path>. Prompts for URLs if empty.
中文简介正在准备中。当前显示原文说明。
Produce a weekly/date-range recap from emails, Slack, Jira/Confluence, and vault notes. Args: [dates]. Default = this week.
中文简介正在准备中。当前显示原文说明。
查看安装方法安装前可以查看交给 AI 代理的指令内容。
/recap — Recap the current week (Monday through today)./recap [dates] — Recap a specific date range.See date-filter for the full syntax and date parsing rules.
Default (omitted): Monday through today (current week).
The recap pulls from all available sources. Unavailable sources are skipped gracefully with a note in the output.
| Source | Tool | Status | What to gather |
|---|---|---|---|
| Gmail | gws (Gmail API) | ✅ When gws is authenticated | Emails sent/received in the date range |
| Vault notes | QMD (CLI or MCP) | ✅ When QMD index exists | Meeting notes, daily notes, any .md file dated within range |
| Google Calendar | gws (Calendar API) | ✅ When gws is authenticated | Events in the date range (for context) |
| Slack | slack MCP (optional) | ⏳ Pending setup | Channel messages, DMs, threads |
| Jira | atlassian MCP (optional) | ⏳ Pending setup | Issues assigned/updated/commented, sprint activity |
| Confluence | atlassian MCP (optional) | ⏳ Pending setup | Pages created/updated, comments |
When a source is unavailable (gws / QMD / optional MCP not installed, not authenticated, or errors), log it under a ### ⏳ Unavailable Sources section in the output and proceed with the remaining sources.
Resolve the [dates] argument into a concrete start_date and end_date (inclusive, YYYY-MM-DD format). Default: Monday of the current week through today.
Run the following in parallel where possible:
See vault-context for the full convention.
Gather vault context for the date range: meeting notes from Meetings/**/* (any naming format) and Tracker.md (sprint/task status). Use QMD for discovery, always include the Tracker, and extract titles, participants, discussion points, existing todos, and AI summaries from each matched file.
Search for emails in the date range using gws (see google-workspace-cli):
gws gmail users messages list with --params including "userId":"me", "q":"after:YYYY/MM/DD before:YYYY/MM/DD" (use the day after end_date for the before bound), and maxResults (e.g. 50).id, run gws gmail users messages get with "format":"full". Triage from headers/snippet first; fetch full bodies for important threads only.Fetch events in the date range via gws calendar events list with RFC3339 timeMin / timeMax on calendarId: primary (and singleEvents, orderBy: startTime as needed). See google-workspace-cli. Use as structural context: what meetings happened, who attended, what the agenda was. Cross-reference with vault meeting notes from Step 2a.
Search channel history and threads for messages in the date range. Focus on:
Query for issues where the user is assignee, reporter, or commenter, updated within the date range. Extract:
Search for pages created or updated by the user (or mentioning the user) within the date range. Extract key content and comments.
Before producing the summary:
[[@Name]] wikilinks. See people-resolver.Generate a well-structured markdown document. Use headings, sub-headings, bullet lists, bold/italic emphasis, wikilinks, and Obsidian callouts to make the recap scannable and readable in Obsidian. Follow the template below — adapt section depth and detail to the volume of content (light weeks get concise output; busy weeks get sub-sections per project).
---
created: YYYY-MM-DDTHH:MM:SS±HH:MM
period: YYYY-MM-DD..YYYY-MM-DD
sources:
- gmail
- vault
- calendar
---
# Recap — YYYY-MM-DD to YYYY-MM-DD
## 🔦 Highlights
Top 5–10 significant events, decisions, or accomplishments from the period.
Each highlight is a bullet with bold project/topic label, a concise description,
and a source attribution in italics.
- **[Project/Topic]**: What happened or was decided. *(meeting note, email thread, Slack)*
- **[Project/Topic]**: Another highlight. *(source)*
For busy weeks, group highlights under `### Project/Topic` sub-headings:
### Example Project
- Accomplished X...
- Decided Y...
### Infrastructure
- Migrated Z...
## 📋 Open / Pending Items
Action items, requests, and commitments that are still open or need follow-up.
Use Obsidian Tasks format (see [obsidian-tasks](../_shared/obsidian-tasks.md)).
Group by project when there are many items.
### Project A
- [ ] Description 🔼 📅 YYYY-MM-DD
- [ ] [[@Name]] Description ⏫
### Ungrouped
- [ ] Standalone item 🔽
> [!tip] Items carried forward
> If any items were already tracked in previous recaps or meeting notes
> and are still open, note them here with a reference to the original source.
## 💡 Insights
Patterns, observations, or things worth noting that don't fit in the sections above.
Use sub-bullets for supporting detail.
- **Recurring theme**: Description of the pattern
- Came up in *meeting A*, *Slack #channel*, and *email thread*
- **Gap identified**: Decision X has no follow-up Jira ticket
- **Workload note**: N meetings on Tuesday, heavy email day on Thursday
## 📊 Activity Summary
| Source | Count | Detail |
|--------|-------|--------|
| Meetings | N | *list of meetings attended* |
| Emails | N threads | N sent · N received |
| Slack | N channels | *(when available)* |
| Jira | N issues | *(when available)* |
| Vault notes | N | *notes created/modified in range* |
## ⏳ Unavailable Sources
> [!warning] Skipped sources
> List any sources that were unavailable and why (`gws` / QMD / MCP not configured, auth error, etc.)
> Remove this section entirely if all sources were available.
Display the recap to the user before saving. Let them request adjustments (add/remove items, change priorities, fix attributions).
Save to Recaps/YYYY-MM-DD.md (using end_date as the filename). If Recaps/ doesn't exist, create it.
If a recap for the same end date already exists, ask the user whether to overwrite or create a suffixed version (YYYY-MM-DD-2.md).
See /commit.
gws gmail users messages list returns paginated results. Fetch up to 50 messages per search; if more exist, note the total count and focus on the most relevant.±HH:MM).还没有评价。欢迎分享你的使用感受。
无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。
还没有评论。来写第一条吧。
Fetch & embed AI transcripts as Obsidian callouts. Args: <path>, all, refresh <path>. Prompts for URLs if empty.
中文简介正在准备中。当前显示原文说明。
Stage and commit with flexible intent parsing. Accepts file/folder scope, free-text description, amend, or any combination.
中文简介正在准备中。当前显示原文说明。
Extract clean markdown content from web pages using Defuddle CLI, removing clutter and navigation to save tokens. Use instead of WebFetch when the user provides a URL to read or analyze, for online documentation, articles, blog posts, or any standard web page.
中文简介正在准备中。当前显示原文说明。
Resolve and fill Participants frontmatter + link unlinked names in body. Args: <path>, all.
中文简介正在准备中。当前显示原文说明。
Extract action items as plain markdown bullets (with confirmation). Args: <path>. No args = run [/note-status pending --step=todos](../note-status/SKILL.md#pending-mode).
中文简介正在准备中。当前显示原文说明。
Create and edit JSON Canvas files (.canvas) with nodes, edges, groups, and connections. Use when working with .canvas files, creating visual canvases, mind maps, flowcharts, or when the user mentions Canvas files in Obsidian.
中文简介正在准备中。当前显示原文说明。