Chapter 3: Log to Daily — Never Lose Context
Here’s a pattern I fell into early with Claude Code: I’d have a productive session, fix something tricky, make a few good decisions, and then close the window. Three days later I’d come back and have no idea what I’d actually done. The conversation was gone. The context was gone. I was starting from scratch.
The log-to-daily skill is the fix. At the end of any meaningful session, one command appends a structured summary to today’s Obsidian daily note. Not a vague “worked on the project” entry — a specific record of what was completed, what decisions were made, which files were created or modified, and what comes next.
The Skill File
---
name: log-to-daily
description: Log conversation activity to today's daily note on demand. Use when wrapping up work, capturing decisions, or documenting session outcomes.
use_when: User asks to log to daily note, capture session activity, document what was done, or record decisions made during the conversation.
user-invocable: true
---
The use_when field helps Claude decide when to invoke the skill automatically. If you say “log what we did” or “capture this session,” Claude knows to reach for this skill.
The Log Format
Every entry follows the same structure:
---
## Session Log - [TIME]
**Focus:** [1-2 sentence summary of main work]
### Completed
- [Concrete outcome 1]
- [Concrete outcome 2]
### Decisions Made
| Decision | Rationale |
|----------|-----------|
| [Decision] | [Why] |
### Files Created/Modified
- [[filename]] - [what/why]
### Session Metrics
| Metric | Value |
|--------|-------|
| Duration | ~[X]m |
| Context | [low/medium/high/compacted] |
| Primary Tools | [top 3 tools used] |
| MCP Calls | [approximate count] |
### Next Steps
- [ ] [Follow-up task if any]
---
The --- separators mean multiple logs in a single day stack cleanly. The wikilink format in Files Created/Modified ([[filename]]) means those entries are navigable inside Obsidian.
What the Skill Actually Does
The skill instructs Claude to run a five-step process:
1. Analyse the conversation — identify the main topics, concrete outputs, decisions made, and outstanding items. This is the skill being specific about “outcomes, not activities.”
2. Read today’s daily note — before appending, Claude checks what’s already there to avoid duplicating entries from earlier in the day.
3. Append the session log — using the format above.
4. Task promotion — this is the step most people miss. The skill scans the “Next Steps” section and routes each item to the right place. Project follow-ups go to a domain TASKS.md. Post-deploy verification items go to the daily note’s verification section. The skill includes a full routing table:
SoN, newsletter, Kit.com → 04 Domains/Signal Over Noise/TASKS.md
Career, presentations → 04 Domains/Career/TASKS.md
Books, writing projects → 04 Domains/Books/TASKS.md
...
5. SBC auto-detection — the skill flags sessions that produced something worth writing about. New skill created? Technical discovery? Something broke and you learned from it? Those get tagged #sbc-content and auto-appended to a captures file.
The Session Metrics
The metrics table might look unnecessary until you spend time optimising your workflow. Context level and MCP call counts, tracked across weeks, show you which types of sessions get expensive and which tools you’re over-using. One month of logs revealed that my highest-cost sessions were all ones where I was using heavy MCP tools for tasks I could have handled with local CLI calls.
Context levels:
- Low — short focused task, few tool calls
- Medium — moderate complexity, multiple file reads
- High — large codebase exploration, many parallel operations
- Compacted — context compaction occurred mid-session
Quality Standards
The skill file is explicit about what counts as a good entry:
Good entries:
- “Created YouTube analytics inbox item with 3 integration options”
- “Diagnosed log-to-daily skill — was stub, PreCompact hook doing actual work”
- “Decision: Use Pipedream MCP for YouTube analytics (handles OAuth)”
Bad entries:
- “Worked on stuff”
- “Had a conversation about YouTube”
- “Did some research”
That distinction — outcomes not activities — is the difference between a log that’s useful three months later and one that tells you nothing.
The Difference From the PreCompact Hook
Claude Code has a built-in PreCompact hook that fires when context is about to be compacted. The hook also logs session activity. The log-to-daily skill is different: it’s manual, on-demand, and runs mid-session or at the end of work. You control when it fires. The hook fires when Claude decides to.
For sessions where you want to capture context before closing — especially sessions where you made important decisions — the manual skill is more reliable.
How to Customise It
The main things to adjust:
Vault path — the skill points to 02 Daily/YYYY/YYYYMMDD.md. If your daily notes are elsewhere, update this path.
Task routing table — the domain routing map is specific to my vault structure. Update the paths and keyword triggers to match your own.
SBC detection — if you’re not writing a newsletter or don’t have a captures file, remove the auto-detection step or point it at your own note-capture system.
Session metrics — if you don’t care about tracking MCP calls or context levels, remove the metrics table from the format. The rest of the log still stands.
Installing It
mkdir -p ~/.claude/skills/log-to-daily
# Copy the SKILL.md from github.com/aplaceforallmystuff
Invoke with /log-to-daily at the end of any session you want to preserve.
The next chapter covers draft-first — the skill that saves real money on API costs by routing the right work to the right model.
Check Your Understanding
Answer all questions correctly to complete this module.
1. What is the key difference between a good log entry and a bad one?
2. What does the 'task promotion' step of log-to-daily do?
3. Why does log-to-daily track session metrics like context level and MCP call counts?