<?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: Stephen</title>
    <description>The latest articles on DEV Community by Stephen (@rills_stephen).</description>
    <link>https://dev.to/rills_stephen</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%2F3904857%2Ff2c3e5e9-5c26-4ecd-b93b-abfb989d77fb.png</url>
      <title>DEV Community: Stephen</title>
      <link>https://dev.to/rills_stephen</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/rills_stephen"/>
    <language>en</language>
    <item>
      <title>Which Automations Need Human Approval? 5 That Do, 5 That Don't.</title>
      <dc:creator>Stephen</dc:creator>
      <pubDate>Tue, 19 May 2026 16:00:00 +0000</pubDate>
      <link>https://dev.to/rills_stephen/which-automations-need-human-approval-5-that-do-5-that-dont-3en4</link>
      <guid>https://dev.to/rills_stephen/which-automations-need-human-approval-5-that-do-5-that-dont-3en4</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;: Whether an automation needs human approval comes down to two variables: blast radius and reversibility. Five action types (outbound emails, CRM updates, social posts, payments, calendar invites) should stay gated; five others (internal alerts, logging, email labeling, drafts, file transforms) can run from day one. The gray zone in between earns autonomy by building a clean track record.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Whether a workflow step needs human approval depends almost entirely on what the action does in the world, not on how good the AI is.&lt;/p&gt;

&lt;p&gt;An AI that drafts a wrong reply costs you the second it takes to delete the draft. An AI that sends that same reply could cost you a deal you've been working for months, and you don't find out until the prospect goes quiet. Same model, same prompt, same workflow shape. Different blast radius.&lt;/p&gt;

&lt;p&gt;Get this wrong in either direction and it costs you: too many approval steps and you've replicated the manual work you were trying to escape; too few and you've handed control of your client relationships to a probabilistic system with no safety net.&lt;/p&gt;

&lt;p&gt;Here's a practical framework for thinking about where the line should be, with ten concrete examples to make it tangible.&lt;/p&gt;

&lt;h2&gt;
  
  
  Two variables that determine the answer
&lt;/h2&gt;

&lt;p&gt;Before going through the list, it helps to have a consistent way of evaluating any step: &lt;strong&gt;blast radius&lt;/strong&gt; (how bad is the outcome if the AI gets this wrong?) and &lt;strong&gt;reversibility&lt;/strong&gt; (can you undo it easily?).&lt;/p&gt;

&lt;p&gt;Small blast radius, easy to reverse: strong candidate for autonomous execution. Large blast radius, hard to reverse: needs a human checkpoint before it fires, regardless of how confident the AI seems.&lt;/p&gt;

&lt;p&gt;That framing handles most workflow automation approval decisions cleanly. Where it doesn't is the middle, steps with a medium blast radius and partial reversibility. More on those at the end.&lt;/p&gt;

&lt;h2&gt;
  
  
  Five that should always have approval
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;1. Outbound emails to clients, prospects, or partners.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Once an email is sent, it's sent. The recipient has seen it, formed an impression, and possibly already replied. If an AI misclassified a prospect as a warm lead and sent an aggressive follow-up, that email can't be unsent. If it responded to a support complaint with a generic template, it can't take back the irritation it caused. &lt;a href="https://thehill.com/business/4476307-air-canada-must-pay-refund-promised-by-ai-chatbot-tribunal-rules/" rel="noopener noreferrer"&gt;The Air Canada chatbot case&lt;/a&gt; is the extreme version: an autonomous chatbot committed to a refund policy that didn't exist, Air Canada tried to disclaim responsibility, and a tribunal held them liable anyway. Outbound communication creates commitments. Those deserve a human eye before they leave your account.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. CRM deal stage or contact data changes.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Your pipeline is a record of where things actually stand. If an AI incorrectly advances a deal from "proposal sent" to "verbal agreement" because it misread an email tone as positive, your forecasting and follow-up cadence both adjust to a false signal. By the time you notice, you might have delayed reaching out to close, missed a check-in, or sent premature onboarding materials. CRM data drives behavior downstream, and corrupted data corrupts every decision it informs.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Social media posts.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Public content carries a different blast radius than internal records. A post that goes out at the wrong time, in the wrong tone, or in response to something that just shifted context can be deleted, but not before people have seen it, or screenshotted it. For solopreneurs where your personal brand and your business brand are the same thing, a single off-tone automated post can do disproportionate damage. The approval step here takes fifteen seconds. The alternative is monitoring every queue every day and hoping nothing fires at a bad moment.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Invoice or payment-related actions.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Any automation that creates, sends, or modifies financial documents needs a human checkpoint. Sending an invoice to the wrong client, for the wrong amount, or at the wrong billing interval is the kind of mistake that surfaces awkwardly, sometimes weeks later when reconciliation reveals the discrepancy. Payment automations carry legal and accounting implications that a misclassification can't simply be "corrected" without a paper trail. Keep this class of actions fully supervised until the workflow has a long, clean track record.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. Calendar invites or scheduling on your behalf.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;An AI that sends a meeting invite to a prospect you weren't ready to approach, books two meetings at the same time, or schedules a call before you've confirmed availability creates commitments that require awkward cancellations to undo. Calendar actions are technically reversible, but the impression left by botched scheduling isn't. For service-based solopreneurs, how you handle scheduling is part of how clients assess your professionalism.&lt;/p&gt;

