一键导入
log-to-daily
Process all Claude Code sessions for a day (or backfill) and write structured daily log notes to the Dendron vault. Run once per day from any session.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Process all Claude Code sessions for a day (or backfill) and write structured daily log notes to the Dendron vault. Run once per day from any session.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Teacher mode — explains code, concepts, or architecture with clarity and depth. Use when the user says "explain", "teach me", "how does this work", "why does this", or invokes /explain.
Capture non-obvious engineering insights about the current project into a `.notes/` zettelkasten in the project root. Use this skill when the user types `/update-notes`, says "save this to project notes", "update the notes", "add that to the zettelkasten", "note this finding", "we just learned something worth saving about this project", or signals that a session uncovered an API quirk, footgun, architecture gotcha, redundancy map, consolidation candidate, convention, invariant, benchmark, or decision-with-rationale that will help future iteration on the code. Run periodically across a project's lifetime — designed to be idempotent and run many times. Do NOT use for session summaries, user preferences, task status, or TODO items — those belong elsewhere.
Generate a polished, release-quality README.md with comprehensive Playwright screenshots of every feature in a web app. Use this skill whenever the user wants a README, wants to document their app with screenshots, says "make a readme", "release readme", "document this project", "screenshot the app for a readme", or wants to prepare a repo for public release. Also use when the user asks for project documentation with visuals, or wants to showcase their app's features.
Record terminal commands as polished GIFs using VHS. Use this skill whenever the user wants to capture terminal output as a GIF, record a CLI demo, create animated screenshots of command-line tools, make terminal recordings for READMEs, or says things like "record this as a gif", "make a gif of", "capture the terminal output", "demo gif", or "screen recording of the terminal". Also use when the user is building a README and needs terminal recordings, or when they want to show off CLI tool output visually.
Spec-driven development workflow. Interviews the user, writes success criteria, generates tests, researches the codebase, produces a detailed implementation plan, and executes it with subagents.
Tweak dotfiles configs — tmux, shell, fzf, helix, status bar, keybindings, themes, colors. Use when the user mentions dotfiles, tmux, zshrc, aliases, keybindings, status bar, fzf config, shell config, helix config, theme, colors, powerkit, or any config file modification.
| name | log-to-daily |
| description | Process all Claude Code sessions for a day (or backfill) and write structured daily log notes to the Dendron vault. Run once per day from any session. |
Scan ALL Claude Code sessions across all projects, summarize each via sonnet subagents, and write Dendron daily log notes. Works from any session — doesn't depend on current conversation history.
~/tools/claude-session-digest (Python CLI — scanning, filtering, transcript extraction)model: "sonnet")/Users/vmasrani/dev/dendron/vault/~/dotfiles/local/daily-logs/daily.log.YYYY.MM.DD.md (Dendron dot-notation)Run the status command to see which dates have sessions and which are already logged:
~/tools/claude-session-digest status
Display the table to the user.
Based on the status table, ask the user:
Let the user pick which dates to process. Suggest dates that have sessions but are unlogged.
For each selected date, sync Claude sessions from remote hosts:
~/tools/claude-session-digest sync YYYY-MM-DD
This parses zsh history for SSH commands on that date, discovers remote hosts,
and rsyncs their ~/.claude/projects/ to ~/.claude/remote-sessions/{host}/.
Show the user the sync results (which hosts were found, which were reachable, how many sessions were pulled). Unreachable hosts are skipped automatically.
After syncing, remote sessions will be included in subsequent extract/status commands.
For each date the user selected, run:
~/tools/claude-session-digest extract YYYY-MM-DD
This outputs a JSON array to stdout. Each element has: session_id, project_name, project_path, slug, git_branch, time_hhmm, remote_host, transcript.
Capture this output for the next step.
For each session in the extracted JSON, spawn a sonnet subagent using the Task tool with model: "sonnet" and subagent_type: "general-purpose".
Spawn sessions in parallel — launch all Task tool calls for a given date in a single message (up to the tool call limit). If there are more sessions than the tool call limit, batch them.
Each subagent prompt should be:
Summarize this Claude Code session transcript into a structured markdown section. Output ONLY the markdown — no preamble, no code fence.
Session: {slug} | Project: {project_name} | Branch: {git_branch} | Time: {time_hhmm} | Host: {remote_host or "local"}
TEMPLATE (omit empty sections except Focus and Completed):
## Session Log - {time_hhmm} [{project_name}]
**Focus:** 1-2 sentence summary of what was accomplished.
### Completed
- Concrete outcome (not activity)
### Decisions Made
| Decision | Rationale |
|----------|-----------|
### Files Modified
- `path/to/file` - change description
### Next Steps
- [ ] follow-up task
RULES:
- Completed: deliverables not activities. "Added OAuth login flow" not "Worked on auth".
- Decisions Made: only if alternatives were considered.
- Next Steps: MUST use `- [ ]` checkbox format.
- Omit any section (except Focus and Completed) if it would be empty.
- If the session has no meaningful work outcomes — just greetings, health checks, debugging that went nowhere, or failed attempts without resolution — respond with exactly: SKIP
TRANSCRIPT:
{transcript}
Collect all subagent responses. Drop any that returned "SKIP".
For each date, determine the vault path:
test -d /Users/vmasrani/dev/dendron/vault && echo "vault" || echo "fallback"
vault → use /Users/vmasrani/dev/dendron/vault/fallback → use ~/dotfiles/local/daily-logs/ (create directory if needed via mkdir -p)Compute the note path: <vault>/daily.log.YYYY.MM.DD.md
Generate the Dendron frontmatter. Use Python for ID and timestamps:
uv run python -c "import secrets; print(secrets.token_hex(12)[:23])"
uv run python -c "import time; print(int(time.time() * 1000))"
Create the file with this exact structure using the Write tool:
---
id: <23-char random alphanumeric>
title: 'YYYY-MM-DD'
desc: ''
updated: <unix ms timestamp>
created: <unix ms timestamp>
traitIds:
- journalNote
---
# DayOfWeek, Mon DD YYYY
Match the date heading format from existing daily.journal.* notes (e.g., # Thursday, Feb 19 2026).
Then append the collected markdown summaries after the heading.
updated: line in the frontmatter with the current Unix ms timestamp using the Edit tool.## Session Log headings to avoid appending duplicates. Compare the time+project in each heading against what the subagents produced. Only append new sessions.Report to the user: