umer-wasim Claude Opus 5.5 commited on
Commit
4ce1368
·
verified ·
1 Parent(s): fc0224b

Results: model-vs-expert card, verified AI Act key dates, Built by Devseis section

Browse files

- 'What the model can't do — and what an expert does' side-by-side card
- EU AI Act key-dates timeline built from the OJ texts (Reg 2024/1689 Art 111/113; Reg 2026/1744): past/next markers computed from today's date, Omnibus changes flagged (high-risk Annex III → 2 Dec 2027, Annex I → 2 Aug 2028); shareable #dates link; linked from lesson 2
- 'Built by Devseis' section (services, awards, accredited training, founder, free-call CTA, links to Nox, datasets and the collection) at the end of Results and Story

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

Files changed (1) hide show
  1. index.html +130 -1
index.html CHANGED
@@ -349,6 +349,42 @@
349
  .ps-note{font-size:9.5pt;color:#444;border:1px solid #ddd;padding:8px 10px;margin-top:14px;}
350
  .ps-foot{margin-top:18px;font-size:9pt;color:#666;border-top:1px solid #ccc;padding-top:8px;}
351
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
352
  /* consent banner: not a wall — the page stays usable; "Decline" is as easy as "Accept" */
353
  .consent{position:fixed;left:16px;right:16px;bottom:16px;z-index:60;max-width:560px;margin:0 auto;background:var(--panel);border:1px solid var(--border);
354
  border-radius:16px;box-shadow:var(--shadow);padding:16px 18px;font-size:13.5px;}
@@ -499,6 +535,69 @@
499
  </div>
500
  <p class="fine" style="margin-top:12px;">Check it yourself: <a href="https://huggingface.co/Devseis/devseis-ai-act-classifier-v5" target="_blank" rel="noopener">model &amp; card</a> · <a href="https://huggingface.co/datasets/Devseis/devseis-ai-act-classifier-v5-data" target="_blank" rel="noopener">training &amp; test data</a> · <a href="https://huggingface.co/Devseis/devseis-ai-act-classifier-v5/tree/main/evaluation" target="_blank" rel="noopener">full evaluation reports</a> · <a href="https://huggingface.co/Devseis/eu-ai-act-classifier-experiment" target="_blank" rel="noopener">earlier versions</a></p>
501
  </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
502
  </section>
503
 
504
  <!-- ================= TAB 3: STORY ================= -->
@@ -507,6 +606,7 @@
507
  <h2 class="section-title">Five versions, three wrong turns, one honest result</h2>
508
  <p class="lead">What we tried, what happened, and what each step taught us �� including the mistakes.</p>
509
  <div class="timeline" id="timeline"></div>
 
510
  </section>
511
 
512
  <!-- ================= TAB 4: LEARN ================= -->
@@ -724,6 +824,7 @@
724
  if (h.startsWith("learn")) { const n = parseInt(h.split("-")[1], 10); showTab("learn"); renderLesson(isNaN(n) ? currentLesson : n); return; }
725
  if (h.startsWith("story")) { showTab("story", { scrollTo: h.includes("-") ? "ch-" + h.split("-")[1] : null }); return; }
726
  if (h === "results") { showTab("results"); return; }
 
727
  showTab("check");
728
  }
729
  window.addEventListener("hashchange", route);
@@ -921,6 +1022,34 @@
921
  runPart1(text, results.run); runPart2(text, results.run);
922
  });
923
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
924
  // ================= TAB 2: tier bars =================
925
  const BARS = [["Prohibited", 0.98, "var(--danger)"], ["Limited risk", 0.889, "var(--info)"], ["High risk", 0.77, "var(--warn)"], ["Minimal risk", 0.684, "var(--good)"]];