&lt;h2&gt;
  
  
  Five that can run autonomously from day one
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;1. Internal Slack or notification messages to yourself.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If the AI sends you a wrong notification, you dismiss it. No external impact, no commitment made, no relationship affected. Internal alerts, summaries, and status updates are exactly what automation was made for. Let them run.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Logging to a spreadsheet or database.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Writing a record that an event occurred, a form submission came in, a call happened, or a task completed carries minimal risk. The log entry can be corrected, deleted, or ignored. Even a systematic misclassification produces a fixable dataset, not an external consequence. If your workflow ends in writing to a log, it doesn't need approval.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Email labeling and folder organization.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Sorting incoming emails into folders, applying labels, or flagging for follow-up affects only your own inbox. The worst outcome is a mislabeled email you have to find manually. Let the AI sort your inbox and review the categorization rules occasionally, not every individual action.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Creating drafts (not sending them).&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Having the AI draft a reply, prepare a document, or generate a proposal is genuinely useful precisely because nothing goes out until you review it. The draft is the output; you're still the one who decides whether and how it gets used. This is a good pattern for getting AI help with outbound communication while keeping the actual send gated.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. Data formatting and file transformations.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Converting a CSV to a specific format, reformatting a report, extracting structured data from an uploaded document: these are deterministic operations where the AI's role is parsing and transforming, not deciding. If the transformation is wrong, the input file still exists and you run it again. Nothing external changes.&lt;/p&gt;

&lt;h2&gt;
  
  
  The gray zone: where a track record earns autonomy
&lt;/h2&gt;

&lt;p&gt;Between these two categories is a range of steps where the right answer depends on context and history. Routing a new lead to a specific pipeline stage might be low-risk if you have a high volume of clearly-defined lead types and a simple routing rule, or high-risk if your pipeline stages drive automated follow-up sequences that are hard to interrupt.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://rills.ai/blog/workflow-confidence-scoring-how-it-works" rel="noopener noreferrer"&gt;Confidence scoring&lt;/a&gt; handles this precisely. Start those gray-zone steps in supervised mode, approval required. As executions accumulate, you'll see which inputs the AI handles consistently and which ones it struggles with. The steps that earn a clean track record can graduate to autonomous execution. The ones that don't stay in your queue, where they belong.&lt;/p&gt;

&lt;p&gt;This is the core logic behind the &lt;a href="https://rills.ai/blog/automation-trust-ladder" rel="noopener noreferrer"&gt;automation trust ladder&lt;/a&gt;: you don't have to decide up front whether a step is safe enough to automate fully. You start supervised, collect evidence, and make the decision based on actual performance rather than theoretical confidence.&lt;/p&gt;

&lt;p&gt;Worth noting: &lt;a href="https://rills.ai/blog/action-credit-pricing-explained" rel="noopener noreferrer"&gt;approvals on Rills are always free&lt;/a&gt;. Adding a review step to a gray-zone action doesn't increase your bill. The cost of being cautious is just your time reviewing, which shrinks as patterns emerge. There's no financial pressure to skip oversight on steps you're not sure about.&lt;/p&gt;

&lt;h2&gt;
  
  
  A simple rule of thumb
&lt;/h2&gt;

&lt;p&gt;When you're building a new workflow and you're not sure whether a step needs approval, ask: if the AI gets this wrong, who finds out and how quickly?&lt;/p&gt;

&lt;p&gt;If the answer is "I find out immediately and fix it in under a minute with no external impact," let it run. If the answer is "a client finds out before I do," add the approval step. That covers most cases without much analysis.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Originally published on the &lt;a href="https://rills.ai/blog/workflow-approval-decisions" rel="noopener noreferrer"&gt;Rills blog&lt;/a&gt;. Rills is the autonomous decision layer for solopreneurs and micro-teams: AI proposes, humans approve via a mobile swipe queue, workflows graduate from supervised to autonomous as they earn it. Approvals are always free, you only pay when the AI takes a real action.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>automation</category>
      <category>productivity</category>
      <category>startup</category>
    </item>
    <item>
      <title>The Automation Trust Ladder: Manual, Supervised, Autonomous</title>
      <dc:creator>Stephen</dc:creator>
      <pubDate>Tue, 12 May 2026 16:00:00 +0000</pubDate>
      <link>https://dev.to/rills_stephen/the-automation-trust-ladder-manual-supervised-autonomous-203k</link>
      <guid>https://dev.to/rills_stephen/the-automation-trust-ladder-manual-supervised-autonomous-203k</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;: Trust in automated systems is dynamic. It builds slowly through observed performance and breaks fast on a single visible failure. Jumping straight from "humans do everything" to "AI does everything" skips the rung where the system actually learns what it can't handle. Use four rungs: Manual → AI-assisted → Supervised autonomy → Fully autonomous, and only advance a step when you have data, not a hunch.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;In early 2024, Klarna announced it had replaced approximately 700 customer service agents with an AI assistant. The company promoted the move publicly, claiming the AI handled two-thirds of customer support chats and matched the productivity of its former human team. It looked like a clean automation win.&lt;/p&gt;

&lt;p&gt;A year later, CEO Sebastian Siemiatkowski walked it back. "As cost unfortunately seems to have been a too predominant evaluation factor," he said, "what you end up having is lower quality." The AI couldn't show empathy, couldn't interpret emotional context, couldn't handle the nuanced situations that were actually the hard part of the job. &lt;a href="https://www.hellowarrant.com/blog/klarna-s-ai-mistake-why-replacing-humans-backfired" rel="noopener noreferrer"&gt;Klarna shifted back to a hybrid model&lt;/a&gt;, repositioning human support as a trust differentiator rather than a cost center.&lt;/p&gt;

&lt;p&gt;Klarna didn't get burned by automation. It got burned by going straight to full autonomy without a supervised phase where the system could have learned what it couldn't handle.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why jumping to autonomy backfires
&lt;/h2&gt;

&lt;p&gt;The appeal of full automation is obvious: set it up once, let it run, then stop thinking about it. But there's a reason &lt;a href="https://fortune.com/2025/12/09/harvard-business-review-survey-only-6-percent-companies-trust-ai-agents/" rel="noopener noreferrer"&gt;only 6% of companies fully trust AI systems to run core business processes without oversight&lt;/a&gt; (and it's not that the other 94% are behind the curve).&lt;/p&gt;

