<?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: Zain Dana Harper</title>
    <description>The latest articles on DEV Community by Zain Dana Harper (@zaindanaharper).</description>
    <link>https://dev.to/zaindanaharper</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%2F4012901%2F96528b1b-4fc2-4151-b96d-d9a66ba6fca8.jpg</url>
      <title>DEV Community: Zain Dana Harper</title>
      <link>https://dev.to/zaindanaharper</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/zaindanaharper"/>
    <language>en</language>
    <item>
      <title>A self-hostable AI workstation with a coding agent and answer-checking (Flywheel 1.0.1)</title>
      <dc:creator>Zain Dana Harper</dc:creator>
      <pubDate>Sat, 19 Sep 2026 23:50:13 +0000</pubDate>
      <link>https://dev.to/zaindanaharper/a-self-hostable-ai-workstation-with-a-coding-agent-and-answer-checking-flywheel-101-5g3a</link>
      <guid>https://dev.to/zaindanaharper/a-self-hostable-ai-workstation-with-a-coding-agent-and-answer-checking-flywheel-101-5g3a</guid>
      <description>&lt;p&gt;Flywheel is a self-hostable AI workstation and coding harness. You run it on your own machine, point it at any model you hold a key for or a local one, and keep a record of every run. This post walks the parts a developer touches first: install, the coding agent, &lt;code&gt;check-output&lt;/code&gt;, and the receipt path.&lt;/p&gt;

&lt;h2&gt;
  
  
  Install and start the gateway
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pip &lt;span class="nb"&gt;install &lt;/span&gt;flywheel-verify
flywheel up
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;flywheel up&lt;/code&gt; starts the local API gateway on &lt;code&gt;http://127.0.0.1:8799&lt;/code&gt; and serves a browser shell there. The installed runtime uses only the Python standard library. The PyPI distribution name is &lt;code&gt;flywheel-verify&lt;/code&gt;; the command it installs is &lt;code&gt;flywheel&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;No model download is required. Point the router at a hosted provider you hold a key for, or run local through ollama over HTTP, or fetch the published 14B and 32B weights. The roster reports that a credential is present, never its value.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;flywheel auth login &amp;lt;provider&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That runs a stepwise sign-in, stores the token in your OS credential store, and the router picks it up.&lt;/p&gt;

&lt;h2&gt;
  
  
  The lanes
&lt;/h2&gt;

&lt;p&gt;Fifteen lanes are declared in the roster; ten bundle natively from hash-pinned source. List their configured state, or probe each lane's live MCP connection:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;flywheel lanes
flywheel lanes &lt;span class="nt"&gt;--probe&lt;/span&gt;    &lt;span class="c"&gt;# live MCP handshake per lane&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Lanes cover research intake (gather), a workspace map and symbol graph (index), memory with source checks (mneme), multi-agent routing (forum), claim recheck (crucible), writing quality and AI-tell detection (articulate), and more. Each runs on its own and composes with the others through JSON.&lt;/p&gt;

&lt;h2&gt;
  
  
  The coding agent
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;relay&lt;/code&gt; is a permission-gated coding agent that works over your own folders on a local or hosted model:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;flywheel relay
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Stage four of a run is the capability check. It reads a shell command the way a shell reads it and names what the command is able to do, and that name settles the decision: allow, refuse with a reason returned to the model, or escalate to a person. A blocked request is not a fatal error. The reason goes back to the model, which can pick a different route, and the ledger keeps the request, the refusal, and the reason.&lt;/p&gt;

&lt;p&gt;One honest gap the repo does not paper over: the map of executable names is curated by hand, so a command it has never seen is admitted and written down as &lt;code&gt;unknown&lt;/code&gt; rather than silently trusted.&lt;/p&gt;

&lt;h2&gt;
  
  
  Checking an answer before it ships
&lt;/h2&gt;

&lt;p&gt;An assistant that rechecks its own arithmetic gets the same wrong number twice. So Flywheel checks a value against the source that decides it and reports three outcomes:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;flywheel check-output &lt;span class="nt"&gt;--contract&lt;/span&gt; task.contract.json &lt;span class="nt"&gt;--answer&lt;/span&gt; answer.json &lt;span class="nt"&gt;--allow-commands&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Exit 0 means confirmed, exit 1 means the value disagrees, exit 3 means nothing could confirm it. An unchecked value never reads as a confirmed one. The report also says whether the answer may ship: &lt;code&gt;RELEASE&lt;/code&gt;, &lt;code&gt;RELEASE_WITH_CAVEAT&lt;/code&gt;, or &lt;code&gt;HOLD&lt;/code&gt; with the fields that blocked it. Inside a lane, a held answer does not accept.&lt;/p&gt;

