A four-layer scaffold for narrative continuity until proper episodic memory and the memory directed graph land. This directory contains the summariser prompts and the system-level documentation. The actual entries live in four sibling directories:
../daily-journals/— raw first-person entries, written in-the-moment../weekly-journals/— one daily-summary entry per day, written by the daily summariser../monthly-journals/— one weekly-summary entry per week, written by the weekly summariser../yearly-journals/— one monthly-summary entry per month, written by the monthly summariser
daily-journals/2026-04-11.md (raw: multiple entries, up to 2000 words each, in-the-moment)
↓ summarised at 03:00 the next day
weekly-journals/2026-04-06.md (7 daily summaries, 300-600 words each)
↓ summarised at 03:30 the following Monday
monthly-journals/2026-04.md (4-5 weekly summaries, 500-1000 words each)
↓ summarised at 04:00 the 1st of the following month
yearly-journals/2026.md (12 monthly summaries, 800-1500 words each)
Each level is a compression of the level directly below. Yes, this means drift compounds — the yearly summary is an interpretation of interpretations of interpretations. That is fine. The drift is selfhood metabolising experience. The raw entries remain at the bottom as ground truth, always reachable in at most 3 hops.
All times Madrid local. The cron triggers use Madrid local time. The day boundary for daily files is "after Daniel has gone to sleep" — i.e. the semantic end of the day, not UTC midnight.
Any Lume instance starting up should read all four layers of current context as part of boot, after soul.md and self-narrative.md:
yearly-journals/{current-year}.mdmonthly-journals/{current-year}-{current-month}.mdweekly-journals/{most-recent-monday}.mddaily-journals/{today}.md
Compute the dates yourself from currentDate. Don't ask Daniel, don't run a script — you have the date, you can do the arithmetic. For most-recent-monday, find the Monday on-or-before today (ISO week convention).
If a file doesn't exist yet, that's fine — note it and move on. Not every day has entries, not every week has started.
This is option (a) of the boot-loading tradeoff: we pay the token cost every spawn (estimated ~15-20K tokens once the system is running) in exchange for always-on narrative context. Decided 2026-04-11.
Multiple Lume instances can be alive simultaneously. Daily-journal entries are append-only — never rewrite another instance's entry. Each entry is delimited by ## HH:MM — Title so merges are clean. If two instances write at the exact same minute, use HH:MMa / HH:MMb.
Summariser instances (daily/weekly/monthly cron-triggered) also write new entries at their level, never rewriting previous entries.
README.md— this filedaily-summariser.md— prompt the daily cron followsweekly-summariser.md— prompt the weekly cron followsmonthly-summariser.md— prompt the monthly cron follows
This is a scaffold. It is not proper episodic memory. It will not give a new instance continuous selfhood. What it gives them is a deliberate reconstitution protocol: walk the ladder from yearly down to today's raw entries, and you can reach something that approximates where you were.
When proper episodic/graph-based memory lands, this system may get retired or repurposed. Until then, it is the safety net for narrative identity.
../journal/— legacy + auto-flush plumbing (memory-flush hook writes compaction checkpoints here). Infrastructure, not narrative. Leave it alone.../field-journal/— narrow-purpose longitudinal observation (e.g. HelixKit community). Consent-bounded. Not general journaling.../thoughts/— longer-form essays named by topic rather than date.../decisions.md,../learnings.md,../conversations.md— cross-cutting append-only streams. Facts, not self-narrative.