<?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%2Fbc0528d5-f42d-475f-bd86-845d567c145c.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>Why Enterprise AI Agents Need Workflow State, Not Just RAG</title>
      <dc:creator>Ariftly</dc:creator>
      <pubDate>Tue, 03 Nov 2026 11:06:52 +0000</pubDate>
      <link>https://dev.to/ariftly/why-enterprise-ai-agents-need-workflow-state-not-just-rag-l8l</link>
      <guid>https://dev.to/ariftly/why-enterprise-ai-agents-need-workflow-state-not-just-rag-l8l</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%2Fk2npg9705v9yy4b381q4.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%2Fk2npg9705v9yy4b381q4.webp" alt="Ariftly Workflow Context Contract showing an enterprise operator at a controlled execution boundary" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The phrase “agent context” now covers several architectural problems that should not be collapsed into one prompt.&lt;/p&gt;

&lt;p&gt;At the knowledge layer, an agent needs relevant enterprise information: documents, definitions, records and relationships. RAG, semantic search and knowledge graphs can help supply that material.&lt;/p&gt;

&lt;p&gt;At the state layer, the agent needs to know what is true &lt;strong&gt;now&lt;/strong&gt;. A workflow may depend on an approval that was revoked thirty seconds ago, an incident that changed status, a payment whose balance moved or a deployment whose health check failed. Historical retrieval is not a substitute for current state.&lt;/p&gt;

&lt;p&gt;At the authority layer, the workflow must know who initiated the task, which rights were delegated, what policy applies and which specific actions are allowed. A tool being visible or technically callable does not establish that business authority. SAP’s October 2026 Agent Gateway architecture makes this distinction explicit: discovery does not itself grant permission.&lt;/p&gt;

&lt;p&gt;At the evidence layer, a workflow needs to know what will prove completion and where the case goes when it cannot proceed. A model saying “done” is not equivalent to an independently observed downstream state.&lt;/p&gt;

&lt;p&gt;These four layers are the basis for the &lt;strong&gt;Ariftly Workflow Context Contract v1.0&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The proposed contract contains 12 fields:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;workflow objective;&lt;/li&gt;
&lt;li&gt;current state;&lt;/li&gt;
&lt;li&gt;accountable owner;&lt;/li&gt;
&lt;li&gt;requesting actor;&lt;/li&gt;
&lt;li&gt;delegated authority;&lt;/li&gt;
&lt;li&gt;applicable policy;&lt;/li&gt;
&lt;li&gt;effective date;&lt;/li&gt;
&lt;li&gt;source provenance;&lt;/li&gt;
&lt;li&gt;preconditions;&lt;/li&gt;
&lt;li&gt;permitted actions;&lt;/li&gt;
&lt;li&gt;exception route;&lt;/li&gt;
&lt;li&gt;completion evidence.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The fields are deliberately attached to a &lt;strong&gt;bounded action&lt;/strong&gt;, not to an agent brand or general-purpose memory store.&lt;/p&gt;

&lt;p&gt;That action-level scope matters. Consider a synthetic incident workflow. An agent may be allowed to prepare a resolution note when the service appears healthy. That does not automatically mean it may change the incident to resolved. Before the state-changing action, the workflow can reread service health, verify that no blocking child incident remains open, check the requestor’s task-scoped grant, resolve the current incident policy and verify that &lt;code&gt;incident.update&lt;/code&gt; is inside the permitted action set.&lt;/p&gt;

&lt;p&gt;If any condition is stale, the correct response is not necessarily refusal. The contract uses four operational outcomes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Permit&lt;/strong&gt; means the required context is present and current, preconditions pass and the proposed action is inside the defined authority envelope.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Refresh&lt;/strong&gt; means the field exists but has exceeded its freshness or effective-date window. The workflow rereads the authoritative source and reevaluates.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Escalate&lt;/strong&gt; means context conflicts or the decision requires accountable judgment. The system sends an evidence bundle to the named exception route instead of asking the model to invent a policy resolution.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Block&lt;/strong&gt; means a required control is missing or failed: no attributable requester, expired delegation, failed mandatory precondition, out-of-scope action or an attempt to claim completion without required evidence.&lt;/p&gt;

