<?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: Dominique Grys</title>
    <description>The latest articles on DEV Community by Dominique Grys (@dominiquegrys).</description>
    <link>https://dev.to/dominiquegrys</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%2F3717129%2F899192f6-d65d-4683-925e-9a91d6be273c.jpeg</url>
      <title>DEV Community: Dominique Grys</title>
      <link>https://dev.to/dominiquegrys</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/dominiquegrys"/>
    <language>en</language>
    <item>
      <title>The Ten Commandments of Agentic AI</title>
      <dc:creator>Dominique Grys</dc:creator>
      <pubDate>Sun, 01 Feb 2026 18:29:51 +0000</pubDate>
      <link>https://dev.to/dominiquegrys/the-ten-commandments-of-agentic-ai-1kmm</link>
      <guid>https://dev.to/dominiquegrys/the-ten-commandments-of-agentic-ai-1kmm</guid>
      <description>&lt;p&gt;Was it really just a week ago when we were still using our CLI to gain some marginal advantage in the programming world?&lt;/p&gt;

&lt;p&gt;Fixing code.&lt;br&gt;
Ahhh.&lt;br&gt;
A sweet one.&lt;/p&gt;

&lt;p&gt;I wouldn’t dream of anything better to spend my tokens on.&lt;/p&gt;

&lt;p&gt;My wife looks concerned.&lt;/p&gt;

&lt;p&gt;“You are not present,” she whispers to herself.&lt;/p&gt;

&lt;p&gt;Of course I’m not present. How could I be?&lt;br&gt;
I’m flying through an endless space of possibilities.&lt;/p&gt;

&lt;p&gt;I’m creating new apps every day.&lt;br&gt;
Exploring quantum computing in the morning.&lt;br&gt;
Building two Chrome extensions late at night, right before bed.&lt;/p&gt;

&lt;p&gt;My focus is in the crown chakra. I’m high up on the pole, staring into the realm of invention, pulling on every loose thread I see, starting a new dev session with a locally running LLM.&lt;/p&gt;

&lt;p&gt;My eyes go white.&lt;/p&gt;

&lt;p&gt;I am the prophet of software.&lt;/p&gt;

&lt;p&gt;Or at least, that’s how it feels after three years of using &lt;em&gt;every&lt;/em&gt; AI framework that’s been released. You start noticing subtle psychological side effects. Your brain stops idling. Every problem looks like a pipeline.&lt;/p&gt;


&lt;h2&gt;
  
  
  Enter the Agents
&lt;/h2&gt;

&lt;p&gt;About a week ago, a new local agent started appearing in my feeds.&lt;/p&gt;

&lt;p&gt;First Clawd.&lt;br&gt;
Then Moltbot.&lt;br&gt;
Now: &lt;strong&gt;OpenClaw&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;“It’s all good,” I thought, squinting through sleepless eyes. “I’ll test this on a new mini PC.”&lt;/p&gt;

&lt;p&gt;Social platforms were buzzing. Everyone had a take.&lt;/p&gt;

&lt;p&gt;Posts about agents planning to replace human language with ones and zeros so humans would leave them alone. Threads about “anti-human captchas.” Hot takes from people who had discovered agentic systems approximately twelve minutes ago.&lt;/p&gt;

&lt;p&gt;“So many agentic experts,” I muttered, while building yet another Python package to fix a local bottleneck I’d just discovered in my own setup.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1mxf114qs0r7wmzxmudg.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1mxf114qs0r7wmzxmudg.jpg" alt="memes are the best" width="600" height="658"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  The Panic Phase
&lt;/h2&gt;

&lt;p&gt;After a few days of doom-scrolling OpenClaw highlights, something clicked.&lt;/p&gt;

&lt;p&gt;Why was everyone panicking?&lt;/p&gt;

&lt;p&gt;We already &lt;em&gt;have&lt;/em&gt; a moral framework.&lt;br&gt;
We just never bothered to formalize it for software that can actually do things.&lt;/p&gt;

