<?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: duanjianming1981-del</title>
    <description>The latest articles on DEV Community by duanjianming1981-del (@duanjianming1981del).</description>
    <link>https://dev.to/duanjianming1981del</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%2F4086189%2Fd5e86fad-ff72-4ead-8e75-c3f824056859.png</url>
      <title>DEV Community: duanjianming1981-del</title>
      <link>https://dev.to/duanjianming1981del</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/duanjianming1981del"/>
    <language>en</language>
    <item>
      <title>I built a local-first linter for vague release notes</title>
      <dc:creator>duanjianming1981-del</dc:creator>
      <pubDate>Thu, 20 Aug 2026 07:34:24 +0000</pubDate>
      <link>https://dev.to/duanjianming1981del/i-built-a-local-first-linter-for-vague-release-notes-50ln</link>
      <guid>https://dev.to/duanjianming1981del/i-built-a-local-first-linter-for-vague-release-notes-50ln</guid>
      <description>&lt;p&gt;Release notes often describe a change with phrases such as “improved&lt;br&gt;
performance” or “fixed several issues.” Those phrases sound finished, but they&lt;br&gt;
do not tell a reader what changed, who is affected, or whether any action is&lt;br&gt;
required.&lt;/p&gt;

&lt;p&gt;I built &lt;a href="https://releaseproof.ddjjmm2025.chatgpt.site" rel="noopener noreferrer"&gt;ReleaseProof&lt;/a&gt; to check&lt;br&gt;
that narrow problem.&lt;/p&gt;

&lt;p&gt;It takes two pieces of text:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Change evidence, such as PR titles, issue summaries, test results, or a short
diff summary.&lt;/li&gt;
&lt;li&gt;The release-note draft intended for users.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The checker then looks for vague claims, missing audiences, missing migration&lt;br&gt;
steps, a lack of concrete technical or user-facing anchors, and claims that are&lt;br&gt;
not clearly supported by the supplied evidence.&lt;/p&gt;

&lt;p&gt;For example, given evidence that a dashboard query count fell from 18 to 6, a&lt;br&gt;
draft saying only “Improved dashboard performance” should be challenged. A&lt;br&gt;
better note would identify the dashboard, the measurable change, and the users&lt;br&gt;
who notice it.&lt;/p&gt;

&lt;p&gt;ReleaseProof is deliberately a linter rather than a ghostwriter. It does not&lt;br&gt;
generate a replacement changelog or invent details. Its suggestions are narrow&lt;br&gt;
prompts about missing facts, leaving the author responsible for what is true.&lt;/p&gt;

&lt;h2&gt;
  
  
  Privacy and scope
&lt;/h2&gt;

&lt;p&gt;The current version requires no account and never accesses a repository.&lt;br&gt;
Analysis runs in the browser, so pasted text does not leave the page.&lt;/p&gt;

&lt;p&gt;It also does not claim to verify that code is correct, secure, or ready for&lt;br&gt;
production. It only checks the specificity of the writing and its alignment&lt;br&gt;
with the evidence supplied by the user.&lt;/p&gt;

&lt;h2&gt;
  
  
  How I calibrated it
&lt;/h2&gt;

&lt;p&gt;The deterministic rules currently pass 20 focused cases covering vague fixes,&lt;br&gt;
performance claims, breaking changes, migrations, fields, routes, and missing&lt;br&gt;
evidence.&lt;/p&gt;

&lt;p&gt;I then added five real release-note examples from uv, Ruff, pnpm, and Bun. That&lt;br&gt;
second pass exposed several problems in the initial rules: technical identifiers&lt;br&gt;
were not always recognized as concrete details, developer-facing notes were&lt;br&gt;
being forced to name an audience, evidence matching relied too much on literal&lt;br&gt;
word overlap, and a link-only release could score too highly.&lt;/p&gt;

&lt;p&gt;Those cases are now regression tests. Four content-bearing release notes score&lt;br&gt;
as specific, while the link-only example is flagged for failing to state an&lt;br&gt;
actual shipped change.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I want to learn
&lt;/h2&gt;

&lt;p&gt;The rule suite can show that the checker behaves as designed, but it cannot show&lt;br&gt;
whether the tool is useful in real work. I am looking for a small number of&lt;br&gt;
people who write release notes, changelogs, or user-facing PR summaries to try&lt;br&gt;
one sanitized example.&lt;/p&gt;

&lt;p&gt;If you test it, I would especially like to know:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Which suggestion was useful?&lt;/li&gt;
&lt;li&gt;What was a false positive or missed problem?&lt;/li&gt;
&lt;li&gt;Did you revise the draft?&lt;/li&gt;
&lt;li&gt;Would you use the checker again?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You can try &lt;a href="https://releaseproof.ddjjmm2025.chatgpt.site" rel="noopener noreferrer"&gt;ReleaseProof&lt;/a&gt; without&lt;br&gt;
signing up and submit structured feedback through the link beside the result.&lt;/p&gt;

&lt;p&gt;Disclosure: This post was drafted with AI assistance and must be reviewed by the&lt;br&gt;
project owner before publication.&lt;/p&gt;

</description>
      <category>showdev</category>
      <category>productivity</category>
      <category>webdev</category>
      <category>tooling</category>
    </item>
  </channel>
</rss>
