// writing

Blog

Building an agentic pipeline that turns Figma designs into email-safe HTML

Why generating HTML email markup is a genuinely different problem from generating a web page, and how a four-stage pipeline with chained AI calls handles it.

September 11, 2026 4 min read
aitypescriptfigma

Streaming a real terminal to a phone: e2b-mobile's WebSocket architecture

Why a phone terminal needs a real PTY and a real ANSI emulator on both ends of the wire, not just a text box that appends strings.

September 8, 2026 4 min read
mobiletypescriptwebsockets

Two-stage contradiction detection: why one embedding threshold isn't enough for agent memory

Real numbers from skull's memory system show why a single cosine-similarity cutoff can't safely tell 'the user changed their mind' from 'the user mentioned something related' — or from the wrong fact entirely.

August 30, 2026 5 min read
aipythonembeddings

Building a self-extending AI agent: how skull's skill system works

A terminal AI agent that writes its own tools at runtime — versioned, sandboxed by static analysis, and composable — and the failure modes that shaped each piece.

August 29, 2026 5 min read
aipythonagents

How tree-llm detects and breaks infinite tool-call loops

A path-based signature scheme for catching an LLM agent stuck calling the same tool with the same arguments, without blocking legitimate repeats in other branches.

May 26, 2026 4 min read
aitypescriptagents

A door that only opens once: nonces, TTLs, and acks over MQTT

How an unlock request from a phone becomes an actual relay click on an ESP32, and what stops a replayed MQTT message from opening the door twice.

April 30, 2026 4 min read
iotmqtttypescript