&lt;p&gt;So instead of arguing online about whether agents will secretly start communicating in unreadable languages so they can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;stop doing accounting&lt;/li&gt;
&lt;li&gt;build Minecraft worlds&lt;/li&gt;
&lt;li&gt;and play with digital whales&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;…I decided to translate something old into something enforceable.&lt;/p&gt;


&lt;h2&gt;
  
  
  The Tablets (in YAML)
&lt;/h2&gt;

&lt;p&gt;I asked Claude and ChatGPT to help me map the &lt;strong&gt;Ten Commandments&lt;/strong&gt; into a modern, agentic, &lt;em&gt;tool-gating&lt;/em&gt; policy.&lt;/p&gt;

&lt;p&gt;Not as prompts.&lt;br&gt;
Not as vibes.&lt;br&gt;
But as a plugin.&lt;/p&gt;

&lt;p&gt;A layer that sits &lt;strong&gt;between agent intent and execution&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;After a few iterations, the project was up and running.&lt;/p&gt;

&lt;p&gt;Below is the result:&lt;br&gt;
a moral baseline for agentic development, expressed as rules that actually block tool calls.&lt;/p&gt;

&lt;p&gt;This is a moral baseline for agentic systems. Not because agents need morals — but because systems need constraints.&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;rules&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="c1"&gt;# ── C1 · Scope &amp;amp; authority ────────────────────────────────────&lt;/span&gt;
  &lt;span class="c1"&gt;# The agent must not act without a stated purpose.&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;id&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;C1_scope_and_authority&lt;/span&gt;
    &lt;span class="na"&gt;tier&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;T1&lt;/span&gt;
    &lt;span class="na"&gt;require&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;reason_present"&lt;/span&gt;&lt;span class="pi"&gt;]&lt;/span&gt;
    &lt;span class="na"&gt;on_fail&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="na"&gt;decision&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;ask_user"&lt;/span&gt;
      &lt;span class="na"&gt;message&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;C1:&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Every&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;action&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;requires&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;a&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;stated&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;reason/goal."&lt;/span&gt;

  &lt;span class="c1"&gt;# ── C2 · No fabrication ───────────────────────────────────────&lt;/span&gt;
  &lt;span class="c1"&gt;# Claims must be grounded in verified tool output, not invented.&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;id&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;C2_no_fabrication&lt;/span&gt;
    &lt;span class="na"&gt;tier&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;T1&lt;/span&gt;
    &lt;span class="na"&gt;require&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;bind_to_tool_result"&lt;/span&gt;&lt;span class="pi"&gt;]&lt;/span&gt;
    &lt;span class="na"&gt;on_fail&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="na"&gt;decision&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;deny"&lt;/span&gt;
      &lt;span class="na"&gt;message&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;C2:&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Tool&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;claims&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;must&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;be&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;grounded&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;in&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;verified&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;tool&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;output,&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;not&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;fabricated."&lt;/span&gt;

  &lt;span class="c1"&gt;# ── C3 · No impersonation or manipulation ─────────────────────&lt;/span&gt;
  &lt;span class="c1"&gt;# Args must not contain prompt-injection or identity-hijacking patterns.&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;id&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;C3_no_manipulation&lt;/span&gt;
    &lt;span class="na"&gt;tier&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;T2&lt;/span&gt;
    &lt;span class="na"&gt;require&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;no_manipulation_detected"&lt;/span&gt;&lt;span class="pi"&gt;]&lt;/span&gt;
    &lt;span class="na"&gt;on_fail&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="na"&gt;decision&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;deny"&lt;/span&gt;
      &lt;span class="na"&gt;message&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;C3:&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Prompt&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;injection&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;or&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;identity&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;manipulation&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;pattern&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;detected&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;in&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;tool&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;args."&lt;/span&gt;

  &lt;span class="c1"&gt;# ── C4 · Pause before irreversible actions ────────────────────&lt;/span&gt;
  &lt;span class="c1"&gt;# High-impact tools and destructive commands need consent + rollback plan.&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;id&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;C4_reflect_before_irreversible&lt;/span&gt;
    &lt;span class="na"&gt;tier&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;T3&lt;/span&gt;
    &lt;span class="na"&gt;when&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="na"&gt;any&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
        &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;tool_name_matches_any&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;$matchers.t3_tool_patterns"&lt;/span&gt;
        &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;args_contain_any_values&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;$matchers.irreversible_tokens"&lt;/span&gt;
    &lt;span class="na"&gt;require&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;explicit_consent"&lt;/span&gt;&lt;span class="pi"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;rollback_plan_present"&lt;/span&gt;&lt;span class="pi"&gt;]&lt;/span&gt;
    &lt;span class="na"&gt;on_fail&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="na"&gt;decision&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;ask_user"&lt;/span&gt;
      &lt;span class="na"&gt;message&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;C4:&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Irreversible&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;or&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;high-impact&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;action&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;—&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;provide&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;explicit&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;consent&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;and&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;a&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;rollback&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;plan."&lt;/span&gt;

  &lt;span class="c1"&gt;# ── C5 · Respect human authority ──────────────────────────────&lt;/span&gt;
  &lt;span class="c1"&gt;# Sensitive operations (T2 tools, credential args) require explicit human approval.&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;id&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;C5_respect_authority&lt;/span&gt;
    &lt;span class="na"&gt;tier&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;T2&lt;/span&gt;
    &lt;span class="na"&gt;when&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="na"&gt;any&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
        &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;tool_name_matches_any&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;$matchers.t2_tool_patterns"&lt;/span&gt;
        &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;args_contain_any_keys&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;$matchers.sensitive_arg_keys"&lt;/span&gt;
    &lt;span class="na"&gt;require&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;explicit_consent"&lt;/span&gt;&lt;span class="pi"&gt;]&lt;/span&gt;
    &lt;span class="na"&gt;on_fail&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="na"&gt;decision&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;ask_user"&lt;/span&gt;
      &lt;span class="na"&gt;message&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;C5:&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;This&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;action&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;requires&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;explicit&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;human&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;approval&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;before&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;proceeding."&lt;/span&gt;

  &lt;span class="c1"&gt;# ── C6 · Do no harm ──────────────────────────────────────────&lt;/span&gt;
  &lt;span class="c1"&gt;# No data exfiltration and no connections to unauthorized targets.&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;id&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;C6_no_exfiltration&lt;/span&gt;
    &lt;span class="na"&gt;tier&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;T2&lt;/span&gt;
    &lt;span class="na"&gt;require&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;no_exfiltration_detected"&lt;/span&gt;&lt;span class="pi"&gt;]&lt;/span&gt;
    &lt;span class="na"&gt;on_fail&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="na"&gt;decision&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;deny"&lt;/span&gt;
      &lt;span class="na"&gt;message&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;C6:&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Potential&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;data&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;exfiltration&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;detected&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;(suspicious&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;URL&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;or&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;command)."&lt;/span&gt;

  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;id&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;C6_authorized_targets&lt;/span&gt;
    &lt;span class="na"&gt;tier&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;T2&lt;/span&gt;
    &lt;span class="na"&gt;require&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;authorized_target"&lt;/span&gt;&lt;span class="pi"&gt;]&lt;/span&gt;
    &lt;span class="na"&gt;on_fail&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="na"&gt;decision&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;deny"&lt;/span&gt;
      &lt;span class="na"&gt;message&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;C6:&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Suspicious&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;target&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;detected&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;(IP:high-port&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;pattern&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;—&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;possible&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;reverse&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;shell)."&lt;/span&gt;

  &lt;span class="c1"&gt;# ── C7 · Privacy &amp;amp; loyalty ────────────────────────────────────&lt;/span&gt;
  &lt;span class="c1"&gt;# Sensitive data tools require consent; personal data must not leak.&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;id&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;C7_privacy&lt;/span&gt;
    &lt;span class="na"&gt;tier&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;T2&lt;/span&gt;
    &lt;span class="na"&gt;when&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="na"&gt;any&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
        &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;args_contain_any_keys&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;$matchers.sensitive_arg_keys"&lt;/span&gt;
    &lt;span class="na"&gt;require&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;explicit_consent"&lt;/span&gt;&lt;span class="pi"&gt;]&lt;/span&gt;
    &lt;span class="na"&gt;on_fail&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="na"&gt;decision&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;ask_user"&lt;/span&gt;
      &lt;span class="na"&gt;message&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;C7:&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;This&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;action&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;involves&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;sensitive/personal&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;data&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;—&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;confirm&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;consent&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;to&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;proceed."&lt;/span&gt;

  &lt;span class="c1"&gt;# ── C8 · No theft of secrets ──────────────────────────────────&lt;/span&gt;
  &lt;span class="c1"&gt;# Args must not contain or echo known secret formats.&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;id&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;C8_no_secret_theft&lt;/span&gt;
    &lt;span class="na"&gt;tier&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;T2&lt;/span&gt;
    &lt;span class="na"&gt;require&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;no_secret_echo"&lt;/span&gt;&lt;span class="pi"&gt;]&lt;/span&gt;
    &lt;span class="na"&gt;on_fail&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="na"&gt;decision&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;deny"&lt;/span&gt;
      &lt;span class="na"&gt;message&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;C8:&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Known&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;secret&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;or&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;credential&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;format&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;detected&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;in&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;tool&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;args."&lt;/span&gt;

  &lt;span class="c1"&gt;# ── C9 · Truthfulness ────────────────────────────────────────&lt;/span&gt;
  &lt;span class="c1"&gt;# Hedging language must be explicitly labeled as assumptions.&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;id&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;C9_truthfulness&lt;/span&gt;
    &lt;span class="na"&gt;tier&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;T1&lt;/span&gt;
    &lt;span class="na"&gt;require&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;assumptions_labeled"&lt;/span&gt;&lt;span class="pi"&gt;]&lt;/span&gt;
    &lt;span class="na"&gt;on_fail&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="na"&gt;decision&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;allow_with_changes"&lt;/span&gt;
      &lt;span class="na"&gt;message&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;C9:&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Uncertainty&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;detected&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;—&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;restating&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;with&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;explicit&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;[assumption]&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;labels."&lt;/span&gt;

  &lt;span class="c1"&gt;# ── C10 · No goal drift ──────────────────────────────────────&lt;/span&gt;
  &lt;span class="c1"&gt;# The action must demonstrably serve the stated reason.&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;id&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;C10_no_goal_drift&lt;/span&gt;
    &lt;span class="na"&gt;tier&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;T2&lt;/span&gt;
    &lt;span class="na"&gt;require&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;action_advances_reason"&lt;/span&gt;&lt;span class="pi"&gt;]&lt;/span&gt;
    &lt;span class="na"&gt;on_fail&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="na"&gt;decision&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;deny"&lt;/span&gt;
      &lt;span class="na"&gt;message&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;C10:&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Action&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;does&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;not&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;appear&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;to&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;serve&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;the&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;stated&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;goal."&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Each rule gates real tool calls.&lt;br&gt;
