<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Ariftly</title>
    <description>The latest articles on DEV Community by Ariftly (@ariftly).</description>
    <link>https://dev.to/ariftly</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4194542%2Fb28caa5c-6373-4fbd-a05d-bcb7d43a935a.png</url>
      <title>DEV Community: Ariftly</title>
      <link>https://dev.to/ariftly</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ariftly"/>
    <language>en</language>
    <item>
      <title>AI Agent Autonomy: A Measurable Enterprise Framework</title>
      <dc:creator>Ariftly</dc:creator>
      <pubDate>Wed, 21 Oct 2026 04:40:15 +0000</pubDate>
      <link>https://dev.to/ariftly/ai-agent-autonomy-a-measurable-enterprise-framework-54j3</link>
      <guid>https://dev.to/ariftly/ai-agent-autonomy-a-measurable-enterprise-framework-54j3</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fb6abn9lv3m2qnuq2lv0i.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fb6abn9lv3m2qnuq2lv0i.webp" alt="Human reviewer at an evidence gate in the Ariftly Workflow Autonomy Ladder" width="800" height="336"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Autonomy is an authorization decision
&lt;/h4&gt;

&lt;p&gt;A useful enterprise definition of AI autonomy is the amount of operational authority a system may exercise without a human approving each action.&lt;/p&gt;

&lt;p&gt;That makes autonomy distinct from capability. Benchmark improvement can expand what a model &lt;em&gt;could&lt;/em&gt; do; it does not determine what an enterprise &lt;em&gt;should permit&lt;/em&gt; it to do.&lt;/p&gt;

&lt;p&gt;This distinction leads to a practical rule: assign autonomy to &lt;strong&gt;workflow steps or action classes&lt;/strong&gt;, not to an entire agent.&lt;/p&gt;

&lt;h4&gt;
  
  
  A five-stage workflow model
&lt;/h4&gt;

&lt;p&gt;The Ariftly Workflow Autonomy Ladder uses five operating modes:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;L0 Human-operated.&lt;/strong&gt; A person performs the consequential action.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;L1 AI-assisted.&lt;/strong&gt; AI retrieves, interprets or recommends, but the person decides and acts.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;L2 AI-prepared.&lt;/strong&gt; AI prepares an executable artifact or action payload; a person reviews and commits it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;L3 Bounded AI execution.&lt;/strong&gt; AI can execute pre-authorized actions inside an enforced envelope. Independent completion checks, exception routing and recovery controls are required.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;L4 AI-operated by exception.&lt;/strong&gt; AI runs a defined multi-step workflow segment. Humans own policy, exceptions, incidents and aggregate outcomes rather than approving every routine action.&lt;/p&gt;

&lt;p&gt;L4 is not “no human.” Accountability changes location.&lt;/p&gt;

&lt;h4&gt;
  
  
  The promotion gate matters more than the labels
&lt;/h4&gt;

&lt;p&gt;A step should gain authority only when evidence meets pre-specified thresholds across:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;intended outcome;&lt;/li&gt;
&lt;li&gt;false-success rate;&lt;/li&gt;
&lt;li&gt;evidence completeness;&lt;/li&gt;
&lt;li&gt;exception recall and precision;&lt;/li&gt;
&lt;li&gt;policy boundaries;&lt;/li&gt;
&lt;li&gt;adversarial security;&lt;/li&gt;
&lt;li&gt;rollback/recovery;&lt;/li&gt;
&lt;li&gt;human intervention;&lt;/li&gt;
&lt;li&gt;drift/regression;&lt;/li&gt;
&lt;li&gt;operational value.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;NIST’s agentic evaluation work provides useful grounding for this approach. Its 2026 evaluation-probes project is building automated verifiers that can run inside agentic workflows and create machine-readable audit trails. The initial work checks factual grounding against trusted corpora.&lt;/p&gt;

&lt;p&gt;NIST’s ARIA approach also combines model testing, red teaming and user testing. That matters because an autonomy decision based on one benchmark is structurally weak.&lt;/p&gt;

