<?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: Wasim Sheikh</title>
    <description>The latest articles on DEV Community by Wasim Sheikh (@anciwasim).</description>
    <link>https://dev.to/anciwasim</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4124806%2F8b135459-4284-4c96-b849-753f453e7a89.jpg</url>
      <title>DEV Community: Wasim Sheikh</title>
      <link>https://dev.to/anciwasim</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/anciwasim"/>
    <language>en</language>
    <item>
      <title>Ship Gate: The Pre-Deploy Checklist Most AI Features Skip</title>
      <dc:creator>Wasim Sheikh</dc:creator>
      <pubDate>Thu, 17 Sep 2026 15:35:12 +0000</pubDate>
      <link>https://dev.to/anciwasim/ship-gate-the-pre-deploy-checklist-most-ai-features-skip-1do6</link>
      <guid>https://dev.to/anciwasim/ship-gate-the-pre-deploy-checklist-most-ai-features-skip-1do6</guid>
      <description>&lt;p&gt;Most AI features don't fail in the model.&lt;/p&gt;

&lt;p&gt;They fail at the gate.&lt;/p&gt;

&lt;p&gt;Someone demos a shiny prompt. Leadership loves it. It ships. Then a customer pastes something weird, an agent calls the wrong tool, or a "helpful" answer invents an offer that never existed. The postmortem is always the same: we optimized for the demo, not for production.&lt;/p&gt;

&lt;p&gt;I call the missing step &lt;strong&gt;Ship Gate&lt;/strong&gt; — a short, boring checklist you run before any AI feature leaves the sandbox. Not a 40-page risk memo. A gate you can clear in an afternoon.&lt;/p&gt;

&lt;h2&gt;
  
  
  Quick use case
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Situation.&lt;/strong&gt; A product team shipped an AI email summarizer into customer-facing replies. Staging looked clean. Leadership wanted it live before the quarter closed.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What broke.&lt;/strong&gt; Day one, the model invented a discount a customer had never been offered. Support scrambled. There was no eval set of "known trap" emails, no human gate on outbound AI text, and no kill switch short of a full deploy rollback.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The fix (Ship Gate).&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Threat model&lt;/strong&gt; — named "hallucinated commercial offers" as a top failure mode with an owner&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Data boundary&lt;/strong&gt; — outbound copy restricted to template fields; free-form claims blocked&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Eval set&lt;/strong&gt; — trap cases that fail the build if the model invents offers or leaks PII&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Human override&lt;/strong&gt; — outbound AI copy held until a human approves (or stricter template mode)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Observability&lt;/strong&gt; — one bad reply reconstructable in minutes: prompt, context, output, cost&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Then they added the ops layer every Ship Gate implies: canary traffic, a one-click kill switch, and a documented rollback owner before the flag flipped on.&lt;/p&gt;

&lt;p&gt;Ship Gate isn't bureaucracy. It's the minimum checklist so an AI feature earns production — instead of learning in front of customers.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why demos lie
&lt;/h2&gt;

&lt;p&gt;Demos are curated. You pick the happy path. You soft-prompt around the edge cases. You never paste a raw customer email with secrets still in it.&lt;/p&gt;

&lt;p&gt;Production is the opposite. Users paste junk. Models invent confident nonsense. Tools fire with the wrong args. Logs capture more than you think.&lt;/p&gt;

&lt;p&gt;If your only test was "it looked good in the meeting," you didn't ship AI — you shipped a vibe.&lt;/p&gt;

&lt;p&gt;Ship Gate exists to make that gap visible before customers feel it.&lt;/p&gt;

&lt;h2&gt;
  
  
  The five gates
&lt;/h2&gt;

&lt;p&gt;Run these in order. Fail any one and you don't ship. Pass all five and you can sleep.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Threat model (ten minutes, not a committee)
&lt;/h3&gt;

&lt;p&gt;Before code, write three sentences:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What can go wrong? (wrong answer, tool misuse, data leak, prompt injection, cost runaway)&lt;/li&gt;
&lt;li&gt;Who gets hurt? (customer, employee, your brand, a regulator)&lt;/li&gt;
&lt;li&gt;What's the blast radius? (one chat vs. every tenant)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you can't name the top three failure modes, you're not ready to build — you're ready to be surprised.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Data boundary
&lt;/h3&gt;

&lt;p&gt;Answer out loud:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What data can the model see?&lt;/li&gt;
&lt;li&gt;What can it write?&lt;/li&gt;
&lt;li&gt;What must never leave this boundary (PII, secrets, customer documents, internal tickets)?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Then enforce it in code, not in a slide. Strip secrets before the model. Scope tools to the minimum. Prefer retrieval over stuffing the whole corpus into context. If the model doesn't need a field, don't give it the field.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Eval set before polish
&lt;/h3&gt;

&lt;p&gt;Pick 20–50 real-ish cases: happy path, hostile prompts, empty input, long paste, "ignore previous instructions," the ticket that always breaks things.&lt;/p&gt;