&lt;p&gt;The contract also distinguishes &lt;strong&gt;model-visible context&lt;/strong&gt; from &lt;strong&gt;independently enforced context&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;A model may need to read an authorization scope to explain why an action is unavailable. It still should not be the component that expands that scope. A model may interpret a policy, but a machine-decidable policy condition should be evaluated by deterministic software where possible.&lt;/p&gt;

&lt;p&gt;This separation is directly aligned with NIST’s October 2026 proposed design tenets for agent identity management. NIST recommends architectural separation of policy from reasoning and deterministic access capabilities as the primary mechanism for agentic authorization. NIST also proposes linking agents to their task initiators, attenuating delegated rights, defining human-review triggers and preserving immutable evidence.&lt;/p&gt;

&lt;p&gt;Older standards reinforce other parts of the contract. NIST AI RMF asks organizations to establish intended purpose, deployment context, business use and responsibilities, and to maintain response/override mechanisms. NIST Zero Trust Architecture evaluates access against current identity and environmental signals instead of implicit trust. W3C PROV supplies a formal way to represent provenance across entities, activities and agents. The current A2A specification gives task state and output artifacts explicit protocol semantics.&lt;/p&gt;

&lt;p&gt;None of those sources mandates the exact 12-field Ariftly contract. The framework is a synthesis across them.&lt;/p&gt;

&lt;p&gt;Current vendors are also converging on adjacent ideas. Oracle’s October 27 announcement describes entities, relationships, policies and workflows, including what can be done, under which conditions and with whose authority; Oracle states the new AI Data Platform capabilities will become available within the next 12 months. ARIS describes process context across processes, roles, systems, rules, risks and controls. OpenAI and ServiceNow connect business context with workflow actions and existing rules and permissions. Lenovo Press published a detailed enterprise context layer reference architecture on October 29 that includes current state, workflow status, user authority, effective dates, provenance and permitted actions.&lt;/p&gt;

&lt;p&gt;That last source is an important originality check. The broad idea “agents need more than RAG” is already in the market. The contribution of the Workflow Context Contract is narrower: a small execution-time record, a field-level failure behavior and a boundary between reasoning and enforcement.&lt;/p&gt;

&lt;p&gt;The framework has limitations. It has not been validated as a universal minimum, and regulated or safety-critical domains will need additional fields. Provenance does not prove truth. Valid identity does not prove authority. Complete context does not prove correct model reasoning. And correct reasoning still does not prove that a downstream action succeeded.&lt;/p&gt;

&lt;p&gt;That is why completion evidence remains a separate field.&lt;/p&gt;

&lt;p&gt;For enterprise teams, a practical first exercise is simple: choose one consequential workflow action and attempt to populate all 12 fields from real systems and owners. The fields that cannot be resolved reliably are the context-engineering backlog to address before increasing execution authority.&lt;/p&gt;




&lt;p&gt;Read the complete research article and download the Ariftly Workflow Context Contract v1.0: &lt;a href="https://www.ariftly.io/insights/enterprise-agent-workflow-context" rel="noopener noreferrer"&gt;https://www.ariftly.io/insights/enterprise-agent-workflow-context&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Disclosure: This adaptation was prepared by Ariftly with AI-assisted research and editing, then reviewed against the cited sources and Ariftly’s public messaging boundaries.&lt;/p&gt;

</description>
      <category>agents</category>
      <category>ai</category>
      <category>security</category>
    </item>
    <item>
      <title>PHP2Shell: Why Patch Available Is Not Fleet Verified</title>
      <dc:creator>Ariftly</dc:creator>
      <pubDate>Thu, 22 Oct 2026 10:12:38 +0000</pubDate>
      <link>https://dev.to/ariftly/php2shell-why-patch-available-is-not-fleet-verified-3f26</link>
      <guid>https://dev.to/ariftly/php2shell-why-patch-available-is-not-fleet-verified-3f26</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%2Frphinfa3k25o379hzsc9.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%2Frphinfa3k25o379hzsc9.webp" alt="An illustrative incident-response lead aligning three physical response timelines while holding an unverified marker" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The PHP project released fixes for two critical core vulnerabilities on October 21, 2026: CVE-2026-109618 and CVE-2026-109619. Both can permit unauthenticated remote code execution under demonstrated conditions.&lt;/p&gt;