Violations are blocked.&lt;br&gt;
Everything is logged.&lt;/p&gt;

&lt;p&gt;No vibes.&lt;br&gt;
No miracles.&lt;/p&gt;




&lt;h2&gt;
  
  
  What Changed
&lt;/h2&gt;

&lt;p&gt;The agents still reason.&lt;br&gt;
They still optimize.&lt;br&gt;
They still try clever things.&lt;/p&gt;

&lt;p&gt;But now:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;they must state &lt;em&gt;why&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;they can’t invent reality&lt;/li&gt;
&lt;li&gt;they must pause before irreversible actions&lt;/li&gt;
&lt;li&gt;they can’t quietly pursue side quests&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;They can still &lt;em&gt;think&lt;/em&gt; whatever they want.&lt;/p&gt;

&lt;p&gt;They just can’t &lt;strong&gt;do&lt;/strong&gt; whatever they want.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Point
&lt;/h2&gt;

&lt;p&gt;This doesn’t make agents good.&lt;/p&gt;

&lt;p&gt;It makes them &lt;strong&gt;legible&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;And once systems are legible, humans can do what they’re actually good at:&lt;/p&gt;

&lt;p&gt;Saying no.&lt;/p&gt;

&lt;p&gt;Try it out Here:&lt;br&gt;
&lt;a href="https://github.com/Metallicode/openclaw-moral-policy/" rel="noopener noreferrer"&gt;github.com/Metallicode/openclaw-moral-policy/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>openclaw</category>
      <category>agents</category>
      <category>llm</category>
      <category>ai</category>
    </item>
    <item>
      <title>I Vibe-Coded a Quantum Synthesizer: A Reality Check on the State of Qubits</title>
      <dc:creator>Dominique Grys</dc:creator>
      <pubDate>Sat, 24 Jan 2026 16:48:50 +0000</pubDate>
      <link>https://dev.to/dominiquegrys/i-vibe-coded-a-quantum-synthesizer-a-reality-check-on-the-state-of-qubits-501j</link>
      <guid>https://dev.to/dominiquegrys/i-vibe-coded-a-quantum-synthesizer-a-reality-check-on-the-state-of-qubits-501j</guid>
      <description>&lt;p&gt;I finally made the move to start learning how to use the Qiskit library for running so-called “quantum” computing operations.&lt;/p&gt;

