<?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: Claudio Caporro</title>
    <description>The latest articles on DEV Community by Claudio Caporro (@claudiocaporro).</description>
    <link>https://dev.to/claudiocaporro</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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3447225%2F50edecbc-f712-4011-9a20-1b58d18071e7.jpg</url>
      <title>DEV Community: Claudio Caporro</title>
      <link>https://dev.to/claudiocaporro</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/claudiocaporro"/>
    <language>en</language>
    <item>
      <title>Everyone's orchestrating AI agents. I started orchestrating myself</title>
      <dc:creator>Claudio Caporro</dc:creator>
      <pubDate>Mon, 30 Mar 2026 16:07:21 +0000</pubDate>
      <link>https://dev.to/claudiocaporro/everyones-orchestrating-ai-agents-i-started-orchestrating-myself-8ad</link>
      <guid>https://dev.to/claudiocaporro/everyones-orchestrating-ai-agents-i-started-orchestrating-myself-8ad</guid>
      <description>&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%2Fnp4pdw7c6e4ty7fxr0hr.jpg" 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%2Fnp4pdw7c6e4ty7fxr0hr.jpg" alt=" " width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Some days you get to the end of the evening and realize you spent eight hours in front of a screen and accomplished almost nothing. You launched agents, switched windows, re-read outputs, replied to notifications, hopped on calls. You felt busy every single minute. But when you try to list what you actually closed, the list is embarrassing. You weren't working. You were reacting.&lt;/p&gt;

&lt;p&gt;Then there are the other days. The ones where you're on fire. You spin up agents, review outputs, relaunch, close tasks, open new sessions. Four, five in parallel and everything flows. At the end of the day you look at what you shipped and think: if it were always like this, what could I do with all the time I waste on the bad days?&lt;/p&gt;

&lt;p&gt;For months I thought the difference was about energy, sleep, motivation. Then I noticed the pattern: the good days almost always fell outside working hours. Evenings, weekends. No incoming email. No Slack messages. No notifications pulling me out of the flow.&lt;/p&gt;

&lt;p&gt;It wasn't about energy. It was about interruptions.&lt;/p&gt;




&lt;h2&gt;
  
  
  Your brain is a single-core processor
&lt;/h2&gt;

&lt;p&gt;If you're a developer, you know how multi-threading works on a single-core CPU. There's no real parallelism. There's an illusion of simultaneity: the processor switches between threads so fast it looks like they're running together. But at the hardware level, execution is serialized. One thread at a time.&lt;/p&gt;

&lt;p&gt;Your brain works exactly the same way. You can spin up ten AI agents in parallel, but you can only &lt;em&gt;review&lt;/em&gt; one at a time. Attention is serial. Nothing new so far.&lt;/p&gt;

&lt;p&gt;The difference is that a CPU has its RAM ready. When it context switches, it saves the current thread's state (registers, program counter, everything) and loads the next one in nanoseconds. The context is right there, in precise memory locations, ready to resume.&lt;/p&gt;

&lt;p&gt;You don't. When you finish a prompt and need to move to the next agent, you don't have RAM ready. You have the void.&lt;/p&gt;

&lt;p&gt;You know the scene. You've been focused for several minutes building a complex prompt. You know other agents are running, some have finished and are waiting. You hit send. And then... blank. You try to remember where you need to go next. Which conversation is more urgent. Which agent finished first. There's a moment of disorientation. You start flipping through windows trying to find yourself. You land on a conversation that was waiting, start re-reading what it was about, right now I remember, you try to rebuild the context to write a new prompt. Meanwhile the agent you launched earlier finishes and it stresses you out, so you jump to see what it produced, give it new input, then search for the window you were in and the cycle starts over.&lt;/p&gt;

&lt;p&gt;You're not driving anything. You're reacting.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"Everyone's building frameworks to orchestrate agents. Nobody's building a framework to orchestrate the human supervising them."&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;And it gets worse the more you parallelize. Running multiple agents on the same codebase is complicated (branches, worktrees, merges, conflicts, rebases), so you naturally end up distributing the work: one agent on a repo, one on documentation for a different project, one writing tests for a feature you just closed, one analyzing the next task, another building a skill. At that point you have four or five completely different contexts open, and your brain has to context switch not just between windows, but between worlds.&lt;/p&gt;

&lt;p&gt;The thing that took me an embarrassingly long time to see clearly is this: &lt;strong&gt;AI runs in parallel. Your attention is serial.&lt;/strong&gt; You can spin up ten agents at once, but you can only review one at a time. The problem isn't your setup. The problem is that your attention doesn't scale with your agents.&lt;/p&gt;