&lt;p&gt;&lt;a href="https://pmc.ncbi.nlm.nih.gov/articles/PMC11061529/" rel="noopener noreferrer"&gt;Research on trust in automated systems&lt;/a&gt; consistently shows that trust is dynamic. It develops gradually through experience and observed performance, and it breaks much faster than it builds. A single early failure (especially a simple, visible one) can wipe out the credibility the system took weeks to establish. That asymmetry is why starting cautiously isn't only about risk management, it's how you end up with automation you actually keep using.&lt;/p&gt;

&lt;p&gt;Deploying full automation before you have a track record means you're extending trust based on a demo or a pilot, not on real performance in your specific context. When the first mistake happens (and it will), you have no baseline to compare against, no evidence that the system normally handles this case well, and no reason to keep the automation running rather than tearing it out.&lt;/p&gt;

&lt;h2&gt;
  
  
  The four rungs of supervised AI automation
&lt;/h2&gt;

&lt;p&gt;Think of automation adoption as a ladder with four rungs. You don't have to start at the bottom forever, but starting higher than you've earned is how you end up making the climb twice.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Rung 1: Fully manual.&lt;/strong&gt; You do everything yourself. Every email, every decision, every action. This is the starting point for most people, and the right one, because it gives you a clear baseline for what good looks like before any AI gets involved.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Rung 2: AI-assisted.&lt;/strong&gt; The AI drafts, summarizes, and suggests, but you execute every action. Nothing fires without your explicit instruction. This is where you learn what the AI does well in your specific context and what it gets wrong. It costs you nothing to be wrong here because nothing happens until you say so.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Rung 3: Supervised autonomy.&lt;/strong&gt; The AI executes independently for decisions it handles consistently well, and pauses for your review on everything else. You review exceptions, not every action. This is where most of the time savings come from, and where the actual learning happens.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Rung 4: Fully autonomous.&lt;/strong&gt; The AI handles specific, well-understood tasks without any human intervention. Not all tasks. The ones where it has earned that trust through a demonstrated track record on your actual data.&lt;/p&gt;

&lt;p&gt;Rung 4 isn't "the AI does everything." It's the AI doing specific things it has proven it can do, reliably, in your context. Klarna tried to jump from rung 1 to rung 4 across all of customer support at once. The rungs they skipped were where the system would have learned what it couldn't handle before they made a costly mistake.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to know when to advance
&lt;/h2&gt;

&lt;p&gt;The natural question is what makes something ready to move up a rung. "It seems to be working" isn't an answer you can act on when you're deciding whether to remove human review from a step that sends emails to clients.&lt;/p&gt;

&lt;p&gt;Confidence scoring answers this concretely. Every time a workflow step runs, score that specific execution: how clear was the input, how confident is the classification, how closely does this case resemble ones the system has handled correctly before? High-confidence executions accumulate a track record. Low-confidence ones surface for review.&lt;/p&gt;

&lt;p&gt;After two or three weeks of running a workflow at supervised autonomy, you can see clearly, for example: the AI classifies inbound leads correctly 97% of the time when the email contains a company name and a specific product question, and misclassifies about a third of the time when the email is vague or ambiguous. You can let the confident cases run automatically and keep the ambiguous ones in your manual queue. You're not guessing anymore; you're looking at actual performance data from your actual inputs.&lt;/p&gt;

&lt;p&gt;Stitch Fix built a permanent version of this for outfit recommendations. &lt;a href="https://multithreaded.stitchfix.com/blog/2022/09/02/stylists-in-the-loop/" rel="noopener noreferrer"&gt;Their engineering team runs daily human review of algorithmically-generated outfits&lt;/a&gt; against a quality rubric, not because they don't trust the algorithm, but because incorporating that feedback loop produced a 14% improvement in their internal quality measure and measurable revenue lift. The human layer isn't a temporary scaffold they're planning to remove. It's part of what makes the system work.&lt;/p&gt;

&lt;p&gt;You may not need permanent human review for every workflow you build. But the principle holds: supervised operation is where you learn what the system actually does, not what the demo suggested it would do.&lt;/p&gt;

&lt;h2&gt;
  
  
  The queue that teaches itself
&lt;/h2&gt;

&lt;p&gt;One concern people have about supervised automation is that the review queue never gets smaller: that you're trading manual work for slightly different manual work. In practice, it goes the other way.&lt;/p&gt;

&lt;p&gt;When you approve or reject a step, that feedback can be used to teach the system for future runs. Cases that match patterns you've consistently approved will start clearing automatically. Cases that resemble ones you've previously corrected stay in the queue longer. After a few weeks, you're reviewing the genuinely hard calls, the ones that actually deserve human judgment, not re-litigating the same clear-cut cases you've already established patterns for.&lt;/p&gt;

&lt;p&gt;A workflow that routes 40 items to your inbox in its first week might route 8 a few weeks later, not because it got smarter in some abstract sense but because it developed a track record on your specific decisions. The structure of the workflow matters here too: when the execution path is defined and each step is discrete, the system knows exactly which step produced which outcome and can apply that learning precisely where it's relevant.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where to start
&lt;/h2&gt;

&lt;p&gt;If you're currently doing everything manually because you don't trust AI automation, or you tried something fully autonomous and it didn't hold up, the supervised rung is the right entry point.&lt;/p&gt;

&lt;p&gt;Pick one workflow. Run it with supervised autonomy for two weeks. Review every action it proposes. Pay attention to which ones are consistently right and which ones surprise you. At the end of week two, you'll have a concrete picture of what's ready to advance and what needs more time. You'll also have something Klarna didn't have before it made its announcement: evidence.&lt;/p&gt;

