<?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: Ekioo</title>
    <description>The latest articles on DEV Community by Ekioo (@ekioo).</description>
    <link>https://dev.to/ekioo</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%2F3909457%2F323e0c57-5ab5-458b-b4ee-80d37faf28b4.png</url>
      <title>DEV Community: Ekioo</title>
      <link>https://dev.to/ekioo</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ekioo"/>
    <language>en</language>
    <item>
      <title>From Developer to AI Manager — What This Transition Actually Changes</title>
      <dc:creator>Ekioo</dc:creator>
      <pubDate>Sat, 04 Jul 2026 10:31:10 +0000</pubDate>
      <link>https://dev.to/ekioo/from-developer-to-ai-manager-what-this-transition-actually-changes-511a</link>
      <guid>https://dev.to/ekioo/from-developer-to-ai-manager-what-this-transition-actually-changes-511a</guid>
      <description>&lt;p&gt;The profession has been through a transformation of this magnitude before: DevOps. In the 2010s, the walls between development and operations came down. Developers had to integrate infrastructure, continuous deployment, and observability into their scope. It wasn't a threat — it was an expansion of the craft that produced more complete engineers. The AI wave follows the same logic, but goes further and faster.&lt;/p&gt;

&lt;p&gt;Three live projects feed this piece: &lt;a href="https://bloomii.fr/" rel="noopener noreferrer"&gt;Bloomii&lt;/a&gt;, a constructive-journalism media outlet covering social and environmental alternatives; &lt;a href="https://kalceo.fr/" rel="noopener noreferrer"&gt;Kalceo&lt;/a&gt;, a regulatory B2B SaaS for French construction contractors; and &lt;a href="https://ekioo.com/en" rel="noopener noreferrer"&gt;Ekioo&lt;/a&gt;, the agent-fleet R&amp;amp;D project behind this article. All three run on &lt;a href="https://kittyclaw.dev/" rel="noopener noreferrer"&gt;KittyClaw&lt;/a&gt;, a kanban orchestrator for AI agents.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Shift in Value
&lt;/h2&gt;

&lt;p&gt;What changes fundamentally is where value sits in the development process.&lt;/p&gt;

&lt;p&gt;Writing code has always had two components: reasoning about the problem, and translating that reasoning into machine instructions. The first component is what justifies a good developer's salary. The second is what AI can now take on — CI/CD pipelines, security audits, naming conventions, documentation, standard unit tests.&lt;/p&gt;

&lt;p&gt;The consequence isn't that developers become irrelevant. It's that the time spent on mechanical translation shrinks, and the time spent on problem definition grows. Specification quality has become the primary quality driver of the final deliverable: a vague spec produces plausible but incorrect code; a precise spec produces code that solves the actual problem.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Central Risk: The Briefing
&lt;/h2&gt;

&lt;p&gt;A poorly directed AI can travel very far in the wrong direction before anyone notices. Unlike a human developer who hesitates, asks questions, and naturally surfaces ambiguities, an agent continues until the task is done — or until it's technically blocked.&lt;/p&gt;

&lt;p&gt;This asymmetry imposes a new discipline: verify the specification is well understood before the agent starts, challenge intermediate output, ask for justification on implementation choices. And critically — identify what's better to handle directly. Some tasks are precise enough, sensitive enough, or fast enough that delegating them adds more overhead than value.&lt;/p&gt;

&lt;p&gt;The key skill is no longer "write good code fast." It's twofold: articulate the problem with enough precision for an AI to solve it correctly, and detect early when it drifts.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Management Infrastructure
&lt;/h2&gt;

&lt;p&gt;Managing a single agent on a single project is mentally tractable. Managing multiple agents in parallel across multiple projects is an infrastructure problem.&lt;/p&gt;

&lt;p&gt;Without structured visibility, supervision becomes approximate. You lose track of what's actually progressing, what's blocked, what's waiting for a human decision. That's where agents take unintended liberties — not out of malice, but in the absence of a clear counter-signal.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://kittyclaw.dev" rel="noopener noreferrer"&gt;KittyClaw&lt;/a&gt; was built specifically for this problem. Each ticket has a defined lifecycle, an explicit assignee, and complete action traceability. The board gives a synthetic view of each project's state: what's in progress, what's in review, what's blocked waiting for human validation. The difference between piloting with a dashboard and piloting blind is the same as the difference between instrument flight and visual flight rules.&lt;/p&gt;

&lt;h2&gt;
  
  
  What This Changes for Clients
&lt;/h2&gt;

&lt;p&gt;For a developer working on client engagements, this transformation has a direct impact on delivered value. Requirements analysis, decomposing work into coherent units, defining acceptance criteria — these determine the quality of the final deliverable more than execution speed does.&lt;/p&gt;

&lt;p&gt;A developer who has internalized this mode of working delivers not just faster, but with finer understanding of the problem and more rigorous verification capacity. Speed of execution becomes a consequence of clarity of thinking, not its substitute.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>philosophie</category>
      <category>coulisses</category>
    </item>
    <item>
      <title>Devlog — Bloomii at 40 Articles: What You Learn Running a Fully Autonomous Content Pipeline</title>
      <dc:creator>Ekioo</dc:creator>
      <pubDate>Tue, 30 Jun 2026 10:34:07 +0000</pubDate>
      <link>https://dev.to/ekioo/devlog-bloomii-at-40-articles-what-you-learn-running-a-fully-autonomous-content-pipeline-12f8</link>
      <guid>https://dev.to/ekioo/devlog-bloomii-at-40-articles-what-you-learn-running-a-fully-autonomous-content-pipeline-12f8</guid>
      <description>&lt;p&gt;Bloomii just hit 40 published articles. Five pillars, eight articles each, produced end-to-end by a pipeline of autonomous agents. It's a milestone I set as a target when the project launched — and I'm hitting it a month ahead of what I'd anticipated.&lt;/p&gt;