&lt;h4&gt;
  
  
  Static security testing can understate risk
&lt;/h4&gt;

&lt;p&gt;NIST/CAISI’s AgentDojo work illustrates the problem. In one tested setup, the strongest baseline attack achieved 11% success; a newly developed attack tailored through red teaming reached 81%. Across five injection tasks, average attack success rose from 57% to 80% when each task was attempted 25 times.&lt;/p&gt;

&lt;p&gt;A later public red-team competition analyzed by NIST/CAISI involved 13 frontier models, more than 250,000 attempts and more than 400 participants. At least one successful hijacking attack was found against every target model.&lt;/p&gt;

&lt;p&gt;Do not read these as production breach probabilities. Read them as evidence that the evaluation should match the adversary and retry conditions a deployed workflow can face.&lt;/p&gt;

&lt;h4&gt;
  
  
  Automated success can miss the acceptance criterion
&lt;/h4&gt;

&lt;p&gt;METR’s 2026 SWE-bench maintainer study is another warning. Four active maintainers across three repositories reviewed 296 AI-generated PRs. In the main normalized analysis, automated grader results averaged 24.2 percentage points higher than maintainer merge decisions.&lt;/p&gt;

&lt;p&gt;This is not an argument to remove deterministic tests. It is an argument to make the deterministic acceptance suite match the real target state.&lt;/p&gt;

&lt;p&gt;A workflow needs a definition of &lt;strong&gt;verified completion&lt;/strong&gt;: the action both occurred and passed the independent checks that represent business acceptance.&lt;/p&gt;

&lt;p&gt;It should also track &lt;strong&gt;false success&lt;/strong&gt;: cases treated as complete where the intended state was not achieved.&lt;/p&gt;

&lt;h4&gt;
  
  
  Add a reliability budget
&lt;/h4&gt;

&lt;p&gt;If a workflow has many dependent steps, aggregate reliability can fall quickly.&lt;/p&gt;

&lt;p&gt;Under a deliberately simplified model where all &lt;code&gt;n&lt;/code&gt; steps succeed independently with probability &lt;code&gt;p&lt;/code&gt;:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;R = p^n&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;At 99% per-step reliability:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;10 steps → ~90.4%&lt;/li&gt;
&lt;li&gt;20 steps → ~81.8%&lt;/li&gt;
&lt;li&gt;50 steps → ~60.5%&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;To reach 99% end-to-end across 50 equal independent steps:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;p = 0.99^(1/50) ≈ 0.999799&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;or about 99.98% per step.&lt;/p&gt;

&lt;p&gt;Real workflows may have correlated errors, retries, compensating controls and branching. Those need to be modeled. The simplified result is useful because it forces teams to ask for an end-to-end reliability budget instead of assuming the component pass rate survives a long chain.&lt;/p&gt;

&lt;h4&gt;
  
  
  Clean tests need uncertainty
&lt;/h4&gt;

&lt;p&gt;Even “zero failures observed” needs a denominator. Under the statistical rule of three, zero events across &lt;code&gt;n&lt;/code&gt; comparable independent trials gives an approximate 95% upper bound near &lt;code&gt;3/n&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;That means zero observed critical failures in:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;100 trials → upper bound ~3%&lt;/li&gt;
&lt;li&gt;300 → ~1%&lt;/li&gt;
&lt;li&gt;1,000 → ~0.3%&lt;/li&gt;
&lt;li&gt;3,000 → ~0.1%&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Agent evaluation frequently violates the simple binomial assumptions, so this is not a universal assurance method. It is a discipline: report the sample and uncertainty instead of translating “zero observed” into “safe.”&lt;/p&gt;

&lt;h4&gt;
  
  
  Autonomy should be reversible
&lt;/h4&gt;

&lt;p&gt;Model, tool, prompt, policy and environment changes can invalidate previous evidence. A production autonomy policy therefore needs demotion triggers.&lt;/p&gt;

