<?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: SkillRatLab</title>
    <description>The latest articles on DEV Community by SkillRatLab (@skillratlab).</description>
    <link>https://dev.to/skillratlab</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%2F4113062%2F493c40e2-a2c6-4b56-ad77-dcb5f912253c.png</url>
      <title>DEV Community: SkillRatLab</title>
      <link>https://dev.to/skillratlab</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/skillratlab"/>
    <language>en</language>
    <item>
      <title>I Tested 7 Comment &amp; Docstring Skills Side by Side. Only 3 Are Worth Using.</title>
      <dc:creator>SkillRatLab</dc:creator>
      <pubDate>Mon, 07 Sep 2026 13:00:00 +0000</pubDate>
      <link>https://dev.to/skillratlab/i-tested-7-comment-docstring-skills-side-by-side-only-3-are-worth-using-2i1c</link>
      <guid>https://dev.to/skillratlab/i-tested-7-comment-docstring-skills-side-by-side-only-3-are-worth-using-2i1c</guid>
      <description>&lt;p&gt;Agent skills are having a moment — but finding one that actually works is still trial-and-error. Most "skill directories" are scraped lists of repo names and README blurbs. Nobody tells you what happens when you actually &lt;em&gt;run&lt;/em&gt; the thing.&lt;/p&gt;

&lt;p&gt;So I ran them myself. I took 7 skills that all promise to fix your code comments and documentation, fed each one the same uncommented Python files, and compared the outputs line by line. No vibes — same input, same rubric, real outputs.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Spoiler: only 3 are worth your time, and which one depends entirely on the job you're hiring it for.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The test setup
&lt;/h2&gt;

&lt;p&gt;Two test files, deliberately realistic:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A 32-line order/discount module — two functions, business rules buried in conditionals, and a silent edge case (out-of-stock items are skipped without any error or warning)&lt;/li&gt;
&lt;li&gt;A 212-line module with 3 classes, 2 enums, 2 dataclasses, and 5 standalone functions — the kind of file you actually need documented&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Each skill was scored on four axes: does it do the job, does it run reliably, is the output good, and how much hand-holding does it need.&lt;/p&gt;

&lt;h2&gt;
  
  
  Winner #1: doc-sync (8/10) — the bulk documentation machine
&lt;/h2&gt;

&lt;p&gt;The highest scorer, and it wasn't close. It documented &lt;em&gt;everything&lt;/em&gt;: module-level docstring with a component overview, every enum member explained, every dataclass field, every method, every standalone function — all in proper Google Style. Algorithm functions even got formula explanations and Example sections.&lt;/p&gt;

&lt;p&gt;On the 212-line file it produced roughly 760 lines of documentation. It also ships an optional KB sync (ChromaDB), and when ChromaDB wasn't installed in my environment it fell back to JSONL without complaining. Small detail, but it's the kind of thing that separates tested software from README software.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The catch:&lt;/strong&gt; thorough to a fault. Trivial functions get the full Args/Returns ceremony. Python and Go only.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Hire it for:&lt;/strong&gt; documenting an entire existing codebase in one sweep.&lt;/p&gt;

&lt;h2&gt;
  
  
  Winner #2: code-comment (7/10) — the minimalist (my personal favorite)
&lt;/h2&gt;

&lt;p&gt;The opposite philosophy, executed ruthlessly: comment only the &lt;em&gt;why&lt;/em&gt;, never the &lt;em&gt;what&lt;/em&gt;. On the 32-line file it added exactly &lt;strong&gt;3 comments&lt;/strong&gt; — the fewest of all seven — and every one earned its place. It caught the business context behind the discount tiers, the silent out-of-stock skip, and the fallback logic for when a discounted price would exceed the original. Meanwhile it deliberately left the accumulation loop, the field assignments, and the return dict uncommented — because a senior dev wouldn't explain those either.&lt;/p&gt;

&lt;p&gt;No "increment i by 1" noise. No AI-flavored filler. The output reads like annotations from someone who's been on-call for this code.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The catch:&lt;/strong&gt; it cleans and refines more than it generates. Point it at completely uncommented code and you'll write the first pass yourself. It's an editor, not an author.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Hire it for:&lt;/strong&gt; making existing comments better, or if you believe most comments are noise.&lt;/p&gt;

&lt;h2&gt;
  
  
  Winner #3: python-docstring-linter (7/10) — the engineer's choice
&lt;/h2&gt;