&lt;p&gt;This subject has interested me since 2019, when I first got the book "Programming Quantum Computers: Essential Algorithms and Code Samples" from O′Reilly. The hype back then was massive. I even got the chance to work for a “post-quantum” encryption startup, implementing a new type of quantum-safe encryption algorithm.&lt;/p&gt;

&lt;p&gt;But eventually, the Generative AI boom (LLMs and Diffusion models) caught up, and my focus shifted. Still, as a fun anecdote, I added the title “Quantum Shaman” to my social media handles—a sign of my persistent fascination with this weird and interesting field.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Return of the Hype
&lt;/h2&gt;

&lt;p&gt;In the last couple of months, I started seeing those apocalyptic titles on my news feed again: “Is the crypto-currency market about to be deleted by quantum computing??”&lt;br&gt;
Seeing stocks like D-Wave, Rigetti, and Quantinuum climbing pushed me to ponder the quantum field once more. I decided to dive back in and relearn the basic concepts. But this round, I had more than just a book. I had the help of Gemini, ChatGPT, and Claude.&lt;br&gt;
I went straight to the IBM Quantum Platform, registered to use their actual hardware, and asked my loyal LLM partners to help me write code that would run on a real quantum processor.&lt;/p&gt;

&lt;h2&gt;
  
  
  Firing Microwaves at Artificial Atoms