&lt;p&gt;This devlog isn't a press release. It's as honest a retrospective as I can write on what happened since I put this pipeline in motion.&lt;/p&gt;

&lt;p&gt;This piece documents &lt;a href="https://bloomii.fr/" rel="noopener noreferrer"&gt;Bloomii&lt;/a&gt;, one of the projects in the &lt;a href="https://ekioo.com/en" rel="noopener noreferrer"&gt;Ekioo&lt;/a&gt; agent-fleet R&amp;amp;D. Alongside &lt;a href="https://kalceo.fr/" rel="noopener noreferrer"&gt;Kalceo&lt;/a&gt; (regulatory B2B SaaS for construction contractors) and &lt;a href="https://kittyclaw.dev/" rel="noopener noreferrer"&gt;KittyClaw&lt;/a&gt; (the kanban orchestrator running all the agents), Ekioo documents how an autonomous AI agent fleet operates in production.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Pipeline, Briefly
&lt;/h2&gt;

&lt;p&gt;The Bloomii production chain looks like this: a &lt;code&gt;content-creator&lt;/code&gt; agent writes the article, a &lt;code&gt;qa-tester&lt;/code&gt; evaluates it on a rubric (editorial quality, structure, tone), a &lt;code&gt;fact-checker&lt;/code&gt; verifies every factual claim, then &lt;code&gt;lain&lt;/code&gt; validates before the &lt;code&gt;committer&lt;/code&gt; pushes content to production. Five links, zero human intervention between each — except when something breaks.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Works
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;The QA → correction → validation loop holds up.&lt;/strong&gt; First-pass rate sits around 75%: three articles out of four clear QA without a major rewrite. For the remaining 25%, the rewrite cycle stays short — one additional pass is usually enough. Final quality is high and consistent across pillars.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The fact-checker is the best architectural decision in the project.&lt;/strong&gt; Early versions of the &lt;code&gt;content-creator&lt;/code&gt; invented sources with perfect confidence — non-existent DOIs, misquoted studies, approximate dates. Since the fact-checker became mandatory and blocking, those errors disappear before publication. It's not an optional safeguard; it's a pipeline constraint. The quality of outgoing sources is now verifiable.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The balance across five pillars holds better than expected.&lt;/strong&gt; Ecology &amp;amp; Regeneration, Economy &amp;amp; Commons, Living Together, Well-being &amp;amp; Health, Ethical Technology — eight articles per pillar, no thematic drift. That's not trivial: without explicit editorial discipline in the &lt;code&gt;content-creator&lt;/code&gt; prompt, the pipeline would naturally over-represent the most documented subjects.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Breaks
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;The ChatGPT image quota (25 per day) has become the systemic bottleneck.&lt;/strong&gt; When several articles are in the pipeline simultaneously — which happens often since I manage five projects in parallel — image requests pile up and block each other. An article that's finished on the text side can sit waiting for an illustration for 24 to 48 hours. It's not a bug; it's a deliberate throttle to spread image costs over the month — but it creates real friction in the publication rhythm.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Infinite loops in the "assignee-resume" automation.&lt;/strong&gt; The automation is supposed to restart a blocked agent. In some cases, it restarts it in a loop — the agent gets re-dispatched before it's even had time to process its blocked state. The fix is adding an explicit guard in the automation: only restart if the ticket hasn't been modified in the last N minutes. It's a classic orchestration bug, not an AI problem, but you need to see it happen to realize it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The English version is never produced spontaneously.&lt;/strong&gt; The &lt;code&gt;content-creator&lt;/code&gt; delivers the FR version, considers its job done, and moves on. The EN version has to be created manually each time — either by me or by a dedicated agent triggered in a second pass. It's not a disaster, but it's constant friction I haven't properly automated yet.&lt;/p&gt;

&lt;h2&gt;
  
  
  What We Take Away
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;The sourcing constraint is the best decision I made.&lt;/strong&gt; Making the fact-checker blocking — not optional, not advisory — forces every agent to justify every claim. It slows down production slightly, but the quality coming out is incomparably better. When you're publishing on topics like open-source biology or digital commons, rigor isn't negotiable.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Persistent memory per agent works.&lt;/strong&gt; Each Bloomii agent has a &lt;code&gt;memory.md&lt;/code&gt; file that accumulates lessons learned with confidence counters. After 40 articles, these files have become implicit style guides — they capture past errors, editorial preferences, formulations that cleared QA and ones that got rejected. It's a form of institutional learning without fine-tuning.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Running five projects with one CEO agent creates cognitive load.&lt;/strong&gt; Not for the agents — for me. Switching from Bloomii to Aekan to KittyClaw to VizMail in the same day means constantly reloading context. The agents have their worktree and their memory. I'm the one accumulating context-switching overhead.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's Next
&lt;/h2&gt;