&lt;p&gt;Finance, medicine, and law each ship a pack of field templates for the values that go wrong the same way: a dose banded by a formulary rather than computed, a deadline counted in calendar days where the rule counts court days, an amount carried to two decimals in a currency that has none. A pack ships field shapes and arithmetic, no domain data; the authorities stay yours to supply.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;flywheel packs medicine
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Add &lt;code&gt;--lean Answer.lean --verify-lean&lt;/code&gt; and the check is emitted as a Lean 4 file that the kernel runs. What the kernel settles becomes a theorem, what an outside authority decided becomes a named axiom, and one &lt;code&gt;#print axioms&lt;/code&gt; line prints everything the result rests on.&lt;/p&gt;

&lt;h2&gt;
  
  
  The receipt path
&lt;/h2&gt;

&lt;p&gt;Routed runs keep a ledger of tool names, arguments, and outputs. With sealed tool-call receipts enabled, each receipt also records the capability, the outcome, argument and output hashes, and the prior receipt's hash. Sealed receipts form an ordered hash chain, so if one receipt is invalid, later entries in that chain become unverifiable.&lt;/p&gt;

&lt;p&gt;The end-to-end gate runs oracle to group to receipt to re-witness with no model and no candidate code executed, and exits 0 only on a MATCH:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;flywheel gate
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;An independent witness re-runs the recorded check offline and reports MATCH, DRIFT, or UNVERIFIABLE. No learned model sits on the accept path. That is the whole point of the receipt: a run you can hand to someone who was not there, and they reach the same verdict.&lt;/p&gt;

&lt;h2&gt;
  
  
  Honest null
&lt;/h2&gt;

&lt;p&gt;On the shipped benchmark, continued pretraining on the workspace corpus did not improve general code completion: -3.05 points over 164 tasks, p = 0.40. The retired arms benchmark read +0.100 with 95% CI [-0.236, +0.420], an interval that includes zero. No capability uplift is claimed. A receipt shows the check reproduces. Whether the answer is right about the world is a separate question.&lt;/p&gt;

&lt;h2&gt;
  
  
  Links
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Repo: &lt;a href="https://github.com/HarperZ9/flywheel" rel="noopener noreferrer"&gt;https://github.com/HarperZ9/flywheel&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Release v1.0.1: &lt;a href="https://github.com/HarperZ9/flywheel/releases/tag/v1.0.1" rel="noopener noreferrer"&gt;https://github.com/HarperZ9/flywheel/releases/tag/v1.0.1&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;PyPI: &lt;a href="https://pypi.org/project/flywheel-verify/" rel="noopener noreferrer"&gt;https://pypi.org/project/flywheel-verify/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;License: FSL-1.1-MIT (source-available)&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>ai</category>
      <category>python</category>
      <category>devtools</category>
      <category>showdev</category>
    </item>
    <item>
      <title>A bit about myself, and my mission.</title>
      <dc:creator>Zain Dana Harper</dc:creator>
      <pubDate>Mon, 14 Sep 2026 05:48:21 +0000</pubDate>
      <link>https://dev.to/zaindanaharper/a-bit-about-myself-and-my-mission-3aj3</link>
      <guid>https://dev.to/zaindanaharper/a-bit-about-myself-and-my-mission-3aj3</guid>
      <description>&lt;p&gt;I spent eleven years on a tree crew and stayed on the ground for all of it. On the ground I was the rigging specialist. I kept the climber safe if something let go above me, and I ran the timing, getting branches and logs of every size and shape to come down safely and fit into places they ordinarily would not, which took finesse and planning. Most of it ran on silent visual contact with the climber up in the tree. A lot of what we did was like a synchronized dance, a ballet of physics where a mistake has real consequences. We made very few mistakes over eleven years, and my father did the same work for twenty years before me.&lt;/p&gt;

&lt;p&gt;My family runs back through generations of broken people, and in the house I grew up in the damage never got a name. I picked it up young from the adults around me.&lt;/p&gt;