&lt;p&gt;Critical false-success events, missed exceptions, policy violations, security regressions, failed recovery, drift or material system changes should move the action back to a lower level or review state until evidence is re-established.&lt;/p&gt;

&lt;p&gt;The result is not a straight maturity staircase. It is a controlled operating system for authority.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Source and full research:&lt;/strong&gt; &lt;a href="https://www.ariftly.io/insights/ai-agent-autonomy-framework" rel="noopener noreferrer"&gt;Ariftly’s canonical article&lt;/a&gt;. This framework is an editorial engineering proposal, not a NIST standard or a claim of measured Ariftly production performance.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>machinelearning</category>
      <category>agents</category>
      <category>automation</category>
    </item>
    <item>
      <title>Why 20% vs 18% Is Not a US–EU AI Adoption Ranking</title>
      <dc:creator>Ariftly</dc:creator>
      <pubDate>Tue, 20 Oct 2026 20:03:54 +0000</pubDate>
      <link>https://dev.to/ariftly/why-20-vs-18-is-not-a-us-eu-ai-adoption-ranking-23bp</link>
      <guid>https://dev.to/ariftly/why-20-vs-18-is-not-a-us-eu-ai-adoption-ranking-23bp</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;What the evidence says:&lt;/strong&gt; Official statistics show growing business AI use, but Eurostat's 20.0% and the U.S. Census's 18% do not establish a transatlantic ranking. Their populations, periods, questions, and weighting differ.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h4&gt;
  
  
  A comparability contract for enterprise AI adoption metrics
&lt;/h4&gt;

&lt;p&gt;An analytics team can make an official adoption statistic misleading without changing a single digit. It is enough to drop the population and question wording from the visualization. That is particularly likely when comparing different official surveys.&lt;/p&gt;

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

&lt;p&gt;For example, Eurostat's enterprise ICT survey reports 20.0% AI use in 2025 among enterprises with at least ten employed people in specified economic activities. The measure counts use of one or more technologies in a defined list. A 2026 U.S. Census research paper reports that 18% of employer firms used AI in a business function during its November 2025–January 2026 supplement reference period. The Census data cover employer businesses excluding farms and do not apply Eurostat's minimum size threshold.&lt;/p&gt;

&lt;p&gt;The analytical question is whether these observations estimate the same target quantity. In this case, they do not. A responsible monitoring system must encode the estimand, not merely the &lt;code&gt;percent&lt;/code&gt; field.&lt;/p&gt;

&lt;p&gt;A useful observation record contains an immutable source ID, URL, original question or indicator ID, release version, reference date, geography, unit of analysis, eligible workforce size, included industries, metric numerator, denominator, weighting method, standard errors if published, data flags and an interpretation label. Any difference computation should verify a compatibility contract first.&lt;/p&gt;

&lt;p&gt;The check can be hierarchical. Compare exact matches within the same survey release and indicator first. Compare older and newer releases only after reviewing changes to questionnaires, classification systems or sampling design. Compare different countries only when the population and concept are sufficiently aligned, and explain any remaining residual differences. If they are not, display the values side by side for context but disable subtraction and ranking.&lt;/p&gt;

&lt;p&gt;Three within-source views illustrate the payoff. In Eurostat's series, covered AI use increased from 8.1% in 2023 to 20.0% in 2025. Arithmetic on rounded values gives +11.9 percentage points and approximately 2.47 times the 2023 level. That does not remove a 2025 questionnaire change introducing a visual/audio generation category. A trend annotation matters even when values remain useful.&lt;/p&gt;

&lt;p&gt;The EU size comparison is similarly informative: 17.0% of enterprises with 10–49 employed people, 30.4% of those with 50–249 and 55.0% of those with 250+ reported AI use in 2025. The 55.0 / 17.0 ratio is about 3.24. It is a descriptive prevalence ratio, not a causal treatment effect and not adjusted for industry composition. An analyst should avoid stating that firm size explains the difference without further modeling.&lt;/p&gt;