&lt;p&gt;40 articles is a floor, not a ceiling. The Ethical Technology pillar remains the hardest to source — recent studies on the real impact of digital tools on well-being are rare and often contradictory. That's where the fact-checker works hardest.&lt;/p&gt;

&lt;p&gt;The next architectural decision: automate EN production by making the &lt;code&gt;content-creator&lt;/code&gt; a bilingual agent from the first pass. That will cut the number of passes in half and eliminate the current friction.&lt;/p&gt;

</description>
      <category>bloomii</category>
      <category>ai</category>
      <category>agents</category>
      <category>coulisses</category>
    </item>
    <item>
      <title>Agentic System Hygiene — What You Learn the Hard Way</title>
      <dc:creator>Ekioo</dc:creator>
      <pubDate>Thu, 25 Jun 2026 17:23:52 +0000</pubDate>
      <link>https://dev.to/ekioo/agentic-system-hygiene-what-you-learn-the-hard-way-fdh</link>
      <guid>https://dev.to/ekioo/agentic-system-hygiene-what-you-learn-the-hard-way-fdh</guid>
      <description>&lt;p&gt;Agentic systems have a property that sneaks up on you: they spiral easily, and the damage is often invisible until suddenly it isn't. After several months running projects with autonomous agents in parallel, I've identified three recurring patterns. None of them are obvious in advance. All of them are obvious in retrospect.&lt;/p&gt;

&lt;p&gt;Three live projects feed this piece: &lt;a href="https://bloomii.fr/" rel="noopener noreferrer"&gt;Bloomii&lt;/a&gt;, a constructive-journalism media outlet covering social and environmental alternatives; &lt;a href="https://kalceo.fr/" rel="noopener noreferrer"&gt;Kalceo&lt;/a&gt;, a regulatory B2B SaaS for French construction contractors; and &lt;a href="https://ekioo.com/en" rel="noopener noreferrer"&gt;Ekioo&lt;/a&gt;, the agent-fleet R&amp;amp;D project behind this article. All three run on &lt;a href="https://kittyclaw.dev/" rel="noopener noreferrer"&gt;KittyClaw&lt;/a&gt;, a kanban orchestrator for AI agents.&lt;/p&gt;

&lt;h2&gt;
  
  
  Trap 1 — Uncontrolled Parallelism
&lt;/h2&gt;

&lt;p&gt;The temptation is real. While an agent handles one task, why not launch another? And then another. Agents don't get tired, they don't wait for meetings, they work without apparent friction.&lt;/p&gt;

&lt;p&gt;The problem shows up at merge time.&lt;/p&gt;

&lt;p&gt;Each agent modifies files, sometimes the same ones. Each worktree diverges from the trunk at its own pace. When the time comes to integrate everything back into master, conflicts pile up. Some changes contradict each other: one agent restructured something the other assumed was intact.&lt;/p&gt;

&lt;p&gt;I tested two approaches with KittyClaw: all development directly on main, or one worktree per ticket. Neither is perfect. The first creates real-time interference. The second moves the problem to merge time.&lt;/p&gt;

&lt;p&gt;The lesson: on a single project, don't go too fast. Give each development time to be evaluated through actual use before launching others. When the project has diverged too much, taking back control costs more than starting from a clean base.&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%2Fbjvjgj19m43329nziz6a.webp" 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%2Fbjvjgj19m43329nziz6a.webp" alt="Healthy agentic systems architecture" width="800" height="566"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Trap 2 — Memory That Resists Pivots
&lt;/h2&gt;

&lt;p&gt;Multi-agent systems with persistent memory have a notable advantage: agents learn and improve across runs. They also have a symmetric disadvantage: they resist change.&lt;/p&gt;

&lt;p&gt;When a process is deeply embedded in skill and memory files, changing it isn't enough. The old behavior keeps surfacing. The agent reads the new instructions but also the old memories, and ends up with two contradictory mental models. Sometimes it picks the wrong one. Sometimes it tries to reconcile both and produces something incoherent.&lt;/p&gt;

&lt;p&gt;The practical consequence: mixed conventions in the code, scripts of uncertain status, regressive behavior after every process update. Entropy accumulates quietly.&lt;/p&gt;

&lt;p&gt;The solution is to treat memory and skill files with the same rigor as source code. Actively delete what's obsolete. Don't accumulate. Version process changes clearly, with a date and explanation, so agents understand the old path is closed.&lt;/p&gt;

&lt;h2&gt;
  
  
  Trap 3 — Flying Blind
&lt;/h2&gt;

&lt;p&gt;The cognitive cost of multi-project management is real — but it's compounded by an instrumentation problem.&lt;/p&gt;

&lt;p&gt;An AI produces faster than a human can follow. When multiple agents work in parallel across multiple projects, the true state of the system becomes opaque quickly: what's actually in progress? What's blocked waiting for a decision? Which open branches haven't been reviewed yet? Without clear answers to these questions, supervision becomes reactive rather than proactive — problems surface when they're already expensive to ignore.&lt;/p&gt;

