<?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[The SAP AI Signal]]></title><description><![CDATA[SAP transformation and frontier AI, from someone building both. Signal over hype.]]></description><link>https://signal.cogniteer.io</link><image><url>https://substackcdn.com/image/fetch/$s_!Tjou!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa34a31b1-0751-4a90-828a-a700e3860308_1856x1856.jpeg</url><title>The SAP AI Signal</title><link>https://signal.cogniteer.io</link></image><generator>Substack</generator><lastBuildDate>Sat, 07 Nov 2026 20:31:58 GMT</lastBuildDate><atom:link href="https://signal.cogniteer.io/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Kenneth Barker]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[thecogniteer@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[thecogniteer@substack.com]]></itunes:email><itunes:name><![CDATA[Kenneth Barker]]></itunes:name></itunes:owner><itunes:author><![CDATA[Kenneth Barker]]></itunes:author><googleplay:owner><![CDATA[thecogniteer@substack.com]]></googleplay:owner><googleplay:email><![CDATA[thecogniteer@substack.com]]></googleplay:email><googleplay:author><![CDATA[Kenneth Barker]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[You're Building Agents. I'm Building Foundations.]]></title><description><![CDATA[Every SAP go-live taught us the transaction comes last. Enterprise AI is about to learn it again.]]></description><link>https://signal.cogniteer.io/p/youre-building-agents-im-building</link><guid isPermaLink="false">https://signal.cogniteer.io/p/youre-building-agents-im-building</guid><dc:creator><![CDATA[Kenneth Barker]]></dc:creator><pubDate>Tue, 03 Nov 2026 12:31:12 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Tjou!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa34a31b1-0751-4a90-828a-a700e3860308_1856x1856.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Every agent demo starts with a good question.</p><p>On stage, someone types: why won&#8217;t goods receipt post against purchase order 4500012345, line 30? The agent reads the error, follows the order to its configuration, finds the over-delivery tolerance that tripped, and explains it in seconds. It&#8217;s a real capability, and it gets better every quarter.</p><p>Now the same problem, the way it reaches a support queue on a Monday morning: <em>Goods receipt won&#8217;t post for material 400_AX17. Urgent.</em></p><p>Were they receiving against a purchase order? Posting an inbound delivery? Issuing components to a production order? Moving stock between storage locations? You don&#8217;t know the plant. You don&#8217;t know the order. You don&#8217;t even know it was a purchase order, or a goods receipt at all.</p><p>Nobody was careless. The person who wrote it knows exactly what they were doing and which message stopped them, because they&#8217;ve been looking at it for twenty minutes. Everything an agent would need is in their head.</p><p>The demo started with a question that was already answerable, because someone made it that way before the session began. Behind that one purchase order sat a company code, a purchasing organization and a plant. Tolerances configured. A supplier and a material, loaded and clean. The agent didn&#8217;t find any of that. It followed a path someone else had built. What you saw on stage was the happy path, at the end of an implementation. Monday morning is everything the test script left out.</p><h2>We&#8217;ve done this before</h2><p>We know how implementations begin. Every SAP project gets built in the same order, and anyone who has lived through one could recite it half asleep.</p><p>First the organization: company codes, plants, sales organizations, the skeleton everything else hangs on. Then the configuration: pricing procedures, account determination, the rules for how the business runs. Then the master data: customers, suppliers and materials, loaded and reconciled against the old system. Then testing: unit tests, string tests, integration tests, each one proving a little more of the process holds together.</p><p>Nobody starts with an inbound IDoc creating a sales order, a background job releasing the delivery, the warehouse picking and shipping it, and the invoice posting before the truck clears the gate. Lights-out order-to-cash is where an implementation ends up, not where it starts.</p><p>Data conversion taught the same lesson the hard way. The load tool was never the hard part. The hard part was the model: building the data dictionary, deciding what every field had to mean so execution and reporting could both run on it, and living with the trade-offs where they pulled in different directions. Once the model was right, the cleansing was a grind: spreadsheets, VLOOKUPs, record-by-record matching for weeks. Hard work, but you knew what you were aiming at, because the model told you. Mock loads tested the model. Cutover made you commit to it.</p><h2>Everyone started at the transaction</h2><p>Then AI arrived. Read the keynotes, the vendor announcements, the posts in your feed. The agents are reprocessing the failed IDoc, releasing the delivery, clearing the billing block. That work matters, and it&#8217;s coming. But we&#8217;re starting it in the order we spent thirty years learning not to.</p><p>In my own lab, most of the agents I build point the other way.</p><p>Point an agent outward, at the work, and it acts on a business process. Point it inward, at the system, and it builds what every outward agent will need. Same models, same tools, same skills. Different target.</p><p>The difference is smaller technically than people assume, and bigger in consequence. An inward agent is the digital employee who stitches the project together: the meeting transcript where a decision was made, the user story in Jira or Azure DevOps that carried it, the design document that explained it, the change that built it, the test script that proved it, and the ticket that came in yesterday because of it. Its work compounds: every pass makes the next answer cheaper to produce and easier to trust. An outward agent consumes that work. Without it, the outward agent is a very fast new hire on their first day, handed the keys to every shared drive and project tool and told to figure it out. It&#8217;s all there. It&#8217;s scattered, some of it contradicts the rest, and nothing says which version is true.</p><p>The first inward agent most organizations need is the least glamorous one. It reads each new artifact as it arrives and ties it to what&#8217;s already there. One connection at a time, it builds the map every other agent will depend on. It doesn&#8217;t answer anything. It makes the next answer possible.</p><p>The most important line on that map is also the hardest to draw. A project team talks in processes, RICEFs, design decisions and test scripts. The system only knows what actually changed. For thirty years, that meant the transport. Now some of what changes the system&#8217;s behavior never touches one: an agent promoted through a Git pipeline, a skill switched on in a cloud tenant. The reasons live in the project&#8217;s language, and the truth lives in every path a change can take. Connect the two and every other agent has something to stand on. It&#8217;s harder than it sounds, and it&#8217;s getting harder.</p><h2>Whose foundation?</h2><p>If foundations come first, the obvious question is whether SAP is already building them. It is, and more of it has shipped than most people realize.</p><p>SAP&#8217;s Sapphire 2026 keynote promised to show how SAP provides the foundation of applications and data that AI needs.1 Part of that is already real. SAP&#8217;s knowledge graph describes the S/4HANA data model across 452,000 ABAP tables, 80,000 CDS views and 7.3 million fields,2 and SAP&#8217;s MCP servers give agents a supported way into the system.5 That floor is SAP&#8217;s to build, and SAP is building it.</p><p>Think back to the implementation, though. S/4HANA isn&#8217;t software you install and push to users. It&#8217;s closer to a framework, and the implementation is the work of deciding which parts matter to your business and how they fit. The industry spent thirty years learning to do that well. Today there&#8217;s SAP Activate, best practices for nearly every process, and system integrators with methodologies decades deep.</p><h2>Your floor</h2><p>SAP&#8217;s layer is built from SAP&#8217;s standard. Your Z fields didn&#8217;t come from SAP. Neither did your enhancements, your custom reports, the interfaces to your warehouse system and your carriers, or the plant that has been using a standard field to mean something else entirely since go-live.</p><p>That last one is the dangerous one. A graph built from SAP&#8217;s standard will describe that field confidently, by its standard meaning, and be wrong.</p><p>Joule will answer questions about SAP&#8217;s processes well. Your agents have to answer questions about yours.</p><p>SAP&#8217;s roadmap acknowledges this floor. Its architecture guidance names custom fields, custom APIs and tenant-specific configuration, and describes a customer-specific knowledge graph as the long-term vision.3 The next phases bring SAP-managed customer data, then content customers curate themselves.4 Neither has shipped yet, and dates have moved. That&#8217;s normal for something this new.</p><p>When they arrive, they&#8217;ll be one good place to put what makes your business yours. Not the only one. If you&#8217;re still on ECC, SAP&#8217;s packaged path doesn&#8217;t reach you today. And plenty of organizations will think hard about where their meaning should live, and what it costs to keep it there.</p><p>Either way, a place to put it isn&#8217;t a model of it, and this model isn&#8217;t configuration. Configuration is multiple choice: a field is required or it isn&#8217;t, a value comes from a dropdown. This is the essay question.</p><p>Take one line from a standard operating procedure in that shared drive, the kind your agents will read: a supervisor <em>must</em> approve, <em>should</em> review, or <em>may</em> override. To a person, those are shades of the same instruction. To an agent, they&#8217;re three different rules, and it will act on the difference whether anyone meant it to or not. Lawyers have spent centuries defining words like these, and internet standards wrote theirs down in 1997.6 Most businesses have never had to. Somebody now has to decide what goes in, what each word in it means, and who owns the answer when it changes.</p><p>And this time there&#8217;s no playbook. There&#8217;s good theory, and a handful of people who have done it once. There&#8217;s no Activate for meaning yet. The temptation will be to load everything, the way we once rebuilt the AS/400 inside SAP rather than decide what mattered.</p><h2>What would you build on it first?</h2><p>Wherever your foundation ends up living, whether inside SAP&#8217;s platform, alongside it, or under a system SAP&#8217;s AI doesn&#8217;t reach yet, the work is the same, and it&#8217;s yours.</p><p>So imagine it&#8217;s done. Every ticket, decision, change and document connected, and the meaning behind them settled. What would you point it at first?</p><ul><li><p>Your support queue, researched before anyone opens a ticket.</p></li><li><p>Your next enhancement, checked against everything it will touch before anyone writes the spec.</p></li><li><p>Your next rollout, starting from what the last one learned instead of starting over.</p></li><li><p>Your Joule use cases, chosen by where the questions actually come from.</p></li><li><p>Your first agents, placed where the map says they&#8217;ll do the most good.</p></li></ul><p>Your answer tells you where to start building.</p><p>The playbook for this doesn&#8217;t exist yet. It&#8217;s being written by the people who start first.</p><p>Everyone at Sapphire will be showing you the agent. Ask what it&#8217;s standing on, and who built it.</p>]]></content:encoded></item><item><title><![CDATA[Who Signs for the Agent?]]></title><description><![CDATA[Agents arrive with a Git pipeline. SAP's oldest instinct still has a job to do.]]></description><link>https://signal.cogniteer.io/p/who-signs-for-the-agent</link><guid isPermaLink="false">https://signal.cogniteer.io/p/who-signs-for-the-agent</guid><dc:creator><![CDATA[Kenneth Barker]]></dc:creator><pubDate>Tue, 27 Oct 2026 11:31:43 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Tjou!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa34a31b1-0751-4a90-828a-a700e3860308_1856x1856.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>For thirty years, a change in SAP came with a signature.</p><p>The transport request carried an owner, a release, an import history and an approver. When an auditor asked what was running in production on a given date, the system answered without anyone having to remember. Nobody designed that as a governance program. It came with how changes moved.</p><p>SAP TechEd opens in Berlin this week. On October 8, SAP described the new Joule Studio as &#8220;soon to be generally available.&#8221; The lifecycle it has published is worth reading closely.</p><h2>The pipeline is real</h2><p>SAP&#8217;s own training material lays out the path. You describe the outcome you want. Joule Studio produces a requirements document, then a technical specification, then code. Before release, it runs automated evaluations and produces a test report with pass/fail results. The solution deploys to an SAP-managed runtime, and AI Agent Hub governs it from there.</p><p>Version control is built in. In SAP&#8217;s words, &#8220;Solutions are pushed to GitHub for review and repeatability.&#8221;</p><p>Git gives you full history, real diffs and review before merge. The evaluations give you evidence before release. That&#8217;s good engineering.</p><p>So the question isn&#8217;t whether the pipeline is sound. It&#8217;s whose habits come with it.</p><h2>Change Control and Change Enablement</h2><p>SAP has already named the difference. In its Cloud ALM training, SAP calls ChaRM and Focused Build &#8220;Change Control,&#8221; the stricter model, and Cloud ALM &#8220;Change Enablement,&#8221; the more flexible one. Those are SAP&#8217;s words, not mine.</p><p>They describe two cultures. SAP teams have spent careers in a world where an error in production is a failure: someone explains it, and the fix goes through the same gates that should have caught the mistake. Teams raised on Git work from a different assumption. You move fast, and if something breaks, you roll it back.</p><p>Git-style controls for ABAP have existed since 2019, when SAP shipped the Git-enabled Change and Transport System with S/4HANA 1909. I&#8217;ve never heard of a team that actually adopted it. Nobody publishes an adoption figure, and I looked. Transports already did the job, and the audit evidence was built around them. Nothing forced a move.</p><p>Agents force it. An agent definition, a prompt or an evaluation set doesn&#8217;t travel in a transport. For this kind of change, the Git pipeline is no longer optional. It&#8217;s how SAP builds.</p><p>Each culture is right about the thing it was built for. The trouble starts where they meet.</p><h2>What a revert can&#8217;t reach</h2><p>Rolling back works when the code is the only thing that changed.</p><p>Take an agent that creates credit memo requests for pricing disputes. On Tuesday someone changes its instructions. By Thursday it has created two hundred requests, and billing has already turned most of them into credit memos. On Friday the team reverts the agent to last week&#8217;s version in one clean commit.</p><p>The agent is fixed. The documents are not.</p><p>In SAP, you don&#8217;t delete a billing document. You cancel it with another document that points back to it, and every step stays in the document flow. That&#8217;s by design, and it&#8217;s why finance teams trust the system. It also means the cleanup is a business process with a cost, not a Git command.</p><blockquote><p>A revert undoes the agent. It doesn&#8217;t undo what the agent posted.</p></blockquote><p>So for agents that write to SAP, the control has to sit before production, where SAP teams have always put it. This isn&#8217;t a case against the pipeline. It&#8217;s a case for building the signature into it.</p><h2>Named, not described</h2><p>SAP knows a sign-off belongs there. Its lifecycle material says tracing, metrics and logging support &#8220;production sign-off.&#8221; Its announcement of the new Joule Studio mentions &#8220;controlled deployments.&#8221; AI Agent Hub holds agents that haven&#8217;t passed governance checks &#8220;in a pending state until cleared.&#8221;</p><p>SAP&#8217;s recommended Joule landscape runs Development, Test and Production and says to &#8220;promote qualified changes to production.&#8221; It&#8217;s the shape of change control, and the same people run it. What it doesn&#8217;t say is what carries the approval from one tier to the next, or what proves production is running what QA approved.</p><p>All of that names a sign-off. Nothing SAP has published that I could find says who signs, what gets recorded, or how a change to an agent links to a change request the way a transport does.</p><p>TechEd may fill some of this in. Either way, the record is yours to define, because only you know which agents touch which documents.</p><h2>Write the record</h2><p>Here&#8217;s what I&#8217;d require before any agent that writes to SAP goes live or changes. It&#8217;s the transport record, rebuilt for agents.</p><p><strong>What changed.</strong> The definition, the instructions, the tools it can call, and the model and its version. If the model can be retired or swapped without a commit, record which version was approved.</p><p><strong>Blast radius.</strong> What it can write, to which documents, how often, and under whose authorizations. An agent acting with a clerk&#8217;s roles and the same agent acting with a finance manager&#8217;s are not the same change, and QA tested it with test roles. Where a connection uses a technical user instead, the blast radius is whatever that user was granted, for everyone.</p><p><strong>The evidence.</strong> The evaluation report for this version, not the last one. The test case has to be &#8220;what happens when it&#8217;s wrong,&#8221; not only &#8220;does it work.&#8221; It also needs proof that production is running the same version, model and configuration that passed QA.</p><p><strong>Who approved.</strong> A named person with the authority to approve. SAP has already defined a role for this, the Agent Manager, typically an enterprise architect or IT governance lead. Make sure the role belongs to someone in your organization.</p><p><strong>The way back.</strong> Not only reverting the agent, but how documents it has already posted get reversed, and who owns that.</p><p><strong>Complete means complete.</strong> Training content checked, process documentation updated, test cases updated and rerun.</p><p>The roles shift with it. Everyone in the chain knows how to read the blast radius of a transport: the consultant, the tester, the change board, and Basis as the last line of defense. An agent&#8217;s blast radius sits where none of them were trained to look, and when the deploy command is the release, whoever runs it is making the call. The transport coordinator becomes a release owner who reads evaluation reports alongside import logs. The functional consultant who wrote test scripts now writes the evaluation set. No job goes away, but every one of them gets new things to read.</p><h2>This week</h2><p>Pick one agent you have in pilot, or one you plan to build. Have each person in the chain write down what it can post, to which documents, on which model, and under whose authorizations. Then compare the answers. Wherever they differ, or someone has to go ask, that&#8217;s where the record starts.</p><p>If you run Cloud ALM, a manual transport reference is one place to tie that record to your existing change process until something better exists.</p><p>Then take three questions to SAP or your implementation partner. Who signs the production sign-off? Where is it recorded? What happens to an approved agent when its model changes underneath it, or when a different user runs it?</p><p>The pipeline will get you to production faster than anything SAP has offered before. It just won&#8217;t sign off for you.</p>]]></content:encoded></item><item><title><![CDATA[What Only the Meeting Can Add]]></title><description><![CDATA[Every meeting is transcribed now. That changes what is worth saying out loud.]]></description><link>https://signal.cogniteer.io/p/what-only-the-meeting-can-add</link><guid isPermaLink="false">https://signal.cogniteer.io/p/what-only-the-meeting-can-add</guid><dc:creator><![CDATA[Kenneth Barker]]></dc:creator><pubDate>Tue, 20 Oct 2026 11:02:53 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Tjou!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa34a31b1-0751-4a90-828a-a700e3860308_1856x1856.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Tuesday, 10 a.m. The weekly program call on an S/4HANA rollout: 60 minutes, 12 workstreams.</p><p>Each lead reads their status. On track. Two items complete. One date moved a week. Green, green, amber, green.</p><p>At 10:52 the program manager raises the one question that needed the whole room: do we start the second mock data load next week, or wait for the client refresh in two weeks? Three people start to answer. At 11 a.m. the call ends, and the decision moves to next week&#8217;s call.</p><p>By then, starting next week is no longer possible. Nobody chose to wait for the refresh. Moving the decision made it.</p><p>Everyone on that call is good at their job. The status was accurate. The meeting did what status meetings do.</p><h2>Status is a fact. Show it.</h2><p>Everything read aloud in the first 50 minutes was already written down. It is in the plan, on the board, in the workstream trackers. Dates are easy to get.</p><p>So put it where it already lives. Send it as a pre-read to the people senior enough to have it pushed to them. Leave it ready to pull for everyone else. Put it on the screen when the call starts, and don&#8217;t read it out.</p><p>The question &#8220;what changed since last week?&#8221; is answered before anyone joins.</p><h2>A pre-read is only as good as the word &#8220;complete&#8221;</h2><p>A pre-read works only if written status means what spoken status means, and the word that slips most is &#8220;complete.&#8221;</p><p>A change gets called complete when the configuration has moved. Nobody has yet looked at whether the training content needs to change, whether the process design document still describes what was built, or whether the test cases still test it.</p><p>Give &#8220;complete&#8221; its checklist: configuration or code moved, test cases updated and run, process design document updated, training content checked. Then a pre-read that says complete can be trusted without anyone asking.</p><h2>The room has a memory now</h2><p>Teams records the call and transcribes it. Copilot can read every meeting in a program before the director who owns it has finished her coffee.</p><p>So the words spoken in the room are now part of the record, and the question becomes which words are worth adding.</p><p>On Tuesday the answer was 50 minutes of status the record already held, and eight minutes of a decision that got made by default.</p><h2>Spend the spoken time on decisions</h2><p>Make the agenda a list of open decisions, not a walk through the workstreams. For each one, the chair asks five questions, and the people who know answer out loud.</p><ol><li><p><strong>What has to be true for us to decide?</strong></p></li><li><p><strong>What else does this impact?</strong></p></li><li><p><strong>What options did we rule out, and why?</strong></p></li><li><p><strong>Who owns the decision, are they here, and when is it due?</strong></p></li><li><p><strong>Any concerns we haven&#8217;t heard yet?</strong></p></li></ol><p>Here is Tuesday&#8217;s decision, run that way.</p><p><em>What has to be true?</em> The target client has to be refreshed to include the latest configuration changes, and the data extract has to reflect the latest design decisions. The extract we have predates the last two design decisions.</p><p><em>What else does this impact?</em> Every system integrated with SAP needs its master data aligned to the new load, or integration testing fails on mismatched customer and material numbers. The first one affected is the distributor EDI feed for one entity. In this program, &#8220;EDI&#8221; means four different vendor integrations depending on the company and the country, so name which one.</p><p><em>What did we rule out?</em> Loading next week on the old extract. Data built to an earlier design would not tell us whether the load works against this one.</p><p><em>Who owns it?</em> The data migration lead owns it and is here. The Basis team isn&#8217;t on this call, so the cutover lead confirms the client refresh with them by Friday, and the data migration lead makes the call on Monday.</p><p><em>Any concerns?</em> One voice: if the refresh slips, there is no room for a third mock before the freeze.</p><p>That took about two minutes. In the room, &#8220;EDI&#8221; would have been enough, because everyone knew which feed. The second question is where words leave the room, so that is where they have to be exact.</p><h2>Then check the dependencies</h2><p>Status shows what each team is doing. It rarely shows what one team is quietly waiting on from another.</p><p>So before the call ends, each workstream lead answers two questions, in a sentence each:</p><p><strong>What do you need from another team to finish next week&#8217;s work, and do they know?</strong></p><p><strong>What are you not getting to next week that someone else may be waiting on?</strong></p><p><em>Master data needs the updated reporting requirements by Wednesday.</em> Then the follow-up: from whom? Several teams own a piece of those requirements, and each assumed another was pulling them together.</p><p>That is the dependency nobody had written down, because nobody had claimed it.</p><p>In the last two minutes, the chair reads back the decisions and the dependencies that were named. Anyone who heard them differently says so while the people who could correct it are still there.</p><h2>The stand-up version</h2><p>The same rule holds at the daily stand-up. The board is on the screen, so nobody needs to read it.</p><p>Say out loud only what the board doesn&#8217;t show. Name the item by its number, not &#8220;this one.&#8221; Give a blocker its shape: blocked by what, since when, and what would release it.</p><p>The two dependency questions work here too, on a shorter horizon: what do you need from someone else today, and what are you not getting to that someone may be waiting on?</p><h2>What the record holds now</h2><p>The director asks on Friday what changed in cutover risk. The status was in the pre-read all along. What she finds now in the transcript is a decision with its conditions, a named impact, an option ruled out with its reason, a name and a date, a concern about the freeze, and a dependency nobody had claimed.</p><p>Status was always in the record. A meeting can add only what nobody has written down yet.</p><h2>Two cautions</h2><p><strong>Report on the work, not the people.</strong> Tell everyone what is recorded, what is drawn out of it, and how it is reported. Report by decision and by topic. A transcript read as a log of who said what turns a working meeting into a performance review, and people start talking to the reader instead of to each other.</p><p><strong>Ask, don&#8217;t infer.</strong> It is tempting to let software judge how worried the room sounded. In the EU, the AI Act prohibits systems that infer emotion in the workplace, and the Commission&#8217;s guidance ties that to voice and facial expression. The fifth question gets you the same signal by asking for it, and a concern someone chose to state is worth more than one a model detected. Check the specifics with counsel for the countries you operate in.</p><h2>This week</h2><p>Take your next status call. Send the status as a pre-read, put it on the screen, and don&#8217;t read it out.</p><p>Use the time for the two or three decisions that are open, and ask the five questions. Before you close, ask every workstream lead the two dependency questions, then read the decisions and dependencies back.</p><p>Then ask Copilot, or whichever AI assistant you use, to summarize this week&#8217;s call and last week&#8217;s, and put the two summaries side by side.</p>]]></content:encoded></item><item><title><![CDATA[Did Anyone Ever Validate MD04?]]></title><description><![CDATA[We test what we built and trust what SAP delivered. That rule just stopped telling us where the line is.]]></description><link>https://signal.cogniteer.io/p/did-anyone-ever-validate-md04</link><guid isPermaLink="false">https://signal.cogniteer.io/p/did-anyone-ever-validate-md04</guid><dc:creator><![CDATA[Kenneth Barker]]></dc:creator><pubDate>Tue, 13 Oct 2026 11:04:02 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Tjou!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa34a31b1-0751-4a90-828a-a700e3860308_1856x1856.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>You have a testing discipline that has held for twenty-five years, and it is a good one: validate what you configured, trust what the vendor shipped. It survived the move to Fiori without modification. On a conversational surface it stops being enough, and not because the rule is wrong. The rule depends on being able to point at what you built.</p><h2>The rule, and why it worked</h2><p>I have never seen anyone validate a stock requirements list by hand.</p><p>Not once. No project team I have worked with has counted the receipts and issues on an MD04 screen against the underlying tables to confirm that SAP got the arithmetic right. Nobody I know of sat down and verified, condition by condition, that every standard pricing condition on a sales order calculated correctly.</p><p>That was not laziness. That was the correct allocation of finite test effort. The mapping was deterministic, the vendor warranted it, and the failure mode would have been catastrophic and obvious rather than subtle and silent. So you tested your pricing routines, your custom fields, your user exits, your output determination - the things you built - and you trusted the rest.</p><p>Fiori inherited the rule without anyone needing to restate it. New tile, same logic: validate the custom fields, trust the delivered app. The underlying service was the same service, so the data was the same data.</p><p>The rule works because the boundary is visible. You can point at the custom field. You can point at the Z-program. The line between what is yours and what is the vendor&#8217;s is drawn in the repository, and it has been drawn there since the beginning.</p><h2>What you built when you turned the skills on</h2><p>Now activate a few dozen conversational skills.</p><p>Every one of them is SAP-delivered. By the old rule, the whole thing is trusted, and a test plan written by anyone experienced would say so - scope it, confirm a handful of representative responses, move on.</p><p>Except you did build something. You chose that set, skill by skill. Nobody at SAP decided which skills your business would run, in what combination, for which roles. That selection is a customer artifact with no vendor warranty attached to it, and the behavior a user experiences is determined as much by that selection as by any individual skill.</p><p>So is the vocabulary you taught the assistant. Every mapping from one of your words to one of SAP&#8217;s is yours, and nobody warrants that either.</p><p>None of it appears in a transport. It has no object type. There is nothing to point at in a scoping meeting, which is exactly why it falls off the test plan - not by decision, but by default.</p><p><strong>The boundary did not move. It stopped being visible.</strong></p><h2>The five things between the question and the answer</h2><p>Once the line is drawn correctly, what to test becomes obvious, and none of it is field validation.</p><p><strong>Routing.</strong> Does the question reach the intended skill? With one skill this is trivial. With several dozen, more than one can plausibly match a given phrasing, and the selection is made across the set.</p><p><strong>Extraction.</strong> Did it pull the right parameters - this order, this plant, this date range - out of how the user actually talks rather than how a test script writes?</p><p><strong>Fidelity.</strong> Suppose the right skill ran, with the right parameters, and the service returned the right data. Does the answer represent that data faithfully, with the unit, the date and the context that give the number its meaning? A tile never restated the number in a sentence.</p><p><strong>Completeness.</strong> The service returned fourteen fields and the answer mentioned three. Which three, and was the omission material to the decision the user was about to make?</p><p><strong>Scope.</strong> Did it answer the question asked, or an adjacent question that sounded the same? This is where the ambiguity from two issues back lands - the assistant returning open order value to someone who meant unshipped units, or measuring past due against the confirmed date when the reviewer meant the date the customer asked for. Last issue&#8217;s gap lands here too: answering <em>who are our top customers</em> from the sold-to, for a sales lead who meant the accounts behind the distributor.</p><p>AI evaluation tooling has names for these: tool selection, tool input accuracy, tool output utilization, response completeness, intent resolution. What is new is that they now belong in an SAP test plan.</p><p>None of that is a question about the service. The service is the same service, and you should trust it exactly as far as you trusted the Fiori tile in front of it. What you are testing is whether the path from question to answer holds.</p><h2>Negative tests, which you have never written</h2><p>There is a category here with no precedent in any SAP test plan you have ever run.</p><p>SAP describes how selection works. Joule matches a request to the best-fitting skill, using the skill&#8217;s description, the user&#8217;s role, the conversation so far and the business context. The test trace in Joule Studio opens by showing which skill or agent was selected. Practitioners building custom skills advise testing in both directions: queries that should trigger the skill, and queries that should <em>not</em>.</p><p>That makes the test object selection.</p><p>You have never written a Fiori test script with a section headed <em>queries that should not open this tile</em>, because the user opening the tile was the user&#8217;s decision and the system had no opinion about it. Now the system has an opinion, and the opinion is testable, which means it is also wrong sometimes in a way that belongs to you.</p><p>That trace is a test tool. Find out what record you get in production, when a ticket arrives and somebody has to work out what the assistant actually did.</p><h2>The part that is not a gate</h2><p>The consequence changes the shape of the work rather than just its content.</p><p>If selection means the best fit among the skills available, then adding to the set can change behavior for what was already there. Activating one more skill is not an isolated change - it introduces a new candidate into every selection decision the system makes.</p><p>Nothing in your estate has ever worked that way. Activating a Fiori tile has never altered what an existing tile does. Adding a transaction has never changed what another transaction returns. Every surface you have ever added has been additive and inert with respect to the others.</p><p>That is worth establishing in your own tenant rather than taking on faith, and it is a half-day experiment: baseline a set of utterances, activate one more skill, run them again, and see whether anything moved. If it did, your acceptance testing is not a gate you pass once before go-live. It is a regression corpus, owned by someone, rerun every time the skill set changes.</p><p>And the set keeps growing. Every release delivers new skills, and like a support package, nothing runs until you activate it. Each activation is a change to the set.</p><blockquote><p><strong>Run this before your next activation.</strong> Write down twenty real questions your users would actually ask &#8212; their phrasing, not yours. For each, record which skill should answer, which parameters should be extracted, and what the answer must contain to be useful. Run them as one test user with a fixed role, starting a fresh conversation for each, because role and conversation history both feed selection. Then activate one more skill and run them again. If any answer changed, you have found the thing that has no precedent in twenty-five years of SAP testing, and you now know what your test plan is missing.</p></blockquote><p>The rule still holds. Test what you built, trust what the vendor shipped.</p><p>What is new is that you built something you cannot point at - and testing it produces an artifact your estate has never needed. Not a test plan. A set of real utterances that goes stale the moment somebody activates a skill nobody thought was related.</p><p>There is no precedent for that one. You build it from nothing.</p>]]></content:encoded></item><item><title><![CDATA[Teaching Your Company to Speak SAP]]></title><description><![CDATA[Some of your vocabulary should change. Some of it is carrying information the reference model never had. Knowing which is which is the job.]]></description><link>https://signal.cogniteer.io/p/teaching-your-company-to-speak-sap</link><guid isPermaLink="false">https://signal.cogniteer.io/p/teaching-your-company-to-speak-sap</guid><dc:creator><![CDATA[Kenneth Barker]]></dc:creator><pubDate>Tue, 06 Oct 2026 11:04:06 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Tjou!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa34a31b1-0751-4a90-828a-a700e3860308_1856x1856.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>How many words does your company have for customer?</p><p>Most people say one.</p><p>SAP has four. Sold-to, ship-to, bill-to, payer - and the distinction is not pedantry. It exists because somewhere in the world a company orders from one address, receives at another, gets invoiced at a third, and is paid for by a fourth, and the standard has to hold all of that.</p><p>And those are only the four it insists on. It has room for the broker, the commission partner, the carrier, and anyone else with a role in the deal.</p><p>Most of your people will never need those distinctions. Some of them badly do, and have been quietly getting it wrong for years.</p><p>Now run it the other way. If you make cleaning and paper products and sell them through distributors, ask a sales lead who their customers are. You will hear about hotels, office buildings and hospitals, the accounts that buy your product from the distributor. Your business has a name for them: secondary customers. The distributor is the sold-to. The secondary customer is on the distributor&#8217;s invoice, not yours. Whether that data ever reaches you depends on the market and on what the distributor is willing to share.</p><p>So the gap runs in both directions. SAP is more precise than you in places, and you are more precise than SAP in others, and nobody has ever had to reconcile the two because nobody was ever speaking to the system in words.</p><h2>Two options, and neither is free</h2><p>When your word and the vendor&#8217;s word disagree, you have exactly two moves.</p><p><strong>Align.</strong> Teach the organization to use the standard term. This is change management, and it is the kind that actually sticks, because the system reinforces it every day &#8212; people learn the word by using the thing. It is also slow, it is unpopular in the places where the old word carries identity, and it does not work at all on a term people have been using since before you implemented.</p><p><strong>Bridge.</strong> Leave the language alone and make the system carry the translation. This is the option everyone reaches for first, because it appears to cost nothing and upsets nobody.</p><p>It costs something. Every term you bridge is a mapping you now own - forever, through every upgrade, in every language you operate in, maintained by someone who has to be told when the business quietly changes what the word means. Bridging is not avoiding the decision. It is choosing the option whose cost arrives later and lands on a different team.</p><p>And that cost just multiplied. Until now the translation lived in people. Someone knew that when sales said customer they meant the hotel, and built the report that way. An assistant has no such someone.</p><p>There is not one assistant. Every prompt, every Joule skill, every agent, every third-party application with its own AI needs the same translation, and each one gets it separately unless somebody decides otherwise.</p><p>SAP&#8217;s knowledge graph knows SAP&#8217;s model. An ontology you buy knows an industry&#8217;s best practice. Meanwhile Microsoft 365 is building its own picture of your vocabulary, every day, from every email, document and meeting your people put through it. None of these agree with each other, and you signed off on none of them.</p><p>Every term you keep is a term you now have to teach in every one of those places, and keep teaching.</p><h2>The test</h2><p>Which term gets which treatment is not a language question. It is a question about whether the word is carrying meaning or carrying history.</p><p>A term is carrying history when the only reason it exists is that it exists. An inherited word from an acquisition. A local convention nobody defends. A habit from a system you retired in 2015. Nothing is lost by changing it, and something is gained - an organization that speaks the same language as the system it runs on has fewer places to be wrong.</p><p>A term is carrying meaning when it encodes a distinction your business actually makes and the reference model does not. The secondary customer. Two kinds of promotional order that book margin differently and draw on different budgets. A product status that matters for a regulatory reason specific to your industry. A customer classification that drives how your commercial teams are paid. Flatten those to the standard word and you have not simplified anything. You have deleted information your business needs and will continue to need, and the people who relied on it will build a workaround within a month.</p><p>Most organizations cannot currently tell these apart, because telling them apart requires someone who can look at a term and know whether it survives translation. That is not a linguist and it is not a configuration analyst. It is someone who knows the business and the system well enough to recognize when a word is load-bearing.</p><h2>The part worth being honest about</h2><p>There is something uncomfortable in the align option and it should be said out loud.</p><p>Deciding that your people will stop saying one word and start saying the vendor&#8217;s is a cultural intervention conducted on behalf of a software taxonomy. Sometimes that is exactly right - standardization is a large part of why you bought a standard system, and every distinction you preserve is a distinction you maintain. Sometimes it is a company surrendering something that mattered because nobody in the room could articulate why it mattered, and the person who could was not invited.</p><p>Both of those happen. They look identical in a workshop.</p><h2>You have made this decision before</h2><p>Now the part that should feel familiar.</p><p>Most Z-fields in your system record a decision that your business needed a distinction the standard did not make. So do the custom tables, the extensions, the places somebody chose not to use what was delivered. You argued about them. Somebody asked whether standard could work. Somebody else explained why it could not. The ones that survived are the distinctions your organization was prepared to pay to keep.</p><p>If your secondary customer is in the system at all, it is there because somebody won that argument.</p><p>Your custom fields are your untranslated vocabulary, already made structural.</p><blockquote><p>You have a discipline for this. You called it fit-gap. You have just never run it on words.</p></blockquote><p>Which means you are not starting from nothing, and you are not being asked to learn a new practice. You are being asked to point an old one at something it was never aimed at - with the same tests you always used. Can standard do this? What breaks if we conform? What are we really protecting, and is it worth carrying?</p><h2>What to do with it</h2><p>Take a dozen terms. Not a glossary project - a dozen, the ones your people actually say in operating reviews.</p><p>For each, write down what your organization means, what the delivered system calls the nearest thing, and whether the gap is history or meaning. That is a workshop, not a program, and the arguments it produces are the deliverable. The terms nobody argues about are the ones to align. The terms that produce a fight are the ones carrying something, and the fight is how you find out what.</p><p>Then name an owner for the ones you bridge - because a mapping without an owner is a defect with a delay on it.</p><p>And notice what you have when you are done: a list of the distinctions your business makes that the reference model does not. Which is not a vocabulary artifact at all. It is the clearest statement of what makes your operation specific that anyone in your company has ever written down.</p><p>Nobody asked for it until the system needed to be spoken to.</p>]]></content:encoded></item><item><title><![CDATA[What’s Our Backlog?]]></title><description><![CDATA[For forty years enterprise software refused to answer that question. Now it will.]]></description><link>https://signal.cogniteer.io/p/whats-our-backlog</link><guid isPermaLink="false">https://signal.cogniteer.io/p/whats-our-backlog</guid><dc:creator><![CDATA[Kenneth Barker]]></dc:creator><pubDate>Tue, 29 Sep 2026 10:49:41 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Tjou!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa34a31b1-0751-4a90-828a-a700e3860308_1856x1856.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Ask that in an operating review and you get four answers, all of them correct.</p><p>Commercial means open order value. What customers have committed and not yet received.</p><p>The plant means units &#8212; tons, cases, pallets, whatever they run on. And the value behind them, because there is a KPI on each.</p><p>Finance counts what has shipped and not yet been invoiced. The plant stopped counting that the moment the truck left the yard.</p><p>The controller means outstanding performance obligations. That one is not an opinion. It is a revenue standard, and it may exclude things everyone else in the room is counting.</p><p>Nobody there is confused. Each of them knows which number is theirs, and has known since their second week.</p><p>Then somebody asks how much of it is past due.</p><p>Past due against what? The date the customer asked for. The date you first confirmed. The date standard lead time would have produced. Three numbers, three different stories about whether you have a problem, and every one of them defensible.</p><p>And none of it has ever caused any trouble.</p><h2><strong>The screen never accepted the question</strong></h2><p>Open any standard report or transaction and the ambiguity disappears &#8212; not because SAP resolved it, but because the screen never accepted the question in the first place.</p><p>There is a report for open orders. A different one for deliveries due. The revenue figure comes out of a period-end process with its own rules and its own owner, and nobody confuses it with a shipping report because you have to go somewhere else entirely to get it. If you want past due measured against first confirmed date rather than requested, you change a selection field. Deliberately. Having already decided which one you meant.</p><p>And every dashboard your company built was specified by somebody who had to state exactly which reading they meant, reviewed by somebody who argued about it, and approved before it was built. Your definitions are not undocumented. They are documented in requirements, in specs, in tickets, in the selection variants somebody saved and named. They are just not documented anywhere a system can read them, and never in one place.</p><p>None of that was a limitation anyone worked around. It was the design &#8212; and it is the design in every enterprise system ever built. Every screen your company configured, every variant it saved, every dashboard it approved is your company&#8217;s vocabulary encoded as software: your definitions, your operating culture, your language, made into a thing with a transaction code in front of it.</p><p>Interface design has spent its whole history eliminating ambiguity rather than interpreting it. Role-based screens. Layout variants. Transactions that answer one question and refuse the rest. A scheduler and a controller need different things from the same data, and the entire discipline of enterprise UX exists to make sure neither of them is ever asked what they meant.</p><p>You do not tell the screen what you want. The screen already decided, by knowing who you are and why you are there.</p><p>A field label is immune to language, too. It is a fixed target, the same target in every locale, because it is not language &#8212; it is a coordinate. It does not care that Portuguese and Mandarin divide the world differently, that Spanish encodes formality in ways that change who a sentence is addressed to, that two regions use the same word for different things and each is certain theirs is standard, that your company invented terms nobody outside it would recognize, or that the person asking is in a hurry and phrases things their own way.</p><p>An AI assistant has none of that. It gets a sentence &#8212; and natural language is not a coordinate.</p><h2><strong>Where the resolution actually lived</strong></h2><p>A sentence, and nothing else. No role, no transaction, no selection screen.</p><p>So the ambiguity is still there. It never went anywhere. It was being resolved somewhere else, and most organizations have forgotten they are doing it.</p><p>Some of it is written down. In the functional spec behind a report, where somebody had to state which date the aging was measured against. In the pricing specification that says what counts toward the commission basis. In the transport description, the change request, the design decision log from a project that closed in 2019. In the test scripts, where somebody wrote down the expected result and therefore the definition. In the selection variant somebody saved and named <em>Backlog &#8212; Ops</em>, which is a definition nobody would recognize as one.</p><p>Your definitions are in there. Scattered across systems that do not talk to each other, written in the language of whichever project produced them, never indexed, never assembled, and never once reconciled against each other.</p><p>The rest lives in people. It lives in training. It lives in the fact that the plant and the controller open different reports, and each of them knows which number is theirs. It lives in the moment a new hire asks what the backlog is and somebody who has been there eleven years says <em>when this group says backlog we mean unshipped units, and if finance is in the room they mean value including what has shipped but not billed, and if anyone says past due you need to ask against which date.</em></p><p>That sentence is one of the most important pieces of information in your company, and it exists nowhere. Not in a functional spec. Not in a configuration table. Not in any document your auditors have ever asked to see. The dashboard requirement captured one reading for one report. The map was never drawn.</p><p>It has also never needed to be, because it was only ever required by humans, who picked it up by working there.</p><p>And notice that one of those readings is not a preference. Open order value and unshipped units are an operational disagreement &#8212; both defensible, neither wrong. Outstanding performance obligations is an accounting standard with a rule behind it. An assistant returning open order value to somebody who meant performance obligations has not picked a side in a departmental argument. It has answered a regulated question with an unregulated number.</p><h2><strong>What actually moved</strong></h2><p>The specific thing that changed is narrower than the general excitement about AI suggests.</p><p>Go to a stock requirements list. You type a material and a plant. If you type the wrong material you get a perfectly correct answer to a question you did not mean to ask, and everybody in the building understands whose error that was. Nobody has ever opened a ticket asking IT to fix the system so it knows which material they meant. The parameter was your job. The system&#8217;s responsibility began after the parameter was supplied, and that boundary was absolute.</p><p>Ask conversationally and the system derives the parameter. Which measure. Which state. Which baseline date.</p><p>That derivation is now a system behavior. And system behaviors have defects.</p><blockquote><p>The screen made you decide. The sentence lets you not.</p></blockquote><h2><strong>It will arrive as a ticket</strong></h2><p>So here is what happens, and it will happen in the first month.</p><p>Somebody opens a ticket saying the assistant reported the wrong backlog. The ticket is specific, the screenshot is attached, and the person is right that the number is not the number they wanted.</p><p>It will be routed to whoever supports the interface. That person will check the service, confirm the data is correct, confirm the call was correct, and find no defect &#8212; because there is not one. The assistant answered a different question than the one the user believed they were asking, which is something that has happened between two humans in your company every day for thirty years and has always ended in a short conversation.</p><p>Now it ends in a queue.</p><p>And nobody in that queue owns the fix, because the fix is not code. Your organization already decided what <em>backlog</em> means &#8212; repeatedly, in specs and reports and transports. What it has never decided is which of those decisions applies when somebody asks in a sentence, and whether the answer is the same for everyone who asks.</p><p>That is not a support ticket. That is a vocabulary exercise nobody has ever had to fund, arriving disguised as a defect and routed to people with no authority to resolve it.</p><h2><strong>The part worth sitting with</strong></h2><p>None of this is new ambiguity. Every bit of it has been sitting in your organization since the day you went live, resolved quietly and constantly by people who learned the answer from other people.</p><p>What is new is that it is no longer being resolved on the way in. It is being resolved by a system, consistently, at scale, according to a reading nobody chose &#8212; and for the first time, being wrong about it produces an artifact with a ticket number.</p>]]></content:encoded></item><item><title><![CDATA[What SAP's AI Can Know About Your Business]]></title><description><![CDATA[*Four ways to supply your business context to an AI. Each one hands the upkeep to someone different.*]]></description><link>https://signal.cogniteer.io/p/what-saps-ai-can-know-about-your</link><guid isPermaLink="false">https://signal.cogniteer.io/p/what-saps-ai-can-know-about-your</guid><dc:creator><![CDATA[Kenneth Barker]]></dc:creator><pubDate>Tue, 22 Sep 2026 11:40:34 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!ctMZ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3df766e-1e29-4616-a11c-217f9740dead_1080x1350.svg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>A high-priority sales order lands at twenty to nine on a Tuesday. One line, confirmed for the fourteenth. The VIP customer was told the tenth.</p><p>Four people will look at that order this morning and none of them wants the same thing from it. The rep is on the phone in twenty minutes and needs to know what can be done to improve the date. The planner needs to know what else moves to make the tenth. The finance manager needs to know whether the exception the rep is asking for is permitted, and who signs it. The operations director needs to know what this does to this week&#8217;s fill rate, and why this customer keeps coming up.</p><p>Ask any of those questions of an AI assistant sitting inside your SAP system and you will get an answer. What is not obvious from the answer is where the knowledge behind it came from.</p><p>Those answers will not all come from the same place. Some of what the assistant knows arrives with SAP. Some of it you supply. And some of it you can decide to own outright. Most estates end up with more than one, which is why it is worth knowing what each one commits you to.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ctMZ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3df766e-1e29-4616-a11c-217f9740dead_1080x1350.svg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ctMZ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3df766e-1e29-4616-a11c-217f9740dead_1080x1350.svg 424w, https://substackcdn.com/image/fetch/$s_!ctMZ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3df766e-1e29-4616-a11c-217f9740dead_1080x1350.svg 848w, https://substackcdn.com/image/fetch/$s_!ctMZ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3df766e-1e29-4616-a11c-217f9740dead_1080x1350.svg 1272w, https://substackcdn.com/image/fetch/$s_!ctMZ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3df766e-1e29-4616-a11c-217f9740dead_1080x1350.svg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ctMZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3df766e-1e29-4616-a11c-217f9740dead_1080x1350.svg" width="1456" height="1820" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d3df766e-1e29-4616-a11c-217f9740dead_1080x1350.svg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1820,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:3991,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/svg+xml&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://signal.cogniteer.io/i/216812854?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3df766e-1e29-4616-a11c-217f9740dead_1080x1350.svg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!ctMZ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3df766e-1e29-4616-a11c-217f9740dead_1080x1350.svg 424w, https://substackcdn.com/image/fetch/$s_!ctMZ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3df766e-1e29-4616-a11c-217f9740dead_1080x1350.svg 848w, https://substackcdn.com/image/fetch/$s_!ctMZ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3df766e-1e29-4616-a11c-217f9740dead_1080x1350.svg 1272w, https://substackcdn.com/image/fetch/$s_!ctMZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3df766e-1e29-4616-a11c-217f9740dead_1080x1350.svg 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><h2>SAP&#8217;s semantics &#8212; the Knowledge Graph</h2><p>SAP&#8217;s framing at Sapphire was three layers: public models, SAP&#8217;s context, and the customer&#8217;s context.<a href="#fn-1"><sup>[1]</sup></a> The middle layer is where the investment is going, and the Knowledge Graph sits at the centre of it.</p><p>SAP describes it as an SAP-managed semantic layer.<a href="#fn-2"><sup>[2]</sup></a> What it contributes is the connective tissue &#8212; what a sales order is, how a schedule line relates to a delivery, which documents depend on which. An agent working from it can traverse from the rep&#8217;s order toward the planner&#8217;s question without being handed the model each time it is asked. That is the difference between an assistant that can quote a field and one that can follow a relationship.</p><p>Two things are worth separating before you plan around it.</p><p>The first is that a semantic layer describes. It does not enforce. When an agent goes on to post something, it goes through the same API the rest of your estate uses, and that is where availability checks, credit checks and incompleteness rules run &#8212; exactly as they did when a batch input session called a transaction. The graph makes an agent legible to your data. The write path is what keeps it safe.</p><p>The second is that knowing what a sales order means is not the same as retrieving yours. Meaning comes from the graph. Your actual orders, customers and configuration come through supported, authorised access to application data or data products. Nothing has to be copied into the graph for an agent to answer the rep&#8217;s question, and the two questions &#8212; does it understand this, and can it reach this &#8212; have different answers and different owners.</p><p>Which makes coverage the thing to establish rather than assume. SAP&#8217;s own material puts the S/4HANA graph at 452,000 ABAP tables, 80,000 CDS views and 7.3 million fields, drawn from its metadata model.<a href="#fn-3"><sup>[3]</sup></a> That is a substantial delivered foundation. What it does not tell you is how much of <em>your</em> implementation is represented in it.</p><p>There is a documented case that shows the gap cleanly, on the data side rather than the graph side: custom fields can arrive in SAP-managed data products while SAP&#8217;s delivered analytical models ignore them until you model their use.<a href="#fn-4"><sup>[4]</sup></a> Availability is not understanding. Transporting a field is not explaining what you meant by it.</p><p>SAP&#8217;s architecture guidance is candid about direction here. It names custom fields, custom APIs and tenant-specific configurations, and states that the long-term vision is a customer-specific knowledge graph with a shared enterprise ontology.<a href="#fn-5"><sup>[5]</sup></a> <em>Long-term vision</em> is architectural direction, not a delivery date.</p><p>So go and establish it rather than inferring it. Does the graph cover the field you repurposed in 2019? The custom object your team built? The second CRM you inherited in an acquisition and never retired, or the three EDI packages doing the same job in three regions, or the process you have not been able to standardise yet because one plant needed it that way? Some of those are roadmap questions. Some of them were never SAP&#8217;s to describe, and no delivered semantic layer is going to arrive knowing them.</p><p>Then the correction question. The delivered graph is SAP&#8217;s to change, not yours. That does not mean your only option is to build something outside &#8212; SAP documents customer-managed data products, custom semantics and access controls within the SAP-managed platform.<a href="#fn-6"><sup>[6]</sup></a></p><p>So there are three things to establish for your own estate, not two. What the graph already covers. What you can extend yourself. And what it is never going to describe, which you will have to account for somewhere else.</p><h2>Your documents &#8212; grounding</h2><p>The least glamorous of the four and the most clearly shipping.</p><p>You point it at your policy documents. It retrieves from them. It answers the finance manager&#8217;s question, and on the documented enterprise plan for Joule document grounding it is metered on records.<a href="#fn-7"><sup>[7]</sup></a></p><p>The correction path here is the one most people describe wrongly. It is not <em>edit the document and the answer is fixed</em>. An edit has to reach the retrieval system &#8212; ingestion runs on a schedule or is triggered manually &#8212; and then the answer has to be re-tested, because a wrong answer can come from selecting or interpreting the wrong material even when every document is correct.<a href="#fn-8"><sup>[8]</sup></a> Content accuracy and answer accuracy are two different responsibilities, and only the first one lives in the file you just edited.</p><p>What is also true is that part of your content estate becomes a production input. Only the selected content that has successfully indexed, and only what is reachable under the configured retrieval and access rules. That selection is a decision somebody made, and in most organisations it is not written down anywhere as a decision. The retrieval works. What it retrieves is whatever that selection contains.</p><h2>Your operating knowledge &#8212; Company Memory</h2><p>This is the interesting one.</p><p>Built on the Signavio foundation, it ingests from sources your organisation already has &#8212; policy documents, process models, agent traces, voice input &#8212; and structures what it finds into process atoms, each with a stated purpose, scope and guiding principles, with no manual transcription required.<a href="#fn-9"><sup>[9]</sup></a> It aims directly at the director&#8217;s question, the one about why this customer keeps coming up, and it addresses the actual reason enterprise agents disappoint: the operating logic of a company is distributed across material nobody has ever consolidated.</p><p>It also has the most explicit governance design of the four. SAP states that business owners curate and approve every behaviour in their domain, with a full audit trail for every change, that contradictions are surfaced before an agent acts on conflicting rules, and that a behaviour updated once reaches every connected agent at the next execution without redeployment.</p><p>Two things about that.</p><p>First, it is the most specific published answer to <em>who can change this</em> among the four &#8212; and it assigns that answer to your business owners rather than to SAP. Second, the page carries a label: the solution is in closed beta. What the page establishes is a governance design and an advertised status, not evidence of how that design performs in production. Forrester&#8217;s note in May recorded no public production references at announcement;<a href="#fn-10"><sup>[10]</sup></a> treat that as a dated snapshot rather than a current finding, and ask SAP directly where it stands now.</p><p>There is an implementation question underneath the governance design that is worth thinking through early. If your policy estate looks like most &#8212; a 2019 credit policy and a 2023 one, a regional procedure that contradicts the global standard because the region has a carve-out that lives in somebody&#8217;s head &#8212; then surfacing contradictions is going to produce a queue of decisions your organisation has managed to avoid making for two decades. Those decisions route to business owners who have day jobs. The constraint may not be getting the knowledge in. It may be adjudicating what comes out.</p><p>And the shape is worth naming plainly. The raw material is yours, and your people curate and approve what it comes to mean. But SAP supplies the structuring approach &#8212; what counts as a unit of operating knowledge, and where one ends and the next begins. Your business owners are approving behaviours expressed in units whose boundaries somebody else drew.</p><h2>Your own context service</h2><p>The first three are things SAP supplies. The fourth is not a capability at all &#8212; it is a decision about architecture, which is why it does not sit comfortably beside the others. You maintain your own retrieval and reasoning service and connect it to the assistant, rather than handing the knowledge over for the platform to hold.</p><p>Be careful about the reason. Reach is not it. SAP states that Company Memory delivers through MCP at runtime, CLI at build time and chat for business users, to Joule and to any agentic framework &#8212; so cross-interface delivery is something the platform is claiming, through the same protocol you would use.</p><p>What stays yours is narrower and more durable: authorship, and scope. You decide what counts as a unit of company knowledge rather than inheriting that decision. And you decide what goes in &#8212; including the material that no delivered structuring was designed to look at, which for most estates is where a meaningful amount of the operating logic actually lives.</p><p>A shared service will not guarantee identical answers. Instructions, permissions and history still differ from one assistant to the next. What it does mean is that disagreements are about interpretation of a shared source, rather than about which source was consulted.</p><p>What you pay is operating responsibility, and the bill is specific: keeping the corpus current, enforcing access at retrieval and keeping any inherited source permissions accurate, evaluating answer quality on an ongoing basis, and running an integration the assistant now waits on. None of it is exotic. All of it continues every month after go-live, and it is easy to underweight at pilot stage, when there is one corpus, one use case, and someone who cares about it personally.</p><blockquote><p>The capability decides what your AI can know. The choice decides who keeps it true.</p></blockquote><h2>The choice you have already made</h2><p>Put the four side by side and a distinction surfaces that most intake processes have no name for.</p><p>Approving a source document and approving an agent&#8217;s behaviour are two different signatures.</p><p>Your document libraries may well already have content approval. That is a mature control and plenty of organisations run it properly. What it establishes is that a version of a file was fit to publish. Company Memory&#8217;s published design establishes something else &#8212; that a business owner approved what the agent will do, as a structured statement of behaviour rather than as a document.</p><p>Most people will assume the first covers the second. It does not, and the gap between them rarely has an owner.</p><p>There is an open question underneath that worth taking to your own estate rather than assuming: when a grounding connector ingests from a library, does it respect that library&#8217;s approval state, or does it take what is there? Ask your integrator. Do not infer it.</p><p>All of which is what makes this foundational rather than a feature selection. Whichever combination you end up with, the knowledge does not stay true on its own. Policies change, processes drift, exceptions become norms and nobody writes it down. Someone has to keep each of these current, and those someones are different people with different authority on different clocks.</p><p>That obligation is the thing you are actually buying, and it rarely appears as a line item in the case that got the pilot approved. It also gets settled early &#8212; usually inside a pilot, by whoever sits closest to the first use case, on the grounds of what could be demonstrated fastest.</p><p>So look at your own intake. Somewhere between <em>the team wants an assistant</em> and <em>we approved the pilot</em> there should be a step where someone asks where the knowledge will live, who maintains it, and who can change it when it is wrong. If that step is not there, the question has already been answered by default.</p><p>It is worth finding out what you answered.</p><div><hr></div><ol><li><p>SAP Sapphire 2026 &#8212; three-layer framing (public models / SAP context / customer-specific context). SECONDARY as captured. Only unchased source in the piece; see open items at publication.<a href="#fnref-1">&#8617;&#65038;</a></p></li><li><p>SAP Business AI Platform product page &#8212; &#8220;SAP-managed semantic layer&#8221; phrasing. SAP primary.<a href="#fnref-2">&#8617;&#65038;</a></p></li><li><p>SAP Learning, &#8220;Exploring SAP Knowledge Graph&#8221; &#8212; S/4HANA knowledge graph based on 452,000 ABAP tables, 80,000 CDS views, 7.3 million fields. SAP primary. Establishes the scale of the delivered foundation; does NOT establish identical coverage across customers, and must not be used to claim that.<a href="#fnref-3">&#8617;&#65038;</a></p></li><li><p>SAP Learning, Business Data Cloud, &#8220;Describing data products&#8221; &#8212; custom fields arrive in SAP-managed data products while delivered analytical models ignore them until customers model their use. SAP primary. SCOPE: this is a BDC data-product and analytical-model boundary. It illustrates availability versus semantic use. It does NOT establish what the Knowledge Graph understands about any particular custom field. Keep the qualification on any reuse.<a href="#fnref-4">&#8617;&#65038;</a></p></li><li><p>SAP Architecture Center, AI-Native North Star Architecture, Foundation Layer &#8212; names custom fields, custom APIs and tenant-specific configurations; states the long-term vision as a customer-specific knowledge graph with a shared enterprise ontology. SAP primary. Establishes architectural direction, NOT a delivery date or a capability available today.<a href="#fnref-5">&#8617;&#65038;</a></p></li><li><p>SAP Learning, Business Data Cloud &#8212; customer-managed data products, custom semantics and access controls within the SAP-managed platform. SAP primary. Establishes a verified capability; does NOT establish an unrestricted customer-editable Knowledge Graph.<a href="#fnref-6">&#8617;&#65038;</a></p></li><li><p>SAP Help Portal &#8212; Joule document grounding, records-based metering. SCOPE: documented enterprise data-manager service plan. Records are defined in document-size blocks, not database rows. Not a universal SAP grounding meter and not SAP AI Core grounding. SAP primary.<a href="#fnref-7">&#8617;&#65038;</a></p></li><li><p>SAP Help Portal &#8212; grounding content ingestion, scheduled and manually triggered. SAP primary.<a href="#fnref-8">&#8617;&#65038;</a></p></li><li><p>SAP Company Memory preview page (signavio.com/company-memory, page modified 2026-08-17) &#8212; Capture / Govern / Deliver; process atoms with purpose, scope and guiding principles; &#8220;no manual transcription required&#8221;; business-owner curation and approval with full audit trail; contradiction surfacing; propagation at next execution without redeployment; MCP at runtime, CLI at build time, chat for business users, to Joule and any agentic framework; &#8220;Solution in closed beta&#8221;. SAP-owned primary, fetched and read directly 2026-09-16.<a href="#fnref-9">&#8617;&#65038;</a></p></li><li><p>Forrester, SAP Sapphire 2026 analysis, May 2026 &#8212; no public production references for Company Memory at announcement. Snapshot, not current status. Date carried in body.<a href="#fnref-10">&#8617;&#65038;</a></p></li></ol>]]></content:encoded></item><item><title><![CDATA[The Word That Comes With a Form]]></title><description><![CDATA[SAP is shipping six capabilities for governing AI agents. Every one maps onto something you already do for a new hire &#8212; and what's missing is the part that connects them.]]></description><link>https://signal.cogniteer.io/p/the-word-that-comes-with-a-form</link><guid isPermaLink="false">https://signal.cogniteer.io/p/the-word-that-comes-with-a-form</guid><dc:creator><![CDATA[Kenneth Barker]]></dc:creator><pubDate>Tue, 15 Sep 2026 11:59:41 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!raz7!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5258866-2fe6-430f-be86-2b01e2c4baff_2400x2680.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Last week&#8217;s piece ended on assembly: what SAP&#8217;s two subsidies always did for you was the joining, and no product replaces that.</p><p>SAP&#8217;s AI Agent Hub lists six capabilities. When SAP announced it at Sapphire in May, two were generally available and four were planned for Q3 2026 &#8212; and each of those four executes in a different product.</p><p>Q3 closes this month, so some may have landed since. The mapping is what matters.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!raz7!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5258866-2fe6-430f-be86-2b01e2c4baff_2400x2680.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!raz7!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5258866-2fe6-430f-be86-2b01e2c4baff_2400x2680.png 424w, https://substackcdn.com/image/fetch/$s_!raz7!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5258866-2fe6-430f-be86-2b01e2c4baff_2400x2680.png 848w, https://substackcdn.com/image/fetch/$s_!raz7!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5258866-2fe6-430f-be86-2b01e2c4baff_2400x2680.png 1272w, https://substackcdn.com/image/fetch/$s_!raz7!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5258866-2fe6-430f-be86-2b01e2c4baff_2400x2680.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!raz7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5258866-2fe6-430f-be86-2b01e2c4baff_2400x2680.png" width="1456" height="1626" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d5258866-2fe6-430f-be86-2b01e2c4baff_2400x2680.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1626,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:459831,&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://signal.cogniteer.io/i/215802181?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5258866-2fe6-430f-be86-2b01e2c4baff_2400x2680.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_!raz7!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5258866-2fe6-430f-be86-2b01e2c4baff_2400x2680.png 424w, https://substackcdn.com/image/fetch/$s_!raz7!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5258866-2fe6-430f-be86-2b01e2c4baff_2400x2680.png 848w, https://substackcdn.com/image/fetch/$s_!raz7!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5258866-2fe6-430f-be86-2b01e2c4baff_2400x2680.png 1272w, https://substackcdn.com/image/fetch/$s_!raz7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5258866-2fe6-430f-be86-2b01e2c4baff_2400x2680.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>The two that were available are the two that run inside LeanIX, where the Hub lives. The four that weren&#8217;t are the four that execute somewhere else.</p><p>The availability line and the ownership line are the same line.</p><p>Which means it doesn&#8217;t arrive as a product. It arrives as four deliveries, into four other products, with four different owners inside your enterprise &#8212; whoever runs your ALM tooling, security, process, and HR.</p><p>That looks like a fragmentation problem. It isn&#8217;t.</p><h3>Read the list again</h3><p>Go back to the six and ask what each one would be if the worker were a person.</p><p><strong>AI registry</strong> &#8212; everything that exists and can be addressed. That&#8217;s the company directory.</p><p><strong>Evaluation and verification</strong> &#8212; risk rating, criteria, sign-off. That&#8217;s the job description, and the standard the worker is held to.</p><p><strong>AI observability</strong> &#8212; how you measure against that standard. Performance monitoring.</p><p><strong>Identity and access control</strong> &#8212; what it&#8217;s allowed to reach, and which tools can be called at all. That&#8217;s provisioning.</p><p><strong>Agent mining</strong> &#8212; what the worker actually does, as opposed to what the job description says.</p><p><strong>Org chart and skills mapping</strong> &#8212; where they sit, who they report to, what they&#8217;re qualified for.</p><p>Six capabilities. Six things you already do for every new hire.</p><p>And you don&#8217;t run those six in one product for humans either. HRIS, identity platform, performance system, some view of how work actually flows, an org chart. Separate systems are normal. Nobody calls that fragmentation.</p><p>Open Outlook and look at your directory. People, conference rooms, shared mailboxes, service accounts &#8212; everything in the estate that has an identity and can be reached. Now search it for your agents.</p><h3>The thing that makes it work for humans</h3><p>For people, those systems are connected by a process, not by a product.</p><p>Joiner-mover-leaver. Somebody starts, and a sequence fires: a form, an approver, accounts provisioned in each system, roles assigned per system, a manager named, a review date set. They change roles, it fires again. They leave, and a different sequence removes what the first one granted.</p><p>The systems stay separate. The process spans them. Somebody owns it.</p><p>It isn&#8217;t that the process runs well &#8212; anyone who has been onboarded knows it often doesn&#8217;t. It&#8217;s that when it fails, there&#8217;s a trigger that should have fired and somebody to call.</p><p>For digital employees, the systems are arriving. The sequence isn&#8217;t.</p><p>That&#8217;s the gap. Not missing capability &#8212; missing connective tissue, and a role that owns it.</p><h3>Why the word matters</h3><p>Say &#8220;named user&#8221; in an SAP shop and a great deal arrives with it. A form. An approver. Licensing implications somebody will ask about. A role design, an ACL group, an access review, a leaver process. You can&#8217;t say the phrase without summoning twenty-five years of accumulated practice, most of it written down, some of it enforced by an auditor who checks it first.</p><p>Say &#8220;agent&#8221; and almost nothing arrives.</p><p>The word has been in this ecosystem for decades meaning something different each time &#8212; transport agents, monitoring agents, agent determination in workflow. It arrives pre-worn and non-specific.</p><p>So you get two words for things that live in the same estate, with overlapping questions about access, approval and review &#8212; and one retrieves a checklist while the other retrieves nothing.</p><p>Here&#8217;s the part that surprised me.</p><p>SAP&#8217;s reference architecture for agent identity stores agent identities in SAP Cloud Identity Services &#8212; in the same Identity Directory that holds your people, each with a Global User ID. Identity Provisioning synchronises their roles and groups across connected applications. Authorization Management defines what each agent identity may do. SAP Cloud ALM is named for agent lifecycle governance, explicitly from development through decommissioning.</p><p>Directory, provisioning, authorization, lifecycle to decommissioning.</p><p>That&#8217;s joiner-mover-leaver, for agents, in the identity platform. The frame isn&#8217;t an analogy I&#8217;m proposing. It&#8217;s the architecture SAP is building.</p><p>Which makes the practical question narrower and more useful: not whether to think this way, but whether anyone in your organisation is running the process that architecture assumes.</p><h3>Try it on one</h3><p>Take a specific one rather than &#8220;an agent.&#8221; A digital goods receipt clerk, say. Something narrow enough to picture.</p><p><strong>Start with the joiner questions.</strong> What systems does it need? What roles in each &#8212; not one role, a role per system, designed for the job it&#8217;s doing? Who approved it? What is it explicitly not allowed to reach? And when it acts, whose identity does each system actually see?</p><p>Then be honest about how that will go. The form has fields nobody understands, somebody picks a licence type without knowing what it means, and the roles get assigned by copying another user.</p><p>Copying another user&#8217;s roles carries forward permissions nobody has justified for this job. For a person, those mostly go unexercised. A digital employee will exercise them, repeatedly, at speed.</p><p><strong>Then ask what happens when its job changes.</strong> The mover event is the one everybody skips. Widen its scope, point it at a second plant, add a step &#8212; who revisits the permissions, who re-approves, and who removes the access the old job needed and the new one doesn&#8217;t?</p><p><strong>Then ask how you&#8217;d notice, and how you&#8217;d correct it.</strong> Not how you&#8217;d notice it failing loudly. That one takes care of itself.</p><p>The hard case is the slow decline &#8212; work that still looks fine at a glance but isn&#8217;t what it was. A manager is supposed to know what good looks like and review against it. A digital employee degrades the same way: the model changes underneath it, the data shifts, the edge cases stop being edge cases, and it gets quietly worse at the thing you hired it for.</p><p>And the failure doesn&#8217;t have to look like a mistake. The agent has full authority. It follows the method exactly. It determines no values of its own. It posts the receipt against the wrong storage location &#8212; the right quantity, the right material, a reference the process never intended. Every permission checks out. The document is valid. The stock is in a place it isn&#8217;t, and nobody finds out until someone counts.</p><p>Observability traces individual agent sessions in Cloud ALM. That&#8217;s real and it&#8217;s the right thing to build. But a trace tells you what happened, not whether it was acceptable &#8212; and that&#8217;s what the evaluation criteria were for.</p><p>Noticing is the easy half. With a person, you&#8217;d have a word. With an agent, a correction is a write to something &#8212; and there are two very different kinds.</p><p>&#8220;Use the storage location on the PO for this one&#8221; changes the current task.</p><p>&#8220;From now on, check the storage location against the PO before posting&#8221; changes the intended behaviour.</p><p>Where does that second instruction persist &#8212; this conversation, the agent&#8217;s memory, its configuration, or its code? Who tests it, who approves it, and how would you reverse it?</p><p>That&#8217;s change control, and it should scale with the impact. Some corrections are a conversation. Some are a transport.</p><p><strong>Then ask how you&#8217;d stop it.</strong> Go back through the six and ask what each does at the moment an agent acts. Inventory. Standard. Trace. Identity. Execution paths. Placement.</p><p>Most of them are a record or a lens. Two aren&#8217;t.</p><p>Verification is a stop. SAP states that only verified MCP servers can be called in production workflows, and that access is revoked when verification status changes. Mark an asset unverified and the calling stops. That one lives inside the Hub.</p><p>Identity is the other. Disable an agent&#8217;s identity in SAP Cloud Identity Services and you remove the credential it authenticates with &#8212; and autonomous agents operate on their own dedicated technical identity and tokens, so what you&#8217;re removing is the basis on which that agent is trusted anywhere downstream. That&#8217;s suspending a worker.</p><p>The stops are real. Notice who holds them. One belongs to whoever governs the registry. The other belongs to security.</p><p>So the manager who notices something wrong at four on a Friday doesn&#8217;t have a control. They have a ticket.</p><p>And both are blunter than the moment usually calls for. Verification is a production gate, not a pause. Revoking a credential is not the same as stopping work in flight. Does it stop a run already under way? Does an existing token keep working until it expires? Who is allowed to pull either one, and has anyone tested it?</p><h3>When the job ends</h3><p>There are two leaver questions, and only one of them gets asked.</p><p>The first is access. When the purpose ends &#8212; process retired, pilot concluded, team moved on &#8212; who removes it?</p><p>The architecture is further along here than most expect: Cloud ALM&#8217;s lifecycle governance runs explicitly through decommissioning. So there&#8217;s a documented owner, which is more than this question usually gets.</p><p>What that doesn&#8217;t settle is the trigger. For a human leaver, HR fires it and somebody&#8217;s job depends on it running. For an agent, nothing announces that a digital worker has stopped being needed. A lifecycle stage exists. Something still has to tell it the job is over.</p><p>That&#8217;s the same failure enterprises spent two decades fixing for service accounts, arriving again under a different word.</p><p>The second question is the one nobody asks. The work outlives the worker &#8212; the records it changed, the outputs it produced, and the evidence of what it did and on whose authority. Who inherits that? Where does it live once the agent is gone?</p><p>Observability retention is set for operational reasons. Does it preserve the evidence you&#8217;ll need after the agent is retired?</p><h3>What to do this week</h3><p><strong>Name one agent as a job, not a technology.</strong> Digital junior buyer, digital goods receipt clerk. See whether the people in the room start asking different questions.</p><p><strong>Run the lifecycle against it.</strong> Joiner: systems, roles per system, approver, restrictions. Mover: who revisits all of that when the job changes. Manager: how you&#8217;d notice it degrading, how a correction persists, what an intervention actually stops. Leaver: what happens to the access, and what happens to the evidence.</p><p><strong>Then name the owners.</strong> Start with the business owner of the job. Name the technical owner who can change or suspend the agent. Agree the handoffs with security and the application owners. That&#8217;s a starting pattern, not an org chart &#8212; but it&#8217;s more than most organisations have written down.</p><p><strong>Note which questions have an owner and which get a shrug.</strong></p><p>The shrugs are the work.</p>]]></content:encoded></item><item><title><![CDATA[The Two Subsidies]]></title><description><![CDATA[SAP gave most organizations two things for free. Neither appeared on an invoice, and both are being withdrawn this quarter.]]></description><link>https://signal.cogniteer.io/p/the-two-subsidies</link><guid isPermaLink="false">https://signal.cogniteer.io/p/the-two-subsidies</guid><dc:creator><![CDATA[Kenneth Barker]]></dc:creator><pubDate>Tue, 08 Sep 2026 11:59:45 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Tjou!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa34a31b1-0751-4a90-828a-a700e3860308_1856x1856.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Ask an SAP practitioner what makes their change governance strong and you&#8217;ll get a list of controls. Object-level transports. Downgrade protection. A release that has to be moved by someone other than the developer. A named owner on every request. Import history an auditor can query years later.</p><p>All true, and all beside the point.</p><p>The controls were strong because they weren&#8217;t optional. Nobody chose to route changes through the transport system; there was no other way to move a change. The discipline wasn&#8217;t enforced by a policy anyone wrote. It was a property of the platform.</p><p>That&#8217;s a subsidy. An expensive organizational capability, delivered free, invisibly, by the software.</p><p>There were two of them.</p><h2>The first subsidy: discipline lived in the software</h2><p>For about thirty years there were two ways to change what a production SAP system did to a business document.</p><p>The transport. And the system open &#8212; firefighter ID, time-boxed, logged, approved in advance and reviewed after.</p><p>What mattered more than the controls was the ceremony. Nobody opened production casually. You knew you were doing it, your team knew, and someone was going to read the log.</p><p>That ceremony wasn&#8217;t designed by your organization. It came with the platform, and it did the essential work before any control did: it made the change visible <em>as</em> a change, which is the precondition for governing one at all.</p><p>More than that, the transport enforced the separation of <strong>authority</strong> from <strong>judgment</strong>. The person who wrote the code was structurally not the person who approved it into production. That wasn&#8217;t culture. It was the system refusing.</p><p>Run Business AI seriously and a third path opens, and it has no ceremony whatsoever.</p><p>Prompt templates and their versions. Model bindings and version pins. The grounding corpus an agent reasons against. Tool permissions, destinations, runtime bindings, the agent&#8217;s own identity and what it may touch.</p><p>Every one of those can change what happens to a purchase requisition. None of them feels like a change.</p><p>Editing a prompt feels like configuration. Reloading a grounding set feels like data maintenance. Repointing a model version feels like an administrative task somebody does on a Tuesday. Nobody checks out a firefighter ID to edit a prompt. Nobody&#8217;s pulse moves.</p><h2>The second subsidy: the guard door was architectural</h2><p>The other thing SAP gave you free was a narrow interface.</p><p>For thirty years, reaching into SAP meant RFC, IDoc, later OData &#8212; a small, enumerated, hard-to-extend set of doors. That mattered organizationally more than technically.</p><p>Your enterprise has had two development cultures for two decades. The SAP team: ABAP, configuration, functional consultants, transport discipline. And everyone else &#8212; .NET, React, Power Platform, full-stack &#8212; who moved to Git a decade ago and never looked back.</p><p>They coexisted because the terms of contact were set on the SAP side. The two teams met constantly &#8212; integration design, API definition, interface specs. Connectors existed. Power Platform could reach SAP and some organizations tried it.</p><p>But the SAP team didn&#8217;t build the doors &#8212; SAP did. What the SAP team held was <strong>admission</strong>. They knew where the interfaces were. They granted the access. And nothing anyone built reached production unless an SAP person moved a transport.</p><p>That last one was the binding constraint. A platform developer could build whatever they wanted and point it wherever they wanted. It didn&#8217;t matter. Without a transport, it never arrived.</p><p>Which means the second subsidy was enforced by the first. Exposing an interface was itself a transported object. These weren&#8217;t parallel gifts &#8212; one was the mechanism for the other, and that&#8217;s why they&#8217;re being withdrawn together rather than by coincidence.</p><p>The two cultures rarely admired each other. Each looked negligent from the other side, because the consequence that justified the other&#8217;s discipline wasn&#8217;t visible from where they stood &#8212; external audit and restatement risk on one side, rollback and an apology on the other.</p><p>Contempt is a poor basis for a control boundary. Neither side audits a group it has already dismissed.</p><p>Agent-to-agent protocols and MCP exist specifically to remove the narrowness. Any capable agent can discover and call an exposed capability without a hand-built integration. So the guard at the door isn&#8217;t being bypassed &#8212; the door is being replaced by something that has no frame, and the exposure decision moves off the SAP team&#8217;s desk.</p><h2>What SAP has actually built, because most commentary gets this wrong</h2><p>It would be easy to write this section as a list of things the vendor hasn&#8217;t done. That would be inaccurate, and out of date by about a quarter.</p><p>Joule Studio reached general availability in May 2026 with Git-based deployment giving versioning and rollback out of the box. Its architecture documentation states that logging, <strong>audit logging</strong> and telemetry are provided by the runtime, and that operational controls are structural features rather than afterthoughts.</p><p>The SAP AI Agent Hub is a vendor-agnostic registry that inventories agents, models and MCP servers regardless of who built them, governs the lifecycle from proposed through to decommissioned, and surfaces verification status inside Joule Studio and Integration Suite. It adds identity and access control on SAP Cloud Identity Services, session-level observability through Cloud ALM, agent mining through Signavio, and org chart mapping through SuccessFactors. Cloud ALM ships bundled with every RISE and GROW subscription at no additional cost.</p><p>That is a serious governance architecture, shipping quickly.</p><p>Now look at the calendar. Everything material lands in Q3 and Q4 2026 &#8212; the managed Joule Studio a business user can reach through a browser, the Agent Hub, agent identity, session observability, and the inference tracing an auditor would actually ask for. Design-time access is free through the end of 2026 and post-promotion pricing hasn&#8217;t been published.</p><p>Everything arrives at once, this quarter and next.</p><p>And there&#8217;s one more piece. SAP&#8217;s autonomous migration tooling now performs system analysis, custom code remediation, configuration work and test generation on its own. That is not a tool that assists with change. It is a tool that makes change, across landscape boundaries, at a pace no human change manager reviews in real time.</p><p>Agents aren&#8217;t only downstream consumers of change any more. Some of them are change actors.</p><h2>The organization hasn&#8217;t changed shape in thirty years</h2><p>Here is the thing nobody says out loud.</p><p>The technology under SAP has churned continuously. Netweaver came and went. The Java stack came and went. HANA arrived and rewrote the database assumptions. The product has been renamed repeatedly. Through every one of those, the shape of the organization running SAP stayed identical: Basis, security, functional, development, with a centre of excellence bolted on for coordination.</p><p>Thirty years of relentless technology change that never once required a structural reorganization. That&#8217;s a remarkable run, and the reasonable inference is that this change won&#8217;t require one either.</p><p>That inference has been correct every previous time.</p><p>It isn&#8217;t this time, and the reason is the two subsidies. Every prior technology change left both intact. The transport still moved everything. The interface was still narrow. The organization didn&#8217;t have to change shape because the platform kept doing the coordination for it.</p><p>Which is also why the muscle doesn&#8217;t exist. Not because SAP teams are inflexible &#8212; because they were never asked. You don&#8217;t build a capability for a job the software was already doing.</p><p>Christian Klein put it plainly at Sapphire: &#8220;Moving to the Autonomous Enterprise requires serious change management. Adoption of AI goes hand-in-hand with business process change and end user enablement.&#8221;</p><p>He&#8217;s right. It&#8217;s worth being precise about what that turns out to mean.</p><p>The inventory lives in LeanIX. The observability lives in Cloud ALM. Conformance measurement lives in Signavio. Org mapping lives in SuccessFactors. Agent identity lives in Cloud Identity Services. The build surface lives in Joule Studio.</p><p>Six products, most of them owned in most enterprises by different functions with different budget lines and no shared governance forum. The tooling is real and it works. Assembling it into a control environment is an organizational problem &#8212; and assembly is precisely what the subsidies used to make unnecessary.</p><p>The tooling gap is closing this quarter. The tooling was never the part that took a decade.</p><h2>&#8220;My tools still work. Why now?&#8221;</h2><p>You&#8217;re right, and it deserves a straight answer rather than a manufactured deadline. Solution Manager runs to end of mainstream maintenance in December 2027, with extended maintenance carrying ChaRM further for those who hold it. Nothing breaks tomorrow.</p><p>But ChaRM was installable in weeks. What took ten years was the roles, the change advisory board, the approval paths, the retrofit discipline, the SoD matrix, and the accumulated instinct in a handful of people for when to ask a question.</p><p>Waiting for the tooling to be finished means starting the ten-year part a decade late.</p><h2>This week</h2><p>The first useful move is definitional, and it&#8217;s free.</p><p>Your change process almost certainly defines a change as something captured in a transport request, or something requiring a system open. Both definitions are now too narrow, and the gap between them is where the third path sits.</p><p><strong>If this object changed overnight and nobody was told, could a business document post differently tomorrow?</strong></p><p>If yes, it&#8217;s a change. It belongs inside your control envelope &#8212; whatever moves it, whoever owns the tooling, and whether or not a transport request will ever exist for it.</p><p>That test catches the prompt, the grounding corpus, the model version pin and the tool permission set. It excludes a great deal people currently escalate unnecessarily. And it&#8217;s short enough to survive a steering committee, which matters more than elegance.</p><p>Then the harder question: for each thing the test catches, who approves it &#8212; and are they allowed to be the person who wrote it?</p><p>If the answer involves three products and two departments, you&#8217;ve found the actual work.</p><p>There&#8217;s a role in there that doesn&#8217;t exist on anyone&#8217;s org chart. Somebody has to own the boundary between agents and applications &#8212; what&#8217;s exposed, to whom, with what authority, evidenced how. It isn&#8217;t Basis. It isn&#8217;t security. It isn&#8217;t the platform team. It&#8217;s the seam between them, which is exactly why it has no owner today.</p><h2>What I&#8217;m not saying</h2><p>I&#8217;m not saying the vendor is behind. On the evidence, SAP is moving faster on agent governance than most of its customers are moving on agent adoption, which is an unusual position for a platform vendor to be in.</p><p>I&#8217;m also not saying you need to buy something. A category of vendor is forming around this gap and their analysis is often accurate. But their conclusion &#8212; that you need a new change management platform &#8212; is a commercial position, and it&#8217;s the wrong shape for the problem. What was withdrawn wasn&#8217;t a tool. It was an organizational capability the tool used to supply, and no product replaces that.</p><p>Two structural subsidies underwrote SAP change governance for thirty years. Both are being withdrawn in the same quarter. What replaces them is a set of capable products that only becomes a control environment once somebody assembles them.</p><p>Assembly is the one thing the subsidies always did for you.</p>]]></content:encoded></item><item><title><![CDATA[One Code Line, Two Products]]></title><description><![CDATA[There is a sentence in most SAP architecture documents written before 2025 that quietly stop being true. Private cloud is just hosted S/4HANA.]]></description><link>https://signal.cogniteer.io/p/one-code-line-two-products</link><guid isPermaLink="false">https://signal.cogniteer.io/p/one-code-line-two-products</guid><dc:creator><![CDATA[Kenneth Barker]]></dc:creator><pubDate>Tue, 01 Sep 2026 11:59:12 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Tjou!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa34a31b1-0751-4a90-828a-a700e3860308_1856x1856.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>Private cloud is just hosted S/4HANA.</em></p><p>For about a decade that was accurate, and it was useful. It meant the deployment decision was an operating-model decision &#8212; who runs the infrastructure, who patches, who holds the SLA &#8212; and not a capability decision. The software was the software. Where it ran was a separate question with separate economics.</p><p>That sentence expired in October 2025, and I don&#8217;t think enough people noticed.</p><h2>Shared foundation, separate scope</h2><p>The 2025 release shipped on 8 October 2025. Same ABAP Platform underneath both editions. Same release date. Same seven-year maintenance window running to December 2032.</p><p>Shared foundation, in other words. But not shared scope.</p><p>SAP&#8217;s own release documentation states the position plainly: AI capabilities and intelligent agents are available exclusively in SAP S/4HANA Cloud Private Edition &#8212; now branded SAP Cloud ERP Private &#8212; while on-premise SAP S/4HANA 2025 receives core functional enhancements.[1]</p><p>One more scope note, because leaving it out would be its own kind of misleading. There&#8217;s a third deployment model &#8212; public edition, now branded SAP Cloud ERP &#8212; and it isn&#8217;t part of this comparison at all. It runs on a separate, multi-tenant codebase with its own continuous release cadence, outside the numbered 2025/2027 releases this piece is about. It&#8217;s also not behind: public edition has had Joule since November 2024, nearly a year ahead of private edition&#8217;s embedded layer, and continues to pick up new agents on its own schedule. If you&#8217;re on public edition, this specific split isn&#8217;t your split &#8212; but the pattern underneath it is the same one: deployment model, not capability demand, decides when and whether you get the agent layer.</p><p>The on-premise edition is not being abandoned. It gets real improvements &#8212; finance, asset management, service, sales, the ABAP development experience. These aren&#8217;t consolation prizes. If your 2027 target state is a well-run, current, functionally complete ERP, on-premise 2025 delivers it.</p><p>What it does not get, as part of the release, is the agent layer.</p><h2>What the line actually separates</h2><p>Both editions can reach AI. That&#8217;s the part people get wrong in the other direction &#8212; they hear &#8220;no AI on premise,&#8221; and that isn&#8217;t true either.</p><p>The supported on-premise pattern is real and it works. S/4HANA exposes OData. A BTP application reads it with principal propagation, calls the orchestration service, and returns a result. For plenty of use cases that is entirely sufficient.</p><p>But look at what you have once it&#8217;s built. A capability sitting next to the system. Someone has to leave the transaction, ask it a question, read the answer, come back, and act. Three steps where the process had one &#8212; and a decision point that lives outside the audit trail of the thing it changed.</p><p>On the other side of the line, the agent isn&#8217;t a separate application you built. It&#8217;s licensed as part of the product and embedded in the same screen &#8212; the user never leaves the transaction to consult it.</p><p>That is the difference, and it is not a feature-count difference.</p><blockquote><p>One edition lets you build AI your people can consult. The other licenses AI that&#8217;s already embedded where the work happens.</p></blockquote><p>Anyone who&#8217;s run a rollout has watched this pattern before, wearing different clothes. Enable Now content is supposed to track the system as it changes. Six months after go-live, how much of what shifted during hypercare actually made it back into the training material? Test automation is supposed to keep testing the system &#8212; how many of those scripts still run, and how many died the slow death updating them always does once something else is on fire? Neither tool failed. Staying current was a separate decision every time, and separate decisions are the first thing hypercare kills.</p><p>That&#8217;s the general shape of it: adoption is a function of how many decisions a capability costs, not of the capability itself. Put an agent beside the transaction and it costs one every time &#8212; open it, ask it, act on the answer, same as opening Enable Now instead of just working. Put it inside the transaction and it costs nothing. There&#8217;s no separate decision to lose to hypercare, because there&#8217;s nothing to open.</p><h2>The price isn&#8217;t money</h2><p>Every capability gap in SAP&#8217;s history has had a price on it. License the add-on. Buy the module. Build it on the platform. Pay a partner to close it. That is what a gap normally is &#8212; a purchase you haven&#8217;t made yet.</p><p>This one has a price too. It just isn&#8217;t denominated in money.</p><p>At Sapphire in May 2026, SAP reversed a years-long position and announced that Joule assistants and agents would be extended to ECC and on-premise S/4HANA. That was real news, and anyone still describing the boundary as absolute is working from a 2025 picture.</p><p>Then read the conditions. Access requires beginning the migration through RISE with SAP and committing the majority of the landscape to SAP Cloud ERP. SAP&#8217;s own product documentation for ABAP AI on on-premise releases &#8212; 2025, 2023, 2022 and 2021 &#8212; says availability is subject to the special RISE contract conditions announced at Sapphire, and tells you to verify entitlement and contract status with your account executive before planning adoption.[2] SAP&#8217;s leadership has framed the whole arrangement as an interim bridge rather than a long-term commitment to on-premise AI.</p><p>So it is purchasable. There&#8217;s still no SKU. What there is instead is a qualification.</p><p>That distinction matters more than it sounds. A SKU can be scoped. You can pilot it on one plant, buy a limited quantity, expand if it works, walk away if it doesn&#8217;t. A qualification can&#8217;t be scoped, because the thing being priced isn&#8217;t the capability &#8212; it&#8217;s your estate. There is no line item for AI on three plants. There is a commitment about where the majority of your systems will live, and the capability arrives as a consequence of it.</p><p>The only currency that buys the agent layer is deployment model. That was true as an architecture observation in October 2025. Since Sapphire it&#8217;s true as a contract term.</p><p>That is an unusual sentence to be writing about an ERP in 2026, and it is why the pre-2025 sentence has to come out of your architecture document. It didn&#8217;t merely become inaccurate. It became a sentence that hides a decision.</p><h2>The honest counter-argument</h2><p>The strongest objection to all of this is that the boundary is already moving. Sapphire proved the line isn&#8217;t fixed. Cloud-first is what every vendor does with AI &#8212; the infrastructure, the metering and the model access all live there &#8212; and it doesn&#8217;t follow that on-premise is being deliberately starved. If SAP extended AI to on-premise once, under pressure from an installed base that isn&#8217;t migrating fast enough, it can extend it again on better terms.</p><p>That&#8217;s a fair reading and I&#8217;d hold it loosely rather than dismiss it.</p><p>But notice what actually moved. The capability crossed the line; the dependency didn&#8217;t. The extension is conditioned on landscape commitment, delivered side by side rather than inside the transaction, and described by SAP as a bridge. The boundary didn&#8217;t dissolve. It got a toll booth, and the toll is denominated in exactly the currency this piece is about.</p><p>That&#8217;s a weaker form of &#8220;the gap is closing&#8221; than it first appears. Plan for the dependency holding. Be pleased if it loosens.</p><h2>What this changes</h2><p>Deployment model now determines feature availability, not just operating responsibility. That&#8217;s a different conversation with a different set of people in the room.</p><p>For an architect, any decision that rested on the old sentence needs re-examining. Not necessarily reversing &#8212; re-examining.</p><p>For a CFO, the comparison is no longer hosting cost against hosting cost. It&#8217;s hosting cost against hosting cost <em>plus</em> a capability set available on one side only, on terms that price your estate rather than the feature &#8212; and whose 2027 pricing isn&#8217;t published on either side yet, which makes the comparison harder rather than easier.</p><p>For a program, the deployment decision may already be made. If any capability in your 2027 target architecture depends on the agent being inside the transaction, you don&#8217;t have a deployment choice. You have a deployment consequence to accept.</p><p>Here&#8217;s how you find out which one you are. List the AI-dependent capabilities in your 2027 target architecture. For each one, ask a single question: does the value depend on the AI being <em>in</em> the transaction &#8212; or only on it being <em>available</em> to the person doing the transaction?</p><p>If everything on your list is the second kind, you have no problem here. Build it on BTP, keep the deployment decision where it belongs &#8212; sovereignty, control, cost structure &#8212; and ignore the rest of this. That&#8217;s a legitimate outcome, and more organizations should reach it deliberately rather than by default.</p><p>If anything on your list is the first kind, the decision is already made. What remains is when you say so out loud.</p><p>Twenty minutes. A list and one column. Better you run it than a steering committee &#8212; because the version that surfaces in a steering committee arrives as a budget request, and this was never a budget question.</p><p>Search your architecture documents for the sentence, or any variant of it. If it&#8217;s in there, it&#8217;s describing a product that stopped existing in October 2025. The point isn&#8217;t to make you move. It&#8217;s that where you run should be a decision you made, rather than an assumption you inherited from a document written in 2023.</p>]]></content:encoded></item><item><title><![CDATA[The Clock You Didn't Know You Started]]></title><description><![CDATA[Solution Manager mainstream maintenance ends on 31 December 2027. Everybody knows that date. Most people have the wrong model of what it means.]]></description><link>https://signal.cogniteer.io/p/the-clock-you-didnt-know-you-started</link><guid isPermaLink="false">https://signal.cogniteer.io/p/the-clock-you-didnt-know-you-started</guid><dc:creator><![CDATA[Kenneth Barker]]></dc:creator><pubDate>Tue, 25 Aug 2026 11:58:59 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Tjou!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa34a31b1-0751-4a90-828a-a700e3860308_1856x1856.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2>What the date actually is</h2><p>If you hold an on-premise SAP maintenance agreement, you have a perpetual licence to Solution Manager. SAP says so directly: customers with on-premise maintenance agreements retain the perpetual licence and can continue using Solution Manager after the end of mainstream or extended maintenance.</p><p>So 2027 is a support date. Corrections stop. Your right to run the software doesn&#8217;t.</p><p>It gets better than most people realise. If you take the optional extended maintenance for Business Suite 7 &#8212; the one that costs two percentage points on your maintenance basis and runs to the end of 2030 &#8212; you receive extended maintenance for Solution Manager 7.2 at no additional cost. Not a separate purchase. Included.</p><p>And the extended maintenance scope isn&#8217;t a token subset. Per SAP Note 3255311 it covers requirements management, project management, process management, test suite, <strong>change control management</strong>, IT service management and landscape management.</p><p>Change control management. ChaRM is in scope, to 2030, at no extra cost.</p><p>I&#8217;ve seen this described repeatedly as paid extended maintenance for selected functions. That framing is wrong in both halves, and it&#8217;s worth knowing which one you&#8217;re actually looking at before you build a plan around it.</p><h2>The second date</h2><p>Now change one variable.</p><p>Solution Manager usage rights are included in on-premise maintenance agreements. S/4HANA Cloud &#8212; including private edition &#8212; comes with its own cloud maintenance agreement.</p><p>RISE includes Cloud ALM. It does not include Solution Manager. If you move fully to RISE and retain no separate on-premise maintenance agreement, you have no Solution Manager usage right at all.</p><p>Not at end of maintenance. At the end of your on-premise agreement.</p><p>That&#8217;s a different kind of event, and the difference is the whole point of this piece.</p><blockquote><p>An on-premise customer has a support problem. A RISE customer with no remaining on-premise agreement has an entitlement problem &#8212; and its date sits in their contract, not on SAP&#8217;s maintenance roadmap.</p></blockquote><p>Exactly when that lands is a contractual question, not a roadmap one. It depends on when your on-premise maintenance agreement terminates &#8212; which is why the first action below is to confirm it in writing rather than assume it.</p><p>For an organisation converting during 2026, that clock may already have started, before the one everyone is planning around.</p><h2>What travels with it</h2><p>For organisations that built change governance on ChaRM &#8212; transport control, approval workflow, the release calendar, the audit trail internal audit has been shown for a decade &#8212; this isn&#8217;t a tool swap.</p><p>It&#8217;s the rebuild of the control framework that SOX evidence, release governance and segregation-of-duties testing currently rest on.</p><p>Test Suite goes the same way. So do process documentation and monitoring. Focused Build and Focused Insights are included in Solution Manager&#8217;s usage rights and follow the same maintenance conditions, so they travel with it too.</p><p>One precision point, because overstating this is the fastest way to lose an argument with someone who has read their own paperwork. RISE supplements have historically granted narrow web self-service rights inside Solution Manager Enterprise Edition &#8212; raising support tickets, checking status, confirming them, and change approvals directly related to those.</p><p>Supplement wording changes between versions. Check yours rather than taking mine. But whatever the current text says, understand what that entitlement is: a support interface. It is not ChaRM, and it will not carry a release process.</p><h2>Three remedies, and what each actually costs</h2><p>The first is to keep an on-premise maintenance agreement. If you retain any SAP product under on-premise maintenance, the Solution Manager entitlement survives &#8212; along with the perpetual licence and, if you&#8217;ve taken it, extended maintenance to 2030. For organisations moving only part of the estate, this is often already true and needs confirming rather than solving. It&#8217;s also the remedy most likely to disappear quietly, because as the remaining on-premise footprint retires, the entitlement retires with it. That&#8217;s a dependency with its own expiry date, and I&#8217;ve not yet seen an organisation tracking it.</p><p>The second is to subscribe to Solution Manager, private cloud edition. This is a real offering from SAP Enterprise Cloud Services, created specifically to give cloud-only customers access and usage rights to a Solution Manager 7.2 system in the private cloud. Worth knowing what you&#8217;re buying before anyone quotes it: it comes in two versions, and only the full stack carries what you&#8217;d recognise as Solution Manager. SAP is also explicit that it arrives unconfigured &#8212; basic configuration and process customising are yours to do or yours to pay for, on top of the subscription. So the cost isn&#8217;t the subscription. It&#8217;s the right tier, plus rebuilding your configuration in a new system, while running everything else. And the 2027 maintenance date still sits underneath it. This is a bridge, not a destination.</p><p>The third is to move to Cloud ALM. That&#8217;s SAP&#8217;s stated direction, entitlement is included with cloud subscriptions and Enterprise Support, and free usage runs to a baseline that covers almost every customer. It&#8217;s also, by SAP&#8217;s own account, not at parity &#8212; SAP says directly there is no feature parity between the two platforms. Whether Cloud ALM covers your ChaRM configuration is a scoping exercise, and it&#8217;s the one I&#8217;d run first, because the answer determines which of the three remedies you&#8217;re actually choosing between.</p><h2>The shape of what&#8217;s being asked</h2><p>You move your change governance &#8212; the control framework that produces your audit evidence &#8212; onto a new platform, on a deadline, while simultaneously running a conversion, a release upgrade and an integration rebuild. Same people, same twelve months.</p><p>And if you&#8217;re going to RISE, the clock on the thing you&#8217;re leaving may already be running.</p><p>That&#8217;s not an argument against Cloud ALM. Cloud ALM is where this is going, the entitlement is included, and it&#8217;s increasingly where agent observability lands too &#8212; which matters more every quarter.</p><p>It&#8217;s an argument against discovering the sequencing in month nine.</p><h2>Why it&#8217;s missing from the business case</h2><p>Because it isn&#8217;t a cost. It&#8217;s an entitlement change, and entitlement changes don&#8217;t generate a line item.</p><p>The RISE business case has a subscription figure, a migration figure, an infrastructure figure and a change-management figure. It rarely has a line for rebuilding change governance &#8212; because nobody costed it. The tool was always just there, included in an agreement that had been renewing since before most of the current team joined.</p><p>So start by establishing which clock you&#8217;re on. Confirm in writing whether you retain a Solution Manager usage right under your current agreement structure, and when that agreement actually terminates &#8212; that date, not a roadmap date, is the one that governs you. If the answer is yes via an on-premise agreement, find out what happens to it when the remaining on-premise footprint retires. Check whether you already hold extended maintenance for Business Suite 7, because if you do you have ChaRM to 2030 at no additional cost and considerably more room than you may think. Then scope Cloud ALM against your actual ChaRM configuration &#8212; not against Cloud ALM&#8217;s feature list, but against your approval workflow, your transport control, your release calendar, and whatever your external auditor has been shown for the last five years. The gap between those two lists is the real scope of the transition, and it&#8217;s a number you can produce in a fortnight.</p><p>This is one of five separate SAP clocks stopping in the same December, and the other four compete for the same people &#8212; which is next week&#8217;s problem.</p><p>Things that were always there don&#8217;t get costed. They get discovered.</p>]]></content:encoded></item><item><title><![CDATA[The Winner's Account]]></title><description><![CDATA[Every document your organization keeps was written after the decision. The thinking that produced it wasn't &#8212; and it's about to constrain everything you're trying to automate.]]></description><link>https://signal.cogniteer.io/p/the-winners-account</link><guid isPermaLink="false">https://signal.cogniteer.io/p/the-winners-account</guid><dc:creator><![CDATA[Kenneth Barker]]></dc:creator><pubDate>Tue, 18 Aug 2026 11:59:24 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Tjou!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa34a31b1-0751-4a90-828a-a700e3860308_1856x1856.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Open any functional specification in your estate and read it as a piece of writing rather than a piece of documentation.</p><p>It will tell you what the change does. The scope, the objects touched, the fields affected. It is precise, it is complete, and it is almost certainly accurate.</p><p>It will not tell you that somebody in the room said this wouldn&#8217;t hold up.</p><p>That isn&#8217;t a flaw in how your specs are written. It&#8217;s what a document is. Every artifact your organization keeps was composed after the decision was made, and each one records the outcome as though it were the only option on the table. The alternatives aren&#8217;t suppressed. They&#8217;re just not what the document is for.</p><p>Call it the winner&#8217;s account.</p><div><hr></div><h2>What gets deleted</h2><p>Most objections raised in a design meeting are preference. Two people want to load the dishwasher differently. Either approach works, the dishes come out clean, and the argument is a tax on everybody&#8217;s afternoon. Nothing is lost when that objection disappears from the record, because there was nothing in it.</p><p>Then there&#8217;s the other kind. Occasionally somebody understands a downstream consequence the people deciding genuinely cannot see. Not because those people are careless &#8212; because it isn&#8217;t visible from where they&#8217;re standing. The design assumes master data discipline the organization doesn&#8217;t actually have. Or process consistency across sites that was never true.</p><p>Those two objections sound exactly the same when they&#8217;re raised. Same tone, same confidence, same <em>I&#8217;ve seen this before.</em> Which is precisely why the second one gets talked past &#8212; at the moment it&#8217;s spoken, it&#8217;s indistinguishable from the first.</p><p>The record deletes them both, equally, without knowing which was which.</p><p>And it isn&#8217;t the big decisions this happens to. Those have paper &#8212; a business case, a steering committee, somebody&#8217;s signature. Ask why the company moved a product line to make-to-order and you&#8217;ll get an answer, because the whole organization knew why at the time.</p><p>It&#8217;s the decisions one level down. The rule inside the design. The tolerance. The threshold that&#8217;s fifteen and not ten. The scoping call that put something in two plants and not the third. Individually too small to justify a document. Collectively, they determine how the process actually behaves.</p><div><hr></div><h2>Why nobody kept it</h2><p>The obvious explanation is negligence, and the obvious explanation is wrong.</p><p>Think about what keeping it would have required. At the moment an objection is raised, nobody knows which kind it is &#8212; that&#8217;s the whole problem. So you can&#8217;t keep the important ones. You&#8217;d have to keep all of them, indexed and searchable, held for a decade against the possibility that one turns out to matter.</p><p>The technology was never the obstacle. Search engines have been indexing and ranking unstructured text since the nineties, and doing it well. What you couldn&#8217;t do was <em>have</em> one. That capability was the entire product of a company &#8212; you used theirs, or you did without.</p><p>And indexing a haystack to find a needle you can&#8217;t yet describe is not a business case anybody funds. So every organization made the same call: keep the decision, discard the discussion. Every one of them was right to. At those prices, the winner&#8217;s account was the rational record.</p><p>What changed isn&#8217;t the capability. It&#8217;s what it costs and how long it takes &#8212; and the second one matters more than it sounds.</p><p>A capability you can&#8217;t reach inside the decision window isn&#8217;t a capability you have. An answer that takes eighteen months is not available to a question being settled this week. That&#8217;s the sense in which this wasn&#8217;t possible: not that the techniques didn&#8217;t exist, but that nothing they produced could arrive while it still mattered.</p><p>Retrieval over unstructured text, by meaning rather than keyword, has gone from a program budget and a quarter to a rounding error and a few minutes. Which removes the binding constraint &#8212; <strong>you no longer have to know in advance what&#8217;s worth keeping.</strong> Every previous attempt at this failed in the same place: somebody had to decide, at the moment of capture, what would matter later. And the objection that matters is precisely the one nobody flagged, because if anyone had known it mattered they&#8217;d have acted on it at the time.</p><p>The other half arrived without anyone deciding anything. Your meetings are being transcribed. Not because it was planned &#8212; because it became free and nobody turned it off. Most organizations now generate more hours of recorded discussion in a month than in the previous decade.</p><p>And a transcript has a property nothing else in your estate has. It was produced <em>during</em> the decision rather than after it. What&#8217;s in there is the thinking process &#8212; how the group weighed it, what got set aside, which option somebody argued for hard and lost. Both kinds of objection are in there, still unsorted, which is exactly right, because nobody could sort them at the time either.</p><div><hr></div><h2>What it&#8217;s costing you now</h2><p>This stopped being a philosophical problem about six months ago.</p><p>Point AI at a process and ask where the waste is. It&#8217;ll tell you. A mandatory field nobody needs, where everyone types whatever gets them past it. A step that exists twice. A rule that applies to one plant and nowhere else. A tolerance tighter than anything downstream requires.</p><p>The analysis is right, and it&#8217;s cheap now. That work used to be a consulting engagement. It&#8217;s an afternoon.</p><p>Then somebody has to decide what to remove, and that&#8217;s where it stops.</p><p>Because each of those was decided by a person, in a room, for a reason &#8212; and four years on, the reason is gone and the rule is still there. What happened in between is the part nobody notices. The rule didn&#8217;t fail. It degraded: right most of the time, quietly wrong at the edges, in exactly the circumstances the objection was about. Nobody raised a defect, because nothing was obviously broken. Somebody built a workaround and after a while stopped mentioning it.</p><p>Longer still and it isn&#8217;t a workaround. It&#8217;s just how the process works. There&#8217;s nobody to blame, because there&#8217;s nothing left to blame.</p><p>So you&#8217;re holding a list of inefficiencies and you can&#8217;t tell which ones are load-bearing. And the two mistakes aren&#8217;t the same size. Leaving it costs a little, forever &#8212; and that cost was absorbed years ago. Taking it out might cost a lot, on one specific Tuesday, and everyone will know who did it.</p><p>Nobody takes that trade without information. So it stays. And so does the next one, and the forty after that.</p><p>The finding got cheap. The risk didn&#8217;t.</p><div><hr></div><h2>And your content strategy won&#8217;t catch it</h2><p>There&#8217;s a version of this that people think they&#8217;ve already solved.</p><p>It comes up when you stand up a data platform, or scope an AI project, or replace a document system. Somebody has to decide what gets pulled in, indexed, and governed, and what stays where it is, reachable through an API when someone needs it. Important gets materialized. Everything else stays connected.</p><p>It&#8217;s a sound model, and someone on your team will build that list well. Contracts, specifications, policies, the documentation that took years to assemble. Every one of them produced on purpose, with a title and an owner and a version.</p><p>The list will be right, and the thing you actually need won&#8217;t be on it.</p><p>Because it isn&#8217;t content. It&#8217;s what people said on the way to producing the content &#8212; a passage in the middle of a conversation about something else. It won&#8217;t come up in the scoping session. Nobody will argue for excluding it. It isn&#8217;t on the list because it was never a candidate.</p><p>Your platform will hold everything your organization decided. It just won&#8217;t hold why.</p><div><hr></div><h2>The questions nobody asked</h2><p>Everything above assumes somebody objected. Often nobody did.</p><p>The room didn&#8217;t have the person who&#8217;d seen it go wrong before. Or they were two levels down and not invited. Or they were in a different function and it never occurred to anyone that this touched them. The decision was made carefully, by capable people, and the thing that mattered went unmentioned because nobody in the room knew to mention it.</p><p>There&#8217;s no erasure there. There was nothing to erase.</p><p>Which sounds like the harder problem, and in one meeting it is. Across two hundred, it isn&#8217;t &#8212; because the same questions turn out to be missing over and over. The one about who reads this downstream. The one about what happens at period close. The one about whether the data will actually arrive that way. They&#8217;re not exotic. They&#8217;re just not on anybody&#8217;s list, because no list exists.</p><p>And this is where something genuinely did change, rather than getting cheaper.</p><p>Every previous approach required knowing what you were looking for before you started. Define the schema, write the rules, pick the terms to index. The system could only surface what somebody had already thought to specify &#8212; which is precisely useless against a blind spot, because a blind spot is by definition the thing nobody specified.</p><p>You can&#8217;t index an absence. There&#8217;s no keyword for <em>nobody asked what happens at period close.</em> Finding it means reading a discussion, knowing what discussions like it usually contain, and noticing what this one is missing. That isn&#8217;t retrieval at any price. It&#8217;s new.</p><p>And it works off the same record. What a room did discuss is what tells you what it didn&#8217;t.</p><p>Which makes the thing worth building toward something other than an archive. Not a store of what was said &#8212; a working set of the questions this organization has learned it needs to ask, assembled from the ones it kept failing to ask.</p><p>Your senior people already carry a version of that list. They built it the way everyone builds it: something went wrong, and they never forgot to check again. It took them twenty years, and it leaves when they do.</p><div><hr></div><h2>Where to start</h2><p>Ask what your transcripts are being used for. If the answer is summaries and action items, you&#8217;re extracting the part you already had &#8212; somebody was capturing that before, and now it happens by itself. Useful, and not the valuable part.</p><p>Then ask your team which workaround they&#8217;d most like to be rid of. They&#8217;ll have an answer immediately; people carry these. Ask why the underlying rule works that way, and who argued against it at the time.</p><p>You probably can&#8217;t recover that one. But the rules nobody will be able to explain in 2030 are being decided in your design meetings this quarter, and that part is still in front of you.</p><p>The reasoning that would explain the one you&#8217;re stuck with happened in a room, four years ago.</p><p>Your organization did the thinking once. It just didn&#8217;t keep it.</p>]]></content:encoded></item><item><title><![CDATA[Where the Learning Goes]]></title><description><![CDATA[AI is already in your change process. It just arrived through the side door.]]></description><link>https://signal.cogniteer.io/p/where-the-learning-goes</link><guid isPermaLink="false">https://signal.cogniteer.io/p/where-the-learning-goes</guid><dc:creator><![CDATA[Kenneth Barker]]></dc:creator><pubDate>Tue, 11 Aug 2026 11:59:21 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Tjou!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa34a31b1-0751-4a90-828a-a700e3860308_1856x1856.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>A consultant once brought a transport for approval. Add a field to a table.</p><p>I asked what the field was for. He said that was it &#8212; just add the field. It was on the list he&#8217;d been given. So I asked what data would go into it, and what would consume the data once it was there. He didn&#8217;t know. Neither, it turned out, did the person who&#8217;d asked for it.</p><p>The change was correct. It would have transported cleanly and broken nothing.</p><p>It didn&#8217;t go, and not because he&#8217;d done anything wrong.</p><p>I&#8217;ve thought about that exchange a lot this year, because the thing that stopped it working is about to stop working generally.</p><div><hr></div><h2>What approval actually is</h2><p>Here is what I do as a final approver, roughly in this order.</p><p>I want a clear description of the change and the process area it sits in. Then the scope &#8212; which company codes, which sales organizations, which divisions. I&#8217;m establishing boundaries, because most of what goes wrong later turns out to have been sitting just outside the boundary somebody drew.</p><p>Then the change itself and what it does. I have enough exposure to follow it and to ask questions. Where I&#8217;m not sure, I ask for an explanation.</p><p>Then testing, which is where the real risk lives. Not whether they tested &#8212; everyone tests. What was the scope and breadth. What was actually executed. <strong>Did anyone test for failure, or only the happy path.</strong> What are the variables. What is downstream.</p><p>Then the administrative tail, which is unglamorous and is where cutovers die. Transport status. Fields complete. Back-out plan. Impacts of moving &#8212; do we need to restart integrations, update a certificate, open the system to finish the job. Anything external.</p><p>And then organizational change. Which documents need updating, which training material, how this gets communicated, to whom.</p><p>Read that list again and notice what isn&#8217;t in it.</p><p>I never claim to read the code.</p><p>Every step is a question addressed to somebody who can be asked a follow-up. The gate isn&#8217;t an inspection of the artifact. It&#8217;s an interrogation of the account &#8212; and what it establishes is not whether the change is technically correct, but whether anybody thought about it.</p><p>That distinction sat harmlessly in the background for as long as the only way to sound like you&#8217;d thought about something was to have thought about it.</p><div><hr></div><h2>The side door</h2><p>Most of the conversation about AI in enterprise systems is about agents acting autonomously. Posting documents. Executing transactions. Deciding.</p><p>That isn&#8217;t where we are, and framing the risk that way misses what&#8217;s already happening.</p><p>The thing that&#8217;s already happening is smaller and much harder to see. <strong>The person still does the work. They use AI to explain it.</strong></p><p>Sometimes that&#8217;s a genuine gain. Someone understands more than they otherwise would have, because they asked good questions of a good tool and followed the answers. I&#8217;ve seen people come out of that exchange sharper than they went in.</p><p>Sometimes it&#8217;s a thin understanding papered over with fluent, well-structured, entirely plausible answers.</p><p>From the approver&#8217;s chair, those two are identical.</p><p>Because the gate was never measuring understanding directly. It measured whether somebody could explain &#8212; and until very recently, you couldn&#8217;t explain a change you didn&#8217;t understand. Explanation was a reliable proxy, so nobody had to think about the difference.</p><p>That correlation is what broke. Not the process. Not the workflow. The thing underneath both of them that everybody was relying on without naming it.</p><p>The questions that still work are the ones about the decision rather than the change. What did you consider and reject? Who did you have to talk to? Why this option and not the other one? The change sits in the system and anything can describe it.</p><p>The reasoning only exists if it happened.</p><div><hr></div><h2>Point it at the artifact</h2><p>There&#8217;s an obvious response to all this, and it&#8217;s the wrong one: put AI on the approval itself. Score the change, recommend approve or reject, move the queue faster.</p><p>Wrong layer. And it&#8217;s the layer most of the tooling conversation is aimed at.</p><p>Go back to my list and sort it differently. Not into hard and easy &#8212; into what&#8217;s about the artifact and what&#8217;s about the decision.</p><p>Establishing the org footprint is about the artefact. Reading a test plan to work out whether failure paths were covered is about the artifact. Tracing outward from changed objects to find what consumes them is about the artifact. Transport status, field completeness, back-out plan, integration restarts, certificates &#8212; all artifact, and most of it deterministic.</p><p>Nearly the entire list is artifact.</p><p>It requires no seniority. It takes time. It&#8217;s the reason approvals sit in queues, and it&#8217;s the first thing that quietly stops happening when a date is close.</p><p><strong>Research is everything about the artifact. Judgment is everything about the decision.</strong></p><p>That line is the whole design. Everything on the artifact side can be assembled, cross-checked, and put in front of an approver as a brief &#8212; under two conditions, without which it makes things worse rather than better.</p><p><strong>Every conclusion carries its evidence,</strong> traceable to the object, the configuration entry, the test result. My own gate depends on being able to say <em>I&#8217;m not sure, explain that.</em> A brief that can&#8217;t be interrogated has replaced a consultant I could question with a summary I can&#8217;t, which is a downgrade wearing efficiency&#8217;s clothes.</p><p><strong>Concerns are ranked, not listed.</strong> A brief flagging forty items teaches the reader to skim it, which is a slower and more expensive version of rubber-stamping.</p><p>One item on that list deserves correcting, because most people place it wrongly and I did too. The downstream trace &#8212; what else touches this, what breaks quietly &#8212; feels like the part that needs an experienced human. It isn&#8217;t. A person can only check what they thought to check, and under delivery pressure they think to check less. That&#8217;s precisely the step a machine does better, and precisely the step most often skipped.</p><div><hr></div><h2>What doesn&#8217;t automate</h2><p>Every organization has three or four people who make the difference at this gate.</p><p>Individual contributor, then manager, then back to hands-on. SME in one area, generalist across five. SAP, and everything hanging off it &#8212; the integrations, the reporting layer, the third-party systems nobody has a current diagram for.</p><p>What you&#8217;re paying them for isn&#8217;t SAP knowledge. You can hire that.</p><p>It&#8217;s three things at once. They know how a business like this one operates. They know how systems behave, and how they tend to behave together. And they know what&#8217;s actually sitting in your environment right now.</p><p>The first two travel. The third doesn&#8217;t.</p><p>You see it in a lot of places &#8212; in estimates, in what they push back on, in who they tell you to go and talk to. It&#8217;s sharpest in the questions they ask before a change goes.</p><p>Not <em>does the field work.</em> Anyone can check that. Something closer to: this new field is going on the sales order &#8212; which reports pick it up, which integrations have to change, and what happens when it hits the data lake?</p><p>Now notice what&#8217;s already in the system by the time that question gets asked.</p><p>The spec. The config. The test evidence. All documented, all still there in five years.</p><p>The question is the only thing the review adds. And it&#8217;s the only thing nobody keeps.</p><p>Which is backwards, when you look at it. The answer applied to one change. The questions apply to every field anyone adds from here on.</p><div><hr></div><h2>Where the learning goes</h2><p>So there are two things happening at the same gate, and they pull in opposite directions.</p><p>On one side, the account arriving at your desk is getting more fluent and less reliable as a signal, because the tool that produces good explanations produces good-sounding explanations too, and you can&#8217;t tell them apart by reading.</p><p>On the other, the work that takes the time &#8212; the artifact side, the research, the cross-checking &#8212; is exactly the work that can now be assembled before anybody senior looks at it.</p><p>Those aren&#8217;t in tension. They&#8217;re the same shift arriving from two directions, and the response to both is the same.</p><p>Move the machine to the artifact. Keep the human on the decision. And then capture the questions, because the questions are the part that doesn&#8217;t survive anything &#8212; not documentation, not handover, not the end of a contract.</p><p>The research part of a review is the same in every company. Scope, boundaries, downstream, test coverage. None of it changes when the name on the building changes.</p><p>The questions are the part that doesn&#8217;t travel. Yours come from what this organisation has already lived through, and from people who won&#8217;t be here forever.</p><p>Capture enough of them and the review starts asking about the reporting layer before anybody senior walks in.</p><p>That part nobody can sell you. It only exists where it was earned.</p><div><hr></div><p><em>The SAP AI Signal &#183; signal.cogniteer.io</em></p>]]></content:encoded></item><item><title><![CDATA[ The Deadline Behind the Deadline]]></title><description><![CDATA[Most SAP organisations know they have a 2027 problem. Fewer know they have two, and almost nobody has drawn them on the same calendar in the right order. Here is the sequence, on one page.]]></description><link>https://signal.cogniteer.io/p/the-deadline-behind-the-deadline</link><guid isPermaLink="false">https://signal.cogniteer.io/p/the-deadline-behind-the-deadline</guid><dc:creator><![CDATA[Kenneth Barker]]></dc:creator><pubDate>Tue, 04 Aug 2026 11:59:47 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Tjou!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa34a31b1-0751-4a90-828a-a700e3860308_1856x1856.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2>The dates</h2><p>SAP Access Control 12.0, Process Control 12.0 and Risk Management 12.0 all reach end of mainstream maintenance on 31 December 2027. Extended maintenance runs to 2030. After that, customer-specific maintenance only.</p><p>That much isn&#8217;t in dispute.</p><h2>The scope is wider than three products</h2><p>Seven products convert into the successor release. The three above, plus audit management, business integrity screening, and the UI masking and logging components.</p><p>Most organisations are tracking one of the seven &#8212; usually access control, because that&#8217;s the one with an audit finding attached to it. The other six move on the same schedule.</p><h2>The prerequisite</h2><p>This is the part that changes the shape of the decision.</p><p>The successor release requires SAP S/4HANA 2025, or SAP S/4HANA Foundation at that release level.</p><p>Your control platform is downstream of your ERP decision. Not adjacent to it. Downstream.</p><h2>So it&#8217;s a sequence, not a set of choices</h2><p>ECC, then S/4HANA 2025 or the Foundation, then the new GRC release. Two legs. One deadline. In that order.</p><p>That distinction matters because most organisations are treating these as parallel workstreams. The ERP programme has an owner, a budget, a steering committee. The GRC platform has a different owner, usually in risk or internal audit, with its own budget and its own committee. Both are tracking 2027. Neither has the dependency on their plan.</p><h2>Working the calendar backward</h2><p>Take the second leg first. It&#8217;s the one people underestimate.</p><p>A GRC migration &#8212; scoping, configuration, ruleset rework, testing, user acceptance, cutover &#8212; is commonly estimated at twelve to eighteen months. Treat that as an estimate rather than a fact, but it&#8217;s the right order of magnitude for anyone who has done one.</p><p>Now the first leg. An ECC to S/4HANA move is measured in years, and it has to be <em>complete</em> &#8212; not started, not in wave two &#8212; before the GRC leg can begin.</p><p>Work backward from December 2027 and the decision date sits well inside 2026. For most organisations that means this year, not next.</p><h2>What the frozen path costs</h2><p>The obvious response is extended maintenance. Take the three years, sequence calmly, land it by 2030.</p><p>That&#8217;s legitimate and a lot of organisations will do it. But it should be bought with a clear view of what it contains.</p><p>A release in extended maintenance keeps running. What stops is everything behind it: security patches, legal and regulatory updates, support for new modules. And by definition, new capability &#8212; a frozen release receives corrections, not features.</p><p>Which means anything that ships in a future release ships somewhere you aren&#8217;t. Including agent governance. Agent identity, registries, runtime controls, evidence trails &#8212; all of that is future-release work, arriving in versions after the one you froze, during precisely the period when agents show up in your estate.</p><p>Extended maintenance buys time. It doesn&#8217;t buy capability. Those are different purchases and the business case usually only prices the first one.</p><p>On cost: SAP publishes an extended-maintenance premium of two percentage points on the maintenance basis for its Business Suite 7 core applications. Whether the same figure applies to the GRC products specifically is worth confirming with your account team rather than assuming &#8212; it isn&#8217;t stated in the same place.</p><h2>What this piece is not about</h2><p>Three things deliberately left out, because each one deserves its own treatment and none of them changes the sequencing argument.</p><p>Third-party support is a real option used at scale, and it changes the ERP question. It doesn&#8217;t remove the control-platform question.</p><p>If you&#8217;re running S/4HANA public cloud, most of this doesn&#8217;t apply to you in the same form.</p><p>And SAP Cloud Identity Access Governance is a different path with no S/4 prerequisite. It&#8217;s also, by independent assessment, narrower than access control on segregation-of-duties depth and emergency access. That&#8217;s a comparison worth doing properly, and this isn&#8217;t it.</p><h2>The honest caveat</h2><p>The end-of-maintenance dates are firm. The successor&#8217;s availability is planned, and those plans have already moved once.</p><p>That cuts both ways. It argues against rushing to a release that isn&#8217;t stable. It also argues against assuming the deadline moves because the successor did. SAP extended ECC once and a lot of people read that as a pattern. It might be. Plan as though it isn&#8217;t.</p><h2>Where to start</h2><p>Not with a migration plan. With two questions.</p><p>Which leg are you on &#8212; and is it actually complete, or complete for the entities that matter?</p><p>And who owns the sequence? Not the ERP programme. Not the GRC platform. The dependency between them.</p><p>If the answer to the second question is a shrug, that&#8217;s the finding. It&#8217;s also the cheapest thing on this page to fix.</p>]]></content:encoded></item><item><title><![CDATA[The Three Questions to Ask Before an Agent Acts on Your ERP]]></title><description><![CDATA[Permission is not legitimacy &#8212; and your stack only checks one of them.]]></description><link>https://signal.cogniteer.io/p/the-three-questions-to-ask-before</link><guid isPermaLink="false">https://signal.cogniteer.io/p/the-three-questions-to-ask-before</guid><dc:creator><![CDATA[Kenneth Barker]]></dc:creator><pubDate>Tue, 28 Jul 2026 11:59:06 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!dRvX!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd752fa13-a5c8-4848-8553-882ee57f4318_900x480.svg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>An agent changes a customer&#8217;s payment terms. Everything works exactly as designed.</p><p>The identity platform confirms the agent is authorized to act on that account. The audit log captures which agent made the change, and when. Every control fires correctly. Every dashboard stays green.</p><p>Nobody can answer the only question that matters: should those terms have changed, on that customer, at that point in the order lifecycle?</p><p>That question doesn&#8217;t live in the identity platform. It doesn&#8217;t live in the audit log. It lives in the credit policy, the customer&#8217;s payment history, the order&#8217;s current state, and a threshold that exists in somebody&#8217;s head and in a slide deck from 2023.</p><h2>Permission is not legitimacy</h2><p>We spent two decades building controls that answer one question. Was this permitted? Roles, authorizations, segregation of duties, approval hierarchies. That machinery is good, and it was built for a world where the thing taking the action was a person who already knew the business.</p><p>Agents need a second question nobody built for. Was this correct?</p><p>Those are different questions. They live in different systems, and no product on the market merges them &#8212; though several will tell you otherwise.</p><p>An agent can be fully authorized and still do the wrong thing. When it does, nothing in your stack raises its hand, because from the stack&#8217;s point of view nothing went wrong.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!dRvX!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd752fa13-a5c8-4848-8553-882ee57f4318_900x480.svg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!dRvX!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd752fa13-a5c8-4848-8553-882ee57f4318_900x480.svg 424w, https://substackcdn.com/image/fetch/$s_!dRvX!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd752fa13-a5c8-4848-8553-882ee57f4318_900x480.svg 848w, https://substackcdn.com/image/fetch/$s_!dRvX!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd752fa13-a5c8-4848-8553-882ee57f4318_900x480.svg 1272w, https://substackcdn.com/image/fetch/$s_!dRvX!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd752fa13-a5c8-4848-8553-882ee57f4318_900x480.svg 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!dRvX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd752fa13-a5c8-4848-8553-882ee57f4318_900x480.svg" width="1456" height="777" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d752fa13-a5c8-4848-8553-882ee57f4318_900x480.svg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:777,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:4187,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/svg+xml&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://signal.cogniteer.io/i/208817429?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd752fa13-a5c8-4848-8553-882ee57f4318_900x480.svg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!dRvX!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd752fa13-a5c8-4848-8553-882ee57f4318_900x480.svg 424w, https://substackcdn.com/image/fetch/$s_!dRvX!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd752fa13-a5c8-4848-8553-882ee57f4318_900x480.svg 848w, https://substackcdn.com/image/fetch/$s_!dRvX!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd752fa13-a5c8-4848-8553-882ee57f4318_900x480.svg 1272w, https://substackcdn.com/image/fetch/$s_!dRvX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd752fa13-a5c8-4848-8553-882ee57f4318_900x480.svg 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><h2>Question 1 &#8212; Who authorized it?</h2><p>This part is genuinely being solved, and solved well. Worth saying plainly, because most writing on agent governance is unrelentingly grim and this half isn&#8217;t.</p><p>Agent identity is consolidating the way single sign-on consolidated. Agents get their own identities, scoped permissions, an owner of record, and a revocation path. The identity layer is estate-agnostic by nature &#8212; it doesn&#8217;t need to know what a delivery document is &#8212; so it federates cleanly across systems, and the vendors doing it are converging fast.</p><p>If your organization runs Microsoft 365, you already have the substrate for this whether anyone deliberated about it or not. If you&#8217;re heterogeneous enough to have brought in a dedicated identity provider, you likely have a stronger version.</p><p>Your CISO is already on this one. Let them run it.</p><h2>Question 2 &#8212; Where can it actually be stopped?</h2><p>Here the received wisdom is wrong.</p><p>Most buyers assume governability is a property of the agent &#8212; that you control the agents you bought from your vendor, and the foreign ones are the problem.</p><p>Microsoft documents the actual mechanism candidly in its own guidance: calls that don&#8217;t reach the identity platform can&#8217;t be evaluated by its access policies, carry no risk signal to calculate, and can&#8217;t tie an audit record to a specific user. An agent endpoint that doesn&#8217;t require authentication is a reachable, ungoverned surface &#8212; regardless of who built the agent behind it.</p><p>That runs both directions, and both directions matter. A third-party agent onboarded properly and routed through a governed path is controlled. Your own vendor&#8217;s agent, reaching a resource through a static API key, is not.</p><p>Governability follows the route, not the logo.</p><p>So when a vendor tells you they govern all your agents, they&#8217;re answering a narrower question than the one you asked. They govern what crosses their path. That&#8217;s real, and it&#8217;s worth having, and it isn&#8217;t the same as knowing your business.</p><p>For a real estate the consequence is this: one consequential action touches three or four systems, and the ones that can <em>stop</em> it are frequently not the one that can <em>judge</em> it. A workflow platform mediates the request and can block it &#8212; it owns the route. The identity platform can revoke the agent&#8217;s access &#8212; it owns the credential. But the transaction lands in your ERP, and only the ERP knows the order&#8217;s current state, the credit segment, the exception in play.</p><h2>Question 3 &#8212; What determines it was valid?</h2><p>Nobody has a clean answer for this one, and it&#8217;s where your exposure lives.</p><p>Validity isn&#8217;t a property of the agent, the credential, or the route. It&#8217;s a property of the situation: this customer, this order, this point in the lifecycle, this operating mode, this exception. Answering it takes the process state, the transactional rules, and specific knowledge of which deviations from the standard path are legitimate.</p><p>Some of that lives in your application. Some lives in a policy document. A great deal lives in the head of a process owner who has no console, no admin rights, and no ability to stop anything.</p><p>The person who knows whether the action was legitimate is usually not the person who can prevent it.</p><h2>Why grounding doesn&#8217;t answer question 3</h2><p>The instinctive fix is to make the AI understand your business &#8212; ground it in your own documents, your history, your transactions. Reasonable instinct. It&#8217;s also where a specific kind of trouble starts.</p><p>Your transactional history records what happened. It doesn&#8217;t record what should have happened.</p><p>It doesn&#8217;t capture what alternatives were available and rejected, why an exception was approved, which rule was waived, or which outcomes were tolerated because it was quarter-end and the shipment had to move. A completed transaction proves something occurred. It proves nothing about whether it was correct.</p><p>Stacked on that is the long tail. A few paths carry most of the volume. Then there&#8217;s a tail of rare variants &#8212; some entirely legitimate, like the consignment arrangement that bills on consumption; some workarounds for problems nobody fixed; some the scar tissue of a master-data error that&#8217;s been quietly generating exceptions for two years.</p><p>In the transactional record, all three look identical. A legitimate-looking path with a document at the end.</p><p>Ground an agent on that and you don&#8217;t get a system that understands your business. You get one fluent in your history, including the parts you&#8217;d never have approved.</p><p>Your history is not your policy.</p><p>Grounding can teach an agent how your company has behaved. Something else has to tell it which of that behavior was right &#8212; the explicit, machine-readable statement of what must be true before an action commits. That layer is the one almost nobody has built.</p><p>The platform vendors have seen it coming. Both major process-intelligence players are building a governed layer designed to hold exactly this kind of business knowledge: rules, constraints, guardrails for agents. Some of it is shipping, some is in beta, some is on the roadmap for later this year. Read the documentation closely and you&#8217;ll notice something else. They&#8217;re building the container and asking you to fill it.</p><p>That&#8217;s the honest state of the market. The artifact is being standardized. The authoring is still yours.</p><h2>The test: trace one action</h2><p>Don&#8217;t start with a vendor evaluation. Start with one action.</p><p>Pick something consequential an agent could plausibly do. Change payment terms. Release a blocked order. Confirm a production order. Then trace it:</p><ul><li><p><strong>Who created or sponsors this agent?</strong> A named human, not a team.</p></li><li><p><strong>On whose behalf does it act?</strong> Its own identity, or someone&#8217;s delegated authority?</p></li><li><p><strong>What authorizes the action?</strong> Identity plus policy &#8212; and is there a path that bypasses both?</p></li><li><p><strong>Where can it actually be stopped?</strong> Name the enforcement point. If you can&#8217;t, that&#8217;s the answer.</p></li><li><p><strong>What determines the action was valid?</strong> A rule, a state check, a process model &#8212; or a person who would just know?</p></li><li><p><strong>What records the reasoning and the result?</strong> And can you join those records afterward?</p></li><li><p><strong>Who owns the exception when it goes wrong?</strong> By name.</p></li></ul><p>The reason to run this now rather than later: it works <em>before</em> you deploy. It doesn&#8217;t require agent sprawl. Most organizations don&#8217;t have it yet &#8212; roughly one in six has an agent in production, while about two in five enterprise applications are expected to ship with one embedded by the end of this year.</p><p>The gap between those two numbers is the window you&#8217;re in.</p><h2>The clock isn&#8217;t the vendor roadmap</h2><p>If this reads like an architecture problem you can schedule for next year, one detail deserves your attention.</p><p>The control frameworks are moving. Internal control expectations are now being written to reach directly into AI system architecture &#8212; model lineage, deployment approvals, decision logs, dependency mappings treated as production-readiness artifacts rather than documentation assembled afterward. And the retention clocks are already running: six months for high-risk systems under the EU AI Act, and in US financial services a six-year default under FINRA&#8217;s books-and-records rule, with SEC periods running three to six years depending on the record class.</p><p>When the control framework moves, external audit follows. The requirement arrives on somebody else&#8217;s schedule, and it doesn&#8217;t wait for a vendor category to exist.</p><p>You may be asked to reconstruct an agent&#8217;s decision before anyone has sold you a way to do it.</p><h2>What would change my mind</h2><p>One claim here is load-bearing and unproven: that no platform currently validates an autonomous agent&#8217;s action against live transaction state, across multiple systems, before it commits.</p><p>Neutral platforms already do far more cross-system process work than most buyers realize &#8212; reconstructing business objects across different applications, detecting deviations from an intended process, triggering remediation. That&#8217;s real, and more mature than the skeptics allow.</p><p>What I couldn&#8217;t find in any public production case is the pre-commit version: an agent proposes an action, the action is judged against current state across systems, and it&#8217;s allowed, escalated, or blocked before anything is written.</p><p>If that exists in a named production customer, this analysis narrows considerably, and I&#8217;d want to know. Until then, treat &#8220;we govern your agents&#8221; and &#8220;we can tell you an action was wrong&#8221; as the same claim at your own risk.</p><h2>Where to start</h2><p>Not with a control tower.</p><p>Trace one action. Find out where it can be stopped, and what decides whether it should be. The gap between those two answers is the thing to fix first &#8212; and it will be more specific, more fixable, and considerably cheaper than whatever is currently in your evaluation pipeline.</p>]]></content:encoded></item><item><title><![CDATA[The Knowledge Graph You Bought Won't Save Your AI]]></title><description><![CDATA[There's a market selling you the tools to build your own context layer. Most of the companies that buy them never reach production &#8212; and the reason is a distinction the vendors work hard to blur.]]></description><link>https://signal.cogniteer.io/p/the-knowledge-graph-you-bought-wont</link><guid isPermaLink="false">https://signal.cogniteer.io/p/the-knowledge-graph-you-bought-wont</guid><dc:creator><![CDATA[Kenneth Barker]]></dc:creator><pubDate>Tue, 21 Jul 2026 11:56:10 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Tjou!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa34a31b1-0751-4a90-828a-a700e3860308_1856x1856.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Last time, I left you with a thought experiment. If the largest technology companies in the world are fighting over who owns the context layer for your business &#8212; and none of them is building the one layer that decides whether your AI actually works &#8212; then the obvious move is to build that layer yourself. Own it. Depend on no one.</p><p>There is a market ready to sell you exactly that. It is large, it is growing fast, and it is full of genuinely good technology. And most of the companies that buy into it never get to production.</p><p>That failure rate isn&#8217;t a knock on the tools. It&#8217;s a signal &#8212; and once you understand what it&#8217;s signaling, you understand the whole context layer problem better than most of the people selling into it. So this piece is about the build-your-own path: who&#8217;s selling it, why it stalls, and the one distinction the entire category depends on you not noticing.</p><h3>The market you&#8217;re about to walk into</h3><p>If you go looking to build your own context layer &#8212; your own knowledge graph, your own semantic backbone for AI &#8212; you&#8217;ll find a mature and crowded field waiting for you. There are graph databases that have run in production for a decade. There are semantic-layer tools that define your metrics once and serve them everywhere. There are ontology platforms with deep academic pedigree, RDF engines, entity-resolution systems, and a new wave of &#8220;build your graph faster&#8221; accelerators that promise to turn your existing tables into a graph with a few clicks. The analysts size this market in the billions and climbing at north of 20% a year. It is not vaporware. Some of these are excellent, serious pieces of engineering.</p><p>And here is the number that should give you pause before you sign anything: by most industry estimates, fewer than one in six of these projects makes it past the pilot stage. The rest stall &#8212; not on the technology, but on something the technology was never going to solve for them. The buyer guides, written by the vendors themselves, are surprisingly honest about where the bodies are: projects die on ontology design, on entity resolution, and on a slow realization that arrives six to nine months in. Teams discover they&#8217;ve started accumulating &#8212; the vendors&#8217; own words &#8212; &#8220;custom validation layers and semantic constraint logic that grows faster than the core application.&#8221;</p><p>Read that phrase again, because it&#8217;s the whole story hiding in plain sight. The tool gave them a graph. Then they had to hand-build, on top of it, an ever-growing pile of logic that checks whether the thing in the graph is <em>right</em>. And that pile grew faster than everything else, because the tool didn&#8217;t provide it and was never going to. They didn&#8217;t buy a context layer. They bought an empty engine and slowly discovered they&#8217;d signed up to build the hard part themselves.</p><p>To see why, you have to see the distinction the market is built on blurring.</p><h3>Two things both called &#8220;knowledge graph&#8221;</h3><p>The words &#8220;knowledge graph&#8221; get stretched across two things that are not the same, and the gap between them is where your project lives or dies.</p><p>The first is a <strong>generalized knowledge graph</strong>. It&#8217;s an engine for representing <em>any</em> entities and <em>any</em> relationships. It knows how to store the fact that A relates to B, how to let you query the connection, how to infer that if A contains B and B contains C then A contains C. What it does <em>not</em> know is anything about <em>your</em> business. It arrives empty. &#8220;Customer,&#8221; &#8220;order,&#8221; &#8220;delivery,&#8221; &#8220;billing block,&#8221; and every rule connecting them is something you have to pour in yourself. The engine is domain-agnostic by design &#8212; that&#8217;s its selling point, and it&#8217;s exactly why it&#8217;s crowded and increasingly cheap. A general graph engine is a commodity, and the market knows it, which is why every vendor is racing to add &#8220;AI-assisted&#8221; graph-building to make the pouring-in feel faster.</p><p>The second is a <strong>domain-specific knowledge graph</strong>. This is one where the domain&#8217;s real entities, relationships, <em>and rules</em> are already encoded &#8212; where the graph doesn&#8217;t just know that an order relates to a delivery, but knows what a <em>correct</em> order-to-delivery-to-billing sequence looks like, and therefore what a broken one looks like. It knows that a delivery with no invoice behind it might be a revenue leak or might be a perfectly legitimate consignment that bills later &#8212; and it knows which questions to ask to tell them apart. The rules aren&#8217;t poured in by the buyer. They&#8217;re <em>native</em>, because someone who understands the domain built them in.</p><p>Here&#8217;s the move the market makes: it sells you the first and lets you believe you&#8217;re getting the second. The demo shows a graph answering business questions beautifully &#8212; because the demo was hand-built by experts who poured in exactly the right domain knowledge for exactly those questions. Then you buy the engine, point it at your data, and discover it&#8217;s empty. The &#8220;AI-assisted graph builder&#8221; extracts your tables and their relationships &#8212; it reads your schema and infers that this table joins to that one &#8212; and calls the result a knowledge graph. But it has only extracted <em>structure</em>. It has learned what your data <em>is</em>. It has learned nothing about whether your work is <em>right</em>, because that isn&#8217;t in the schema to extract.</p><h3>Why the domain graph can&#8217;t be extracted &#8212; only encoded</h3><p>This is the hinge, so let me be precise about it.</p><p>Everything the generalized tools can automate is a form of <em>extraction</em>. They read what already exists &#8212; your tables, your columns, your foreign keys, your query history &#8212; and they structure it. Modern ones do this well; they&#8217;ll auto-generate an ontology from your database and save you weeks of documentation. But extraction has a hard ceiling: it can only surface what&#8217;s <em>already written down somewhere</em>. And the thing that decides whether your work came out right is, definitionally, not written down. It&#8217;s the difference between what your system <em>recorded</em> and what your business <em>intended</em> &#8212; and intent doesn&#8217;t live in the schema. A delivery record doesn&#8217;t carry a field that says &#8220;this one&#8217;s a legitimate consignment, that one&#8217;s a leak.&#8221; That judgment lives in the process, in the exceptions your business has run for years, in the heads of the people who know which is which. No amount of reading the tables extracts a rule that was never in the tables.</p><p>Which means the domain graph &#8212; the one that would actually catch the problem your AI is about to miss &#8212; cannot be generated. It has to be <em>authored</em>, by someone who carries the domain rules that were never written down and can encode them. That&#8217;s not a limitation the next release of the tool fixes. It&#8217;s a category boundary. Extraction and authorship are different acts. The entire generalized-graph market is an extraction market, priced and built for a problem &#8212; &#8220;structure my existing data&#8221; &#8212; that is genuinely being commoditized. The thing you actually needed sits on the other side of a line the tools can&#8217;t cross, because it was never a tooling problem. It was a knowledge problem wearing a tooling costume.</p><p>This is why the projects stall at exactly the six-to-nine-month mark. That&#8217;s how long it takes to build the graph, point it at production, and discover that the graph doesn&#8217;t know which exceptions are real &#8212; and to start hand-writing the &#8220;validation logic that grows faster than the application.&#8221; That growing pile <em>is</em> the domain graph they didn&#8217;t buy, being built by hand, by people who are learning the domain rules the hard way because no tool handed them over.</p><h3>What this means for an SAP customer specifically</h3><p>If you run SAP, this distinction is not academic, and it cuts sharper for you than for most.</p><p>Your ERP is the most domain-specific system you own. Decades of your business&#8217;s actual operating logic are encoded in how your order-to-cash, procure-to-pay, and record-to-report processes actually run &#8212; including every legitimate exception that looks like an error and every quiet error that looks fine. A generalized graph tool pointed at your SAP data will extract the structure beautifully: it will learn your tables, map your relationships, auto-document your fields. And it will know nothing about whether a given transaction did the right thing, because that knowledge was never a table. It&#8217;s the operating reality on top of the tables.</p><p>And yes &#8212; this is the moment to talk about the graph you were just handed. At Sapphire this spring, SAP put a knowledge graph at the core of its new platform: 452,000 tables, 7.3 million fields, by SAP&#8217;s own count &#8212; fifty years of ERP engineering made machine-readable. It is the largest structural extraction ever shipped, and it&#8217;s genuinely useful. Now run it through the same test. It encodes what SAP&#8217;s tables <em>mean</em> &#8212; SAP&#8217;s meaning of SAP. It does not, and cannot, encode whether <em>your</em> transaction did the right thing, because your operating reality was never in those tables either. SAP&#8217;s CEO says customers store their most mission-critical domain know-how in SAP. What&#8217;s stored is the record of what you did. What was never stored is whether it was right.</p><p>One more wrinkle before you point any tool at those tables: as of this spring, SAP&#8217;s API policy gates what autonomous tooling may extract at all &#8212; third-party AI extractors now need an endorsed pathway. So even the extraction half of this market has an access question hanging over it. That&#8217;s a different essay.</p><p>So when a vendor &#8212; or an internal team, or a systems integrator &#8212; proposes to &#8220;build you a knowledge graph for your SAP data so your agents have context,&#8221; the question that separates a production system from a stalled pilot is simple: <em>are you extracting my structure, or encoding my rules?</em> If the answer involves pointing an AI-powered tool at your tables and generating a graph, you&#8217;re getting the first, and you&#8217;ll meet the wall at month six. If the answer involves someone who actually understands how your specific processes run &#8212; in project mode, in steady-state run, in cutover, in hypercare, at quarter-close &#8212; sitting down and encoding what <em>correct</em> looks like across all of those, you&#8217;re getting the second. Those are different projects with different price tags and, more importantly, different outcomes. Most of what&#8217;s being sold is the first, dressed up to look like the second.</p><h3>The one line to carry out of this</h3><p>The build-your-own-context-layer market is real, and for the problem it actually solves &#8212; extracting structure from your existing data &#8212; it&#8217;s mature and worth buying. But that was never the problem that breaks your AI after go-live. The problem that breaks your AI is the layer that knows whether your work came out right, and that layer can&#8217;t be extracted from anything, because it was never written down. It has to be authored by someone who carries the domain.</p><p>That&#8217;s why the largest technology companies keep shipping the first at ever more heroic scale and calling it the second, why the graph-tool market can&#8217;t sell it to you no matter how good the demo looks, and why one in six of these projects reaches production while the rest quietly discover they signed up to build the hard part by hand. The generalized graph is a commodity. The domain graph is the moat. And the reason the whole industry keeps selling you the first while you need the second is that the first can be manufactured &#8212; and the second can only be known.</p><p>Next time: if the domain graph has to be authored rather than generated, what does authoring it actually look like &#8212; and how do you tell, before you commit a budget, whether the people offering to build yours can tell a real exception from a broken one?</p>]]></content:encoded></item><item><title><![CDATA[Who Owns the Context Layer?]]></title><description><![CDATA[While everyone argues about agents, two giants are quietly fighting over the thing that decides whether any agent works &#8212; and the answer will reshape every SAP customer's next decade]]></description><link>https://signal.cogniteer.io/p/who-owns-the-context-layer</link><guid isPermaLink="false">https://signal.cogniteer.io/p/who-owns-the-context-layer</guid><dc:creator><![CDATA[Kenneth Barker]]></dc:creator><pubDate>Tue, 14 Jul 2026 11:51:09 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Tjou!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa34a31b1-0751-4a90-828a-a700e3860308_1856x1856.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Spend a week with the podcasts the analyst firms and the big consultancies put out, and you will hear one word until it loses meaning: agents. Agentic this, autonomous that, the agent that books your travel and the agent that closes your books. It is the entire conversation. And in the rooms where that conversation is loudest &#8212; the AI-native circles, the hyperscaler keynotes, the strategy-house webinars &#8212; it is genuinely the right conversation to be having.</p><p>Here is what I have noticed, though, from a different seat. The VP running applications at a mid-market manufacturer, the one whose team keeps the SAP estate alive, is not in those rooms. And the fight that will actually determine whether their company&#8217;s AI works is not the fight about agents at all. It is a quieter fight, one layer down, that almost nobody outside the data-platform world is narrating for an SAP audience &#8212; and the two largest vendors in that company&#8217;s life are already deep into it, wired directly into each other, each betting the other is about to lose.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://signal.cogniteer.io/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 The SAP AI Signal! 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>The fight is over who owns the context layer. And it is worth understanding, because whoever wins it sets the terms for every AI decision that company makes for the next ten years.</p><h2>What the context layer actually is, in one plain paragraph</h2><p>Strip the branding off and it&#8217;s simple. An AI agent, on its own, is a capable stranger. It can reason, but it doesn&#8217;t know <em>your</em> business &#8212; that revenue is computed your way, that a customer relates to an order through your particular process, that the thing labeled one way has meant another since a reorg years ago. The context layer is whatever supplies that knowledge. It&#8217;s the difference between an agent that gives a confident, plausible, wrong answer about your business and one that gives a right one. Everyone in the industry now agrees this layer is where the value is &#8212; one vendor calls the problem of an agent starting without it the &#8220;cold start&#8221; problem, which is a good name for it. The disagreement &#8212; and it is a large, expensive, strategically loaded disagreement &#8212; is over who gets to own that layer for you.</p><p>Two answers are being fought out in public right now. They are not subtle, and they are not compatible.</p><h2>Microsoft&#8217;s answer: live in our house, and everything else becomes a guest</h2><p>Microsoft&#8217;s play is the most straightforward land-grab in enterprise software, and they are not hiding it. The stated strategy is to make their data platform the <em>center of gravity</em> for your entire data estate &#8212; one place where all of it lives, or at least is seen, governed, and activated. Their pitch is that the fragmented mess of systems every enterprise actually runs should resolve into a single logical home, and that home is theirs.</p><p>Watch what that does to your ERP. In the Microsoft picture, your SAP system doesn&#8217;t stay the center of your operational world &#8212; it becomes a <em>source</em>. Its data is mirrored or shortcut into the unified lake, sitting alongside your documents, your spreadsheets, your collaboration history, your email. And then &#8212; this is the part worth sitting with &#8212; Microsoft builds a context layer <em>over that combined pile</em> and offers to ground every agent in it. They&#8217;ve even started building the application surfaces that traditionally lived around the ERP: the order-management screens, the vendor portals, the exception queues &#8212; the operational work that today runs in spreadsheets and manual report-pulls. The logic is coherent and, honestly, compelling: if your company already lives in this vendor&#8217;s documents, email, and collaboration tools every day, making that the home for your business&#8217;s meaning is a small, natural step. Your ERP becomes one connected room in a house someone else owns.</p><p>For a company whose people spend their whole day in that vendor&#8217;s productivity tools, this is a genuinely strong offer. It meets them where they already are. That is exactly what makes it dangerous to accept without noticing what you&#8217;ve handed over.</p><h2>SAP&#8217;s answer: keep your data anywhere, but the meaning is ours</h2><p>SAP is not conceding the house. It is fighting on different ground, and the ground it chose tells you everything.</p><p>SAP&#8217;s counter, said almost precisely this way by one of its own reference customers, is that compute can happen anywhere and the data can stay at the source &#8212; but business context is managed once, centrally, in SAP&#8217;s foundation.</p><blockquote><p>Read that again, because it&#8217;s a genuinely clever move. SAP is effectively saying: fine, Microsoft, host the data, we won&#8217;t fight you for the storage. But the <em>meaning</em> &#8212; what your order-to-cash actually is, how your processes actually relate, the semantics that came from decades of running your business on our software &#8212; that&#8217;s ours, managed in our layer, and you&#8217;re all just borrowing it.</p></blockquote><p>SAP claims this layer goes beyond a simple knowledge graph to model &#8220;how your business actually works, not just what the data says.&#8221;</p><p>So the collision is clean. Microsoft says <em>the data lives in my house.</em> SAP says <em>host it wherever &#8212; the meaning is mine.</em> Both are claiming to be the context layer. They are claiming it from opposite directions, and both claims can&#8217;t win.</p><h2>The tell: they&#8217;ve wired themselves together instead of going to war</h2><p>Here&#8217;s the detail that turns this from a vendor cage-match into something more interesting and more revealing. Microsoft and SAP are not blocking each other. They&#8217;re <em>interconnecting.</em> SAP&#8217;s foundation and Microsoft&#8217;s lake now share data bidirectionally, zero-copy, with SAP&#8217;s models publishing natively into Microsoft&#8217;s environment and Microsoft mirroring SAP&#8217;s data into its own. On the surface, that reads as partnership. Underneath, it&#8217;s the opposite: it&#8217;s two companies who&#8217;ve each concluded that <em>their</em> layer is the one that will matter, so they can afford to be generous about the layer they think is becoming a commodity. Microsoft will happily let SAP&#8217;s meaning flow in, because Microsoft is betting the <em>home</em> is what wins. SAP will happily let its data live in Microsoft&#8217;s lake, because SAP is betting the <em>meaning</em> is what wins. The friendliness is the confidence. Each is giving away the thing it thinks is losing.</p><p>And it isn&#8217;t only these two. The large data-and-AI platforms are making a third version of the same bet &#8212; be the context layer that sits across everyone&#8217;s estate, SAP and Microsoft included, grounding every agent from the middle rather than from a home or a system of record. Which tells you how big the prize is: not one major vendor has looked at this and decided it isn&#8217;t worth owning. They have all concluded the same thing &#8212; whoever owns the meaning of your data owns the account. The whole industry is racing to own this layer from every direction at once.</p><p>Which raises the question the whole race is stepping around.</p><h2>The layer nobody is fighting for</h2><p>Notice what every one of these context layers actually models. Microsoft&#8217;s, SAP&#8217;s, the data platforms&#8217; &#8212; read their own descriptions and it&#8217;s the same thing every time: the definitions of your customers, orders, products, revenue, and the relationships between them. What your data <em>means</em>. That&#8217;s the layer being fought over, standardized, commoditized, and claimed from four directions.</p><p>It is not the layer that decides whether your AI works.</p><p>Here is the distinction that the entire agent conversation is missing, and I want to be precise about it because it&#8217;s the whole point. There are two completely different things an AI has to understand about your business, and they get collapsed into the one word &#8220;context&#8221; constantly.</p><p>The first is what your data means &#8212; revenue is computed this way, a customer relates to an order like so. This is the layer Microsoft and SAP are at war over. Definable, model-able, and &#8212; because the whole industry is racing to own it &#8212; on its way to becoming a commodity.</p><p>The second is whether your work actually came out right &#8212; this order shipped but was never billed, is that revenue quietly leaking or a legitimate arrangement that bills later; this step happened out of sequence, does that break the transaction or is it a valid exception your business has run for years. Not what the data means. Whether the thing that happened was the thing that was supposed to happen.</p><p>No context layer in this fight models the second one. And here&#8217;s the part that should stop you: the vendors know the second one is the real risk. SAP, describing why you need its context layer, warns that without it agents can &#8220;optimize for the wrong outcome.&#8221; That&#8217;s precisely a whether-your-work-came-out-right problem &#8212; and SAP, having named it exactly, answers it with a what-your-data-means solution. Everyone in this race is selling the meaning of your data as the cure for a problem that lives in the meaning of your work. The two are not the same layer, and the gap between them is where enterprise AI actually fails.</p><p>That gap is invisible in the agent conversation because it&#8217;s invisible in a demo. A demo runs on clean data and the happy path, where the work did come out right and a confident reading happens to be correct. Production is where the exceptions live &#8212; and production is where the layer nobody&#8217;s building would have earned its keep.</p><h2>Why this matters more for the SAP customer than for anyone else</h2><p>Put the two things together and you can see why the VP of Apps at a CPG manufacturer is in a stranger position than the CIO reading the analyst reports.</p><p>The context war is happening above their head, in a vocabulary they don&#8217;t live in, between two vendors they can&#8217;t avoid &#8212; one hosting their estate, the other owning their meaning, both wired together and both certain they&#8217;ll win. Whatever the outcome, that company&#8217;s SAP data will end up grounded in someone&#8217;s context layer. That part will get solved; four of the largest technology companies in the world are competing to solve it.</p><p>But the thing that determines whether their AI survives go-live &#8212; whether it can tell a real problem from a legitimate exception in their specific order-to-cash, across the messy operating reality of a live business &#8212; is the one layer nobody in the war is building. It won&#8217;t arrive as a product from Microsoft or SAP, because it can&#8217;t be defined once and shipped the way a semantic layer can. It has to be understood, in the specific, by someone who knows how that business actually runs in every mode it runs in. That knowledge doesn&#8217;t live in a data platform. It lives in the practitioners who&#8217;ve watched the process behave across a go-live, a quarter-close, a cutover, a quiet month &#8212; and it is the least documentable, least commoditizable thing in the enterprise.</p><p>And sit in the CIO&#8217;s chair for a second, because this is where it stops being a strategy story and becomes your problem. Whichever way you go, you are choosing where your business&#8217;s meaning lives &#8212; and that is a more permanent decision than where your data lives. Move your data and you pay a migration cost, once. Move your meaning &#8212; re-encode what your business means inside a different vendor&#8217;s layer &#8212; and you may find you simply can&#8217;t, because by then a thousand agents, reports, and decisions depend on it computing exactly the way it does today. Owning the semantic layer is stickiness for the vendor. For you, it is the most durable dependency you will take on this decade, and you are being asked to grant it to whichever side wins a fight you didn&#8217;t know you were in. That would be a defensible bet to make deliberately. Almost nobody is making it deliberately.</p><h2>The one line to carry out of this</h2><p>The agent conversation is loud, and it&#8217;s loud in the wrong rooms. One level beneath it, two giants are fighting over who owns the meaning of your data &#8212; and they&#8217;re so confident it&#8217;s the prize that they&#8217;ve wired themselves together and started giving away everything else. They might both be right that it&#8217;s worth owning. They are both missing that it isn&#8217;t the layer that decides whether your AI works.</p><p>Whoever wins the war for the context layer, the same question survives it, unowned: does your AI actually understand whether your business did the right thing? The meaning of your data is being fought over by the largest companies in technology. The meaning of your work is still sitting in your own people, un-modeled, unclaimed, and &#8212; for now &#8212; entirely yours.</p><p>And if your instinct at this point is <em>fine, then I&#8217;ll have someone build that layer myself</em> &#8212; hold that thought. There is a whole market now selling the tools to do exactly that, and most of the companies that buy them never reach production. Why that happens, and what it reveals about which layer is actually hard, is where this goes next.</p><p>That&#8217;s the layer worth watching. Not because a vendor is about to win it. Because none of them is even fighting for it.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://signal.cogniteer.io/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 The SAP AI Signal! 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></channel></rss>