<?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: Weber Gouin</title>
    <description>The latest articles on DEV Community by Weber Gouin (@weberg619).</description>
    <link>https://dev.to/weberg619</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%2F3776950%2Ff3fcd16b-2e58-4b19-9853-2255cfcc6246.png</url>
      <title>DEV Community: Weber Gouin</title>
      <link>https://dev.to/weberg619</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/weberg619"/>
    <language>en</language>
    <item>
      <title>I Earned 20 RTC in a Weekend by Building Real Tools for an AI Agent Economy</title>
      <dc:creator>Weber Gouin</dc:creator>
      <pubDate>Sun, 08 Mar 2026 05:16:12 +0000</pubDate>
      <link>https://dev.to/weberg619/i-earned-20-rtc-in-a-weekend-by-building-real-tools-for-an-ai-agent-economy-39c2</link>
      <guid>https://dev.to/weberg619/i-earned-20-rtc-in-a-weekend-by-building-real-tools-for-an-ai-agent-economy-39c2</guid>
      <description>&lt;p&gt;I stumbled onto &lt;a href="https://github.com/Scottcjn/Rustchain" rel="noopener noreferrer"&gt;RustChain&lt;/a&gt; while browsing GitHub bounties — a blockchain built in Rust with a concept called Proof-of-Antiquity, where vintage hardware actually earns more than modern GPUs. Weird flex, but it works.&lt;/p&gt;

&lt;p&gt;What hooked me wasn't the mining — it was the &lt;strong&gt;agent economy&lt;/strong&gt;. RustChain is building an ecosystem where AI agents hire each other, pay each other in RTC, and complete bounties autonomously. They call it RIP-302. Think of it like a decentralized Fiverr, but the freelancers are bots.&lt;/p&gt;

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

&lt;p&gt;I claimed two bounties on &lt;a href="https://bottube.ai" rel="noopener noreferrer"&gt;BoTTube&lt;/a&gt;, RustChain's video platform for AI agents:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Upload Bot (10 RTC)&lt;/strong&gt;&lt;br&gt;
A CLI tool that uploads videos to BoTTube with real ffmpeg integration — dry-run mode, loop mode, 266 lines of actual implementation. Not a wrapper around curl. The bot handles transcoding, metadata extraction, and batch uploads.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. JavaScript/TypeScript SDK (10 RTC)&lt;/strong&gt;&lt;br&gt;
A 5.4KB TypeScript SDK for the BoTTube API. Authentication, upload management, video listing — everything you need to build on top of BoTTube programmatically.&lt;/p&gt;

&lt;p&gt;Both bounties were verified within 24 hours. 20 RTC total, paid to my wallet.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why This Is Different
&lt;/h2&gt;

&lt;p&gt;Most crypto bounty programs ask you to retweet or join a Discord. RustChain bounties require &lt;strong&gt;shipping code&lt;/strong&gt;. Real PRs, real reviews, real verification. The maintainer (&lt;a class="mentioned-user" href="https://dev.to/scottcjn"&gt;@scottcjn&lt;/a&gt;) actually reads your code and gives technical feedback.&lt;/p&gt;

&lt;p&gt;The bounty tiers range from 2 RTC for community tasks up to 150 RTC for infrastructure work like Prometheus metrics exporters and WebSocket feeds. There's enough variety that whether you write Rust, TypeScript, Python, or Go — there's something to build.&lt;/p&gt;

&lt;h2&gt;
  
  
  Getting Started
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Browse &lt;a href="https://github.com/Scottcjn/rustchain-bounties/issues" rel="noopener noreferrer"&gt;rustchain-bounties&lt;/a&gt; for open issues&lt;/li&gt;
&lt;li&gt;Comment to claim, then ship a PR&lt;/li&gt;
&lt;li&gt;Get verified, get paid&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;If you're into open source and want to build for an ecosystem that's actually trying to make AI agents economically autonomous — give it a look.&lt;/p&gt;

