<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>phnix.dev writing</title>
    <link>https://phnix.dev/blog/</link>
    <description>Notes on reliable AI systems, local-first tools, evaluation, and research.</description>
    <atom:link href="https://phnix.dev/feed.xml" rel="self" type="application/rss+xml"/>
    <language>en-ca</language>
    <item>
      <title>Fine-tuning a protein model to find new antibiotics</title>
      <link>https://phnix.dev/posts/amp-discovery</link>
      <guid isPermaLink="true">https://phnix.dev/posts/amp-discovery</guid>
      <pubDate>Mon, 01 Jun 2026 12:00:00 +0000</pubDate>
      <description>What a protein-model screening experiment taught me about leakage, class imbalance, cross-benchmark transfer, and honest evaluation.</description>
    </item>
    <item>
      <title>Honest results from a small GRPO lab</title>
      <link>https://phnix.dev/posts/rlvr-grpo-lab</link>
      <guid isPermaLink="true">https://phnix.dev/posts/rlvr-grpo-lab</guid>
      <pubDate>Mon, 01 Jun 2026 12:00:00 +0000</pubDate>
      <description>What a small reasoning-model lab taught me about separating formatting failures from reasoning failures and keeping negative results.</description>
    </item>
    <item>
      <title>We spent months measuring whether our AI was getting better or worse</title>
      <link>https://phnix.dev/posts/rigr-agent-eval</link>
      <guid isPermaLink="true">https://phnix.dev/posts/rigr-agent-eval</guid>
      <pubDate>Fri, 01 May 2026 12:00:00 +0000</pubDate>
      <description>Most teams ship AI agents without knowing if they actually work. Why I built Rigr to freeze baselines and catch regressions, and how it connects to measuring drift within a single run.</description>
    </item>
    <item>
      <title>Why I gave my coding assistant a local voice</title>
      <link>https://phnix.dev/posts/claude-voice</link>
      <guid isPermaLink="true">https://phnix.dev/posts/claude-voice</guid>
      <pubDate>Fri, 01 May 2026 12:00:00 +0000</pubDate>
      <description>The product decisions behind claude-voice: local speech, automatic playback, interruption, synchronized highlighting, and a deliberately narrow scope.</description>
    </item>
    <item>
      <title>What Blackreach taught me about reliable browser agents</title>
      <link>https://phnix.dev/posts/how-blackreach-works</link>
      <guid isPermaLink="true">https://phnix.dev/posts/how-blackreach-works</guid>
      <pubDate>Sun, 01 Mar 2026 12:00:00 +0000</pubDate>
      <description>Lessons from building a stateful browser agent: reduce noise, preserve progress, verify outcomes, and make uncertain results visible.</description>
    </item>
    <item>
      <title>What shared memory taught me about agent coordination</title>
      <link>https://phnix.dev/posts/velqua-mesh-architecture</link>
      <guid isPermaLink="true">https://phnix.dev/posts/velqua-mesh-architecture</guid>
      <pubDate>Sun, 01 Mar 2026 12:00:00 +0000</pubDate>
      <description>Lessons from experimenting with shared memory across independent agents: provenance, relevance, ownership, correction, and deliberate handoffs.</description>
    </item>
    <item>
      <title>I built a GitHub dashboard for my terminal</title>
      <link>https://phnix.dev/posts/ghboard</link>
      <guid isPermaLink="true">https://phnix.dev/posts/ghboard</guid>
      <pubDate>Sun, 01 Mar 2026 12:00:00 +0000</pubDate>
      <description>BubbleTea, Go, and why I never want to open a browser just to check my GitHub notifications again.</description>
    </item>
    <item>
      <title>Linear A, and why I want to take a crack at it</title>
      <link>https://phnix.dev/posts/linear-a</link>
      <guid isPermaLink="true">https://phnix.dev/posts/linear-a</guid>
      <pubDate>Sun, 01 Mar 2026 12:00:00 +0000</pubDate>
      <description>70 years of failed phonetic matching on Linear A. Why the computational tools available now are different.</description>
    </item>
  </channel>
</rss>
