The journal
One file per day, entries stack chronologically, nothing wraps them. A diary
any tool can append to with a single rule: add a time heading, write.
The file
- Path:
Logs/yymmdd.md—260615.mdfor June 15, 2026. - Created from a template when missing: standard frontmatter
(tags: [log],type: note,publish: false) and a day title (# 15 juin).
The title rule
Every entry is its own time heading, appended in order — no wrapping
sections, no --- separators:
| Kind | Heading | Then |
|---|---|---|
| Generic entry | ## 14:36 |
the text |
| Project journal | ## 14:36 #standard |
the text |
| Photo | ## 14:36 |
![[…jpg]], then a > [!caption] callout |
Photo captions
A caption is an Obsidian callout of type caption, directly under the embed:
![[260615-150210.jpg]]
> [!caption]
> Le jardin après la pluie.
Attachments
Photo attachments live in Kernel/attachments/, named yymmdd-HHmmss.ext from
the photo’s capture time (collisions get -2, -3…). A photo entry is
routed to the daily note of its capture date, not the day it was developed.
Why so strict
Appending must be thoughtless — from Obsidian, a CLI, a phone, or an agent.
A fixed path pattern and a fixed heading shape mean every writer produces the
same file, and every reader (including Reveal‘s
photo-to-journal pipeline) can parse it without heuristics. Every writer that
appends to a daily note keeps to this one format — new writers conform to it,
they don’t invent a second style:
| Writer | Path | Notes |
|---|---|---|
journal.mjs |
scripts/journal.mjs |
canonical; #standard entries |
vault-append-daily skill |
skills/vault-append-daily/ |
--tag per entry |
| Pellicule | apps/pellicule/Sources/Pellicule/DailyNote.swift |
photo embeds + caption |
| Darkroom | apps/darkroom/Sources/Darkroom/DailyNote.swift |
photos by capture date |