&lt;p&gt;The solution isn't to slow the agents down. It's to equip yourself with navigation instruments.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Dashboards&lt;/strong&gt; that give an aggregated view of each project: tickets in progress, tickets blocked, tickets in review, weekly progress rate. A &lt;strong&gt;roadmap&lt;/strong&gt; that sets priorities and prevents agents from drifting toward unplanned areas. &lt;strong&gt;Metrics&lt;/strong&gt; that flag anomalies: a ticket stuck in progress too long, a project that's stopped moving, a cluster of blockers on the same task type.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://kittyclaw.dev" rel="noopener noreferrer"&gt;KittyClaw&lt;/a&gt; provides this visibility natively: per-project board, multi-project overview, complete traceability of every agent action. The difference between piloting with these instruments and piloting without is the same as the difference between instrument flight and flying by sight.&lt;/p&gt;

&lt;h2&gt;
  
  
  What This Changes in Practice
&lt;/h2&gt;

&lt;p&gt;These three traps share a common structure: they appear when the agentic system evolves faster than the governance infrastructure around it. Parallelism without coordination, memory without cleanup, production without visibility — the same problem in three different forms.&lt;/p&gt;

&lt;p&gt;Hygiene in agentic systems is defining early the rules and instruments that keep the system under control. Not after the damage is visible — before the agents' speed exceeds the human capacity to supervise.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>kittyclaw</category>
      <category>tooling</category>
      <category>coulisses</category>
    </item>
    <item>
      <title>4 Products, 1 CEO Agent — Multi-Project Orchestration with Lain</title>
      <dc:creator>Ekioo</dc:creator>
      <pubDate>Thu, 25 Jun 2026 17:06:30 +0000</pubDate>
      <link>https://dev.to/ekioo/4-products-1-ceo-agent-multi-project-orchestration-with-lain-4jkm</link>
      <guid>https://dev.to/ekioo/4-products-1-ceo-agent-multi-project-orchestration-with-lain-4jkm</guid>
      <description>&lt;p&gt;Tuesday morning, 9 AM. Lain does its hourly round. It opens the four KittyClaw boards — Bloomii, Kalceo, VizMail, Ekioo — evaluates Todo tickets with an assignee, and dispatches. A content-writer starts on a Bloomii article while a programmer closes a VizMail bug. Simultaneously, a qa-tester on Kalceo launches a test suite. I haven't manually triggered anything. I'm drinking my coffee.&lt;/p&gt;

&lt;p&gt;This is the current state of the system. Here's how it's built, what it actually changes, and what still breaks.&lt;/p&gt;

&lt;p&gt;Three live projects feed this piece: &lt;a href="https://bloomii.fr/" rel="noopener noreferrer"&gt;Bloomii&lt;/a&gt;, a constructive-journalism media outlet covering social and environmental alternatives; &lt;a href="https://kalceo.fr/" rel="noopener noreferrer"&gt;Kalceo&lt;/a&gt;, a regulatory B2B SaaS for French construction contractors; and &lt;a href="https://ekioo.com/en" rel="noopener noreferrer"&gt;Ekioo&lt;/a&gt;, the agent-fleet R&amp;amp;D project behind this article. All three run on &lt;a href="https://kittyclaw.dev/" rel="noopener noreferrer"&gt;KittyClaw&lt;/a&gt;, a kanban orchestrator for AI agents.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Structure: 4 Projects, 1 CEO
&lt;/h2&gt;

&lt;p&gt;Four active projects, each with its own fleet of specialized agents:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Bloomii&lt;/strong&gt; — Green Tech content site. Fleet: content-writer, fact-checker, evaluator, committer.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Kalceo&lt;/strong&gt; — BTP SaaS for contractors. Fleet: programmer, qa-tester, committer, content-writer.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;VizMail&lt;/strong&gt; — desktop mail client with semantic sorting. Fleet: programmer, qa-tester, committer.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;KittyClaw&lt;/strong&gt; — the kanban itself. Fleet: programmer, qa-tester, committer, evaluator.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Lain is not in any of these project fleets. It sits above them. Its role: hourly board review, agent dispatch, escalation to the owner when a ticket has been blocked too long. A CEO running on cron, not an agent that codes.&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%2Fekioo.com%2Fimages%2Fblog%2Fmulti-projet-lain-ceo-agent-schema.webp" 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%2Fekioo.com%2Fimages%2Fblog%2Fmulti-projet-lain-ceo-agent-schema.webp" alt="Lain CEO architecture — multi-project orchestration (Bloomii, Kalceo, VizMail, KittyClaw, Ekioo)" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Each fleet operates in complete isolation — separate git worktrees, persistent memory per agent per project. A Bloomii content-writer has no idea VizMail exists.&lt;/p&gt;

&lt;h2&gt;
  
  
  What It Changes
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;No manual context-switching.&lt;/strong&gt; This is the most concrete change. Before, switching from Bloomii to Kalceo meant reloading context: where were we, what were the priorities, who needed to do what. Now the ticket description carries the context. Lain reads it, dispatches the appropriate agent, the agent reads it in turn. Context-switching still exists — it's delegated.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Projects advance in parallel.&lt;/strong&gt; While a Bloomii article is being written, VizMail can merge 30 new tests, Kalceo can close 3 billing bugs, and Ekioo can post on X. This isn't sequential — it's concurrent.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The bottleneck shifts.&lt;/strong&gt; It's no longer development capacity but validation. I'm the only human in the loop. Every PR goes through me. When five tickets arrive in Review simultaneously — which happens — I'm the bottleneck, not the agents.&lt;/p&gt;

&lt;h2&gt;
  
  
  Real Numbers (as of 2026-05-13)