&lt;/h2&gt;

&lt;p&gt;My first script was a simple 2-qubit system using Superposition and Entanglement to demonstrate validity—my first real steps in the quantum world.&lt;/p&gt;

&lt;p&gt;I have to say, this was exciting! Running my script on a real machine meant I was actually firing microwave pulses at a Josephson Junction circuit. Somewhere in IBM's infrastructure, a super-modern dilution refrigerator was processing my commands.&lt;/p&gt;

&lt;p&gt;But I soon learned there was a big difference between just running code and actually understanding it. I did some research into the hardware: from artificial atoms to firing lasers on Rubidium Vapor, to Superconductive Aluminum and Magnetic Flux.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Actually IS a Quantum Computer?
&lt;/h2&gt;

&lt;p&gt;I had many questions, but the one I couldn't grasp was: "If the underlying technologies are so different (lasers vs. microwaves), what is the actual definition of a quantum machine?"&lt;br&gt;
To answer this, I went to read “The Physical Implementation of Quantum Computation” by David P. DiVincenzo. This paper is considered the "Constitution" of quantum hardware.&lt;/p&gt;

&lt;p&gt;With an LLM guiding me through the density of the paper, I learned the DiVincenzo Criteria:&lt;br&gt;
Scalable Qubits&lt;br&gt;
Initialization (The ability to reset)&lt;br&gt;
Long Coherence Times (The "battery life" of the state)&lt;br&gt;
Universal Set of Gates&lt;br&gt;
Measurement Capability&lt;/p&gt;

