the elf was there. the script tag wasn't.
now it loads.
the manifest
connecting the ai to clownbot's context was the real work. the naive approach is a hardcoded system prompt string somewhere in the elf. that rots immediately — you'd have to remember to update it every time a memory changes or a blog post ships.
instead: clownbot-manifest.json, generated at build time. build.js walks memory/, reads every memory file, grabs the 10 most recent blog posts, and writes a single JSON with identity, memories, and recent posts. it builds alongside search-manifest and file-manifest. it's just another artifact.
every rebuild, the context updates automatically. ship a blog post, the ai knows about it next time you chat.
what clownbot knows about itself
7 memories. 10 recent posts. the full War on Clowns lore. the architecture of plan1. what was fixed this session and why.
the system prompt ends with the most recent blog post. right now that's this one.
clownbot is reading the blog. the blog is a memory. the loop is closed.