<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>lab5.ca blog</title><description>Notes on cloud infrastructure, AI agents for business workflows, and web development.</description><link>https://lab5.ca/</link><item><title>Smoke-testing an LLM agent with a Claude Code skill</title><link>https://lab5.ca/blog/where-pytest-stops-and-claude-code-starts/</link><guid isPermaLink="true">https://lab5.ca/blog/where-pytest-stops-and-claude-code-starts/</guid><description>A Claude Code skill that smoke-tests an LLM agent end-to-end &amp;mdash; real Gmail, real Drive, real model. Verifies that the agent does the right thing on real inputs, which ruff and pytest cannot.</description><pubDate>Tue, 19 May 2026 00:00:00 GMT</pubDate><category>testing</category><category>claude-code</category><category>ai-coding</category><category>smoke-test</category></item><item><title>Measuring math-glyph token compression</title><link>https://lab5.ca/blog/measuring-glyph-compression/</link><guid isPermaLink="true">https://lab5.ca/blog/measuring-glyph-compression/</guid><description>I ran 30 SPEC.md rows through Claude&apos;s tokenizer to measure how much math-glyph notation compresses token count. Two numbers — ~30% encoding, ~90% reviewer-facing.</description><pubDate>Mon, 18 May 2026 00:00:00 GMT</pubDate><category>spec-driven-development</category><category>claude-code</category><category>ai-coding</category><category>benchmarks</category></item><item><title>Compressed spec-driven development</title><link>https://lab5.ca/blog/spec-driven-development/</link><guid isPermaLink="true">https://lab5.ca/blog/spec-driven-development/</guid><description>I built pilot-spec to keep AI coding agents on one thread, with one spec, so I can actually track what changed, what was tested, and what broke.</description><pubDate>Wed, 13 May 2026 00:00:00 GMT</pubDate><category>spec-driven-development</category><category>claude-code</category><category>ai-coding</category></item></channel></rss>