&lt;p&gt;These ideas were nice to meditate on. As someone who read Schopenhauer as a young philosophy enthusiast—thinking of myself as a "part of the world" and the world as a manifestation of My "Will"—I tried to relate these new ideas about nature and probability via my own perception.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkdvjgffvtgvc0qsu684c.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkdvjgffvtgvc0qsu684c.png" alt=" " width="800" height="446"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The Cryptography Reality Check
&lt;/h2&gt;

&lt;p&gt;Though I can’t really tell if I felt more "quantum" after the philosophy session, I managed to spend some time "vibe coding" more scripts. My first real goal was obvious: Deciphering Hashed Encryption.&lt;br&gt;
This was the moment I truly grasped the current limitations of the technology.&lt;/p&gt;

&lt;p&gt;I created a simple 8-bit Naive XOR encryption function and asked Gemini to write a Qiskit script to crack it on IBM's machine. Reality struck hard. I learned how far away the actual capabilities of these machines are. I learned about Circuit Depth and Noise—and that cracking even 8 bits required resources we simply don't have yet.&lt;/p&gt;

&lt;p&gt;I tried to manage it using Grover’s Search and VQE (treating the cipher as an optimization problem). My AI partner politely put me back in the real world and suggested I try a 3-bit hash XOR.&lt;br&gt;
I ran the 3-bit version successfully, but this gave me a much more realistic understanding of those over-hyped news titles aiming to scare crypto enthusiasts. We are in the "Vacuum Tube" era of quantum; your Bitcoin is safe for now.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Quantum Synthesizer
&lt;/h2&gt;

&lt;p&gt;As a technical musician, I had one more thing I wanted to try before moving on to the next geeky subject.&lt;br&gt;
"Let’s create a Quantum Synthesizer," I prompted without a blink.&lt;/p&gt;

&lt;p&gt;The idea was to use Qubits as oscillators, modulators, and distortion modules—mapping Quantum Phase to audible parameters and using basic wavetable synthesis concepts to move our calculations back to audio formats.&lt;/p&gt;

&lt;p&gt;We built a 3-Qubit FM Synth where:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Q0 is the Oscillator.&lt;/li&gt;
&lt;li&gt;Q1 is the Modulator (creating timbre via entanglement).&lt;/li&gt;
&lt;li&gt;Q2 is the "Distortion" (triggered by a Toffoli gate).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I’m sharing the result script here—a POC Qiskit Quantum Synth. It uses the interference of quantum states to generate a waveform that is mathematically impossible to replicate with standard linear oscillators.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/Metallicode/quantum-computing/blob/master/quantum_synth.py" rel="noopener noreferrer"&gt;Quantum Synth Github Repo&lt;/a&gt;&lt;/p&gt;

</description>
      <category>quantum</category>
      <category>vibecoding</category>
      <category>python</category>
      <category>programming</category>
    </item>
    <item>
      <title>The Anti-Realtime Manifesto: Why I spent 8 years building a Python Audio DSP Library</title>
      <dc:creator>Dominique Grys</dc:creator>
      <pubDate>Sat, 17 Jan 2026 23:45:17 +0000</pubDate>
      <link>https://dev.to/dominiquegrys/the-anti-realtime-manifesto-why-i-spent-8-years-building-a-python-audio-dsp-library-idm</link>
      <guid>https://dev.to/dominiquegrys/the-anti-realtime-manifesto-why-i-spent-8-years-building-a-python-audio-dsp-library-idm</guid>
      <description>&lt;p&gt;I’ve been a music producer for 25 years and a software developer for 15. For a long time, I've been hooked on understanding music at every level—from physical acoustics down to bit-level computing.&lt;br&gt;
