<?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: Gary Sparks</title>
    <description>The latest articles on DEV Community by Gary Sparks (@gssparks).</description>
    <link>https://dev.to/gssparks</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%2F3904416%2F3043381f-2425-4ca0-8107-804f939d9398.png</url>
      <title>DEV Community: Gary Sparks</title>
      <link>https://dev.to/gssparks</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/gssparks"/>
    <language>en</language>
    <item>
      <title>Why your Ansible repo has no documentation (and how to fix it without writing any)</title>
      <dc:creator>Gary Sparks</dc:creator>
      <pubDate>Wed, 29 Apr 2026 13:20:01 +0000</pubDate>
      <link>https://dev.to/gssparks/why-your-ansible-repo-has-no-documentation-and-how-to-fix-it-without-writing-any-2c1p</link>
      <guid>https://dev.to/gssparks/why-your-ansible-repo-has-no-documentation-and-how-to-fix-it-without-writing-any-2c1p</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%2Fiamcftuwvp6meh1f3mwn.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%2Fiamcftuwvp6meh1f3mwn.png" alt="Stacklore user portal" width="800" height="806"&gt;&lt;/a&gt;I've been in platform engineering for four years. In that time I've worked with Ansible repos ranging from tidy and well-structured to the kind that make you question your career choices.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Almost none of them had documentation.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Not because the engineers were lazy. Not because nobody cared. But because writing infrastructure documentation is genuinely terrible work that sits at the intersection of two things engineers hate: context switching away from real work, and writing prose about things they already understand.&lt;/p&gt;

&lt;p&gt;The result is a specific kind of organizational debt that's invisible until it isn't. New hire joins the team. Senior engineer gets pulled into three days of "can you explain what this role does." Someone leaves and takes three years of tribal knowledge with them. On-call engineer gets paged at 2am, opens a playbook they've never seen, and has to reverse-engineer what it does before they can fix anything.&lt;br&gt;
Sound familiar?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The documentation conversation always goes the same way&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You bring it up in a team meeting. Everyone agrees it's important. Someone gets assigned to write docs for their area. A week later nothing has happened because there are tickets to close and incidents to respond to and documentation is always the thing that gets pushed.&lt;br&gt;
So you try making it a requirement. Docs before merge. Now engineers are writing one-line descriptions that tell you nothing: "This role installs nginx." Thanks.&lt;/p&gt;

&lt;p&gt;The problem isn't discipline or process. The problem is that writing documentation is a separate cognitive task from writing infrastructure code, and nobody has the context and the time at the same moment.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What actually worked&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I got tired of fighting this battle so I built something to fight it for me.&lt;/p&gt;

&lt;p&gt;The idea was simple: the code already contains everything needed to generate the documentation. The role name, the variables, the tasks, the handlers, the dependencies. It's all there. What if an AI just read it and wrote the docs?&lt;br&gt;
That's what &lt;strong&gt;Stacklore&lt;/strong&gt; does. You connect your GitHub or GitLab repo and it reads your Ansible roles, Terraform modules, and CI/CD pipelines and generates structured documentation automatically. Every file gets a doc explaining what it does, what variables it needs, what it provisions, and what to watch out for.&lt;/p&gt;

&lt;p&gt;The part I'm most proud of: when you push a commit, a webhook fires and the affected docs update automatically. The documentation stays current without anyone thinking about it.&lt;/p&gt;

&lt;p&gt;Your team gets a private searchable portal where anyone can browse the docs or ask questions in plain English — "what variables does the vpc module need?" or "which roles touch the nginx config?" — and get an actual answer instead of having to grep through YAML.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The change nobody expected&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The documentation itself wasn't the thing that changed how the team worked.&lt;/p&gt;

&lt;p&gt;What changed was that junior engineers stopped interrupting senior engineers. Not because the senior engineers became unavailable, but because the answers were findable. The question "what does this role do?" had an answer that didn't require a 20-minute Slack thread.&lt;/p&gt;

&lt;p&gt;Senior engineers got their focus back. New hires got up to speed faster. On-call handoffs stopped being a game of telephone.&lt;/p&gt;

&lt;p&gt;The documentation was always the symptom. The actual problem was that knowledge lived in people's heads instead of somewhere searchable.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Try it&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If your Ansible or Terraform repo looks like mine did, functional, well-maintained, and completely undocumented, Stacklore is free to try with one repo. No credit card, no setup beyond connecting your GitHub or GitLab account.&lt;/p&gt;

&lt;p&gt;It won't make you write a single word of documentation.&lt;br&gt;
&lt;a href="https://stacklore.io" rel="noopener noreferrer"&gt;Stacklore&lt;/a&gt;&lt;/p&gt;

</description>
      <category>devops</category>
      <category>documentation</category>
      <category>ai</category>
      <category>ansible</category>
    </item>
  </channel>
</rss>
