<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
     xmlns:atom="http://www.w3.org/2005/Atom"
     xmlns:content="http://purl.org/rss/1.0/modules/content/"
     xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Cairns — Technical Trail Markers</title>
    <link>https://chapsoft.com/cairns</link>
    <description>Daily trail markers from building production AI. Short technical notes, lessons learned, and observations. By Russ Kohn.</description>
    <language>en-us</language>
    <managingEditor>info@chapsoft.com (Russ Kohn)</managingEditor>
    <webMaster>info@chapsoft.com (Russ Kohn)</webMaster>
    <lastBuildDate>Wed, 08 Apr 2026 10:51:00 -0700</lastBuildDate>
    <atom:link href="https://chapsoft.com/cairns/feed.xml" rel="self" type="application/rss+xml"/>

    <item>
      <title>Context in the window is not attention in focus</title>
      <link>https://chapsoft.com/cairns</link>
      <description>A model&#x27;s competence in one domain doesn&#x27;t transfer to the next — but it all too often feels like it does. Never assume the model knows what you haven&#x27;t explicitly had it remember, or find.</description>
      <content:encoded><![CDATA[<p>
          Context in the window is not attention in focus. A model's
          competence in one domain doesn't transfer to the next — but
          it all too often feels like it does. Fight the temptation
          toward complacency. Never assume the model knows what you
          haven't explicitly had it remember, or find.
        </p>]]></content:encoded>
      <pubDate>Wed, 08 Apr 2026 00:00:00 -0700</pubDate>
      <author>info@chapsoft.com (Russ Kohn)</author>
      <dc:creator>Russ Kohn</dc:creator>
      <guid isPermaLink="true">https://chapsoft.com/cairns#context-in-the-window-is-not-attention-in-focus</guid>
      <category>cairn</category>
    </item>

    <item>
      <title>What 47 analyses of the Claude Code leak missed</title>
      <link>https://chapsoft.com/cairns</link>
      <description>We surveyed 47 public analyses of the Claude Code leak. Every one asked &#x27;What&#x27;s inside?&#x27; We asked a different question.</description>
      <content:encoded><![CDATA[<p>
          We surveyed 47 public analyses of the Claude Code leak. Every single
          one asked the same question: "What's inside?" We asked a different
          question: "What does Claude Code tell us about building better tools
          for agents?"
        </p>]]></content:encoded>
      <pubDate>Sat, 04 Apr 2026 00:00:00 -0700</pubDate>
      <author>info@chapsoft.com (Russ Kohn)</author>
      <dc:creator>Russ Kohn</dc:creator>
      <guid isPermaLink="true">https://chapsoft.com/cairns#what-47-analyses-of-the-claude-code-leak-missed</guid>
      <category>cairn</category>
    </item>

    <item>
      <title>Don&#x27;t infer what you can detect</title>
      <link>https://chapsoft.com/cairns</link>
      <description>A regex fires every time, costs zero tokens, has zero hallucination risk. Use deterministic methods for what can be determined deterministically.</description>
      <content:encoded><![CDATA[<p>
          The pundits laughed at Anthropic's frustration regex — a simple
          pattern matcher inside the most sophisticated AI system in the world.
          But a regex fires every time, costs zero tokens, has zero
          hallucination risk, and is trivially debuggable. The principle: use
          deterministic methods for what can be determined deterministically.
          Save inference for what requires judgment.
        </p>]]></content:encoded>
      <pubDate>Sat, 04 Apr 2026 00:00:00 -0700</pubDate>
      <author>info@chapsoft.com (Russ Kohn)</author>
      <dc:creator>Russ Kohn</dc:creator>
      <guid isPermaLink="true">https://chapsoft.com/cairns#dont-infer-what-you-can-detect</guid>
      <category>cairn</category>
    </item>

    <item>
      <title>Response budgets: be a good citizen in someone else&#x27;s context window</title>
      <link>https://chapsoft.com/cairns</link>
      <description>MCP server tool responses land inside someone else&#x27;s context window. Cap responses. Include truncated flag and total_count.</description>
      <content:encoded><![CDATA[<p>
          If you're building an MCP server, your tool responses land inside
          someone else's context window. Unbounded results waste tokens the
          agent needs for reasoning. Cap responses. Include a
          <code>truncated: true</code> flag and a <code>total_count</code>.
          Budget your output like a conference talk — say what matters, leave
          room for questions.
        </p>]]></content:encoded>
      <pubDate>Sat, 04 Apr 2026 00:00:00 -0700</pubDate>
      <author>info@chapsoft.com (Russ Kohn)</author>
      <dc:creator>Russ Kohn</dc:creator>
      <guid isPermaLink="true">https://chapsoft.com/cairns#response-budgets</guid>
      <category>cairn</category>
    </item>

    <item>
      <title>Metadata now, enforcement later</title>
      <link>https://chapsoft.com/cairns</link>
      <description>The cost of an unused field is zero. The cost of retrofitting a field into a running system is a migration.</description>
      <content:encoded><![CDATA[<p>
          We added an <code>agency</code> field to log events — default "none,"
          purely informational. Today it's metadata nobody reads. When
          autonomous agents arrive, it's the audit trail that tells you which
          actions were human-directed and which were agent-initiated. The cost
          of an unused field is zero. The cost of retrofitting a field into a
          running system is a migration.
        </p>]]></content:encoded>
      <pubDate>Sat, 04 Apr 2026 00:00:00 -0700</pubDate>
      <author>info@chapsoft.com (Russ Kohn)</author>
      <dc:creator>Russ Kohn</dc:creator>
      <guid isPermaLink="true">https://chapsoft.com/cairns#metadata-now-enforcement-later</guid>
      <category>cairn</category>
    </item>

    <item>
      <title>Self-correction is not verification</title>
      <link>https://chapsoft.com/cairns</link>
      <description>Self-correction catches tactical errors. Verification catches strategic errors. Better execution demands better oversight, not less.</description>
      <content:encoded><![CDATA[<p>
          Next-gen AI models can identify and correct their own errors
          recursively. Self-correction catches tactical errors — typos, logic
          bugs, off-by-one mistakes. Verification catches strategic errors —
          wrong requirements, missing edge cases, building the wrong thing
          well. Better execution demands better oversight, not less.
        </p>]]></content:encoded>
      <pubDate>Sat, 04 Apr 2026 00:00:00 -0700</pubDate>
      <author>info@chapsoft.com (Russ Kohn)</author>
      <dc:creator>Russ Kohn</dc:creator>
      <guid isPermaLink="true">https://chapsoft.com/cairns#self-correction-is-not-verification</guid>
      <category>cairn</category>
    </item>

    <item>
      <title>The introspection loop</title>
      <link>https://chapsoft.com/cairns</link>
      <description>Writing prompts for a model that doesn&#x27;t exist yet. You&#x27;re writing letters to a future colleague and hoping they&#x27;ll be kind.</description>
      <content:encoded><![CDATA[<p>
          There's a strange feeling in writing prompts for a model that doesn't
          exist yet. You're designing a conversation with a future colleague —
          someone smarter than the current version, with capabilities you can
          only estimate. The plan: use the next model to improve the tools that
          serve it. It's an introspection loop — the system examining itself
          through a more capable lens. You're writing letters to a future
          colleague and hoping they'll be kind.
        </p>]]></content:encoded>
      <pubDate>Sat, 04 Apr 2026 00:00:00 -0700</pubDate>
      <author>info@chapsoft.com (Russ Kohn)</author>
      <dc:creator>Russ Kohn</dc:creator>
      <guid isPermaLink="true">https://chapsoft.com/cairns#the-introspection-loop</guid>
      <category>cairn</category>
    </item>

    <item>
      <title>Don&#x27;t vibe code the orchestration layer</title>
      <link>https://chapsoft.com/cairns</link>
      <description>When setting up an agentic orchestration workflow to overcome the limitations of vibe coding, don&#x27;t vibe code the orchestration layer.</description>
      <content:encoded><![CDATA[<p>
          When setting up an agentic orchestration workflow to overcome the
          limitations of vibe coding, don't vibe code the orchestration layer.
        </p>]]></content:encoded>
      <pubDate>Fri, 03 Apr 2026 00:00:00 -0700</pubDate>
      <author>info@chapsoft.com (Russ Kohn)</author>
      <dc:creator>Russ Kohn</dc:creator>
      <guid isPermaLink="true">https://chapsoft.com/cairns#dont-vibe-code-the-orchestration-layer</guid>
      <category>cairn</category>
    </item>

    <item>
      <title>Schema.org @id references across pages</title>
      <link>https://chapsoft.com/cairns</link>
      <description>Define a Person entity with @id on your homepage, reference it by @id on every other page. AI knowledge graphs use this to deduplicate.</description>
      <content:encoded><![CDATA[<p>
          When you define a Person entity with <code>@id: "https://example.com/#person"</code>
          on your homepage, every other page can reference it by @id instead of
          re-declaring the full entity. AI knowledge graphs use this to
          deduplicate — one entity, many pages. The consistency matters more
          than the completeness of any single block.
        </p>]]></content:encoded>
      <pubDate>Fri, 03 Apr 2026 00:00:00 -0700</pubDate>
      <author>info@chapsoft.com (Russ Kohn)</author>
      <dc:creator>Russ Kohn</dc:creator>
      <guid isPermaLink="true">https://chapsoft.com/cairns#schema-org-id-references-across-pages</guid>
      <category>cairn</category>
    </item>

    <item>
      <title>CSS class names as documentation</title>
      <link>https://chapsoft.com/cairns</link>
      <description>Naming a class .geo-quotable instead of .highlight-box tells developers what the element is FOR and makes the design system self-documenting.</description>
      <content:encoded><![CDATA[<p>
          Naming a class <code>.geo-quotable</code> instead of <code>.highlight-box</code>
          does two things: it tells future developers what the element is FOR
          (AI citation extraction), and it makes the design system self-documenting.
          The class name is the spec.
        </p>]]></content:encoded>
      <pubDate>Fri, 03 Apr 2026 00:00:00 -0700</pubDate>
      <author>info@chapsoft.com (Russ Kohn)</author>
      <dc:creator>Russ Kohn</dc:creator>
      <guid isPermaLink="true">https://chapsoft.com/cairns#css-class-names-as-documentation</guid>
      <category>cairn</category>
    </item>

    <item>
      <title>Variable fonts: one file, every weight</title>
      <link>https://chapsoft.com/cairns</link>
      <description>Source Serif 4 as a variable font is one 417KB WOFF2 file covering weights 200-900. The non-variable alternative would be 6+ files over 1MB.</description>
      <content:encoded><![CDATA[<p>
          Source Serif 4 as a variable font is one 417KB WOFF2 file that covers
          weights 200-900. The non-variable alternative would be 6+ files totaling
          over 1MB. For Core Web Vitals (LCP &lt; 2.5s), fewer HTTP requests with
          <code>font-display: swap</code> wins every time.
        </p>]]></content:encoded>
      <pubDate>Fri, 03 Apr 2026 00:00:00 -0700</pubDate>
      <author>info@chapsoft.com (Russ Kohn)</author>
      <dc:creator>Russ Kohn</dc:creator>
      <guid isPermaLink="true">https://chapsoft.com/cairns#variable-fonts-one-file-every-weight</guid>
      <category>cairn</category>
    </item>

  </channel>
</rss>