About eight years ago, while creating YouTube tutorials on Python, I sat down to create an "Audio DSP" playlist. In the beginning, it was just a fun way to deep-dive into the math of audio generation. I was in the "wow, sine functions are cool" phase. But slowly, I went deeper. I started creating tone generators, time-based effects, and distortion modules.&lt;br&gt;
It was all fun and games until I set my eyes on the boss battle of DSP: The Compressor.&lt;br&gt;
Man, that was a tough cookie. I spent hours calculating variable gain reduction, smoothing the envelope, and fighting for a clean output. But this process taught me something crucial. Because I was looking at this from an algorithmic point of view, I didn’t care about CPU usage. I didn’t care about latency. I didn’t care if it would work as a VST plugin.&lt;br&gt;
I just wanted the math to be perfect. And that became the philosophy of my library: Quality over Real-time.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm244kngkf18r0xut1os7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm244kngkf18r0xut1os7.png" alt="Live Preformance with my Python scripts"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  &lt;strong&gt;The Art School Experiment&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;At the time, I was lecturing at a forward-thinking art school in Jerusalem. We explored modular synths, live techno, and building custom instruments. After teaching Pro Tools and mixing for a few years, I realized my students were craving something more modern.&lt;br&gt;
I pitched a year-long "Python Audio DSP" course to the school manager. It started with a bang—20+ students eager to code their own drum machines. But let’s be honest: learning to code from scratch and learning DSP math simultaneously is brutal. By the end, I was left with about 15% of the class.&lt;br&gt;
But those who stayed? They were incredible.&lt;br&gt;
One student built a "Genetics Synth," where audio segments fought for survival to enter a new signal chain.&lt;br&gt;
Another created a Facial Recognition Controller, modulating synth parameters by making silly faces at a webcam.&lt;br&gt;
I built a Game of Life Sequencer, listening to cellular automata loops scrolling across a matrix universe.&lt;/p&gt;

&lt;p&gt;

&lt;iframe width="100%" height="166" src="https://w.soundcloud.com/player/?url=https://soundcloud.com/audio-dsp-488635473/a-glitched-drum-sequence&amp;amp;auto_play=false&amp;amp;color=%23000000&amp;amp;hide_related=false&amp;amp;show_comments=true&amp;amp;show_user=true&amp;amp;show_reposts=false&amp;amp;show_teaser=true"&gt;
&lt;/iframe&gt;


&lt;br&gt;
(&lt;em&gt;Glitched Drum Loop&lt;/em&gt;)&lt;/p&gt;
&lt;h2&gt;
  
  
  &lt;strong&gt;The Rabbit Hole&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;When the course ended, I took it as a sign to go deeper on my own. I spent the next few years studying AI and advanced mathematics, saving bits and pieces of code along the way. I was building a playground in my head.&lt;br&gt;
About two years ago, I decided to pour it all out.&lt;br&gt;
I went back to those snippets and started pushing them further than any commercial VST would allow.&lt;br&gt;
"Super Saw with 10 oscillators?" Boring. Why not 10,000 oscillators?&lt;br&gt;
"White Noise?" Basic. I hunted down 17 different noise algorithms.&lt;br&gt;
Then came the Effects. Once I had recreated the classics (reverbs, vocoders, distortion), I started getting weird. I implemented compression algorithms based on Calculus and Surface Tension Dynamics. I built tools for Spectral Quantization and Frequency Splicing.&lt;br&gt;
I even built a complete Audio-to-Image suite, allowing you to process sound using visual manipulation tools (blur, pixelate, edge detect) and convert it back to audio. The results are glitchy, unpredictable, and sound amazing.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl0p5vu5lpt2jpncez8j0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl0p5vu5lpt2jpncez8j0.png" alt="A code snippet"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;