926
  $("tierBars").innerHTML = BARS.map(([n, v, c]) =>
@@ -1026,7 +1155,7 @@
1026
  <div class="ex-row"><span class="txt"><b>${T("minimal risk", "minimal risk")}</b> — no special duties. Example: a movie recommender, a spam filter.</span>${pill("minimal_risk")}</div>
1027
  </div></div>
1028
  <p>There's also a separate track for ${T("GPAI")} — big general-purpose models that others build on. Those duties fall on the company that makes the model.</p>
1029
- <div class="callout tip"><span class="ctitle">Dates matter</span><p>New bans on AI that creates non-consensual intimate images or child sexual abuse material were added by the "AI Omnibus" in 2026 and apply from 2 December 2026.</p></div>
1030
  <div class="widget" data-widget="sort"></div>`,
1031
  terms: ["prohibited", "high risk", "limited risk", "minimal risk", "GPAI"],
1032
  quiz: { q: "A customer-service chatbot that talks to the public. Which tier?", opts: ["Prohibited", "High risk", "Limited risk", "Minimal risk"], a: 2, why: "People must be told they're talking to an AI (Article 50) — that's limited risk." } },
 
349
  .ps-note{font-size:9.5pt;color:#444;border:1px solid #ddd;padding:8px 10px;margin-top:14px;}
350
  .ps-foot{margin-top:18px;font-size:9pt;color:#666;border-top:1px solid #ccc;padding-top:8px;}
351
 
352
+ /* expert vs model */
353
+ .vs{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
354
+ @media (max-width:640px){.vs{grid-template-columns:1fr;}}
355
+ .vs-col{border-radius:14px;padding:14px 16px;border:1px solid var(--border);background:var(--panel);font-size:13.5px;}
356
+ .vs-col ul{margin:8px 0 0;padding-left:18px;} .vs-col li{margin-bottom:6px;}
357
+ .vs-model{border-color:var(--warn-border);} .vs-expert{border-color:var(--good-border);background:var(--good-soft);}
358
+ .vs-tag{font-weight:700;font-size:14px;}
359
+ /* key dates */
360
+ .dates{list-style:none;margin:0;padding:0;border-left:2px solid var(--border);margin-left:8px;}
361
+ .dates li{position:relative;padding:0 0 14px 20px;}
362
+ .dates li::before{content:"";position:absolute;left:-7px;top:5px;width:12px;height:12px;border-radius:50%;background:var(--panel);border:2px solid var(--border);}
363
+ .dates li.past::before{background:var(--muted);border-color:var(--muted);}
364
+ .dates li.next::before{background:var(--accent);border-color:var(--accent);}
365
+ .dates .d{font-weight:700;font-variant-numeric:tabular-nums;}
366
+ .dates li.past .d{color:var(--muted);}
367
+ .dates .what{display:block;font-size:13.5px;margin-top:2px;}
368
+ .dates li.past .what{color:var(--muted);}
369
+ .dates .tagx{display:inline-block;font-size:11px;font-weight:700;padding:1px 8px;border-radius:999px;margin-left:6px;vertical-align:1px;}
370
+ .tag-next{background:var(--accent-soft);color:var(--accent);border:1px solid var(--accent-border);}
371
+ .tag-changed{background:var(--warn-soft);color:var(--warn);border:1px solid var(--warn-border);}
372
+ .tag-done{background:var(--chip-bg);color:var(--muted);border:1px solid var(--border);}
373
+ /* Devseis block */
374
+ .devseis{background:var(--panel);border:1px solid var(--border);border-radius:16px;padding:20px;}
375
+ .svc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;}
376
+ @media (max-width:760px){.svc-grid{grid-template-columns:repeat(2,1fr);}}
377
+ @media (max-width:420px){.svc-grid{grid-template-columns:1fr;}}
378
+ .svc{background:var(--panel-2);border:1px solid var(--border);border-radius:12px;padding:10px 12px;font-size:13px;}
379
+ .svc b{display:block;font-size:13.5px;margin-bottom:2px;} .svc span{color:var(--muted);}
380
+ .badges{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px;}
381
+ .badge{font-size:12.5px;font-weight:600;padding:5px 11px;border-radius:999px;background:var(--chip-bg);border:1px solid var(--border);}
382
+ .more-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;}
383
+ @media (max-width:760px){.more-grid{grid-template-columns:repeat(2,1fr);}}
384
+ @media (max-width:420px){.more-grid{grid-template-columns:1fr;}}
385
+ .more{display:block;text-decoration:none;color:var(--text);background:var(--panel-2);border:1px solid var(--border);border-radius:12px;padding:10px 12px;font-size:12.5px;}
386
+ .more:hover{border-color:var(--accent-border);}
387
+ .more b{display:block;font-size:13.5px;margin-bottom:2px;} .more span{color:var(--muted);}
388
  /* consent banner: not a wall — the page stays usable; "Decline" is as easy as "Accept" */
389
  .consent{position:fixed;left:16px;right:16px;bottom:16px;z-index:60;max-width:560px;margin:0 auto;background:var(--panel);border:1px solid var(--border);
390
  border-radius:16px;box-shadow:var(--shadow);padding:16px 18px;font-size:13.5px;}
 
535
  </div>
536
  <p class="fine" style="margin-top:12px;">Check it yourself: <a href="https://huggingface.co/Devseis/devseis-ai-act-classifier-v5" target="_blank" rel="noopener">model &amp; card</a> · <a href="https://huggingface.co/datasets/Devseis/devseis-ai-act-classifier-v5-data" target="_blank" rel="noopener">training &amp; test data</a> · <a href="https://huggingface.co/Devseis/devseis-ai-act-classifier-v5/tree/main/evaluation" target="_blank" rel="noopener">full evaluation reports</a> · <a href="https://huggingface.co/Devseis/eu-ai-act-classifier-experiment" target="_blank" rel="noopener">earlier versions</a></p>
537
  </div>
538
+
539
+ <div class="block">
540
+ <h3 class="section-title" style="font-size:16px;">What the model can't do — and what an expert does</h3>
541
+ <p class="sub">The model is useful for a first look. The decisions that matter need someone who can ask questions.</p>
542
+ <div class="vs">
543
+ <div class="vs-col vs-model"><span class="vs-tag">🤖 The model</span><ul>
544
+ <li>Reads only the words you typed</li>
545
+ <li>Gives one label, even when several rules apply at once</li>
546
+ <li>Can't ask who uses the system, for what purpose, or with which safeguards</li>
547
+ <li>Misses exceptions, such as the Art 6(3) derogations or the police-only scope of some bans</li>
548
+ <li>Learned from synthetic examples; weaker on unusual wording</li>
549
+ <li>Takes no responsibility for its answer</li></ul></div>
550
+ <div class="vs-col vs-expert"><span class="vs-tag">🧑‍⚖️ A Devseis expert</span><ul>
551
+ <li>Asks the questions that decide the tier: intended purpose, deployer, data, affected people</li>
552
+ <li>Checks the exceptions, derogations and the dates that apply to you</li>
553
+ <li>Maps the overlaps with GDPR (DPIA), NIS2, DORA, the Cyber Resilience Act and product-safety law</li>
554
+ <li>Gives a documented classification you can defend to a regulator or customer</li>
555
+ <li>Turns it into a costed action plan: risk management, documentation, human oversight, conformity assessment</li>
556
+ <li>Trains your team as an accredited training provider</li></ul></div>
557
+ </div>
558
+ </div>
559
+
560
+ <div class="block" id="dates">
561
+ <h3 class="section-title" style="font-size:16px;">EU AI Act — key dates</h3>
562
+ <p class="sub">From the Official Journal texts of the AI Act (Regulation (EU) 2024/1689, Art 111 and 113) and the AI Omnibus (Regulation (EU) 2026/1744).
563
+ Dates the Omnibus changed are marked.</p>
564
+ <ol class="dates" id="datesList"></ol>
565
+ <p class="fine" style="margin-top:8px">Simplified overview, not legal advice. Which dates apply to your system depends on its role and category.</p>
566
+ </div>
567
+
568
+ <div class="block devseis" id="devseisBlock">
569
+ <p class="eyebrow">Built by Devseis</p>
570
+ <h3 class="section-title" style="font-size:18px;">Cybersecurity, data protection and AI governance — Luxembourg 🇱🇺</h3>
571
+ <p class="sub" style="margin-bottom:12px">Devseis is a Luxembourg-based consultancy and accredited training provider, founded and directed by Dr. Muhammad Umer Wasim (PhD).
572
+ We help SMEs, startups and technology companies assess and reduce cyber and compliance risk, and explain it in plain language for management.</p>
573
+ <div class="svc-grid">
574
+ <div class="svc"><b>EU AI Act readiness</b><span>Classification, gap analysis, compliance plan</span></div>
575
+ <div class="svc"><b>GDPR</b><span>CNPD-CARPA compliance, RoPA, DPIA</span></div>
576
+ <div class="svc"><b>ISO/IEC 27001</b><span>ISMS implementation and certification readiness</span></div>
577
+ <div class="svc"><b>NIS2 · DORA · CRA</b><span>Regulatory readiness</span></div>
578
+ <div class="svc"><b>Risk assessment</b><span>MONARC and EBIOS Risk Manager</span></div>
579
+ <div class="svc"><b>Technical audits</b><span>Architecture, code, configuration, penetration testing of SaaS and AI systems</span></div>
580
+ </div>
581
+ <div class="badges">
582
+ <span class="badge">🏆 Cyber4Growth Laureate 2021</span>
583
+ <span class="badge">🏅 EU Cybersecurity STARtup Award finalist 2021</span>
584
+ <span class="badge">🚀 Fit 4 Start 2022</span>
585
+ <span class="badge">🎓 Accredited training provider</span>
586
+ </div>
587
+ <div class="cta-btns" style="justify-content:flex-start;margin-top:14px">
588
+ <a class="primary devseis-call" href="mailto:umer.wasim@devseis.com?subject=Free%20AI%20Act%20readiness%20call%20(via%20Caveat)">📅 Book a free 30-min AI Act readiness call</a>
589
+ <a class="ghost" href="https://devseis.com" target="_blank" rel="noopener" style="text-decoration:none">🌐 devseis.com</a>
590
+ </div>
591
+ <h4 style="margin:18px 0 8px;font-size:13px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)">More from Devseis on Hugging Face</h4>
592
+ <div class="more-grid">
593
+ <a class="more" href="https://huggingface.co/spaces/Devseis/Nox" target="_blank" rel="noopener"><b>🤖 Nox</b><span>A free general-purpose AI assistant on free-tier infrastructure</span></a>
594
+ <a class="more" href="https://huggingface.co/datasets/Devseis/eu-ai-act-risk-classification" target="_blank" rel="noopener"><b>📊 EU AI Act risk classification</b><span>Reference table of use cases, tiers and citations</span></a>
595
+ <a class="more" href="https://huggingface.co/datasets/Devseis/nis2-dora-cra-applicability" target="_blank" rel="noopener"><b>📋 NIS2 / DORA / CRA applicability</b><span>Which EU cyber law applies, by sector and product</span></a>
596
+ <a class="more" href="https://huggingface.co/datasets/Devseis/gdpr-ropa-dpia-templates" target="_blank" rel="noopener"><b>📝 GDPR RoPA & DPIA templates</b><span>Article 30 and Article 35 field templates</span></a>
597
+ <a class="more" href="https://huggingface.co/datasets/Devseis/devseis-ai-act-classifier-v5-data" target="_blank" rel="noopener"><b>🧪 Classifier v5 data</b><span>327 law-grounded scenarios behind this page</span></a>
598
+ <a class="more" href="https://huggingface.co/collections/Devseis/eu-ai-act-and-ai-governance-toolkit-curated-by-devseis-6aba57c0c9f48f5baf62d3be" target="_blank" rel="noopener"><b>🗂️ AI governance toolkit</b><span>Curated collection of datasets and models</span></a>
599
+ </div>
600
+ </div>
601
  </section>
602
 
603
  <!-- ================= TAB 3: STORY ================= -->
 
606
  <h2 class="section-title">Five versions, three wrong turns, one honest result</h2>
607
  <p class="lead">What we tried, what happened, and what each step taught us �� including the mistakes.</p>
608
  <div class="timeline" id="timeline"></div>
609
+ <div id="devseisStory"></div>
610
  </section>
611
 
612
  <!-- ================= TAB 4: LEARN ================= -->
 
824
  if (h.startsWith("learn")) { const n = parseInt(h.split("-")[1], 10); showTab("learn"); renderLesson(isNaN(n) ? currentLesson : n); return; }
825
  if (h.startsWith("story")) { showTab("story", { scrollTo: h.includes("-") ? "ch-" + h.split("-")[1] : null }); return; }
826
  if (h === "results") { showTab("results"); return; }
827
+ if (h === "dates") { showTab("results", { scrollTo: "dates" }); return; }
828
  showTab("check");
829
  }
830
  window.addEventListener("hashchange", route);
 
1022
  runPart1(text, results.run); runPart2(text, results.run);
1023
  });
1024
 
1025
+ // ================= TAB 2: key dates (verified against the Official Journal texts) =================
1026
+ const DATES = [
1027
+ ["2024-08-01", "The AI Act enters into force (Regulation (EU) 2024/1689)."],
1028
+ ["2025-02-02", "Bans on prohibited practices (Art 5) and AI-literacy duties apply."],
1029
+ ["2025-08-02", "Rules for general-purpose AI models, governance and penalties apply."],
1030
+ ["2026-07-27", "The AI Omnibus (Regulation (EU) 2026/1744) enters into force."],
1031
+ ["2026-08-02", "General date of application, including the Art 50 transparency duties (chatbots, deepfakes, AI-generated content)."],
1032
+ ["2026-12-02", "New bans apply: AI that generates non-consensual intimate imagery or child sexual abuse material (Art 5(1)(ba), (bb)). Generative AI placed on the market before 2 Aug 2026 must mark its outputs (Art 50(2)).", "added by the AI Omnibus"],
1033
+ ["2027-08-02", "General-purpose AI models placed on the market before 2 Aug 2025 must comply."],
1034
+ ["2027-12-02", "High-risk obligations apply to Annex III systems (e.g. hiring, credit scoring, education, biometrics).", "changed by the Omnibus — was 2 Aug 2026"],
1035
+ ["2028-08-02", "High-risk obligations apply to AI in products under Annex I (e.g. medical devices, machinery, toys).", "changed by the Omnibus — was 2 Aug 2027"],
1036
+ ["2030-08-02", "High-risk AI systems already used by public authorities must comply."],
1037
+ ];
1038
+ (function renderDates() {
1039
+ const today = new Date().toISOString().slice(0, 10);
1040
+ const nextIdx = DATES.findIndex(([d]) => d > today);
1041
+ const fmt = (d) => new Date(d + "T00:00:00").toLocaleDateString("en-GB", { day: "numeric", month: "short", year: "numeric" });
1042
+ $("datesList").innerHTML = DATES.map(([d, what, changed], k) => {
1043
+ const cls = d <= today ? "past" : k === nextIdx ? "next" : "";
1044
+ const tags = (d <= today ? '<span class="tagx tag-done">in effect</span>' : k === nextIdx ? '<span class="tagx tag-next">next</span>' : "") +
1045
+ (changed ? `<span class="tagx tag-changed">${changed}</span>` : "");
1046
+ return `<li class="${cls}"><span class="d">${fmt(d)}</span>${tags}<span class="what">${what}</span></li>`;
1047
+ }).join("");
1048
+ })();
1049
+ // the Devseis block also closes the Story tab
1050
+ $("devseisStory").appendChild($("devseisBlock").cloneNode(true)).removeAttribute("id");
1051
+ document.querySelectorAll(".devseis-call").forEach((a) => a.addEventListener("click", () => track("cta_book_call_devseis")));
1052
+
1053
  // ================= TAB 2: tier bars =================
1054
  const BARS = [["Prohibited", 0.98, "var(--danger)"], ["Limited risk", 0.889, "var(--info)"], ["High risk", 0.77, "var(--warn)"], ["Minimal risk", 0.684, "var(--good)"]];
1055
  $("tierBars").innerHTML = BARS.map(([n, v, c]) =>
 
1155
  <div class="ex-row"><span class="txt"><b>${T("minimal risk", "minimal risk")}</b> — no special duties. Example: a movie recommender, a spam filter.</span>${pill("minimal_risk")}</div>
1156
  </div></div>
1157
  <p>There's also a separate track for ${T("GPAI")} — big general-purpose models that others build on. Those duties fall on the company that makes the model.</p>
1158
+ <div class="callout tip"><span class="ctitle">Dates matter</span><p>New bans on AI that creates non-consensual intimate images or child sexual abuse material were added by the "AI Omnibus" in 2026 and apply from 2 December 2026. See all the <a href="#dates">key dates</a>, including the high-risk deadlines the Omnibus moved.</p></div>
1159
  <div class="widget" data-widget="sort"></div>`,
1160
  terms: ["prohibited", "high risk", "limited risk", "minimal risk", "GPAI"],
1161
  quiz: { q: "A customer-service chatbot that talks to the public. Which tier?", opts: ["Prohibited", "High risk", "Limited risk", "Minimal risk"], a: 2, why: "People must be told they're talking to an AI (Article 50) — that's limited risk." } },