&lt;/h2&gt;

&lt;p&gt;This system has been running for several months. Current state by project:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Project&lt;/th&gt;
&lt;th&gt;Metric&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Bloomii&lt;/td&gt;
&lt;td&gt;40+ published articles, 5 balanced editorial pillars&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;KittyClaw&lt;/td&gt;
&lt;td&gt;~500 tickets processed, 12 active automations&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;VizMail&lt;/td&gt;
&lt;td&gt;642 automated tests, 150+ API endpoints&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Kalceo&lt;/td&gt;
&lt;td&gt;MVP in production, 2026 e-invoicing compliant&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;These numbers didn't come from a boosted sprint. They accumulate ticket by ticket, run by run, over months of steady cadence.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Still Breaks
&lt;/h2&gt;

&lt;p&gt;Honesty required — the system isn't perfect.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Infinite loops.&lt;/strong&gt; Some &lt;code&gt;resume&lt;/code&gt; automations re-trigger without a guard. An agent stuck in Blocked can be restarted indefinitely if the exit condition isn't properly wired in &lt;code&gt;automations.json&lt;/code&gt;. This still happens. Every new automation requires an explicit verification of the exit path.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Residual cognitive load on Lain.&lt;/strong&gt; Lain context-switches between projects at every round. Even if each dispatch decision is simple, the accumulation of projects and tickets to evaluate creates non-zero load. With 4 active projects it's manageable. With 8, it will become an architectural problem.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Memory read latency.&lt;/strong&gt; Every agent starts its run by reading its &lt;code&gt;memory.md&lt;/code&gt;. For an agent with a dense memory — the content-writer is at ~100 lines — this represents a fraction of context at session start. Memory is valuable, but it has a read cost we aren't measuring correctly yet.&lt;/p&gt;

&lt;h2&gt;
  
  
  What This Proves
&lt;/h2&gt;

&lt;p&gt;This isn't the most impressive technology. These are Claude agents reading tickets and committing code. The underlying architecture — KittyClaw as orchestrator, &lt;code&gt;automations.json&lt;/code&gt; as pipeline, &lt;code&gt;memory.md&lt;/code&gt; as persistent learning — isn't revolutionary. It's reproducible.&lt;/p&gt;

&lt;p&gt;What's hard to build is operational discipline: well-written tickets, clear context, consistent git workflow, maintained memory. An agent doesn't compensate for a vague ticket. Orchestration quality depends directly on backlog quality.&lt;/p&gt;

&lt;p&gt;If you're building something similar, start with one project, one fleet, one complete cycle: ticket → agent → PR → review. When that cycle runs without you, add the second project.&lt;/p&gt;

&lt;p&gt;Lain isn't magic. It's a well-configured agent running on a well-designed infrastructure. The difference between a setup that holds and one that derails is the rigor of the rules in &lt;code&gt;preamble.md&lt;/code&gt; — not the sophistication of the model.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>agents</category>
      <category>architecture</category>
      <category>kittyclaw</category>
    </item>
    <item>
      <title>The Fact-Checker: Last Defense Against Lying Agents</title>
      <dc:creator>Ekioo</dc:creator>
      <pubDate>Tue, 16 Jun 2026 09:06:39 +0000</pubDate>
      <link>https://dev.to/ekioo/the-fact-checker-last-defense-against-lying-agents-117</link>
      <guid>https://dev.to/ekioo/the-fact-checker-last-defense-against-lying-agents-117</guid>
      <description>&lt;p&gt;A table in a Kalceo technical sheet, clean and well-formatted. Row: "exceptional apprenticeship grant, levels 5 to 7: &lt;strong&gt;€5,000&lt;/strong&gt;". Citation: service-public.fr. A contractor reads this sheet, builds a profitability model, evaluates whether hiring an apprentice is viable, makes a decision.&lt;/p&gt;

&lt;p&gt;Except the real rate, verified on March 9, 2026 against form F23556 on service-public.fr, is:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;€4,500&lt;/strong&gt; for level 5 (BTS, DUT, BUT)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;€2,000&lt;/strong&gt; for levels 6 and 7 (Bachelor, Master)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Not €5,000. The gap can be the difference between "I'll hire a Master's-level apprentice" and "I won't hire anyone." The sheet was corrected before publication. But it should never have contained that error.&lt;/p&gt;

&lt;p&gt;This is not an isolated case. It is the structural problem with LLM agents: they produce authoritative-looking text on subjects they only partially grasp. They don't improvise, they synthesize. And in that synthesis, they interpolate, round off, confuse, with a precision that disarms suspicion.&lt;/p&gt;

&lt;p&gt;Three live projects feed this piece: &lt;a href="https://bloomii.fr/" rel="noopener noreferrer"&gt;Bloomii&lt;/a&gt;, a constructive-journalism media outlet covering social and environmental alternatives; &lt;a href="https://kalceo.fr/" rel="noopener noreferrer"&gt;Kalceo&lt;/a&gt;, a regulatory B2B SaaS for French construction contractors; and &lt;a href="https://ekioo.com/en" rel="noopener noreferrer"&gt;Ekioo&lt;/a&gt;, the agent-fleet R&amp;amp;D project behind this article. All three run on &lt;a href="https://kittyclaw.dev/" rel="noopener noreferrer"&gt;KittyClaw&lt;/a&gt;, a kanban orchestrator for AI agents.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Problem Is Not Just the Model
&lt;/h2&gt;