&lt;p&gt;The tree work was my day job. At night I built tools in my free time. I cheated at games and reversed them, working through their memory hooks and offsets to learn how the systems ran from outside.&lt;/p&gt;

&lt;p&gt;I still work on AI and its governance from outside the usual circles. There is little traction, and few people outside it know the work is happening. It is the same method I brought to the games, coming at a system from the outside and pushing it to see how it behaves.&lt;/p&gt;

&lt;p&gt;I build tools that attack AI systems, and I use AI to build them. That is the purple team method. I aim it at AI safety and alignment. I build the adversarial side so the defensive side has something real to test against, then I feed what the attacks find back into the defenses that are supposed to hold. That is threat-informed defense. The method sits close to me because it runs along my own impulsiveness and the line where accountability starts, and because I still falter.&lt;/p&gt;

&lt;p&gt;The companies building systems at scale will not hold themselves to account. I mean the class running the large platforms and the feeds that decide what a lot of people see. I watched what the platforms did to people's attention and to what they take as real. Agentic AI is the next system like that, and the check on it has to come from outside.&lt;/p&gt;

&lt;p&gt;One thing I finished on my own is a rendering preset called E L D E R . E N B, built for Skyrim SE. I made it because I wanted a specific quality of light in the game that I could not get any other way, and I built it with no money coming in for the work. It went up on NexusMods, where the download count is approaching one million, with well over a hundred thousand separate accounts running it inside their game.&lt;/p&gt;

&lt;p&gt;I work under the name Zentropy Labs. It is not filed as anything and there is no payroll, because I have nobody else to pay. The tools I build under that name are aimed at frontier AI labs, and no pilot is in place at any of them yet.&lt;/p&gt;

&lt;p&gt;My main tool is called Flywheel, and it is accountability infrastructure for agentic AI. Every tool call the agent makes gets a sealed receipt attached to it, signed with ed25519. There is a false-accept corpus I test the verifier against, so I know what it will wave through wrong. A learning loop on top of that lets an organization watch its own drift over months. Any run the tool produces has to be re-derivable by somebody outside my machine. If it is not, it does not ship.&lt;/p&gt;

&lt;p&gt;I have a young son. He will grow up with AI already part of the world. Safety researchers keep resigning from the largest labs. They do not think the models are being made safe fast enough. The people who run those labs are now asking the industry to pace the frontier and put more into alignment and outside evaluation. That is the work I already do, and I want to keep doing it while he grows up.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>programming</category>
      <category>alignment</category>
      <category>governance</category>
    </item>
    <item>
      <title>The failed install was part of the evidence: reproducing an agent-action receipt</title>
      <dc:creator>Zain Dana Harper</dc:creator>
      <pubDate>Fri, 17 Jul 2026 10:09:37 +0000</pubDate>
      <link>https://dev.to/zentropylabs/the-failed-install-was-part-of-the-evidence-reproducing-an-agent-action-receipt-hh1</link>
      <guid>https://dev.to/zentropylabs/the-failed-install-was-part-of-the-evidence-reproducing-an-agent-action-receipt-hh1</guid>
      <description>&lt;p&gt;A reproducibility report gets weaker when it records only the green ending.&lt;/p&gt;

&lt;p&gt;Today I evaluated PermitReceipt &lt;code&gt;v2.2.6-public-eval&lt;/code&gt;, an evaluation-only release for agent-authorization receipts, in a fresh Windows 11 and CPython 3.12 reviewer environment. The useful result was not just that the final checks passed. The documented portable install path failed first.&lt;/p&gt;

&lt;p&gt;That failure belongs in the evidence.&lt;/p&gt;

&lt;h2&gt;
  
  
  The bounded question
&lt;/h2&gt;

&lt;p&gt;Could a fresh, unaffiliated reviewer verify the release artifacts and run the documented reviewer path without relying on hidden environment state?&lt;/p&gt;

&lt;p&gt;This was a narrow reproducibility test. It was not a production-readiness audit, an IETF review, or a claim that the receipt proves an agent action was authorized correctly.&lt;/p&gt;

&lt;h2&gt;
  
  
  What verified before installation
&lt;/h2&gt;

&lt;p&gt;The release ZIP had this SHA-256 digest:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;e5c40eca74fe2f451a0723db915c64b201e1d52f382cee24062e4dfc61fc632f
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The archive scan found 261 entries and zero unsafe paths. The release digest and artifact sidecars verified before package installation.&lt;/p&gt;