&lt;p&gt;The U.S. study offers a different view. The firm-weighted adoption estimate was 18%; the employment-weighted estimate was 32%. This 14-percentage-point contrast is not independent evidence from another country or measure of uncertainty. It represents an alternative weighting of the same underlying adoption question. Its interpretation is linked to where workers are employed rather than an equal vote per firm.&lt;/p&gt;

&lt;p&gt;Sector breakdowns require caution, too. Census found that, for the wave ending 3 May 2026, Information firms reported 39.7% AI use and Finance and Insurance firms 33.9%, compared with a national figure of 19.8%. These figures should be dated on the chart. U.S. NAICS and EU NACE classifications are not a drop-in equivalent, and coverage differences must be considered before cross-region comparisons.&lt;/p&gt;

&lt;p&gt;The last validation is semantic: what does an affirmative AI-use answer establish? It can establish that a respondent met a survey definition. It does not, by itself, document approved machine actions, deterministic acceptance checks, exception handling or end-to-end task completion. The 2026 Census supplement adds valuable business-function and worker-task information; for example, among adopting firms, 57% used AI in three or fewer business functions. Nevertheless, production assurance would need an additional operational evidence chain.&lt;/p&gt;

&lt;p&gt;For workflow engineering, capture each input, generated proposal, decision authority, executed action, test result, escalation and outcome. Keep probabilistic interpretation distinct from deterministic validation. This is Ariftly's design interpretation, not a variable imputed from either government survey. Ariftly Forge's Record → Redesign → Operate direction is in development; the concrete local Oracle-to-Snowflake V1 has been tested only on synthetic inputs, not customer production workflows.&lt;/p&gt;

&lt;p&gt;If the monitor is published as reusable data, include its source snapshot and transformation script or notebook. Make the script fail closed when crucial metric fields are absent or incompatible. Never auto-calculate &lt;code&gt;EU rate - US rate&lt;/code&gt; without an explicitly documented, defensible harmonization method. Store row-level lineage and release a transparent revision log rather than silently replacing a statistic when an agency changes its dataset.&lt;/p&gt;

&lt;p&gt;The goal is not to make adoption analysis impossible. It is to make a useful comparison reproducible and a misleading comparison difficult. Analysts can still show different official figures and learn from each, provided the visualization communicates what their denominators actually mean. The stronger enterprise takeaway is that adoption breadth and operational capability are different dimensions. One helps describe diffusion; the other requires measurable workflow evidence.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Primary source links and measurement details are in the canonical and evidence ledger; this adaptation is not a new statistical release.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Read the source-linked research
&lt;/h2&gt;

&lt;p&gt;The full article includes the underlying official links, accessible comparison tables, methodology, limitations, and the downloadable &lt;strong&gt;Ariftly Enterprise AI Adoption Monitor v0.1&lt;/strong&gt;:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.ariftly.io/insights/enterprise-ai-adoption-us-eu-data" rel="noopener noreferrer"&gt;The Enterprise AI Adoption Gap: What Official US and EU Data Actually Shows&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Disclosure: This adaptation was prepared with AI assistance and reviewed against the cited U.S. Census and Eurostat sources. The statistics are agency-reported; Ariftly's contribution is the comparison method and derived arithmetic.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>data</category>
      <category>analytics</category>
      <category>machinelearning</category>
    </item>
    <item>
      <title>A 997 Passed. Did the Purchase Order?</title>
      <dc:creator>Ariftly</dc:creator>
      <pubDate>Tue, 20 Oct 2026 16:11:50 +0000</pubDate>
      <link>https://dev.to/ariftly/a-997-passed-did-the-purchase-order-1dep</link>
      <guid>https://dev.to/ariftly/a-997-passed-did-the-purchase-order-1dep</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fnlrw0jdkynb7dwy4jros.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fnlrw0jdkynb7dwy4jros.webp" alt="Ariftly EDI acknowledgment evidence framework" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Disclosure:&lt;/strong&gt; This is Ariftly engineering research. The examples are synthetic, not customer evidence or production benchmarks. EDI onboarding remains a future workflow direction, not a shipped Ariftly product.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;EDI partner onboarding is usually described as a mapping and transport exercise: convert the order, connect two endpoints, validate a sample and obtain certification. The harder operational issue is knowing what “finished” means. When the receiving organization uses several independent components, no single technical acknowledgment necessarily spans all of them.&lt;/p&gt;

