<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Kotlin on Dmitry Serikov</title><link>https://dmitryserikoff.com/tags/kotlin/</link><description>Recent content in Kotlin on Dmitry Serikov</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Thu, 23 Jul 2026 00:00:00 +0300</lastBuildDate><atom:link href="https://dmitryserikoff.com/tags/kotlin/index.xml" rel="self" type="application/rss+xml"/><item><title>LynxContract</title><link>https://dmitryserikoff.com/projects/lynxcontract/</link><pubDate>Thu, 23 Jul 2026 00:00:00 +0300</pubDate><guid>https://dmitryserikoff.com/projects/lynxcontract/</guid><description>&lt;p>&lt;strong>LynxContract&lt;/strong> gives developers control over LLM-generated code by anchoring
every change to a contract, a requirement, and a verification check. Git
records &lt;em>what changed&lt;/em>; LynxContract records &lt;em>why the code exists at all&lt;/em>.&lt;/p>
&lt;p>Every code unit carries a &lt;code>//@contract&lt;/code> block — signature, pre/post
conditions, behavior — enough for an agent to generate the implementation
without inventing anything. Tests are derived from contracts, not from
implementations, so silent bugs have nowhere to hide. When a contract can&amp;rsquo;t
cover a requirement, the honesty protocol stops the agent, records the gap,
and marks the location instead of improvising.&lt;/p></description></item></channel></rss>