Daily Log — wiki/self/2026.md
Trigger
User says anything like "log this", "log that", "record X", "note Y happened", or casually mentions something worth noting for the day.
File
wiki/self/2026.md
Format Rules
- Week header:
## Week YY.WW (ISO week number, title case)
- Date subheader:
### YYYY-MM-DD (ISO date)
- Entries:
- bullets under the date, no indentation
- Order: Newest WEEK on top (descending). Newest DATE on top within a week (descending).
- Category prefixes (optional, use when the entry clearly maps):
Health: — exercise, weight, diet, fasting
Faith: — church, communion, spiritual
Software: — coding, skills, technical work
Network: — people, events, relationships
Wealth: — investing, finance, consulting business
Self: — personal growth, family, miscellaneous
- No trailing blank line after the last bullet in a section.
Procedure
Step 1: Determine date and week
from datetime import date
today = date.today()
iso_year, iso_week, _ = today.isocalendar()
week_header = f"## Week {iso_year % 100}.{iso_week:02d}"
date_header = f"### {today.isoformat()}"
Step 2: Read the file
Read wiki/self/2026.md in full.
Step 3: Find or create the week header
- Search for
week_header in the file (case-insensitive match on the week number).
- If found: Note its line position.
- If not found: Insert the new week header after the
--- separator (line 7-ish), with a blank line before and after.
Step 4: Find or create the date subheader
- Within the week block (from week header to next
## or end of file), search for date_header.
- If found: Find the last bullet line under that date (before the next
### or ## or end of section). Insert the new bullet after that line.
- If not found: Insert
date_header right after the week header (newest date on top), then add the bullet(s) underneath.
Step 5: Write the entry
Format — nested bullets, not paragraphs:
- Top-level bullet:
- Category: (e.g., - Health:, - Insights:)
- Tab-indented sub-bullets: one per discrete fact or point
- Bold the category name when it's a notable产出 or milestone (e.g.,
- Self: Q3 Flywheel plan created); regular weight for routine entries (e.g., - Health:)
- Never write dense paragraphs — each fact gets its own line
Example (good):
- Health:
- Jogged 6 km — 9'18"/km avg, HR 128 avg (max 144), 611 kcal, aerobic TE 2.3.
- Morning readiness: RHR 48 bpm, HRV 38 ms, sleep 7h 42m (deep 1:26, REM 1:53), fatigue 77.
- Negative split — final km 8'39" (fastest). 7-day streak done.
- Insights: OND Distribution Strategy created
- Applied Weinberg & Mares' Traction to distribute Mini Guide and Homeschooling Book.
- Both products score 6-7 independent OR paths (70-80% probability at least one works).
Example (bad — dense paragraph, don't do this):
- Health: jogged 6 km — 9'18"/km avg, HR 128 avg (max 144), 611 kcal, aerobic TE 2.3. Morning readiness: RHR 48 bpm, HRV 38 ms, sleep 7h 42m. Negative split — final km 8'39" (fastest). 7-day streak done.
- If multi-part (user gave several things), each gets its own top-level bullet with its own sub-bullets
- If the user's phrasing is casual/terse, flesh it out slightly for readability but keep Joseph's voice — no AI-slop, no filler words
Step 6: Verify
- Read back the modified section to confirm correct placement
- Confirm the week/date hierarchy is intact
- Run the file-based eval to confirm ISO week math is correct:
python3 /opt/data/wiki/produce/hermes/hermes-evals/runners/run_file_checks.py 2>&1 | grep -A2 "daily_log"
If the check shows FAIL, fix the placement before responding to Joseph. The most common failure: date under wrong week header (ISO week mismatch).
Edge Cases
- Week rollover: If today is Monday and the current week header doesn't exist yet, create a new one at the top of the entries (after
---).
- Existing week, new date: Insert the new date right after the week header (before older dates).
- Existing date, new entry: Append to the end of that date's bullet list.
- User gives no category: Leave off the prefix, just write the bullet.
- User says multiple things in one message: Split into separate bullets, one per topic.
- ISO week validation (MANDATORY): Before inserting any date under a week header, compute the ISO week of that date (
date.fromisoformat(d).isocalendar()) and verify it matches the header's week number. If they don't match, create or find the correct week header instead. Never trust a text search alone.
- Duplicate week headers: Before creating a new week header, scan the file for existing headers with the same week number (case-insensitive). If one exists, insert the date there instead. If duplicates already exist, merge entries and remove the duplicate.
What NOT to do
- Don't reformat existing entries.
- Don't reorder weeks or dates that already exist.
- Don't add a category prefix if the user didn't imply one.
- Don't add commentary or meta-notes to the log file.
- Don't touch anything outside the current week block.
- NEVER use
execute_code with read_file/write_file to edit this file. read_file returns LINE_NUM|CONTENT format — if you pass that output to write_file, line numbers become literal file content. Use patch tool for targeted edits, or write_file with hand-crafted content only (never echoed read_file output).
Verification Checklist
- Entry is under the correct week heading (
## Week YY.WW)
- Entry is under the correct date subheading (
### YYYY-MM-DD)
- Each bullet is one concise line
- Newest week on top, newest date on top within week
- No duplicate entries for the same action on the same date