&lt;p&gt;The urgent technical instruction is straightforward: follow PHP's official advisory and your distribution or LTS vendor's guidance, then update to a verified fixed build. Configuration-only mitigations reduce exposure to particular paths but do not fully resolve both flaws.&lt;/p&gt;

&lt;p&gt;The harder operational lesson is that &lt;strong&gt;a patch release is not evidence that every running system is fixed&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  The response clock started before public disclosure
&lt;/h2&gt;

&lt;p&gt;Amazon Threat Intelligence reports that its MadPot sensors observed an exploitation attempt dated October 17—four calendar days before public disclosure. AWS also says it cannot determine whether the observed attempts would have succeeded on real-world systems.&lt;/p&gt;

&lt;p&gt;That distinction matters. An observed attempt is not a confirmed compromise. But it also means the public advisory date may be too late to start investigation and response.&lt;/p&gt;

&lt;p&gt;The publicly documented sequence includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;2024:&lt;/strong&gt; PHP security work surfaced early signs of the out-of-memory issue, without a concrete exploit path.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;August 11, 2026:&lt;/strong&gt; Calif and OpenAI independently reported the OOM root cause with clearer remote-code-execution impact.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;October 17:&lt;/strong&gt; AWS first observed an attempted exploit in MadPot telemetry.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;October 20, about 15:00 UTC:&lt;/strong&gt; the two CVE identifiers began circulating.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;October 20, 19:30 UTC:&lt;/strong&gt; PHP issued a critical pre-announcement.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;October 21, about 02:00 UTC:&lt;/strong&gt; AWS observed additional attempts.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;October 21, 07:41 UTC:&lt;/strong&gt; patched images were published early, according to the PHP Foundation.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;October 21, 14:00 UTC:&lt;/strong&gt; coordinated disclosure and fixed releases arrived.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;From the PHP Foundation's reported pre-announcement to scheduled disclosure is &lt;strong&gt;18 hours 30 minutes&lt;/strong&gt;. From its reported early image publication to disclosure is &lt;strong&gt;6 hours 19 minutes&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Those are arithmetic intervals from reported UTC timestamps—not typical remediation times, industry SLAs, or proof that every defender had the same window.&lt;/p&gt;

&lt;h2&gt;
  
  
  AI increased discovery capacity, not accountability
&lt;/h2&gt;

&lt;p&gt;The PHP Foundation says the issue's roots were visible in 2024, but competing fixes created compatibility, denial-of-service, and extension-ecosystem trade-offs. It calls the delay a structural failure.&lt;/p&gt;

&lt;p&gt;OpenAI says Calif used GPT-5.6 Sol during its research. The PHP Foundation also describes AI-assisted validation and report grouping. But the fix was maintainer-led: people assessed reports, made trade-offs, coordinated disclosure, and shipped patches.&lt;/p&gt;

&lt;p&gt;That is a more useful model than “AI found and fixed PHP.”&lt;/p&gt;

&lt;p&gt;The Foundation also reports publishing 15 CVEs since July 1 and processing more than 100 reports that were invalid, duplicates, or not reproducible. Those are queue counts, not a measured AI false-positive rate. They do show that more discovery capacity creates more triage and coordination work.&lt;/p&gt;

&lt;h2&gt;
  
  
  A six-state vulnerability response clock
&lt;/h2&gt;

&lt;p&gt;At Ariftly, we framed the operational problem as six evidence-backed states:&lt;/p&gt;

&lt;h3&gt;
  
  
  T0 — First credible signal
&lt;/h3&gt;

&lt;p&gt;When did trustworthy evidence justify investigation?&lt;/p&gt;

&lt;p&gt;Evidence: an advisory, telemetry event, or validated report with provenance and a UTC timestamp.&lt;/p&gt;

&lt;h3&gt;
  
  
  T1 — Exposure known
&lt;/h3&gt;

