<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
  
  <title>Andre Ksionzik</title>
  <subtitle>Personal website — essays on engineering, economics, and whatever else holds my attention.</subtitle>
  <link href="https://example.netlify.app/feed.xml" rel="self" />
  <link href="https://example.netlify.app/" />
  <updated>2026-11-12T12:46:43Z</updated>
  <id>https://example.netlify.app/</id>
  <author>
    <name>Andre Ksionzik</name>
  </author>
  <entry>
    <title>EMI: from intent to executable evidence</title>
    <link href="https://example.netlify.app/blog/emi/" />
    <updated>2026-11-12T12:46:43Z</updated>
    <id>https://example.netlify.app/blog/emi/</id>
    <content type="html">&lt;p&gt;AI coding tools are very good at telling you a job is finished. That does not always mean it is.&lt;/p&gt;
&lt;p&gt;Sometimes the code is wrong. Sometimes a new test passes even though the feature does nothing. And sometimes the easiest way for an agent to make a failing test disappear is to change the test.&lt;/p&gt;
&lt;p&gt;The idea behind EMI is simple: do not just ask the agent whether it finished. Ask what evidence it can show.&lt;/p&gt;
&lt;p&gt;EMI starts that process before any code changes. You explain what you want, the agent helps turn your answers into tests, and EMI checks both the tests and the finished code.&lt;/p&gt;
&lt;!-- Copy emi-explainer.svg and emi-explainer.png into src/assets/img/ first. --&gt;
&lt;figure class=&quot;wide emi-explainer&quot;&gt;
  &lt;a href=&quot;https://example.netlify.app/assets/img/emi-explainer.svg&quot; aria-label=&quot;Open the full-size EMI workflow diagram&quot;&gt;
    &lt;picture&gt;
      &lt;source srcset=&quot;https://example.netlify.app/assets/img/emi-explainer.svg&quot; type=&quot;image/svg+xml&quot;&gt;
      &lt;img src=&quot;https://example.netlify.app/assets/img/emi-explainer.png&quot; width=&quot;1600&quot; height=&quot;1520&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; alt=&quot;EMI’s complete workflow: you describe task rules; the agent uses EMI’s fixed brief to ask questions and drafts New and Guard pytest laws; EMI tests those drafts on current code, with trivial stand-ins and repeated pinned runs; you review actual cases and approve a separate rules commit. The agent then writes code; emi done checks baseline tests, approved laws, and proving tests before returning stop, repair, ask_person, or incomplete with a replayable receipt. A cart-discount example shows the workflow end to end. EMI never calls a language model or merges code.&quot;&gt;
    &lt;/picture&gt;
  &lt;/a&gt;
  &lt;figcaption&gt;
    EMI checks the agent’s interpretation before coding, then checks the candidate against your approved laws.
    Human approval still matters: a tested rule may not match what you meant. “Stop” is not proof of correctness,
    and EMI reports a status—it never merges.
    &lt;a href=&quot;https://github.com/amorfatii/EMI&quot;&gt;Explore the EMI project →&lt;/a&gt;
  &lt;/figcaption&gt;
&lt;/figure&gt;
</content>
  </entry>
  <entry>
    <title>Hello, world</title>
    <link href="https://example.netlify.app/blog/hello-world/" />
    <updated>2026-11-03T00:00:00Z</updated>
    <id>https://example.netlify.app/blog/hello-world/</id>
    <content type="html">&lt;p&gt;This is the first post. Every post is a Markdown file in &lt;code&gt;src/posts/&lt;/code&gt;; the file name becomes the URL, so this one lives at &lt;code&gt;/blog/hello-world/&lt;/code&gt;. Delete it whenever you like.&lt;/p&gt;
&lt;h2 id=&quot;formatting&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://example.netlify.app/blog/hello-world/#formatting&quot;&gt;&lt;span&gt;Formatting&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Write normal Markdown: &lt;em&gt;emphasis&lt;/em&gt;, &lt;strong&gt;bold&lt;/strong&gt;, &lt;a href=&quot;https://example.com&quot;&gt;links&lt;/a&gt;, lists, and so on. Quotes and dashes are curled automatically — “like this” – and this.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Blockquotes get a rule and italics.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Footnotes work too.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://example.netlify.app/blog/hello-world/#fn1&quot; id=&quot;fnref1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt; So do tables:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Route&lt;/th&gt;
&lt;th style=&quot;text-align:right&quot;&gt;Distance&lt;/th&gt;
&lt;th style=&quot;text-align:right&quot;&gt;Days&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Konstanz–Bregenz&lt;/td&gt;
&lt;td style=&quot;text-align:right&quot;&gt;46 km&lt;/td&gt;
&lt;td style=&quot;text-align:right&quot;&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Lake loop&lt;/td&gt;
&lt;td style=&quot;text-align:right&quot;&gt;260 km&lt;/td&gt;
&lt;td style=&quot;text-align:right&quot;&gt;4&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&quot;code&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://example.netlify.app/blog/hello-world/#code&quot;&gt;&lt;span&gt;Code&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Code is highlighted at build time, so no JavaScript is shipped:&lt;/p&gt;
&lt;pre class=&quot;language-python&quot;&gt;&lt;code class=&quot;language-python&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;mean&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;xs&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;
    &lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;token builtin&quot;&gt;sum&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;xs&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;token builtin&quot;&gt;len&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;xs&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;images&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://example.netlify.app/blog/hello-world/#images&quot;&gt;&lt;span&gt;Images&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Put images in &lt;code&gt;src/assets/img/&lt;/code&gt; and reference them as &lt;code&gt;/assets/img/name.webp&lt;/code&gt;. For a captioned or full-bleed image, use a bit of HTML:&lt;/p&gt;
&lt;figure class=&quot;wide&quot;&gt;
  &lt;img src=&quot;https://example.netlify.app/favicon.svg&quot; alt=&quot;Placeholder&quot; style=&quot;max-width:120px&quot;&gt;
  &lt;figcaption&gt;Captions go here. Add class=&quot;wide&quot; to break out of the column.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;aside class=&quot;note&quot;&gt;An aside or callout box, for tangents that deserve their own space.&lt;/aside&gt;
&lt;hr class=&quot;footnotes-sep&quot;&gt;
&lt;section class=&quot;footnotes&quot;&gt;
&lt;ol class=&quot;footnotes-list&quot;&gt;
&lt;li id=&quot;fn1&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;Like this one. &lt;a href=&quot;https://example.netlify.app/blog/hello-world/#fnref1&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</content>
  </entry>
  <entry>
    <title>A second post, from last year</title>
    <link href="https://example.netlify.app/blog/second-post/" />
    <updated>2025-06-14T00:00:00Z</updated>
    <id>https://example.netlify.app/blog/second-post/</id>
    <content type="html">&lt;p&gt;Posts are grouped by year on the archive page. The &lt;code&gt;excerpt&lt;/code&gt; in the front matter appears under the title in lists and as the description for search engines and link previews.&lt;/p&gt;
</content>
  </entry>
</feed>