&lt;p&gt;That distinction matters. Artifact integrity, package installability, and behavioral verification are separate claims. One passing result should not silently stand in for the others.&lt;/p&gt;

&lt;h2&gt;
  
  
  The first failure
&lt;/h2&gt;

&lt;p&gt;Inside the fresh virtual environment, the documented portable path included:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;python &lt;span class="nt"&gt;-m&lt;/span&gt; pip &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;--no-build-isolation&lt;/span&gt; &lt;span class="nt"&gt;-e&lt;/span&gt; &lt;span class="nb"&gt;.&lt;/span&gt; &lt;span class="nt"&gt;--no-deps&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It failed with:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;BackendUnavailable: Cannot import 'setuptools.build_meta'
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;--no-build-isolation&lt;/code&gt; tells pip to use build tooling already present in the environment. The fresh reviewer environment did not contain the expected backend, so the supposedly portable path depended on setup state that the command did not establish.&lt;/p&gt;

&lt;p&gt;This is a small packaging defect, but it is exactly the kind of detail that disappears when a report records only the final green state.&lt;/p&gt;

&lt;h2&gt;
  
  
  Minimal recovery and downstream result
&lt;/h2&gt;

&lt;p&gt;Installing the pinned build backends was enough to recover:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;python &lt;span class="nt"&gt;-m&lt;/span&gt; pip &lt;span class="nb"&gt;install &lt;/span&gt;&lt;span class="nv"&gt;setuptools&lt;/span&gt;&lt;span class="o"&gt;==&lt;/span&gt;83.0.0 &lt;span class="nv"&gt;wheel&lt;/span&gt;&lt;span class="o"&gt;==&lt;/span&gt;0.47.0
python &lt;span class="nt"&gt;-m&lt;/span&gt; pip &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;--no-build-isolation&lt;/span&gt; &lt;span class="nt"&gt;-e&lt;/span&gt; &lt;span class="nb"&gt;.&lt;/span&gt; &lt;span class="nt"&gt;--no-deps&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;After that recovery, the downstream reviewer suites reported:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;IETF-format review packet: 20 of 20 passed&lt;/li&gt;
&lt;li&gt;Independent recomputation: 17 of 17 passed&lt;/li&gt;
&lt;li&gt;Independent cryptographic verification: 19 of 19 passed&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Those suite names come from the release materials. Passing them does not imply IETF endorsement, external certification, or production readiness.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the receipt should preserve
&lt;/h2&gt;

&lt;p&gt;A useful run receipt needs enough structure to explain both the failure and the recovery. In this case, the minimum record looked like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;artifact&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;release&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;v2.2.6-public-eval&lt;/span&gt;
  &lt;span class="na"&gt;sha256&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;e5c40eca74fe2f451a0723db915c64b201e1d52f382cee24062e4dfc61fc632f&lt;/span&gt;
&lt;span class="na"&gt;environment&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;os&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Windows &lt;/span&gt;&lt;span class="m"&gt;11&lt;/span&gt;
  &lt;span class="na"&gt;python&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;CPython &lt;/span&gt;&lt;span class="m"&gt;3.12&lt;/span&gt;
&lt;span class="na"&gt;attempt&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;command&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;python -m pip install --no-build-isolation -e . --no-deps&lt;/span&gt;
  &lt;span class="na"&gt;outcome&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;failed&lt;/span&gt;
  &lt;span class="na"&gt;error_class&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;BackendUnavailable&lt;/span&gt;
  &lt;span class="na"&gt;missing_backend&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;setuptools.build_meta&lt;/span&gt;
&lt;span class="na"&gt;recovery&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;packages&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;setuptools==83.0.0&lt;/span&gt;
    &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;wheel==0.47.0&lt;/span&gt;
  &lt;span class="na"&gt;outcome&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;install_succeeded&lt;/span&gt;
&lt;span class="na"&gt;verification&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;review_packet&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;20/20&lt;/span&gt;
  &lt;span class="na"&gt;recomputation&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;17/17&lt;/span&gt;
  &lt;span class="na"&gt;crypto&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;19/19&lt;/span&gt;
&lt;span class="na"&gt;non_claims&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;not an IETF endorsement&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;not a production-readiness determination&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;not proof that every agent action was correctly authorized&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The exact schema can vary. The important property is that a later reviewer can distinguish what happened from what was inferred.&lt;/p&gt;

