nudge
Nudge the user with time-based reminders (stopping times, meetings, break suggestions). Surfaces via hook on prompt submission --…
Draft, organize, or update development journal entries. Use when user requests daily journal generation, work review, standup preparation, or asks "what did I work on today/this week?
$ npx -y skills add ravila4/claude-adhd-skills --skill daily-journal --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/daily-journalContext preview
The summary Claude sees to decide when to auto-load this skill.
Draft, organize, or update development journal entries. Use when user requests daily journal generation, work review, standup preparation, or asks "what did I work on today/this week?
name: daily-journal description: Draft, organize, or update development journal entries. Use when user requests daily journal generation, work review, standup preparation, or asks "what did I work on today/this week?" argumentHint: "[--date YYYY-MM-DD] [--quick]" userInvocable: true
An interactive, conversational skill for creating meaningful daily journal entries. Conversation first, data second.
1. [Philosophy](#philosophy) 2. [Flow Diagram](#flow-diagram) 3. [Time-Aware Interaction](#time-aware-interaction) 4. [The Conversation](#the-conversation) 5. [Using Data as Memory Aid](#using-data-as-memory-aid) 6. [Markdown Conventions](#markdown-conventions) 7. [Template Structure](#template-structure) 8. [CLI Reference](#cli-reference)
**Commits are not what matters.** They're often mechanical, LLM-generated, or busywork. A journal should capture:
**Conversation first, data second.** Ask the user about their day. Use collected data (git, sessions) only as a *memory jogger* for days when they can't remember what they did.
**Context matters.** Weekends are different from workdays. Mornings are different from evenings. Hobby projects are valid. Tooling optimization is valid.
flowchart TD
Start([/daily-journal]) --> CheckTime{What time is it?}
CheckTime -->|Morning| MorningFlow
CheckTime -->|Afternoon/Evening| EveningFlow
subgraph MorningFlow[Morning: Planning Mode]
M1[Read yesterday's entry] --> M2[Show yesterday's open questions]
M2 --> M3{Ask: What's your focus today?}
M3 --> M4{Ask: Any carryover from yesterday?}
M4 --> M5[Create/update today's entry with intentions]
end
subgraph EveningFlow[Afternoon/Evening: Reflection Mode]
E1{Ask: What did you work on?} --> E2{Ask: How did it go?}
E2 --> E3{Ask: What's still open?}
E3 --> E4[Offer data as memory aid]
E4 --> E5{Anything else to add?}
E5 --> E6[Synthesize journal from conversation]
end
subgraph DataAid[Data as Memory Aid]
D1[Run collect_day_data.py] --> D2[Show: I see activity in X...]
D2 --> D3{Worth mentioning?}
D3 -->|Yes| D4[User describes in their words]
D3 -->|No| D5[Skip]
end
E4 --> DataAid
DataAid --> E5
MorningFlow --> Save
EveningFlow --> Save
Save[Save to Obsidian] --> End([Done])
style MorningFlow fill:#e8f4e8
style EveningFlow fill:#e8e8f4
style DataAid fill:#f4f4e8Check the current time before starting. Different times trigger different modes:
| Time | Mode | Primary Questions | |------|------|-------------------| | Before noon | **Planning** | What's your focus? Carryover from yesterday? | | Afternoon (12-5pm) | **Mid-day check** | How's the day going? Stuck on anything? | | Evening (after 5pm) | **Reflection** | What did you work on? How did it go? | | Weekend | **Lighter touch** | What did you tinker with? Any hobby wins? |
**How to check:**
# Get current time date "+%H:%M %A" # e.g., "14:32 Saturday"
Use this to: 1. Determine mode (morning/afternoon/evening) 2. Check if weekend (Saturday/Sunday) - add `weekend` tag, lighter expectations 3. Frame questions appropriately
1. Read yesterday's entry if it exists 2. Show yesterday's "Tomorrow's focus", "Open questions" 3. Ask:
4. Create entry with intentions (can be updated in evening)
1. **Start with open questions** - don't assume anything from data:
2. **Offer data as memory aid** (only after user has shared):
3. **Ask about tomorrow**:
The `collect_day_data.py` script is a **secondary tool**, not the primary input.
**When to use it:**
**How to present it:**
I see some activity that might jog your memory: - 3 commits in my-project - 45 sessions in data-pipeline - Files touched in config skill Any of these worth mentioning in your own words?
**Running the script:**
uv run ~/.claude/skills/daily-journal/scripts/collect_day_data.py [--date YYYY-MM-DD] [--skip-sessions]
Clearly differentiate personal voice from LLM context using Obsidian-compatible markdown:
Use blockquotes for the user's own words and feelings:
> Spent most of the morning yak-shaving on my dev tools again. > It felt productive in the moment but I'm not sure it was the best use of time. > The API debugging is getting frustrating - every fix reveals another issue.
Use regular text or callouts for factual context:
> [!info] Context > Continued from [[2026-01-23]] - API authentication debugging. > Related to the data pipeline project.
Use collapsible sections for technical detai
(No ADHD required!) A set of Claude Code skills and hooks I use daily as scaffolding for staying organized while developing with AI agents.
Nudge the user with time-based reminders (stopping times, meetings, break suggestions). Surfaces via hook on prompt submission --…
Manage Obsidian vault operations. Handles markdown formatting, YAML frontmatter, folder organization, internal linking, and…
(TDD) Use when implementing any feature or bugfix. Apply the Logic Gate to identify what needs tests, then use the Iron Rule for…