<?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>DEV Community: hycore220</title>
    <description>The latest articles on DEV Community by hycore220 (@hycore220).</description>
    <link>https://dev.to/hycore220</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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4212290%2F39608abe-4c1f-4629-8f53-92330997b149.png</url>
      <title>DEV Community: hycore220</title>
      <link>https://dev.to/hycore220</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/hycore220"/>
    <language>en</language>
    <item>
      <title>The Last Save: a BASIC repair puzzle with a Gemma ghost</title>
      <dc:creator>hycore220</dc:creator>
      <pubDate>Wed, 28 Oct 2026 07:55:53 +0000</pubDate>
      <link>https://dev.to/hycore220/the-last-save-a-basic-repair-puzzle-with-a-gemma-ghost-egd</link>
      <guid>https://dev.to/hycore220/the-last-save-a-basic-repair-puzzle-with-a-gemma-ghost-egd</guid>
      <description>&lt;p&gt;&lt;em&gt;An entry for the &lt;a href="https://dev.to/challenges/hacktoberfest-week4-2026-10-26"&gt;Hacktoberfest Open-Source AI Challenge, Week 4: Ghost in the Machine&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;The desk lamp should produce six volts. The terminal says five. Somewhere in five lines of BASIC, the machine has forgotten how multiplication works.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Last Save&lt;/strong&gt; is a small browser puzzle about repairing an old computer's memories. Five disks contain five damaged programs. You change real BASIC code, run it, and inspect what happened. Each successful repair brings back a short piece of a fictional story.&lt;/p&gt;

&lt;p&gt;The ghost is a Gemma-powered clue writer. It reads the program's execution trace and points toward a mistake. The player still makes the repair, and an interpreter checks the result against three different inputs.&lt;/p&gt;

&lt;p&gt;The five puzzles cover arithmetic, a loop boundary, a runaway countdown, a temperature threshold, and Fibonacci state updates. The last one asks a particularly fitting question for this theme: which value should you keep before the next update erases it?&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://the-last-save-queuecarelab.alightape20.chatgpt.site" rel="noopener noreferrer"&gt;Play The Last Save&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Start with &lt;strong&gt;First light&lt;/strong&gt;, press &lt;strong&gt;Run program&lt;/strong&gt;, then compare the expected output with the actual output. Ask for a clue if needed. The trace below the editor shows each executed line and the variables after it. Progress is saved in your browser.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fkg1jj5e2fn6wh4xj9nsz.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fkg1jj5e2fn6wh4xj9nsz.jpg" alt="The Last Save recovery desk and its five damaged programs" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The default web demo uses &lt;strong&gt;five recorded responses from real local Gemma calls&lt;/strong&gt;, clearly labelled as recorded. Clicking that mode does not start a new inference. It needs no API key or model download. Fresh local inference is available in the downloadable project through Ollama.&lt;/p&gt;

&lt;p&gt;There is also an optional WebLLM browser mode. It is marked experimental, requires WebGPU and a substantial model download, and has &lt;strong&gt;not been runtime-verified&lt;/strong&gt; for this release. The demo does not depend on it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Code
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/hycore220/the-last-save" rel="noopener noreferrer"&gt;Source, setup instructions, tests and inference records on GitHub&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The game, interpreter and fictional story are MIT licensed. This is a new project created on October 28 during this challenge's entry period.&lt;/p&gt;

&lt;h2&gt;
  
  
  How I Built It
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Give the ghost evidence
&lt;/h3&gt;

&lt;p&gt;The interpreter returns output and a trace of the statements it actually executed. A clue request combines that evidence with the puzzle rule, input, expected output and any execution error. Gemma is asked for a short hint grounded in those values, without replacement code or a claim that a repair passed.&lt;/p&gt;

