<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Zero-Bugs.com</title>
    <link>https://zero-bugs.com/</link>
    <description>Code quality in any language: linters, CI gates, code review, coverage, dependency risk. Judged by whether they still hold after thirty years on one platform.</description>
    <language>en-us</language>
    <lastBuildDate>Mon, 07 Sep 2026 13:22:49 GMT</lastBuildDate>
    <atom:link href="https://zero-bugs.com/rss.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Ruff 0.16 Turned On 354 Rules. Here&apos;s What They Caught</title>
      <link>https://zero-bugs.com/blog/ruff-0-16-turned-on-354-rules-what-they-caught/</link>
      <guid isPermaLink="true">https://zero-bugs.com/blog/ruff-0-16-turned-on-354-rules-what-they-caught/</guid>
      <description>I ran Ruff 0.15 and 0.16 with default settings on 60 untouched Python files. Findings went from 30 to 129. Here&apos;s what was real, what was noise, and why.</description>
      <pubDate>Mon, 07 Sep 2026 00:00:00 GMT</pubDate>
      <author>Elena Rourke</author>
      <category>linting</category>
      <category>quality-gates</category>
      <category>python</category>
      <category>ruff</category>
      <category>tech-debt</category>
    </item>
    <item>
      <title>Archived Dependencies: A Signal, Not a Death Notice</title>
      <link>https://zero-bugs.com/blog/archived-dependencies-what-it-means/</link>
      <guid isPermaLink="true">https://zero-bugs.com/blog/archived-dependencies-what-it-means/</guid>
      <description>Archiving a GitHub repo changes nothing on npm. Here is what the label really means, three kinds of archived, and how to audit your own lockfile.</description>
      <pubDate>Fri, 04 Sep 2026 00:00:00 GMT</pubDate>
      <author>Elena Rourke</author>
      <category>dependency-risk</category>
      <category>longevity</category>
      <category>maintenance</category>
      <category>npm</category>
    </item>
    <item>
      <title>What Disappeared From the Web in 20 Years, and Why</title>
      <link>https://zero-bugs.com/blog/what-disappeared-from-the-web-in-20-years/</link>
      <guid isPermaLink="true">https://zero-bugs.com/blog/what-disappeared-from-the-web-in-20-years/</guid>
      <description>BASIC, HTML without CSS, PHP as the default backend, jQuery, and class components: five technologies, five death windows, and the real causes.</description>
      <pubDate>Sun, 30 Aug 2026 00:00:00 GMT</pubDate>
      <author>Elena Rourke</author>
      <category>longevity</category>
      <category>retrospective</category>
      <category>jquery</category>
      <category>web-history</category>
    </item>
    <item>
      <title>The Three-Year Dependency That Promised More Than It Kept</title>
      <link>https://zero-bugs.com/blog/three-year-dependency-promised-more-than-it-kept/</link>
      <guid isPermaLink="true">https://zero-bugs.com/blog/three-year-dependency-promised-more-than-it-kept/</guid>
      <description>TSLint promised a stable API for years, then its own maintainers deprecated it. What the real migration bill reveals about catching this risk earlier.</description>
      <pubDate>Wed, 26 Aug 2026 00:00:00 GMT</pubDate>
      <author>Elena Rourke</author>
      <category>dependency-risk</category>
      <category>longevity</category>
      <category>maintenance</category>
      <category>typescript</category>
    </item>
    <item>
      <title>What Happens When a Team Starts Suppressing Lint Rules</title>
      <link>https://zero-bugs.com/blog/what-happens-when-a-team-suppresses-lint-rules/</link>
      <guid isPermaLink="true">https://zero-bugs.com/blog/what-happens-when-a-team-suppresses-lint-rules/</guid>
      <description>An AI assistant&apos;s fastest fix for a lint error is often silencing it, not solving it. Here&apos;s how to measure suppression creep before it spreads.</description>
      <pubDate>Sat, 22 Aug 2026 00:00:00 GMT</pubDate>
      <author>Elena Rourke</author>
      <category>linting</category>
      <category>quality-gates</category>
      <category>tech-debt</category>
      <category>eslint</category>
    </item>
    <item>
      <title>Twelve CI Gates: Which I Put First, and Why in That Order</title>
      <link>https://zero-bugs.com/blog/twelve-ci-gates-which-i-put-first/</link>
      <guid isPermaLink="true">https://zero-bugs.com/blog/twelve-ci-gates-which-i-put-first/</guid>
      <description>Lint and format catch cheap mistakes. The gates deciding if code survives sit further down the pipeline, in an order that took years to get right.</description>
      <pubDate>Tue, 18 Aug 2026 00:00:00 GMT</pubDate>
      <author>Elena Rourke</author>
      <category>ci</category>
      <category>quality-gates</category>
      <category>sonar</category>
      <category>mypy</category>
    </item>
    <item>
      <title>Test Coverage Is a Metric AI Can Game in Five Minutes</title>
      <link>https://zero-bugs.com/blog/test-coverage-metric-ai-can-game/</link>
      <guid isPermaLink="true">https://zero-bugs.com/blog/test-coverage-metric-ai-can-game/</guid>
      <description>Coverage counts lines executed, not claims verified, so an AI assistant can hit 100% without testing anything real. Here is what actually catches it.</description>
      <pubDate>Fri, 14 Aug 2026 00:00:00 GMT</pubDate>
      <author>Elena Rourke</author>
      <category>testing</category>
      <category>quality-gates</category>
      <category>mutation-testing</category>
      <category>ci-cd</category>
    </item>
  </channel>
</rss>