.claude/skills/morning/SKILL.md
Generate daily journal with a configurable baseline briefing flow
npx skillsauth add dcurlewis/ai-context-system .claude/skills/morningInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Generate today's daily journal entry using the stable baseline flow below.
/setup may personalise the optional module section at the end of this file. Always run the baseline. Only run optional module instructions when they are explicitly present in the generated section.
This skill has two parts:
/setupGenerated modules plug into the baseline through named hooks:
PRECHECKS: Run before calendar work beginsENRICHMENT: Run after the core agenda draft is builtWEEKLY_TASKS: Run after the baseline weekly tasks list is createdTASK_BOARD: Run after weekly tasks are finalisedSUMMARY: Apply when composing the final chat responseIf a hook has no configured modules, skip it silently.
Guidelines/daily-journal-template.md is the structural reference<!-- GENERATED: morning-modules:start --> and <!-- GENERATED: morning-modules:end -->### Automation StatusNever rewrite the generated section while running /morning. /setup owns that part of the file.
PRECHECKS modulesExecute configured PRECHECKS modules in the order they appear.
/morning can continue### Automation Status sectionCheck whether Synced-Data/Calendar/today.json already exists and is fresh for today.
python3 Scripts/connectors/calendar-today.py) unless the user's environment clearly uses an alternative documented sourceUse Synced-Data/Calendar/today.json when available to gather:
YYYY-MM-DD)If the calendar file is unavailable, fall back to the system date and create a journal with an empty agenda placeholder.
Check whether Curated-Context/Daily-Journals/YYYY-MM-DD.md already exists.
### Agenda section, do not regenerate it. Tell the user: Journal already exists with agenda; nothing to do.### Agenda section, preserve all existing human-written content and merge the AI-populated sections into the template structureAlways resolve people systematically before enrichment. Never fabricate names.
For each meeting attendee:
Curated-Context/Entities/People/ by email address when availableCurated-Context/Entities/People/Memory/memory-people.mdFor each meeting in today's calendar:
Curated-Context/Meeting-Insights/Formatting rules for the agenda:
[[Person Name]] when you have a confirmed match[[YYYYMMDD-Meeting-Title]] when referencing previous meeting filesHH:MMENRICHMENT modulesExecute configured ENRICHMENT modules after the core agenda is drafted.
Modules may:
### Agenda### Automation StatusAvoid duplication. If module content fits a specific meeting, prefer that meeting's agenda bullets over a separate section.
Create ### Notes using only information that does not belong under a specific meeting or optional post-agenda section.
### Notes section as the baseline for de-duplication## End-of-Day Reflection:
### Unresolved / Carry-over items may become candidates for today's notes### Tomorrow items that match today's meetings should move into agenda bullets insteadMemory/memory-work.mdMemory/memory-context.mdMemory/memory-people.mdDo not repeat items already covered in:
### Agenda### Weekly TasksCreate the initial ### Weekly Tasks content.
-Then execute configured WEEKLY_TASKS modules to append recurring routines, day-specific tasks, or generated links.
TASK_BOARD modulesExecute configured TASK_BOARD modules after weekly tasks are finalised.
These modules may:
### Weekly TasksOnly task-board modules may modify kanban-style board files. The baseline flow should not assume a board exists.
Write to Curated-Context/Daily-Journals/YYYY-MM-DD.md using Guidelines/daily-journal-template.md as the structural reference.
Replace the template placeholders:
{{DATE}} → YYYY-MM-DD{{DAY_NAME}} → full day name{{NOTES_CONTENT}} → notes from Step 8{{AGENDA_CONTENT}} → agenda from Steps 6-7{{WEEKLY_TASKS_CONTENT}} → weekly tasks from Steps 9-10Insert optional sections only when they have content:
ENRICHMENT modules go after ### AgendaTASK_BOARD modules go after ### Weekly Tasks### Automation Status goes after ### Weekly Tasks if any module produced status linesPreserve any pre-existing human content when merging into an existing journal file.
Keep the final summary to 4-6 lines maximum.
Default summary structure:
Morning briefing for [Day], [Date]:
- [N] meetings on today's agenda
- [N] weekly tasks captured (or "No weekly tasks")
- Journal: Curated-Context/Daily-Journals/YYYY-MM-DD.md
Apply any configured SUMMARY modules at this stage. They may add short, useful summary lines but should not turn the response into a verbose report.
This section is maintained by /setup. Re-running /setup may replace everything between the markers.
No optional morning modules are configured yet. Run /setup to personalise /morning.
development
Add article/book to Professional Philosophies library
business
Process a Slack export from Raw-Materials/Slack queue
tools
Fetch Slack messages via MCP tools and write raw exports for /slack processing
data-ai
Interactive end-of-day reflection; surfaces carryover items for next /morning; appends to daily journal