&lt;p&gt;The most technically serious of the batch. It doesn't just generate docstrings — it runs pydocstyle &lt;em&gt;before and after&lt;/em&gt;, parses your code with ast, and closes a verify-generate-reverify loop. In my test: &lt;strong&gt;5 violations down to 0&lt;/strong&gt;, with Google, NumPy, and Sphinx formats all passing. Type inference is a three-level fallback (annotations, then defaults, then parameter-name heuristics), which is smarter than most.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The catch:&lt;/strong&gt; English-only output, and the inference degrades on domain-specific names — one function returning parsed JSON got labeled &lt;code&gt;Any&lt;/code&gt; because its word bank didn't know the domain. Summary sentences come from a vocabulary mapping, so unfamiliar domains get template-y phrasing.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Hire it for:&lt;/strong&gt; CI-style docstring compliance, where "provably passes pydocstyle" matters more than prose quality.&lt;/p&gt;

&lt;h2&gt;
  
  
  The ones I'd skip
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;code-commenter (6/10).&lt;/strong&gt; The cleanest, most standard output of all seven — proper Google-style docstrings, accurate inline notes. But there is zero automation: the skill is essentially a style guide, and &lt;em&gt;you&lt;/em&gt; do all the work. If I wanted to write comments by hand against a checklist, I'd just... do that.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;code-comment-standard (6/10).&lt;/strong&gt; The most thorough (types, value ranges, constraints, exceptions) and it even flagged a latent bug in my test file — a counter that included skipped items. Impressive. But it's Java/Javadoc-oriented, so Python users are constantly translating conventions in their head, and it adds formality Python culture doesn't want (&lt;code&gt;&lt;strong&gt;author&lt;/strong&gt;&lt;/code&gt;, &lt;code&gt;&lt;strong&gt;since&lt;/strong&gt;&lt;/code&gt; at module level).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;code-comment-generator01 (5/10).&lt;/strong&gt; The only one with real automation scripts (analyze, then insert), which I was rooting for. But the insert step mangled indentation in a whitespace-sensitive language, and the comment style is the classic AI tell — semicolon-separated "parameter: x; returns: y" lists pasted &lt;em&gt;above&lt;/em&gt; the function instead of docstrings inside it. I spent the time it saved me on cleanup.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;improve-code-comments (5/10).&lt;/strong&gt; The best &lt;em&gt;audit framework&lt;/em&gt; of the batch — Critical/High/Medium/Low severity tiers, a report-before-changes safety gate, a sensible delete-then-update-then-add order. Two problems: on uncommented code, two of its three phases have nothing to do, and — the ironic part — while auditing for filler comments it wrote filler comments itself ("subtotal = price x quantity", which its own rules say to delete).&lt;/p&gt;

&lt;h2&gt;
  
  
  What 7 tests actually taught me
&lt;/h2&gt;

&lt;p&gt;The scores matter less than this: &lt;strong&gt;these skills differ more in purpose than in quality.&lt;/strong&gt; There are three distinct jobs here, and each winner owns exactly one:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Job&lt;/th&gt;
&lt;th&gt;Skill&lt;/th&gt;
&lt;th&gt;Score&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Document a whole codebase&lt;/td&gt;
&lt;td&gt;doc-sync&lt;/td&gt;
&lt;td&gt;8/10&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Minimalist "why-only" comments&lt;/td&gt;
&lt;td&gt;code-comment&lt;/td&gt;
&lt;td&gt;7/10&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;CI-enforceable docstring compliance&lt;/td&gt;
&lt;td&gt;python-docstring-linter&lt;/td&gt;
&lt;td&gt;7/10&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Pick the job first. A 5/10 skill for the right job beats an 8/10 skill for the wrong one — the generator with the indentation bug would still beat the minimalist if I needed 500 files annotated overnight and could tolerate cleanup.&lt;/p&gt;

&lt;p&gt;One more thing I didn't expect: the README is a weak signal. The two most impressive READMEs in this batch belonged to 5/10 skills, and my favorite tool has the plainest docs of all. The only reliable test is running the thing on &lt;em&gt;your&lt;/em&gt; code.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Full disclosure on method: I found most of these candidates through &lt;a href="https://www.meyo.life/skill" rel="noopener noreferrer"&gt;deep-skill-finder&lt;/a&gt;, a search tool where you describe the task in plain language and get skills back with test results attached, instead of keyword-matching repo names. I re-ran every test in this article myself before writing a word of it — that part is non-negotiable.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;If there's a skill category you want tested next, name it in the comments. I've got a backlog, but reader requests jump the queue.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>productivity</category>
      <category>coding</category>
      <category>agentskills</category>
    </item>
  </channel>
</rss>