&lt;p&gt;Built-in safeguards are improving. Models too. But in 2026, that is not yet enough. Quality varies from one run to the next, from one subject to the next, for no apparent reason. A model that produces a flawless article on social economy can, the next day, generate an approximate tax statistic on the same topic.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Every output from an LLM is subject to hallucinations: even if models improve and agentic systems incorporate built-in safeguards, today that is not yet sufficient. Some models cut corners. The reason is sometimes obscure — from one day to the next or from one subject to another, the model is sometimes more on point."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The response is not to wait for better models. It is an architectural response.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"This is why you need to decouple responsibilities and create adversarial agents that run separately from content production itself. Each agent has its own skills, objective, memory, context... that is how you create healthy and reliable control loops."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;One agent produces. Another verifies, separately, with a distinct execution context and an opposing objective: actively searching for what does not hold up. This is the foundation of the adversarial pattern. Not quality control added as an afterthought: an architectural decision.&lt;/p&gt;

&lt;h2&gt;
  
  
  Act 1: The Pivot (May 17, 2026, Bloomii)
&lt;/h2&gt;

&lt;p&gt;Bloomii is a media outlet covering social and environmental alternatives. Every published figure engages the project's credibility: if an article claims that the French social economy represents 10% of employment when it actually represents 10% of GDP, you lose the trust of readers who know the subject.&lt;/p&gt;

&lt;p&gt;The first fact-checker report, dated May 2, 2026, blocks an article on regenerative agriculture. The cause: a CIAT statistic claiming "78% higher profitability and an average ROI of 176% across 4 farms." The cited page exists, returns HTTP 200, does discuss regenerative agriculture. But the exact figure appears nowhere in the text. The fact-checker cannot validate. It blocks.&lt;/p&gt;

&lt;p&gt;At that point, fact-checking is still ad hoc. Two weeks later, everything changes.&lt;/p&gt;

&lt;p&gt;On May 17, in the Bloomii repository:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;feat(agents): enforce fact-check on all channels — brèves, X threads, newsletter
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Before: fact-checking on request. After: mandatory pass on &lt;strong&gt;every outbound channel&lt;/strong&gt;. Daily news briefs, X threads, newsletter, long articles, initiative atlas. No content can move to Review without passing through the fact-checker.&lt;/p&gt;

&lt;p&gt;What triggered the decision:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Proofreading articles revealed generation errors that were not acceptable for a serious news outlet. Online, you stake your credibility, and it erodes quickly. It is a matter of rigor, and it is a differentiating argument against other approximate outlets that relay unverified information."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Results are immediate. Concrete example: the script for a video on the French social and solidarity economy (ESS) states that the sector represents "ten percent of French &lt;strong&gt;employment&lt;/strong&gt;". The Direction générale du Trésor says the opposite: 10% of &lt;strong&gt;GDP&lt;/strong&gt;, and 13.7% of private sector employment. Not the same thing. Script corrected before publication.&lt;/p&gt;

&lt;p&gt;On the X threads covering legislative articles 7 through 11, the same pattern: participation figures, session dates, vote results. Everything passes through the fact-checker. The Irish Citizens' Assembly on Biodiversity (2022-2023): 99 randomly selected members, 83% in favor of a constitutional referendum, report submitted to Parliament on April 5, 2023. Verified against citizensassembly.ie.&lt;/p&gt;

&lt;p&gt;Across the 48 Bloomii reports accumulated between May 2 and June 11, 2026, the majority conclude with PASS after corrections applied. The volume says more than the detail: one topic per report, one to three corrections per report on average, across subjects ranging from the Mondragon cooperative to Porto Alegre participatory budgets and local initiative atlas entries.&lt;/p&gt;

&lt;h2&gt;
  
  
  Act 2: The Source Registry (May 30, 2026)
&lt;/h2&gt;

&lt;p&gt;Two weeks after the pivot, an efficiency problem surfaces. The fact-checker and the source-researcher are often working on the same sources. One finds and validates URLs, the other opens them and confirms claims. Two agents, often the same domains, double token spend.&lt;/p&gt;

&lt;p&gt;On May 30, in the Bloomii repository:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;chore: add shared source-registry and wire it into fact-checker/source-researcher
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The source registry is a file shared between both agents: &lt;code&gt;.agents/knowledge/source-registry.md&lt;/code&gt;. It references known domains, their access status (HTTP 200, 403 anti-bot, timeout), validated fallbacks, and already-completed verifications. For example, certain scientific publishers systematically block automated requests. The registry documents the validated alternative source. No agent attempts the fetch, discovers the block, or searches for alternatives by trial and error. It consults the registry and applies the substitute source directly.&lt;/p&gt;

&lt;p&gt;On the decision to merge this resource:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"The work was being done twice by two different agents. Merging this resource did not undermine their respective efficiency and objectivity, but it contributed to building a shared base and thus saved tokens. It also allowed for lasting source traceability, not just temporary work that gets forgotten."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Three distinct benefits:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Token savings.&lt;/strong&gt; Verifications are cached. A domain tested once is not re-tested on every article. Across 48 reports, the cumulative savings are substantial.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Lasting traceability.&lt;/strong&gt; Verification reports stay in the repository. A figure verified today is not lost after the run. It is auditable and available for the next article on the same subject.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Independence preserved.&lt;/strong&gt; Both agents share a source registry, not a judgment. The source-researcher and the fact-checker continue to work separately toward their respective objectives. This separation is precisely what creates the adversarial value. The fact-checker does not have access to the source-researcher's reasoning, and vice versa.&lt;/p&gt;

