<?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: Michael Calkins</title>
    <description>The latest articles on DEV Community by Michael Calkins (@icodeforbananas).</description>
    <link>https://dev.to/icodeforbananas</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%2F307647%2F19b68f66-f4ae-4a36-8010-772e9b889c5e.jpg</url>
      <title>DEV Community: Michael Calkins</title>
      <link>https://dev.to/icodeforbananas</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/icodeforbananas"/>
    <language>en</language>
    <item>
      <title>LLM Prompts I Run to Continuously Improve My Codebase</title>
      <dc:creator>Michael Calkins</dc:creator>
      <pubDate>Sat, 13 Dec 2025 18:41:24 +0000</pubDate>
      <link>https://dev.to/icodeforbananas/llm-prompts-i-run-to-continuously-improve-my-codebase-gik</link>
      <guid>https://dev.to/icodeforbananas/llm-prompts-i-run-to-continuously-improve-my-codebase-gik</guid>
      <description>&lt;p&gt;Instead of asking LLMs to &lt;em&gt;generate&lt;/em&gt; large chunks of code, I use them as &lt;strong&gt;codebase janitors&lt;/strong&gt;. Small, focused tasks. Run often. Compound over time.&lt;/p&gt;

&lt;p&gt;Below are &lt;strong&gt;copy-pasteable prompts&lt;/strong&gt; I regularly use.&lt;/p&gt;




&lt;h2&gt;
  
  
  1. Remove Dead Code
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Find unused files, functions, exports, imports, and variables.  
Explain why each is safe to remove and note any risk.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  2. Improve Naming
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Rename variables, functions, and classes to better reflect intent.  
Optimize for clarity and readability, not brevity.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  3. Reduce Cyclomatic Complexity
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Identify overly complex functions and simplify logic.  
Prefer early returns, smaller functions, and clearer control flow.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  4. Close Coverage Gaps
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Scan test coverage output.  
Find uncovered lines and write focused unit tests that validate behavior.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  5. Document the &lt;em&gt;Why&lt;/em&gt;
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Add documentation explaining *why* this code exists and what tradeoffs were made.  
Do not describe what the code does line-by-line.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  6. Identify Responsibility Leaks
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Find functions or components doing more than one job.  
Suggest how to split responsibilities cleanly.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  7. Improve Error Handling
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Review error handling paths.  
Ensure errors are meaningful, actionable, and consistently handled.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  8. Normalize Patterns
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Identify inconsistent patterns (naming, structure, async handling).  
Recommend a single, consistent approach.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  9. Flag Hidden Coupling
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Detect tight coupling between modules or layers.  
Suggest abstractions or boundaries to reduce blast radius.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  10. Improve Readability Without Refactors
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Improve formatting, ordering, and small structure changes only.  
No architectural rewrites.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Why This Works
&lt;/h2&gt;

&lt;p&gt;These prompts are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Small&lt;/li&gt;
&lt;li&gt;Repeatable&lt;/li&gt;
&lt;li&gt;Low risk&lt;/li&gt;
&lt;li&gt;High leverage&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This turns LLMs into &lt;strong&gt;continuous improvement agents&lt;/strong&gt;, not code generators.&lt;/p&gt;




&lt;h2&gt;
  
  
  A Note on Code Review
&lt;/h2&gt;

&lt;p&gt;When generating changes like this, commit frequently and keep each change small. This makes reviews easier, limits blast radius, and ensures you can always roll back to a known-good state if something goes wrong.&lt;/p&gt;




&lt;h2&gt;
  
  
  Agents with Github
&lt;/h2&gt;

&lt;p&gt;Notably, GitHub is moving in this exact direction—surfacing agent-based workflows directly from their homepage and integrating them across issues, PRs, and code review.&lt;/p&gt;




&lt;h2&gt;
  
  
  Code Acceleration
&lt;/h2&gt;

&lt;p&gt;The pace of development is accelerating. To keep up, we need to reduce friction wherever possible. As the volume of code we write and review skyrockets, readability becomes non-negotiable—and these prompts help reinforce it.&lt;/p&gt;

</description>
      <category>programming</category>
      <category>ai</category>
      <category>productivity</category>
      <category>discuss</category>
    </item>
    <item>
      <title>Building Accessible Themes with Generative AI</title>
      <dc:creator>Michael Calkins</dc:creator>
      <pubDate>Thu, 20 Nov 2025 04:25:35 +0000</pubDate>
      <link>https://dev.to/icodeforbananas/building-accessible-themes-with-generative-ai-4jm5</link>
      <guid>https://dev.to/icodeforbananas/building-accessible-themes-with-generative-ai-4jm5</guid>
      <description>&lt;h3&gt;
  
  
  Why I Needed Better Themes
