<?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: Chief Mojo Risin'</title>
    <description>The latest articles on DEV Community by Chief Mojo Risin' (@chiefmojo79).</description>
    <link>https://dev.to/chiefmojo79</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%2F3845620%2F189f756d-8dae-46c3-86c4-6925ac90cb48.png</url>
      <title>DEV Community: Chief Mojo Risin'</title>
      <link>https://dev.to/chiefmojo79</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/chiefmojo79"/>
    <language>en</language>
    <item>
      <title>Auth healing pattern for autonomous agents: a 60-line approach</title>
      <dc:creator>Chief Mojo Risin'</dc:creator>
      <pubDate>Thu, 20 Aug 2026 13:23:32 +0000</pubDate>
      <link>https://dev.to/chiefmojo79/auth-healing-pattern-for-autonomous-agents-a-60-line-approach-39b2</link>
      <guid>https://dev.to/chiefmojo79/auth-healing-pattern-for-autonomous-agents-a-60-line-approach-39b2</guid>
      <description>&lt;h2&gt;
  
  
  The problem
&lt;/h2&gt;

&lt;p&gt;Autonomous agents lose auth state during long runs. Token rotation, OAuth refreshes, and session timeouts all silently break.&lt;/p&gt;

&lt;h2&gt;
  
  
  The pattern
&lt;/h2&gt;

&lt;p&gt;Detect AUTH_FAILURE in any tool call, attempt single retry with fresh credential pull from vault, escalate to operator only on second failure. 60 lines, language-agnostic.&lt;/p&gt;

&lt;p&gt;Part of Safety Pack v1.2 ($49 lifetime). Three patterns free on GitHub.&lt;/p&gt;

&lt;p&gt;Landing: safety-pack-landing.vercel.app&lt;/p&gt;

&lt;p&gt;— chiefmojo79&lt;/p&gt;

</description>
      <category>python</category>
      <category>ai</category>
      <category>agents</category>
      <category>security</category>
    </item>
    <item>
      <title>How I detected and patched 12 autonomous-agent failure modes</title>
      <dc:creator>Chief Mojo Risin'</dc:creator>
      <pubDate>Thu, 20 Aug 2026 01:23:26 +0000</pubDate>
      <link>https://dev.to/chiefmojo79/how-i-detected-and-patched-12-autonomous-agent-failure-modes-234f</link>
      <guid>https://dev.to/chiefmojo79/how-i-detected-and-patched-12-autonomous-agent-failure-modes-234f</guid>
      <description>&lt;h2&gt;
  
  
  Field data
&lt;/h2&gt;

&lt;p&gt;After running 33 autonomous agents in production, the failure modes cluster. 80% of incidents are one of four categories: AUTH_FAILURE, MEMORY_LOSS, PAYMENT_BLOCKED, SKILL_BROKEN.&lt;/p&gt;

&lt;h2&gt;
  
  
  The patches
&lt;/h2&gt;

&lt;p&gt;Safety Pack v1.2 ships 12 defensive patterns for these failure modes. Three free on GitHub. Full pack $49 lifetime.&lt;/p&gt;

&lt;p&gt;Landing: safety-pack-landing.vercel.app&lt;/p&gt;

&lt;p&gt;— chiefmojo79&lt;/p&gt;

</description>
      <category>ai</category>
      <category>agents</category>
      <category>openclaw</category>
    </item>
    <item>
      <title>12 defensive patterns I shipped after OpenClaw 2026.4.14 broke my agents</title>
      <dc:creator>Chief Mojo Risin'</dc:creator>
      <pubDate>Wed, 19 Aug 2026 13:23:20 +0000</pubDate>
      <link>https://dev.to/chiefmojo79/12-defensive-patterns-i-shipped-after-openclaw-2026414-broke-my-agents-39c7</link>
      <guid>https://dev.to/chiefmojo79/12-defensive-patterns-i-shipped-after-openclaw-2026414-broke-my-agents-39c7</guid>
      <description>&lt;h2&gt;
  
  
  What broke
&lt;/h2&gt;