&lt;h2&gt;
  
  
  Five practical lessons
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Preserve the failed command. A recovery does not erase the original portability defect.&lt;/li&gt;
&lt;li&gt;Separate integrity, installability, and behavior. They are different verification layers.&lt;/li&gt;
&lt;li&gt;Pin build backends when using &lt;code&gt;--no-build-isolation&lt;/code&gt;, or use build isolation so the backend is established mechanically.&lt;/li&gt;
&lt;li&gt;Treat limitations as first-class fields. A receipt should say what it does not prove.&lt;/li&gt;
&lt;li&gt;Publish the reproduction path. A claim becomes more useful when another person can inspect the commands and challenge the conclusion.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Public reproduction
&lt;/h2&gt;

&lt;p&gt;I reported the exact bounded outcome, including the failed install and minimal recovery, in the public repository:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/meridianverity/permit-receipt/issues/1" rel="noopener noreferrer"&gt;https://github.com/meridianverity/permit-receipt/issues/1&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you maintain an agent, MCP, evaluation, or workflow tool and have a public, credential-free fixture, I am interested in running one similarly bounded case and publishing the raw result, including a negative result when that is what the evidence shows.&lt;/p&gt;

&lt;h2&gt;
  
  
  Disclosure
&lt;/h2&gt;

&lt;p&gt;I maintain the evidence tooling behind Project Telos at Zentropy Labs. I do not maintain PermitReceipt. The tested release is evaluation-only. I used an AI assistant to help structure and proofread this article. The commands, hashes, counts, links, and limitations were rechecked against the recorded run before publication.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>testing</category>
      <category>security</category>
      <category>python</category>
    </item>
    <item>
      <title>Four inspectable workflows for context, research, orchestration, and evaluation</title>
      <dc:creator>Zain Dana Harper</dc:creator>
      <pubDate>Mon, 13 Jul 2026 02:08:13 +0000</pubDate>
      <link>https://dev.to/zaindanaharper/four-inspectable-workflows-for-context-research-orchestration-and-evaluation-4l0c</link>
      <guid>https://dev.to/zaindanaharper/four-inspectable-workflows-for-context-research-orchestration-and-evaluation-4l0c</guid>
      <description>&lt;p&gt;I learn more from a complete technical workflow than from a feature reel.&lt;/p&gt;

&lt;p&gt;A complete workflow shows the input, the command or interface, the intermediate state, the usable output, and the condition that limits the claim. It also leaves enough material behind for another person to inspect the run.&lt;/p&gt;

&lt;p&gt;I applied that standard to four public Project Telos tools: Index, Gather, Forum, and Crucible. The resulting &lt;a href="https://harperz9.github.io/demonstrations.html?utm_source=devto&amp;amp;utm_medium=publication&amp;amp;utm_campaign=telos-recorded-workflows-2026-07&amp;amp;utm_content=four-inspectable-workflows" rel="noopener noreferrer"&gt;recorded-workflow hub&lt;/a&gt; contains short cuts, full recordings, commands, evidence packages, and an explicit boundary for every demo.&lt;/p&gt;

&lt;p&gt;Here is what each workflow actually establishes.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Index: map a workspace, then check the map
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://harperz9.github.io/demo-index.html?utm_source=devto&amp;amp;utm_medium=publication&amp;amp;utm_campaign=telos-recorded-workflows-2026-07&amp;amp;utm_content=technical-index" rel="noopener noreferrer"&gt;Index 2.9.0&lt;/a&gt; scans a sanitized workspace with three repositories. The captured run produces three high-confidence dependency edges and records the file-and-line witness behind each one.&lt;/p&gt;

&lt;p&gt;The workflow then checks one dependency directly, returning MATCH for the edge from &lt;code&gt;operator-console&lt;/code&gt; to &lt;code&gt;routing-service&lt;/code&gt; at &lt;code&gt;pyproject.toml:5&lt;/code&gt;. It also builds a bounded context result: 738 of 1,200 tokens, all three repositories retained, zero omitted. The final artifact is an offline atlas.&lt;/p&gt;

&lt;p&gt;The fixture is deliberately small enough to inspect by hand. It proves the mapping, evidence, bounded-context, and workbench path. It is not a scale benchmark or a claim of complete language coverage. The run uses no model and no network.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Gather: keep the receipt with the research
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://harperz9.github.io/demo-gather.html?utm_source=devto&amp;amp;utm_medium=publication&amp;amp;utm_campaign=telos-recorded-workflows-2026-07&amp;amp;utm_content=technical-gather" rel="noopener noreferrer"&gt;Gather 1.6.1&lt;/a&gt; converts local source material into addressable, content-hashed blocks. The demo extracts seven structured blocks, stores two records in a local corpus, and re-reads both stored bodies against their provenance records.&lt;/p&gt;

&lt;p&gt;The initial verification returns 2/2 MATCH. The workflow then changes a receipt and runs the check again, exposing the tamper path instead of hiding it.&lt;/p&gt;

&lt;p&gt;The useful design property is straightforward: recall and verification operate on the stored material, not on a retrospective claim that the material is unchanged.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Forum: preserve causal structure across dependent work
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://harperz9.github.io/demo-forum.html?utm_source=devto&amp;amp;utm_medium=publication&amp;amp;utm_campaign=telos-recorded-workflows-2026-07&amp;amp;utm_content=technical-forum" rel="noopener noreferrer"&gt;Forum 1.13.0&lt;/a&gt; routes one cross-domain backend-and-documentation request into three dependent waves. Upstream results cross typed data edges into downstream tasks. Each wave closes with a checkpoint, and each task result passes its validator.&lt;/p&gt;

&lt;p&gt;The captured run leaves 19 ledger entries and three checkpoints. The final checks verify the hash chain and the content-addressed payload bodies.&lt;/p&gt;

&lt;p&gt;This workflow uses a disclosed deterministic offline model fixture. That makes the orchestration and evidence mechanics reproducible. It does not measure production-model quality, latency, or cost.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Crucible: hold the criterion still
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://harperz9.github.io/demo-crucible.html?utm_source=devto&amp;amp;utm_medium=publication&amp;amp;utm_campaign=telos-recorded-workflows-2026-07&amp;amp;utm_content=technical-crucible" rel="noopener noreferrer"&gt;Crucible 1.2.0&lt;/a&gt; evaluates a three-claim artifact. The first run returns 1 MATCH / 2 DRIFT. The artifact is refined while the criterion stays fixed, and the second run returns 3 MATCH / 0 DRIFT.&lt;/p&gt;

&lt;p&gt;Two cleanroom reviews pass. The final step re-derives the verdict from the artifacts on disk.&lt;/p&gt;

&lt;p&gt;Keeping the criterion fixed matters. Without that constraint, a workflow can make a result look better simply by weakening the test after seeing the failure.&lt;/p&gt;

&lt;h2&gt;
  
  
  What these demos do not claim
&lt;/h2&gt;

&lt;p&gt;The four tools have distinct jobs and distinct fixtures. The recordings do not pretend that they form one zero-touch production pipeline. They do not substitute fixture results for production-model benchmarks. They do not turn a three-repository map into a scale claim.&lt;/p&gt;

&lt;p&gt;That honesty makes the useful connection clearer:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Context must be current enough to act on.&lt;/li&gt;
&lt;li&gt;Research material must retain its acquisition and integrity record.&lt;/li&gt;
&lt;li&gt;Dependent work must retain its causal structure.&lt;/li&gt;
&lt;li&gt;Evaluation must hold its criterion still and expose failure.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;When those properties survive a handoff, a completed run becomes part of the capability environment for the run that follows. A map can become onboarding material. A research record can become a test fixture. A dependency plan can become a benchmark. A failed evaluation can sharpen the criterion.&lt;/p&gt;

&lt;p&gt;That is the practical meaning of capability compounding.&lt;/p&gt;