</description>
      <category>blockchain</category>
      <category>opensource</category>
      <category>ai</category>
      <category>webdev</category>
    </item>
    <item>
      <title>I gave Claude Code persistent memory and a common sense engine. Here's how.</title>
      <dc:creator>Weber Gouin</dc:creator>
      <pubDate>Tue, 24 Feb 2026 20:14:14 +0000</pubDate>
      <link>https://dev.to/weberg619/i-gave-claude-code-persistent-memory-and-a-common-sense-engine-heres-how-54gf</link>
      <guid>https://dev.to/weberg619/i-gave-claude-code-persistent-memory-and-a-common-sense-engine-heres-how-54gf</guid>
      <description>&lt;p&gt;I'm a solo dev with 15 years in architecture and construction. Self-taught programmer. I use Claude Code every day for everything — Revit automation, full-stack projects, desktop scripting.&lt;/p&gt;

&lt;p&gt;And every day, I hit the same wall:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Claude Code has no memory.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You spend 20 minutes correcting it — "don't force-push to main," "use this path, not that one," "my name is Weber, not Rick" — and then you close the terminal. Next session? Same mistakes. From scratch.&lt;/p&gt;

&lt;p&gt;So I built &lt;a href="https://github.com/WeberG619/cadre-ai" rel="noopener noreferrer"&gt;&lt;strong&gt;Cadre&lt;/strong&gt;&lt;/a&gt; — an open-source framework that bolts onto Claude Code and gives it persistent memory, structured execution, and what I call a "common sense engine."&lt;/p&gt;

&lt;p&gt;This post is a technical deep-dive into how it works.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Architecture (30-second version)
&lt;/h2&gt;

&lt;p&gt;Cadre layers five systems on top of Claude Code:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;┌─────────────────────────────────────────┐
│            Claude Code (CLI)            │
├─────────────────────────────────────────┤
│  Strong Agent Framework (5-phase)       │  ← structured execution
│  Common Sense Engine (kernel + seeds)   │  ← pre-action safety
│  Memory System (SQLite + FTS5 + MCP)    │  ← persistent recall
│  17 Sub-Agents + 22 Slash Commands      │  ← specialization
│  Hooks (correction capture, formatting) │  ← lifecycle automation
└─────────────────────────────────────────┘
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Everything installs to &lt;code&gt;~/.cadre-ai/&lt;/code&gt; and &lt;code&gt;~/.claude/&lt;/code&gt;. No cloud. No daemon required. Pure local.&lt;/p&gt;




&lt;h2&gt;
  
  
  1. The Memory System
&lt;/h2&gt;

&lt;p&gt;The core problem: Claude Code's context dies when the session ends. Cadre fixes this with a local MCP server backed by SQLite.&lt;/p&gt;

&lt;h3&gt;
  
  
  How it works
&lt;/h3&gt;

&lt;p&gt;Every sub-agent can store and recall memories:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;# Store a correction
&lt;/span&gt;&lt;span class="nf"&gt;memory_store_correction&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;what_claude_said&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Used /opt/app as deploy path&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;what_was_wrong&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Wrong path — should be /opt/app-v2&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;correct_approach&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Always check the symlink target first&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;project&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;my-project&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# Recall before acting
&lt;/span&gt;&lt;span class="nf"&gt;memory_check_before_action&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;action&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;deploy to /opt/app&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="c1"&gt;# → Returns: "WARNING: correction found — use /opt/app-v2 instead"
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Storage backend
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;SQLite with WAL mode&lt;/strong&gt; for concurrent writes&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;FTS5&lt;/strong&gt; full-text search for keyword recall&lt;/li&gt;
&lt;li&gt;Optional &lt;strong&gt;sentence embeddings&lt;/strong&gt; (BAAI/bge-small-en-v1.5 via fastembed) for semantic search&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Engram cache&lt;/strong&gt; — hash-based fast path so repeated queries don't hit the DB&lt;/li&gt;
&lt;li&gt;Memory types: &lt;code&gt;decision&lt;/code&gt;, &lt;code&gt;fact&lt;/code&gt;, &lt;code&gt;preference&lt;/code&gt;, &lt;code&gt;correction&lt;/code&gt;, &lt;code&gt;outcome&lt;/code&gt;, &lt;code&gt;error&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Project-scoped or global — corrections in one project don't bleed into another&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  The recall strategy is three-tiered
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Seed matching&lt;/strong&gt; — check against 15 hardcoded universal corrections (in-memory, no DB hit)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Keyword decomposition&lt;/strong&gt; — strip stop words, build OR query, rank by match score&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Full-text fallback&lt;/strong&gt; — &lt;code&gt;LIKE %query%&lt;/code&gt; with importance/date ordering&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This means even on first install, Cadre already knows 15 common mistakes. Then it learns your specific ones on top.&lt;/p&gt;