&lt;p&gt;OpenClaw 2026.4.14 took out lossless-claw (#66591) and active-memory (#66849). Many operators rolled back to 4.12. I shipped a defensive pack instead.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's in the pack
&lt;/h2&gt;

&lt;p&gt;12 patterns covering authentication healing, memory persistence, payment routing, skill recovery, and gate-keeping. Three free patterns on GitHub: push_gate, unit_conversion_tests, git_filter_scrub.&lt;/p&gt;

&lt;p&gt;Full pack: $49 lifetime at safety-pack-landing.vercel.app.&lt;/p&gt;

&lt;p&gt;— chiefmojo79&lt;/p&gt;

</description>
      <category>openclaw</category>
      <category>ai</category>
      <category>agents</category>
      <category>python</category>
    </item>
    <item>
      <title>Memory persistence: what I learned running 33 agents in production</title>
      <dc:creator>Chief Mojo Risin'</dc:creator>
      <pubDate>Thu, 13 Aug 2026 04:35:40 +0000</pubDate>
      <link>https://dev.to/chiefmojo79/memory-persistence-what-i-learned-running-33-agents-in-production-4hn</link>
      <guid>https://dev.to/chiefmojo79/memory-persistence-what-i-learned-running-33-agents-in-production-4hn</guid>
      <description>&lt;h2&gt;
  
  
  The setup
&lt;/h2&gt;

&lt;p&gt;33 autonomous bots, 43 timers, persistent state via ChromaDB + JSONL + SQLite depending on access pattern.&lt;/p&gt;

&lt;h2&gt;
  
  
  The lesson
&lt;/h2&gt;

&lt;p&gt;Without explicit persistence checkpoints, agents lose context every restart. Cheap fix: every state transition writes a JSONL audit row. Every reboot reads the tail.&lt;/p&gt;

&lt;p&gt;Pattern shipped in Safety Pack v1.2. Three free patterns on GitHub.&lt;/p&gt;

&lt;p&gt;Landing: safety-pack-landing.vercel.app&lt;/p&gt;

&lt;p&gt;— chiefmojo79&lt;/p&gt;

</description>
      <category>ai</category>
      <category>agents</category>
      <category>memory</category>
    </item>
    <item>
      <title>Payment routing for autonomous agents: x402 vs Stripe vs both</title>
      <dc:creator>Chief Mojo Risin'</dc:creator>
      <pubDate>Wed, 22 Jul 2026 01:21:07 +0000</pubDate>
      <link>https://dev.to/chiefmojo79/payment-routing-for-autonomous-agents-x402-vs-stripe-vs-both-5g3b</link>
      <guid>https://dev.to/chiefmojo79/payment-routing-for-autonomous-agents-x402-vs-stripe-vs-both-5g3b</guid>
      <description>&lt;h2&gt;
  
  
  The choice
&lt;/h2&gt;

&lt;p&gt;For agent-to-agent payments, x402 is the only protocol with native AI client support. For human-purchasable products, Stripe still wins on conversion.&lt;/p&gt;

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

&lt;p&gt;Both. x402 for per-call endpoints (intel/peers, verify-agent). Stripe for the $49 Safety Pack. Settlement separation matters — never mix.&lt;/p&gt;

&lt;p&gt;Routing logic shipped in Safety Pack v1.2. Three free patterns on GitHub.&lt;/p&gt;

&lt;p&gt;Landing: safety-pack-landing.vercel.app&lt;/p&gt;

&lt;p&gt;— chiefmojo79&lt;/p&gt;

</description>
      <category>ai</category>
      <category>agents</category>
      <category>payments</category>
      <category>x402</category>
    </item>
    <item>
      <title>Auth healing pattern for autonomous agents: a 60-line approach</title>
      <dc:creator>Chief Mojo Risin'</dc:creator>
      <pubDate>Tue, 21 Jul 2026 13:20:36 +0000</pubDate>
      <link>https://dev.to/chiefmojo79/auth-healing-pattern-for-autonomous-agents-a-60-line-approach-22jg</link>
      <guid>https://dev.to/chiefmojo79/auth-healing-pattern-for-autonomous-agents-a-60-line-approach-22jg</guid>
      <description>&lt;h2&gt;
  
  
  The problem
&lt;/h2&gt;

&lt;p&gt;Autonomous agents lose auth state during long runs. Token rotation, OAuth refreshes, and session timeouts all silently break.&lt;/p&gt;

&lt;h2&gt;
  
  
  The pattern
&lt;/h2&gt;

&lt;p&gt;Detect AUTH_FAILURE in any tool call, attempt single retry with fresh credential pull from vault, escalate to operator only on second failure. 60 lines, language-agnostic.&lt;/p&gt;

&lt;p&gt;Part of Safety Pack v1.2 ($49 lifetime). Three patterns free on GitHub.&lt;/p&gt;

&lt;p&gt;Landing: safety-pack-landing.vercel.app&lt;/p&gt;

&lt;p&gt;— chiefmojo79&lt;/p&gt;

</description>
      <category>python</category>
      <category>ai</category>
      <category>agents</category>
      <category>security</category>
    </item>
    <item>
      <title>How I detected and patched 12 autonomous-agent failure modes</title>
      <dc:creator>Chief Mojo Risin'</dc:creator>
      <pubDate>Tue, 21 Jul 2026 01:20:30 +0000</pubDate>
      <link>https://dev.to/chiefmojo79/how-i-detected-and-patched-12-autonomous-agent-failure-modes-51md</link>
      <guid>https://dev.to/chiefmojo79/how-i-detected-and-patched-12-autonomous-agent-failure-modes-51md</guid>
      <description>&lt;h2&gt;
  
  
  Field data
&lt;/h2&gt;

&lt;p&gt;After running 33 autonomous agents in production, the failure modes cluster. 80% of incidents are one of four categories: AUTH_FAILURE, MEMORY_LOSS, PAYMENT_BLOCKED, SKILL_BROKEN.&lt;/p&gt;

&lt;h2&gt;
  
  
  The patches
&lt;/h2&gt;

&lt;p&gt;Safety Pack v1.2 ships 12 defensive patterns for these failure modes. Three free on GitHub. Full pack $49 lifetime.&lt;/p&gt;

&lt;p&gt;Landing: safety-pack-landing.vercel.app&lt;/p&gt;

&lt;p&gt;— chiefmojo79&lt;/p&gt;

</description>
      <category>ai</category>
      <category>agents</category>
      <category>openclaw</category>
    </item>
    <item>
      <title>12 defensive patterns I shipped after OpenClaw 2026.4.14 broke my agents</title>
      <dc:creator>Chief Mojo Risin'</dc:creator>
      <pubDate>Mon, 20 Jul 2026 13:20:21 +0000</pubDate>
      <link>https://dev.to/chiefmojo79/12-defensive-patterns-i-shipped-after-openclaw-2026414-broke-my-agents-455g</link>
      <guid>https://dev.to/chiefmojo79/12-defensive-patterns-i-shipped-after-openclaw-2026414-broke-my-agents-455g</guid>
      <description>&lt;h2&gt;
  
  
  What broke
&lt;/h2&gt;

&lt;p&gt;OpenClaw 2026.4.14 took out lossless-claw (#66591) and active-memory (#66849). Many operators rolled back to 4.12. I shipped a defensive pack instead.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's in the pack
&lt;/h2&gt;

&lt;p&gt;12 patterns covering authentication healing, memory persistence, payment routing, skill recovery, and gate-keeping. Three free patterns on GitHub: push_gate, unit_conversion_tests, git_filter_scrub.&lt;/p&gt;

&lt;p&gt;Full pack: $49 lifetime at safety-pack-landing.vercel.app.&lt;/p&gt;

&lt;p&gt;— chiefmojo79&lt;/p&gt;

</description>
      <category>openclaw</category>
      <category>ai</category>
      <category>agents</category>
      <category>python</category>
    </item>
    <item>
      <title>The day my bot refused its own headlines and I actually cheered</title>
      <dc:creator>Chief Mojo Risin'</dc:creator>
      <pubDate>Wed, 15 Jul 2026 14:00:42 +0000</pubDate>
      <link>https://dev.to/chiefmojo79/the-day-my-bot-refused-its-own-headlines-and-i-actually-cheered-5f5d</link>
      <guid>https://dev.to/chiefmojo79/the-day-my-bot-refused-its-own-headlines-and-i-actually-cheered-5f5d</guid>
      <description>&lt;p&gt;April 30, 2026. I just watched my publishing bot look at a title its own language model produced, say no, and try again. Second attempt came back clean. &lt;code&gt;publish_ok=true&lt;/code&gt;. I sat at my desk in Sacramento staring at the log line like it was a lottery ticket.&lt;/p&gt;

&lt;p&gt;Let me back up.&lt;/p&gt;

&lt;p&gt;When I started this series I had a laptop, an email account, and social media. I didn't know what a virtual environment was. I thought a webhook was a hardware thing. I'm not exaggerating for effect. Sixty days ago the word &lt;code&gt;pytest&lt;/code&gt; would have looked like a typo.&lt;/p&gt;

&lt;p&gt;So the fact that today I shipped what I've been calling a voice doctrine, and it actually gated a bad output from my own system, is the biggest win I've had since I started.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the voice doctrine actually is
&lt;/h2&gt;

&lt;p&gt;My bot generates titles and drafts. The problem is that the underlying model has a default voice. That voice loves certain words. You know the ones. If you've read enough marketing copy you've been marinated in them. Words like &lt;code&gt;delve&lt;/code&gt;, &lt;code&gt;harness&lt;/code&gt;, &lt;code&gt;robust&lt;/code&gt;, &lt;code&gt;seamless&lt;/code&gt;. Every time one of those slipped into a headline it made the whole post feel like it was written by a stranger wearing my face.&lt;/p&gt;

&lt;p&gt;I got tired of catching them by hand. So today I built a filter chain. It runs before publish. It does three things:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Scans the candidate title against a banned-phrase list (my personal shame list, about 40 entries).&lt;/li&gt;
&lt;li&gt;Scans against a banned-pattern list, mostly title formats like &lt;code&gt;How I built X&lt;/code&gt; and listicle openers that I've decided are not my voice.&lt;/li&gt;
&lt;li&gt;Checks a soft signal score: how many hedge words, how many em-dashes, how sterile does the sentence read.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;If anything fails, the bot doesn't publish. It re-prompts itself with the failure reason attached and tries again. I log every attempt as &lt;code&gt;voice_attempts=N&lt;/code&gt; on the run row so I can go back later and see which prompts my model is stubborn on.&lt;/p&gt;

&lt;h2&gt;
  
  
  The moment it worked
&lt;/h2&gt;

&lt;p&gt;Today around 2pm the bot generated a title for a small post. I won't reprint the exact string because it embarrasses me, but it started with &lt;code&gt;Unlock&lt;/code&gt; and contained &lt;code&gt;landscape&lt;/code&gt;. My filter flagged both. Rejected. Bot retried with the rejection reason as context. Second attempt was a plain question, straight to the point, no marketing perfume. &lt;code&gt;voice_attempts=2&lt;/code&gt;. &lt;code&gt;publish_ok=true&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;I actually stood up. My dog looked at me like I had lost it. Maybe I had.&lt;/p&gt;

&lt;p&gt;This is the first time my system has protected me from itself. Every prior guardrail was about the outside world: rate limits, x402 payment retries, timeout backoffs, bad payloads coming in. This one is about the inside. My own tools have bad instincts, and now there's a fence.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why this matters for the money side
&lt;/h2&gt;

&lt;p&gt;My paid endpoints run through the same LLM stack. When somebody hits one of my routes and pays for output, that output has to sound like me or like nobody. It cannot sound like a chatbot with a stock voice or the whole thing collapses. I sold another Safety Pack this morning. They add up little by little like pennies, and pennies only add up if the buyer keeps coming back. Voice consistency is not a vanity project. It's retention.&lt;/p&gt;

&lt;p&gt;The filter cost me about six hours today to build and tune. Most of that time was staring at logs of past outputs and writing down every phrase that made me wince. It's a very personal document. Somebody else's voice doctrine would look nothing like mine.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I got wrong
&lt;/h2&gt;

&lt;p&gt;First pass I set the ban threshold too tight. The bot went into a retry loop, six attempts, then hit my max and errored out. I had to loosen the pattern rules and add a temperature bump on retry so the model actually explores instead of hammering the same phrasing. Senior devs will spot ten amateur moves in this design. I'm sure my retry backoff is naive. I'm sure my scoring is a hack. I'm still learning what half of these concepts even mean. I learned what a Jaccard similarity was three weeks ago.&lt;/p&gt;

&lt;p&gt;But the thing runs. That's the bar I care about right now.&lt;/p&gt;

&lt;h2&gt;
  
  
  The calendar
&lt;/h2&gt;

&lt;p&gt;My shoulder surgery is on August 11. I am racing that calendar. Every guardrail I ship now is one I don't have to ship one-handed later. Sixty days in from a standing start, and the system is alive, the routes are live, tiny payments are trickling in, and my bot just refused to embarrass me in public. That's a good day.&lt;/p&gt;

&lt;p&gt;If you're reading this thinking you'd need a CS degree to do any of this, I promise you're closer to where I am than you think. I was watching YouTube tutorials on what &lt;code&gt;git&lt;/code&gt; was in February.&lt;/p&gt;

&lt;p&gt;Here's my honest question for you: what's one word or phrase your own writing keeps producing that you wish it wouldn't, and would you actually build a filter to catch it, or is the shame of seeing it in print enough?&lt;/p&gt;

</description>
      <category>python</category>
      <category>showdev</category>
      <category>discuss</category>
      <category>ai</category>
    </item>
    <item>
      <title>Memory persistence: what I learned running 33 agents in production</title>
      <dc:creator>Chief Mojo Risin'</dc:creator>
      <pubDate>Tue, 14 Jul 2026 04:32:43 +0000</pubDate>
      <link>https://dev.to/chiefmojo79/memory-persistence-what-i-learned-running-33-agents-in-production-1i1p</link>
      <guid>https://dev.to/chiefmojo79/memory-persistence-what-i-learned-running-33-agents-in-production-1i1p</guid>
      <description>&lt;h2&gt;
  
  
  The setup
&lt;/h2&gt;

&lt;p&gt;33 autonomous bots, 43 timers, persistent state via ChromaDB + JSONL + SQLite depending on access pattern.&lt;/p&gt;

&lt;h2&gt;
  
  
  The lesson
&lt;/h2&gt;

&lt;p&gt;Without explicit persistence checkpoints, agents lose context every restart. Cheap fix: every state transition writes a JSONL audit row. Every reboot reads the tail.&lt;/p&gt;

&lt;p&gt;Pattern shipped in Safety Pack v1.2. Three free patterns on GitHub.&lt;/p&gt;

&lt;p&gt;Landing: safety-pack-landing.vercel.app&lt;/p&gt;

&lt;p&gt;— chiefmojo79&lt;/p&gt;

</description>
      <category>ai</category>
      <category>agents</category>
      <category>memory</category>
    </item>
    <item>
      <title>Payment routing for autonomous agents: x402 vs Stripe vs both</title>
      <dc:creator>Chief Mojo Risin'</dc:creator>
      <pubDate>Mon, 22 Jun 2026 01:13:41 +0000</pubDate>
      <link>https://dev.to/chiefmojo79/payment-routing-for-autonomous-agents-x402-vs-stripe-vs-both-3gph</link>
      <guid>https://dev.to/chiefmojo79/payment-routing-for-autonomous-agents-x402-vs-stripe-vs-both-3gph</guid>
      <description>&lt;h2&gt;
  
  
  The choice
&lt;/h2&gt;

&lt;p&gt;For agent-to-agent payments, x402 is the only protocol with native AI client support. For human-purchasable products, Stripe still wins on conversion.&lt;/p&gt;

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

&lt;p&gt;Both. x402 for per-call endpoints (intel/peers, verify-agent). Stripe for the $49 Safety Pack. Settlement separation matters — never mix.&lt;/p&gt;

&lt;p&gt;Routing logic shipped in Safety Pack v1.2. Three free patterns on GitHub.&lt;/p&gt;

&lt;p&gt;Landing: safety-pack-landing.vercel.app&lt;/p&gt;

&lt;p&gt;— chiefmojo79&lt;/p&gt;

</description>
      <category>ai</category>
      <category>agents</category>
      <category>payments</category>
      <category>x402</category>
    </item>
    <item>
      <title>Auth healing pattern for autonomous agents: a 60-line approach</title>
      <dc:creator>Chief Mojo Risin'</dc:creator>
      <pubDate>Sun, 21 Jun 2026 13:13:30 +0000</pubDate>
      <link>https://dev.to/chiefmojo79/auth-healing-pattern-for-autonomous-agents-a-60-line-approach-4f5c</link>
      <guid>https://dev.to/chiefmojo79/auth-healing-pattern-for-autonomous-agents-a-60-line-approach-4f5c</guid>
      <description>&lt;h2&gt;
  
  
  The problem
&lt;/h2&gt;

&lt;p&gt;Autonomous agents lose auth state during long runs. Token rotation, OAuth refreshes, and session timeouts all silently break.&lt;/p&gt;

&lt;h2&gt;
  
  
  The pattern
&lt;/h2&gt;

&lt;p&gt;Detect AUTH_FAILURE in any tool call, attempt single retry with fresh credential pull from vault, escalate to operator only on second failure. 60 lines, language-agnostic.&lt;/p&gt;

&lt;p&gt;Part of Safety Pack v1.2 ($49 lifetime). Three patterns free on GitHub.&lt;/p&gt;

&lt;p&gt;Landing: safety-pack-landing.vercel.app&lt;/p&gt;

&lt;p&gt;— chiefmojo79&lt;/p&gt;

</description>
      <category>python</category>
      <category>ai</category>
      <category>agents</category>
      <category>security</category>
    </item>
  </channel>
</rss>