&lt;h2&gt;
  
  
  The accidental discovery
&lt;/h2&gt;

&lt;p&gt;I didn't plan it. I didn't read a paper and think "now I'll implement cognitive offloading."&lt;/p&gt;

&lt;p&gt;I needed some pieces of paper to jot something down and remembered I had a drawer full of flashcards I used to learn new English words. I grabbed a blank one and wrote down what one of my agents was doing and which window it was in. I set it on my desk.&lt;/p&gt;

&lt;p&gt;I wrote another one. Then another.&lt;/p&gt;

&lt;p&gt;I lined them up. I started picking them up one at a time, first to last. When I finished reviewing an agent and gave it new input, I put the card back at the end of the line.&lt;/p&gt;

&lt;p&gt;I started flying.&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.amazonaws.com%2Fuploads%2Farticles%2F0w9oztf558kumkdpspv2.jpg" 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%2F0w9oztf558kumkdpspv2.jpg" alt=" " width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If an agent finished, I didn't care. It had to wait its turn for my attention. If a notification came in, I ignored it. The next card in the line was the next thing I'd deal with, period. For the first time, I wasn't chasing the agents — they were waiting for me.&lt;/p&gt;

&lt;p&gt;The next day I replicated the setup. Same thing: the days that used to be chaotic and frustrating became fluid. The secret wasn't the cards themselves. It was that I'd given my attention an explicit order. I'd built a FIFO queue (first in, first out), but I hadn't put agent tasks in it. I'd put tokens in it.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"Each strip was a credit I gave the agent to buy a piece of my attention. No token, no attention. The queue decided who cashed in first."&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I called it &lt;strong&gt;StripFlowing&lt;/strong&gt;.&lt;/p&gt;




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

&lt;p&gt;Every time I launch an AI agent on a task, I write a strip: a card, a flashcard, a scrap of paper, whatever. I write three things on it:&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.amazonaws.com%2Fuploads%2Farticles%2Fjm3nwylguh0pipfm6u6d.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.amazonaws.com%2Fuploads%2Farticles%2Fjm3nwylguh0pipfm6u6d.png" alt=" " width="800" height="292"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Project&lt;/strong&gt;: which codebase or context I'm touching. &lt;strong&gt;Task&lt;/strong&gt;: what the agent is doing, in one line. &lt;strong&gt;Anchor&lt;/strong&gt;: the exact point I need to return to. "VSCode-Copilot — test suite auth", "Claude Code — Fix #3554", "Claude Chat — Analysis form". The tool name, the conversation title or filename — whatever I need to land in the right spot without searching.&lt;/p&gt;

&lt;p&gt;The Anchor is the detail that makes the whole thing work. The reason context switching is so expensive isn't just the cognitive shift itself — it's the &lt;em&gt;search&lt;/em&gt; phase that comes before it. Where was I? Which tab? Which branch? Which conversation? It's that moment of disorientation where you flip through windows trying to find yourself. The strip eliminates it. The strip is your context save. What the CPU has in RAM and your brain doesn't.&lt;/p&gt;

&lt;p&gt;The strip goes on top of a small rack on the desk — the bay. It sits there, off-screen, tangible, always visible, clear. It can't disappear like a closed tab or an ignored notification.&lt;/p&gt;

&lt;p&gt;The rules:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;You always work from the bottom strip only&lt;/strong&gt; — the oldest one, first in first out. Even if another agent just finished, even if a notification comes in, the next strip in the queue is the next thing you do. No exceptions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;After review, the strip goes back on top.&lt;/strong&gt; You reviewed the output, gave the agent new input? The strip goes back to the top of the stack. Over time it'll sink back down toward the bottom, waiting for its turn.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;When the strip is done, it leaves the bay.&lt;/strong&gt; Task closed, strip tossed. The slot opens up.&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.amazonaws.com%2Fuploads%2Farticles%2F25kww1iesewd26xrb17d.gif" 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%2F25kww1iesewd26xrb17d.gif" alt=" " width="331" height="262"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;That's the entire method. Three fields on a card. A FIFO queue. The constraint of one strip at a time.&lt;/p&gt;




&lt;h2&gt;
  
  
  The freeze
&lt;/h2&gt;

&lt;p&gt;One of the things I discovered by accident is that StripFlowing doesn't just manage sessions — it manages &lt;em&gt;transitions&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;One day I broke for lunch. Three agents were still running, two strips were waiting for review on the bay. When I came back to my desk, I didn't have to reopen tabs, re-read conversations, or reconstruct the mental context. I picked up the strip from the bottom, looked at the Anchor, and in thirty seconds I was back in.&lt;/p&gt;