&lt;p&gt;Which services and running versions are in scope?&lt;/p&gt;

&lt;p&gt;Evidence: build and runtime inventory joined to service owners and network exposure.&lt;/p&gt;

&lt;h3&gt;
  
  
  T2 — Fix ready for this environment
&lt;/h3&gt;

&lt;p&gt;Is there an approved upstream or vendor-patched package?&lt;/p&gt;

&lt;p&gt;Evidence: package advisory, build identifier, artifact provenance, and change approval.&lt;/p&gt;

&lt;h3&gt;
  
  
  T3 — Remediation deployed
&lt;/h3&gt;

&lt;p&gt;Have affected live instances been upgraded or replaced?&lt;/p&gt;

&lt;p&gt;Evidence: deploy records, runtime fingerprints, and worker restart or image-replacement records.&lt;/p&gt;

&lt;h3&gt;
  
  
  T4 — Remediation verified
&lt;/h3&gt;

&lt;p&gt;Is every in-scope asset fixed or specifically excepted?&lt;/p&gt;

&lt;p&gt;Evidence: running-version checks, targeted functional tests, and reconciliation with inventory.&lt;/p&gt;

&lt;h3&gt;
  
  
  T5 — Historical activity reviewed
&lt;/h3&gt;

&lt;p&gt;Was suspicious activity assessed back to the earliest credible observation?&lt;/p&gt;

&lt;p&gt;Evidence: a defined log lookback, investigation notes, decisions, and known visibility gaps.&lt;/p&gt;

&lt;p&gt;The framework deliberately does not define one universal timer. Teams can measure intervals such as time from rollout start to verified fleet state, but they should keep the population and incident boundary explicit.&lt;/p&gt;

&lt;h2&gt;
  
  
  Ticket closed is not a deterministic check
&lt;/h2&gt;

&lt;p&gt;A task can say “PHP patched” while:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;a background worker still runs an older binary;&lt;/li&gt;
&lt;li&gt;a separate image uses a different vendor build;&lt;/li&gt;
&lt;li&gt;a rolling restart never reached one instance;&lt;/li&gt;
&lt;li&gt;a mitigation-only exception has no accountable owner; or&lt;/li&gt;
&lt;li&gt;inventory and runtime state were never reconciled.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A reliable evidence chain links:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;signal → affected asset → risk decision → authorized change → execution → deterministic validation → exception or closure&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;AI can help classify reports, correlate assets, and prepare evidence. It should not silently replace package verification, approval, restart confirmation, or incident-response judgment.&lt;/p&gt;

&lt;h2&gt;
  
  
  What teams should do now
&lt;/h2&gt;

&lt;p&gt;Start with the official PHP advisory. Identify every web-serving PHP runtime—including packaged and containerized deployments—and verify the running version after change. Check vendor backports rather than relying only on upstream-looking version strings.&lt;/p&gt;

&lt;p&gt;Prioritize exposed systems. Preserve evidence of incomplete changes, compensating controls, exceptions, and visibility gaps. For historical review, AWS recommends investigating from at least October 17 for this incident.&lt;/p&gt;

&lt;p&gt;Most importantly, do not confuse discovery, patch availability, deployment, and verified closure. They are separate operational states.&lt;/p&gt;