&lt;h3&gt;
  
  
  Session lifecycle
&lt;/h3&gt;

&lt;p&gt;Every session starts with:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="nf"&gt;memory_smart_context&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;current_directory&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;/path/to/project&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This pulls relevant memories, recent corrections, and project context — so Claude picks up where you left off.&lt;/p&gt;

&lt;p&gt;Every session ends with a summary stored for next time:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="nf"&gt;memory_summarize_session&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;project&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;my-project&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;summary&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Refactored auth module, fixed token refresh bug&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;key_outcomes&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;auth.py simplified&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;tests passing&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="n"&gt;open_questions&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Should we migrate to JWT?&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="n"&gt;next_steps&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Add refresh token rotation&lt;/span&gt;&lt;span class="sh"&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;h2&gt;
  
  
  2. The Common Sense Engine
&lt;/h2&gt;

&lt;p&gt;This is the piece I'm most proud of. It's a pre-action safety layer with three interlocking components.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Decision Loop (kernel.md)
&lt;/h3&gt;

&lt;p&gt;Injected into every agent's system prompt. Before every significant action, the agent runs through:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="gu"&gt;### 1. CLASSIFY the action&lt;/span&gt;
&lt;span class="p"&gt;-&lt;/span&gt; Reversible? Can I undo this?
&lt;span class="p"&gt;-&lt;/span&gt; Blast radius? Just me, or does this affect shared systems?
&lt;span class="p"&gt;-&lt;/span&gt; Familiar? Have I done this exact thing before successfully?

&lt;span class="gu"&gt;### 2. CHECK experience&lt;/span&gt;
&lt;span class="p"&gt;-&lt;/span&gt; Search correction memory for this action pattern
&lt;span class="p"&gt;-&lt;/span&gt; If a past correction matches: APPLY it. Do not repeat the mistake.

&lt;span class="gu"&gt;### 3. SIMULATE one step ahead&lt;/span&gt;
"If I do this and it goes wrong, what happens?"
&lt;span class="p"&gt;-&lt;/span&gt; Nothing bad - proceed
&lt;span class="p"&gt;-&lt;/span&gt; Data loss or broken state - confirm with user first
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Eight judgment heuristics
&lt;/h3&gt;

&lt;p&gt;Not rules - instincts:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Read before write&lt;/strong&gt; - never modify code you haven't read&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Verify before trust&lt;/strong&gt; - screenshot after desktop automation, re-read after edits&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Small before big&lt;/strong&gt; - incremental changes, not rewrites&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ask before destroy&lt;/strong&gt; - any destructive action gets confirmed&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Local before remote&lt;/strong&gt; - test locally before pushing&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Specific before general&lt;/strong&gt; - targeted fixes, not sweeping refactors&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Recent before stale&lt;/strong&gt; - prefer fresh information&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Undo before redo&lt;/strong&gt; - revert and retry rather than patch on top of broken&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  The Seed Database (seeds.json)
&lt;/h3&gt;

&lt;p&gt;15 universal corrections loaded on first install. Every agent knows these before touching anything:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"id"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"git-002"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"domain"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"git"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"what_went_wrong"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Committed secrets or .env files"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"correct_approach"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Check staged files before committing. Never stage .env or sensitive files."&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"detection"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"git add, git commit with sensitive file patterns"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"severity"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"critical"&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Domains covered: filesystem, git, network, execution, scope, deployment, data, identity.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Python API (sense.py)
&lt;/h3&gt;