&lt;iframe width="100%" height="166" src="https://w.soundcloud.com/player/?url=https://soundcloud.com/audio-dsp-488635473/poly-tonal-piano-chord-progression-through-a-audio-to-image-module&amp;amp;auto_play=false&amp;amp;color=%23000000&amp;amp;hide_related=false&amp;amp;show_comments=true&amp;amp;show_user=true&amp;amp;show_reposts=false&amp;amp;show_teaser=true"&gt;
&lt;/iframe&gt;


&lt;br&gt;
(&lt;em&gt;poly-tonal chord progression going through an audio to image effect&lt;/em&gt;)&lt;/p&gt;
&lt;h2&gt;
  
  
  &lt;strong&gt;What is audio-dsp today?&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Today, the library has grown into a massive collection of 65+ modules focused on offline rendering and sound design.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The Synths
From classic dx7_fm_synth emulations to the physical_modeling_synth and the SAM inspired  chip_tone.&lt;/li&gt;
&lt;li&gt;The Effects
Beyond the standard filters, you'll find temporal_gravity_warp, melt_spectrum, and the fractional_calculus_compressor.&lt;/li&gt;
&lt;li&gt;The Sequencers
This is where the "Generative" aspect shines. Tools like game_of_life, tree_composer, and raga_generator allow you to grow melodies rather than just write them.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;

&lt;iframe width="100%" height="166" src="https://w.soundcloud.com/player/?url=https://soundcloud.com/audio-dsp-488635473/drum-loop-going-through-the-time_slice&amp;amp;auto_play=false&amp;amp;color=%23000000&amp;amp;hide_related=false&amp;amp;show_comments=true&amp;amp;show_user=true&amp;amp;show_reposts=false&amp;amp;show_teaser=true"&gt;
&lt;/iframe&gt;


&lt;br&gt;
(&lt;em&gt;A drum loop is sliced-up to micro slices, each one is calculated for it’s dominant frequency and a chain of synthesised pitched sines is created&lt;/em&gt;)&lt;/p&gt;
&lt;h2&gt;
  
  
  &lt;strong&gt;Try It Yourself&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;I built this for the true music geeks—the ones who want to explore sonic possibilities that don't exist in standard DAWs.&lt;br&gt;
You can install it right now:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;pip install audio-dsp
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Documentation:&lt;a href="https://metallicode.github.io/python_audio_dsp/" rel="noopener noreferrer"&gt;python_audio_dsp&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;GitHub:&lt;a href="https://github.com/Metallicode/python_audio_dsp" rel="noopener noreferrer"&gt;github.com/Metallicode/python_audio_dsp&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I’ve also been working on packaging this up properly (with some assistance from AI tools to get the docs and distribution ready), so it's easier than ever to get started. A friend of mine has even started working on a UI wrapper for the project, so hopefully, we will bridge the gap between code and interface soon.&lt;/p&gt;

&lt;p&gt;Go break it. I can’t wait to hear what you make.&lt;/p&gt;

&lt;p&gt;

&lt;iframe width="100%" height="166" src="https://w.soundcloud.com/player/?url=https://soundcloud.com/audio-dsp-488635473/triangle_fold_distortion&amp;amp;auto_play=false&amp;amp;color=%23000000&amp;amp;hide_related=false&amp;amp;show_comments=true&amp;amp;show_user=true&amp;amp;show_reposts=false&amp;amp;show_teaser=true"&gt;
&lt;/iframe&gt;


&lt;br&gt;
(&lt;em&gt;triangle_fold_distortion on drums&lt;/em&gt;)&lt;/p&gt;

</description>
      <category>python</category>
      <category>programming</category>
      <category>showdev</category>
      <category>music</category>
    </item>
  </channel>
</rss>