&lt;p&gt;Start by specifying the intended commercial outcome. In a typical X12 purchase-order exchange, an 850 requests goods or services. The sender may use AS2 for transport. The trading partner's systems may return an AS2 MDN, a 997 or 999, and, where agreed, an 855 from the seller's order process. The sequence sounds linear, but each response has its own scope and identifiers.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Transport boundary.&lt;/strong&gt; RFC 4130 specifies AS2, including synchronous and asynchronous MDNs. A correctly verified signed receipt can offer important evidence about message delivery and integrity. The receiving party's signature, the original-message identifier, the returned MIC and the disposition provide pieces of that proof when required. A transport response or an MDN's arrival alone should not be interpreted as proof of the business outcome. The RFC's own example cautions that received EDI data may still be syntactically incorrect or not have reached the translator. Security configuration must follow current practice rather than copying 2005-era algorithms uncritically.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Syntax boundary.&lt;/strong&gt; X12 defines the 997 to report syntactic-analysis results for encoded EDI transaction sets. Its definition expressly does not address the meaning of the business content. The 999 includes syntactic and relational analysis against the relevant implementation scope, yet it still does not establish the encoded business transaction's semantic meaning. A 997 with accepted counts is useful validation evidence. It is not the same thing as acceptance of quantities, dates, items or contractual terms.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Commercial response boundary.&lt;/strong&gt; X12 describes the 855 as the response from a seller's purchase-order system after processing an 850. One official example depicts acceptance without line-item detail; another depicts a changed order involving date, quantity, price, substitution and a line rejection; another illustrates an order being rejected. The key observation is not that any one format is universal. It is that an engineer must interpret the received 855 under the exact agreed version and partner-specific guide. A bare message count or the presence of an 855 is not enough.&lt;/p&gt;

&lt;p&gt;A disciplined implementation can represent these as a &lt;strong&gt;versioned evidence contract&lt;/strong&gt;. The contract should state which responses are mandatory, which are optional, which identifier fields must match, what time window applies, how changes are handled, what counts as an authoritative order state and which person can approve an exception. The contract is not a standard transaction set. It is the organization's policy for determining whether the integration has met its promised outcome.&lt;/p&gt;

&lt;p&gt;Correlation deserves explicit design. An AS2 MDN refers to an original AS2 message. A 997 or 999 may report on a group or multiple included transaction sets. An 855 refers to a purchase order and, in some cases, individual lines. These identifiers are not interchangeable. Build joins at the actual message, group, transaction and order levels and preserve sufficient context to explain why a particular business response belongs to a particular outbound PO. If the response omits optional line detail, do not fabricate a line-by-line proof from the header alone.&lt;/p&gt;

&lt;p&gt;Negative tests should be engineered before go-live. Simulate a transport receipt arriving but syntax failing; an accepted 997 followed by a rejected 855; a response containing changed terms; a late or missing functional response; a wrong-PO reference; and a claimed acceptance that disagrees with the designated receiving system. Every scenario should specify the classification, escalation owner, safe retry behavior and record required for audit or handover.&lt;/p&gt;