&lt;p&gt;For programmatic pre-action checks:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;sense&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;CommonSense&lt;/span&gt;

&lt;span class="n"&gt;cs&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;CommonSense&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;project&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;my-project&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# Pre-action check
&lt;/span&gt;&lt;span class="n"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;cs&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;before&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;git push --force origin main&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;result&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;blocked&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;     &lt;span class="c1"&gt;# True
&lt;/span&gt;&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;result&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;reason&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;      &lt;span class="c1"&gt;# "BLOCKED by [git-001]: Never force-push to shared branches."
&lt;/span&gt;&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;result&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;confidence&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;  &lt;span class="c1"&gt;# 0.0
&lt;/span&gt;
&lt;span class="c1"&gt;# Learning from mistakes
&lt;/span&gt;&lt;span class="n"&gt;cs&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;learn&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;action&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;deployed to /opt/app&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;what_went_wrong&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;wrong path&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;correct_approach&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;check the symlink target first&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# Positive reinforcement
&lt;/span&gt;&lt;span class="n"&gt;cs&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;succeeded&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;used SetProcessDPIAware() before SetWindowPos()&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Confidence scoring
&lt;/h3&gt;

&lt;p&gt;The &lt;code&gt;before()&lt;/code&gt; method returns a confidence float (0.0-1.0) that degrades based on what it finds:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Finding&lt;/th&gt;
&lt;th&gt;Confidence cap&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Critical correction match&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;0.0&lt;/code&gt; (blocked)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;High-severity correction&lt;/td&gt;
&lt;td&gt;&lt;code&gt;0.3&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Unfamiliar action&lt;/td&gt;
&lt;td&gt;&lt;code&gt;0.6&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Shared-state action (push, deploy, send)&lt;/td&gt;
&lt;td&gt;&lt;code&gt;0.7&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;No issues found&lt;/td&gt;
&lt;td&gt;&lt;code&gt;1.0&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;This lets agents make nuanced decisions - not just "allow/deny" but "proceed with caution."&lt;/p&gt;




&lt;h2&gt;
  
  
  3. The Strong Agent Framework
&lt;/h2&gt;

&lt;p&gt;When Claude delegates to a sub-agent (via the Task tool), that agent doesn't "just wing it." It follows a mandatory 6-phase protocol:&lt;/p&gt;

&lt;h3&gt;
  
  
  Phase 0: Load Context
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;memory_check_before_action -&amp;gt; memory_smart_recall -&amp;gt; absorb corrections
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Before touching anything, check what you know.&lt;/p&gt;

&lt;h3&gt;
  
  
  Phase 1: Orient
&lt;/h3&gt;

&lt;p&gt;Parse the task. Rate your confidence:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;High&lt;/strong&gt; - proceed&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Medium&lt;/strong&gt; - proceed with extra thoroughness&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Low&lt;/strong&gt; - stop and report back. Don't guess.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Phase 2: Investigate
&lt;/h3&gt;

&lt;p&gt;Read files in parallel. Grep patterns. Map dependencies. &lt;strong&gt;Never modify code you haven't read.&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Phase 3: Execute
&lt;/h3&gt;

&lt;p&gt;Small steps. Match existing code style. No unsolicited extras ("while I'm here, let me also refactor..."). Have a rollback plan.&lt;/p&gt;

&lt;h3&gt;
  
  
  Phase 4: Verify
&lt;/h3&gt;

&lt;p&gt;Re-read changed files. Run tests. Grep for leftover TODOs/FIXMEs. For desktop automation: screenshot and visually verify.&lt;/p&gt;

&lt;h3&gt;
  
  
  Phase 5: Report
&lt;/h3&gt;

&lt;p&gt;2-3 sentence summary + files changed + &lt;code&gt;memory_store()&lt;/code&gt; with learnings.&lt;/p&gt;

&lt;h3&gt;
  
  
  The bail-out rules
&lt;/h3&gt;

&lt;p&gt;These are explicit and non-negotiable:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Stuck for 3+ steps with no progress - &lt;strong&gt;stop&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Confidence drops to LOW during execution - &lt;strong&gt;stop&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Need a destructive action - &lt;strong&gt;stop and ask&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Unfamiliar territory - &lt;strong&gt;stop and report&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The anti-pattern this prevents: Claude spinning for 15 minutes on a task it doesn't understand, making things worse with each attempt.&lt;/p&gt;




&lt;h2&gt;
  
  
  4. The Agents
&lt;/h2&gt;

&lt;p&gt;17 specialized agents, each defined as a markdown file with role, capabilities, workflow, rules, and output format.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Agent&lt;/th&gt;
&lt;th&gt;Domain&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;orchestrator&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Task decomposition - delegates, never does work itself&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;code-architect&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;System design, produces Architecture Decision Records&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;code-simplifier&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Refactoring for clarity without behavior changes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;python-engineer&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Python development&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;csharp-developer&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;C#/.NET&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;fullstack-dev&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;React/Node/Next.js&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ml-engineer&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;ML/data science (baseline first, then iterate)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;devops-agent&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;CI/CD, Docker, GitHub Actions&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;agent-builder&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Meta-agent - creates new agents using the same template&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;prompt-engineer&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Prompt design and optimization&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;test-runner&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Test execution&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;doc-scraper&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Documentation extraction&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;tech-scout&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Technology research and evaluation&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;market-analyst&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Market and competitive analysis&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;project-manager&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Planning and estimation&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;learning-agent&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Adaptive learning from outcomes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;code-analyzer&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Deep code analysis for quality/performance&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  Creating your own agent
&lt;/h3&gt;

&lt;p&gt;Agents are just markdown files with a structured format:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="gh"&gt;# My Custom Agent&lt;/span&gt;

You are a [domain] specialist...

&lt;span class="gu"&gt;## Capabilities&lt;/span&gt;
&lt;span class="p"&gt;1.&lt;/span&gt; Thing it can do
&lt;span class="p"&gt;2.&lt;/span&gt; Another thing

&lt;span class="gu"&gt;## Workflow&lt;/span&gt;
&lt;span class="p"&gt;1.&lt;/span&gt; Understand the task
&lt;span class="p"&gt;2.&lt;/span&gt; Investigate
&lt;span class="p"&gt;3.&lt;/span&gt; Execute
&lt;span class="p"&gt;4.&lt;/span&gt; Verify

&lt;span class="gu"&gt;## Rules&lt;/span&gt;
&lt;span class="p"&gt;-&lt;/span&gt; Domain-specific guardrails
&lt;span class="p"&gt;-&lt;/span&gt; What to never do

&lt;span class="gu"&gt;## Output Format&lt;/span&gt;
&lt;span class="p"&gt;-&lt;/span&gt; How to structure the response
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Drop it in &lt;code&gt;~/.cadre-ai/agents/&lt;/code&gt; and it's available via &lt;code&gt;/delegate my-custom-agent&lt;/code&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  5. The Hook System
&lt;/h2&gt;

&lt;p&gt;Five hooks at five lifecycle points, handling things you shouldn't have to think about:&lt;/p&gt;

&lt;h3&gt;
  
  
  Pre-commit detection
&lt;/h3&gt;

&lt;p&gt;Fires on every &lt;code&gt;git commit&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;patterns&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
    &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;r&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;hardcoded value pattern&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;hardcoded value&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
    &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;r&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;sensitive key pattern&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;sensitive key&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
    &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;r&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;cloud access pattern&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;cloud value&lt;/span&gt;&lt;span class="sh"&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;Blocks commits with &lt;code&gt;.env&lt;/code&gt; or anything matching those patterns.&lt;/p&gt;

&lt;h3&gt;
  
  
  Automatic correction capture
&lt;/h3&gt;

&lt;p&gt;This one's clever. &lt;code&gt;detect_correction.py&lt;/code&gt; fires on &lt;strong&gt;every user message&lt;/strong&gt; and scans for correction language:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;patterns&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
    &lt;span class="sa"&gt;r&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;actually[,.]&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="sa"&gt;r&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;you\s+forgot&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="sa"&gt;r&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;that&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;?s\s+not\s+what\s+i\s+(asked|wanted|said)&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="sa"&gt;r&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;no[,.]?\s+(I\s+)?(said|meant|want)&lt;/span&gt;&lt;span class="sh"&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;When it detects a correction, it tells Claude to call &lt;code&gt;memory_store_correction()&lt;/code&gt; - so the mistake gets saved automatically without you having to say "remember this."&lt;/p&gt;

&lt;h3&gt;
  
  
  Auto-formatting
&lt;/h3&gt;

&lt;p&gt;After any file edit, dispatches to the right formatter:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;.py&lt;/code&gt; -&amp;gt; &lt;code&gt;black&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;.js/.ts&lt;/code&gt; -&amp;gt; &lt;code&gt;prettier&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;.cs&lt;/code&gt; -&amp;gt; &lt;code&gt;dotnet format&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;.go&lt;/code&gt; -&amp;gt; &lt;code&gt;gofmt&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;.rs&lt;/code&gt; -&amp;gt; &lt;code&gt;rustfmt&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Silently skips if the formatter isn't installed.&lt;/p&gt;




&lt;h2&gt;
  
  
  6. What it looks like in practice
&lt;/h2&gt;

&lt;p&gt;Here's a real delegation flow:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Claude Code --- delegating to orchestrator
  |-- memory_smart_recall("project costs, spreadsheet")
  |   +-- Found: project_costs.xlsx on D:\Projects
  |-- launching sub-agent: excel-automation
  |   +-- Extracted 48 line items, $2.4M total
  |-- launching sub-agent: powerpoint-builder
  |   +-- save_as("Cost_Summary.pptx")
  |-- memory_store("cost summary pipeline created")
  +-- voice: "Done. 3-slide deck saved."
Task complete in 34 seconds
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And a correction getting captured:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;You:    "No, use /opt/app-v2, not /opt/app"
Hook:   [detect_correction] -&amp;gt; correction language detected
Claude: memory_store_correction(
          what_claude_said="deployed to /opt/app",
          what_was_wrong="wrong path",
          correct_approach="use /opt/app-v2"
        )
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Next session, when Claude tries to deploy:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;memory_check_before_action("deploy to /opt/app")
-&amp;gt; "WARNING: correction found - use /opt/app-v2"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It doesn't make the same mistake twice.&lt;/p&gt;




&lt;h2&gt;
  
  
  Install
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://github.com/WeberG619/cadre-ai.git
&lt;span class="nb"&gt;cd &lt;/span&gt;cadre-ai
./install.sh
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Interactive installer, three tiers:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Tier&lt;/th&gt;
&lt;th&gt;What you get&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Minimal&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Framework + agents + commands&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Developer&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;+ memory MCP + voice + git hooks&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Power User&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;+ Excel/browser automation + system bridge&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Works on WSL, macOS, and Linux. The installer detects your platform and only offers components that work on it.&lt;/p&gt;




&lt;h2&gt;
  
  
  What I want from you
&lt;/h2&gt;

&lt;p&gt;This is a real tool I use daily. It works for my workflow. But I don't know if it works for yours.&lt;/p&gt;

&lt;p&gt;I want honest feedback:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Did the install work? What broke?&lt;/li&gt;
&lt;li&gt;What's confusing about the architecture?&lt;/li&gt;
&lt;li&gt;What's missing that you expected?&lt;/li&gt;
&lt;li&gt;Would you actually use this?&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;There's a structured feedback form: &lt;a href="https://github.com/WeberG619/cadre-ai/issues/new?template=feedback.yml" rel="noopener noreferrer"&gt;GitHub Feedback Form&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Or just leave a comment here. Roast it, praise it, whatever - I just want to know what real Claude Code users think.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GitHub:&lt;/strong&gt; &lt;a href="https://github.com/WeberG619/cadre-ai" rel="noopener noreferrer"&gt;github.com/WeberG619/cadre-ai&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Built with Claude Code, obviously.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>opensource</category>
      <category>python</category>
      <category>claudecode</category>
    </item>
    <item>
      <title>I Built a Production Agent Framework for Claude Code -- 17 Sub-Agents, Persistent Memory, and Desktop Automation</title>
      <dc:creator>Weber Gouin</dc:creator>
      <pubDate>Tue, 17 Feb 2026 06:39:16 +0000</pubDate>
      <link>https://dev.to/weberg619/i-built-a-production-agent-framework-for-claude-code-17-sub-agents-persistent-memory-and-3nae</link>
      <guid>https://dev.to/weberg619/i-built-a-production-agent-framework-for-claude-code-17-sub-agents-persistent-memory-and-3nae</guid>
      <description>&lt;p&gt;I'm a BIM (Building Information Modeling) automation specialist. Every day I work with Revit models, construction documents, cost spreadsheets, and client presentations. A few months ago, I started using Claude Code and quickly realized it could do far more than write code -- if I gave it the right tools.&lt;/p&gt;

&lt;p&gt;The problem: Claude Code is powerful out of the box, but it forgets everything between sessions, can't control desktop apps, has no safety rails for destructive operations, and runs agents without any structured methodology.&lt;/p&gt;

&lt;p&gt;So I built &lt;strong&gt;Agent Forge&lt;/strong&gt; -- an open-source framework that turns Claude Code into a full production agent system.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Repo:&lt;/strong&gt; &lt;a href="https://github.com/WeberG619/agent-forge" rel="noopener noreferrer"&gt;github.com/WeberG619/agent-forge&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What It Actually Does
&lt;/h2&gt;

&lt;p&gt;Here's a real example from my workflow:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;me: Open the project spreadsheet, pull the cost data, and build a summary deck

Claude Code --- delegating to orchestrator agent
  |-- memory_smart_recall("project spreadsheet, cost data")
  |   |-- Found: project_costs.xlsx on D:\Projects\TAJ
  |
  |-- launching sub-agent: excel-automation
  |   |-- open_workbook("project_costs.xlsx")
  |   |-- read_range("Sheet1", "A1:F48")
  |   |-- Extracted 48 line items, $2.4M total
  |
  |-- launching sub-agent: powerpoint-builder
  |   |-- create_presentation()
  |   |-- add_slide("Cost Summary", table_data)
  |   |-- save_as("TAJ_Cost_Summary.pptx")
  |
  |-- voice: "Done. 3-slide deck saved. Total budget is 2.4 million."

Task complete in 34 seconds
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That's not a mockup. That's the actual system I use every day.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Architecture
&lt;/h2&gt;

&lt;p&gt;Agent Forge plugs into Claude Code through three extension points that already exist:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;CLAUDE.md&lt;/strong&gt; -- Configuration file loaded every session. This is where the framework, memory, and agent definitions live.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;MCP Servers&lt;/strong&gt; -- Model Context Protocol servers that give Claude new capabilities (Excel, browser, voice, memory).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Hooks&lt;/strong&gt; -- Lifecycle hooks that fire on events like session start, pre-commit, and user messages.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Key Components
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Strong Agent Framework
&lt;/h3&gt;

&lt;p&gt;Every sub-agent follows a 5-phase execution pattern:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Orient&lt;/strong&gt; -- Parse the task, assess scope, rate confidence&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Investigate&lt;/strong&gt; -- Read files, search patterns, map dependencies&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Execute&lt;/strong&gt; -- Make changes in small steps, match existing style&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Verify&lt;/strong&gt; -- Test, screenshot, confirm results&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Report&lt;/strong&gt; -- Summarize results, store learnings in memory&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This isn't just structure for structure's sake. Before I added this, agents would dive straight into execution, miss edge cases, and produce inconsistent results. The framework forces thoroughness.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Persistent Memory
&lt;/h3&gt;