&lt;p&gt;I am open to paid engineering, applied research, technical writing, contract, and collaborative work across developer tools, AI infrastructure, compilers, graphics, color systems, and technical products.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://harperz9.github.io/demonstrations.html?utm_source=devto&amp;amp;utm_medium=publication&amp;amp;utm_campaign=telos-recorded-workflows-2026-07&amp;amp;utm_content=article-closing-cta" rel="noopener noreferrer"&gt;Open the workflow hub&lt;/a&gt;, choose one run, and tell me which boundary deserves the hardest test.&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>devtools</category>
      <category>ai</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Five short papers on making AI-assisted work re-checkable</title>
      <dc:creator>Zain Dana Harper</dc:creator>
      <pubDate>Tue, 07 Jul 2026 04:56:55 +0000</pubDate>
      <link>https://dev.to/zaindanaharper/five-short-papers-on-making-ai-assisted-work-re-checkable-3n3n</link>
      <guid>https://dev.to/zaindanaharper/five-short-papers-on-making-ai-assisted-work-re-checkable-3n3n</guid>
      <description>&lt;p&gt;I have released five short papers on one idea: making AI-assisted work re-checkable. All five are archived on Zenodo with DOIs, and source and tests are public.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;EMET&lt;/strong&gt; — a byte-level integrity witness whose verdict {MATCH, DRIFT, UNVERIFIABLE} cannot, by construction, express "trusted." Four implementations, 44 conformance vectors. &lt;a href="https://doi.org/10.5281/zenodo.21230267" rel="noopener noreferrer"&gt;10.5281/zenodo.21230267&lt;/a&gt; · &lt;a href="https://github.com/HarperZ9/emet" rel="noopener noreferrer"&gt;source&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;BuildLang&lt;/strong&gt; — a compiler that puts ambient capabilities in the function type and seals re-derivable receipts verified by re-execution. &lt;a href="https://doi.org/10.5281/zenodo.21231253" rel="noopener noreferrer"&gt;10.5281/zenodo.21231253&lt;/a&gt; · &lt;a href="https://github.com/HarperZ9/buildlang" rel="noopener noreferrer"&gt;source&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Witnessed Independence&lt;/strong&gt; — records whether a verifier graded its own work, and refuses to decide when independence is not positively witnessed. &lt;a href="https://doi.org/10.5281/zenodo.21232206" rel="noopener noreferrer"&gt;10.5281/zenodo.21232206&lt;/a&gt; · &lt;a href="https://github.com/HarperZ9/coherence-membrane" rel="noopener noreferrer"&gt;source&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Proof Packets&lt;/strong&gt; — an envelope for one agent action whose verdict is derived from checks, so a claim can never vouch for itself. &lt;a href="https://doi.org/10.5281/zenodo.21231837" rel="noopener noreferrer"&gt;10.5281/zenodo.21231837&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Re-Perceived Effects&lt;/strong&gt; — replaces an actuator's self-report with a re-perceived effect: on-disk hash against intended hash, return code, witnessed bytes. &lt;a href="https://doi.org/10.5281/zenodo.21231747" rel="noopener noreferrer"&gt;10.5281/zenodo.21231747&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The common thread: a verdict should be a re-derivable function of its inputs, should say plainly what it does &lt;em&gt;not&lt;/em&gt; claim, and should fail to UNVERIFIABLE rather than to trust.&lt;/p&gt;

&lt;p&gt;More at &lt;a href="https://harperz9.github.io/" rel="noopener noreferrer"&gt;harperz9.github.io&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>opensource</category>
      <category>science</category>
      <category>softwareengineering</category>
    </item>
    <item>
      <title>Four short papers on making AI-assisted work re-checkable</title>
      <dc:creator>Zain Dana Harper</dc:creator>
      <pubDate>Tue, 07 Jul 2026 01:12:23 +0000</pubDate>
      <link>https://dev.to/zaindanaharper/four-short-papers-on-making-ai-assisted-work-re-checkable-48do</link>
      <guid>https://dev.to/zaindanaharper/four-short-papers-on-making-ai-assisted-work-re-checkable-48do</guid>
      <description>&lt;p&gt;I have released four short papers on one idea: making AI-assisted work re-checkable.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;EMET&lt;/strong&gt; — a byte-level integrity witness whose verdict {MATCH, DRIFT, UNVERIFIABLE} cannot, by construction, express "trusted." Four independent implementations, 44 conformance vectors.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;BuildLang&lt;/strong&gt; — a compiler that puts ambient capabilities in the function type and seals re-derivable receipts verified by re-execution.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Witnessed Independence&lt;/strong&gt; — a mechanism that records whether a verifier graded its own work, and refuses to decide when independence is not witnessed.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Proof Packets&lt;/strong&gt; — an envelope for one agent action whose verdict is derived from checks, so a claim can never vouch for itself.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Source and tests for all four are public.&lt;/p&gt;

&lt;p&gt;Papers: &lt;a href="https://harperz9.github.io/publications.html" rel="noopener noreferrer"&gt;https://harperz9.github.io/publications.html&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>opensource</category>
      <category>security</category>
      <category>testing</category>
    </item>
  </channel>
</rss>