&lt;p&gt;From there I realized the strips also work as a &lt;em&gt;freeze frame&lt;/em&gt; of the entire work session. I started archiving decks by context: work strips on one side, side projects on the other. When I switch modes, I swap the deck and the bay is ready. The context is there, frozen, ready to pick back up. No "where was I," no twenty-minute warmup.&lt;/p&gt;

&lt;p&gt;Even at the end of the day, with the strips on the desk, it feels different. You're not &lt;em&gt;abandoning&lt;/em&gt; things mid-stream. You're pausing an ordered system that tomorrow will restart from the exact point where you left it. It's a feeling I've never had closing a laptop with twenty tabs open.&lt;/p&gt;




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

&lt;p&gt;After using the method for a while, I started looking into whether it had any basis beyond my own experience. What I found is a surprising parallel with a world that has nothing to do with software.&lt;/p&gt;

&lt;p&gt;Air traffic controllers have been managing dozens of aircraft in parallel for decades using Flight Progress Strips: paper strips slotted into a physical rack. Each strip is one aircraft: callsign, route, altitude, constraints. They have incredibly sophisticated radar, and yet the physical strips remain a core tool. Wendy Mackay's research at Aarhus University studied why: the physical rack keeps information always present without requiring active attention, the gesture of moving a strip reduces cognitive load, and the spatial layout communicates priority and sequence without mental processing. Electronic systems that tried to replace the strips often made controllers' situational awareness worse.&lt;/p&gt;

&lt;p&gt;Theirs is called Air Traffic Control. Mine is Attention Traffic Control.&lt;/p&gt;

&lt;p&gt;I want to be honest: StripFlowing isn't scientifically validated. I haven't run a controlled study. I've had a few colleagues try it and none of them went back, and the reason it works, I believe, is that it rests on well-established principles.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cognitive offloading&lt;/strong&gt; is the use of physical actions to reduce the information-processing demands of a task (Risko &amp;amp; Gilbert, 2016). In practice, it's a brain dump: you pull out of your head everything that doesn't need to stay in there and put it on a physical support. Writing on the strip and placing it in the bay is exactly that brain dump. You're saving state outside your head so your head can focus on one thing.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Attention residue&lt;/strong&gt;: Sophie Leroy showed in 2009 that when you switch from Task A to Task B without an explicit plan for resuming A, part of your attention stays glued to A. The strip &lt;em&gt;is&lt;/em&gt; that explicit plan. Leroy calls it a "Ready-to-Resume Plan": writing down where you are and what you'll do next lets the brain release the current task without dragging it along. Every StripFlowing strip is a Ready-to-Resume Plan condensed into three fields.&lt;/p&gt;

&lt;p&gt;A study from the University of Tokyo (Umejima et al., 2021) found that users who wrote on physical paper completed cognitive tasks 25% faster than those using digital equivalents, with significantly higher hippocampal activation. Writing on a physical object forces the brain to build a stronger neural connection with the information.&lt;/p&gt;

&lt;p&gt;And then there's the working memory data: the real limit is around four simultaneous items (Cowan, 2001), not Miller's "seven plus or minus two," which has been widely misunderstood. This isn't an argument for capping your strips at four — it's the argument for why you &lt;em&gt;need&lt;/em&gt; the strips. If your brain holds four things at once and you have six agents open, the extra two don't get "managed worse." They get lost. The strips are the external memory that compensates for that limit.&lt;/p&gt;




&lt;h2&gt;
  
  
  It scales more than I expected
&lt;/h2&gt;

&lt;p&gt;The bay I built has six slots. I designed it thinking that was a high ceiling, that beyond six tasks the method would start to crack.&lt;/p&gt;

&lt;p&gt;I was wrong. I found myself adding strips well past six slots and the work stayed manageable. The frequency at which each strip comes back into your hands gets longer (it takes more time for a strip to make a full trip through the queue), but the order holds. You don't feel the weight of having twelve things in flight because at any given moment you're looking at one. The rest waits, neatly, in the rack.&lt;/p&gt;

&lt;p&gt;What protects you isn't the number of slots. It's the protocol: one strip at a time, always from the bottom, no exceptions for the loudest notification.&lt;/p&gt;

&lt;p&gt;I'd love to hear how it works for you. How many strips are you running? Is it useful? Does it feel better?&lt;/p&gt;