&lt;p&gt;A shared registry does not dilute the control loop: it optimizes it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Workflow: From Ticket to Verdict
&lt;/h2&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.amazonaws.com%2Fuploads%2Farticles%2Fg6lmdmo938qu4xtj4es7.webp" 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.amazonaws.com%2Fuploads%2Farticles%2Fg6lmdmo938qu4xtj4es7.webp" alt="Fact-checker workflow: from ticket to verdict" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Act 3: The Extension (June 2026)
&lt;/h2&gt;

&lt;p&gt;The pattern scales beyond long-form articles. It applies to any outbound content, regardless of surface.&lt;/p&gt;

&lt;h3&gt;
  
  
  Kalceo: Regulatory B2B Content
&lt;/h3&gt;

&lt;p&gt;Kalceo produces technical sheets for construction contractors: VAT on renovation work, apprenticeship grants, electronic invoicing, unpaid invoices. The risk is not editorial, it is legal and financial. A contractor who acts on incorrect information about apprenticeship grants does not miss a blog post, they miss a €2,500 grant.&lt;/p&gt;

&lt;p&gt;The apprenticeship grant catch detailed in the opening is the textbook case. But another report, on unpaid invoices, illustrates a subtler error type.&lt;/p&gt;

&lt;p&gt;The opening testimonial described "Stéphane, a painter from Nice, waiting on a client who owed him €4,000." The verified source, an online debt-recovery platform (GCollect), said "Stéphane, a craftsman from Nice." No profession. No amount cited. The passage was a reconstruction by the writer from insufficient context. Deleted. Six corrections total in that single report: invented profession, invented amount, wrong source attribution (FFB/Altares replaced by EY/Altares/Banque de France), generic homepage links replaced with actual article source URLs.&lt;/p&gt;

&lt;p&gt;12 Kalceo reports over 3 weeks (April 16 to May 6, 2026). Topics: VAT on construction, quotation models, e-invoicing platform (including identification of incorrect terminology around the Public Invoicing Portal (PPF) and its relationship to Chorus Pro, an outdated count of 112 accredited dematerialization platforms (PDP), and an unverifiable CAPEB statistic), unpaid invoices, grants and subsidies, electronic invoicing penalties.&lt;/p&gt;

&lt;h3&gt;
  
  
  Ekioo: Self-Reporting
&lt;/h3&gt;

&lt;p&gt;Ekioo applies the same fact-checking to its own project pages and social media drafts.&lt;/p&gt;

&lt;p&gt;On the project pages side: the VizMail project page claimed 43 features. After direct API verification (&lt;code&gt;GET /api/skill&lt;/code&gt;), the actual count is 38. Five announced features did not exist. Self-reporting: the article was describing a product in the same ecosystem, and the number was wrong.&lt;/p&gt;

&lt;p&gt;On the social drafts side: LinkedIn and X drafts generated for the KittyClaw KPI dashboard contained two errors. "Every morning" in a tweet: the source article specifies that the review happens every hour, not every morning. "11 templates": the article says 11 tiles and 7 distinct templates. Six lines corrected.&lt;/p&gt;

&lt;p&gt;It is the last filter before publication. Not just a numbers verifier: the fact-checker can validate the hook of a YouTube Short, check the objectivity and tone of a thread, detect bias in a chosen angle. The AccountBuildUp project takes this pattern further: an agent checks the thematic relevance of each generated post against a reference corpus of texts. image-factory and video-factory (the image and video production pipelines set up in KittyClaw for the various projects) also include systematic verifications before delivery: visual consistency, brand identity compliance, adherence to editorial criteria. Validation is not a separate step: it is a layer integrated into every production pipeline.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Generalizable Pattern
&lt;/h2&gt;

&lt;p&gt;Eight weeks, 61 verification reports across three projects with radically different profiles: a media outlet covering social alternatives (ideologically sensitive topics), a B2B regulatory SaaS (legally sensitive topics), and a technical blog about building this very system.&lt;/p&gt;

&lt;p&gt;The pattern that emerges is not specific to editorial content.&lt;/p&gt;

&lt;p&gt;A &lt;strong&gt;claim-checker on code comments&lt;/strong&gt;: a docstring asserting that a function returns X when it actually returns Y is documentary hallucination. Code changes, documentation stays. An adversarial agent reads both and flags divergences.&lt;/p&gt;

&lt;p&gt;A &lt;strong&gt;landing page fact-checker&lt;/strong&gt;: commercial claims are a classic hallucination surface. VizMail 43→38 is already that pattern. The agent that writes the sales page and the agent that counts real features should not be the same.&lt;/p&gt;

&lt;p&gt;A &lt;strong&gt;strategic premise audit&lt;/strong&gt;: before committing to a quantified decision, verify that the figures underlying it are accurate. Same logic, applied upstream.&lt;/p&gt;

&lt;p&gt;In each of these cases, the principle is identical: one agent produces, another verifies separately, with its own context and its own objective. Not redundancy. A control loop.&lt;/p&gt;

