<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>xandreed</title><description>Notes on Effect, AI engineering, agents, and evals — building an open-source coding agent in public.</description><link>https://xandreed.dev/</link><item><title>A terminal UI with SolidJS signals and no React</title><link>https://xandreed.dev/posts/tui-solidjs-no-react/</link><guid isPermaLink="true">https://xandreed.dev/posts/tui-solidjs-no-react/</guid><description>Streaming agent output is a fine-grained reactivity problem. Why efferent&apos;s TUI is OpenTUI + Solid signals instead of Ink, and what the cost model looks like.</description><pubDate>Fri, 12 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Sub-agents over a persistent context tree</title><link>https://xandreed.dev/posts/persistent-context-tree/</link><guid isPermaLink="true">https://xandreed.dev/posts/persistent-context-tree/</guid><description>Sub-agent context is a tree worth keeping, not scaffolding to throw away. Resume, branch, staleness briefs, and fan-out under one token budget.</description><pubDate>Tue, 09 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Your agent&apos;s evals should live next to its tools</title><link>https://xandreed.dev/posts/colocated-evals/</link><guid isPermaLink="true">https://xandreed.dev/posts/colocated-evals/</guid><description>Eval distance is an iteration tax. Why efferent keeps its eval suites in the same workspace as the prompts and tools they judge.</description><pubDate>Fri, 05 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Bash approval: rules, not dialogs</title><link>https://xandreed.dev/posts/bash-approval-rules/</link><guid isPermaLink="true">https://xandreed.dev/posts/bash-approval-rules/</guid><description>Every approval dialog should leave a rule behind. How efferent makes its permission prompt rate decay instead of compound.</description><pubDate>Tue, 02 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Swap your LLM provider at runtime, not compile time</title><link>https://xandreed.dev/posts/llm-provider-runtime-selection/</link><guid isPermaLink="true">https://xandreed.dev/posts/llm-provider-runtime-selection/</guid><description>Provider choice is request-scoped state, not architecture. How efferent routes one LanguageModel port across Claude, Gemini, and OpenAI per request.</description><pubDate>Fri, 29 May 2026 00:00:00 GMT</pubDate></item></channel></rss>