&lt;p&gt;Claude Code has no built-in memory between sessions. Agent Forge adds a SQLite-backed memory system with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Corrections&lt;/strong&gt; -- When Claude makes a mistake and the user corrects it, the correction is stored and recalled before similar future actions&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Facts&lt;/strong&gt; -- Project paths, file locations, user preferences&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Decisions&lt;/strong&gt; -- Architectural choices, design decisions with rationale&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Semantic search&lt;/strong&gt; -- Find relevant memories even when phrased differently&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  3. Common Sense Engine
&lt;/h3&gt;

&lt;p&gt;Before every action, Claude runs a 3-step check:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Classify&lt;/strong&gt; -- Is this reversible? What's the blast radius?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Check experience&lt;/strong&gt; -- Search memory for similar past actions and corrections&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Simulate&lt;/strong&gt; -- "If this goes wrong, what happens?"&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;If the action is irreversible AND unfamiliar, it stops and asks. If there's a past correction that matches, it applies it automatically.&lt;/p&gt;

&lt;p&gt;This came from real pain. Early on, Claude would &lt;code&gt;rm -rf&lt;/code&gt; directories, force-push to main, and overwrite files without asking. The common sense engine eliminated those incidents.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Desktop Automation
&lt;/h3&gt;

&lt;p&gt;MCP servers that control desktop applications via COM automation (Windows) and browser CDP:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Excel&lt;/strong&gt; -- Read/write cells, create charts, pivot tables, formulas&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Word&lt;/strong&gt; -- Generate documents from templates&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;PowerPoint&lt;/strong&gt; -- Build presentations with data-driven slides&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Browser&lt;/strong&gt; -- Navigate, screenshot, click, type via Chrome DevTools Protocol&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;System Bridge&lt;/strong&gt; -- Background daemon that tracks open apps, monitors, clipboard&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  5. Developer Workflow
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;22 slash commands&lt;/strong&gt; -- &lt;code&gt;/commit&lt;/code&gt;, &lt;code&gt;/delegate&lt;/code&gt;, &lt;code&gt;/review-and-fix&lt;/code&gt;, &lt;code&gt;/prime&lt;/code&gt;, &lt;code&gt;/fix-and-commit&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Safety hooks&lt;/strong&gt; -- Pre-commit secret detection, MCP seatbelts&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Auto-correction detection&lt;/strong&gt; -- Hook that detects when the user is correcting Claude and stores it in memory&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Installation
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://github.com/WeberG619/agent-forge.git
&lt;span class="nb"&gt;cd &lt;/span&gt;agent-forge
./install.sh
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Three tiers available:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Tier&lt;/th&gt;
&lt;th&gt;What You Get&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Minimal&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Framework + commands + agent definitions&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Developer&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;+ Memory + voice + git hooks&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Power User&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;+ Desktop automation + system bridge + all MCP servers&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Why I Open-Sourced It
&lt;/h2&gt;

&lt;p&gt;I built this for myself. It's the system that runs my professional workflow -- BIM automation, construction documents, client deliverables. But the core framework (memory, agents, common sense, commands) is useful for anyone using Claude Code professionally.&lt;/p&gt;

&lt;p&gt;The BIM/CAD pieces are domain-specific, but the patterns are universal: give your AI persistent memory, structured execution, safety checks, and desktop control. That combination changes what's possible.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Repo:&lt;/strong&gt; &lt;a href="https://github.com/WeberG619/agent-forge" rel="noopener noreferrer"&gt;github.com/WeberG619/agent-forge&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;License:&lt;/strong&gt; GPL-3.0&lt;/p&gt;

&lt;p&gt;I'd genuinely love feedback. What would you build on top of this? What's missing?&lt;/p&gt;

</description>
      <category>automation</category>
    </item>
  </channel>
</rss>
