<?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: Jordan Skinner</title>
    <description>The latest articles on DEV Community by Jordan Skinner (@jordan_skinner_0ba97515b8).</description>
    <link>https://dev.to/jordan_skinner_0ba97515b8</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%2F3842315%2F7fedc6a1-20f1-4dbf-a92c-f37510e1aff6.png</url>
      <title>DEV Community: Jordan Skinner</title>
      <link>https://dev.to/jordan_skinner_0ba97515b8</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/jordan_skinner_0ba97515b8"/>
    <language>en</language>
    <item>
      <title>TidyTrace: preview, decide, undo</title>
      <dc:creator>Jordan Skinner</dc:creator>
      <pubDate>Sat, 24 Oct 2026 18:49:50 +0000</pubDate>
      <link>https://dev.to/jordan_skinner_0ba97515b8/tidytrace-preview-decide-undo-1090</link>
      <guid>https://dev.to/jordan_skinner_0ba97515b8/tidytrace-preview-decide-undo-1090</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-week3-2026-10-19"&gt;Hacktoberfest Open-Source AI Challenge Week 3: Slow and Steady&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

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

&lt;p&gt;TidyTrace is a small rehearsal for a cautious archive assistant. It works with a fixed inventory of fictional objects. Before anything changes, it shows a plan and pauses. An interactive decision must identify that exact plan. Applying it creates a synthetic receipt; undo uses that receipt to restore the original inventory.&lt;/p&gt;

&lt;p&gt;That is the Slow and Steady idea: make the proposed change inspectable, then make the result reversible. The prototype archives one old generated log while keeping a recent log and a protected document in place. It never reads or changes user files.&lt;/p&gt;

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

&lt;p&gt;The 35-second video replays states captured from the real LangGraph workflow. Its approval is an automated demonstration choice, clearly labelled. The terminal version requires an exact plan ID and refuses piped approval.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://raw.githubusercontent.com/jskinner-bizai/tidytrace/52a2ec81378510972b69bbfa6e9954cbd5cc9bc9/docs/TIDYTRACE_DEMO.mp4" rel="noopener noreferrer"&gt;View the labelled 35-second synthetic workflow replay&lt;/a&gt;.&lt;/p&gt;

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

&lt;p&gt;&lt;a href="https://github.com/jskinner-bizai/tidytrace/tree/477371054b92b306e05741e96786a269cc2752eb" rel="noopener noreferrer"&gt;Source code and reproducible offline checks&lt;/a&gt;.&lt;/p&gt;

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

&lt;p&gt;LangGraph owns the state graph, checkpoint, approval interruption and resume. Application checks bind approval to the inventory fingerprint and exact plan. A later inventory or plan change stops execution. Undo refuses intervening edits rather than overwriting them.&lt;/p&gt;

&lt;p&gt;The shown planner is deterministic. An optional local Qwen model can propose a plan for a separate fixed synthetic fixture. Its first evaluated request followed an instruction embedded in a fictional filename and selected a protected object. The executor rejected the entire plan before approval or mutation. That failure remains in the evidence; it is not a successful model-quality result.&lt;/p&gt;

&lt;p&gt;The revised adapter omits names from model input because this policy needs only structured fields. A bounded client worker handles the HTTP request. Independent executor checks still apply to every proposal. Client cancellation does not prove that the model server stopped generating.&lt;/p&gt;

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

&lt;p&gt;The open-source framework at the core is LangGraph, including its actual pause and resume behaviour. Keeping that mechanism separate from proposal generation makes it possible to compare planners without giving them execution authority. Dependency versions and the LangGraph licence are retained with the source.&lt;/p&gt;

&lt;p&gt;This remains a synthetic, process-local prototype. It does not provide persistent storage, authenticated consent or production file management. No time savings or real-world reliability result is claimed.&lt;/p&gt;

&lt;p&gt;Preview one change, approve its exact plan, and keep a receipt that can restore the original inventory.&lt;/p&gt;

&lt;p&gt;More from Jordan Skinner&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;BuildNextGen AI: &lt;a href="https://buildnextgen.ai" rel="noopener noreferrer"&gt;https://buildnextgen.ai&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;LinkedIn: &lt;a href="https://www.linkedin.com/in/jordan-skinner-b681a5105/" rel="noopener noreferrer"&gt;https://www.linkedin.com/in/jordan-skinner-b681a5105/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;GitHub: &lt;a href="https://github.com/jskinner-bizai" rel="noopener noreferrer"&gt;https://github.com/jskinner-bizai&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Kaggle: &lt;a href="https://www.kaggle.com/jordanskinner313" rel="noopener noreferrer"&gt;https://www.kaggle.com/jordanskinner313&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

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