원클릭으로
recap
Produce a weekly/date-range recap from emails, Slack, Jira/Confluence, and vault notes. Args: [dates]. Default = this week.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Produce a weekly/date-range recap from emails, Slack, Jira/Confluence, and vault notes. Args: [dates]. Default = this week.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
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.
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).
Show when you last had a 1:1 with each direct report / peer, sorted by recency. Flags people who haven't had one in N weeks. Powered by the OneOnOnes view on Meetings.base.
Gmail AI transcript notifications → meeting Notes: URLs + mark read. Args: (none). Invoked standalone or as step 1 of /meeting wrap.
| name | recap |
| description | Produce a weekly/date-range recap from emails, Slack, Jira/Confluence, and vault notes. Args: [dates]. Default = this week. |
| license | MIT |
| compatibility | Requires qmd (CLI or MCP) and gws CLI for Gmail and Calendar (read-only). Degrades gracefully when unavailable. See [google-workspace-cli](../_shared/google-workspace-cli.md). |
/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).