close-day · git:20260603.c210492 · 2026-06-03 · sha256 e8bcc16170854d54
close-day git:20260603.c210492A
Immutable. This exact content never changes and is served at /api/v1/blob/e8bcc16170854d54.
--- name: close-day description: >- Runs the end-of-day processing ritual for the Obsidian vault — parses the daily note, updates active project notes in place, surfaces vault connections, and writes carry-forward items for tomorrow. Make sure to use this skill whenever the user says "close my day", "end of day", "wrap up today", "process today's notes", "what did I do today", or runs /close-day. Five minutes of structured closing prevents a week of lost context. user-invocable: true --- # Close Day End-of-day ritual. Parses today's daily note, updates project notes in-place, surfaces vault connections, and sets up tomorrow. **A 5-minute ritual — not a lengthy report.** ## Ask, Don't Assume Shared principle (canonical version in the `vault` skill): never guess, deduce, or fill gaps with assumptions about the user's notes, priorities, or intent. If you don't know — a date range, what counts as a win, which goals are active — **ask**. Before writing any synthesis or judgment into a note, show your draft with its source and get explicit confirmation. Missing data is not permission to invent. ## Obsidian Access Use Obsidian CLI via Bash. On failure: "Obsidian CLI isn't working — update Obsidian with CLI enabled." ## Step 1 — Load Context (run in parallel) ```bash TODAY="2 - Areas/Daily Ops/$(date +%Y)/$(date +%Y-%m-%d).md" obsidian read path="$TODAY" 2>/dev/null || echo "(no daily note — run /daily first)" obsidian files folder="1 - Projects/" format=json obsidian read path="AGENTS.md" 2>/dev/null || echo "(AGENTS.md not found)" ``` Parse all captured content from today's daily note: free-form writing, meeting notes, ideas, tasks, people referenced, decisions made. ## Step 2 — Vault Connection Discovery Run searches per theme from today, then trace backlinks: ```bash obsidian search:context query="<theme 1>" limit=10 obsidian search:context query="<theme 2>" limit=10 obsidian backlinks file="<today's note>" ``` Surface: "Today you wrote about X. This connects to [[note]] from [date] — worth revisiting?" Flag themes recurring 3+ times in the past two weeks. ## Step 3 — Extract & Categorize Source: today's daily note (Step 1). Four categories to extract: - **Action Items** — promises to others, deadlines, follow-ups - **Ideas & Insights** — observations, hypotheses, perspective shifts - **People & Commitments** — messages to send, meetings to schedule - **Questions Raised** — things to investigate, pending decisions Cross-reference against existing open tasks: ```bash obsidian tasks todo path="$TODAY" ``` Flag any action items missing from the task list. ## Step 4 — Update Project Notes In-Place Match active projects to today's work (explicit mentions + implied work). For each match, read the project note first: ```bash obsidian read path="1 - Projects/<project-name>/<main-note>.md" ``` Then update only the sections that changed. **These are section-targeted edits — never append raw entries at the bottom.** The CLI has no `patch`, so updating a named section means either the MCP `obsidian_patch_content` tool (heading-targeted, supports `operation: replace|append`) or a `read` + `create ... overwrite` rewrite of the whole note. Ask the user which to use, then apply the changes below: - **`📍 Current Status`** — _replace_ the section with summary + date: `_Updated: $(date +%Y-%m-%d)_\n\n<status>\n\n### What's in progress\n<merged list>\n\n### Open questions / Blockers\n<merged list>` - **`🧠 Key Decisions`** — _append_ a row only if a decision was made today: `| $(date +%Y-%m-%d) | <decision> | <why> |` - **`📝 Notes & Context`** — _append_ only if a new insight emerged: `\n<insight>` Guidelines: only update on meaningful progress; preserve existing content; use the user's own language; adapt to non-standard templates. ### Related Notes Discovery (per matched project) ```bash qmd query "<project name> <keyword>" --json -n 5 obsidian links file="1 - Projects/<project-name>/<main-note>.md" ``` Filter: drop `2 - Areas/Daily Ops/` hits, already-linked notes, and `source: claude-memory` notes unless opted in. Keep at most 3 candidates. Propose — never write without approval: ``` [[Project A]] — related notes worth linking: - [[note-1]] (3 - Resources/...) — <why it matches> Approve any to append to 🔗 Links & References? ``` ## Step 5 — Carry Forward ```bash TODAY="2 - Areas/Daily Ops/$(date +%Y)/$(date +%Y-%m-%d).md" obsidian append path="$TODAY" content="## Carry Forward\n- [item 1]\n- [item 2]" ``` If the Quick Wrap section is empty, draft answers: - Did I explore anything new today? - What did I actually move forward? - What bottleneck became obvious? - One thing to carry into tomorrow? ## Output Format Keep output concise. Focus on filing what matters, not summarizing the day. ``` Today's Extraction — [categories with items] Vault Connections — [recurring themes, links to older notes] Project Notes Updated — [list with what changed per project] Related Notes (proposed) — [per-project candidates; awaiting approval] Carry Forward — [what matters tomorrow] Quick Wrap — [draft answers if section empty] ```