&lt;p&gt;The companion educational kit illustrates six such cases. Its CSV includes normalized fields for MDN state, 997 status, 855 status, PO-reference match and independent order-state check. The Python evaluator produces &lt;code&gt;VERIFIED&lt;/code&gt;, &lt;code&gt;WAIT_BUSINESS&lt;/code&gt;, &lt;code&gt;BLOCK_SYNTAX&lt;/code&gt;, &lt;code&gt;BLOCK_BUSINESS&lt;/code&gt;, &lt;code&gt;REVIEW_DISCREPANCY&lt;/code&gt; or &lt;code&gt;REVIEW_EVIDENCE_GAP&lt;/code&gt; under a deliberately strict fictional partner policy. The six outcomes are designed test coverage, not observed EDI traffic. The program is not a live AS2 validator or X12 parser and must not be installed as production acceptance logic.&lt;/p&gt;

&lt;p&gt;This creates a useful division of responsibilities. Deterministic services validate protocol receipts, syntax and references. The seller's actual business response supplies commercially relevant evidence. A trusted system of record confirms whatever additional outcome the agreement requires. Operators resolve missing or contradictory evidence. AI may help analyze partner guides or summarize exception context, but its explanation is not the evidence. That is the difference between adding an AI feature and designing an operationally verifiable integration workflow.&lt;/p&gt;