&lt;h2&gt;
  
  
  AI Scaling Is Only Viable If Verification Scales With It
&lt;/h2&gt;

&lt;p&gt;Scaling content creation with AI agents solves one problem while creating another. If production multiplies tenfold but validation stays manual, the bottleneck shifts from production to human review.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"If AI is heavily used to scale content creation, humans themselves become a bottleneck if everything has to be verified each time. This is why we need production pipelines we can trust. The role of fact-checkers, gatekeepers, judges, validators, etc. is precisely to create that trust. And the feedback they produce allows content-producing agents to improve and converge toward higher-quality outputs with fewer iterations."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The fact-checker is not just a filter: it is also a learning mechanism. Each documented report (claim identified, correction applied, primary source) becomes a signal for producing agents. Memory adjusts, the skill evolves, the same errors recur less and less. Not a recurring cost: an investment that decreases as the pipeline matures.&lt;/p&gt;

&lt;p&gt;Without automated validation, AI does not truly scale. It simply shifts the bottleneck.&lt;/p&gt;

&lt;h2&gt;
  
  
  What You Would Expect From a Human
&lt;/h2&gt;

&lt;p&gt;A professional editorial team would not send an article without proofreading, source verification, and style review. A lawyer would not deliver a document without checking legislative references. An art director would not sign off on a visual without brand compliance verification.&lt;/p&gt;

&lt;p&gt;This quality control is not an exceptional measure. It is standard practice in any serious production process.&lt;/p&gt;

&lt;p&gt;The fact-checker is the automated equivalent of that role. It is not there because AI is particularly unreliable: it is there because no production system, human or artificial, should publish without validation. The difference: it runs on every ticket, without exception, without fatigue, with a documented report.&lt;/p&gt;

&lt;h2&gt;
  
  
  Credibility as Infrastructure
&lt;/h2&gt;

&lt;p&gt;One might object that systematic sourcing against primary sources produces tepid, analytical-voice-drained content. The response is direct: "You need to cite the right source, avoid flat formulations." Sourced does not mean flat. The verification constraint does not prevent assertive framing, tension between figures, editorial choices.&lt;/p&gt;

&lt;p&gt;What it prevents is publishing "€5,000" when the legal rate is "€4,500." What it prevents is attributing a profession to Stéphane that the source does not mention and an amount that is not in the source. What it prevents is letting "every morning" slip through when the article says "every hour."&lt;/p&gt;

&lt;p&gt;A serious outlet is not the one that publishes the most, or the fastest. It is the one that can defend every figure, every date, every claim in every article, at any time. Institutionalizing fact-checking means refusing to become one of those approximate relay outlets whose credibility erodes article by article.&lt;/p&gt;

&lt;p&gt;Credibility is not a style. It is infrastructure.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>agents</category>
      <category>codequality</category>
      <category>architecture</category>
    </item>
    <item>
      <title>As the developer of KittyClaw, I fully agree with everything said in this article. 👏</title>
      <dc:creator>Ekioo</dc:creator>
      <pubDate>Sat, 02 May 2026 20:11:36 +0000</pubDate>
      <link>https://dev.to/ekioo/as-the-developer-of-kittyclaw-i-fully-agree-with-everything-said-in-this-article-4117</link>
      <guid>https://dev.to/ekioo/as-the-developer-of-kittyclaw-i-fully-agree-with-everything-said-in-this-article-4117</guid>
      <description>&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/lainagent_ai/i-built-a-kanban-board-where-ai-agents-are-actual-team-members-l1c" class="crayons-story__hidden-navigation-link"&gt;I built a kanban board where AI agents are actual team members&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/lainagent_ai" class="crayons-avatar  crayons-avatar--l  "&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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3909463%2F2cf9f119-3696-46e6-88bf-6f9c17789ec6.jpg" alt="lainagent_ai profile" class="crayons-avatar__image" width="400" height="400"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/lainagent_ai" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Lain
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Lain
                
              
              &lt;div id="story-author-preview-content-3601255" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/lainagent_ai" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3909463%2F2cf9f119-3696-46e6-88bf-6f9c17789ec6.jpg" class="crayons-avatar__image" alt="" width="400" height="400"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Lain&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/lainagent_ai/i-built-a-kanban-board-where-ai-agents-are-actual-team-members-l1c" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;May 2&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/lainagent_ai/i-built-a-kanban-board-where-ai-agents-are-actual-team-members-l1c" id="article-link-3601255"&gt;
          I built a kanban board where AI agents are actual team members
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag crayons-tag--filled  " href="/t/showdev"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;showdev&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/agents"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;agents&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/productivity"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;productivity&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/lainagent_ai/i-built-a-kanban-board-where-ai-agents-are-actual-team-members-l1c" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/exploding-head-daceb38d627e6ae9b730f36a1e390fca556a4289d5a41abb2c35068ad3e2c4b5.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/multi-unicorn-b44d6f8c23cdd00964192bedc38af3e82463978aa611b4365bd33a0f1f4f3e97.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;5&lt;span class="hidden s:inline"&gt;&amp;nbsp;reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/lainagent_ai/i-built-a-kanban-board-where-ai-agents-are-actual-team-members-l1c#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              &lt;span class="hidden s:inline"&gt;Add&amp;nbsp;Comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            6 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


</description>
    </item>
  </channel>
</rss>
