Weekly Review
Turn claude-mem's tracked tool-use history into readable entries in the Obsidian vault's journal files: fill in each day's # Work section, then roll the week up into the journals/2026-Wnn.md Weekly Review file.
Vault root: /Users/zhaoliang/LocalDocuments/vaults/vault. Daily files live at journals/YYYY-MM-DD.md, weekly files at journals/YYYY-Wnn.md.
1. Resolve the date range
- If the user gives explicit start/end dates, use those verbatim.
- This vault's week runs Sunday through Saturday, NOT the ISO Monday–Sunday week — confirmed by the user 2026-08-21 with the example "W19 = 2026-05-03 (Sun) to 2026-05-09 (Sat)". The week number label still matches the ISO week number of that range's Monday–Saturday span; only the Sunday is shifted from being the last day of the ISO week to being the first day of this vault's week.
- Caution: a given Sunday and the Monday right after it fall in DIFFERENT ISO week numbers. ISO weeks run Mon–Sun, so a Sunday is the last day of the ISO week that started the Monday before it — one lower than the vault-week label you want. Always take the ISO week of the Monday following the Sunday (i.e. the range's 2nd day), never the Sunday's own
isocalendar()result, or the label will be off by one. - If the user gives a week id (
2026-W32) with no explicit dates, compute the Sun–Sat range as (ISO Monday − 1 day) through (ISO Monday + 5 days):python3 -c "import datetime; mon=datetime.date.fromisocalendar(2026,32,1); start=mon-datetime.timedelta(days=1); print([str(start+datetime.timedelta(days=i)) for i in range(7)])" - If the user gives a plain date (or "today"/"this week") with no week id, first find which vault-week it falls in, then derive the label from that range's Monday — do NOT reuse an existing week file just because the date is close to it:
python3 -c "import datetime; d=datetime.date(2026,8,24); start=d-datetime.timedelta(days=(d.isoweekday()%7)); mon=start+datetime.timedelta(days=1); print(start, mon.isocalendar().week)"(d.isoweekday()%7maps Sunday→0, Monday→1, …, Saturday→6, sostartis the Sunday on/befored.) Check whether ajournals/YYYY-Wnn.mdfor that computed label already exists before assuming the date belongs to whatever week file was most recently touched. - Note: weekly files created before 2026-08-21 (W01–W34) were built with ISO Mon–Sun boundaries and have NOT been corrected to this Sun–Sat convention — treat their exact day boundaries with suspicion if precision matters, though the week-number labels stay the same.
- Confirm the range back to the user only if it's genuinely ambiguous; otherwise proceed.
2. Gather each day's existing journal content
Read each journals/YYYY-MM-DD.md. Note what's already under # Happenings / # Quick Notes — don't duplicate personal-life content that's already there. The # Work section is what you're filling in, and it should hold Claude-Code-tracked technical/task work, not the day's life narrative.
3. Pull claude-mem coverage for each day
Use mcp__plugin_claude-mem_mem-search__timeline with an anchor timestamp (ISO datetime string). Each call returns roughly ±10 items around the anchor — it does not cover a full day in one call. For each day:
- Start with an anchor around midday (
YYYY-MM-DDT12:00:00). - If the returned window doesn't reach both early morning and late evening, issue additional anchor calls (e.g.
09:00,15:00,21:00) to fill gaps — check the timestamps you got back and probe the uncovered stretches specifically. - A day with zero claude-mem entries usually means pure travel/personal/no-tool-use time (this happens often around trips, holidays, family visits). Do not fabricate work for it — leave
# Workempty and say so in the rollup. - Batch independent anchor calls for different days in parallel (single message, multiple tool calls) rather than serially.
4. Write each day's # Work section
For each day with real findings, Edit the file's # Work section (old_string "# Work\n\n# Content", insert bullets before # Content). Rules:
- Bullets should be concrete and specific: what was debugged/built/decided, key filenames or root causes, not vague activity labels.
- Group related claude-mem entries from the same session into one bullet rather than one bullet per tool call.
- Write in whatever language the vault's journals are in (this vault is Chinese) — match the surrounding file's language, don't translate.
- Never touch other sections (
# Happenings,# Quick Notes, etc.) — this is a surgical# Work-only edit. - If a
# Workheading is missing (rare), add one in the same position the template uses.
5. Roll up into the Weekly Review file
Check whether journals/YYYY-Wnn.md exists and read it first.
Template check — this is the part most likely to go wrong. The weekly template (template/temp/Weekly Template.md) uses:
# Weekly Review — {{title}}
## Top 3 Things
## Mind
## Social
## Content
## Grateful for
## Others
Note ## (not #) headers, and no Status/Conversations/Meal/Reflection/Quick Notes sections — those belong only to the daily template. If you find a 2026-Wnn.md file using # daily-template headers (this has happened before — a week file was accidentally created from the daily template), rewrite it from scratch with Write using the weekly structure above, preserving any existing content by mapping it into the closest weekly section.
Established convention in this vault (not in the template file, but used consistently going forward): add a ## Work section between ## Mind and ## Social to hold the week's rollup.
In the Weekly Review file:
- Framing: at the top of
## Top 3 Things, add a short paragraph giving the week's overall shape/character (e.g. "this week split into X days of Y followed by Z days of W") — this is what makes the rollup readable without opening every daily file. ## Work: one bullet per day (or per theme, if multiple days share one thread), bolding the date or theme label, pulling the most important 1-2 sentences from that day's# Worksection. Call out explicitly which days had no tracked work rather than silently omitting them.## 杠杆分级(established convention, added 2026-08-26): right after## Work, classify that same week's items into 高杠杆 / 低杠杆或待观察. Use the judge criterion fromself-analysis-vault/self-model/模块-方法论迭代.md第四节「有没有下游」 — not by task category, but by whether the item changed a subsequent judgment, unblocked something, or produced a reusable artifact (a principle, a skill, working code, a corrected data pipeline). Specifically:- 纯知识学习本身不天然算高杠杆 —— 只有当天/近期被用掉(学完当天就应用,闭环)或从中提炼出了可复用工具(principle/skill/代码)才算;否则标「待观察」,不要强行归类。
- 阻塞性修复(数据管线bug、服务故障)即使看起来琐碎也算高杠杆,因为大量下游判断都建立在它之上。
- 一次性维护/归档类工作默认低杠杆,除非能具体指出下游。
- 判不出的条目诚实标「待观察」——这个判据本身「只能事后用」,下周或下下周回看时再挪类。
- Each bullet: item + which day + one clause on what the downstream is (or why it's unclear).
- Don't touch
## Social/## Content/## Grateful for/## Othersunless the user asked about those too.
6. Report back
Give the user a compact chat summary (a few bullets, not a re-paste of the whole file) plus a one-line pointer to which files were edited.