&lt;h2&gt;
  
  
  Things I've discovered using it
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Tasks you procrastinate.&lt;/strong&gt; Those things you've been putting off for weeks become a strip among many. You don't have to tackle them in a heroic block — you just respond when the strip reaches the bottom of the queue. Round after round, they move forward.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Email, Slack, and interruptions as strips.&lt;/strong&gt; Even "check email" or "reply to Slack messages" can become a strip in the bay. Instead of jumping on it the second a notification lands, the strip waits its turn. Interruptions become ordered tasks.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Morning backlog.&lt;/strong&gt; I prep my strips at the start of the day, before launching any agent. Writing down the tasks I plan to delegate forces me to think about them first, to set priorities before the chaos begins.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cocking.&lt;/strong&gt; Borrowed from air traffic control. If a strip is shifted sideways in the rack, it means something. What that something means is up to you.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Iterative annotations.&lt;/strong&gt; With each pass you can add details to the strip: a status change, the iteration count, a note. The strip becomes a small physical log of the task that grows richer over time.&lt;/p&gt;




&lt;h2&gt;
  
  
  Try it
&lt;/h2&gt;

&lt;p&gt;Cut up some cardstock, write Project, Task, and Anchor for the runs you have going, stack them on your desk, and work them one at a time from the bottom. That's the method.&lt;/p&gt;

&lt;p&gt;If it works and you want something sturdier, on MakerWorld I've published two 3D-printable models: the &lt;a href="https://makerworld.com/en/models/2588065-stripflowing-desk-physical-attention-queue#profileId-2855336" rel="noopener noreferrer"&gt;&lt;strong&gt;StripFlowing Desk&lt;/strong&gt;&lt;/a&gt;, a tilted desktop rack and the &lt;a href="https://makerworld.com/en/models/2588244-stripflowing-portable-physical-attention-queue#profileId-2855540" rel="noopener noreferrer"&gt;&lt;strong&gt;StripFlowing Portable&lt;/strong&gt;&lt;/a&gt;, for working on the move or from the couch.&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.amazonaws.com%2Fuploads%2Farticles%2F2jzmf9unyx3pr942mnkz.jpg" 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%2F2jzmf9unyx3pr942mnkz.jpg" alt=" " width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can download a printable PDF template for the strips here: &lt;a href="https://caporro.com/assets/files/stripflowing-cut-template.pdf" rel="noopener noreferrer"&gt;StripFlowing Cut Template (PDF)&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The entire method is open. If you build a setup, adapt the protocol, or find where it breaks for you, I want to hear about it.&lt;/p&gt;

&lt;p&gt;We've learned to orchestrate machines. Now it's time to learn to orchestrate ourselves.&lt;/p&gt;

</description>
      <category>productivity</category>
      <category>devjournal</category>
      <category>ai</category>
      <category>ux</category>
    </item>
    <item>
      <title>Outdated Docs Are Worse Than No Docs</title>
      <dc:creator>Claudio Caporro</dc:creator>
      <pubDate>Wed, 20 Aug 2025 12:10:50 +0000</pubDate>
      <link>https://dev.to/claudiocaporro/outdated-docs-are-worse-than-no-docs-79l</link>
      <guid>https://dev.to/claudiocaporro/outdated-docs-are-worse-than-no-docs-79l</guid>
      <description>&lt;p&gt;How AI Can Keep Documentation Alive&lt;/p&gt;

&lt;p&gt;There's an uncomfortable truth in our industry: project documentation is almost always outdated. And there are only two basic rules to avoid it:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Write it.&lt;/li&gt;
&lt;li&gt;Keep it updated.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;We all stumble on the second one. In this post, I won't talk about how to write good documentation (that's an art on its own), but about how to force it to stay in sync with code—automatically.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Documentation Paradox in the AI Era
&lt;/h2&gt;

&lt;p&gt;Documentation is both a blessing and a curse for every dev team. It's essential for maintainability and collaboration, but it's always one step behind the code. For years, as a Tech Lead, I tried everything: gamification, extra story points, strict PR reviews. Result? It never really stuck. I gave up.&lt;/p&gt;

&lt;p&gt;This chronic problem has now turned into a paradox. AI lets us generate and change code at insane speed, making docs outdated even faster. But at the same time, AI desperately needs them.&lt;/p&gt;

&lt;p&gt;To get decent results from an AI assistant, you need to give it "context." A lot of context—precise and up to date. Documentation is no longer for humans; it's the food we feed to models so they can generate consistent code and support architectural decisions.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;An AI is only as good as the documentation it's based on.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;If the model works with outdated info, best case you get something inconsistent. Worst case: full of bugs. The way out? Automation.&lt;/p&gt;

&lt;h2&gt;
  
  
  "Living" Documentation with AI Agents
&lt;/h2&gt;

