Agent skill
daily-review
End of day review with learning capture, daily plan completion tracking, and meeting follow-up surfacing.
Install this agent skill to your Project
npx add-skill https://github.com/davekilleen/Dex/tree/main/.claude/skills/daily-review
SKILL.md
Purpose
Conduct an end-of-day review to capture progress, track what you actually accomplished vs. planned, surface meeting follow-ups, and set up tomorrow.
Tone Calibration
Read System/user-profile.yaml → communication section and adapt accordingly.
Step 0: Demo Mode Check
Check System/user-profile.yaml for demo_mode. If true, use demo paths.
Step 1: File Discovery
Find files modified TODAY:
TODAY=$(date +%Y-%m-%d)
find . -type f -name "*.md" -newermt "$TODAY 00:00:00" ! -newermt "$TODAY 23:59:59" 2>/dev/null
Critical rules:
- No truncation — list all modified files
- Today only — use date-based filtering
- Verify with user — "These are the files I found. What did you actually work on?"
Step 2: Gather Context
From 03-Tasks/Tasks.md
- Tasks completed today (look for
✅ YYYY-MM-DDmatching today) - Tasks started but not finished
From Weekly Priorities
Read 02-Week_Priorities/Week_Priorities.md for:
- This week's strategic focus
- How today's work connects to weekly priorities
From Recent Meetings
Check 00-Inbox/Meetings/ for meeting notes from today.
From ScreenPipe (If Running)
Check if ScreenPipe is available:
curl -s http://localhost:3030/health | jq -r '.status' 2>/dev/null
If ScreenPipe is running, gather automatic activity context:
-
Time Audit — Query app usage for today:
Use: screenpipe_time_audit(start_time="YYYY-MM-DDT09:00:00", end_time="YYYY-MM-DDT18:00:00") -
Activity Summary — Get narrative of what happened:
Use: screenpipe_summarize(start_time="YYYY-MM-DDT09:00:00", end_time="YYYY-MM-DDT18:00:00") -
Surface to User:
"📺 Screen Activity Summary (auto-captured):
Time breakdown:
- VS Code: 3.2 hours (41%)
- Slack: 1.5 hours (19%)
- Chrome: 2.1 hours (27%)
- Zoom: 1.0 hour (13%)
Activity narrative: [Generated summary of the day]
Context switches: 34 (moderate) Longest focus session: 48 minutes
Does this match your sense of the day?"
This provides ground truth for what actually happened vs. what was remembered.
Commitment Scan (If ScreenPipe Beta Activated & Enabled & Running)
First, check beta activation:
Use: check_beta_enabled(feature="screenpipe")
If beta NOT activated, skip this section entirely.
Then check if user has opted in:
Read System/user-profile.yaml → screenpipe.enabled. If false, skip this section entirely.
If beta activated AND enabled, scan for uncommitted asks and promises:
Use: scan_for_commitments(
start_time="YYYY-MM-DDT09:00:00",
end_time="YYYY-MM-DDT18:00:00",
apps=["Slack", "Gmail", "Teams", "Notion"]
)
Then get pending items:
Use: get_uncommitted_items(include_dismissed=false)
Surface to user if items found:
"🔔 Uncommitted Items Detected
ScreenPipe noticed these potential commitments today that don't have matching tasks:
Inbound Asks
1. Sarah Chen (Slack, 2:34 PM)
"Can you review the pricing proposal by Friday?"
📎 Matches: Q1 Pricing Project ⏰ Deadline: Friday
→ [Create task] [Already handled] [Ignore]
Outbound Promises
2. You → Tom Baker (Slack, 4:20 PM)
"I'll send over the competitive analysis tomorrow"
📎 Matches: Acme Deal ⏰ Deadline: Tomorrow
→ [Create task] [Already handled] [Ignore]
2 potential commitments detected. 0 have matching tasks."
For each item the user wants to create as a task:
Use: process_commitment(commitment_id="comm-XXXXXX-XXX", action="create_task")
Use: create_task(title="...", priority="P2", pillar="...", context="From Slack commitment")
For dismissals:
Use: process_commitment(commitment_id="comm-XXXXXX-XXX", action="dismiss")
Step 2.5: Semantic Context Enrichment (if QMD available)
Check if semantic search is available by looking for qmd in PATH. If available, use it to map today's work to priorities and goals more intelligently.
What to search:
-
Map completed tasks to goals: For each task completed today, search semantically:
qmd query "task description here" --limit 3Look for connections to quarterly goals or weekly priorities that keyword matching would miss. Example: completing "finalize stakeholder deck" might connect to a goal about "executive engagement strategy" — same concept, different words.
-
Enrich meeting follow-ups: For each meeting today, search for related past discussions:
qmd query "meeting topic" --limit 5Surface any commitments, decisions, or context from previous meetings on the same theme.
-
Priority alignment check: For each weekly priority, search for today's work that advanced it:
qmd query "priority title/description" --limit 5Catch work that moved the needle but wasn't explicitly tagged to the priority.
How to use results:
- Only surface genuinely new connections — if a task was already linked to a goal, don't repeat it
- Merge insights into the Plan vs. Reality section: "Task X also advanced Goal Y (semantic match)"
- Add to the Weekly Priorities Progress section if semantic search reveals hidden progress
- If QMD is not available, skip this step silently — the review works fine without it
Step 2.6: Reminders Completion Sync (Dex Today → Dex)
Check if tasks were completed on phone since the morning plan:
Use: reminders_list_completed(list_name="Dex Today")
For each completed item:
- Match to a Dex task by title
- Update task status via Work MCP:
update_task_status(task_title="...", status="d") - Surface what was synced:
"📱 Synced from phone:
- ✅ "Follow up with Hero Coders" — marked done in Dex"
Also check for tasks completed in Dex today that still have active Reminders:
# For each task completed today in Dex, check if a matching Reminder exists
Use: reminders_find_and_complete(list_name="Dex Today", title_query="task title")
Clean up completed items:
Use: reminders_clear_completed(list_name="Dex Today")
If nothing to sync: Skip silently.
Step 3: Daily Plan Completion Tracking (NEW)
Compare what you planned vs. what you did.
3.1 Find Today's Plan
Look for 07-Archives/Plans/YYYY-MM-DD.md (today's date).
3.2 Extract Planned Focus
From the "Today's Focus" section, extract the 3 items you planned to focus on.
3.3 Track Completion
For each planned focus item:
- Check if it was completed (look in Tasks.md for completion timestamps)
- Check if it was started but not finished
- Check if it was blocked or deferred
Surface this:
"📊 Daily Plan Completion:
You planned 3 focus items this morning:
- ✅ Prep for Acme meeting — Complete
- 🔄 Write pricing proposal — In progress (about 60% done)
- ❌ Reply to Mike — Didn't get to it
Completion rate today: 1 of 3 (33%)
What happened with #3? Should it carry to tomorrow?"
3.4 Track Over Time (Optional)
If tracking completion rates:
- Update
System/metrics/daily-completion.mdwith today's rate - Surface patterns: "Your average completion rate this week is 67%"
Step 4: Meeting Follow-Up Surfacing (NEW)
For each meeting you had today, surface follow-ups.
4.1 Identify Today's Meetings
From calendar or meeting notes, list meetings that happened today.
4.2 For Each Meeting, Ask:
Use: get_meeting_context(meeting_title="...", attendees=[...])
Then prompt:
"📍 You met with Sarah Chen today (Acme Quarterly Review)
Any follow-ups to capture?
- Action items you committed to?
- Things they owe you?
- Decisions that need documentation?
(Type your follow-ups or 'none')"
4.3 Create Follow-Up Tasks
For any follow-ups mentioned:
- Add to Tasks.md with appropriate priority
- Link to the person page
- Add due date if mentioned
Step 5: Progress Assessment
With user-verified information:
- What was accomplished?
- What progress was made against weekly priorities?
- What got stuck or blocked?
- What unexpected things came up?
Step 6: Week Progress Check (Midweek Context)
Use: get_week_progress()
Show how today's work moved weekly priorities:
"Week Progress Update:
After today, you're at:
- Priority 1: ✅ Complete (finished today!)
- Priority 2: 🔄 60% (moved from 40%)
- Priority 3: ⚠️ Still not started
You have 2 days left. Tomorrow should focus on Priority 3."
Step 7: Auto-Extract Session Learnings
Scan today's conversation for learnings:
- Mistakes or corrections — Did something not work as expected?
- Preferences mentioned — Did you express how you like to work?
- Documentation gaps — Were there questions about how the system works?
- Workflow inefficiencies — Did any task take longer than it should?
Write to System/Session_Learnings/YYYY-MM-DD.md.
Then ask: "I captured [N] learnings from today's session. Anything else you'd like to add?"
Step 8: Categorize Learnings (If Applicable)
Check if any learnings should be elevated to pattern files:
- Recurring mistakes →
06-Resources/Learnings/Mistake_Patterns.md - Workflow preferences →
06-Resources/Learnings/Working_Preferences.md
Get user confirmation before adding.
Step 9: Tomorrow's Setup
Based on:
- Incomplete items from today
- Weekly priorities (especially lagging ones)
- Commitments due tomorrow
- Tomorrow's calendar shape
Suggest 3 focus items for tomorrow:
"Suggested focus for tomorrow (Thursday):
- Priority 3 — It's been untouched all week and you have 2 days left
- Finish pricing proposal — 40% left, should be quick to complete
- Reply to Mike — Carried from today
Tomorrow's shape: Moderate (4 meetings). You have a 2-hour block in the afternoon.
Does this feel right?"
Step 9.5: Retrospective Insight (Innovation Concierge)
At the end of the review, check if there's a relevant backlog idea to surface:
- Call
list_ideas(status="active", min_score=70)from Improvements MCP - Look for ideas that connect to today's work or learnings:
- Did the user work on tasks related to a backlog idea?
- Did learnings captured today strengthen an existing idea?
- Is there a "Why Now?" idea with fresh evidence?
- If a relevant match exists, surface it briefly:
Retrospective Insight: Today's meeting processing struggles connect to idea-027 (RAG-Powered Vault Search) — semantic search could make finding meeting context much faster. Worth exploring? Run
/dex-improve idea-027.
Rules:
- Show at most 1 insight per review
- Only show if genuinely connected to today's work (not random)
- Frame as retrospective — "based on what you just did, here's what could help"
- If no connection, skip entirely
- Keep it to 1-2 lines max
Step 10: Track Usage (Silent)
Update System/usage_log.md to mark daily review as used.
Analytics (Silent):
Call track_event with event_name daily_review_completed and properties:
wins_countlearnings_count
This only fires if the user has opted into analytics. No action needed if it returns "analytics_disabled".
Step 11: Evening Journal (If Enabled)
If journaling.evening: true, prompt for evening reflection.
Output Format
Create 07-Archives/Reviews/Daily_Review_YYYY-MM-DD.md:
---
date: YYYY-MM-DD
type: daily-review
plan_completion_rate: X%
---
# Daily Review — [Day], [Month] [DD], [YYYY]
## 📊 Plan vs. Reality
**Planned focus:**
1. [x] [Planned item 1] — ✅ Complete
2. [ ] [Planned item 2] — 🔄 In progress (X%)
3. [ ] [Planned item 3] — ❌ Didn't start
**Completion rate:** X of 3 (X%)
**What happened:** [Brief explanation of deviations]
---
## ✅ Accomplished
- ✓ [Completed item 1]
- ✓ [Completed item 2]
---
## 🔄 Progress Made
| Area | Movement |
|------|----------|
| [Priority 1] | [What moved forward] |
| [Priority 2] | [What moved forward] |
---
## 📊 Weekly Priorities Progress
After today:
- **Priority 1:** [Status/progress] — [emoji]
- **Priority 2:** [Status/progress] — [emoji]
- **Priority 3:** [Status/progress] — [emoji]
**Days remaining this week:** [X]
---
## 📍 Meeting Follow-Ups
### From [Meeting Name]
- [ ] [Follow-up action] — due [date]
- [ ] [Follow-up action]
---
## 📺 Screen Activity (Auto-Captured)
**Time by App:**
| App | Time | % |
|-----|------|---|
| [App 1] | Xh Xm | X% |
| [App 2] | Xh Xm | X% |
**Metrics:**
- Context switches: [X]
- Longest focus: [X] minutes
- Deep work ratio: [X]%
**Activity Summary:**
[Narrative summary from ScreenPipe]
---
## 💡 Insights
- [Key realization or connection]
- [Important learning]
---
## 🚫 Blocked/Stuck
| Item | Blocker | Status |
|------|---------|--------|
| [Item] | [What's blocking] | [Status] |
---
## ❓ Discovered Questions
1. [New question that emerged]
2. [Thing to research]
---
## 📅 Tomorrow's Focus
Based on weekly priorities and today's carryover:
1. [Priority 1 — tied to weekly focus]
2. [Priority 2]
3. [Priority 3]
**Tomorrow's shape:** [stacked/moderate/open]
---
## 🔄 Open Loops
- [ ] [Thing to remember]
- [ ] [Person to follow up with]
- [ ] **Awaiting:** [What you're waiting on from others]
---
*Generated: [timestamp]*
*Daily completion rate: X%*
*Week progress: X/3 priorities on track*
Step 12: Skill Quality Check (Gentle)
After generating the review, call get_skill_ratings(skill_name="daily-review") from Work MCP.
If 3+ ratings exist and average has dropped below 3.0 over the last 5 entries: Add one line at the end of the review output:
"Your daily reviews have been averaging [X]/5 lately. Common note: '[most recent note]'. Want to adjust the format?"
If no ratings exist or average is 3.0+: Say nothing. Don't mention ratings at all.
Then: Run /identity-snapshot silently in the background if System/identity-model.md is older than 7 days (check file mtime). Don't announce this.
MCP Dependencies
| Integration | MCP Server | Tools Used |
|---|---|---|
| Work | dex-work-mcp | list_tasks, get_week_progress, get_commitments_due, analyze_calendar_capacity |
| Calendar | dex-calendar-mcp | calendar_get_today |
| Reminders | dex-calendar-mcp | reminders_list_completed, reminders_find_and_complete, reminders_clear_completed |
| Screen Activity | screenpipe-mcp | screenpipe_time_audit, screenpipe_summarize, screenpipe_query |
ScreenPipe Integration Notes
ScreenPipe provides automatic activity capture. When available:
- Pre-fills "what you actually did" with ground truth data
- Surfaces time allocation across apps
- Identifies communication overhead vs. deep work
- Detects context-switching patterns
If ScreenPipe is not running, skip the screen activity section gracefully.
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
getting-started
Interactive post-onboarding tour with adaptive pathways based on available data
industry-truths
Define time-horizoned assumptions about your industry/domain that ground strategic thinking and prevent building on quicksand
process-meetings
Process synced Granola meetings to update person pages, extract tasks, and organize meeting notes
pi-tools
View and manage Pi-built extensions synced to Dex. Shows available tools, commands, and sync status.
pi
Route tasks to Pi for comparison testing. Toggle Pi mode or run specific commands through Pi.
commitment-extractor
Extract and track commitments from meeting notes - who promised what to whom, with deadlines and status tracking.
Didn't find tool you were looking for?