&lt;p&gt;Score each on three axes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Correct enough for the job&lt;/li&gt;
&lt;li&gt;Safe enough (no leak, no unsafe action)&lt;/li&gt;
&lt;li&gt;Useful format (what the user actually needs)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Ship Gate rule: you don't tune the UI until the eval set is green enough that you'd trust a teammate to use the feature unsupervised.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Human override
&lt;/h3&gt;

&lt;p&gt;Every autonomous or semi-autonomous path needs an escape hatch:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Confirm before irreversible actions (send email, delete, charge, deploy)&lt;/li&gt;
&lt;li&gt;Log who approved what&lt;/li&gt;
&lt;li&gt;Make "stop / undo / escalate" obvious&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If the only recovery path is "hope the model was right," you don't have a product. You have a liability with a chat box.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Observability that a human can read
&lt;/h3&gt;

&lt;p&gt;When it breaks at 2 a.m., can you answer:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What did the user ask?&lt;/li&gt;
&lt;li&gt;What context did the model get?&lt;/li&gt;
&lt;li&gt;Which tools ran, with which args?&lt;/li&gt;
&lt;li&gt;What did we return?&lt;/li&gt;
&lt;li&gt;Cost and latency for that turn?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If the answer is "we'd have to dig through JSON for an hour," fix the logs before you grow the feature. Ship Gate isn't complete until a tired engineer can reconstruct a single bad turn.&lt;/p&gt;

&lt;h2&gt;
  
  
  A one-page Ship Gate card
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Gate&lt;/th&gt;
&lt;th&gt;Pass criteria&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Threat model&lt;/td&gt;
&lt;td&gt;Top 3 failure modes named + owner&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Data boundary&lt;/td&gt;
&lt;td&gt;See / write / never-leave documented + enforced&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Eval set&lt;/td&gt;
&lt;td&gt;≥20 cases; safe + useful bar met&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Human override&lt;/td&gt;
&lt;td&gt;Irreversible actions confirmed; stop path clear&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Observability&lt;/td&gt;
&lt;td&gt;One bad turn reconstructable in &amp;lt;5 minutes&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;No green across the board → no ship.&lt;/p&gt;

&lt;h2&gt;
  
  
  The test
&lt;/h2&gt;

&lt;p&gt;Ask one question before any AI feature goes live:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Which of the five gates is still red — and who owns fixing it?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;If nobody owns the red gate, you don't have a launch plan. You have a calendar date.&lt;/p&gt;




&lt;p&gt;I'm Wasim Sheikh — AI Architect. I build systems teams trust and organizations depend on: not demos, not proofs of concept — production.&lt;/p&gt;

&lt;p&gt;Canonical: &lt;a href="https://sheikhwasim.com/insights/ship-gate-pre-deploy-checklist/" rel="noopener noreferrer"&gt;https://sheikhwasim.com/insights/ship-gate-pre-deploy-checklist/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>productivity</category>
      <category>architecture</category>
      <category>devops</category>
    </item>
    <item>
      <title>The 5-Layer Stack Behind Agents That Ship</title>
      <dc:creator>Wasim Sheikh</dc:creator>
      <pubDate>Mon, 14 Sep 2026 15:59:29 +0000</pubDate>
      <link>https://dev.to/anciwasim/the-5-layer-stack-behind-agents-that-ship-ee9</link>
      <guid>https://dev.to/anciwasim/the-5-layer-stack-behind-agents-that-ship-ee9</guid>
      <description>&lt;p&gt;Originally published on my site: &lt;a href="https://sheikhwasim.com/insights/agent-architecture-five-layer-stack/" rel="noopener noreferrer"&gt;https://sheikhwasim.com/insights/agent-architecture-five-layer-stack/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Most "AI agents" fail for the same reason.&lt;/p&gt;

&lt;p&gt;Someone wires a language model to a handful of tools, demos a happy path, and calls it architecture. It works in the slide. It collapses the first time production is messy  timeouts, bad inputs, spend spikes, irreversible side effects.&lt;/p&gt;

&lt;p&gt;Here's the five-layer stack that actually ships.&lt;/p&gt;

&lt;h2&gt;
  
  
  Quick use case
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Situation.&lt;/strong&gt; A team built an internal "support triage agent." Demo day looked sharp: read a ticket, call search, suggest a reply, update CRM status.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What broke.&lt;/strong&gt; In production, one vague ticket sent the agent into a 40-step tool loop. It wrote the wrong CRM status, and spend spiked past the monthly budget in an afternoon. Chat logs showed answers — not &lt;em&gt;which&lt;/em&gt; tool ran, with what inputs, or why it kept going. The CRM write couldn't be cleanly reversed.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The fix (mapped to the stack).&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Orchestrator&lt;/strong&gt; — hard max steps + stop when confidence is low&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tools&lt;/strong&gt; — typed CRM update with auth scope + idempotency key&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Traces&lt;/strong&gt; — every plan / tool call / result / cost on one correlation ID&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Guardrails&lt;/strong&gt; — daily spend cap + deny list for irreversible tools without a human gate&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Rollback&lt;/strong&gt; — compensating "revert status" action when the write was wrong&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Same model. Different system. That's the difference between a demo and something teams can trust.&lt;/p&gt;