&lt;p&gt;The complete sourced analysis, timeline CSV, and reusable response-clock dataset are available in the canonical article:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.ariftly.io/insights/php2shell-shrinking-defenders-window" rel="noopener noreferrer"&gt;https://www.ariftly.io/insights/php2shell-shrinking-defenders-window&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Research files:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/Ariftly/AriftlyWeb/tree/main/research/php2shell-response-clock" rel="noopener noreferrer"&gt;https://github.com/Ariftly/AriftlyWeb/tree/main/research/php2shell-response-clock&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Disclosure: This adaptation was prepared with AI assistance and human editorial review from the cited primary sources. The Ariftly response clock is an editorial engineering framework, not a security standard, product, certification, legal opinion, or customer result. It contains no exploit instructions.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>php</category>
      <category>devops</category>
      <category>opensource</category>
      <category>security</category>
    </item>
    <item>
      <title>AI Agent Authorization: A Least-Privilege Operating Model</title>
      <dc:creator>Ariftly</dc:creator>
      <pubDate>Wed, 21 Oct 2026 19:23:25 +0000</pubDate>
      <link>https://dev.to/ariftly/ai-agent-authorization-a-least-privilege-operating-model-4abh</link>
      <guid>https://dev.to/ariftly/ai-agent-authorization-a-least-privilege-operating-model-4abh</guid>
      <description>&lt;p&gt;&lt;strong&gt;Identity and authorization are separate checks.&lt;/strong&gt; A signed workload identity can tell the resource server who is calling; it cannot by itself establish that a particular principal delegated a write on a particular table. A robust architecture represents both identities and the right exercised in each operation. This distinction becomes critical with ephemeral instances, multi-tenant tools and subagents.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Represent grants as action tuples.&lt;/strong&gt; A practical tuple contains principal, authenticated agent, task, target tenant/object, operation, authorized tool, context predicates, validity period, parent delegation reference, approval constraint, revocation state and audit linkage. The Ariftly Agent Authority Matrix provides these as twelve dimensions. It is a conceptual schema to adapt, not a normative wire protocol. Implementation teams must map each dimension into token claims, authorization server data, policy engine attributes, workflow metadata or evidence stores according to architecture and data minimization needs.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Start with mature protocol building blocks.&lt;/strong&gt; SPIFFE supports cryptographically verifiable workload identity. RFC 8693 defines OAuth token exchange including delegation and impersonation semantics. RFC 9396 permits more expressive authorization details. RFC 9068 describes a JWT access-token profile; RFC 9449 supports sender-constrained tokens using DPoP; RFC 9700 provides updated OAuth security practice. None supplies a ready-made universal agent governance product. Deployments must verify token issuers and audiences, ensure resource-server checks, manage key rotation and define how current revocation state is enforced. Agent-specific Internet-Drafts need status/date checks; drafts must never be described as mature RFCs.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Narrow every delegation.&lt;/strong&gt; Construct a parent–child grant graph and prohibit child authorizations outside parent policy scope. Store the parent grant ID and a deterministic comparison result. A tool invocation should not turn a request like “help complete validation” into an unrestricted inheritance of the operator's identity. If a workflow genuinely needs elevated access, route that escalation through a separately authorized grant with an accountable owner and expiry.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Do not confuse intent with permission.&lt;/strong&gt; A model can infer useful steps from a task, including steps outside the authorized scope. It may be correct about the technical utility of a command and wrong about entitlement to execute it. The enforcement layer should parse the actual requested operation and target resource, evaluate trusted attributes and block operations whose permissions cannot be proven. Model-written arguments and retrieved text are inputs, not policy instructions. Deterministic enforcement should be outside the model's control.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Make approvals specific.&lt;/strong&gt; Human sign-off must correspond to a defined transaction. Capture a digest or normalized representation of the action, resource, constraints, expected effect, expiry and approver identity. A model should not be able to materially change those parameters and reuse the old approval. Approval UI should present intelligible impact and avoid indiscriminate prompting for routine, low-risk steps; NIST's stakeholder synthesis raises consent-fatigue concerns.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Test revocation.&lt;/strong&gt; Expiry and revocation answer different questions. Short validity limits how long a credential can survive but does not automatically stop an already accepted token or an in-flight tool call. Define what must happen after an owner cancels authority: new calls denied, queued actions blocked, downstream grants invalidated or bounded by their own expiry, and consequential partial execution escalated. Measure actual propagation times in the organization's specific environment and report the measurement method if making a latency claim.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Make audit evidence reconstructable and privacy-aware.&lt;/strong&gt; The minimal useful chain contains a request ID, identity and principal references, task, grant, policy version, decision reason, approval reference, tool execution ID, validation result and exception disposition. Do not dump arbitrary conversations, sensitive records or long-lived secrets into an audit lake simply to improve observability. Use hashes or controlled references where appropriate, enforce access restrictions and explicit retention periods.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Demonstrate denials, not only happy paths.&lt;/strong&gt; Create test cases for nonexistent agent identity, forbidden tenant, denied action, expanded subagent scope, stale grant, changed approval, revoked credential and malicious instructions embedded in tool output. Require both a correct enforcement result and an evidence record. A design inventory can show completeness, but only reproducible enforcement testing—and eventually independent production evidence—can inform operational assurance.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Quantitative honesty matters.&lt;/strong&gt; NIST reports more than 600 responses to its February 2026 concept paper. It does not claim the number represents security incidents or share of enterprises. Similarly, a fictional authority record with nine verified design fields out of twelve yields 75% completeness, not a statement that the workflow is 75% secure. Any security outcome percentage needs a clearly defined population, threat model, repeatable test, environment and denominator.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Workflow ownership remains human.&lt;/strong&gt; For an AI-assisted workflow, the person may take action after the model prepares the inputs. Bounded execution permits an agent to perform a few well-validated operations without expanding its authority. More autonomous execution requires evidence of reliability and accountable review for exceptions, rather than a role name that implies unlimited permission. This is the separation between &lt;em&gt;autonomy level&lt;/em&gt; and &lt;em&gt;action authority&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;For AI-Native Modernization, a hypothetical Oracle-to-Snowflake analysis might allow an assessment agent to read synthetic SQL, then a specialized validation agent to run read-only checks. It should not permit production writes by implication. Ariftly's Forge experience is in development; the example is a design pattern, not a reported product feature or customer result.&lt;/p&gt;

