diff --git a/Human-Like-Runtime.md b/Human-Like-Runtime.md index a3441b3..bcc1296 100644 --- a/Human-Like-Runtime.md +++ b/Human-Like-Runtime.md @@ -55,11 +55,11 @@ Run the schedule and sleep pipeline from the host app on a real timer rather tha 1. Run sleep memory for the previous local day's messages. 2. Generate the next day's schedule. -3. On the first day of a month, generate a monthly schedule window. +3. On the last day of a month, generate the next monthly schedule window. 4. Record debug/events to an admin dashboard or developer channel. ```ts -const now = new Date('2026-05-01T00:00:00.000'); +const now = new Date('2026-05-31T00:00:00.000'); await persona.sleepMemory({ datetime: now, @@ -71,7 +71,7 @@ await persona.createDailySchedule( "Generate tomorrow's ordinary realistic day schedule.", ); -if (now.getDate() === 1) { +if (new Date(now.getFullYear(), now.getMonth(), now.getDate() + 1).getDate() === 1) { await persona.createMonthlySchedule( now, 'Generate the coming month of ordinary long-horizon anchors and special events.', @@ -79,7 +79,7 @@ if (now.getDate() === 1) { } ``` -Because `createDailySchedule(datetime, message)` targets the day after `datetime`, running it at May 1 00:00 creates May 2 00:00 through May 3 00:00. This keeps the persona from "planning itself" in response to a slash command and makes the schedule feel like background life state. +Because `createDailySchedule(datetime, message)` targets the day after `datetime`, running it at May 1 00:00 creates May 2 00:00 through May 3 00:00. `createMonthlySchedule(datetime, message)` follows the same next-day convention for its first monthly entry, so monthly automation should run on the last local midnight of the month; for example, May 31 00:00 creates a monthly window that begins June 1. This keeps the persona from "planning itself" in response to a slash command and makes the schedule feel like background life state. Then drop local yesterday-only caches according to your application retention policy.