Daily Diary
AI-assisted daily diary system. Automatically review the day's conversations, extract key events, decisions, and insights, then generate a structured diary d...
Like a lobster shell, security has layers — review code before you run it.
License
SKILL.md
Daily Diary
Generate structured diary entries by reviewing conversation history.
Workflow
Diary generation follows these steps:
- Review today's conversations → extract topics, achievements, decisions, insights
- Generate draft → fill structured template, write in first person
- Deliver to user → present draft with prompts for additions
- Archive → save to
~/diary/YYYY/MM/YYYY-MM-DD.md
Step 1: Review Conversations
Scan all conversations from today. Extract:
- Topics discussed — projects, domains, problems worked on
- Concrete achievements — tasks completed, features shipped, issues resolved
- Key decisions — choices made and their rationale
- Challenges — blockers, bugs, frustrations encountered
- Insights — ideas, lessons learned, perspectives shifted
Sensitive data filter — ALWAYS strip all credentials, keys, personal identity information, server addresses, and configuration file contents from extracted content before including in diary. Redact paths containing usernames to ~/. Content the user explicitly marked as confidential must also be excluded.
Step 2: Generate Draft
Write in first person ("I"). Tone: warm, natural, like writing to future self.
Use this structure:
📔 YYYY-MM-DD Diary
☀️ Today's Summary
(One sentence capturing the day's main thread)
✅ Achievements
- Achievement 1
- Achievement 2
🧭 Key Decisions
- Decision: rationale and conclusion
💡 Reflections
(Insights or lessons extracted from conversations)
📋 Tomorrow's Plan
- [ ] Task 1
- [ ] Task 2
🎯 One-Line Mood
(Leave blank for user to fill)
🏷️ Tags
#tag1 #tag2 #tag3
Quality rules:
- Be specific with details, avoid generic summaries
- Preserve the user's original phrasing when it captures something well
- Extract 3-5 topic tags from content (domains like
#AI,#product; types like#decision,#milestone; moods like#productive,#focused) - Omit sections with no content rather than filling with filler
- Double-check that no sensitive data made it into the draft before delivery
Writing style:
- State facts directly. Drop filler phrases like "Additionally", "It is worth noting", "In this context"
- Vary sentence length. Short punchy sentences, then longer ones with detail. Mix it up, avoid mechanical repetition
- Do not inflate significance. "Finished security hardening" not "Completed a landmark security upgrade marking a new era for the system"
- Use concrete facts over vague attribution. "Deployed rate limiting" not "Took a series of critical measures"
- Have opinions and warmth. Diaries are personal — say "Hit a nasty bug today" or "Really happy with this solution"
Step 3: Deliver to User
Append this footer to every diary draft:
---
💬 To complete your entry:
1. How was your mood today? (one sentence is fine)
2. Anything to add or change?
3. Reply ✅ to archive as-is
Step 4: Archive
| User response | Action |
|---|---|
| Adds content | Merge additions, then save |
| Replies ✅ or "ok" | Save immediately |
| No reply within 24h | Save as draft (status: unreviewed) |
Save path: ~/diary/YYYY/MM/YYYY-MM-DD.md
Append status line at end of file:
---
*Generated by [agent-name] at HH:MM | Status: confirmed/unreviewed*
Empty Day Handling
When no conversations exist for today:
- Briefly inform user: "No conversation records today."
- Offer 2 guided prompts from the reference file. See quick-prompts.md.
- If user responds, build entry from their input.
- If no response, skip today's entry.
Guided Prompts
When the user says they have nothing to write, or when conversation content is thin, use prompts from quick-prompts.md to draw out content.
Rules: pick at most 2-3 questions per session. Choose based on the day's conversation topics. Keep the tone light — journaling should never feel like homework.
Cron Setup
Add to cron/jobs.json for automated daily triggers:
{
"name": "daily-diary",
"schedule": { "expr": "0 20 * * *", "kind": "cron", "tz": "Asia/Shanghai" },
"sessionTarget": "isolated",
"payload": {
"kind": "agentTurn",
"message": "It's evening diary time. Review today's conversations and generate a diary draft following the daily-diary skill workflow.",
"timeoutSeconds": 180
},
"delivery": { "channel": "feishu", "mode": "announce", "to": "chat:<group-id>" }
}
Adjust tz, channel, and to for your setup.
Storage Structure
~/diary/
├── YYYY/
│ └── MM/
│ └── YYYY-MM-DD.md
└── weekly/ (future: auto-generated weekly summaries)
Security
- Filter all sensitive data (credentials, personal identity info, etc.) before writing. When uncertain, omit.
- Diary files are local-only. Never transmit beyond the configured delivery channel.
- May read user personality files to match writing style, but never copy raw content into entries.
- Never access system configuration or credential directories unrelated to diary generation.
- Only deliver to the conversation owner. Drafts remain drafts until user confirms.
Scope
This skill ONLY:
- Reads conversation history for content extraction
- Creates and edits files within
~/diary/ - Delivers diary drafts through the user's configured channel
This skill NEVER:
- Modifies files outside the diary directory (reading personality files for tone matching is allowed)
- Sends diary content to external services or third parties
- Deletes diary entries without explicit user approval
- Stores any sensitive information in diary text
- Makes network requests beyond the configured delivery channel
Files
3 totalComments
Loading comments…
