| name | journal |
| description | Daily logger with three modes - a personal journal entry, a technical standup, and a full automated end-of-day (eod) report that pulls from Supabase, Skool, Blotato, and YouTube. Also generates and emails weekly summaries. Triggers on: journal, daily log, what did I do, standup, stand up, daily standup, run my standup, eod, end of day, daily summary, how was my day, weekly summary. |
Run the daily logger. This skill has three logging modes plus weekly summaries. Pick the mode from the argument (or the user's wording):
| Argument / intent | Mode |
|---|
| blank, "log", "entry", "journal" | Journal entry (personal daily reflection) |
| "standup" | Standup (technical work status) |
| "eod", "end of day", "how was my day" | End-of-day report (automated, pulls from all sources) |
| "summary", "week" | Weekly summary (display only) |
| "email", "email summary" | Weekly summary + email |
Always get today's date from the current date, not from memory. Date format is always YYYY-MM-DD. Never use em dashes in saved content — use a plain hyphen with spaces or a comma.
Mode 1: Journal entry (default)
Personal daily reflection. Ask these one at a time, conversationally — wait for each answer:
- What did you accomplish today? (work, personal, anything worth noting)
- What are you planning to work on next?
- Any blockers, concerns, or things on your mind?
- Anything else you want to remember? (optional — skip if they say no)
Save to ~/content/journal/YYYY-MM-DD.txt:
# Journal — YYYY-MM-DD (Day of Week)
## Done
- [their answers as bullet points]
## Next
- [their answers as bullet points]
## Blockers
- [their answers, or "None"]
## Notes
- [optional — omit section if empty]
If an entry already exists for today, ask whether to append or replace.
Mode 2: Standup
Technical, tighter than a journal entry. Ask these one at a time, conversationally:
- What did you work on? (the focus / project / area)
- What did you get done? (concrete accomplishments)
- What's next? (what you're picking up next)
- Any blockers? ("none" is fine)
Save to ~/content/standup/YYYY-MM-DD.md:
# Standup — YYYY-MM-DD (Day of Week)
## Worked On
- [their answer]
## Done
- [accomplishments]
## Next
- [what's next]
## Blockers
- [their answer, or "None"]
Break run-on answers into clean, scannable bullets. Keep the wording theirs — tighten, don't editorialize. If a standup already exists for today, ask whether to append or replace. After saving, print the final standup and confirm the path.
- "standup show" / "standup last" → display the most recent file in
~/content/standup/
- "standup week" → 7-day rollup of standups: what got done, what's in progress, recurring blockers (display only)
Mode 3: End-of-day report
A comprehensive automated report of what got done and what's still pending.
Step 1: Determine the date
Use the user-provided date, else today.
Step 2: Gather data from all sources (run IN PARALLEL via the Agent tool or multiple Bash calls)
Social Media (Blotato) — use mcp__blotato__blotato_list_schedules for posts published/scheduled today across YouTube, TikTok, Instagram, LinkedIn, X.
Skool — recent post timestamps (Playwright if needed) + new member signups:
sqlite3 ~/.claude/skills/skool/data/skool.db "SELECT COUNT(*) FROM skool_members WHERE created_at LIKE 'YYYY-MM-DD%';"
YouTube uploads:
yt-dlp --flat-playlist --print "%(upload_date)s %(title)s" "https://www.youtube.com/@TylerReedAI/videos" 2>/dev/null | head -5
Nutrition / Fitness — query the lifestyle Supabase project (project id in your own config) via the Supabase MCP (replace the date):
select * from activity_log where date = 'YYYY-MM-DD';
select * from cardio_log where date = 'YYYY-MM-DD';
select * from strength_entries where date = 'YYYY-MM-DD';
select * from water_log where date = 'YYYY-MM-DD';
select * from caffeine_log where date = 'YYYY-MM-DD';
select * from reading_log where date = 'YYYY-MM-DD';
select * from daily_checkin where date = 'YYYY-MM-DD';
Compare against meal_plan rows (planned vs actual_*). If water or caffeine is not logged, flag it.
Content created — check ~/content/YYYY-MM-DD/, ~/content/youtube/shorts/, ~/content/youtube/*/social/, and any new carousels/PDFs/visuals created today.
Files modified today:
find ~/content ~/content/youtube ~/content/research -name "*.md" -mtime 0 2>/dev/null | head -30
Journal / standup — read ~/content/journal/YYYY-MM-DD.txt and ~/content/standup/YYYY-MM-DD.md if they exist.
Schedule — most recent filming-schedule.md in ~/content/ subdirs and ~/content/youtube/shorts/*/filming-plan.md. Determine planned vs actual, and pull TOMORROW's items.
Step 3: Build the report
# End of Day Summary - YYYY-MM-DD (Day of Week)
## What Got Done
- [accomplishments, grouped by category]
## Social Media Published
| Platform | Post | Status |
|----------|------|--------|
## Leads / Revenue
- New Skool members today: X
- Total Skool members: X
- LinkedIn engagement / DMs / post performance
- Sales / Revenue / new leads
## Nutrition
- Breakfast / Lunch / Dinner
- Water: X oz / goal (or "Not logged")
- Caffeine: X mg (or "Not logged")
- Calories: est. total | Protein: Xg
- Workout: [what was done, or "Rest day"]
## Still Pending
- [scheduled items not yet done; planned-but-unposted content]
## Tomorrow (Day of Week, YYYY-MM-DD)
- [from filming schedule; content that needs to go out; workout suggestion]
## Productivity Rating: X/10
[brief explanation: planned vs accomplished]
Step 4: Save
Save to ~/content/journal/eod-YYYY-MM-DD.md. If the user says "don't save" or "just show me", skip saving.
Step 5: Present
Display the full report, then ask: (1) "Did you track water and caffeine today?" if not logged, (2) "Anything else to note?", (3) "Want me to save this?"
Rating guidelines
- 9-10: Exceeded the plan. Everything scheduled got done plus extra.
- 7-8: Solid. Most things done, 1-2 pushed.
- 5-6: Average. Some done, significant items missed.
- 3-4: Light day.
- 1-2: Basically a rest day.
Be honest but motivating. Context matters — a filming day where filming happened is a 10 even if posts didn't go out. Infrastructure/tool-building days count as high productivity even with no published content.
Weekly summary
"summary" / "week"
Read all entries from the past 7 days in ~/content/journal/ (exclude weekly_summary.txt and eod-*.md) and generate:
- What was accomplished
- Recurring themes or blockers
- What's planned ahead
Display it.
"email" / "email summary"
- Generate the weekly summary (above).
- Send it:
python3 ~/.claude/skills/journal/send_summary.py
The script reads the latest ~/content/journal/weekly_summary.txt and emails it.
- Confirm the email was sent.
Rules
- Storage: journal + eod →
~/content/journal/; standups → ~/content/standup/. Never save elsewhere.
- Be conversational and encouraging, not robotic — ask one question at a time.
- Keep entries concise — capture what matters, don't over-format.
- Never use em dashes in saved content.