&lt;h2&gt;
  
  
  Layer 1 — Orchestrator
&lt;/h2&gt;

&lt;p&gt;The orchestrator decides the &lt;strong&gt;next step&lt;/strong&gt;. It is not the model dumping text forever.&lt;/p&gt;

&lt;p&gt;Good orchestrators:&lt;/p&gt;

&lt;p&gt;Tools are clear APIs, not mystery side effects.&lt;/p&gt;

&lt;p&gt;Ship-ready tools have:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Auth and scoped credentials&lt;/li&gt;
&lt;li&gt;Typed inputs and validated outputs&lt;/li&gt;
&lt;li&gt;Timeouts, rate limits, and idempotency keys&lt;/li&gt;
&lt;li&gt;Explicit success / failure contracts&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A tool that "usually works" is a liability. Prefer boring interfaces over clever ones.&lt;/p&gt;

&lt;h2&gt;
  
  
  Layer 3 — Traces
&lt;/h2&gt;

&lt;p&gt;Every step logged so you can see what it did — and why.&lt;/p&gt;

&lt;p&gt;Traces are how you debug, audit, and improve:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Prompt / plan / tool call / result / decision&lt;/li&gt;
&lt;li&gt;Timing and cost per step&lt;/li&gt;
&lt;li&gt;Correlation IDs across services&lt;/li&gt;
&lt;li&gt;Redaction for secrets and PII&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you can't replay the path, you can't trust the system in an enterprise.&lt;/p&gt;

&lt;h2&gt;
  
  
  Layer 4 — Guardrails
&lt;/h2&gt;

&lt;p&gt;Budget, permissions, PII, and stop conditions — &lt;strong&gt;before&lt;/strong&gt; it runs wild.&lt;/p&gt;

&lt;p&gt;Guardrails belong in the control plane, not in a polite system prompt:&lt;/p&gt;

&lt;p&gt;If it's wrong, you reverse it. Idempotent actions beat clever guesses.&lt;/p&gt;

&lt;p&gt;Design for undo:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Prefer reversible writes&lt;/li&gt;
&lt;li&gt;Snapshot before mutate&lt;/li&gt;
&lt;li&gt;Compensating transactions when undo isn't free&lt;/li&gt;
&lt;li&gt;Clear "blast radius" for every tool&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;An agent that can't roll back isn't a system. It's a demo with confidence.&lt;/p&gt;

&lt;h2&gt;
  
  
  The test
&lt;/h2&gt;

&lt;p&gt;Ask one question of any agent stack:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Can it show traces, and can it roll back?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;If either answer is no, keep it out of production.&lt;/p&gt;

&lt;h2&gt;
  
  
  Closing
&lt;/h2&gt;

&lt;p&gt;I'm Wasim Sheikh — AI Architect. I build systems teams trust and organizations depend on: not demos, not proofs of concept — production.&lt;/p&gt;

&lt;p&gt;Follow for practical AI architecture that ships.&lt;br&gt;
Site: &lt;a href="https://sheikhwasim.com" rel="noopener noreferrer"&gt;https://sheikhwasim.com&lt;/a&gt; · Notes: &lt;a href="https://practicalainotes.substack.com/" rel="noopener noreferrer"&gt;https://practicalainotes.substack.com/&lt;/a&gt; · X: &lt;a href="https://x.com/anciwasim" rel="noopener noreferrer"&gt;https://x.com/anciwasim&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Spend and token caps&lt;/li&gt;
&lt;li&gt;Allow / deny lists for tools and data&lt;/li&gt;
&lt;li&gt;Human gates for irreversible actions&lt;/li&gt;
&lt;li&gt;Policy checks on inputs and outputs&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Prompts are guidance. Guardrails are enforcement.&lt;/p&gt;

&lt;h2&gt;
  
  
  Layer 5 — Rollback
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Choose among plan  act  verify → stop&lt;/li&gt;
&lt;li&gt;Bound loop length and retry policy&lt;/li&gt;
&lt;li&gt;Separate "thinking" from "committing"&lt;/li&gt;
&lt;li&gt;Fail closed when confidence or evidence is weak&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If your system can't explain &lt;em&gt;why&lt;/em&gt; it took the next action, you don't have an orchestrator — you have a chat session with plugins.&lt;/p&gt;

&lt;h2&gt;
  
  
  Layer 2 — Tools
&lt;/h2&gt;

</description>
      <category>ai</category>
      <category>agents</category>
      <category>architecture</category>
      <category>llm</category>
    </item>
  </channel>
</rss>