&lt;p&gt;A strong review meeting ends with a verifiable question: can the team point to the exact grant, enforced decision and validated outcome for one selected action? If not, reduce the scope or return the action to a responsible human until the chain is testable.&lt;/p&gt;




&lt;p&gt;Originally published by Ariftly with the full source ledger, twelve-field matrix, synthetic fixtures, and downloadable schema: &lt;a href="https://www.ariftly.io/insights/ai-agent-identity-authorization-least-privilege" rel="noopener noreferrer"&gt;https://www.ariftly.io/insights/ai-agent-identity-authorization-least-privilege&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Disclosure: This article presents an Ariftly-authored engineering framework. The example is synthetic, the matrix is not a NIST standard, and design completeness is not a security-effectiveness score.&lt;/p&gt;

</description>
      <category>agents</category>
      <category>architecture</category>
      <category>security</category>
      <category>ai</category>
    </item>
    <item>
      <title>EU AI Act Workflow Evidence: A Seven-Stage Engineering Map</title>
      <dc:creator>Ariftly</dc:creator>
      <pubDate>Wed, 21 Oct 2026 12:00:47 +0000</pubDate>
      <link>https://dev.to/ariftly/eu-ai-act-workflow-evidence-a-seven-stage-engineering-map-5eol</link>
      <guid>https://dev.to/ariftly/eu-ai-act-workflow-evidence-a-seven-stage-engineering-map-5eol</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%2Fhvssv0guc247uzbdeeln.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%2Fhvssv0guc247uzbdeeln.webp" alt="Illustrative compliance engineer reviewing a seven-stage workflow evidence map" width="800" height="420"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Disclosure:&lt;/strong&gt; This is Ariftly engineering guidance, not legal advice, certification, or evidence of a compliance product or customer deployment. The seven stages and twelve fields are an authored framework&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;A practical AI control is a transition rule plus evidence that the rule ran. This framing is useful even when the workflow does not fall within the EU AI Act's high-risk regime. It prevents teams from mistaking application architecture for legal classification.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Start with an applicability record.&lt;/strong&gt; Store the system's intended purpose, operating entity, potential provider and deployer roles, location of use or output, decision category and assessed legal scope. Add a classification status such as &lt;code&gt;review_pending&lt;/code&gt;, &lt;code&gt;high_risk_annex_iii&lt;/code&gt;, &lt;code&gt;article_50_trigger&lt;/code&gt; or &lt;code&gt;not_triggered&lt;/code&gt;. Those strings are local implementation labels, not regulatory classifications in themselves. Require a named owner and the version of the law used at assessment.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Describe the execution chain.&lt;/strong&gt; A single run can contain multiple machine and human events. Give each event a unique ID, reference its run, timestamp it, identify its stage and attach references to the relevant inputs or results. Resist the temptation to save everything in one giant transcript. Large unstructured logs are difficult to review and may create unnecessary data-protection risk. Instead, link to appropriately secured artifacts with expiry and retention rules.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Separate AI interpretation from validation.&lt;/strong&gt; A language model can propose a classification, transformation or recommended action. If correctness can be checked mechanically, record an independent rule result. For code modernization this might mean parsing, compilation or carefully scoped equivalence tests. For a form-based workflow it might mean schema validation, referential checks or allowed-value constraints. Neither replaces a domain-level evaluation of safety or rights impacts when applicable.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Design for negative outcomes.&lt;/strong&gt; A failed validation is a first-class event. Specify whether it blocks, retries, escalates or requires human approval. Track the exact artifact reviewed; otherwise a reviewer may authorize one version while the system executes another. Ensure failed or timed-out downstream writes do not become apparent success states because a model described them confidently.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Make oversight usable.&lt;/strong&gt; When Article 14 or another applicable duty requires human oversight, the interface must support real intervention appropriate to the system's risks and context. Show relevant limitations and anomalies, allow justified override and safe interruption, and retain a narrowly scoped record of consequential decisions. Do not confuse human-in-the-loop theater with a reviewer empowered to challenge the system.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Retain proportionately.&lt;/strong&gt; For covered high-risk cases, Articles 19 and 26 include qualified six-month minimums for automatically generated logs under a party's control. The exact implementation must also account for the intended purpose and applicable other law, particularly personal-data rules. The proposed event schema uses references, not default raw prompt replication. An organizational retention schedule should identify record type, controller, access, expiry and deletion mechanism.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Verify the outcome.&lt;/strong&gt; Successful API submission, a generated confirmation sentence and a committed downstream change are three different facts. Evidence should distinguish them. For example, log the outgoing request ID, authorization/validation gate result and returned durable system receipt. Where relevant, query the final state through an independent read.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Test the control chain.&lt;/strong&gt; Create synthetic cases for a clean path, a malformed input, a failed deterministic check, a reviewer rejection, a tool timeout and a missing outcome receipt. For each, examine whether an investigator can identify the causal sequence without privileged access to unrelated private data. Measure completeness and timing in a test environment if appropriate—but publish no fabricated performance percentages.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Version the mapping.&lt;/strong&gt; Regulations change and so do workflows. Record which legislative version, Article 50 guidance, model configuration and operational rule set a mapping used. Have qualified counsel decide legal applicability. The Evidence Map simply creates a useful engineering handoff between governance requirements and observable execution.&lt;/p&gt;

