<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Samuel Simiyu</title>
    <description>The latest articles on Forem by Samuel Simiyu (@simiyu-samuel).</description>
    <link>https://forem.com/simiyu-samuel</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3643597%2F49231417-988a-4e8b-bac5-7e80446338af.jpg</url>
      <title>Forem: Samuel Simiyu</title>
      <link>https://forem.com/simiyu-samuel</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/simiyu-samuel"/>
    <language>en</language>
    <item>
      <title>I Built a Game That Reads Your Mind (Using 100% AI)</title>
      <dc:creator>Samuel Simiyu</dc:creator>
      <pubDate>Wed, 03 Dec 2025 13:40:43 +0000</pubDate>
      <link>https://forem.com/simiyu-samuel/i-built-a-game-that-reads-your-mind-using-100-ai-njk</link>
      <guid>https://forem.com/simiyu-samuel/i-built-a-game-that-reads-your-mind-using-100-ai-njk</guid>
      <description>&lt;h3&gt;
  
  
  How Kiro, Agent Hooks, and Biofeedback created NeuroLabyrinth.
&lt;/h3&gt;

&lt;p&gt;It started with a terrifying idea for a hackathon: What if the boss battle wasn't a monster on the screen, but your own anxiety?&lt;/p&gt;

&lt;p&gt;This weekend, I built &lt;strong&gt;NeuroLabyrinth&lt;/strong&gt;, a dungeon crawler that uses your webcam to detect your heart rate, stress levels, and focus in real-time. If you panic, the maze gets darker and tighter. If you focus, the path clears.&lt;/p&gt;

&lt;p&gt;Here is the crazy part: &lt;strong&gt;I didn't write the code.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I acted as the Architect, and &lt;strong&gt;&lt;a href="https://kiro.dev" rel="noopener noreferrer"&gt;Kiro&lt;/a&gt;&lt;/strong&gt; acted as the entire engineering team. We completed 42 complex implementation tasks—from signal processing to 3D rendering—with 0 manual coding.&lt;/p&gt;

&lt;p&gt;Here is how Kiro changed the way I build software.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Spec-Driven Architecture
&lt;/h3&gt;

&lt;p&gt;Most AI coding tools guess what you want. Kiro &lt;em&gt;knows&lt;/em&gt; what you want because of the &lt;code&gt;.kiro/specs&lt;/code&gt; directory.&lt;/p&gt;

&lt;p&gt;I wrote formal requirements using EARS syntax (e.g., &lt;em&gt;"WHEN StressLevel &amp;gt; 0.7, THE GameEngine SHALL spawn a Catastrophizer"&lt;/em&gt;). Because Kiro had this "blueprint," it could implement complex, multi-file systems without losing context. It wasn't just guessing the next line of code; it was fulfilling a contract.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Agent Hooks: The Nervous System
&lt;/h3&gt;

&lt;p&gt;This is where I got &lt;code&gt;#hookedonkiro&lt;/code&gt;. We used Agent Hooks for two things:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Game Loop:&lt;/strong&gt;&lt;br&gt;
Instead of writing complex &lt;code&gt;if/else&lt;/code&gt; chains for game logic, I created "Living Hooks."&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// .kiro/hooks/biofeedback-triggers.js&lt;/span&gt;
&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;catastrophizerSpawnHook&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="na"&gt;trigger&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;metrics&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;metrics&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;stressLevel&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="mf"&gt;0.7&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nx"&gt;metrics&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;calmness&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="mf"&gt;0.3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;action&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;metrics&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;spawn_enemy&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;intensity&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;high&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="p"&gt;})&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The game engine automatically monitors these hooks. It feels like programming with magic.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The "AI Senior Dev":&lt;/strong&gt;&lt;br&gt;
I even set up a &lt;strong&gt;Code Quality Hook&lt;/strong&gt;. Every time I edited a file, a background agent analyzed the code for smells, React anti-patterns, and performance issues. Kiro wasn't just writing code; it was reviewing it.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Steering the Aesthetics
&lt;/h3&gt;

&lt;p&gt;How do you tell an AI to make a game "feel scary"?&lt;/p&gt;

&lt;p&gt;I used a &lt;strong&gt;Steering Document&lt;/strong&gt; (&lt;code&gt;visual-aesthetics.md&lt;/code&gt;). This YAML file defined exactly what "High Stress" looked like (Dark Red palette, dissonant audio intervals, flickering lights).&lt;/p&gt;

&lt;p&gt;When I asked Kiro to "make the music match the mood," it didn't hallucinate random songs. It looked at the steering doc, saw the definition for stress, and programmed the &lt;code&gt;Tone.js&lt;/code&gt; synthesizer to play minor 2nd intervals.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Result
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;42 Tasks Completed&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;100% TypeScript Strict Mode&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;&amp;lt;100ms Biofeedback Latency&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;NeuroLabyrinth proved to me that the future of development isn't just typing faster. It's about becoming an Architect and letting tools like Kiro handle the implementation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The maze is waiting. Are you brave enough to face yourself?&lt;/strong&gt; 🧠⚡️&lt;/p&gt;

&lt;p&gt;Play the demo here:&lt;br&gt;
🔗 &lt;a href="https://neuro-labyrinth.vercel.app" rel="noopener noreferrer"&gt;https://neuro-labyrinth.vercel.app&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Check out the code:&lt;br&gt;
👨‍💻 &lt;a href="https://github.com/simiyu-samuel/NeuroLabyrinth" rel="noopener noreferrer"&gt;https://github.com/simiyu-samuel/NeuroLabyrinth&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Built with love and Kiro.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>kiro</category>
      <category>gamedev</category>
      <category>react</category>
      <category>typescript</category>
    </item>
  </channel>
</rss>
