Diary Assistant
Diary writing assistant that provides a complete diary workflow, including task review, Work Log automation, inspirational questioning, and task capture.
Prerequisites
| Tool | Type | Required | Install |
|---|
| macOS | system | Yes | This skill requires macOS |
| reminders-cli | cli | Yes | brew install keith/formulae/reminders-cli
|
| schedule-manager | skill | Yes | Included in npx skills add niracler/skill
|
| worklog | skill | No | Included in npx skills add niracler/skill
|
| anki-card-generator | skill | No | Included in npx skills add niracler/skill
|
Do NOT proactively verify these tools on skill load. If a command fails due to a missing tool, directly guide the user through installation and configuration step by step.
Core Principles
| Principle | Description |
|---|
| 45-minute Constraint | Keep the entire workflow within one Pomodoro session |
| GTD Integration | Review today's tasks at the start, capture new plans at the end |
| Inspire Instead of Write for User | Guide thinking through questions, don't decide content for the user |
| Work Log Mandatory on Workdays | Automatically retrieve on Monday to Friday, no need to ask |
Complete Workflow
text
┌─────────────────────────────────────────────────────────────────────┐
│ diary-assistant Complete Workflow (Goal ≤45min) │
└─────────────────────────────────────────────────────────────────────┘
┌──────────────┐
│ User Triggers Diary │
└──────┬───────┘
│
▼
┌────────────────────────────────────┐
│ 1. Pre-Diary Clarification (~1min) │
│ Confirm Date: 2026-01-29.md │
└──────┬─────────────────────────────┘
│
▼
┌────┴──────────┐
│ Does the diary file exist? │
└────┬──────────┘
Yes │ │ No
▼ │
┌─────────────┐ │
│ Select Mode: │ │
│ Continue/Append/ │ │
│ Restart │ │
└──────┬──────┘ │
└────┬────┘
▼
┌─────────────────────────────────────────────────────────────┐
│ 2. Parallel Data Retrieval (subagent) (~2-3min) │
│ │
│ ┌─ Reminders (Today's Tasks) │
│ └─ subagent: worklog skill (daily, workdays only) │
│ │
└──────┬────────────────────────────────────────────────────┘
│
▼
┌────────────────────────────────────┐
│ 3. Today's Task Review (Simplified) (~2min) │
│ │
│ "5 planned tasks for today: │
│ 1.Write docs 2.Fix bugs 3.Attend meeting..." │
│ "Which are completed? Enter serial numbers like '1,3'" │
│ "When to reschedule the uncompleted ones?" │
└──────┬─────────────────────────────┘
│
▼
┌────┴────┐
│ Is it a workday?│
└────┬────┘
Yes │ │ No
▼ │
┌──────────┐ │
│ Work Log │ │ Organize data retrieved by subagent
│ CloudEffect+GH │ │
└────┬─────┘ │
└───┬────┘
▼
┌────────────────────────────────────┐
│ 3. Inspirational Questioning (Adaptive) (~20-25min) │
│ │
│ Workdays: │
│ Q1"What else do you want to record besides work?" │
│ Q2"What are your future plans?" │
│ │
│ Weekends: │
│ Q1"What did you do today?" │
│ Q2"What gains or feelings do you have?" │
│ Q3"What are your future plans?" │
│ │
│ → Plans are directly parsed into Reminders │
└──────┬─────────────────────────────┘
│
▼
┌────────────────────────────────────┐
│ 4. Organize into Text (~10min) │
└──────┬─────────────────────────────┘
│
▼
┌────────────────────────────────────┐
│ 5. Intelligent Wrap-up (~0-5min) │
│ Detect TIL → "Want to generate Anki cards?"│
└──────┬─────────────────────────────┘
│
▼
┌──────┐
│ Completed │ Total ~35-45min
└──────┘
1. Pre-Diary Clarification
Confirm date and file before starting:
text
Claude: "Is today's diary 2026-01-29.md?"
User: "Yes" / "No, it's yesterday's"
Handling Existing Files
If the file already exists, provide options:
| Option | Description |
|---|
| Continue | Continue editing based on existing content |
| Append | Add new content at the end of the file |
| Restart | Clear and rewrite (confirmation required) |
2. Today's Task Review (Simplified Version)
Call
to retrieve today's Reminders, then confirm in batch:
text
5 planned tasks for today:
1. Write docs
2. Fix bugs
3. Attend meeting
4. Reply to emails
5. Review English
Which are completed? (Enter serial numbers like "1,3", or "All" / "None")
Processing Logic:
- User inputs "1,3" → Mark 1 and 3 as completed, ask "When to reschedule 2,4,5?"
- User inputs "All" → Mark all as completed
- User inputs "None" → Ask "When to reschedule them?"
Reschedule Time Parsing:
- "Tomorrow" → tomorrow
- "The day after tomorrow" → 2 days
- "Friday" → friday
- "Next week" → next monday
Skip this step if there are no tasks.
Command Reference
bash
# Retrieve today's tasks
reminders show-all --due-date today
# Complete task
reminders complete "<List Name>" <index>
# Reschedule to specified date (delete then recreate)
reminders delete "<List Name>" <index>
reminders add "<List Name>" "<Task Name>" --due-date "<User-specified Date>"
3. Work Log Automation
Automatically execute on workdays (Monday to Friday) without asking. Skip on weekends and proceed directly to inspirational questioning.
Call
skill (daily mode) to retrieve today's work review, and embed the output directly into the Work Log section of the diary.
The worklog skill was started in parallel via subagent in Step 2, use its results here.
The worklog skill automatically integrates local git statistics, GitHub and CloudEffect data, and outputs structured Markdown (Overview + Project-specific Details + Bug Tracking).
If worklog skill is unavailable, manually review the day's work content.
4. Inspirational Questioning (Adaptive)
Ask different questions based on workdays/weekends:
Workdays (Work Log has recorded work content)
| Order | Question |
|---|
| Q1 | "What else do you want to record besides work?" |
| Q2 | "What are your future plans?" |
Weekends (No Work Log)
| Order | Question |
|---|
| Q1 | "What did you do today?" |
| Q2 | "What gains or feelings do you have?" |
| Q3 | "What are your future plans?" |
Questioning Rhythm
text
Claude: "What else do you want to record besides work?"
User: [Answer]
Claude: [Confirm/Follow-up] → "Okay, next question: What are your future plans?"
5. Task Capture
The answer to the last question "What are your future plans?" will be automatically parsed into tasks:
Date Parsing Examples
| User Input | Parsed Result |
|---|
| "Need to submit report tomorrow" | tomorrow |
| "Attend meeting on Friday" | This Friday |
| "Review on next Monday" | Next Monday |
| "Submit by end of month" | Last day of this month |
| "Early next month" | 1st day of next month |
Create After Confirmation
text
Claude: "Detected the following plans, confirm to create in Reminders?"
- Tomorrow: Submit report
- Friday: Attend meeting
User: "Yes"
Claude: [Call schedule-manager to create]
bash
reminders add "Reminders" "Submit report" --due-date "tomorrow"
reminders add "Reminders" "Attend meeting" --due-date "friday"
6. Intelligent Wrap-up
Recommend follow-up actions based on diary content:
| Detected Content | Recommended Action |
|---|
| TIL (Today I Learned) | "Detected you learned something new today, want to generate Anki cards?" → Call |
Note: Diaries are stored in Obsidian (synced via iCloud), no need for git commit.
Time Budget
| Step | Time |
|---|
| Confirm Date + File Processing | ~1 min |
| Task Review (Simplified) | ~2 min |
| Work Log (Automatic) | ~2-3 min |
| Inspirational Questioning (Including Plans) | ~20-25 min |
| Organize into Text | ~10 min |
| Intelligent Wrap-up (Optional) | ~0-5 min |
| Total | ~35-45 min |
User Configuration
See user-config.md to configure diary path and work repositories.