<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[Balu Sudhakar: Building the AI Foundation]]></title><description><![CDATA[A vendor-neutral, seven-layer way to build enterprise AI that outlasts any tool or model. For IT leaders, from 25 years of ERP delivery and a home lab.]]></description><link>https://menonstack.com/s/building-the-ai-foundation</link><image><url>https://substackcdn.com/image/fetch/$s_!9Zhe!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa83fab32-9da7-4f6d-967c-8f2241acb792_1024x1024.jpeg</url><title>Balu Sudhakar: Building the AI Foundation</title><link>https://menonstack.com/s/building-the-ai-foundation</link></image><generator>Substack</generator><lastBuildDate>Sat, 24 Oct 2026 04:26:38 GMT</lastBuildDate><atom:link href="https://menonstack.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Balu Sudhakar]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[balumenon@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[balumenon@substack.com]]></itunes:email><itunes:name><![CDATA[Balu Sudhakar]]></itunes:name></itunes:owner><itunes:author><![CDATA[Balu Sudhakar]]></itunes:author><googleplay:owner><![CDATA[balumenon@substack.com]]></googleplay:owner><googleplay:email><![CDATA[balumenon@substack.com]]></googleplay:email><googleplay:author><![CDATA[Balu Sudhakar]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[Building the AI Foundation, Part 4: The Control Plane]]></title><description><![CDATA[The Tuesday question, and the layer that answers it in five minutes instead of five days]]></description><link>https://menonstack.com/p/building-the-ai-foundation-part-4</link><guid isPermaLink="false">https://menonstack.com/p/building-the-ai-foundation-part-4</guid><dc:creator><![CDATA[Balu Sudhakar]]></dc:creator><pubDate>Fri, 23 Oct 2026 12:46:34 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/ebfa42ec-e3ca-4370-a741-829eca43567c_2400x1254.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="callout-block" data-callout="true"><p><strong>Series: Building the AI Foundation</strong> Part 4:  <a href="https://menonstack.com/p/stop-picking-ai-tools-start-building">Part 1: Stop Picking AI Tools</a> laid out the seven-layer architecture. <a href="https://menonstack.com/p/building-the-ai-foundation-part-2">Part 2: The Context Layer</a> covered how AI reaches your systems. <a href="https://menonstack.com/p/building-the-ai-foundation-part-3a">Part 3a: The Developer Gate</a> and <a href="https://menonstack.com/p/building-the-ai-foundation-part-3b">Part 3b: The Operations Gate</a> covered how changes get reviewed, for code and for plant records. This piece covers layer seven, the control plane. Part 5 covers how the tool-facing layers plug into all of it.</p></div><p>Here&#8217;s a question I&#8217;d like you to try on your own shop: which AI agent issued a customer credit last Tuesday? If you can&#8217;t say, you&#8217;re in good company. Most of us have logs. Very few of us have an answer.</p><p>Picture the morning. Your controller walks over and says a batch of customer credits posted overnight, $38,000 in all, and nobody in customer service remembers approving them. You pull the access log from Part 2 and see an agent read a customer&#8217;s order history at 2:07 a.m. You pull the change log from Part 3b and see a credit memo proposed at 2:11 and approved at 2:14. Now the real questions start. Which agent was it? Whose agent? Was that 2:14 approval a person thinking, or a person clicking? What did the run cost, and what else did it touch before it stopped?</p><p>&#8220;Let me get back to you&#8221; is where most of us land, and it can take a week.</p><p>The layer that turns that week into five minutes is the control plane. It&#8217;s layer seven, and if I were rebuilding my own stack from scratch, it&#8217;s the one I&#8217;d put in first.</p><h2>Five jobs, no product</h2><p>You can&#8217;t buy a control plane. It&#8217;s five jobs that somebody has to do: identity, policy, gateway, audit and cost. Skip them and you&#8217;ll still end up doing them, just one incident at a time and at a worse price. I&#8217;d rather we chose to do them on purpose.</p><p><strong>Identity.</strong> Every request carries a person or a named agent. Never a shared key.</p><p><strong>Policy.</strong> The data classification from Part 1 becomes rules a system enforces, not a PDF.</p><p><strong>Gateway.</strong> One path for the model calls you own, where policy applies, sensitive fields get redacted and everything gets logged.</p><p><strong>Audit.</strong> One record that joins what an agent read, what it proposed and who approved it.</p><p><strong>Cost.</strong> Budgets and caps per team and per agent, with alerts that fire before the invoice does.</p><p>I&#8217;m not the only one who frames it this way. BCG tells CIOs to <a href="https://www.bcg.com/publications/2026/how-cios-govern-ai-agents-at-scale">separate the control layer from the build layer</a>, and Forrester now <a href="https://www.forrester.com/blogs/announcing-our-evaluation-of-the-agent-control-plane-market/">evaluates the agent control plane as its own market</a>. It&#8217;s reassuring to see the idea has company. The work, though, still lands on us.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!pXR8!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad8a5af1-286e-424c-b2e8-28ecc0d25b56_3200x1920.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!pXR8!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad8a5af1-286e-424c-b2e8-28ecc0d25b56_3200x1920.png 424w, https://substackcdn.com/image/fetch/$s_!pXR8!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad8a5af1-286e-424c-b2e8-28ecc0d25b56_3200x1920.png 848w, https://substackcdn.com/image/fetch/$s_!pXR8!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad8a5af1-286e-424c-b2e8-28ecc0d25b56_3200x1920.png 1272w, https://substackcdn.com/image/fetch/$s_!pXR8!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad8a5af1-286e-424c-b2e8-28ecc0d25b56_3200x1920.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!pXR8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad8a5af1-286e-424c-b2e8-28ecc0d25b56_3200x1920.png" width="1456" height="874" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ad8a5af1-286e-424c-b2e8-28ecc0d25b56_3200x1920.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:874,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1386281,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://menonstack.com/i/220935831?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad8a5af1-286e-424c-b2e8-28ecc0d25b56_3200x1920.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!pXR8!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad8a5af1-286e-424c-b2e8-28ecc0d25b56_3200x1920.png 424w, https://substackcdn.com/image/fetch/$s_!pXR8!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad8a5af1-286e-424c-b2e8-28ecc0d25b56_3200x1920.png 848w, https://substackcdn.com/image/fetch/$s_!pXR8!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad8a5af1-286e-424c-b2e8-28ecc0d25b56_3200x1920.png 1272w, https://substackcdn.com/image/fetch/$s_!pXR8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad8a5af1-286e-424c-b2e8-28ecc0d25b56_3200x1920.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><em>The control plane sits under everything else. Audit is where the two sets of logs finally meet</em></figcaption></figure></div><h2>Start with who</h2><p>Everything else on the list depends on identity, so let&#8217;s begin there.</p><p>Go back to the 2:07 a.m. story and suppose the agent ran under a shared service account. Part 2&#8217;s log says the integration account read the order history. Part 3b&#8217;s log says the integration account proposed the credit. Both statements are true, and neither helps. You still can&#8217;t tell which agent it was, which team owns it, or whether a human was anywhere near the request.</p><p>This isn&#8217;t only a tidiness problem. The worst agent-related breach I came across while researching this piece wasn&#8217;t a model going rogue. In the 2025 Salesloft Drift incident, <a href="https://thehackernews.com/2025/08/salesloft-oauth-breach-via-drift-ai.html">attackers used stolen OAuth tokens tied to an AI chat agent to pull data out of customers&#8217; Salesforce instances</a>. The agent&#8217;s identity was the front door.</p><p>The rule I&#8217;d suggest is simple. When an agent acts for a person, that person&#8217;s identity travels with the request. When it runs on its own schedule, it gets a named identity of its own, scoped to what it needs, with a human owner on record. When that owner changes roles, the agent&#8217;s access gets reviewed the same day theirs does.</p><p>It&#8217;s dull work. It&#8217;s also the difference between a five-minute answer and a five-day one.</p><h2>A policy nobody enforces is a wish</h2><p>I&#8217;m fond of the one-page data classification from Part 1, because people actually remember it. But a page people remember still depends on people remembering it at 4:45 on a Friday, and none of us is at our best then.</p><p>So make each tier something a machine checks. Public and internal data can go to approved assistants. Confidential data goes only to tools under enterprise terms whose retention you&#8217;ve read yourself. Restricted data, meaning HR, payroll and customer personal information, stays on the private tier or stays out of AI altogether. The check lives in the gateway and in each tool&#8217;s admin settings, where it runs every time, whether anyone remembers or not. OWASP&#8217;s guidance on <a href="https://genai.owasp.org/llmrisk/llm062025-excessive-agency/">excessive agency</a> lands in the same place: enforce authorization in the downstream system and don&#8217;t ask the model to police itself.</p><p>There&#8217;s a newer piece worth watching here. A new class of decision models returns a typed answer, such as a choice from a fixed list or a yes/no probability with a confidence score, instead of free text. TypeSafe AI&#8217;s <a href="https://siliconangle.com/2026-09-16/typesafe-ai-exits-stealth-with-40m-to-build-ai-for-use-by-software/">Jev</a> is one, and OpenAI has announced a Decisions API along similar lines. In a gateway, that kind of model could check a request against your data tiers and return an answer your audit log can store as-is. It&#8217;s early, the vendor claims aren&#8217;t independently verified, and I&#8217;d test any of them on your own data first. I&#8217;ll give it a full article in Part 5.</p><h2>The gateway trap</h2><p>This is the mistake I&#8217;d most like to save you from. A team builds a gateway, routes a few calls through it, feels covered, and quietly misses most of the real usage.</p><p>A gateway only sees what goes through it. ChatGPT Enterprise, Microsoft 365 Copilot and GitHub Copilot are hosted services with their own front doors, and you can&#8217;t route them through yours. You govern them from the admin side: single sign-on, the vendor&#8217;s console, and the audit export. The gateway earns its keep on everything you build or call by API, which means internal agents, the MCP servers from Part 2, scripts and local models.</p><p>Two paths, one destination.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Z79Q!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0091fc5-c752-43c9-b905-4fd0687587b4_3200x1800.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Z79Q!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0091fc5-c752-43c9-b905-4fd0687587b4_3200x1800.png 424w, https://substackcdn.com/image/fetch/$s_!Z79Q!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0091fc5-c752-43c9-b905-4fd0687587b4_3200x1800.png 848w, https://substackcdn.com/image/fetch/$s_!Z79Q!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0091fc5-c752-43c9-b905-4fd0687587b4_3200x1800.png 1272w, https://substackcdn.com/image/fetch/$s_!Z79Q!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0091fc5-c752-43c9-b905-4fd0687587b4_3200x1800.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!Z79Q!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0091fc5-c752-43c9-b905-4fd0687587b4_3200x1800.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f0091fc5-c752-43c9-b905-4fd0687587b4_3200x1800.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1337297,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://menonstack.com/i/220935831?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0091fc5-c752-43c9-b905-4fd0687587b4_3200x1800.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Z79Q!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0091fc5-c752-43c9-b905-4fd0687587b4_3200x1800.png 424w, https://substackcdn.com/image/fetch/$s_!Z79Q!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0091fc5-c752-43c9-b905-4fd0687587b4_3200x1800.png 848w, https://substackcdn.com/image/fetch/$s_!Z79Q!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0091fc5-c752-43c9-b905-4fd0687587b4_3200x1800.png 1272w, https://substackcdn.com/image/fetch/$s_!Z79Q!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0091fc5-c752-43c9-b905-4fd0687587b4_3200x1800.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><em>Hosted tools get governed from the admin side. Everything you build goes through the gateway.</em></figcaption></figure></div><h2>Make Tuesday a five-minute question</h2><p>Joining the logs takes one habit. Every event carries the same identity and a shared session or request ID. Once that&#8217;s true, the 2:07 a.m. mystery becomes a single thread you can pull: the agent pulled the customer&#8217;s order history (Part 2&#8217;s log), proposed a credit in the same session (Part 3b&#8217;s log), and at 2:14 an owner approved it. Or nobody did, which is also an answer.</p><p>I&#8217;d also keep a second record of your own rather than leaning on a vendor&#8217;s log alone. In 2025 a researcher reported that Microsoft 365 Copilot could be <a href="https://petri.com/microsoft-fixes-copilot-flaw-audit-logs/">prompted to skip recording the files it had accessed</a>, and Microsoft fixed it in August. That&#8217;s one researcher&#8217;s account, so I&#8217;d hold it loosely, but it&#8217;s a fair reason to cross-check.</p><p>If you run a regulated plant, the bar is already written down. FDA&#8217;s <a href="https://www.ecfr.gov/current/title-21/chapter-I/subchapter-A/part-11/subpart-B/section-11.10">21 CFR 11.10(e)</a> calls for secure, time-stamped, computer-generated audit trails of operator actions. I haven&#8217;t found a public case of a manufacturer applying that to AI-made BOM or routing changes. That&#8217;s my argument rather than settled practice, and I expect we&#8217;ll see it asked for soon.</p><p>You don&#8217;t need a perfect system to start. You need three answers, fast. What did this agent read and change in the last week? Who approved each change? What did this person&#8217;s tools cost?</p><h2>The invoice shouldn&#8217;t be your first alert</h2><p>Pricing moved under all of us this year. OpenAI shifted Codex to token-based credits in April. GitHub moved Copilot to usage-based AI Credits on June 1. A seat price used to tell you roughly what you&#8217;d pay. Now it tells you the entry fee.</p><p>Agents turn that up a notch, since one unattended agent stuck in a loop can use more than a team of people typing. My suggestion: set a budget per team and per agent, alert at half and again at eighty percent, and use hard limits wherever the tool supports them. ChatGPT Enterprise workspace owners can set usage alerts and hard overage limits, and GitHub admins can set budgets with expiration dates on individual users. Turn them on day one. I&#8217;ve yet to meet anyone who regretted a cap that fired early.</p><h2>Five ways this goes sideways</h2><p>These are the patterns I&#8217;d watch for.</p><p><strong>The shared account.</strong> Something breaks and the investigation ends at &#8220;the integration account did it.&#8221;</p><p><strong>The gateway nobody uses.</strong> Engineers paste code into personal accounts that never touched it. The gateway was fine. The coverage wasn&#8217;t.</p><p><strong>The PDF policy.</strong> The data policy exists as a document with nothing enforcing it, and the first audit finds three tools nobody approved.</p><p><strong>Four logs, zero joins.</strong> The evidence exists, in four places. A five-minute question takes a week.</p><p><strong>The surprise invoice.</strong> Someone learns what an agent cost from the bill.</p><h2>What building this taught me</h2><p>When I wrote the AI adoption plan for my own IT organization, single sign-on, the data policy, device management and repository rules all went into Phase 0, ahead of any broad rollout. People reasonably asked why we were doing the paperwork before the interesting part.</p><p>My answer was retrofits. Add identity after two hundred people already use a tool and you re-onboard two hundred people. Add it first and nobody notices it happened. Everything that feels like slowing down at the start becomes the reason we can say yes quickly later.</p><h2>Where this leaves you</h2><p>Nobody buys a control plane for the demo, and it never makes a keynote. It only gets noticed the day something goes wrong, and by then it&#8217;s either there or it isn&#8217;t.</p><p>Here&#8217;s a test you can run Monday. Pick one agent in your environment, any one, and try to answer four things: what it read, what it proposed, who approved it, and what it cost last week. Time yourself. If it takes more than a few minutes, you&#8217;ve found your first project, and I&#8217;d love to hear how it goes.</p><p>That&#8217;s the article. Subscribers have access to the working files below:</p><ul><li><p>The Tuesday-question worksheet (fillable PDF)</p></li><li><p>Policy as rules: the data tiers</p></li><li><p>Budgets and alerts</p></li><li><p>What the hosted vendors keep, and where it runs out</p></li><li><p>The Phase 0 checklist (fillable PDF)</p></li></ul><p>If you can&#8217;t see them, all you need to do is subscribe to <a href="http://menonstack.com">menonstack.com</a> using the button below.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://menonstack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">For subscribers: the working files behind Part 4. Copy them, adapt them, and put your own names in.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div class="callout-block" data-callout="true"><p><strong>Next in this series: Part 5,</strong> where small decision models earn a place in the gates and the control plane. After that, Part 6 covers how the tool-facing layers, the assistants, the editors and the delegated agents, plug into everything built so far.</p></div>
      <p>
          <a href="https://menonstack.com/p/building-the-ai-foundation-part-4">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[Building the AI Foundation, Part 3b: The Business-User Gate]]></title><description><![CDATA[Why a BOM, a routing step, and a quality disposition need the same discipline a pull request already has]]></description><link>https://menonstack.com/p/building-the-ai-foundation-part-3b</link><guid isPermaLink="false">https://menonstack.com/p/building-the-ai-foundation-part-3b</guid><dc:creator><![CDATA[Balu Sudhakar]]></dc:creator><pubDate>Thu, 15 Oct 2026 19:08:17 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/408638de-3ea2-4c5b-9046-4189ee57be80_2400x1254.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="callout-block" data-callout="true"><p><strong>Series: Building the AI Foundation</strong> &#8212; Part 3b of 3a/3b. <a href="https://menonstack.com/p/stop-picking-ai-tools-start-building">Part 1: Stop Picking AI Tools</a> laid out the seven-layer architecture. <a href="https://menonstack.com/p/building-the-ai-foundation-part-2?r=18vdow">Part 2: The Context Layer</a> covered how AI reaches your systems. <a href="https://menonstack.com/p/building-the-ai-foundation-part-3a?r=18vdow">Part 3a</a> covered layer six for developers. This piece covers the same layer for manufacturing and ERP operations. Part 4 will cover the control plane.</p></div><p><a href="https://app.notion.com/p/Building-the-AI-Foundation-Part-3a-The-Developer-Gate-3eb89a0e18a48180acdff1b1609b1700?pvs=21">Part 3a</a> covered the system-of-record layer from the developer side: one gate, no exceptions, and twenty years of tooling built to enforce it. This is the other half, and I&#8217;m writing it from the floor, not the office. The planner whose ERP now has an AI copilot suggesting reorder points. The quality engineer whose disposition assistant drafts a nonconformance resolution. The process engineer whose routing just got updated by an agent that read a work instruction and decided it knew better. All of them are changing systems of record every day, and almost none of them have a gate.</p><p>I&#8217;m focusing this on manufacturing and ERP specifically, since that&#8217;s where I&#8217;ve spent 25 years and where I think the stakes are different from a typical back-office example. A miscategorized sales lead is embarrassing. A wrong substitute component on a bill of materials can ship a defective unit, and in some industries, that&#8217;s not a business problem, it&#8217;s a regulatory one.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://menonstack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2>What&#8217;s actually happening</h2><p>An AI copilot inside the ERP updates a bill of materials, swapping a component for an approved substitute, based on a supply shortage it read about in a planning note. A quality assistant closes out a nonconformance disposition because the defect looked similar to one it had closed before. A planning copilot adjusts safety stock on a critical part because demand looked flat for two weeks. A routing gets a new standard time because an agent recalculated it from recent cycle data. Genie, or a similar tool, answers an OEE or yield question by writing its own query against the plant&#8217;s data.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!peqv!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b359950-57b1-4e99-9ec7-fce20b36ef03_3200x2120.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!peqv!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b359950-57b1-4e99-9ec7-fce20b36ef03_3200x2120.png 424w, https://substackcdn.com/image/fetch/$s_!peqv!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b359950-57b1-4e99-9ec7-fce20b36ef03_3200x2120.png 848w, https://substackcdn.com/image/fetch/$s_!peqv!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b359950-57b1-4e99-9ec7-fce20b36ef03_3200x2120.png 1272w, https://substackcdn.com/image/fetch/$s_!peqv!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b359950-57b1-4e99-9ec7-fce20b36ef03_3200x2120.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!peqv!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b359950-57b1-4e99-9ec7-fce20b36ef03_3200x2120.png" width="1456" height="965" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5b359950-57b1-4e99-9ec7-fce20b36ef03_3200x2120.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:965,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1350409,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://menonstack.com/i/218576309?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b359950-57b1-4e99-9ec7-fce20b36ef03_3200x2120.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!peqv!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b359950-57b1-4e99-9ec7-fce20b36ef03_3200x2120.png 424w, https://substackcdn.com/image/fetch/$s_!peqv!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b359950-57b1-4e99-9ec7-fce20b36ef03_3200x2120.png 848w, https://substackcdn.com/image/fetch/$s_!peqv!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b359950-57b1-4e99-9ec7-fce20b36ef03_3200x2120.png 1272w, https://substackcdn.com/image/fetch/$s_!peqv!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b359950-57b1-4e99-9ec7-fce20b36ef03_3200x2120.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>In each case, something that used to require an engineer&#8217;s or a planner&#8217;s deliberate judgment now happens because an AI decided it should. In most plants I&#8217;ve seen, nothing stands between that decision and it becoming the official version of the record.</p><h2>What &#8220;system of record&#8221; means on the floor</h2><p>A system of record is wherever an organization keeps the trusted version of something, plus the process that decides what earns that status. On the floor, that&#8217;s the item master, the bill of materials, the routing, the production order, and the quality notification, all living inside the ERP, with a process that&#8217;s supposed to govern changes to each one. Most of those processes were built assuming a person made every change. None of them were built assuming an AI agent might.</p><p>If your plant doesn&#8217;t have that process updated for AI involvement, sit with what that likely means. An agent has probably already touched a BOM, a routing, or a quality disposition, and nobody flagged it as different from a change an engineer made by hand. It won&#8217;t look like a safety incident. Nothing shuts down. A substitute part gets used that engineering never formally approved, or a quality hold gets released based on a disposition nobody double-checked, and you don&#8217;t find out until an audit, a customer complaint, or worse.</p><h2>Why none of this works without governed data</h2><p>Every check I describe below assumes something underneath it: that the data feeding the check is itself reliable. A BOM reconciliation check only works if engineering&#8217;s approved revision is the one actually sitting in the system. A routing change check only means something if the standard times it&#8217;s comparing against reflect current reality, not a routing that was updated informally six months ago and never synced back. A quality rule check depends on a defect taxonomy that means the same thing in every plant, not one that&#8217;s been redefined locally three different ways.</p><p>This part is easy to skip, because it doesn&#8217;t look like a system-of-record problem. It looks like a master-data problem, which sounds smaller and further upstream. It isn&#8217;t smaller. Governed data, meaning data with clear ownership, a known schema, defined lineage, and accountable stewardship, is the precondition for everything else in this piece. I&#8217;ve watched a single item master discrepancy between two plants on the same ERP instance cause a planning error that took weeks to trace back to its source. An AI agent making decisions on top of that same discrepancy doesn&#8217;t fix the problem. It just makes the wrong decision faster, and with more apparent confidence.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!WVJb!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F08f25e5d-30ed-4dcf-afb8-cf60a657bb46_3200x1640.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!WVJb!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F08f25e5d-30ed-4dcf-afb8-cf60a657bb46_3200x1640.png 424w, https://substackcdn.com/image/fetch/$s_!WVJb!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F08f25e5d-30ed-4dcf-afb8-cf60a657bb46_3200x1640.png 848w, https://substackcdn.com/image/fetch/$s_!WVJb!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F08f25e5d-30ed-4dcf-afb8-cf60a657bb46_3200x1640.png 1272w, https://substackcdn.com/image/fetch/$s_!WVJb!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F08f25e5d-30ed-4dcf-afb8-cf60a657bb46_3200x1640.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!WVJb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F08f25e5d-30ed-4dcf-afb8-cf60a657bb46_3200x1640.png" width="1456" height="746" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/08f25e5d-30ed-4dcf-afb8-cf60a657bb46_3200x1640.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:746,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1159102,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://menonstack.com/i/218576309?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F08f25e5d-30ed-4dcf-afb8-cf60a657bb46_3200x1640.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!WVJb!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F08f25e5d-30ed-4dcf-afb8-cf60a657bb46_3200x1640.png 424w, https://substackcdn.com/image/fetch/$s_!WVJb!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F08f25e5d-30ed-4dcf-afb8-cf60a657bb46_3200x1640.png 848w, https://substackcdn.com/image/fetch/$s_!WVJb!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F08f25e5d-30ed-4dcf-afb8-cf60a657bb46_3200x1640.png 1272w, https://substackcdn.com/image/fetch/$s_!WVJb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F08f25e5d-30ed-4dcf-afb8-cf60a657bb46_3200x1640.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Every check in this piece assumes the data underneath it is already trustworthy.</figcaption></figure></div><p>This is also where Part 2 connects directly to this layer. The curated layer with shared definitions that <em>The Context Layer</em> described sitting in front of multiple ERPs is what makes a downstream BOM or routing reconciliation check meaningful in the first place. Skip that layer, and every check described here validates a change against data nobody has actually agreed on, plant to plant.</p><p>Developers get a warning when this goes wrong, since a bad schema tends to break a build loudly, as Part 3a covers. A plant doesn&#8217;t get that warning. A BOM that means something different in two plants doesn&#8217;t break anything visibly. It just makes every downstream production order, and every automated check built on top of it, quietly wrong at the same time.</p><h2>The gate this layer needs</h2><p>A change to a BOM, a routing, or a quality disposition should move through something structurally similar to a pull request: a proposed edit, a check against whatever rules govern that record, review by whoever owns it, and only then adoption as the official version. Developers have tooling for every step of that, covered in Part 3a. Most ERPs have the last step, a save or a transaction code that commits the change, and not much enforcing what comes before it when an AI made the proposal.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!tSw-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa58b54a8-9721-4a21-b9d0-32ae3fe6d0cb_3200x2120.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!tSw-!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa58b54a8-9721-4a21-b9d0-32ae3fe6d0cb_3200x2120.png 424w, https://substackcdn.com/image/fetch/$s_!tSw-!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa58b54a8-9721-4a21-b9d0-32ae3fe6d0cb_3200x2120.png 848w, https://substackcdn.com/image/fetch/$s_!tSw-!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa58b54a8-9721-4a21-b9d0-32ae3fe6d0cb_3200x2120.png 1272w, https://substackcdn.com/image/fetch/$s_!tSw-!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa58b54a8-9721-4a21-b9d0-32ae3fe6d0cb_3200x2120.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!tSw-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa58b54a8-9721-4a21-b9d0-32ae3fe6d0cb_3200x2120.png" width="1456" height="965" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a58b54a8-9721-4a21-b9d0-32ae3fe6d0cb_3200x2120.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:965,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1350409,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://menonstack.com/i/218576309?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa58b54a8-9721-4a21-b9d0-32ae3fe6d0cb_3200x2120.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!tSw-!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa58b54a8-9721-4a21-b9d0-32ae3fe6d0cb_3200x2120.png 424w, https://substackcdn.com/image/fetch/$s_!tSw-!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa58b54a8-9721-4a21-b9d0-32ae3fe6d0cb_3200x2120.png 848w, https://substackcdn.com/image/fetch/$s_!tSw-!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa58b54a8-9721-4a21-b9d0-32ae3fe6d0cb_3200x2120.png 1272w, https://substackcdn.com/image/fetch/$s_!tSw-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa58b54a8-9721-4a21-b9d0-32ae3fe6d0cb_3200x2120.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>An engineering change control process can stand in for branch protection.</strong> A BOM or routing edit shouldn&#8217;t go live until it clears the same formal review a human-initiated change would require, whatever tool proposed it.</p><p><strong>Quality and engineering rules can stand in for automated tests.</strong> Does this substitute component appear on the approved list for this item. Does this routing change fall within the standard-time variance engineering allows. Does this disposition match a defect code that&#8217;s actually been delegated for automatic resolution.</p><p><strong>A named owner can stand in for CODEOWNERS.</strong> A BOM change routes to engineering. A quality disposition routes to the quality engineer of record. A safety stock change routes to the planner who owns that part family.</p><p><strong>The merge-rights rule from Part 1 applies here too.</strong> An agent can propose a change to any of these. A person decides whether it becomes official.</p><h2>Traceability</h2><p>Most ERPs already keep change documents, so you can usually see that a BOM or a routing changed and when. What they rarely tell you is whether an AI copilot proposed that change on its own initiative, what it based the change on, or whether anyone with the right authority reviewed it before it went live. Quality systems are often worse, especially once an AI assistant is drafting disposition language directly into a record with no trail that distinguishes it from an engineer&#8217;s own notes. Genie sharpens the same problem for plant analytics, since someone can generate an OEE or yield number through a conversational query with no artifact resembling a change document behind it. Even where a record of change exists, a record of AI involvement usually doesn&#8217;t.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!9s2a!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce75dc17-dce9-44c3-8cf9-9a707555e2e1_3200x1672.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!9s2a!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce75dc17-dce9-44c3-8cf9-9a707555e2e1_3200x1672.png 424w, https://substackcdn.com/image/fetch/$s_!9s2a!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce75dc17-dce9-44c3-8cf9-9a707555e2e1_3200x1672.png 848w, https://substackcdn.com/image/fetch/$s_!9s2a!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce75dc17-dce9-44c3-8cf9-9a707555e2e1_3200x1672.png 1272w, https://substackcdn.com/image/fetch/$s_!9s2a!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce75dc17-dce9-44c3-8cf9-9a707555e2e1_3200x1672.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!9s2a!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce75dc17-dce9-44c3-8cf9-9a707555e2e1_3200x1672.png" width="1456" height="761" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ce75dc17-dce9-44c3-8cf9-9a707555e2e1_3200x1672.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:761,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1114096,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://menonstack.com/i/218576309?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce75dc17-dce9-44c3-8cf9-9a707555e2e1_3200x1672.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!9s2a!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce75dc17-dce9-44c3-8cf9-9a707555e2e1_3200x1672.png 424w, https://substackcdn.com/image/fetch/$s_!9s2a!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce75dc17-dce9-44c3-8cf9-9a707555e2e1_3200x1672.png 848w, https://substackcdn.com/image/fetch/$s_!9s2a!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce75dc17-dce9-44c3-8cf9-9a707555e2e1_3200x1672.png 1272w, https://substackcdn.com/image/fetch/$s_!9s2a!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce75dc17-dce9-44c3-8cf9-9a707555e2e1_3200x1672.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><em>Mostly a gap, and why it matters.</em></figcaption></figure></div><h2>Review at scale, without a queue</h2><p>Developers have a capacity problem, covered in Part 3a: AI-assisted pull request volume outpacing human review capacity. Manufacturing has a different problem, and it isn&#8217;t about volume. Most plants never had a review role for this kind of change in the first place, whether the change came from a person or an AI. There&#8217;s no queue to overwhelm, because nobody built a queue. A planner might notice a safety stock level looks off. A stockout or a quality escape is often the first time anyone looks closely enough to ask where a number actually came from.</p><h2>Where this connects back to The Context Layer</h2><p>Part 2&#8217;s registry logs what an agent read: which system, which fields, under whose identity. This piece logs what changed afterward. Put those two together and something useful happens. An agent that queried inventory data across two plants through Genie, then in the same session proposed a BOM substitution, produces a signal that only makes sense once someone&#8217;s looking at both logs side by side.</p><h2>Failure patterns worth naming</h2><p>Most of what follows traces back to the same root cause: a gate that looked correct, running on data nobody had actually governed.</p><p>An AI copilot substitutes a component on a BOM based on a supply note, and the substitute was never qualified for that application, which nobody catches until a field failure traces back to it.</p><p>A quality assistant closes a disposition that reads fine but releases a hold engineering never actually signed off on, caught only when an audit asks for the paper trail.</p><p>A planning copilot drops safety stock on a part because recent demand looked flat, and a single large order turns it into a stockout that stops a line.</p><p>Someone asks Genie for a yield number, gets an answer built on a different definition than the one engineering certifies against, and only finds out when the plant&#8217;s own report disagrees with it in a review meeting.</p><h2>What building this taught me</h2><p>The developer side of this layer, covered in Part 3a, was the easy part to specify when I put together the IT org&#8217;s AI adoption plan. GitHub rulesets, required reviews, CODEOWNERS on critical paths, all of it maps onto tooling that&#8217;s existed for years.</p><p>The harder conversation, in every manufacturing environment I&#8217;ve worked in, was never about the ERP&#8217;s change-control features. Those exist. It was about whether anyone had updated the assumption underneath them, that a human initiated the change being controlled. An AI agent proposing a BOM substitution doesn&#8217;t trip any of the alarms built for a careless engineer, because it isn&#8217;t careless. It&#8217;s confident, fast, and occasionally wrong in a way a human reviewer would have caught immediately if they&#8217;d known to look.</p><h2>Where this leaves you</h2><p>Whether the change is a BOM, a routing, or a quality disposition, the discipline should be the same one Part 3a described for code: one governed path, resting on governed data, applied identically regardless of which AI proposed the change. Most plants are operating without that path today, and I&#8217;d guess yours is too, unless someone&#8217;s specifically gone looking. That&#8217;s the bigger risk sitting on most shop floors right now, not because the technology is unsafe, but because nobody&#8217;s built the gate for it yet.</p><div class="callout-block" data-callout="true"><p>Next in this series: the control plane, the layer that ties together what <em>The Context Layer</em> logs about access and what Parts 3a and 3b log about change, into one picture instead of separate logs nobody cross-references.</p></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://menonstack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Building the AI Foundation, Part 3a: The Developer Gate]]></title><description><![CDATA[Why a code change should pass the same gate no matter which tool wrote it]]></description><link>https://menonstack.com/p/building-the-ai-foundation-part-3a</link><guid isPermaLink="false">https://menonstack.com/p/building-the-ai-foundation-part-3a</guid><dc:creator><![CDATA[Balu Sudhakar]]></dc:creator><pubDate>Mon, 05 Oct 2026 23:29:30 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/40ddf036-5c07-43b4-abf1-d04238f578d9_2400x1254.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="callout-block" data-callout="true"><p><strong>Series: Building the AI Foundation</strong> &#8212; Part 3a of 3a/3b. <a href="https://menonstack.com/p/stop-picking-ai-tools-start-building">Part 1: Stop Picking AI Tools</a> laid out the seven-layer architecture. <a href="https://menonstack.com/p/building-the-ai-foundation-part-2?r=18vdow">Part 2: The Context Layer</a> covered how AI reaches your systems. This piece covers layer six for developers specifically. Part 3b covers the same layer for business users. Part 4 will cover the control plane.</p></div><p>I started writing this as one article, covering code and business systems together under the heading &#8220;the system of record.&#8221; A few pages in, it was clearly fighting itself. Developers have twenty years of tooling behind this question. Everyone else has almost none. Mixing them made both halves weaker, so I split it. This piece is the developer half. Part 3b covers the harder, less comfortable half: CRM, contracts, HR policy, and the analytics tools that are quietly rewriting business records with no review at all.</p><p><em>Stop Picking AI Tools</em>, Part 1 of this series, argued that AI works better as an architecture than as a purchase: seven layers, most of them meant to be swapped out as models and vendors change. <em>The Context Layer Is Where Multi-System Enterprises Get Stuck</em>, Part 2, went deep on layer five and covered how AI reaches ERP, CRM, custom apps, a data platform if you have one, and the sensitive systems that need a separate tier of their own.</p><p>This piece picks up layer six, the system of record, from the side where the discipline already exists.</p><h2>One gate, whichever tool wrote the change</h2><p>Here&#8217;s the part developers already know in their bones. An agent opens a pull request. It gets reviewed and tested. It merges. Whichever tool wrote the code, Copilot, Cursor, Codex, or an agent from Part 1&#8217;s delegated-development layer, the same gate applies. Nobody argues with that principle out loud. What&#8217;s worth digging into is what actually has to be true for it to hold up once the tools get good enough to tempt you into cutting corners.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!mQD5!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7135e6b4-c6b5-4670-a2a5-7bd035994095_3200x2120.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!mQD5!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7135e6b4-c6b5-4670-a2a5-7bd035994095_3200x2120.jpeg 424w, https://substackcdn.com/image/fetch/$s_!mQD5!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7135e6b4-c6b5-4670-a2a5-7bd035994095_3200x2120.jpeg 848w, https://substackcdn.com/image/fetch/$s_!mQD5!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7135e6b4-c6b5-4670-a2a5-7bd035994095_3200x2120.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!mQD5!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7135e6b4-c6b5-4670-a2a5-7bd035994095_3200x2120.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!mQD5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7135e6b4-c6b5-4670-a2a5-7bd035994095_3200x2120.jpeg" width="1456" height="965" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7135e6b4-c6b5-4670-a2a5-7bd035994095_3200x2120.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:965,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:340957,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://menonstack.com/i/218574261?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7135e6b4-c6b5-4670-a2a5-7bd035994095_3200x2120.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!mQD5!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7135e6b4-c6b5-4670-a2a5-7bd035994095_3200x2120.jpeg 424w, https://substackcdn.com/image/fetch/$s_!mQD5!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7135e6b4-c6b5-4670-a2a5-7bd035994095_3200x2120.jpeg 848w, https://substackcdn.com/image/fetch/$s_!mQD5!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7135e6b4-c6b5-4670-a2a5-7bd035994095_3200x2120.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!mQD5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7135e6b4-c6b5-4670-a2a5-7bd035994095_3200x2120.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">One gate. No exceptions for how the change was written.</figcaption></figure></div><h2>What actually needs to be true</h2><p><strong>Branch protection comes first.</strong> Required reviews, with no bypass for &#8220;the AI already checked it.&#8221;</p><p><strong>The tests don&#8217;t care who&#8217;s asking.</strong> CI and CD gates run the same suite no matter who or what opened the PR.</p><p><strong>Security scanning stays uniform.</strong> Static analysis, secrets, and dependency checks apply without exception, regardless of how fast the change came in.</p><p><strong>Review assignment doesn&#8217;t shift.</strong> CODEOWNERS or something like it routes review the same way whether a human or an agent authored the change.</p><p><strong>The merge line holds.</strong> This is the rule from Part 1, and it&#8217;s worth repeating here specifically: an agent from the delegated-development layer opens a pull request. It never merges one.</p><p>That last one gets harder to enforce as agents get better, not easier. The better an agent&#8217;s track record, the more tempting it is to let it skip the queue &#8220;just this once.&#8221; Resist that. The gate isn&#8217;t there because you distrust the agent. It&#8217;s there because building a safe exception path is its own project, and most teams that try to shortcut it end up building exactly that project anyway, just after something&#8217;s already gone wrong.</p><h2>Why this still depends on governed data</h2><p>Every check in that gate assumes something underneath it. A test suite assumes the code it&#8217;s testing reflects reality. A security scan assumes its dependency database is current. None of that is really a code problem, and it&#8217;s worth saying plainly: a pull request can pass every check in this article and still be wrong, if the data or systems it touches were already unreliable before the AI got involved.</p><p>I&#8217;m not going to dig into this deeply here, because Part 3b does, and it&#8217;s the more important half of that conversation. But I don&#8217;t want developers reading this to think governed data is someone else&#8217;s problem. It isn&#8217;t. It&#8217;s just better handled, so far, on this side of the fence.</p><h2>Traceability</h2><p>This is the part developers already have mostly right, and it's worth seeing why, because Part 3b will show you what it looks like when this is missing entirely. Commit and PR metadata identify which tool or agent produced a change. Good practice links that change back to the task or spec behind it, often traced to a context-layer read from Part 2's registry. If something breaks in production six months from now, you can usually reconstruct what an agent was told to do, what it touched, and who approved it.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!oZ1u!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5482e403-3c4a-4edf-86bc-acd8ad7d5aef_3200x1672.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!oZ1u!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5482e403-3c4a-4edf-86bc-acd8ad7d5aef_3200x1672.png 424w, https://substackcdn.com/image/fetch/$s_!oZ1u!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5482e403-3c4a-4edf-86bc-acd8ad7d5aef_3200x1672.png 848w, https://substackcdn.com/image/fetch/$s_!oZ1u!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5482e403-3c4a-4edf-86bc-acd8ad7d5aef_3200x1672.png 1272w, https://substackcdn.com/image/fetch/$s_!oZ1u!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5482e403-3c4a-4edf-86bc-acd8ad7d5aef_3200x1672.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!oZ1u!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5482e403-3c4a-4edf-86bc-acd8ad7d5aef_3200x1672.png" width="1456" height="761" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5482e403-3c4a-4edf-86bc-acd8ad7d5aef_3200x1672.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:761,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1055699,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://menonstack.com/i/218574261?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5482e403-3c4a-4edf-86bc-acd8ad7d5aef_3200x1672.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!oZ1u!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5482e403-3c4a-4edf-86bc-acd8ad7d5aef_3200x1672.png 424w, https://substackcdn.com/image/fetch/$s_!oZ1u!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5482e403-3c4a-4edf-86bc-acd8ad7d5aef_3200x1672.png 848w, https://substackcdn.com/image/fetch/$s_!oZ1u!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5482e403-3c4a-4edf-86bc-acd8ad7d5aef_3200x1672.png 1272w, https://substackcdn.com/image/fetch/$s_!oZ1u!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5482e403-3c4a-4edf-86bc-acd8ad7d5aef_3200x1672.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Mostly solved, and worth seeing why.</figcaption></figure></div><h2>Review at scale</h2><p>Part 1 flagged that AI-assisted pull request volume can outpace human review capacity, and that&#8217;s the real bottleneck here, not whether the gate exists. The gate is fine. The humans reading what comes through it are the constraint.</p><p>The fixes are becoming standard: AI-assisted first-pass review, and smaller pull requests as policy, especially for anything a delegated agent wrote. What changes is the reviewer&#8217;s actual job. It shifts from reading every line to judging whether the first pass caught what mattered. That&#8217;s a different skill, and I&#8217;d train for it directly rather than assume it develops on its own.</p><h2>Failure patterns worth naming</h2><p>A team fast-tracks AI pull requests because each one looks small, until a small change breaks something nobody reviewed closely.</p><p>A team blocks AI PRs from auto-merging but lets a human rubber-stamp them without real review, which defeats the purpose from the other direction.</p><p>Nobody owns updating branch protection as new agent tools arrive, so the gate loosens quietly over a year, and no one ever decided that on purpose.</p><h2>What building this taught me</h2><p>The developer side of this layer was the easy part to specify when I put together the IT org&#8217;s AI adoption plan. GitHub rulesets, required reviews, CODEOWNERS on critical paths, Copilot running first-pass review, agents that open PRs but never merge. All of it maps onto tooling that&#8217;s existed for years, and most of the work was configuration, not invention.</p><p>The harder conversation came later, once I started asking the same question about systems that aren&#8217;t code. That&#8217;s where Part 3b picks up, and it&#8217;s the half of this topic I think more people need to read.</p><h2>Where this leaves you</h2><p>Developers have this path built and mostly working, which makes it tempting to assume the system-of-record problem is solved across the company. It&#8217;s solved in one domain. I&#8217;d be curious whether your organization has even asked the question in the others yet, which is exactly what Part 3b is about.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://substack.com/@balumenon/note/p-218574261&quot;,&quot;text&quot;:&quot;Leave a comment&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://substack.com/@balumenon/note/p-218574261"><span>Leave a comment</span></a></p><div class="callout-block" data-callout="true"><p>Next: Part 3b covers the same layer from the business-user side, where the gate mostly doesn&#8217;t exist yet.</p></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://menonstack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p><p></p>]]></content:encoded></item><item><title><![CDATA[Building the AI Foundation, Part 2: The Context Layer Is Where Multi-System Enterprises Get Stuck]]></title><description><![CDATA[Why MCP matters more once you're running ERP, CRM, and everything in between]]></description><link>https://menonstack.com/p/building-the-ai-foundation-part-2</link><guid isPermaLink="false">https://menonstack.com/p/building-the-ai-foundation-part-2</guid><dc:creator><![CDATA[Balu Sudhakar]]></dc:creator><pubDate>Thu, 01 Oct 2026 19:47:19 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/ddd39ed2-bc58-47a0-bf81-21d6d30fc177_2400x1254.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="callout-block" data-callout="true"><p><strong>Series: Building the AI Foundation</strong> &#8212; Part 2 . <a href="https://menonstack.com/p/stop-picking-ai-tools-start-building">Part 1: Stop Picking AI Tools</a> laid out the seven-layer architecture. This piece is a deep dive into layer five, the context layer. Part 3 will cover the system of record.</p></div><p>The first article in this series, <em><a href="https://menonstack.com/p/stop-picking-ai-tools-start-building?r=18vdow">Stop Picking AI Tools</a></em>, proposed treating enterprise AI as an architecture rather than a purchase. That architecture had seven layers, and most of them exist to be replaced as vendors and models change. Several readers responded with variations of one question. One division runs SAP, another runs a platform built on IBM i, and a third depends on a customer relationship system that few people trust. Dozens of internally built applications sit beneath all of it. Which layer addresses that problem?</p><p>This article addresses it. The context layer, fifth of the seven, receives the deepest treatment in this series because organizations tend to misconfigure it before they reach questions of governance. The difficulty lies in deciding which systems count in the first place.</p><h3>The systems the standard diagram leaves out</h3><p>When consultants draw enterprise systems, they usually draw one ERP with clean lines to a CRM and a data warehouse. After 25 years in enterprise IT and ERP, I&#8217;ve rarely seen a landscape that tidy.</p><p>A realistic diagram has one or two ERPs, often inherited through acquisitions. The CRM is the one half the sales team works around. Somebody built a quoting tool in 2014, it still runs part of the business, and the only person who understood it has left. A plant-floor system has no real API because nobody expected it to need one. Then there are the systems holding data you can&#8217;t expose casually: payroll, customer identifiers, safety records, and sometimes regulated manufacturing data.</p><p>Many companies also run a data platform that copies information from several of these systems into one governed place. That changes the picture more than people expect, and I&#8217;ll come back to it below.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!DVSG!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0dd952c-4901-4c97-a5c3-f32cb26ec119_3200x2380.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!DVSG!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0dd952c-4901-4c97-a5c3-f32cb26ec119_3200x2380.png 424w, https://substackcdn.com/image/fetch/$s_!DVSG!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0dd952c-4901-4c97-a5c3-f32cb26ec119_3200x2380.png 848w, https://substackcdn.com/image/fetch/$s_!DVSG!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0dd952c-4901-4c97-a5c3-f32cb26ec119_3200x2380.png 1272w, https://substackcdn.com/image/fetch/$s_!DVSG!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0dd952c-4901-4c97-a5c3-f32cb26ec119_3200x2380.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!DVSG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0dd952c-4901-4c97-a5c3-f32cb26ec119_3200x2380.png" width="1456" height="1083" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d0dd952c-4901-4c97-a5c3-f32cb26ec119_3200x2380.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1083,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1644852,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://menonstack.com/i/217827649?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0dd952c-4901-4c97-a5c3-f32cb26ec119_3200x2380.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!DVSG!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0dd952c-4901-4c97-a5c3-f32cb26ec119_3200x2380.png 424w, https://substackcdn.com/image/fetch/$s_!DVSG!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0dd952c-4901-4c97-a5c3-f32cb26ec119_3200x2380.png 848w, https://substackcdn.com/image/fetch/$s_!DVSG!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0dd952c-4901-4c97-a5c3-f32cb26ec119_3200x2380.png 1272w, https://substackcdn.com/image/fetch/$s_!DVSG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0dd952c-4901-4c97-a5c3-f32cb26ec119_3200x2380.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">The real enterprise landscape: four kinds of system, each needing a different treatment.</figcaption></figure></div><p>Every AI initiative runs into this landscape early. An assistant that knows one system helps only the people who work in that system. Wiring each new tool straight to each new system brings back the sprawl from Part 1, one layer down.</p><h2>Why point-to-point access breaks down</h2><p>The obvious first move is to let each AI tool build its own connector to each system. With three tools and three systems, that&#8217;s nine integrations. Each one has its own authentication, its own reading of the data, and its own maintenance. Part 1 mentioned this problem in passing. With several ERPs, a CRM, and custom applications, it becomes the main one.</p><p>Custom applications make it worse because there&#8217;s no vendor connector to start from. Sensitive systems raise the stakes: a careless integration is a real exposure, and nobody wants to explain why an AI assistant could read compensation data because a connection already existed.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!inTu!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7dd35165-e01e-4832-a559-714970be699a_3200x1920.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!inTu!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7dd35165-e01e-4832-a559-714970be699a_3200x1920.png 424w, https://substackcdn.com/image/fetch/$s_!inTu!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7dd35165-e01e-4832-a559-714970be699a_3200x1920.png 848w, https://substackcdn.com/image/fetch/$s_!inTu!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7dd35165-e01e-4832-a559-714970be699a_3200x1920.png 1272w, https://substackcdn.com/image/fetch/$s_!inTu!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7dd35165-e01e-4832-a559-714970be699a_3200x1920.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!inTu!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7dd35165-e01e-4832-a559-714970be699a_3200x1920.png" width="1456" height="874" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7dd35165-e01e-4832-a559-714970be699a_3200x1920.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:874,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1474085,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://menonstack.com/i/217827649?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7dd35165-e01e-4832-a559-714970be699a_3200x1920.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!inTu!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7dd35165-e01e-4832-a559-714970be699a_3200x1920.png 424w, https://substackcdn.com/image/fetch/$s_!inTu!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7dd35165-e01e-4832-a559-714970be699a_3200x1920.png 848w, https://substackcdn.com/image/fetch/$s_!inTu!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7dd35165-e01e-4832-a559-714970be699a_3200x1920.png 1272w, https://substackcdn.com/image/fetch/$s_!inTu!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7dd35165-e01e-4832-a559-714970be699a_3200x1920.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Nine point-to-point integrations collapse into three tools talking to one registry, which routes to per-system servers.</figcaption></figure></div><h3><strong>What MCP actually is, in plain terms</strong></h3><p>The Model Context Protocol, or MCP, is a standard way for an AI tool to discover and call the tools and data a server exposes. The protocol will keep changing, and it may not be the standard in three years, so I wouldn&#8217;t invest in it for its own sake. What it removes is the need for a separate integration for every pairing of tool and system. Build one connector per system and any compatible tool can use it, whichever one your teams prefer this year.</p><p>It&#8217;s the same argument I made for <code>AGENTS.md</code> in Part 1, one level up. Different artifact, same principle: put the effort where it outlasts any single vendor.</p><h2>The pattern changes with the type of system</h2><p>What sits behind a connector determines how you build it.</p><p>ERP and CRM platforms usually have mature APIs and existing connectors, so the work is scoping and normalization. You can expose each system&#8217;s own terms as they are, or map &#8220;sales order,&#8221; &#8220;SO,&#8221; and whatever the CRM calls the same thing to one shared term. Native terms ship faster. A shared vocabulary takes longer to build, and it lets someone ask for total open orders across two plants and get one answer instead of two.</p><p>Custom applications often have no API at all, so the work starts a step earlier. The best option is a thin API layer added to the application itself, if you can change the code. Next best is reading from a replicated database, which keeps any load off production. Script-based access with close monitoring is the last resort. Most of the engineering time in this layer goes into that bridge, and very little goes into learning the protocol.</p><p>Every server should sit behind a registry, or gateway, that AI tools use to discover approved connections. Without one, people configure connections by hand, and the sprawl returns.</p><h2>When a data platform already exists</h2><p>Many companies already run a data platform, such as Databricks, that pulls data from the ERPs and the CRM, plus some custom applications, into one governed place. If yours does, five things change.</p><p>First, it&#8217;s a new kind of system in the landscape, and a friendly one. Databricks provides managed MCP servers over Unity Catalog data, search indexes, Genie, and custom functions. Unity Catalog enforces permissions on those servers, and they can authenticate as the individual user, so agents reach only what that person has been granted. That matches the identity rule I&#8217;ll get to below. Other platforms may offer something similar, so check yours before assuming it.</p><p>Second, normalization moves upstream. If the ERPs and CRM feed a curated layer with shared definitions, &#8220;open orders across both plants&#8221; becomes a query against one set of tables instead of a mapping project on every server. The work shifts to data engineering: pipelines and master data, plus the definitions both depend on. A weak curated layer gives confident wrong answers, so every pipeline needs a named owner.</p><p>Third, custom applications get an easier path. Replicating their data into the platform gives you the replicated-database option once, for many applications, and you skip a separate bridge for each. That covers reading only. Writing back still needs another route.</p><p>Fourth, the context layer splits into two lanes. One is for knowing: analysis, and grounding answers in current data. The other is for acting: creating or updating records in the systems of record. Creating an order still needs a server in front of the ERP, with the same scoping and identity rules as before. The platform answers questions; it doesn&#8217;t replace those servers.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!NlJs!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae6d0ee9-821e-4b49-9966-f111317a340a_3200x2260.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!NlJs!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae6d0ee9-821e-4b49-9966-f111317a340a_3200x2260.png 424w, https://substackcdn.com/image/fetch/$s_!NlJs!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae6d0ee9-821e-4b49-9966-f111317a340a_3200x2260.png 848w, https://substackcdn.com/image/fetch/$s_!NlJs!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae6d0ee9-821e-4b49-9966-f111317a340a_3200x2260.png 1272w, https://substackcdn.com/image/fetch/$s_!NlJs!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae6d0ee9-821e-4b49-9966-f111317a340a_3200x2260.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!NlJs!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae6d0ee9-821e-4b49-9966-f111317a340a_3200x2260.png" width="1456" height="1028" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ae6d0ee9-821e-4b49-9966-f111317a340a_3200x2260.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1028,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1636957,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://menonstack.com/i/217827649?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae6d0ee9-821e-4b49-9966-f111317a340a_3200x2260.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!NlJs!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae6d0ee9-821e-4b49-9966-f111317a340a_3200x2260.png 424w, https://substackcdn.com/image/fetch/$s_!NlJs!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae6d0ee9-821e-4b49-9966-f111317a340a_3200x2260.png 848w, https://substackcdn.com/image/fetch/$s_!NlJs!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae6d0ee9-821e-4b49-9966-f111317a340a_3200x2260.png 1272w, https://substackcdn.com/image/fetch/$s_!NlJs!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae6d0ee9-821e-4b49-9966-f111317a340a_3200x2260.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Two lanes: a data platform serves reads, and system servers handle actions.</figcaption></figure></div><p>Fifth, sensitive data gets easier to govern and easier to expose. You can apply column masking and row filters once, at the catalog, and tag sensitive fields in the same place, instead of rebuilding that protection on every server. The same consolidation concentrates risk, though. Joining data from several systems can reveal things no single system showed on its own, so the sensitive-tier review has to cover joined and derived datasets, not just the sources.</p><p>One more caution, about the registry. Databricks lets administrators see and manage its own MCP servers in one place, which is useful. Your registry still has to cover every system. If a single platform&#8217;s console becomes the registry, one vendor ends up holding the role I argued in Part 1 should stay neutral.</p><h3><strong>Sensitive-data systems deserve their own tier, not a footnote</strong></h3><p>I want to be direct about this, because it&#8217;s the part people skip past.</p><p>Some systems shouldn&#8217;t get a general-purpose MCP server, at least at first. HR and payroll are the clearest examples. They&#8217;re usually better served by narrow, read-only tools with field-level redaction built in than by a general connector with a few fields switched off afterward.</p><p>Scoping has to go below the system level, down to individual fields. A server over your CRM might expose accounts and opportunities and leave out compensation and personal identifiers. Redaction belongs at the server, before any response reaches the model. A prompt-level instruction can&#8217;t give the same protection, because a well-meaning user or a differently configured tool might skip it.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!wJEf!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f011cf4-824c-4f06-b08a-9d4bc9781994_3200x1800.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!wJEf!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f011cf4-824c-4f06-b08a-9d4bc9781994_3200x1800.png 424w, https://substackcdn.com/image/fetch/$s_!wJEf!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f011cf4-824c-4f06-b08a-9d4bc9781994_3200x1800.png 848w, https://substackcdn.com/image/fetch/$s_!wJEf!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f011cf4-824c-4f06-b08a-9d4bc9781994_3200x1800.png 1272w, https://substackcdn.com/image/fetch/$s_!wJEf!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f011cf4-824c-4f06-b08a-9d4bc9781994_3200x1800.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!wJEf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f011cf4-824c-4f06-b08a-9d4bc9781994_3200x1800.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3f011cf4-824c-4f06-b08a-9d4bc9781994_3200x1800.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1257065,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://menonstack.com/i/217827649?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f011cf4-824c-4f06-b08a-9d4bc9781994_3200x1800.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!wJEf!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f011cf4-824c-4f06-b08a-9d4bc9781994_3200x1800.png 424w, https://substackcdn.com/image/fetch/$s_!wJEf!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f011cf4-824c-4f06-b08a-9d4bc9781994_3200x1800.png 848w, https://substackcdn.com/image/fetch/$s_!wJEf!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f011cf4-824c-4f06-b08a-9d4bc9781994_3200x1800.png 1272w, https://substackcdn.com/image/fetch/$s_!wJEf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f011cf4-824c-4f06-b08a-9d4bc9781994_3200x1800.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Identity travels with every hop, and redaction happens at the server, before any response reaches the model.</figcaption></figure></div><p>That calls for a separate, heavier approval path. A server that touches regulated or sensitive data goes through security review, and often legal review, before it enters the registry. A sales or operations system gets a lighter one. It's slower on purpose. A decision like this shouldn't move at the speed of a Friday afternoon message thread.</p><h3><strong>Governance across the whole registry</strong></h3><p>Four principles hold whatever system sits behind the server.</p><p>Identity comes first. MCP calls should run as the requesting user and never as a shared service account, so the underlying system&#8217;s own authorization still applies. Custom applications tempt people the other way, because one broad credential is easier than per-user authentication, so this matters more there.</p><p>Scoping is second. Give each server a narrow, task-specific set of tools. Handing over a system&#8217;s full capability because a template made that the easy path is the usual way this goes wrong.</p><p>Audit comes next. Every MCP call is a loggable event, so treat it like any other system access. A vendor&#8217;s chat history isn&#8217;t an audit trail.</p><p>Ownership is the hardest to assign. Someone has to update a server when the underlying system changes. That&#8217;s straightforward for ERP and CRM platforms, which follow release cycles. Custom applications often have none, and their servers go stale and keep answering with full confidence. Data pipelines carry the same risk, so they need owners too.</p><h2>A rollout sequence for a real enterprise</h2><p>Start with the system that has the best API and the lowest sensitivity. Often that&#8217;s a curated, non-sensitive set of tables in the data platform, where governance already exists. Prove one narrow use case end to end on that server before you add a second.</p><p>Build the registry, and especially the sensitive-data approval path, while you only have two or three servers. Adding that structure after fifteen servers are running costs much more. Then expand in order: mature systems next, custom applications once their bridges exist, and sensitive systems last, through the heavier review path.</p><p>It&#8217;s the same phasing as the adoption plan in Part 1, one layer down: prove it small, and build governance while it&#8217;s still cheap.</p><h2>Failure patterns worth naming</h2><p>These recur often enough to name. A shadow MCP server appears on someone&#8217;s laptop because the official one took too long to approve. Credentials sit in a config file because nobody has set up secret management for this layer. A server built from a generic template exposes far more of a system than anyone intended, because nobody reviewed the defaults. A sensitive system gets connected to a general-purpose server because it was already there, and nobody asked whether it belonged. And an unowned pipeline goes stale, so the answers look authoritative and are wrong.</p><p>None of these is unusual. Each comes from putting speed ahead of structure.</p><h2>What building it myself taught me, this time</h2><p>In Part 1 I said context beats model choice, and this layer is where I&#8217;ve seen that most clearly. I designed a complete ERP application specification meant to be built by a team of AI agents, and most of the effort had nothing to do with AI. It went into scoping: deciding what each component needed to know and in what form, along with what it should never touch. The specification worked as a context layer for a system that didn&#8217;t exist yet.</p><p>The lesson carried straight over to this article. The protocol is the easy part. Deciding what belongs on the other side of it, and what doesn&#8217;t, is where the judgment is, whether you&#8217;re specifying a system for agents to build or choosing which of your fifteen production systems gets an MCP server this quarter.</p><h3><strong>Where this leaves you</strong></h3><p>The protocol will keep changing. MCP itself may not be the final standard, any more than any specific model is the final model. What won&#8217;t change is the discipline underneath it: one connector per system, not per tool; narrow scopes instead of broad access; identity carried all the way through; and a clear, deliberate line around what doesn&#8217;t get connected at all, at least not yet.</p><p>That discipline is the actual asset. Everything else is implementation detail that next year&#8217;s tools will happily inherit, if you&#8217;ve built it right.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://menonstack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Up next: the system of record &#8212; it doesn&#8217;t matter which AI wrote the change, only that it&#8217;s reviewed and traceable.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://menonstack.com/?utm_source=substack&amp;utm_medium=email&amp;utm_content=share&amp;action=share&quot;,&quot;text&quot;:&quot;Share Balu Sudhakar&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://menonstack.com/?utm_source=substack&amp;utm_medium=email&amp;utm_content=share&amp;action=share"><span>Share Balu Sudhakar</span></a></p><p></p>]]></content:encoded></item><item><title><![CDATA[Stop Picking AI Tools. Start Building an AI Architecture.]]></title><description><![CDATA[A practical playbook for IT leaders at the start of their AI journey]]></description><link>https://menonstack.com/p/stop-picking-ai-tools-start-building</link><guid isPermaLink="false">https://menonstack.com/p/stop-picking-ai-tools-start-building</guid><dc:creator><![CDATA[Balu Sudhakar]]></dc:creator><pubDate>Sat, 26 Sep 2026 11:34:27 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/7546253d-d123-4eab-ae3f-34d3f0c8fd4d_2400x1254.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="callout-block" data-callout="true"><p><strong>Series: Building the AI Foundation</strong> &#8212; This is the first piece in a series, Building the AI Foundation, on the seven-layer architecture I use for enterprise AI. Part 1 lays out the full model. Later parts go deep on individual layers &#8212; starting with the context layer, where MCP earns its keep.</p></div><p>Every IT leader I talk to right now is getting the same question from their CEO, their board, and their own teams: &#8220;What&#8217;s our AI strategy?&#8221; In most early-stage organizations, the honest answer is a collection of licenses. Some people have ChatGPT. A few developers are trying Cursor or Copilot. Someone in the architecture team is running models on a laptop. And a lot of people aren&#8217;t using anything at all, because nobody has told them what&#8217;s allowed.</p><p>I&#8217;ve been through enough technology waves (ERP, cloud, mobile, digital) to recognize the pattern. We start with tools because tools are tangible. You can buy them, demo them, and put them in a board deck. But tools are the part of this that changes fastest. The model that&#8217;s best for coding today will be overtaken in six months. The vendor you standardize on this year may not be your vendor in three.</p><p>I&#8217;ve also spent the last couple of years doing more than reading about AI. I run a self-hosted lab at home where I build and break things: local models, AI agents, automated workflows. Some of what I&#8217;ll share here comes from boardrooms and delivery programs. Some of it comes from late nights in my own lab, finding out firsthand what works and what doesn&#8217;t.</p><p>So I want to offer a different starting point: treat AI as an architecture, not a purchase. Define the layers, the job each one does, and the rules that govern it. Then pick tools to fill those layers, knowing you&#8217;ll swap some of them out. Whether your company leans toward OpenAI, Anthropic, Google, or Microsoft matters much less than whether you&#8217;ve built the structure that lets you change your mind.</p><h2>The mistake most of us make first</h2><p>The typical early-stage pattern goes like this. A few enthusiasts adopt tools on their own. Leadership buys an enterprise license for one assistant to &#8220;get ahead of it.&#8221; Usage spikes for a month, then flattens. Six months later, you have overlapping licenses, no idea what data went where, and a team split between people who swear by AI and people who tried it once, got a wrong answer, and moved on.</p><p>The root cause is almost never the tool. It&#8217;s three missing things: clarity on what&#8217;s allowed, a shared place where AI work lands and gets checked, and a deliberate plan for how people learn. Architecture solves the first two. The adoption plan solves the third.</p><h2>What building it myself taught me</h2><p>I don&#8217;t think you can lead AI adoption credibly without getting your hands dirty, so I did. Over the past couple of years I&#8217;ve built a home lab running open-source models, workflow automation, and a set of AI agents that handle real work for me every day. One maintains a personal knowledge base: it captures what I work on, writes my morning brief, wraps up my day, and runs a weekly review. Another assembles a daily digest of news and markets. I&#8217;m now building a local-first, voice-driven assistant on top of that knowledge base, and I&#8217;ve designed a full ERP application specification intended to be built by a team of AI agents rather than a team of developers.</p><p>Four lessons from that work shaped the architecture in this article.</p><p><strong>Context beats model choice.</strong> The single biggest jump in quality didn&#8217;t come from switching to a better model. It came from giving the AI better context: well-organized knowledge, clear instructions, and structured specifications. When I designed the ERP spec for an agent team, most of the effort went into making it precise enough for agents to act on. That&#8217;s why the context layer is central to this model.</p><p><strong>Local models are real, but narrower than the hype.</strong> I&#8217;ve tested open models on everything from an older laptop to a well-specced MacBook Pro. For private data, summarization, and everyday tasks, they&#8217;re genuinely useful, and they cost nothing per token. For complex, multi-step reasoning and agentic coding, the frontier cloud models are still meaningfully ahead. That experience is why I describe the private tier as a data-sovereignty layer, not a replacement for cloud AI.</p><p><strong>Agents need boundaries by design.</strong> In my own setup, I use a cloud coding agent as a tightly scoped connector: it gets predefined instructions, does one job (fetching email and calendar data), and writes its output to a known location with a traceable ID. It doesn&#8217;t get open-ended access. That pattern of narrow scope, defined outputs, and traceability is exactly what enterprises need for delegated agents, and it&#8217;s why the system-of-record layer insists that agents open pull requests but never merge them.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!7tWo!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6985a58-421b-425d-b35e-890930cf1958_2720x1160.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!7tWo!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6985a58-421b-425d-b35e-890930cf1958_2720x1160.png 424w, https://substackcdn.com/image/fetch/$s_!7tWo!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6985a58-421b-425d-b35e-890930cf1958_2720x1160.png 848w, https://substackcdn.com/image/fetch/$s_!7tWo!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6985a58-421b-425d-b35e-890930cf1958_2720x1160.png 1272w, https://substackcdn.com/image/fetch/$s_!7tWo!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6985a58-421b-425d-b35e-890930cf1958_2720x1160.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!7tWo!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6985a58-421b-425d-b35e-890930cf1958_2720x1160.png" width="1456" height="621" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e6985a58-421b-425d-b35e-890930cf1958_2720x1160.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:621,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:196431,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://menonstack.com/i/217432871?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6985a58-421b-425d-b35e-890930cf1958_2720x1160.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!7tWo!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6985a58-421b-425d-b35e-890930cf1958_2720x1160.png 424w, https://substackcdn.com/image/fetch/$s_!7tWo!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6985a58-421b-425d-b35e-890930cf1958_2720x1160.png 848w, https://substackcdn.com/image/fetch/$s_!7tWo!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6985a58-421b-425d-b35e-890930cf1958_2720x1160.png 1272w, https://substackcdn.com/image/fetch/$s_!7tWo!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6985a58-421b-425d-b35e-890930cf1958_2720x1160.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">The bounded-agent pattern. Agents propose; humans and automated checks decide.</figcaption></figure></div><p><strong>Tool choice is the least durable decision.</strong> Even in a home lab, I&#8217;ve swapped models and tools more times than I can count. What survived every change was the structure: where knowledge lives, how agents are instructed, how outputs are checked. Multiply that by an enterprise, and the case for architecture over tools makes itself.</p><p>I&#8217;ve been codifying these lessons into a framework I call the MenonLabs Agentic Engineering Framework. What follows is the enterprise architecture at its core.</p><h2>The seven layers</h2><p>Here&#8217;s the model I use. It comes from what I&#8217;ve seen across decades of ERP implementations, program management, and IT delivery: the organizations that absorb new technology well are the ones that define the structure first and fill in the tools second. It&#8217;s deliberately vendor-neutral.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!eZwM!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F124151f5-e92a-4a3b-9f55-e5a1df52627e_2720x1760.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!eZwM!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F124151f5-e92a-4a3b-9f55-e5a1df52627e_2720x1760.png 424w, https://substackcdn.com/image/fetch/$s_!eZwM!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F124151f5-e92a-4a3b-9f55-e5a1df52627e_2720x1760.png 848w, https://substackcdn.com/image/fetch/$s_!eZwM!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F124151f5-e92a-4a3b-9f55-e5a1df52627e_2720x1760.png 1272w, https://substackcdn.com/image/fetch/$s_!eZwM!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F124151f5-e92a-4a3b-9f55-e5a1df52627e_2720x1760.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!eZwM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F124151f5-e92a-4a3b-9f55-e5a1df52627e_2720x1760.png" width="1456" height="942" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/124151f5-e92a-4a3b-9f55-e5a1df52627e_2720x1760.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:942,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:313000,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://menonstack.com/i/217432871?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F124151f5-e92a-4a3b-9f55-e5a1df52627e_2720x1760.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!eZwM!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F124151f5-e92a-4a3b-9f55-e5a1df52627e_2720x1760.png 424w, https://substackcdn.com/image/fetch/$s_!eZwM!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F124151f5-e92a-4a3b-9f55-e5a1df52627e_2720x1760.png 848w, https://substackcdn.com/image/fetch/$s_!eZwM!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F124151f5-e92a-4a3b-9f55-e5a1df52627e_2720x1760.png 1272w, https://substackcdn.com/image/fetch/$s_!eZwM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F124151f5-e92a-4a3b-9f55-e5a1df52627e_2720x1760.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>1. The everyday assistant.</strong> This is the general-purpose AI that everyone in the company uses for drafting, analysis, research, summarizing, and thinking out loud. It&#8217;s the broadest-reach layer and usually the first one you license. The job here is enterprise terms (no training on your data, controlled retention), single sign-on, and a small number of approved connectors to your document stores.</p><p><strong>2. Interactive development.</strong> This is AI inside the developer&#8217;s editor, working alongside them in real time on completions, multi-file edits, and explanations. The key design decision is not which tool, but how many. My recommendation: one primary AI editor per developer, with a clear default and an opt-in path for power users. Paying for two overlapping coding assistants per person is the fastest way to waste budget.</p><p><strong>3. Delegated development.</strong> This is the layer most organizations haven&#8217;t thought about yet, and it&#8217;s where the biggest shift is happening. You hand an agent a well-defined task (write tests for this module, upgrade this dependency, document this service) and it works in a sandbox and returns a pull request. The developer&#8217;s role moves from writing every line to specifying and reviewing. Start this layer on bounded, low-risk work, and never give agents the ability to merge.</p><p><strong>4. The private tier.</strong> Some data can&#8217;t leave your environment: regulated data, customer PII, sensitive IP. This layer runs open-weight models on developer laptops or on a shared server inside your network. Be realistic about it. Local models are good for restricted-data work, embeddings, redaction, and offline use. They are not yet a replacement for frontier models on complex agentic tasks, and hardware alone won&#8217;t justify the investment. Treat this as your data-sovereignty tier, not a cost-cutting strategy. I learned this in my own lab. The local models I run handle private, everyday work well, but I still reach for frontier models when the task is hard.</p><p><strong>5. The context layer.</strong> AI is only as useful as what it knows about your environment. This layer connects your tools to your systems: ticketing, wikis, API catalogs, database schemas, ERP metadata. Two practices matter here. First, adopt open standards like the Model Context Protocol (MCP) so every tool can reach the same context the same way, instead of wiring each one separately. Second, put a plain-text instruction file (such as <code>AGENTS.md</code>) in every code repository, describing how to build, test, and work in that codebase. Most major coding tools now read it, which means your investment in context survives any vendor switch.</p><p><strong>6. The system of record.</strong> Every piece of AI-generated code should land in the same place and go through the same checks as human code: a pull request, automated tests, security scanning, and human approval. For most of us, that&#8217;s our source control platform. This is the most important layer for governance, because it&#8217;s tool-agnostic by design. It doesn&#8217;t matter which assistant wrote the change. What matters is that it was reviewed, tested, and traceable.</p><p><strong>7. The control plane.</strong> This layer sits underneath everything: identity and provisioning, device management, a data classification policy, an LLM gateway for API access, audit logging, and cost tracking. It&#8217;s the least exciting layer and the one that determines whether you can scale safely.</p><h2>Tool options by layer</h2><p>I promised this wouldn&#8217;t be a tool article, but a reference helps. Every layer has credible options across the major ecosystems:</p><ul><li><p><strong>Everyday assistant: </strong>ChatGPT Enterprise, Claude for Enterprise, Gemini for Workspace, Microsoft 365 Copilot</p></li><li><p><strong>Interactive development:</strong> GitHub Copilot in VS Code, Cursor, Windsurf, JetBrains AI, Gemini Code Assist</p></li><li><p><strong>Delegated development:</strong> OpenAI Codex, Claude Code, GitHub Copilot coding agent, Google Jules</p></li><li><p><strong>Private tier: </strong>Ollama or LM Studio on laptops; vLLM on a shared server; open models from the Qwen, Llama, Gemma, Mistral, and gpt-oss families</p></li><li><p><strong>Context layer: </strong>MCP servers for your systems and <code>AGENTS.md</code> in each repo</p></li><li><p><strong>System of record: </strong>GitHub, GitLab, Azure DevOps, Bitbucket</p></li><li><p><strong>Control plane: </strong>Your existing IdP and MDM; LLM gateways such as LiteLLM, Portkey, or a cloud provider's equivalent</p></li></ul><p>Notice that the layers with the longest shelf life (context, system of record, control plane) are the ones built on open standards and platforms you likely already own. The layers with the shortest shelf life are the model-facing ones. Invest your effort accordingly.</p><h2>The one policy that unlocks adoption</h2><p>If you do only one thing this quarter, publish a one-page data classification policy that maps data types to tools. For example:</p><ul><li><p><strong>Public and internal data</strong> can be used with any approved tool.</p></li><li><p><strong>Confidential data</strong> (source code, designs, customer-adjacent information) stays in enterprise tenants with verified no-training and retention terms.</p></li><li><p><strong>Restricted data</strong> (regulated, PII, M&amp;A) stays on the private tier only.</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!rTk7!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1fa51ae-3a76-475c-9900-ad9924522ab5_2720x1264.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!rTk7!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1fa51ae-3a76-475c-9900-ad9924522ab5_2720x1264.png 424w, https://substackcdn.com/image/fetch/$s_!rTk7!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1fa51ae-3a76-475c-9900-ad9924522ab5_2720x1264.png 848w, https://substackcdn.com/image/fetch/$s_!rTk7!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1fa51ae-3a76-475c-9900-ad9924522ab5_2720x1264.png 1272w, https://substackcdn.com/image/fetch/$s_!rTk7!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1fa51ae-3a76-475c-9900-ad9924522ab5_2720x1264.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!rTk7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1fa51ae-3a76-475c-9900-ad9924522ab5_2720x1264.png" width="1456" height="677" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d1fa51ae-3a76-475c-9900-ad9924522ab5_2720x1264.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:677,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:179103,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://menonstack.com/i/217432871?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1fa51ae-3a76-475c-9900-ad9924522ab5_2720x1264.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!rTk7!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1fa51ae-3a76-475c-9900-ad9924522ab5_2720x1264.png 424w, https://substackcdn.com/image/fetch/$s_!rTk7!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1fa51ae-3a76-475c-9900-ad9924522ab5_2720x1264.png 848w, https://substackcdn.com/image/fetch/$s_!rTk7!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1fa51ae-3a76-475c-9900-ad9924522ab5_2720x1264.png 1272w, https://substackcdn.com/image/fetch/$s_!rTk7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1fa51ae-3a76-475c-9900-ad9924522ab5_2720x1264.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">One policy, three lanes. This single decision answers most "am I allowed?" questions</figcaption></figure></div><p>This single table resolves most &#8220;am I allowed to use this?&#8221; questions. In my experience, ambiguity is the biggest adoption killer. People who aren&#8217;t sure they&#8217;re allowed will simply not use the tools, and the ones who use them anyway will do it in ways you can&#8217;t see.</p><h2>How to get your team there</h2><p>The architecture is the easy part. Getting a team from occasional experimentation to daily use takes a deliberate plan. Here&#8217;s the sequence I recommend.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!4PKD!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F917a8e9d-7064-4df7-ac4c-1a05dcd105c4_2720x760.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!4PKD!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F917a8e9d-7064-4df7-ac4c-1a05dcd105c4_2720x760.png 424w, https://substackcdn.com/image/fetch/$s_!4PKD!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F917a8e9d-7064-4df7-ac4c-1a05dcd105c4_2720x760.png 848w, https://substackcdn.com/image/fetch/$s_!4PKD!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F917a8e9d-7064-4df7-ac4c-1a05dcd105c4_2720x760.png 1272w, https://substackcdn.com/image/fetch/$s_!4PKD!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F917a8e9d-7064-4df7-ac4c-1a05dcd105c4_2720x760.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!4PKD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F917a8e9d-7064-4df7-ac4c-1a05dcd105c4_2720x760.png" width="1456" height="407" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/917a8e9d-7064-4df7-ac4c-1a05dcd105c4_2720x760.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:407,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:143091,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://menonstack.com/i/217432871?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F917a8e9d-7064-4df7-ac4c-1a05dcd105c4_2720x760.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!4PKD!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F917a8e9d-7064-4df7-ac4c-1a05dcd105c4_2720x760.png 424w, https://substackcdn.com/image/fetch/$s_!4PKD!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F917a8e9d-7064-4df7-ac4c-1a05dcd105c4_2720x760.png 848w, https://substackcdn.com/image/fetch/$s_!4PKD!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F917a8e9d-7064-4df7-ac4c-1a05dcd105c4_2720x760.png 1272w, https://substackcdn.com/image/fetch/$s_!4PKD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F917a8e9d-7064-4df7-ac4c-1a05dcd105c4_2720x760.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>Phase 0: Make it safe and clear (first month).</strong> Stand up the control plane: single sign-on on every tool, the data policy, device management, and branch protections plus security scanning on your repositories. Name an executive sponsor and a small group of champions. Choose respected practitioners, not just the enthusiasts. Then have leadership say out loud why you&#8217;re doing this. Address the job question directly. If you&#8217;re silent on it, people fill the silence with their own fears, and that shows up as quiet resistance.</p><p><strong>Phase 1: Prove it with lighthouse projects (months 2&#8211;3).</strong> Champions go deep on two or three real use cases with clear value and low risk: writing tests for legacy code, documenting undocumented modules, running a framework upgrade, analyzing a messy interface spec. Measure before and after. You need your own numbers, not vendor claims. Champions also write the instruction files for their teams&#8217; key repositories, which is what makes AI output match your standards instead of generic code.</p><p><strong>Phase 2: Roll out in waves (months 3&#8211;5).</strong> One or two teams at a time, each led by its champion. Train by role rather than generically. Developers need different skills (writing good task specs, reviewing AI-generated code) than business analysts (requirements, test scenarios, documentation) or managers (reading adoption data and modeling usage themselves). The most effective format I know is a weekly 30-minute &#8220;show your workflow&#8221; session where practitioners share their actual screens. Peer demos convert skeptics far better than formal training.</p><p><strong>Phase 3: Embed it in how you work (months 6&#8211;12).</strong> AI stops being optional and becomes part of the process. Delegated agents own the test and tech-debt backlogs. Every pull request gets an AI first-pass review. Story templates include an agent-ready specification. And a small enablement team, drawn from your champions, owns the tooling, patterns, and metrics as a product.</p><h2>What to measure (and what not to)</h2><p>Skip lines of code and suggestion acceptance rates. They&#8217;re easy to count and tell you very little. Instead, track:</p><ul><li><p><strong>Adoption:</strong> weekly active users by tool and team.</p></li><li><p><strong>Flow:</strong> pull request cycle time and lead time for changes.</p></li><li><p><strong>Quality:</strong> change failure rate and defect escapes, especially on AI-authored changes.</p></li><li><p><strong>Cost:</strong> spend per active user.</p></li><li><p><strong>Sentiment:</strong> whether your people actually find it useful.</p></li></ul><p>If cycle time drops and quality holds, you&#8217;re winning. If usage is high but quality slips, your review process is the bottleneck, and that&#8217;s the next thing to fix.</p><h2>Four things I&#8217;d tell a peer over coffee</h2><p>First, build something yourself. My most valuable AI education didn&#8217;t come from vendor briefings. It came from building things in my own lab, and I&#8217;d encourage every IT leader to do the same, even on a small scale.</p><p>Second, protect learning time. Asking people to adopt new ways of working on top of a full delivery load is the most common reason these programs stall. Ten percent of their time for the first 90 days is a small price.</p><p>Third, lead visibly. If managers still write status reports by hand, the team hears that AI is optional, whatever the strategy deck says.</p><p>Fourth, set honest expectations. AI is excellent at tests, boilerplate, documentation, and upgrades. It&#8217;s weaker on complex business logic and on the customizations that make your systems yours. Say that up front, start where it shines, and you avoid the &#8220;I tried it and it was wrong&#8221; dismissal that can set a team back months.</p><h2>The bottom line</h2><p>The companies that get real leverage from AI won&#8217;t be the ones that picked the best model in 2026. They&#8217;ll be the ones that built the structure to absorb whatever comes next: clear rules on data, a single place where all AI work lands and gets checked, shared context that any tool can use, and a team that knows how to work this way. Tools will change. That foundation won&#8217;t.</p><p>I&#8217;d love to hear how others are approaching this. What&#8217;s working in your organization, and where are you stuck?</p><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://menonstack.com/p/stop-picking-ai-tools-start-building?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://menonstack.com/p/stop-picking-ai-tools-start-building?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://menonstack.com/p/stop-picking-ai-tools-start-building?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://menonstack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://menonstack.com/subscribe?"><span>Subscribe now</span></a></p><p></p>]]></content:encoded></item></channel></rss>