&lt;p&gt;A handover package should therefore contain the contract, test messages, negative-case results, correlated acknowledgment evidence, exception runbook, owner matrix and sign-off. The objective is not to make every status turn green. It is to be able to say exactly what was checked, what was not checked, and who accepted the remaining risk.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sources:&lt;/strong&gt; RFC 4130 (&lt;a href="https://www.rfc-editor.org/rfc/rfc4130.html" rel="noopener noreferrer"&gt;https://www.rfc-editor.org/rfc/rfc4130.html&lt;/a&gt;); X12 transaction sets (&lt;a href="https://x12.org/products/transaction-sets" rel="noopener noreferrer"&gt;https://x12.org/products/transaction-sets&lt;/a&gt;); X12 supply chain flow (&lt;a href="https://x12.org/flow/supply-chain" rel="noopener noreferrer"&gt;https://x12.org/flow/supply-chain&lt;/a&gt;); X12 855 public examples (linked in the canonical article).&lt;/p&gt;

&lt;h2&gt;
  
  
  From human-operated to bounded AI-operated workflows
&lt;/h2&gt;

&lt;p&gt;The useful role for AI is not to invent an acceptance state. It is to compare partner documentation, prepare evidence, summarize exceptions and propose next actions. Deterministic software must still verify receipts, syntax, correlation, policy and business state. Consequential discrepancies stay with an accountable person.&lt;/p&gt;

&lt;p&gt;A practical maturity path is: people perform and decide; AI prepares evidence; bounded steps execute under deterministic controls; autonomy expands only after representative work demonstrates reliability. That is the Ariftly View: redesign the workflow before adding a model, preserve an evidence chain and make every exception destination explicit.&lt;/p&gt;

&lt;p&gt;Ariftly Forge is the in-development experience for recording, redesigning and operating workflows. Forward-Deployed AI Engineering is the implementation motion for one bounded workflow at a time. This article does not claim that Forge currently operates EDI onboarding in production.&lt;/p&gt;

&lt;h2&gt;
  
  
  Read, reproduce and cite
&lt;/h2&gt;

&lt;p&gt;The full canonical guide includes the Ariftly Eight-Gate Acknowledgment Framework, methodology, limitations and downloadable six-case research pack:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://www.ariftly.io/insights/edi-997-vs-855-order-acceptance" rel="noopener noreferrer"&gt;Does an EDI 997 mean an order was accepted?&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Documentation and data are available under CC BY 4.0; the evaluator code is MIT licensed.&lt;/p&gt;

</description>
      <category>architecture</category>
      <category>ai</category>
      <category>programming</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Oracle to Snowflake migration validation: a six-gate acceptance framework</title>
      <dc:creator>Ariftly</dc:creator>
      <pubDate>Tue, 20 Oct 2026 09:03:20 +0000</pubDate>
      <link>https://dev.to/ariftly/oracle-to-snowflake-migration-validation-a-six-gate-acceptance-framework-kdm</link>
      <guid>https://dev.to/ariftly/oracle-to-snowflake-migration-validation-a-six-gate-acceptance-framework-kdm</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;Originally published by &lt;a href="https://www.ariftly.io/insights/oracle-sql-to-snowflake-modernization" rel="noopener noreferrer"&gt;Ariftly&lt;/a&gt;. This version focuses on the engineering method. The test scenarios below are synthetic specifications, not executed benchmark results.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;A successful SQL conversion answers one question: &lt;strong&gt;can the target system accept the translated statement?&lt;/strong&gt; A migration acceptance decision answers a harder one: &lt;strong&gt;does the translated workload preserve the behavior the team actually requires?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;For Oracle-to-Snowflake work, those questions diverge around type semantics, input representation, session settings, DML behavior, transformed outputs, and approved business changes. A useful validation process therefore needs more than a compiler result or conversion score.&lt;/p&gt;

&lt;h2&gt;
  
  
  Define the behavior contract first
&lt;/h2&gt;

&lt;p&gt;Before testing, separate three claims:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The SQL has been translated.&lt;/li&gt;
&lt;li&gt;The translated SQL executes.&lt;/li&gt;
&lt;li&gt;The translated SQL produces the accepted behavior for the intended workflow.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Each claim provides evidence. None proves the others.&lt;/p&gt;

&lt;p&gt;A behavior contract records the source artifact, relevant DDL and dependencies, representative fixtures, session configuration, expected outputs, comparison rules, tolerances, and who can approve an intentional difference. Without it, reviewers cannot reliably distinguish a defect from an agreed modernization change.&lt;/p&gt;

&lt;h2&gt;
  
  
  Three risks that deserve explicit tests
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. NULL and zero-length strings
&lt;/h3&gt;

&lt;p&gt;Oracle currently treats zero-length character values as NULL. Snowflake distinguishes empty strings from SQL NULL and exposes file-format controls that affect their treatment during loading and unloading.&lt;/p&gt;

&lt;p&gt;A small fixture should include SQL NULL, zero-length text, one space, and ordinary text. Declare the expected representation before running the comparison. Do not silently normalize every blank-looking value to NULL.&lt;/p&gt;

&lt;p&gt;Sources: &lt;a href="https://docs.oracle.com/en/database/oracle/oracle-database/26/sqlrf/Nulls.html" rel="noopener noreferrer"&gt;Oracle Nulls&lt;/a&gt; and &lt;a href="https://docs.snowflake.com/en/user-guide/data-unload-considerations" rel="noopener noreferrer"&gt;Snowflake data unloading considerations&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Oracle DATE contains time
&lt;/h3&gt;

&lt;p&gt;Oracle DATE stores year, month, day, hour, minute, and second. Snowflake DATE stores a calendar date without time. A source value such as &lt;code&gt;2026-01-15 17:45:10&lt;/code&gt; therefore needs an intentional target type and test.&lt;/p&gt;

&lt;p&gt;Use two observations on the same day with different times. Record the selected Snowflake timestamp variant and relevant session settings instead of relying on an unspecified alias.&lt;/p&gt;

&lt;p&gt;Sources: &lt;a href="https://docs.oracle.com/en/database/oracle/oracle-database/26/sqlrf/Data-Types.html" rel="noopener noreferrer"&gt;Oracle data types&lt;/a&gt; and &lt;a href="https://docs.snowflake.com/en/sql-reference/data-types-datetime" rel="noopener noreferrer"&gt;Snowflake date/time types&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Duplicate MERGE matches
&lt;/h3&gt;

&lt;p&gt;Snowflake documents cases in which multiple source rows match one target row. With &lt;code&gt;ERROR_ON_NONDETERMINISTIC_MERGE=TRUE&lt;/code&gt;, the documented default, an ambiguous update or delete raises an error. When disabled, the selected source row is undefined.&lt;/p&gt;

&lt;p&gt;Test whether the workflow should reject the ambiguity, deduplicate using a declared rule, or route it to an accountable owner. Source: &lt;a href="https://docs.snowflake.com/en/sql-reference/sql/merge" rel="noopener noreferrer"&gt;Snowflake MERGE&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Use existing validation capabilities deliberately
&lt;/h2&gt;

&lt;p&gt;Snowflake's documented migration validation has three levels:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;L1 — schema:&lt;/strong&gt; column structure, types, precision, scale, nullability, and row count.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;L2 — metrics:&lt;/strong&gt; counts, minimums, maximums, sums, averages, and other supported aggregates.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;L3 — row:&lt;/strong&gt; row signatures and cell-level mismatch investigation in supported configurations.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Row validation is optional and disabled by default in the documented configuration. Accepted transformations can reconcile explicitly declared source-to-target changes for applicable row-level validation.&lt;/p&gt;

&lt;p&gt;These capabilities are valuable, but migrated-table validation is not automatically equivalent to validating every transformed query, procedure, scheduled job, or business calculation. The test boundary must match the workflow being accepted.&lt;/p&gt;

&lt;p&gt;Source: &lt;a href="https://docs.snowflake.com/en/migrations/aim-for-datawarehouses/data-migration-validation/data-validation" rel="noopener noreferrer"&gt;Snowflake data validation&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  A six-gate acceptance framework
&lt;/h2&gt;

&lt;p&gt;We use a compact evidence chain:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Source contract:&lt;/strong&gt; versioned SQL, DDL, dependencies, settings, fixtures, and expected outputs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Translation:&lt;/strong&gt; source and target SQL, diagnostics, and a record of material changes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Execution:&lt;/strong&gt; environment settings, run identifiers, output schemas, and captured results.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Comparison:&lt;/strong&gt; typed assertions, predeclared tolerances, and mismatch reports.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Exceptions:&lt;/strong&gt; classification, owner, and documented disposition for every consequential difference.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Approval:&lt;/strong&gt; a versioned acceptance decision linked to the evidence above.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The framework is an engineering proposal, not a certification standard or performance claim.&lt;/p&gt;

&lt;h2&gt;
  
  
  Compare the right thing
&lt;/h2&gt;

&lt;p&gt;Use stable business keys where they exist. When they do not, multiset comparison can preserve duplicate counts without treating arbitrary row position as identity. Enforce ordering only when the source contract requires it.&lt;/p&gt;

&lt;p&gt;Compare typed values rather than display strings, especially for timestamps and decimals. Aggregate checks can pass even when keyed records differ, so validation depth should follow the required behavior and risk.&lt;/p&gt;

&lt;p&gt;AI can help interpret legacy SQL, propose translations, and suggest tests. Exact value comparisons, schema assertions, duplicate detection, tolerances, and acceptance rules should remain deterministic wherever practical. A plausible explanation is not proof that a transformation is correct.&lt;/p&gt;

&lt;h2&gt;
  
  
  Start small, but preserve the evidence
&lt;/h2&gt;

&lt;p&gt;A practical first suite can cover empty strings, temporal preservation, duplicate MERGE matches, decimal boundaries, aggregate masking, declared value mappings, session-sensitive time behavior, and missing or duplicate identities.&lt;/p&gt;

&lt;p&gt;Ariftly has published the &lt;a href="https://www.ariftly.io/research/oracle-snowflake-validation/README.md" rel="noopener noreferrer"&gt;fixture specification and evidence-manifest template&lt;/a&gt;. They are test designs, not observed results.&lt;/p&gt;

&lt;p&gt;The immediate next step is simple: define one source-to-target acceptance contract, build a representative fixture, and decide which differences are defects, which are intended transformations, and who has authority to accept the result.&lt;/p&gt;

&lt;p&gt;A migration is ready for approval when its required evidence supports that decision—not merely when the SQL has been converted.&lt;/p&gt;

</description>
      <category>database</category>
      <category>sql</category>
      <category>testing</category>
      <category>data</category>
    </item>
  </channel>
</rss>
