.claude/skills/shutdown/SKILL.md
Interactive end-of-day reflection; surfaces carryover items for next /morning; appends to daily journal
npx skillsauth add dcurlewis/ai-context-system .claude/skills/shutdownInstall 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.
Interactive end-of-day shutdown: consolidate today's outcomes, surface unresolved items, and prepare carryover context for tomorrow's /morning.
Curated-Context/Daily-Journals/YYYY-MM-DD.md), typically created by /morningDisplay "Gathering today's context..." then collect:
0a. Fetch and process today's Slack activity. Display "Fetching today's Slack activity..." then:
/slack-fetch (read and execute .claude/skills/slack-fetch/SKILL.md) in daily mode (no arguments)./slack-fetch wrote files to Raw-Materials/Slack/, run /slack (read and execute .claude/skills/slack/SKILL.md) to process them into a summary./slack-fetch fails or returns no messages, note it and continue. Do not block on this step.0b. Read today's journal (Curated-Context/Daily-Journals/YYYY-MM-DD.md). If it does not exist, warn the user and ask whether to proceed with limited context or create a minimal journal first.
0c. Check for unprocessed meeting transcripts in Raw-Materials/Meeting-Transcripts/. Count and note filenames. These will be surfaced in Step 1.
0d. Check other raw material queues (Raw-Materials/Docs/). Count files per non-empty queue. These will be surfaced in Step 1.
0e. Consolidate today's action items. Scan Curated-Context/Meeting-Insights/ for files in the current month's subdirectory (YYYYMM/) that start with today's date (YYYYMMDD). For each matching file, extract ## My Action Items bullets. Build a consolidated list attributed by meeting title.
0f. Read today's journal sections (### Notes, ### Agenda, ### Weekly Tasks, ### Slack Highlights) and, if a new Slack summary was produced in Step 0a, read that summary file for additional context.
0g. Fetch tomorrow's calendar. Run the calendar connector with the tomorrow flag (default: python3 Scripts/connectors/calendar-today.py tomorrow --output Synced-Data/Calendar/tomorrow.json). See Guidelines/data-sources.md for alternative calendar sources.
Read the resulting file. If the script fails or no calendar connector is configured, note that tomorrow's calendar is unavailable and skip tomorrow-related questions in Step 2.
0h. Read memory index (Curated-Context/System/memory-index.md) for current priorities.
Before the interview, present anything requiring attention:
Raw-Materials/Meeting-Transcripts/, list filenames and ask: "Process these via /meeting before reflecting? (y/n)". If yes, run /meeting (read and execute .claude/skills/meeting/SKILL.md) for each transcript, then re-scan for action items (repeat Step 0d) and add new items to the consolidated list. If no, proceed.If nothing to flag, skip directly to Step 2.
Present the consolidated action item summary first, then ask 3-5 contextual questions in a single message. Target: 3-5 minutes total from the user.
Action item summary (always show):
**Today's action items** (from N meeting insights):
- [Meeting Title]: [item]
- [Meeting Title]: [item]
If no meeting insights were processed today, show: "No meeting insights processed today."
Questions (contextually adapted, not a fixed checklist):
| # | Always? | Template | Adaptation rule | |---|---------|----------|----------------| | 1 | Yes | "What felt like the most important thing today?" | If 4+ meetings in agenda: "Heavy meeting day — what was the most important conversation?" If 0-1 meetings: "Lighter meeting day — what did you focus on?" | | 2 | Yes | "Anything unresolved or nagging?" | If action items exist, reference the list: "Any of these feel unresolved or at risk?" | | 3 | If tomorrow's calendar available | "Looking at tomorrow..." | Reference specific meetings: "Tomorrow you have [X] and [Y]. Anything to prep or carry over?" | | 4 | If decisions/wins apparent | "Any decisions worth recording?" | If meeting insights show explicit decisions, reference them. Skip if routine day. | | 5 | Optional | "How was your energy today?" | Only on high-intensity days (4+ meetings or tough signals in notes). |
Wait for the user's responses before continuing.
Using interview responses, action items, and day context, compose the reflection section:
## End-of-Day Reflection
### Wins
- [Win from interview + artefacts]
### Decisions
- [Decision with [[wikilink]] to entity/project]
### Unresolved / Carry-over
- [Actionable item from interview + unaddressed action items]
### Tomorrow
- [Focus/intent from interview]
- [Prep notes for tomorrow's meetings if mentioned]
### Energy
[One line if answered.]
Rules:
Guidelines/wikilink-guidelines.md### Decisions; if energy not asked or declined, omit ### Energy)## End-of-Day Reflection already exists in the file: show the existing content to the user and ask "Replace, append below existing, or skip?"
## End-of-Day Reflection section and everything below it, then append the new reflection.---) after the existing reflection, then append the new one.## End-of-Day Reflection does not exist: append the composed section to the end of the journal file.If the ### Wins subsection has items: ask the user "Any of these wins worth adding to the brag doc? (y/n/specify which items)".
If yes (or specific items identified), run /brag (read and execute .claude/skills/brag/SKILL.md) with the identified wins as context.
If no or skipped, proceed.
Guidelines/wikilink-guidelines.md stub update rules. Only update if the interview revealed genuinely new information not already captured.Raw-Materials/Session-Extracts/ following the extract format. Skip for routine responses.Run /backup (read and execute .claude/skills/backup/SKILL.md) automatically. No confirmation prompt needed.
Display a concise summary:
End-of-day shutdown complete for [Day], [Date]:
- Reflection appended to Curated-Context/Daily-Journals/YYYY-MM-DD.md
- N carry-over items noted in journal [or: No carry-over items]
- N entity stubs updated [or: No entity updates]
- Brag doc updated / skipped
- Changes committed and pushed
If unprocessed queues were flagged in Step 1 and not processed:
Reminder: N items remain in Raw-Materials/
| Missing piece | Behaviour |
|---|---|
| /slack-fetch fails or returns no messages | Note in summary; continue with existing Slack context from morning |
| /slack processing fails | Note in summary; Slack exports remain in Raw-Materials/Slack/ for later |
| No daily journal | Warn; offer to create a minimal journal or proceed interview-only |
| No meeting insights today | Skip action item consolidation; note "No meeting insights processed today" in interview preamble |
| Calendar script fails | Skip tomorrow preview; omit question 3 from interview |
| No raw materials to flag | Skip Step 1 entirely |
| /backup fails | Report error; reflection is still saved locally |
| /brag fails | Report error; wins are still in the journal reflection |
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
tools
Interactive onboarding — personalise the system for your role, team, tools, and morning routine