<?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: Haytham Kaoukji (Hi_Sam)</title>
    <description>The latest articles on DEV Community by Haytham Kaoukji (Hi_Sam) (@ythouma).</description>
    <link>https://dev.to/ythouma</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%2F4077448%2F3cbc44a9-2e2f-4d8b-95a9-7e107943bbd0.jpg</url>
      <title>DEV Community: Haytham Kaoukji (Hi_Sam)</title>
      <link>https://dev.to/ythouma</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ythouma"/>
    <language>en</language>
    <item>
      <title>Treating EU AI Act Compliance as Code: A CI/CD Approach</title>
      <dc:creator>Haytham Kaoukji (Hi_Sam)</dc:creator>
      <pubDate>Fri, 14 Aug 2026 09:38:26 +0000</pubDate>
      <link>https://dev.to/ythouma/treating-eu-ai-act-compliance-as-code-a-cicd-approach-22j0</link>
      <guid>https://dev.to/ythouma/treating-eu-ai-act-compliance-as-code-a-cicd-approach-22j0</guid>
      <description>&lt;p&gt;The EU AI Act's transparency obligations (Article 50) became enforceable on August 2, 2026. If you're shipping AI features into the EU, that's not a future date to plan around anymore, it's now.&lt;/p&gt;

&lt;p&gt;Most teams still handle this the way we handled security compliance in 2015: a spreadsheet, a legal review, and a PDF nobody opens again until the next audit. That doesn't scale, and it doesn't fit how software actually gets built and shipped continuously.&lt;/p&gt;

&lt;h2&gt;
  
  
  What if compliance was a build step, not a document?
&lt;/h2&gt;

&lt;p&gt;That's the idea behind &lt;a href="https://github.com/opencomplai/opencomplai" rel="noopener noreferrer"&gt;OpenComplAI&lt;/a&gt;, an open-source project I've been building: EU AI Act risk classification and compliance checks that run in your pipeline, the same way you'd run a security scanner or a linter.&lt;/p&gt;

&lt;h2&gt;
  
  
  How it works
&lt;/h2&gt;

&lt;p&gt;The core is a deterministic, rule-based risk engine, no ML inference involved in the compliance decision itself (the dependency list is scanned in CI specifically to enforce that). It's Python underneath (Pydantic v2 for the data models, Typer/Rich for the CLI), with a small set of services behind it:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;a Gateway API (Node/TypeScript) for request routing&lt;/li&gt;
&lt;li&gt;a Risk Engine that runs the classification logic&lt;/li&gt;
&lt;li&gt;an Evidence Vault for immutable, content-addressed audit trails&lt;/li&gt;
&lt;li&gt;a Doc Generator that produces Annex IV-format compliance dossiers&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Quickstart
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pip &lt;span class="nb"&gt;install &lt;/span&gt;opencomplai
opencomplai init &lt;span class="nt"&gt;--system-id&lt;/span&gt; my-model &lt;span class="nt"&gt;--intended-purpose&lt;/span&gt; &lt;span class="s2"&gt;"customer support chatbot"&lt;/span&gt;
opencomplai check
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;There's also a zero-setup discovery mode that never fails your build, useful for figuring out where you stand before you gate anything:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;opencomplai scan &lt;span class="nt"&gt;--quick&lt;/span&gt; &lt;span class="nb"&gt;.&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And a pre-commit hook if you want the check earlier than CI:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;repo&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;https://github.com/opencomplai/opencomplai&lt;/span&gt;
  &lt;span class="na"&gt;rev&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;v0.1.2&lt;/span&gt;
  &lt;span class="na"&gt;hooks&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;id&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;opencomplai-quick-scan&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  What it actually checks
&lt;/h2&gt;

&lt;p&gt;The interactive checker (&lt;code&gt;opencomplai checker --web&lt;/code&gt;, or &lt;code&gt;--local&lt;/code&gt; for a fully offline version) walks through whether the Act applies to your system at all, and if so, whether you're a provider or a deployer, since the obligations differ substantially. From there it handles risk-tier classification (including general-purpose AI model considerations) and generates the evidence trail you'd actually need to hand to an auditor.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where it stands
&lt;/h2&gt;

&lt;p&gt;It's early. Community edition is AGPL-3.0; there's a commercial tier in the works for teams that want a hosted dashboard, SSO, and additional rule engines, but the core compliance engine is fully open.&lt;/p&gt;

&lt;p&gt;I'd genuinely value feedback from anyone who has done EU AI Act conformity work manually: what parts of that process actually generalize into rules, and what still needs a human in the loop? Issues, PRs, and just general "here's what we ran into" reports are all welcome.&lt;/p&gt;

&lt;p&gt;Repo: &lt;a href="https://github.com/opencomplai/opencomplai" rel="noopener noreferrer"&gt;https://github.com/opencomplai/opencomplai&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>opensource</category>
      <category>compliance</category>
      <category>devops</category>
    </item>
  </channel>
</rss>