&lt;/h3&gt;

&lt;p&gt;Most default code editor themes don’t work for me. As someone with astigmatism, high-contrast or overly saturated themes strain my eyes. I constantly switched themes, but nothing felt right.&lt;/p&gt;

&lt;p&gt;It wasn’t just about looks, I needed help creating something that was suited my needs for writing code. Many themes either failed WCAG contrast standards or were uncomfortable to read. Creating a custom theme felt daunting, until I started using gen AI to assist me.&lt;/p&gt;

&lt;h3&gt;
  
  
  How Generative AI Helped
&lt;/h3&gt;

&lt;p&gt;Using generative AI, I could describe exactly what I needed:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;"A dark theme with muted backgrounds and soft contrast for string literals."&lt;/li&gt;
&lt;li&gt;"All elements must pass WCAG AAA minimum contrast."&lt;/li&gt;
&lt;li&gt;"Avoid yellows and high-saturation colors."&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In minutes, I had accessible designs tailored to my needs. I wasn’t just editing and fighting through balancing colors, I had help developing a modern and balanced theme in a way that I couldn't do on my own anymore.  It was empowering. For the first time, I had themes that were readable, comfortable, and suited to &lt;strong&gt;how I see&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Until you experience irregular blurry halos coming off of every character in your editor, it's hard to describe how frustrating reading code can be.&lt;/p&gt;

&lt;h3&gt;
  
  
  Tips for Prompting AI
&lt;/h3&gt;

&lt;p&gt;AI doesn’t guess what you want. I had the best results by giving it:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;One task at a time&lt;/li&gt;
&lt;li&gt;Clear small goals&lt;/li&gt;
&lt;li&gt;Specific preferences&lt;/li&gt;
&lt;li&gt;Research for best practices&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Vague or multi-step prompts didn’t work well. Treat it like a calculator: provide direct context and direction, and you’ll get more useful results.&lt;/p&gt;

&lt;h3&gt;
  
  
  Expect to Iterate
&lt;/h3&gt;

&lt;p&gt;It rarely gets everything right on the first try. I often had to refine, delete, and review code carefully. Iteration is part of the process and you have to adapt to that.&lt;/p&gt;

&lt;p&gt;As models improve, the gap between idea and result shrinks—but small adjustments are still needed. With each round, I made progress toward a usable theme.&lt;/p&gt;

&lt;h3&gt;
  
  
  Use the Latest Model
&lt;/h3&gt;

&lt;p&gt;Through experimentation, I found that newer, more capable models consistently delivered better results.  Whether generating code, themes, or documentation.&lt;/p&gt;

&lt;p&gt;Older or less advanced models often struggled. They produced themes that lacked readability or relied on bland, ineffective color palettes, making the output less useful and less creative.&lt;/p&gt;

&lt;h3&gt;
  
  
  Vision Matters
&lt;/h3&gt;

&lt;p&gt;Generative AI won’t decide your goals for you. One thing I didn’t anticipate was how much I needed a clear plan. You have to think like a product designer.  Define what you want, choose the features that matter, and use the result yourself to check if it works.&lt;/p&gt;

&lt;p&gt;Without direction, the output drifts ineffectively. Knowing your end goal helps you steer the process and shape something that truly fits your needs.&lt;/p&gt;

&lt;h3&gt;
  
  
  Final Thoughts
&lt;/h3&gt;

&lt;p&gt;Generative AI helped me fix a long-standing problem. I now have themes that meet both my visual needs and accessibility standards.&lt;/p&gt;

&lt;p&gt;If default themes don’t work for you, AI-powered customization is worth exploring. Provide clear context, iterate patiently, and make accessibility a priority. You don’t have to settle anymore.&lt;/p&gt;

&lt;p&gt;There’s a lot of power here to do good. Improving software for others takes time and effort, but this is one of those tools that lets you fill important gaps without needing a whole team. I plan to keep looking for more of those gaps, and hopefully volunteer my skills with a little help from language models. There’s so much opportunity to improve the tools we all use, and make them usable and enjoyable for more people than ever before.&lt;/p&gt;

&lt;p&gt;Themes published here if you're curious: &lt;a href="https://marketplace.visualstudio.com/items?itemName=michaeljcalkins.wcag-themes" rel="noopener noreferrer"&gt;https://marketplace.visualstudio.com/items?itemName=michaeljcalkins.wcag-themes&lt;/a&gt;&lt;/p&gt;

</description>
      <category>a11y</category>
      <category>vscode</category>
      <category>ai</category>
      <category>discuss</category>
    </item>
  </channel>
</rss>