&lt;p&gt;For the lamp puzzle, the trace records &lt;code&gt;CELLS = 2&lt;/code&gt; and &lt;code&gt;VOLTS = 5&lt;/code&gt; after &lt;code&gt;LET VOLTS = CELLS + 3&lt;/code&gt;. The clue directs attention to the difference between adding three and giving each cell three volts. The player can test that idea immediately.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fede9phksic16bt0cz1fc.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fede9phksic16bt0cz1fc.jpg" alt="Actual program output, a labelled recorded Gemma clue and the executed-line trace" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The tested live path uses &lt;strong&gt;Gemma through Ollama&lt;/strong&gt;, locally, with the model tag &lt;code&gt;gemma4:e4b&lt;/code&gt;. A small Python server accepts bounded clue requests and talks to the local Ollama service. To try it, follow the README, run the local server, and select &lt;strong&gt;Live local Ollama&lt;/strong&gt; in the game.&lt;/p&gt;

&lt;h3&gt;
  
  
  Keep mistakes visible
&lt;/h3&gt;

&lt;p&gt;The inference report retains prompts, raw outputs and rejected attempts. One rejected temperature clue described an &lt;code&gt;IF&lt;/code&gt; as conditionally executing the next line, even though this BASIC subset uses a numbered jump. That explanation could teach the wrong thing, so it was not selected.&lt;/p&gt;

&lt;p&gt;The development record contains &lt;strong&gt;27 model calls plus one successful live HTTP integration call&lt;/strong&gt;. Five responses were selected for the default demo. These are curated development cases reviewed by the coding assistant, not an independent human evaluation or a model benchmark. Original-program prompts include the author's focus line; edited live programs do not assume the original fault location.&lt;/p&gt;

&lt;p&gt;Recorded clues are tied to both source and execution fingerprints. If the player edits the program, the old recording is refused rather than presented as advice about new code. That limitation is visible in the interface.&lt;/p&gt;

&lt;h3&gt;
  
  
  Make the repair checkable
&lt;/h3&gt;

&lt;p&gt;The JavaScript interpreter supports a small educational BASIC subset: &lt;code&gt;LET&lt;/code&gt;, &lt;code&gt;INPUT&lt;/code&gt;, &lt;code&gt;PRINT&lt;/code&gt;, &lt;code&gt;IF/THEN&lt;/code&gt;, &lt;code&gt;GOTO&lt;/code&gt;, &lt;code&gt;REM&lt;/code&gt; and &lt;code&gt;END&lt;/code&gt;. It parses expressions without JavaScript &lt;code&gt;eval&lt;/code&gt; and bounds source size, execution steps and output. An accidental infinite loop becomes a result the player can inspect.&lt;/p&gt;

&lt;p&gt;Each repair must pass three inputs. Hard-coding the displayed answer does not solve the puzzle. Validation included &lt;strong&gt;14 engine tests, all 15 solution/input combinations, and agent-driven browser completion of all five puzzles&lt;/strong&gt;. Reloading retained progress and the final ending.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Does Open Innovation Matter?
&lt;/h2&gt;

&lt;p&gt;The clue writer can run on the same computer as the game. Once Ollama and the model are installed, this local path does not need a hosted inference API. The prompts, model identifier, trace format and rejected outputs are available to inspect. Another developer can change the teaching style or select a different locally installed model.&lt;/p&gt;

&lt;p&gt;That matters for a debugging puzzle: the explanation should be open to inspection, and the player should be able to test it. A useful clue is one that helps them understand the next execution, not merely one that sounds confident.&lt;/p&gt;

&lt;p&gt;The core game is also small enough to keep as ordinary HTML, CSS and JavaScript. The model weights are not redistributed; the external runtimes and models retain their own licences and terms.&lt;/p&gt;

&lt;h2&gt;
  
  
  Prize Categories
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Best Use of Gemma&lt;/strong&gt; — for local, execution-grounded debugging clues, a reproducible live inference path, and recorded hints whose provenance and limits remain visible in the demo.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;AI disclosure:&lt;/strong&gt; Codex wrote and tested the implementation and drafted this submission under the project owner's direction. The story is fictional. No player testimonials or independently measured learning outcomes are claimed. Gemma generated the clue candidates described above.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
    </item>
  </channel>
</rss>