&lt;p&gt;The solution I'm experimenting with is simple: turn documentation from a static artifact into a living, self-checking element of the repo. Three ingredients make it work.&lt;/p&gt;

&lt;h3&gt;
  
  
  Markdown Format
&lt;/h3&gt;

&lt;p&gt;Nothing fancy here. Markdown is the de-facto standard for tech docs in repos. It's readable, versionable, and flexible.&lt;/p&gt;

&lt;h3&gt;
  
  
  Metadata with Frontmatter
&lt;/h3&gt;

&lt;p&gt;By using YAML frontmatter at the start of Markdown files, we enrich the doc with structured metadata. It turns plain text into a smart "object" aware of its context.&lt;/p&gt;

&lt;p&gt;A minimal example:&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="nn"&gt;---&lt;/span&gt;
&lt;span class="na"&gt;last_updated&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;2025-08-01'&lt;/span&gt;
&lt;span class="na"&gt;related_files&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;backend/payment_service.py'&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;backend/payment_controller.py'&lt;/span&gt;
&lt;span class="nn"&gt;---&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Or more advanced:&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="nn"&gt;---&lt;/span&gt;
&lt;span class="na"&gt;title&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;User&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Authentication&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Management"&lt;/span&gt;
&lt;span class="na"&gt;author&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Claudio&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Caporro"&lt;/span&gt;
&lt;span class="na"&gt;last_updated&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;2025-08-15"&lt;/span&gt;
&lt;span class="na"&gt;status&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;complete"&lt;/span&gt; &lt;span class="c1"&gt;# draft, in_review&lt;/span&gt;
&lt;span class="na"&gt;audience&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;dev"&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;CS"&lt;/span&gt;
&lt;span class="na"&gt;related_files&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;src/controllers/UserController.php"&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;src/services/AuthService.js"&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;src/routes/api/auth.php"&lt;/span&gt;
&lt;span class="nn"&gt;---&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For this experiment, the two key fields are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;last_updated&lt;/strong&gt;: the date the document was last verified&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;related_files&lt;/strong&gt;: the crucial link between documentation and the source code files it describes&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  The AI Agent
&lt;/h3&gt;

&lt;p&gt;The AI agent is the script that uses these metadata fields to orchestrate the process. Two main ways to trigger it:&lt;/p&gt;

&lt;h4&gt;
  
  
  Code-First Trigger
&lt;/h4&gt;

&lt;p&gt;The agent runs when code changes.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;How it works&lt;/strong&gt;: It takes the list of modified files and diffs. Using &lt;code&gt;related_files&lt;/code&gt;, it finds potentially affected docs and suggests updates. If we also provide the User Story or task, quality improves a lot.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;When to run it&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;In the CI/CD pipeline (on each commit or merge request)&lt;/li&gt;
&lt;li&gt;With local pre-commit hooks&lt;/li&gt;
&lt;li&gt;As part of a dev workflow (e.g., Spec-Driven Development)&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;h4&gt;
  
  
  Doc-First Trigger
&lt;/h4&gt;

&lt;p&gt;The agent runs periodic checks starting from the docs.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;How it works&lt;/strong&gt;: It scans docs, compares &lt;code&gt;last_updated&lt;/code&gt; with the last modified date of the files in &lt;code&gt;related_files&lt;/code&gt;. If code changed after the doc, it analyzes the diff and updates the doc.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The Implementation Strategy
&lt;/h2&gt;

&lt;p&gt;This system works because it creates a tight feedback loop between code and documentation. When developers modify code, the system automatically identifies which documentation might be affected and either updates it automatically or flags it for review.&lt;/p&gt;

&lt;p&gt;The key is that by making documentation machine-readable through structured metadata, we can apply the same automation principles we use for code to our documentation workflow. It's not just about writing better docs—it's about creating a sustainable system that maintains documentation quality over time.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Adopting this system isn't just a technical fix—it's a real mindset shift. It finally kills documentation tech debt, gives AI reliable context to work with, and frees up dev time for higher-value tasks like design and architecture.&lt;/p&gt;

&lt;p&gt;This approach shows how our role is evolving: from simple executors to orchestrators of intelligent systems. We're not just writing code anymore; we're designing systems that can maintain themselves.&lt;/p&gt;

&lt;h2&gt;
  
  
  With this system we've tackled how to keep docs updated. As for how to write them well in the first place—that's another chapter.
&lt;/h2&gt;

&lt;p&gt;Would you try this approach with your team? What would you add or change to make it work better in your environment?&lt;/p&gt;

</description>
      <category>documentation</category>
      <category>productivity</category>
      <category>ai</category>
      <category>automation</category>
    </item>
  </channel>
</rss>