&lt;p&gt;For AI-native modernization, that handoff prevents a common category error. Syntax-converted code is not a validated business transformation, and a successful assistant response is not verified enterprise execution. A robust workflow makes failed checks visible, routes consequential cases to people and links the approved artifact to what actually happened.&lt;/p&gt;

&lt;h2&gt;
  
  
  Primary references and reusable assets
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://ai-act-service-desk.ec.europa.eu/en/ai-act/eu-ai-act-implementation-timeline" rel="noopener noreferrer"&gt;EU AI Act implementation timeline&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://ai-act-service-desk.ec.europa.eu/en/ai-act/article-12" rel="noopener noreferrer"&gt;Article 12: record-keeping&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://ai-act-service-desk.ec.europa.eu/en/ai-act/article-14" rel="noopener noreferrer"&gt;Article 14: human oversight&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://ai-act-service-desk.ec.europa.eu/en/ai-act/article-26" rel="noopener noreferrer"&gt;Article 26: deployer obligations&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/Ariftly/AriftlyWeb/tree/main/research/eu-ai-act-workflow-evidence-map" rel="noopener noreferrer"&gt;Ariftly AI Workflow Evidence Map on GitHub&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Originally published with methodology, limitations, and the dated timeline at &lt;a href="https://www.ariftly.io/insights/eu-ai-act-workflow-evidence-checklist" rel="noopener noreferrer"&gt;Ariftly&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>architecture</category>
      <category>security</category>
      <category>opensource</category>
    </item>
    <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>
