Generates a structured 6-section weekly review page in Notion from tasks, calendar, and email data. Activates for weekly reviews, end-of-week summaries, 'what did I accomplish?', weekly wins/blockers, or any retrospective on the past week. Auto-discovers task databases, detects blockers via multi-signal analysis, and generates next-week priorities.
From founder-osnpx claudepluginhub thecloudtips/founder-os --plugin founder-osThis skill uses the workspace's default tool permissions.
references/data-sources.mdreferences/review-structure.mdDesigns and optimizes AI agent action spaces, tool definitions, observation formats, error recovery, and context for higher task completion rates.
Enables AI agents to execute x402 payments with per-task budgets, spending controls, and non-custodial wallets via MCP tools. Use when agents pay for APIs, services, or other agents.
Compares coding agents like Claude Code and Aider on custom YAML-defined codebase tasks using git worktrees, measuring pass rate, cost, time, and consistency.
Generate a structured 6-section weekly review page in Notion by auto-discovering task databases, gathering calendar events and email threads, detecting blockers, and producing next-week priorities. The full pipeline runs in a single agent pass (no agent teams). Record each review in a tracking database for historical reference.
For detailed section templates see ${CLAUDE_PLUGIN_ROOT}/skills/review/weekly-reflection/references/review-structure.md. For source-specific query patterns see ${CLAUDE_PLUGIN_ROOT}/skills/review/weekly-reflection/references/data-sources.md.
Define the review period as a full Monday-through-Sunday week.
--date flag with a date (e.g., --date=2026-02-23), resolve to the Monday-Sunday window containing that date.YYYY-MM-DD for all date references in the review content and database records.Before generating a new review, query the briefings database for an existing row matching the Monday date AND Type = "Weekly Review". If a review already exists for that week, update the existing page and row rather than creating a duplicate. Append a note to the page: "Updated at [timestamp] -- replaces earlier review."
Gather data from three sources in sequence: Notion task databases, Google Calendar events, and Gmail threads.
Auto-discover task databases rather than requiring the user to specify database IDs.
filter: { property: "object", value: "database" } to retrieve all accessible databases.status or select) with at least one option matching "Done", "Complete", "Completed", or "Closed" (case-insensitive).date) named "Due Date", "Date", "Completed Date", "Done Date", or "Last Edited" (case-insensitive, partial match acceptable).For each qualifying database, query for tasks matching the review week:
Extract for each task: title, status, database name (source), due date, priority (if property exists), and project or category (if property exists).
Query Google Calendar for events within the Monday 00:00:00 to Sunday 23:59:59 window.
Query Gmail for sent and received threads within the review week window.
after:YYYY/MM/DD before:YYYY/MM/DD in:sent.Assemble the review page with exactly 6 sections in this order. For detailed templates, content examples, and the complete example output, see ${CLAUDE_PLUGIN_ROOT}/skills/review/weekly-reflection/references/review-structure.md.
| # | Section | Primary Source | Purpose |
|---|---|---|---|
| 1 | Executive Summary | All sources (metrics) | Top-line metrics callout, week assessment, highlight win or risk |
| 2 | Wins by Project | Notion completed tasks | Celebrate completed work grouped by project |
| 3 | Meetings & Outcomes | Google Calendar | Summarize meeting load, list meetings with extracted outcomes |
| 4 | Blockers & Risks | Multi-signal (all sources) | Surface blocked, overdue, and stagnant items |
| 5 | Carryover Items | Notion open tasks | List incomplete tasks carrying into next week, grouped by priority |
| 6 | Next Week Priorities & Calendar Preview | Notion tasks + Calendar | AI-ranked top-5 priorities plus next week's calendar shape |
Identify blockers through multi-signal analysis across all three data sources.
Evaluate these 5 signals independently, then merge results:
Classify each detected blocker into one of three severity tiers:
| Severity | Criteria |
|---|---|
| Critical | Explicit "Blocked" status OR overdue by 14+ days |
| Warning | Overdue by 1-13 days OR stagnant for 5+ days |
| Watch | Stagnant for 2-4 days OR unresolved thread OR meeting-heavy day |
Present blockers sorted by severity (Critical first), then by age (oldest first within each tier).
Generate a ranked top-5 priority list for the coming week.
Build the candidate pool from three sources:
Score each candidate on 3 factors (0-100 each), then compute a weighted composite:
| Factor | Weight | Scoring Logic |
|---|---|---|
| Due date urgency | 0.50 | Mon=100, Tue=85, Wed=70, Thu=55, Fri=40. Overdue=100. No date=20. |
| Carryover penalty | 0.30 | New=0. 1 week=40. 2 weeks=70. 3+ weeks=100. |
| Priority property | 0.20 | Critical/Urgent=100, High=75, Medium=50, Low=25. No property=50. |
Composite = (urgency x 0.50) + (carryover x 0.30) + (priority x 0.20).
Select top 5 by composite score. Present numbered 1-5 with source database, due date, and one-line ranking rationale.
When fewer than 5 candidates exist, present all. When zero exist: "No upcoming tasks found. Consider reviewing project backlogs."
Create the weekly review as a Notion page in the consolidated "[FOS] Briefings" database (or legacy fallback).
The consolidated "[FOS] Briefings" database uses these properties (relevant to this plugin):
| Property | Type | Description |
|---|---|---|
| Date | title | Week ending date in YYYY-MM-DD format -- primary lookup key (was "Week Ending") |
| Type | select | Set to "Weekly Review" for this plugin |
| Content | rich_text | Executive summary (was "Executive Summary") |
| Tasks Completed | number | Total completed tasks count |
| Meetings Held | number | Total meetings count for the week |
| Email Threads | number | Active email threads count |
| Sources Used | multi_select | Which sources contributed data (Notion, Calendar, Gmail) |
| Generated At | date | Timestamp of review generation |
Property mapping notes:
After publishing the review page, create or update a row with all metrics populated. Always set Type = "Weekly Review". Include only sources that successfully returned data in Sources Used.
Notion is the primary source; Calendar and Gmail are supplementary.
When Notion is available, always generate the review. Sections 1, 4, and 5 populate from Notion alone. Sections 2, 3, and 6 degrade gracefully.
When Notion itself is unreachable, do not generate a review. Return: "Weekly review generation failed -- Notion is required but unavailable. Check MCP server configuration."
When a source returns successfully but has no data for the week (zero completed tasks, zero meetings, zero emails), include the section with an appropriate empty-state message. This is normal for light weeks, not an error.
Consult these reference files for detailed implementation guidance:
${CLAUDE_PLUGIN_ROOT}/skills/review/weekly-reflection/references/data-sources.md -- Notion query filter construction, Calendar API parameters, Gmail search syntax, field extraction schemas, and source-specific edge cases.${CLAUDE_PLUGIN_ROOT}/skills/review/weekly-reflection/references/review-structure.md -- Detailed templates for each of the 6 review sections, content examples, Notion block type mapping, and formatting constraints.