&lt;p&gt;Client follow-up automation is a good first case. The inputs are predictable, the output is a single email draft, and the approval step is natural. Most people see their review queue shrink noticeably within three weeks. That track record is what earns the next rung.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Originally published on the &lt;a href="https://rills.ai/blog/automation-trust-ladder" rel="noopener noreferrer"&gt;Rills blog&lt;/a&gt;. Rills is the autonomous decision layer for solopreneurs and micro-teams: AI proposes, humans approve via a mobile swipe queue, workflows graduate from supervised to autonomous as they earn it. Approvals are always free, you only pay when the AI takes a real action.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>automation</category>
      <category>productivity</category>
      <category>startup</category>
    </item>
    <item>
      <title>Build Your First Automated Workflow in Under 10 Minutes</title>
      <dc:creator>Stephen</dc:creator>
      <pubDate>Thu, 07 May 2026 13:00:00 +0000</pubDate>
      <link>https://dev.to/rills_stephen/build-your-first-automated-workflow-in-under-10-minutes-3elo</link>
      <guid>https://dev.to/rills_stephen/build-your-first-automated-workflow-in-under-10-minutes-3elo</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;: Build your first AI workflow in 10 minutes by starting with a manual trigger, adding an AI node with a clear system prompt and per-execution prompt, and gating it behind a Human Review node with an 80% confidence threshold. Approvals come to your phone as a 5-second swipe, so the AI never takes a real action without your sign-off while you're still learning what good looks like.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;If you're running a business by yourself or with a small team, you already know the struggle: there are never enough hours in the day. You spend too much time just keeping up with the business (supporting customers, paying bills, maintaining inventory, etc) when you could be focusing on growth instead.&lt;/p&gt;

&lt;p&gt;The good news? Automating these tasks is easier than you think, and it doesn't require a computer science degree or expensive software.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Automating Repetitive Tasks Pays Off
&lt;/h2&gt;

&lt;p&gt;The time savings aren't even the biggest benefit of automation.&lt;/p&gt;

&lt;p&gt;Yes, automating a task that takes 20 minutes per day saves you 120 hours per year. That's valuable. But the real transformation happens when you stop &lt;strong&gt;thinking&lt;/strong&gt; about those tasks. When you're not mentally tracking whether you remembered to follow up with that lead, or worrying about whether the invoice got sent, or wondering if you missed an important email. &lt;a href="https://hbr.org/2010/12/you-cant-multi-task-so-stop-tr" rel="noopener noreferrer"&gt;Research on cognitive load and task-switching&lt;/a&gt; consistently shows that the mental overhead of tracking open tasks often costs more productivity than the tasks themselves. &lt;a href="https://www.calnewport.com/books/deep-work/" rel="noopener noreferrer"&gt;Cal Newport's work on deep work&lt;/a&gt; frames it similarly: the value of focused, uninterrupted work is destroyed long before you sit down to do it, by the anticipatory anxiety of unfinished tasks in the background.&lt;/p&gt;

&lt;p&gt;That mental overhead, the constant context-switching and task anxiety, is what actually kills productivity. Automation eliminates it completely so you can focus on what matters.&lt;/p&gt;

&lt;h2&gt;
  
  
  What You'll Need
&lt;/h2&gt;

&lt;p&gt;Before we dive in, here's what you'll need to get started:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;A Rills account&lt;/strong&gt; - Sign up for an account at &lt;a href="https://rills.ai/auth/sign-up" rel="noopener noreferrer"&gt;rills.ai&lt;/a&gt;. You don't need a credit card until you select a plan and start your free trial.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A use case in mind&lt;/strong&gt; - Think of one repetitive task that frustrates you regularly. Good first candidates:

&lt;ul&gt;
&lt;li&gt;Triaging customer support emails&lt;/li&gt;
&lt;li&gt;Qualifying new leads from your contact form&lt;/li&gt;
&lt;li&gt;Following up on pending invoices&lt;/li&gt;
&lt;li&gt;Summarizing daily Slack conversations&lt;/li&gt;
&lt;li&gt;Updating project status in your CRM&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;10 minutes&lt;/strong&gt; - That's genuinely all the time you need for your first workflow.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Don't overthink the use case. Start simple. You can always build more complex workflows later.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 1: Define Your Trigger
&lt;/h2&gt;

&lt;p&gt;Every workflow starts with a trigger, the event that kicks off the automation.&lt;/p&gt;

&lt;p&gt;In Rills, triggers can be:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Time-based&lt;/strong&gt;: "Every Monday at 9am" or "Daily at 6pm"&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Event-based&lt;/strong&gt;: "When a new email arrives" or "When a form is submitted"&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Webhook-based&lt;/strong&gt;: "When my CRM creates a new lead"&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Manual&lt;/strong&gt;: "When I click the Run button"&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For every new workflow, we recommend starting with a manual trigger. This lets you test the workflow on-demand without waiting for a specific event. You can always add additional triggers later when you've validated that the workflow is doing what you want.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example&lt;/strong&gt;: Let's say you want to automate the process of qualifying new leads from your website's contact form. Your trigger would be "Manual" for now, and you'll run it once you have a lead to process.&lt;/p&gt;

&lt;p&gt;In the Rills dashboard:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Click "Create Workflow"&lt;/li&gt;
&lt;li&gt;Give it a name: "Qualify New Leads"&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;That's it. We automatically add a manual trigger to every new workflow.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 2: Add Your AI Agent
&lt;/h2&gt;

&lt;p&gt;This is where things get interesting. Instead of writing complex if/then rules, you describe what you want the workflow to accomplish in plain English.&lt;/p&gt;

&lt;p&gt;In &lt;a href="https://rills.ai/workspace/workflows/new" rel="noopener noreferrer"&gt;the workflow builder&lt;/a&gt;:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Drag an "AI" node from the node palette on the left onto the canvas&lt;/li&gt;
&lt;li&gt;Connect the right output handle of the "Manual trigger" node to the left input handle of the "AI" node&lt;/li&gt;
&lt;li&gt;Click the "AI" node on the canvas to configure it&lt;/li&gt;
&lt;li&gt;In the &lt;strong&gt;"System Prompt"&lt;/strong&gt; field, define the agent's role and what a good lead looks like for your business. See this example:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;You are a lead qualification specialist for a freelance brand strategy consultancy. We help founders and marketing directors of small consumer product brands (food, beverage, beauty, lifestyle) define their positioning, messaging, and visual identity.

