For runners that are not Claude Code (a local model, an API script, any chat framework): prepend the output of
python3 session-start/build_context.py
to your system prompt at the start of every session. Shell example:
CONTEXT="$(python3 /path/to/404-in-a-box/session-start/build_context.py)"
# then pass "$CONTEXT" as (part of) the system prompt to your model
If your runner can only take a static file, generate one:
python3 session-start/build_context.py > /path/your-runner-reads/context.md
and refresh it whenever the canon or memory changes (you can add that line to the same timer/cron as the archiver).
The block already ends with instructions telling the model how to use ask.py and remember.py; if your runner cannot execute commands, drop those two lines and let the human run them instead.