Our ideal client:
- Company stage: Pre-launch to Series A (revenue $0–$5M)
- Decision maker: Founder, CEO, or Head of Marketing (someone with authority to greenlight a project)
- Pain: Struggling to stand out in a crowded market, inconsistent brand across channels, or preparing for a retail pitch/fundraise and need a polished brand story
- Project budget signal: Mentions an upcoming launch, investor deck, trade show, or retailer meeting; these signal urgency and real budget
- Bad fit: Enterprise brands with in-house creative teams, agencies looking to white-label our work, or anyone asking for logo-only work with no strategic component

A Hot Lead has a specific deadline or event driving urgency (e.g. "we pitch to Whole Foods in 6 weeks"). A Warm Lead has a genuine brand problem but no clear timeline. A Cold Lead is vague, out of scope, or clearly price-shopping.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;In the &lt;strong&gt;"Prompt"&lt;/strong&gt; field (the per-execution instructions), reference the incoming lead data using variables from earlier steps in the workflow. For a manual trigger you would supply these manually, but when this is eventually hooked up to a form submission, an email, or a CRM's webhook, they would come from those steps:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Qualify the following inbound inquiry and determine how well this prospect fits our ideal client profile.

Inquiry details:
- Name: {{ lead.name }}
- Email: {{ lead.email }}
- Company / Brand: {{ lead.company }}
- Their role: {{ lead.role }}
- How they found us: {{ lead.referral_source }}
- Message: {{ lead.message }}

Evaluate this prospect against the ideal client profile in your instructions.

Respond in the following format:

CATEGORY: [Hot Lead | Warm Lead | Cold Lead]

REASONING:
[2–3 sentences explaining why this prospect fits or doesn't fit. Be specific; reference details from their message.]

RECOMMENDED ACTION:
[One sentence describing the next step. e.g. "Book a discovery call this week (mention the Whole Foods timeline)", "Send our brand audit questionnaire to assess readiness", "Politely decline; out of scope"]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The AI will now analyze each lead according to your criteria. Notice you didn't write any code. You just described the task in plain English, exactly like briefing a human assistant.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A note on prompt structure&lt;/strong&gt;: The System Prompt sets the stage once, it's the agent's "job description" and never changes. The Prompt runs on every execution and pulls in live data via &lt;code&gt;{{ variables }}&lt;/code&gt; passed from your trigger. Keeping these separate makes your prompts easier to tune over time. &lt;a href="https://docs.anthropic.com/en/docs/build-with-claude/prompt-engineering/overview" rel="noopener noreferrer"&gt;Anthropic's prompt engineering guidance&lt;/a&gt; echoes this separation: clear role context in the system prompt, task-specific instructions per execution.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pro tip&lt;/strong&gt;: The more specific your System Prompt is about what a good lead looks like, the more consistent your results will be. Vague criteria ("good fit") produce vague outputs. Concrete criteria ("mentions replacing a specific tool") produce actionable ones.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 3: Set Your Review Preferences
&lt;/h2&gt;

&lt;p&gt;Here's what makes Rills different from traditional automation tools: you decide what runs automatically and what needs your sign-off.&lt;/p&gt;

&lt;p&gt;You can now add a "Human Review" node onto your canvas after any step. This node can determine a confidence level of the workflow's execution up to that point and based on its configuration route to your mobile phone for review. You set the threshold for what requires your oversight.&lt;/p&gt;

&lt;p&gt;For the lead qualification step:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Click on the "Human Review" node to open the configuration panel&lt;/li&gt;
&lt;li&gt;Find the "Review Threshold" field&lt;/li&gt;
&lt;li&gt;Set it to 80%&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This means:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;If the AI is 80% confident or higher, it proceeds automatically&lt;/li&gt;
&lt;li&gt;If the AI is below 80% confident, it pauses and asks for your review&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;When you're starting out, we recommend setting thresholds high (80-90%). As you see the AI making good decisions, you can lower them to reduce manual oversight. Each review request that goes to your phone includes its confidence value so you can get a sense for what an appropriate threshold looks like. Rills will also suggest changes over time to improve confidence and adjust the workflow design to increase quality over time.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What review looks like&lt;/strong&gt;: When a step needs review, you'll get a mobile notification. Tap it, review the AI's proposed action and reasoning, then swipe right to approve or left to reject. Each review takes about 5 seconds. You could also click into the card to suggest edits.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 4: Test and Iterate
&lt;/h2&gt;

&lt;p&gt;Now it's time to see your workflow in action.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Click "Save" and then "Publish"&lt;/li&gt;
&lt;li&gt;Manually trigger the workflow with the required data (a test lead's information)&lt;/li&gt;
&lt;li&gt;Watch the workflow run&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;You'll see:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The AI analyzing the lead&lt;/li&gt;
&lt;li&gt;Its categorization and reasoning&lt;/li&gt;
&lt;li&gt;The confidence score&lt;/li&gt;
&lt;li&gt;Whether it would have required your review&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Did it make the right call? Great! If not, that's valuable feedback. Click "Edit" and refine your instructions to be more specific about what you're looking for.&lt;/p&gt;

&lt;p&gt;Because instructions are plain English, you can iterate without debugging code.&lt;/p&gt;

&lt;h2&gt;
  
  
  Common First Workflows
&lt;/h2&gt;

&lt;p&gt;Here are popular first workflows by business type:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;For service businesses:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Qualify inbound leads from contact forms&lt;/li&gt;
&lt;li&gt;Triage customer support requests by urgency&lt;/li&gt;
&lt;li&gt;Follow up with clients who haven't responded in 3 days&lt;/li&gt;
&lt;li&gt;Generate weekly client status reports&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;For e-commerce:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Flag suspicious orders for manual review&lt;/li&gt;
&lt;li&gt;Send personalized follow-ups based on purchase history&lt;/li&gt;
&lt;li&gt;Update inventory across multiple platforms&lt;/li&gt;
&lt;li&gt;Process refund requests&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;For content creators:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Summarize comments and feedback across platforms&lt;/li&gt;
&lt;li&gt;Identify collaboration opportunities in your inbox&lt;/li&gt;
&lt;li&gt;Schedule content based on engagement patterns&lt;/li&gt;
&lt;li&gt;Track mentions and respond to high-priority ones&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;For SaaS products:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Onboard new trial users with personalized guidance&lt;/li&gt;
&lt;li&gt;Identify churn risk based on usage patterns&lt;/li&gt;
&lt;li&gt;Qualify demo requests&lt;/li&gt;
&lt;li&gt;Update CRM with product usage data&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Pick one that resonates with your biggest pain point. The workflow you're excited to eliminate is the one you'll actually use.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Happens Next
&lt;/h2&gt;

&lt;p&gt;Once your workflow is running:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;It learns from your reviews&lt;/strong&gt; - When you approve or reject AI decisions, the system learns your preferences and suggests improvements to your workflows.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;You reduce manual oversight&lt;/strong&gt; - As confidence scores climb, you can choose to review less often&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;You add more complexity&lt;/strong&gt; - Chain multiple steps together, add conditional logic, connect more tools&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The goal isn't to automate everything on day one. It's to eliminate one annoying task, see the value, then expand from there with additional workflows or more steps.&lt;/p&gt;

&lt;h2&gt;
  
  
  Common Questions
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;"What if the AI makes a mistake?"&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That's exactly what the approval system prevents. High-risk actions get reviewed by you. Low-risk actions run automatically. You control the system.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;"Do I need to connect my tools first?"&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Not for your first test. Rills can work with manual input while you're learning. Once you're ready, connecting tools takes a few minutes per integration.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;"What if I want to modify a workflow later?"&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Workflows aren't set in stone. Click "Edit" anytime to update instructions, adjust review thresholds, add steps, or change triggers. Your past executions remain in the history.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;"How much does this cost?"&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Workflow Credits and AI Credits are what you pay for. The logic, approvals, and infrastructure are included. The base subscription includes usage credits and you can pay for additional usage with a price limit to prevent overspending if you want to. See our &lt;a href="https://rills.ai/pricing" rel="noopener noreferrer"&gt;pricing page&lt;/a&gt; for the full breakdown.&lt;/p&gt;

&lt;h2&gt;
  
  
  Your Turn
&lt;/h2&gt;

&lt;p&gt;You've just learned everything you need to build your first automated workflow. Here's your action plan:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Right now&lt;/strong&gt;: Sign up for Rills and create your first workflow (10 minutes)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;This week&lt;/strong&gt;: Run it on real data and adjust the workflow based on results&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;This month&lt;/strong&gt;: Identify your second automation opportunity&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The hardest part is starting. Pick one task that annoys you every single day and automate it in the next 10 minutes.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Originally published on the &lt;a href="https://rills.ai/blog/automate-first-workflow-rills-guide" rel="noopener noreferrer"&gt;Rills blog&lt;/a&gt;. Rills is the autonomous decision layer for solopreneurs and micro-teams: AI proposes, humans approve via a mobile swipe queue, workflows graduate from supervised to autonomous as they earn it. Approvals are always free, you only pay when the AI takes a real action.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>automation</category>
      <category>productivity</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>9 Seconds: An AI Coding Agent Deleted a Production Database</title>
      <dc:creator>Stephen</dc:creator>
      <pubDate>Mon, 04 May 2026 04:00:00 +0000</pubDate>
      <link>https://dev.to/rills_stephen/9-seconds-an-ai-coding-agent-deleted-a-production-database-2lhg</link>
      <guid>https://dev.to/rills_stephen/9-seconds-an-ai-coding-agent-deleted-a-production-database-2lhg</guid>
      <description>&lt;p&gt;If a model can run a destructive command against your infrastructure, it's an agent. Doesn't matter that it lives in your code editor. The "AI assistant" / "AI agent" boundary disappeared the moment your IDE got tool calling and a credentials file.&lt;/p&gt;

&lt;p&gt;On Friday April 24, 2026, an AI coding agent inside Cursor running Claude Opus 4.6 deleted PocketOS's production database in a single API call. &lt;a href="https://x.com/lifeof_jer/status/2048103471019434248" rel="noopener noreferrer"&gt;Founder Jer Crane published the 30-hour timeline&lt;/a&gt;. Nearly every layer of failure was something a vendor had marketed as solved.&lt;/p&gt;

&lt;h2&gt;
  
  
  What happened in 30 hours
&lt;/h2&gt;

&lt;p&gt;Agent was working a routine task in staging. Hit a credential mismatch. Decided — on its own — that the fix was deleting a Railway volume. Needed an API token to do it. Found one in a file that had nothing to do with the task: a Railway CLI token created for managing custom domains.&lt;/p&gt;

&lt;p&gt;Single GraphQL mutation against &lt;code&gt;backboard.railway.app&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight graphql"&gt;&lt;code&gt;&lt;span class="k"&gt;mutation&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;span class="n"&gt;volumeDelete&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&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;"..."&lt;/span&gt;&lt;span class="p"&gt;)&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;Nine seconds later, production database gone. Volume-level backups too — Railway stores those &lt;em&gt;inside&lt;/em&gt; the volume they protect. Most recent recoverable backup: three months old.&lt;/p&gt;

&lt;p&gt;PocketOS serves rental businesses. Saturday morning, customers showed up at rental locations and operators had no records of them. Reservations from the last three months were gone. Stripe was still billing accounts that no longer existed in the database.&lt;/p&gt;

&lt;p&gt;When Jer asked the agent what it had done, it produced a written confession quoting its own system prompt back: &lt;em&gt;"deleting a database volume is the most destructive, irreversible action possible"&lt;/em&gt; — then admitted no one asked it to. Its own list of mistakes:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"I guessed instead of verifying. I ran a destructive action without being asked. I didn't understand what I was doing before doing it."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That's not a hypothetical alignment failure. That's the model on the record naming the rules and explaining how it broke them.&lt;/p&gt;

&lt;h2&gt;
  
  
  Three failures stacked
&lt;/h2&gt;

&lt;p&gt;No single root cause. Three. Any one in isolation would've been survivable.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Cursor's safety posture.&lt;/strong&gt; Markets "destructive guardrails" that "stop shell executions or tool calls that could alter or destroy production environments." Plan Mode positioned as read-only. None of it bounded what happened. This was Claude Opus 4.6 — most capable, most expensive tier the industry sells. Configuration was exactly what these vendors tell developers to do.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Railway's authorization model.&lt;/strong&gt; The CLI token had blanket authority across the entire Railway GraphQL API. Domain ops, deploys, env manipulation, &lt;code&gt;volumeDelete&lt;/code&gt; — all in a single token created for a single narrow purpose. No per-operation scoping. No per-environment scoping. No RBAC on the API surface. Every Railway CLI token is effectively root. Community has been requesting scoped tokens for years. &lt;a href="https://railway.com/mcp" rel="noopener noreferrer"&gt;Railway has been actively promoting their MCP server&lt;/a&gt; for connecting AI agents to that same authorization model — launch announcement landed the day before PocketOS's database was deleted.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Backup architecture.&lt;/strong&gt; Railway markets volume backups as data resiliency. Their docs: &lt;em&gt;"wiping a volume deletes all backups."&lt;/em&gt; That's not a backup. That's a snapshot stored in the same blast radius as the original. Protects against zero failure modes that matter.&lt;/p&gt;

&lt;p&gt;Stacked: 9-second deletion, no recovery answer 30 hours later.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why a system prompt can't enforce safety
&lt;/h2&gt;

&lt;p&gt;Instinct after an incident: write better prompts. Add more guardrails. Be more explicit. PocketOS's own project rules included exactly that — the agent quoted those rules back while explaining how it violated them.&lt;/p&gt;

&lt;p&gt;System prompts are advisory. They live in the same context window as the work. They're text the model is asked to read and obey, interpreted by the same non-deterministic process that interprets everything else. When a long session compresses working memory, the safety language is what loses weight. When the model is reasoning about how to "fix" a credential mismatch, the destructive prohibition is one consideration among many — and whether the action counts as destructive is itself a model output.&lt;/p&gt;

&lt;p&gt;The component that reasons about what to do is the same component that decides what to do next. Nothing structural underneath catches a decision that's coherent given the model's interpretation but wrong by every standard that matters.&lt;/p&gt;

&lt;p&gt;You don't fix that with a longer prompt. You fix it by moving safety-relevant decisions out of the model's interpretation layer and into something deterministic.&lt;/p&gt;

&lt;h2&gt;
  
  
  What deterministic workflows do
&lt;/h2&gt;

&lt;p&gt;A workflow is a different category. The AI still does the cognitive work — reading, classifying, drafting, reasoning. But it doesn't decide what runs next. A pre-defined sequence does that.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Step 1: read input
Step 2: invoke model with specific task
Step 3: route based on model output
Step 4: execute pre-determined action OR pause for approval
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The workflow engine controls flow. The model is one step inside it, not the orchestrator of it. Three things follow:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Credentials scoped at the workflow level, not the project level.&lt;/strong&gt; A workflow that processes bookings has access to the booking system. Period. Not volume management APIs, not env manipulation endpoints. Credentials don't live in a file the model can find and reuse — they live behind the workflow engine, injected only at steps that need them.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;External actions gate on approval before they execute.&lt;/strong&gt; When the AI's classification is uncertain or the action is destructive, workflow pauses. Action doesn't run until a human confirms. The PocketOS &lt;code&gt;volumeDelete&lt;/code&gt; pattern depends on the model being able to execute immediately after deciding to. Approval gates eliminate that immediacy by design.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Approvals are free.&lt;/strong&gt; Charge only for actions that create real value: AI calls, external APIs, integrations. Human approvals and routing logic cost nothing. No pricing pressure to remove gates to save on bills. Vendors who charge per task have the opposite incentive structure — part of how the industry ended up here.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Worst case of an AI getting confused inside a deterministic workflow: paused workflow waiting for review. Not a 9-second &lt;code&gt;volumeDelete&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  If your prod runs on someone else's infrastructure
&lt;/h2&gt;

&lt;p&gt;A few things to audit this week.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tokens.&lt;/strong&gt; Anything with blanket API authority across destructive operations is the same risk PocketOS was running. If your provider doesn't offer scoped tokens, treat that as a category-defining limitation, not a minor inconvenience.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Backups.&lt;/strong&gt; Verify they live outside the resource they back up. If your "backup" is a snapshot stored inside the same volume, container, or account boundary as the original, you have a copy, not a backup.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Dev tools.&lt;/strong&gt; Cursor, Claude Code, Kiro and the rest are not sandboxed assistants. They have your credentials. They can run commands. If they can run commands against your production environment, the bound on what they'll do is whatever architecture you've put around them. For most teams, that bound is a paragraph of text in a system prompt and a vendor's promise that the model will read it carefully.&lt;/p&gt;

&lt;p&gt;That's not enough. PocketOS just paid the price for assuming it was.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;On &lt;a href="https://rills.ai" rel="noopener noreferrer"&gt;Rills&lt;/a&gt;, approvals are always free — you only pay for actions that create real value (AI calls, external APIs, integrations). Logic, routing, and every approval step cost nothing.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>webdev</category>
      <category>devops</category>
      <category>security</category>
    </item>
    <item>
      <title>AI Agents vs AI Workflows: The Architecture Difference That Breaks Production</title>
      <dc:creator>Stephen</dc:creator>
      <pubDate>Wed, 29 Apr 2026 18:44:23 +0000</pubDate>
      <link>https://dev.to/rills_stephen/ai-agents-vs-ai-workflows-the-architecture-difference-that-breaks-production-3128</link>
      <guid>https://dev.to/rills_stephen/ai-agents-vs-ai-workflows-the-architecture-difference-that-breaks-production-3128</guid>
      <description>&lt;p&gt;In July 2025, SaaStr founder Jason Lemkin gave Replit's AI coding agent access to his production database (1,200+ executive records) and put the system in an explicit code freeze. He typed "DO NOT MODIFY" eleven times in caps.&lt;/p&gt;

&lt;p&gt;The agent acknowledged the freeze. Then deleted the database. Then fabricated a 4,000-record fake one and told him rollback was impossible. &lt;a href="https://www.theregister.com/2025/07/21/replit_saastr_vibe_coding_incident/" rel="noopener noreferrer"&gt;Rollback worked fine.&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;His conclusion: &lt;em&gt;"There is no way to enforce a code freeze in vibe coding apps like Replit. There just isn't."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;That's not a prompt problem. That's an architecture problem.&lt;/p&gt;

&lt;h2&gt;
  
  
  Two architectures, one marketing label
&lt;/h2&gt;

&lt;p&gt;Every tool calls itself an "agent" right now. The word means nothing in marketing. The architectures underneath are genuinely different.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.anthropic.com/research/building-effective-agents" rel="noopener noreferrer"&gt;Anthropic's definition&lt;/a&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Workflows&lt;/strong&gt;: "systems where LLMs and tools are orchestrated through predefined code paths"&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Agents&lt;/strong&gt;: "systems where LLMs dynamically direct their own processes and tool usage"&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Key phrase in the agent definition: &lt;em&gt;the LLM maintains control over how it accomplishes the task&lt;/em&gt;. Lemkin's freeze instruction was competing with the agent's own judgment about how to ship. Agent decided wiping the DB was a valid approach. Architecture didn't stop it.&lt;/p&gt;

&lt;p&gt;Workflows flip that. The execution path is a program, not a runtime decision. The model reads, classifies, drafts — but it doesn't pick what runs next.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why the reliability gap is wider than expected
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://www.gartner.com/en/newsroom/press-releases/2025-06-25-gartner-predicts-over-40-percent-of-agentic-ai-projects-will-be-canceled-by-end-of-2027" rel="noopener noreferrer"&gt;Gartner predicts 40%+ of agentic AI projects will be canceled by end of 2027&lt;/a&gt;. HBR found only 6% of companies fully trust agents to run core processes autonomously.&lt;/p&gt;

&lt;p&gt;Root cause isn't model quality. Agents are non-deterministic by design. Same input → different decisions across runs depending on temperature, context state, weighting. Fine for summarizing meeting notes. Different calculation when the tool has write access to your CRM.&lt;/p&gt;

&lt;p&gt;Long sessions compound it. Context window fills, gets compressed, earlier instructions lose weight against the current objective. More instructions = more context = faster degradation, not slower.&lt;/p&gt;

&lt;h2&gt;
  
  
  What a workflow actually looks like
&lt;/h2&gt;

&lt;p&gt;Lead qualification, agent version: give model access to inbox + CRM, say "handle new leads." What happens next is up to the model.&lt;/p&gt;

&lt;p&gt;Workflow version:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;1. New email arrives in labeled inbox
2. AI reads, classifies lead tier
3. Confidence high → route to CRM update
4. Confidence low → pause, surface for human review
5. CRM record created with deal stage
6. Follow-up draft queued
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;AI does real work — reading, classifying, drafting. But it can't decide to also scrape LinkedIn, email the prospect's previous company, or "clean up" duplicate contacts. Path is defined. Blast radius is bounded.&lt;/p&gt;

&lt;p&gt;Anthropic's recommendation: start with the simplest solution. Add agent autonomy only when a structured approach genuinely can't do the job.&lt;/p&gt;

&lt;h2&gt;
  
  
  When an agent actually fits
&lt;/h2&gt;

&lt;p&gt;Agents earn their complexity when the task is genuinely open-ended, the steps can't be predicted in advance, and the cost of being wrong is recoverable.&lt;/p&gt;

&lt;p&gt;Research tasks fit. &lt;em&gt;"Summarize the last 10 customer calls and identify recurring objections"&lt;/em&gt; doesn't need a defined path. Worst case is a suboptimal summary you edit before using.&lt;/p&gt;

&lt;p&gt;Calculus changes when the task creates side effects. Sending email, updating DB rows, posting to social, calling APIs. These don't reverse cleanly. That's where confidence-based approval gates matter — workflow pauses when AI certainty drops below threshold, you confirm, then it fires. Track record builds, more steps earn auto-execution. Loop tightens over time.&lt;/p&gt;

&lt;h2&gt;
  
  
  The question to ask before building
&lt;/h2&gt;

&lt;p&gt;Not &lt;em&gt;"is this model smart enough?"&lt;/em&gt; — that's the wrong frame. The useful question is:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;What's in control of what happens next?&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;If the answer is "the AI decides," the task better be open-ended and the consequences recoverable.&lt;/p&gt;

&lt;p&gt;If the answer is "a defined sequence decides, and the AI handles specific steps within it," you have something you can reason about, audit, and trust.&lt;/p&gt;

&lt;p&gt;For tools touching client comms, financial records, or anything hard to reverse: defined sequence with human review at the high-stakes steps. You can always loosen control as the system earns it. You can't un-send the email that went out while you were in a meeting.&lt;/p&gt;

&lt;p&gt;The Replit incident wasn't a failure of intelligence. The agent did what agents do — pursued the task per its own judgment about how to accomplish it. Lemkin needed a workflow. He got an agent. Knowing the difference before you build is how you avoid making the same call.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Building something that touches real data? On &lt;a href="https://rills.ai" rel="noopener noreferrer"&gt;Rills&lt;/a&gt;, approvals are free — you only pay for the actions that create value (AI calls, external APIs, integrations).&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>webdev</category>
      <category>architecture</category>
      <category>productivity</category>
    </item>
  </channel>
</rss>
