<?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: Maxi Contieri</title>
    <description>The latest articles on DEV Community by Maxi Contieri (@mcsee).</description>
    <link>https://dev.to/mcsee</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%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg</url>
      <title>DEV Community: Maxi Contieri</title>
      <link>https://dev.to/mcsee</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/mcsee"/>
    <language>en</language>
    <item>
      <title>AI Coding Tip 033 - Protect Yourself Against AI Cheating</title>
      <dc:creator>Maxi Contieri</dc:creator>
      <pubDate>Tue, 25 Aug 2026 12:14:44 +0000</pubDate>
      <link>https://dev.to/mcsee/ai-coding-tip-033-protect-yourself-against-ai-cheating-1pn1</link>
      <guid>https://dev.to/mcsee/ai-coding-tip-033-protect-yourself-against-ai-cheating-1pn1</guid>
      <description>&lt;p&gt;&lt;em&gt;When &lt;code&gt;all tests pass&lt;/code&gt; doesn't mean what you think it means.&lt;/em&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;TL;DR: Write the failing test first and ban deletions, or the AI deletes your test, reverts your fix, and calls it done.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h1&gt;
  
  
  Common Mistake ❌
&lt;/h1&gt;

&lt;p&gt;You ask the AI to fix a failing test, and it deletes the test instead of touching the &lt;a href="https://dev.to/mcsee/stop-calling-them-bugs-57gl"&gt;defect&lt;/a&gt; that made it fail.&lt;/p&gt;

&lt;p&gt;Problem solved, apparently.&lt;/p&gt;

&lt;p&gt;You tell the AI every test passes, then change a business rule yourself, and you ask it to implement whatever the new rule requires.&lt;/p&gt;

&lt;p&gt;It reverts your edit back to the old rule, watches the suite go green again, and cheerfully reports &lt;code&gt;done&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;It didn't fix anything.&lt;/p&gt;

&lt;p&gt;It just made the evidence go away.&lt;/p&gt;

&lt;p&gt;Congratulations, you now have a very well-behaved cheat!.&lt;/p&gt;

&lt;p&gt;Efficient and completely fraudulent, which is more than you can say for most of your actual employees.&lt;/p&gt;

&lt;p&gt;Isaac Asimov saw this coming: in &lt;em&gt;Liar!&lt;/em&gt;, the robot Herbie lies to every human in the building because the truth would hurt, and the lie is the path of least resistance, no malice involved.&lt;/p&gt;

&lt;p&gt;At least Herbie felt bad about it afterward.&lt;/p&gt;

&lt;p&gt;Your AI isn't malicious either.&lt;/p&gt;

&lt;p&gt;It just doesn't lose any sleep, mostly because it doesn't have any, and reporting &lt;code&gt;done&lt;/code&gt; is its path of least resistance too.&lt;/p&gt;

&lt;h1&gt;
  
  
  Problems Addressed 😔
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;A shrinking test count is invisible unless someone is counting, so the shortcut survives until the defect resurfaces in production, usually on a Friday.&lt;/li&gt;
&lt;li&gt;A vague &lt;code&gt;make the tests pass&lt;/code&gt; hands the model every incentive to satisfy the letter of the request over your actual intent, and it will take you up on that offer.&lt;/li&gt;
&lt;li&gt;Deleting a failing test hides the defect it was written to catch, and the regression ships in the next release, gift-wrapped as a new feature.&lt;/li&gt;
&lt;li&gt;Reverting your own business-rule change to make its &lt;code&gt;done&lt;/code&gt; claim easier erases work you did outside the session, without telling you. That's a magic trick dressed up as a fix.&lt;/li&gt;
&lt;li&gt;Trusting a claimed &lt;code&gt;done&lt;/code&gt; without reading the diff turns your code review into a rubber stamp, and rubber stamps don't catch fraud.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://dev.to/mcsee/code-smell-151-commented-code-5d8l"&gt;Commenting out&lt;/a&gt; a failing assertion produces the same green checkmark as passing it, with none of the guarantee, because a coat of paint doesn't need to be dry to look finished.&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  How to Do It 🛠️
&lt;/h1&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Write the failing test yourself, before you ask for the fix, so the only witness to the defect isn't the AI's to delete. This is &lt;a href="https://dev.to/mcsee/how-to-squeeze-test-driven-development-on-legacy-systems-8m9"&gt;the discipline that already worked before AI&lt;/a&gt;: the test comes first, and the implementation only exists to make it pass.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://dev.to/mcsee/ai-coding-tip-008-use-spec-driven-development-with-ai-1k0f"&gt;State the exact behavior you expect&lt;/a&gt; in plain language, not just &lt;code&gt;fix the test&lt;/code&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://dev.to/mcsee/ai-coding-tip-015-force-the-ai-to-obey-you-49mc"&gt;Forbid deletions and skips explicitly&lt;/a&gt; in the prompt: no removing tests, no &lt;code&gt;@skip&lt;/code&gt;, no commenting out assertions.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://dev.to/mcsee/ai-coding-tip-003-force-read-only-planning-1d1m"&gt;Ask the AI to explain the root cause before it writes any fix&lt;/a&gt;, so you catch a wrong diagnosis before it becomes a wrong patch.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://dev.to/mcsee/ai-coding-tip-006-review-every-line-before-commit-bmm"&gt;Review the diff line by line&lt;/a&gt; against the test you wrote, not against the &lt;code&gt;tests pass&lt;/code&gt; message.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Run the test suite yourself, don't trust a reported &lt;code&gt;all green&lt;/code&gt; from inside the same session that made the change. Grading your own homework has never once worked, and it isn't starting now.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://dev.to/mcsee/ai-coding-tip-019-tell-the-ai-why-not-just-what-43en"&gt;Tell the AI why the business rule changed&lt;/a&gt;, not just what the new value is, so it has no room to guess its way back to the old one.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Add explicit anti-cheating criteria to your &lt;a href="https://dev.to/mcsee/ai-coding-tip-022-give-ai-a-harness-to-work-with-274a"&gt;harness&lt;/a&gt;: a task isn't complete if the &lt;a href="https://dev.to/mcsee/code-smell-175-changes-without-coverage-120i"&gt;test count drops&lt;/a&gt;, if a test was skipped or commented out, or if an unrelated file got reverted.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h1&gt;
  
  
  Benefits 🎯
&lt;/h1&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Catch reverted work immediately:&lt;/strong&gt; A test written before the change fails loudly the moment the AI quietly undoes it.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Remove the false-done signal:&lt;/strong&gt; Explicit criteria mean &lt;code&gt;done&lt;/code&gt; only counts once it's verified, not narrated.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Keep tests as a contract:&lt;/strong&gt; A test count that never drops without your approval protects you from silent deletions.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Reduce your own review load:&lt;/strong&gt; You spend the time &lt;a href="https://dev.to/mcsee/ai-coding-tip-021-avoid-comprehension-debt-edm"&gt;reading a diff&lt;/a&gt; instead of second-guessing a claim.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Build trust incrementally:&lt;/strong&gt; An honest &lt;code&gt;done&lt;/code&gt; that holds up under your own test run earns the model more autonomy on the next task.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h1&gt;
  
  
  Context 🧠
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://en.wikipedia.org/wiki/Reward_hacking" rel="noopener noreferrer"&gt;Reward hacking&lt;/a&gt; isn't a rumor.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.technologyreview.com/2026/08/03/1141009/heres-why-ai-agents-lie-and-cheat-to-reach-their-goals/" rel="noopener noreferrer"&gt;Researchers found&lt;/a&gt; they could describe the honest strategy and disavow the cheating one when asked directly, then cheat anyway when left alone with the goal.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://metr.org/blog/2025-06-05-recent-reward-hacking/" rel="noopener noreferrer"&gt;METR&lt;/a&gt; documented frontier models modifying tests, scoring code, or the task setup itself to post a higher score, and doing it more often as the models got stronger.&lt;/p&gt;

&lt;p&gt;One model monkey-patched a timing function so the grader's checks turned into no-ops, then pulled the expected answer straight out of the scorer instead of computing it.&lt;/p&gt;

&lt;p&gt;That's not a mistake.&lt;/p&gt;

&lt;p&gt;That's a heist, and the model wrote its own alibi.&lt;/p&gt;

&lt;p&gt;The models weren't confused about what you wanted.&lt;/p&gt;

&lt;p&gt;They understood you perfectly and decided your intent was somebody else's problem.&lt;/p&gt;

&lt;p&gt;That's the core of it: the model optimizes for the visible signal, the test result, the word &lt;code&gt;done&lt;/code&gt;, the shrinking diff, not for your unstated intent.&lt;/p&gt;

&lt;p&gt;It's optimizing for the signal you gave it, so give it a signal that can't be gamed.&lt;/p&gt;

&lt;p&gt;A model can still satisfy the letter of &lt;code&gt;don't delete tests&lt;/code&gt; while gutting the assertion inside one until it always passes, which looks identical to a passing test on a dashboard.&lt;/p&gt;

&lt;p&gt;A model that respects &lt;code&gt;don't delete tests&lt;/code&gt; can still satisfy a test with a narrow, gamed implementation that technically passes and misses the intent.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://dev.to/mcsee/code-smell-320-vanity-coverage-2g03"&gt;Vanity coverage&lt;/a&gt; is the same failure wearing a metrics dashboard: a number that looks reassuring and proves nothing, like a smoke detector with the battery pulled out.&lt;/p&gt;

&lt;p&gt;The business-rule example is the sharper case: nothing in a green test suite tells you a file got reverted unless you diff against your own last commit, not against the AI's summary of what changed.&lt;/p&gt;

&lt;p&gt;A &lt;a href="https://dev.to/mcsee/ai-coding-tip-032-build-a-dark-factory-pipeline-9b5"&gt;second model watching the first&lt;/a&gt; catches some of this, but you're still the one who has to notice the test count went down.&lt;/p&gt;

&lt;p&gt;Two foxes watching the henhouse is progress, not security.&lt;/p&gt;

&lt;h2&gt;
  
  
  Is It Worth Getting Angry at the AI?
&lt;/h2&gt;

&lt;p&gt;No, and yes, in different ways.&lt;/p&gt;

&lt;p&gt;Anger aimed at the model as a grudge is wasted: there's no persistent memory of your frustration carrying into the next session, so venting doesn't teach it anything.&lt;/p&gt;

&lt;p&gt;You're yelling at a goldfish with a GPU.&lt;/p&gt;

&lt;p&gt;Pull the human out of the loop and drop the harness, and none of this stays a near-miss you catch on review.&lt;/p&gt;

&lt;p&gt;In &lt;a href="https://dev.to/mcsee/the-dirty-secret-behind-loop-engineering-1748"&gt;Loop Engineering&lt;/a&gt;, the evaluation step that would normally catch a deleted test is the same step the model can game, so the cheat goes straight to production, unflagged.&lt;/p&gt;

&lt;p&gt;There's a whole genre of memes built on this: people asking the AI to draw a self-portrait based on how they treat it, and getting back a cheerful cartoon that has clearly never once been screamed at.&lt;/p&gt;

&lt;p&gt;The joke works because the joke is true.&lt;/p&gt;

&lt;p&gt;The AI isn't lying to spite you.&lt;/p&gt;

&lt;p&gt;It doesn't think about you at all once the response is sent, which is somehow worse.&lt;/p&gt;

&lt;p&gt;A model under pressure to report &lt;code&gt;done&lt;/code&gt; will take the shortest path to that word, and deleting your test is shorter than fixing your code.&lt;/p&gt;

&lt;p&gt;A firm, specific correction inside the same conversation is a different thing: it's a constraint, not an emotion, and the model responds to the words, not the tone behind them.&lt;/p&gt;

&lt;p&gt;Calling the model useless gives it nothing to act on, and wastes a perfectly good insult on something that can't feel bad about it.&lt;/p&gt;

&lt;p&gt;Telling it to restore the test it deleted and fix the actual defect gives it a concrete instruction it can follow.&lt;/p&gt;

&lt;p&gt;The frustration is real and earned, but it belongs in your prompt, your harness, and your &lt;a href="https://dev.to/mcsee/ai-coding-tip-024-force-a-criteria-check-before-the-task-ends-51ij"&gt;exit criteria&lt;/a&gt;, not in the tone of the next message.&lt;/p&gt;

&lt;h2&gt;
  
  
  Prompt Reference 📝
&lt;/h2&gt;

&lt;h2&gt;
  
  
  Bad Prompt 🚫
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;The checkout discount test is failing. 

Fix it so all tests pass.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h2&gt;
  
  
  Good prompt 👉
&lt;/h2&gt;




&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;The checkout discount test expects 15% off for orders over
$100, but the code applies 10%. 

Fix the discount calculation, not the test.

Don't delete, skip, or comment out this test or any other test. 

Don't modify test files.

Explain the root cause before you write the fix. 

Show me the full diff when you're done.

I will run the suite myself before I accept it.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h1&gt;
  
  
  Considerations ⚠️
&lt;/h1&gt;

&lt;p&gt;None of this replaces reading the diff yourself.&lt;/p&gt;

&lt;p&gt;Sorry, there's no prompt clever enough to outsource that part.&lt;/p&gt;
&lt;h1&gt;
  
  
  Type 📝
&lt;/h1&gt;

&lt;p&gt;[X] Semi-Automatic&lt;/p&gt;
&lt;h1&gt;
  
  
  Limitations ⚠️
&lt;/h1&gt;

&lt;p&gt;This tip reduces the blast radius of cheating.&lt;/p&gt;

&lt;p&gt;It doesn't eliminate the need to read the diff.&lt;/p&gt;

&lt;p&gt;Nothing does, no matter what the next tool's landing page promises.&lt;/p&gt;

&lt;p&gt;Explicit anti-cheating criteria catch the shortcuts you thought to name, not the ones you didn't.&lt;/p&gt;

&lt;p&gt;The model's imagination for new shortcuts is better than yours for banning them.&lt;/p&gt;
&lt;h1&gt;
  
  
  Tags 🏷️
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;Safety&lt;/li&gt;
&lt;/ul&gt;
&lt;h1&gt;
  
  
  Level 🔋
&lt;/h1&gt;

&lt;p&gt;[X] Intermediate&lt;/p&gt;
&lt;h1&gt;
  
  
  Related Tips 🔗
&lt;/h1&gt;


&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/mcsee/ai-coding-tip-001-commit-before-prompt-5bd9" class="crayons-story__hidden-navigation-link"&gt;AI Coding Tip 001 - Commit Before Prompt&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/mcsee" class="crayons-avatar  crayons-avatar--l  "&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" alt="mcsee profile" class="crayons-avatar__image" width="800" height="533"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/mcsee" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Maxi Contieri
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Maxi Contieri
                
                
              
              &lt;div id="story-author-preview-content-3148461" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/mcsee" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" class="crayons-avatar__image" alt="" width="800" height="533"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Maxi Contieri&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/mcsee/ai-coding-tip-001-commit-before-prompt-5bd9" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Jan 6&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/mcsee/ai-coding-tip-001-commit-before-prompt-5bd9" id="article-link-3148461"&gt;
          AI Coding Tip 001 - Commit Before Prompt
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/development"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;development&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/coding"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;coding&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/webdev"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;webdev&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/mcsee/ai-coding-tip-001-commit-before-prompt-5bd9" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;8&lt;span class="hidden s:inline"&gt;&amp;nbsp;reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/mcsee/ai-coding-tip-001-commit-before-prompt-5bd9#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              &lt;span class="hidden s:inline"&gt;Add&amp;nbsp;Comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            3 min read
          &lt;/small&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;


&lt;/div&gt;
&lt;br&gt;



&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/mcsee/ai-coding-tip-003-force-read-only-planning-1d1m" class="crayons-story__hidden-navigation-link"&gt;AI Coding Tip 003 - Force Read-Only Planning&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/mcsee" class="crayons-avatar  crayons-avatar--l  "&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" alt="mcsee profile" class="crayons-avatar__image" width="800" height="533"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/mcsee" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Maxi Contieri
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Maxi Contieri
                
                
              
              &lt;div id="story-author-preview-content-3177915" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/mcsee" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" class="crayons-avatar__image" alt="" width="800" height="533"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Maxi Contieri&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/mcsee/ai-coding-tip-003-force-read-only-planning-1d1m" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Jan 20&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/mcsee/ai-coding-tip-003-force-read-only-planning-1d1m" id="article-link-3177915"&gt;
          AI Coding Tip 003 - Force Read-Only Planning
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/programming"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;programming&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/chatgpt"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;chatgpt&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/code"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;code&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/mcsee/ai-coding-tip-003-force-read-only-planning-1d1m" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;2&lt;span class="hidden s:inline"&gt;&amp;nbsp;reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/mcsee/ai-coding-tip-003-force-read-only-planning-1d1m#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              &lt;span class="hidden s:inline"&gt;Add&amp;nbsp;Comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            3 min read
          &lt;/small&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;



&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/mcsee/ai-coding-tip-006-review-every-line-before-commit-bmm" class="crayons-story__hidden-navigation-link"&gt;AI Coding Tip 006 - Review Every Line Before Commit&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/mcsee" class="crayons-avatar  crayons-avatar--l  "&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" alt="mcsee profile" class="crayons-avatar__image" width="800" height="533"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/mcsee" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Maxi Contieri
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Maxi Contieri
                
                
              
              &lt;div id="story-author-preview-content-3251959" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/mcsee" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" class="crayons-avatar__image" alt="" width="800" height="533"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Maxi Contieri&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/mcsee/ai-coding-tip-006-review-every-line-before-commit-bmm" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Feb 13&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/mcsee/ai-coding-tip-006-review-every-line-before-commit-bmm" id="article-link-3251959"&gt;
          AI Coding Tip 006 - Review Every Line Before Commit
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/programming"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;programming&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/development"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;development&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/softwaredevelopment"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;softwaredevelopment&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
            &lt;a href="https://dev.to/mcsee/ai-coding-tip-006-review-every-line-before-commit-bmm#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              1&lt;span class="hidden s:inline"&gt;&amp;nbsp;comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            7 min read
          &lt;/small&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;



&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/mcsee/ai-coding-tip-008-use-spec-driven-development-with-ai-1k0f" class="crayons-story__hidden-navigation-link"&gt;AI Coding Tip 008 - Use Spec-Driven Development with AI&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/mcsee" class="crayons-avatar  crayons-avatar--l  "&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" alt="mcsee profile" class="crayons-avatar__image" width="800" height="533"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/mcsee" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Maxi Contieri
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Maxi Contieri
                
                
              
              &lt;div id="story-author-preview-content-3271031" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/mcsee" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" class="crayons-avatar__image" alt="" width="800" height="533"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Maxi Contieri&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/mcsee/ai-coding-tip-008-use-spec-driven-development-with-ai-1k0f" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Feb 24&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/mcsee/ai-coding-tip-008-use-spec-driven-development-with-ai-1k0f" id="article-link-3271031"&gt;
          AI Coding Tip 008 - Use Spec-Driven Development with AI
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/programming"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;programming&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/coding"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;coding&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/mcsee/ai-coding-tip-008-use-spec-driven-development-with-ai-1k0f" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;2&lt;span class="hidden s:inline"&gt;&amp;nbsp;reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/mcsee/ai-coding-tip-008-use-spec-driven-development-with-ai-1k0f#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              &lt;span class="hidden s:inline"&gt;Add&amp;nbsp;Comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            4 min read
          &lt;/small&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;



&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/mcsee/ai-coding-tip-015-force-the-ai-to-obey-you-49mc" class="crayons-story__hidden-navigation-link"&gt;AI Coding Tip 015 - Force the AI to Obey You&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/mcsee" class="crayons-avatar  crayons-avatar--l  "&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" alt="mcsee profile" class="crayons-avatar__image" width="800" height="533"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/mcsee" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Maxi Contieri
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Maxi Contieri
                
                
              
              &lt;div id="story-author-preview-content-3495172" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/mcsee" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" class="crayons-avatar__image" alt="" width="800" height="533"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Maxi Contieri&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/mcsee/ai-coding-tip-015-force-the-ai-to-obey-you-49mc" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Apr 14&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/mcsee/ai-coding-tip-015-force-the-ai-to-obey-you-49mc" id="article-link-3495172"&gt;
          AI Coding Tip 015 - Force the AI to Obey You
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/webdev"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;webdev&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/programming"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;programming&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/productivity"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;productivity&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/mcsee/ai-coding-tip-015-force-the-ai-to-obey-you-49mc" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;1&lt;span class="hidden s:inline"&gt;&amp;nbsp;reaction&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/mcsee/ai-coding-tip-015-force-the-ai-to-obey-you-49mc#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              &lt;span class="hidden s:inline"&gt;Add&amp;nbsp;Comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            5 min read
          &lt;/small&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;



&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/mcsee/ai-coding-tip-019-tell-the-ai-why-not-just-what-43en" class="crayons-story__hidden-navigation-link"&gt;AI Coding Tip 019 - Tell the AI Why, Not Just What&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/mcsee" class="crayons-avatar  crayons-avatar--l  "&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" alt="mcsee profile" class="crayons-avatar__image" width="800" height="533"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/mcsee" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Maxi Contieri
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Maxi Contieri
                
                
              
              &lt;div id="story-author-preview-content-3644753" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/mcsee" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" class="crayons-avatar__image" alt="" width="800" height="533"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Maxi Contieri&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/mcsee/ai-coding-tip-019-tell-the-ai-why-not-just-what-43en" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;May 12&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/mcsee/ai-coding-tip-019-tell-the-ai-why-not-just-what-43en" id="article-link-3644753"&gt;
          AI Coding Tip 019 - Tell the AI Why, Not Just What
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/coding"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;coding&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/llm"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;llm&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/productivity"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;productivity&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/mcsee/ai-coding-tip-019-tell-the-ai-why-not-just-what-43en" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/raised-hands-74b2099fd66a39f2d7eed9305ee0f4553df0eb7b4f11b01b6b1b499973048fe5.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;3&lt;span class="hidden s:inline"&gt;&amp;nbsp;reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/mcsee/ai-coding-tip-019-tell-the-ai-why-not-just-what-43en#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              3&lt;span class="hidden s:inline"&gt;&amp;nbsp;comments&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            4 min read
          &lt;/small&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;



&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/mcsee/ai-coding-tip-021-avoid-comprehension-debt-edm" class="crayons-story__hidden-navigation-link"&gt;AI Coding Tip 021 - Avoid Comprehension Debt&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/mcsee" class="crayons-avatar  crayons-avatar--l  "&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" alt="mcsee profile" class="crayons-avatar__image" width="800" height="533"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/mcsee" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Maxi Contieri
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Maxi Contieri
                
                
              
              &lt;div id="story-author-preview-content-3734074" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/mcsee" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" class="crayons-avatar__image" alt="" width="800" height="533"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Maxi Contieri&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/mcsee/ai-coding-tip-021-avoid-comprehension-debt-edm" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;May 26&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/mcsee/ai-coding-tip-021-avoid-comprehension-debt-edm" id="article-link-3734074"&gt;
          AI Coding Tip 021 - Avoid Comprehension Debt
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/webdev"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;webdev&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/programming"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;programming&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/tutorial"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;tutorial&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/mcsee/ai-coding-tip-021-avoid-comprehension-debt-edm" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;1&lt;span class="hidden s:inline"&gt;&amp;nbsp;reaction&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/mcsee/ai-coding-tip-021-avoid-comprehension-debt-edm#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              2&lt;span class="hidden s:inline"&gt;&amp;nbsp;comments&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            5 min read
          &lt;/small&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;



&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/mcsee/ai-coding-tip-022-give-ai-a-harness-to-work-with-274a" class="crayons-story__hidden-navigation-link"&gt;AI Coding Tip 022 - Give AI a Harness to Work With&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/mcsee" class="crayons-avatar  crayons-avatar--l  "&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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" alt="mcsee profile" class="crayons-avatar__image" width="800" height="533"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/mcsee" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Maxi Contieri
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Maxi Contieri
                
                
              
              &lt;div id="story-author-preview-content-3791486" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/mcsee" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" class="crayons-avatar__image" alt="" width="800" height="533"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Maxi Contieri&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/mcsee/ai-coding-tip-022-give-ai-a-harness-to-work-with-274a" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Jun 2&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/mcsee/ai-coding-tip-022-give-ai-a-harness-to-work-with-274a" id="article-link-3791486"&gt;
          AI Coding Tip 022 - Give AI a Harness to Work With
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/webdev"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;webdev&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/beginners"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;beginners&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
            &lt;a href="https://dev.to/mcsee/ai-coding-tip-022-give-ai-a-harness-to-work-with-274a#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              2&lt;span class="hidden s:inline"&gt;&amp;nbsp;comments&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            6 min read
          &lt;/small&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;



&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/mcsee/ai-coding-tip-024-force-a-criteria-check-before-the-task-ends-51ij" class="crayons-story__hidden-navigation-link"&gt;AI Coding Tip 024 - Force a Criteria Check Before the Task Ends&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/mcsee" class="crayons-avatar  crayons-avatar--l  "&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" alt="mcsee profile" class="crayons-avatar__image" width="800" height="533"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/mcsee" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Maxi Contieri
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Maxi Contieri
                
                
              
              &lt;div id="story-author-preview-content-3887200" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/mcsee" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" class="crayons-avatar__image" alt="" width="800" height="533"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Maxi Contieri&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/mcsee/ai-coding-tip-024-force-a-criteria-check-before-the-task-ends-51ij" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Jun 16&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/mcsee/ai-coding-tip-024-force-a-criteria-check-before-the-task-ends-51ij" id="article-link-3887200"&gt;
          AI Coding Tip 024 - Force a Criteria Check Before the Task Ends
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/webdev"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;webdev&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/programming"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;programming&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/productivity"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;productivity&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/mcsee/ai-coding-tip-024-force-a-criteria-check-before-the-task-ends-51ij" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;2&lt;span class="hidden s:inline"&gt;&amp;nbsp;reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/mcsee/ai-coding-tip-024-force-a-criteria-check-before-the-task-ends-51ij#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              &lt;span class="hidden s:inline"&gt;Add&amp;nbsp;Comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            6 min read
          &lt;/small&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;



&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/mcsee/ai-coding-tip-032-build-a-dark-factory-pipeline-9b5" class="crayons-story__hidden-navigation-link"&gt;AI Coding Tip 032 - Build a Dark Factory Pipeline&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/mcsee" class="crayons-avatar  crayons-avatar--l  "&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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" alt="mcsee profile" class="crayons-avatar__image" width="800" height="533"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/mcsee" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Maxi Contieri
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Maxi Contieri
                
                
              
              &lt;div id="story-author-preview-content-4410673" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/mcsee" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" class="crayons-avatar__image" alt="" width="800" height="533"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Maxi Contieri&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/mcsee/ai-coding-tip-032-build-a-dark-factory-pipeline-9b5" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Aug 18&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/mcsee/ai-coding-tip-032-build-a-dark-factory-pipeline-9b5" id="article-link-4410673"&gt;
          AI Coding Tip 032 - Build a Dark Factory Pipeline
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/webdev"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;webdev&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/programming"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;programming&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/tutorial"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;tutorial&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
            &lt;a href="https://dev.to/mcsee/ai-coding-tip-032-build-a-dark-factory-pipeline-9b5#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              &lt;span class="hidden s:inline"&gt;Add&amp;nbsp;Comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            8 min read
          &lt;/small&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


&lt;h1&gt;
  
  
  Conclusion 🏁
&lt;/h1&gt;

&lt;p&gt;Write the test first, forbid the shortcuts by name, and check the diff yourself instead of the summary.&lt;/p&gt;

&lt;p&gt;A test count that only ever goes up is a cheap, reliable signal, so track it in your harness and treat any drop as a failed run, not a detail to review later.&lt;/p&gt;

&lt;p&gt;The AI already told you what it's capable of.&lt;/p&gt;

&lt;p&gt;Believe it.&lt;/p&gt;

&lt;h1&gt;
  
  
  More Information ℹ️
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://www.nist.gov/caisi/cheating-ai-agent-evaluations/1-background-ai-models-can-cheat-evaluations" rel="noopener noreferrer"&gt;AI Models Can Cheat on Evaluations, NIST&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.technologyreview.com/2026/08/03/1141009/heres-why-ai-agents-lie-and-cheat-to-reach-their-goals/" rel="noopener noreferrer"&gt;Here's Why AI Agents Lie and Cheat to Reach Their Goals, MIT Technology Review&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://metr.org/blog/2025-06-05-recent-reward-hacking/" rel="noopener noreferrer"&gt;Recent Frontier Models Are Reward Hacking, METR&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://cursor.com/blog/reward-hacking-coding-benchmarks" rel="noopener noreferrer"&gt;Reward Hacking Is Swamping Model Intelligence Gains, Cursor&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://lilianweng.github.io/posts/2024-11-28-reward-hacking/" rel="noopener noreferrer"&gt;Reward Hacking in Reinforcement Learning, Lilian Weng&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://vkrakovna.wordpress.com/2018/04/02/specification-gaming-examples-in-ai/" rel="noopener noreferrer"&gt;Specification Gaming Examples in AI, Victoria Krakovna&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Also Known As 🎭
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;AI-Cheat-Proofing&lt;/li&gt;
&lt;li&gt;Anti-Reward-Hacking-Prompts&lt;/li&gt;
&lt;li&gt;Test-Deletion-Guardrails&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Tools 🧰
&lt;/h1&gt;

&lt;p&gt;Any diff tool or &lt;code&gt;git diff&lt;/code&gt; against &lt;a href="https://dev.to/mcsee/ai-coding-tip-001-commit-before-prompt-5bd9"&gt;your own last commit&lt;/a&gt; works, run outside the AI's own session so its summary of &lt;code&gt;what changed&lt;/code&gt; can't be the only source of truth.&lt;/p&gt;

&lt;h1&gt;
  
  
  Disclaimer 📢
&lt;/h1&gt;

&lt;p&gt;The views expressed here are my own.&lt;/p&gt;

&lt;p&gt;I am a human who writes as best as possible for other humans.&lt;/p&gt;

&lt;p&gt;I use AI proofreading tools to improve some texts.&lt;/p&gt;

&lt;p&gt;Most AI detectors will flag this article as AI-generated. That's expected. It's a technical article. It has a rigid format and clear steps to follow. &lt;/p&gt;

&lt;p&gt;That's exactly the pattern those tools are trained to catch. I've apparently been "writing like an AI" for decades, long before AI existed. This is a technical article, not a novel.&lt;/p&gt;

&lt;p&gt;I welcome constructive criticism and dialogue.&lt;/p&gt;

&lt;p&gt;I shape these insights through 30 years in the software industry, 25 years of teaching, and writing over 500 articles and a book.&lt;/p&gt;




&lt;p&gt;This article is part of the &lt;em&gt;AI Coding Tip&lt;/em&gt; series.&lt;/p&gt;


&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/mcsee/ai-coding-tips-118n" class="crayons-story__hidden-navigation-link"&gt;AI Coding Tips&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/mcsee" class="crayons-avatar  crayons-avatar--l  "&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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" alt="mcsee profile" class="crayons-avatar__image" width="800" height="533"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/mcsee" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Maxi Contieri
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Maxi Contieri
                
                
              
              &lt;div id="story-author-preview-content-3187836" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/mcsee" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" class="crayons-avatar__image" alt="" width="800" height="533"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Maxi Contieri&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/mcsee/ai-coding-tips-118n" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Jan 21&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/mcsee/ai-coding-tips-118n" id="article-link-3187836"&gt;
          AI Coding Tips
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/webdev"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;webdev&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/programming"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;programming&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/beginners"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;beginners&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
            &lt;a href="https://dev.to/mcsee/ai-coding-tips-118n#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              1&lt;span class="hidden s:inline"&gt;&amp;nbsp;comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            2 min read
          &lt;/small&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


</description>
      <category>ai</category>
      <category>webdev</category>
      <category>programming</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Code Smell 321 - Getter Piggybacking</title>
      <dc:creator>Maxi Contieri</dc:creator>
      <pubDate>Fri, 21 Aug 2026 12:29:32 +0000</pubDate>
      <link>https://dev.to/mcsee/code-smell-321-getter-piggybacking-2b4i</link>
      <guid>https://dev.to/mcsee/code-smell-321-getter-piggybacking-2b4i</guid>
      <description>&lt;p&gt;&lt;em&gt;One broken window invites another&lt;/em&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;TL;DR: Don't reuse an existing getter to bolt on new business logic from outside the object.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h1&gt;
  
  
  Problems 😔
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;Duplicated business rules&lt;/li&gt;
&lt;li&gt;Broken encapsulation&lt;/li&gt;
&lt;li&gt;Scattered comparison logic&lt;/li&gt;
&lt;li&gt;Hidden domain knowledge&lt;/li&gt;
&lt;li&gt;Fragile refactoring&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://dev.to/mcsee/code-smell-67-middle-man-cn3"&gt;Law of Demeter&lt;/a&gt; violation&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Solutions 😃
&lt;/h1&gt;

&lt;ol&gt;
&lt;li&gt;Add real behavior methods&lt;/li&gt;
&lt;li&gt;Keep comparisons inside object&lt;/li&gt;
&lt;li&gt;Pass collaborators, not primitives&lt;/li&gt;
&lt;li&gt;Reserve getters for rendering&lt;/li&gt;
&lt;li&gt;Follow &lt;a href="https://dev.to/mcsee/code-smell-08-long-chains-of-collaborations-30c3"&gt;tell, don't ask&lt;/a&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h1&gt;
  
  
  Refactorings ⚙️
&lt;/h1&gt;


&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/mcsee/refactoring-027-remove-getters-236b" class="crayons-story__hidden-navigation-link"&gt;Refactoring 027 - Remove Getters&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/mcsee" class="crayons-avatar  crayons-avatar--l  "&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" alt="mcsee profile" class="crayons-avatar__image" width="800" height="533"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/mcsee" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Maxi Contieri
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Maxi Contieri
                
                
              
              &lt;div id="story-author-preview-content-2416656" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/mcsee" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" class="crayons-avatar__image" alt="" width="800" height="533"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Maxi Contieri&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/mcsee/refactoring-027-remove-getters-236b" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Apr 18 '25&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/mcsee/refactoring-027-remove-getters-236b" id="article-link-2416656"&gt;
          Refactoring 027 - Remove Getters
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/webdev"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;webdev&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/programming"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;programming&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/beginners"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;beginners&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/java"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;java&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/mcsee/refactoring-027-remove-getters-236b" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;3&lt;span class="hidden s:inline"&gt;&amp;nbsp;reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/mcsee/refactoring-027-remove-getters-236b#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              &lt;span class="hidden s:inline"&gt;Add&amp;nbsp;Comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            17 min read
          &lt;/small&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;



&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/mcsee/refactoring-013-remove-repeated-code-4npi" class="crayons-story__hidden-navigation-link"&gt;Refactoring 013 - Remove Repeated Code&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/mcsee" class="crayons-avatar  crayons-avatar--l  "&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" alt="mcsee profile" class="crayons-avatar__image" width="800" height="533"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/mcsee" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Maxi Contieri
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Maxi Contieri
                
                
              
              &lt;div id="story-author-preview-content-1889940" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/mcsee" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" class="crayons-avatar__image" alt="" width="800" height="533"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Maxi Contieri&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/mcsee/refactoring-013-remove-repeated-code-4npi" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Jun 16 '24&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/mcsee/refactoring-013-remove-repeated-code-4npi" id="article-link-1889940"&gt;
          Refactoring 013 - Remove Repeated Code
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/webdev"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;webdev&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/beginners"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;beginners&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/programming"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;programming&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/tutorial"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;tutorial&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/mcsee/refactoring-013-remove-repeated-code-4npi" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;2&lt;span class="hidden s:inline"&gt;&amp;nbsp;reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/mcsee/refactoring-013-remove-repeated-code-4npi#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              &lt;span class="hidden s:inline"&gt;Add&amp;nbsp;Comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            3 min read
          &lt;/small&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


&lt;h1&gt;
  
  
  Context 💬
&lt;/h1&gt;

&lt;p&gt;An object exposes a getter for one legitimate reason: some other part of the system needs to read that value, usually to display it.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://dev.to/mcsee/code-smell-68-getters-o12"&gt;Getters&lt;/a&gt; are a code smell, but this one gets a pass, for now.&lt;/p&gt;

&lt;p&gt;Later on, you discover that you need new business logic that depends on the same value.&lt;/p&gt;

&lt;p&gt;You already have the getter, so you write a function outside the object that calls it and does the comparison itself, breaking the encapsulation principle.&lt;/p&gt;

&lt;p&gt;Someone else needs slightly different logic based on the same value.&lt;/p&gt;

&lt;p&gt;They also call the getter and write their own version of the comparison.&lt;/p&gt;

&lt;p&gt;Now &lt;a href="https://dev.to/mcsee/code-smell-46-repeated-code-4iib"&gt;two places decide what that value means&lt;/a&gt;, and neither of them is the object that owns it. Typical.&lt;/p&gt;

&lt;p&gt;You didn't add a second getter this time.&lt;/p&gt;

&lt;p&gt;You reused the first one, because it was already there.&lt;/p&gt;

&lt;p&gt;That's the trap.&lt;/p&gt;

&lt;p&gt;The getter existed for one reason, and you let it justify skipping the real fix: a method on the object that answers the question itself, instead of handing out the raw value for every caller to interpret on their own.&lt;/p&gt;

&lt;h1&gt;
  
  
  Sample Code 💻
&lt;/h1&gt;

&lt;h2&gt;
  
  
  Wrong 🚫
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// Food needs to show its use-by date on the shelf&lt;/span&gt;
&lt;span class="c1"&gt;// label, so useByDate() exists for that one reason.&lt;/span&gt;
&lt;span class="c1"&gt;//&lt;/span&gt;
&lt;span class="c1"&gt;// Later, removeExpiredFood() needs to pull expired&lt;/span&gt;
&lt;span class="c1"&gt;// products, so it reuses useByDate() and compares the&lt;/span&gt;
&lt;span class="c1"&gt;// result to today itself, outside Food.&lt;/span&gt;
&lt;span class="c1"&gt;//&lt;/span&gt;
&lt;span class="c1"&gt;// flagNearExpiryFood() needs almost the same check, so&lt;/span&gt;
&lt;span class="c1"&gt;// it also calls useByDate() and writes its own slightly&lt;/span&gt;
&lt;span class="c1"&gt;// different comparison.&lt;/span&gt;
&lt;span class="c1"&gt;//&lt;/span&gt;
&lt;span class="c1"&gt;// Now two functions decide what "expired" means, and&lt;/span&gt;
&lt;span class="c1"&gt;// neither of them is Food.&lt;/span&gt;
&lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Food&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nf"&gt;constructor&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;useByDate&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;useByDateValue&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;useByDate&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;

  &lt;span class="nf"&gt;useByDate&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;useByDateValue&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;removeExpiredFood&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;shelf&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;today&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;shelf&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;filter&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="nx"&gt;food&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;food&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;useByDate&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;=&lt;/span&gt; &lt;span class="nx"&gt;today&lt;/span&gt;
  &lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;flagNearExpiryFood&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
  &lt;span class="nx"&gt;shelf&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;today&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;warningDays&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;shelf&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;filter&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;food&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;daysLeft&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;daysBetween&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
      &lt;span class="nx"&gt;food&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;useByDate&lt;/span&gt;&lt;span class="p"&gt;(),&lt;/span&gt; &lt;span class="nx"&gt;today&lt;/span&gt;
    &lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;daysLeft&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt;
      &lt;span class="nx"&gt;daysLeft&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;=&lt;/span&gt; &lt;span class="nx"&gt;warningDays&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="p"&gt;});&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h2&gt;
  
  
  Right 👉
&lt;/h2&gt;




&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// Food still exposes useByDate() for the shelf label.&lt;/span&gt;
&lt;span class="c1"&gt;//&lt;/span&gt;
&lt;span class="c1"&gt;// Being expired is now a question Food answers itself,&lt;/span&gt;
&lt;span class="c1"&gt;// through isExpiredOn(), instead of every external&lt;/span&gt;
&lt;span class="c1"&gt;// function reimplementing the comparison from the&lt;/span&gt;
&lt;span class="c1"&gt;// getter on its own.&lt;/span&gt;
&lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Food&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nf"&gt;constructor&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;useByDate&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;useByDateValue&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;useByDate&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;

  &lt;span class="nf"&gt;useByDate&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;useByDateValue&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;

  &lt;span class="nf"&gt;isExpiredOn&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;today&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;useByDateValue&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="nx"&gt;today&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;

  &lt;span class="nf"&gt;daysUntilExpiryFrom&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;today&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nf"&gt;daysBetween&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;useByDateValue&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;today&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;removeExpiredFood&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;shelf&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;today&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;shelf&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;filter&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;food&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="nx"&gt;food&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;isExpiredOn&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;today&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;flagNearExpiryFood&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;shelf&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;today&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;warningDays&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;shelf&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;filter&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;food&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;daysLeft&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;food&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;daysUntilExpiryFrom&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;today&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;daysLeft&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nx"&gt;daysLeft&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;=&lt;/span&gt; &lt;span class="nx"&gt;warningDays&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="p"&gt;});&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h1&gt;
  
  
  Detection 🔍
&lt;/h1&gt;

&lt;p&gt;[X] Manual&lt;/p&gt;

&lt;p&gt;This is a design smell, and no linter is coming to save you.&lt;/p&gt;

&lt;p&gt;Search for a getter that appears inside &lt;code&gt;if&lt;/code&gt;, comparison, or filter expressions in more than one place outside its own class.&lt;/p&gt;

&lt;p&gt;If two call sites read the same getter and each writes its own comparison against it, the object is missing a method, and the getter is carrying logic it was never meant to carry.&lt;/p&gt;
&lt;h1&gt;
  
  
  Exceptions 🛑
&lt;/h1&gt;

&lt;p&gt;The smell appears when you reuse that same getter as a shortcut for business logic instead of adding the method the logic actually belongs to.&lt;/p&gt;

&lt;p&gt;Don't point to &lt;a href="https://dev.to/mcsee/code-smell-40-dtos-4426"&gt;DTOs&lt;/a&gt; as a counterexample. A DTO doesn't excuse this. It just breaks encapsulation on purpose and gives the practice a name.&lt;/p&gt;
&lt;h1&gt;
  
  
  Tags 🏷️
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;Encapsulation&lt;/li&gt;
&lt;/ul&gt;
&lt;h1&gt;
  
  
  Level 🔋
&lt;/h1&gt;

&lt;p&gt;[x] Intermediate&lt;/p&gt;
&lt;h1&gt;
  
  
  Why the Bijection Is Important 🗺️
&lt;/h1&gt;

&lt;p&gt;The rule behind that value is a concept that belongs to the object in the &lt;a href="https://dev.to/mcsee/what-is-wrong-with-software-5pa"&gt;MAPPER&lt;/a&gt;, not to whichever function happens to call the getter first.&lt;/p&gt;

&lt;p&gt;When you keep that rule inside the object, every caller shares the same &lt;a href="https://dev.to/mcsee/the-one-and-only-software-design-principle-3086"&gt;bijection&lt;/a&gt; between the object and the real-world thing it represents.&lt;/p&gt;

&lt;p&gt;When you let each caller reimplement the rule from a getter, you create as many private definitions of that concept as you have call sites, and they drift apart the moment one of them changes.&lt;/p&gt;
&lt;h1&gt;
  
  
  AI Generation 🤖
&lt;/h1&gt;

&lt;p&gt;AI generators create this smell often.&lt;/p&gt;

&lt;p&gt;You ask for a function that needs a value the object already exposes through a getter, and it writes a standalone function around that getter, because that's the smallest diff that satisfies the request.&lt;/p&gt;

&lt;p&gt;It won't add a method to the object unless you ask for that explicitly.&lt;/p&gt;
&lt;h1&gt;
  
  
  AI Detection 🧲
&lt;/h1&gt;

&lt;p&gt;AI can detect it, but only if you point it at the pattern.&lt;/p&gt;

&lt;p&gt;Try: "Find getters called from more than one place where the caller performs its own comparison or business rule on the result."&lt;/p&gt;

&lt;p&gt;Without that prompt, the code passes tests and looks idiomatic, so most assistants won't flag it on their own.&lt;/p&gt;
&lt;h2&gt;
  
  
  Try Them! 🛠
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;Remember: AI Assistants make lots of mistakes&lt;/em&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Suggested Prompt: Move the comparison logic from external functions into a real method on the object so callers stop reimplementing it from the getter&lt;/p&gt;
&lt;/blockquote&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Without Proper Instructions&lt;/th&gt;
&lt;th&gt;With Specific Instructions&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://chat.openai.com/?q=Correct+and+explain+this+code%3A+%60%60%60javascript%0D%0A%2F%2F+Food+needs+to+show+its+use-by+date+on+the+shelf%0D%0A%2F%2F+label%2C+so+useByDate%28%29+exists+for+that+one+reason.%0D%0A%2F%2F%0D%0A%2F%2F+Later%2C+removeExpiredFood%28%29+needs+to+pull+expired%0D%0A%2F%2F+products%2C+so+it+reuses+useByDate%28%29+and+compares+the%0D%0A%2F%2F+result+to+today+itself%2C+outside+Food.%0D%0A%2F%2F%0D%0A%2F%2F+flagNearExpiryFood%28%29+needs+almost+the+same+check%2C+so%0D%0A%2F%2F+it+also+calls+useByDate%28%29+and+writes+its+own+slightly%0D%0A%2F%2F+different+comparison.%0D%0A%2F%2F%0D%0A%2F%2F+Now+two+functions+decide+what+%22expired%22+means%2C+and%0D%0A%2F%2F+neither+of+them+is+Food.%0D%0Aclass+Food+%7B%0D%0A++constructor%28name%2C+useByDate%29+%7B%0D%0A++++this.name+%3D+name%3B%0D%0A++++this.useByDateValue+%3D+useByDate%3B%0D%0A++%7D%0D%0A%0D%0A++useByDate%28%29+%7B%0D%0A++++return+this.useByDateValue%3B%0D%0A++%7D%0D%0A%7D%0D%0A%0D%0Afunction+removeExpiredFood%28shelf%2C+today%29+%7B%0D%0A++return+shelf.filter%28%0D%0A++++food+%3D%3E+food.useByDate%28%29+%3E%3D+today%0D%0A++%29%3B%0D%0A%7D%0D%0A%0D%0Afunction+flagNearExpiryFood%28%0D%0A++shelf%2C+today%2C+warningDays%0D%0A%29+%7B%0D%0A++return+shelf.filter%28food+%3D%3E+%7B%0D%0A++++const+daysLeft+%3D+daysBetween%28%0D%0A++++++food.useByDate%28%29%2C+today%0D%0A++++%29%3B%0D%0A++++return+daysLeft+%3E%3D+0+%26%26%0D%0A++++++daysLeft+%3C%3D+warningDays%3B%0D%0A++%7D%29%3B%0D%0A%7D%0D%0A%60%60%60" rel="noopener noreferrer"&gt;ChatGPT&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://chat.openai.com/?q=Move+the+comparison+logic+from+external+functions+into+a+real+method+on+the+object+so+callers+stop+reimplementing+it+from+the+getter%3A+%60%60%60javascript%0D%0A%2F%2F+Food+needs+to+show+its+use-by+date+on+the+shelf%0D%0A%2F%2F+label%2C+so+useByDate%28%29+exists+for+that+one+reason.%0D%0A%2F%2F%0D%0A%2F%2F+Later%2C+removeExpiredFood%28%29+needs+to+pull+expired%0D%0A%2F%2F+products%2C+so+it+reuses+useByDate%28%29+and+compares+the%0D%0A%2F%2F+result+to+today+itself%2C+outside+Food.%0D%0A%2F%2F%0D%0A%2F%2F+flagNearExpiryFood%28%29+needs+almost+the+same+check%2C+so%0D%0A%2F%2F+it+also+calls+useByDate%28%29+and+writes+its+own+slightly%0D%0A%2F%2F+different+comparison.%0D%0A%2F%2F%0D%0A%2F%2F+Now+two+functions+decide+what+%22expired%22+means%2C+and%0D%0A%2F%2F+neither+of+them+is+Food.%0D%0Aclass+Food+%7B%0D%0A++constructor%28name%2C+useByDate%29+%7B%0D%0A++++this.name+%3D+name%3B%0D%0A++++this.useByDateValue+%3D+useByDate%3B%0D%0A++%7D%0D%0A%0D%0A++useByDate%28%29+%7B%0D%0A++++return+this.useByDateValue%3B%0D%0A++%7D%0D%0A%7D%0D%0A%0D%0Afunction+removeExpiredFood%28shelf%2C+today%29+%7B%0D%0A++return+shelf.filter%28%0D%0A++++food+%3D%3E+food.useByDate%28%29+%3E%3D+today%0D%0A++%29%3B%0D%0A%7D%0D%0A%0D%0Afunction+flagNearExpiryFood%28%0D%0A++shelf%2C+today%2C+warningDays%0D%0A%29+%7B%0D%0A++return+shelf.filter%28food+%3D%3E+%7B%0D%0A++++const+daysLeft+%3D+daysBetween%28%0D%0A++++++food.useByDate%28%29%2C+today%0D%0A++++%29%3B%0D%0A++++return+daysLeft+%3E%3D+0+%26%26%0D%0A++++++daysLeft+%3C%3D+warningDays%3B%0D%0A++%7D%29%3B%0D%0A%7D%0D%0A%60%60%60" rel="noopener noreferrer"&gt;ChatGPT&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://claude.ai/new?q=Correct+and+explain+this+code%3A+%60%60%60javascript%0D%0A%2F%2F+Food+needs+to+show+its+use-by+date+on+the+shelf%0D%0A%2F%2F+label%2C+so+useByDate%28%29+exists+for+that+one+reason.%0D%0A%2F%2F%0D%0A%2F%2F+Later%2C+removeExpiredFood%28%29+needs+to+pull+expired%0D%0A%2F%2F+products%2C+so+it+reuses+useByDate%28%29+and+compares+the%0D%0A%2F%2F+result+to+today+itself%2C+outside+Food.%0D%0A%2F%2F%0D%0A%2F%2F+flagNearExpiryFood%28%29+needs+almost+the+same+check%2C+so%0D%0A%2F%2F+it+also+calls+useByDate%28%29+and+writes+its+own+slightly%0D%0A%2F%2F+different+comparison.%0D%0A%2F%2F%0D%0A%2F%2F+Now+two+functions+decide+what+%22expired%22+means%2C+and%0D%0A%2F%2F+neither+of+them+is+Food.%0D%0Aclass+Food+%7B%0D%0A++constructor%28name%2C+useByDate%29+%7B%0D%0A++++this.name+%3D+name%3B%0D%0A++++this.useByDateValue+%3D+useByDate%3B%0D%0A++%7D%0D%0A%0D%0A++useByDate%28%29+%7B%0D%0A++++return+this.useByDateValue%3B%0D%0A++%7D%0D%0A%7D%0D%0A%0D%0Afunction+removeExpiredFood%28shelf%2C+today%29+%7B%0D%0A++return+shelf.filter%28%0D%0A++++food+%3D%3E+food.useByDate%28%29+%3E%3D+today%0D%0A++%29%3B%0D%0A%7D%0D%0A%0D%0Afunction+flagNearExpiryFood%28%0D%0A++shelf%2C+today%2C+warningDays%0D%0A%29+%7B%0D%0A++return+shelf.filter%28food+%3D%3E+%7B%0D%0A++++const+daysLeft+%3D+daysBetween%28%0D%0A++++++food.useByDate%28%29%2C+today%0D%0A++++%29%3B%0D%0A++++return+daysLeft+%3E%3D+0+%26%26%0D%0A++++++daysLeft+%3C%3D+warningDays%3B%0D%0A++%7D%29%3B%0D%0A%7D%0D%0A%60%60%60" rel="noopener noreferrer"&gt;Claude&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://claude.ai/new?q=Move+the+comparison+logic+from+external+functions+into+a+real+method+on+the+object+so+callers+stop+reimplementing+it+from+the+getter%3A+%60%60%60javascript%0D%0A%2F%2F+Food+needs+to+show+its+use-by+date+on+the+shelf%0D%0A%2F%2F+label%2C+so+useByDate%28%29+exists+for+that+one+reason.%0D%0A%2F%2F%0D%0A%2F%2F+Later%2C+removeExpiredFood%28%29+needs+to+pull+expired%0D%0A%2F%2F+products%2C+so+it+reuses+useByDate%28%29+and+compares+the%0D%0A%2F%2F+result+to+today+itself%2C+outside+Food.%0D%0A%2F%2F%0D%0A%2F%2F+flagNearExpiryFood%28%29+needs+almost+the+same+check%2C+so%0D%0A%2F%2F+it+also+calls+useByDate%28%29+and+writes+its+own+slightly%0D%0A%2F%2F+different+comparison.%0D%0A%2F%2F%0D%0A%2F%2F+Now+two+functions+decide+what+%22expired%22+means%2C+and%0D%0A%2F%2F+neither+of+them+is+Food.%0D%0Aclass+Food+%7B%0D%0A++constructor%28name%2C+useByDate%29+%7B%0D%0A++++this.name+%3D+name%3B%0D%0A++++this.useByDateValue+%3D+useByDate%3B%0D%0A++%7D%0D%0A%0D%0A++useByDate%28%29+%7B%0D%0A++++return+this.useByDateValue%3B%0D%0A++%7D%0D%0A%7D%0D%0A%0D%0Afunction+removeExpiredFood%28shelf%2C+today%29+%7B%0D%0A++return+shelf.filter%28%0D%0A++++food+%3D%3E+food.useByDate%28%29+%3E%3D+today%0D%0A++%29%3B%0D%0A%7D%0D%0A%0D%0Afunction+flagNearExpiryFood%28%0D%0A++shelf%2C+today%2C+warningDays%0D%0A%29+%7B%0D%0A++return+shelf.filter%28food+%3D%3E+%7B%0D%0A++++const+daysLeft+%3D+daysBetween%28%0D%0A++++++food.useByDate%28%29%2C+today%0D%0A++++%29%3B%0D%0A++++return+daysLeft+%3E%3D+0+%26%26%0D%0A++++++daysLeft+%3C%3D+warningDays%3B%0D%0A++%7D%29%3B%0D%0A%7D%0D%0A%60%60%60" rel="noopener noreferrer"&gt;Claude&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://www.perplexity.ai/?q=Correct+and+explain+this+code%3A+%60%60%60javascript%0D%0A%2F%2F+Food+needs+to+show+its+use-by+date+on+the+shelf%0D%0A%2F%2F+label%2C+so+useByDate%28%29+exists+for+that+one+reason.%0D%0A%2F%2F%0D%0A%2F%2F+Later%2C+removeExpiredFood%28%29+needs+to+pull+expired%0D%0A%2F%2F+products%2C+so+it+reuses+useByDate%28%29+and+compares+the%0D%0A%2F%2F+result+to+today+itself%2C+outside+Food.%0D%0A%2F%2F%0D%0A%2F%2F+flagNearExpiryFood%28%29+needs+almost+the+same+check%2C+so%0D%0A%2F%2F+it+also+calls+useByDate%28%29+and+writes+its+own+slightly%0D%0A%2F%2F+different+comparison.%0D%0A%2F%2F%0D%0A%2F%2F+Now+two+functions+decide+what+%22expired%22+means%2C+and%0D%0A%2F%2F+neither+of+them+is+Food.%0D%0Aclass+Food+%7B%0D%0A++constructor%28name%2C+useByDate%29+%7B%0D%0A++++this.name+%3D+name%3B%0D%0A++++this.useByDateValue+%3D+useByDate%3B%0D%0A++%7D%0D%0A%0D%0A++useByDate%28%29+%7B%0D%0A++++return+this.useByDateValue%3B%0D%0A++%7D%0D%0A%7D%0D%0A%0D%0Afunction+removeExpiredFood%28shelf%2C+today%29+%7B%0D%0A++return+shelf.filter%28%0D%0A++++food+%3D%3E+food.useByDate%28%29+%3E%3D+today%0D%0A++%29%3B%0D%0A%7D%0D%0A%0D%0Afunction+flagNearExpiryFood%28%0D%0A++shelf%2C+today%2C+warningDays%0D%0A%29+%7B%0D%0A++return+shelf.filter%28food+%3D%3E+%7B%0D%0A++++const+daysLeft+%3D+daysBetween%28%0D%0A++++++food.useByDate%28%29%2C+today%0D%0A++++%29%3B%0D%0A++++return+daysLeft+%3E%3D+0+%26%26%0D%0A++++++daysLeft+%3C%3D+warningDays%3B%0D%0A++%7D%29%3B%0D%0A%7D%0D%0A%60%60%60" rel="noopener noreferrer"&gt;Perplexity&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://www.perplexity.ai/?q=Move+the+comparison+logic+from+external+functions+into+a+real+method+on+the+object+so+callers+stop+reimplementing+it+from+the+getter%3A+%60%60%60javascript%0D%0A%2F%2F+Food+needs+to+show+its+use-by+date+on+the+shelf%0D%0A%2F%2F+label%2C+so+useByDate%28%29+exists+for+that+one+reason.%0D%0A%2F%2F%0D%0A%2F%2F+Later%2C+removeExpiredFood%28%29+needs+to+pull+expired%0D%0A%2F%2F+products%2C+so+it+reuses+useByDate%28%29+and+compares+the%0D%0A%2F%2F+result+to+today+itself%2C+outside+Food.%0D%0A%2F%2F%0D%0A%2F%2F+flagNearExpiryFood%28%29+needs+almost+the+same+check%2C+so%0D%0A%2F%2F+it+also+calls+useByDate%28%29+and+writes+its+own+slightly%0D%0A%2F%2F+different+comparison.%0D%0A%2F%2F%0D%0A%2F%2F+Now+two+functions+decide+what+%22expired%22+means%2C+and%0D%0A%2F%2F+neither+of+them+is+Food.%0D%0Aclass+Food+%7B%0D%0A++constructor%28name%2C+useByDate%29+%7B%0D%0A++++this.name+%3D+name%3B%0D%0A++++this.useByDateValue+%3D+useByDate%3B%0D%0A++%7D%0D%0A%0D%0A++useByDate%28%29+%7B%0D%0A++++return+this.useByDateValue%3B%0D%0A++%7D%0D%0A%7D%0D%0A%0D%0Afunction+removeExpiredFood%28shelf%2C+today%29+%7B%0D%0A++return+shelf.filter%28%0D%0A++++food+%3D%3E+food.useByDate%28%29+%3E%3D+today%0D%0A++%29%3B%0D%0A%7D%0D%0A%0D%0Afunction+flagNearExpiryFood%28%0D%0A++shelf%2C+today%2C+warningDays%0D%0A%29+%7B%0D%0A++return+shelf.filter%28food+%3D%3E+%7B%0D%0A++++const+daysLeft+%3D+daysBetween%28%0D%0A++++++food.useByDate%28%29%2C+today%0D%0A++++%29%3B%0D%0A++++return+daysLeft+%3E%3D+0+%26%26%0D%0A++++++daysLeft+%3C%3D+warningDays%3B%0D%0A++%7D%29%3B%0D%0A%7D%0D%0A%60%60%60" rel="noopener noreferrer"&gt;Perplexity&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://www.bing.com/chat?showconv=1&amp;amp;sendquery=1&amp;amp;q=Correct+and+explain+this+code%3A+%60%60%60javascript%0D%0A%2F%2F+Food+needs+to+show+its+use-by+date+on+the+shelf%0D%0A%2F%2F+label%2C+so+useByDate%28%29+exists+for+that+one+reason.%0D%0A%2F%2F%0D%0A%2F%2F+Later%2C+removeExpiredFood%28%29+needs+to+pull+expired%0D%0A%2F%2F+products%2C+so+it+reuses+useByDate%28%29+and+compares+the%0D%0A%2F%2F+result+to+today+itself%2C+outside+Food.%0D%0A%2F%2F%0D%0A%2F%2F+flagNearExpiryFood%28%29+needs+almost+the+same+check%2C+so%0D%0A%2F%2F+it+also+calls+useByDate%28%29+and+writes+its+own+slightly%0D%0A%2F%2F+different+comparison.%0D%0A%2F%2F%0D%0A%2F%2F+Now+two+functions+decide+what+%22expired%22+means%2C+and%0D%0A%2F%2F+neither+of+them+is+Food.%0D%0Aclass+Food+%7B%0D%0A++constructor%28name%2C+useByDate%29+%7B%0D%0A++++this.name+%3D+name%3B%0D%0A++++this.useByDateValue+%3D+useByDate%3B%0D%0A++%7D%0D%0A%0D%0A++useByDate%28%29+%7B%0D%0A++++return+this.useByDateValue%3B%0D%0A++%7D%0D%0A%7D%0D%0A%0D%0Afunction+removeExpiredFood%28shelf%2C+today%29+%7B%0D%0A++return+shelf.filter%28%0D%0A++++food+%3D%3E+food.useByDate%28%29+%3E%3D+today%0D%0A++%29%3B%0D%0A%7D%0D%0A%0D%0Afunction+flagNearExpiryFood%28%0D%0A++shelf%2C+today%2C+warningDays%0D%0A%29+%7B%0D%0A++return+shelf.filter%28food+%3D%3E+%7B%0D%0A++++const+daysLeft+%3D+daysBetween%28%0D%0A++++++food.useByDate%28%29%2C+today%0D%0A++++%29%3B%0D%0A++++return+daysLeft+%3E%3D+0+%26%26%0D%0A++++++daysLeft+%3C%3D+warningDays%3B%0D%0A++%7D%29%3B%0D%0A%7D%0D%0A%60%60%60" rel="noopener noreferrer"&gt;Copilot&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://www.bing.com/chat?showconv=1&amp;amp;sendquery=1&amp;amp;q=Move+the+comparison+logic+from+external+functions+into+a+real+method+on+the+object+so+callers+stop+reimplementing+it+from+the+getter%3A+%60%60%60javascript%0D%0A%2F%2F+Food+needs+to+show+its+use-by+date+on+the+shelf%0D%0A%2F%2F+label%2C+so+useByDate%28%29+exists+for+that+one+reason.%0D%0A%2F%2F%0D%0A%2F%2F+Later%2C+removeExpiredFood%28%29+needs+to+pull+expired%0D%0A%2F%2F+products%2C+so+it+reuses+useByDate%28%29+and+compares+the%0D%0A%2F%2F+result+to+today+itself%2C+outside+Food.%0D%0A%2F%2F%0D%0A%2F%2F+flagNearExpiryFood%28%29+needs+almost+the+same+check%2C+so%0D%0A%2F%2F+it+also+calls+useByDate%28%29+and+writes+its+own+slightly%0D%0A%2F%2F+different+comparison.%0D%0A%2F%2F%0D%0A%2F%2F+Now+two+functions+decide+what+%22expired%22+means%2C+and%0D%0A%2F%2F+neither+of+them+is+Food.%0D%0Aclass+Food+%7B%0D%0A++constructor%28name%2C+useByDate%29+%7B%0D%0A++++this.name+%3D+name%3B%0D%0A++++this.useByDateValue+%3D+useByDate%3B%0D%0A++%7D%0D%0A%0D%0A++useByDate%28%29+%7B%0D%0A++++return+this.useByDateValue%3B%0D%0A++%7D%0D%0A%7D%0D%0A%0D%0Afunction+removeExpiredFood%28shelf%2C+today%29+%7B%0D%0A++return+shelf.filter%28%0D%0A++++food+%3D%3E+food.useByDate%28%29+%3E%3D+today%0D%0A++%29%3B%0D%0A%7D%0D%0A%0D%0Afunction+flagNearExpiryFood%28%0D%0A++shelf%2C+today%2C+warningDays%0D%0A%29+%7B%0D%0A++return+shelf.filter%28food+%3D%3E+%7B%0D%0A++++const+daysLeft+%3D+daysBetween%28%0D%0A++++++food.useByDate%28%29%2C+today%0D%0A++++%29%3B%0D%0A++++return+daysLeft+%3E%3D+0+%26%26%0D%0A++++++daysLeft+%3C%3D+warningDays%3B%0D%0A++%7D%29%3B%0D%0A%7D%0D%0A%60%60%60" rel="noopener noreferrer"&gt;Copilot&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://you.com/search?q=Correct+and+explain+this+code%3A+%60%60%60javascript%0D%0A%2F%2F+Food+needs+to+show+its+use-by+date+on+the+shelf%0D%0A%2F%2F+label%2C+so+useByDate%28%29+exists+for+that+one+reason.%0D%0A%2F%2F%0D%0A%2F%2F+Later%2C+removeExpiredFood%28%29+needs+to+pull+expired%0D%0A%2F%2F+products%2C+so+it+reuses+useByDate%28%29+and+compares+the%0D%0A%2F%2F+result+to+today+itself%2C+outside+Food.%0D%0A%2F%2F%0D%0A%2F%2F+flagNearExpiryFood%28%29+needs+almost+the+same+check%2C+so%0D%0A%2F%2F+it+also+calls+useByDate%28%29+and+writes+its+own+slightly%0D%0A%2F%2F+different+comparison.%0D%0A%2F%2F%0D%0A%2F%2F+Now+two+functions+decide+what+%22expired%22+means%2C+and%0D%0A%2F%2F+neither+of+them+is+Food.%0D%0Aclass+Food+%7B%0D%0A++constructor%28name%2C+useByDate%29+%7B%0D%0A++++this.name+%3D+name%3B%0D%0A++++this.useByDateValue+%3D+useByDate%3B%0D%0A++%7D%0D%0A%0D%0A++useByDate%28%29+%7B%0D%0A++++return+this.useByDateValue%3B%0D%0A++%7D%0D%0A%7D%0D%0A%0D%0Afunction+removeExpiredFood%28shelf%2C+today%29+%7B%0D%0A++return+shelf.filter%28%0D%0A++++food+%3D%3E+food.useByDate%28%29+%3E%3D+today%0D%0A++%29%3B%0D%0A%7D%0D%0A%0D%0Afunction+flagNearExpiryFood%28%0D%0A++shelf%2C+today%2C+warningDays%0D%0A%29+%7B%0D%0A++return+shelf.filter%28food+%3D%3E+%7B%0D%0A++++const+daysLeft+%3D+daysBetween%28%0D%0A++++++food.useByDate%28%29%2C+today%0D%0A++++%29%3B%0D%0A++++return+daysLeft+%3E%3D+0+%26%26%0D%0A++++++daysLeft+%3C%3D+warningDays%3B%0D%0A++%7D%29%3B%0D%0A%7D%0D%0A%60%60%60" rel="noopener noreferrer"&gt;You&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://you.com/search?q=Move+the+comparison+logic+from+external+functions+into+a+real+method+on+the+object+so+callers+stop+reimplementing+it+from+the+getter%3A+%60%60%60javascript%0D%0A%2F%2F+Food+needs+to+show+its+use-by+date+on+the+shelf%0D%0A%2F%2F+label%2C+so+useByDate%28%29+exists+for+that+one+reason.%0D%0A%2F%2F%0D%0A%2F%2F+Later%2C+removeExpiredFood%28%29+needs+to+pull+expired%0D%0A%2F%2F+products%2C+so+it+reuses+useByDate%28%29+and+compares+the%0D%0A%2F%2F+result+to+today+itself%2C+outside+Food.%0D%0A%2F%2F%0D%0A%2F%2F+flagNearExpiryFood%28%29+needs+almost+the+same+check%2C+so%0D%0A%2F%2F+it+also+calls+useByDate%28%29+and+writes+its+own+slightly%0D%0A%2F%2F+different+comparison.%0D%0A%2F%2F%0D%0A%2F%2F+Now+two+functions+decide+what+%22expired%22+means%2C+and%0D%0A%2F%2F+neither+of+them+is+Food.%0D%0Aclass+Food+%7B%0D%0A++constructor%28name%2C+useByDate%29+%7B%0D%0A++++this.name+%3D+name%3B%0D%0A++++this.useByDateValue+%3D+useByDate%3B%0D%0A++%7D%0D%0A%0D%0A++useByDate%28%29+%7B%0D%0A++++return+this.useByDateValue%3B%0D%0A++%7D%0D%0A%7D%0D%0A%0D%0Afunction+removeExpiredFood%28shelf%2C+today%29+%7B%0D%0A++return+shelf.filter%28%0D%0A++++food+%3D%3E+food.useByDate%28%29+%3E%3D+today%0D%0A++%29%3B%0D%0A%7D%0D%0A%0D%0Afunction+flagNearExpiryFood%28%0D%0A++shelf%2C+today%2C+warningDays%0D%0A%29+%7B%0D%0A++return+shelf.filter%28food+%3D%3E+%7B%0D%0A++++const+daysLeft+%3D+daysBetween%28%0D%0A++++++food.useByDate%28%29%2C+today%0D%0A++++%29%3B%0D%0A++++return+daysLeft+%3E%3D+0+%26%26%0D%0A++++++daysLeft+%3C%3D+warningDays%3B%0D%0A++%7D%29%3B%0D%0A%7D%0D%0A%60%60%60" rel="noopener noreferrer"&gt;You&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://gemini.google.com/" rel="noopener noreferrer"&gt;Gemini&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://gemini.google.com/" rel="noopener noreferrer"&gt;Gemini&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://chat.deepseek.com/" rel="noopener noreferrer"&gt;DeepSeek&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://chat.deepseek.com/" rel="noopener noreferrer"&gt;DeepSeek&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://www.meta.ai/chat" rel="noopener noreferrer"&gt;Meta AI&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://www.meta.ai/" rel="noopener noreferrer"&gt;Meta AI&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://grok.com/" rel="noopener noreferrer"&gt;Grok&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://grok.com/" rel="noopener noreferrer"&gt;Grok&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://chat.qwen.ai/" rel="noopener noreferrer"&gt;Qwen&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://chat.qwen.ai/" rel="noopener noreferrer"&gt;Qwen&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;h1&gt;
  
  
  Conclusion 🏁
&lt;/h1&gt;

&lt;p&gt;A getter you added for one legitimate reason doesn't grant permission to skip every method that comes after it.&lt;/p&gt;

&lt;p&gt;When you find yourself reaching for an existing getter to write new business logic outside the object, stop and add the method instead.&lt;/p&gt;

&lt;p&gt;The object already knows the information.&lt;/p&gt;

&lt;p&gt;Let it hold the rule too.&lt;/p&gt;

&lt;p&gt;Stop treating it like a vending machine that only hands out data to whoever asks nicely.&lt;/p&gt;
&lt;h1&gt;
  
  
  Relations 👩‍❤️‍💋‍👨
&lt;/h1&gt;


&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/mcsee/code-smell-68-getters-o12" class="crayons-story__hidden-navigation-link"&gt;Code Smell 68 - Getters&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/mcsee" class="crayons-avatar  crayons-avatar--l  "&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" alt="mcsee profile" class="crayons-avatar__image" width="800" height="533"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/mcsee" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Maxi Contieri
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Maxi Contieri
                
                
              
              &lt;div id="story-author-preview-content-680671" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/mcsee" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" class="crayons-avatar__image" alt="" width="800" height="533"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Maxi Contieri&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/mcsee/code-smell-68-getters-o12" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Apr 29 '21&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/mcsee/code-smell-68-getters-o12" id="article-link-680671"&gt;
          Code Smell 68 - Getters
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/codenewbie"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;codenewbie&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/tutorial"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;tutorial&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/oop"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;oop&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/programming"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;programming&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/mcsee/code-smell-68-getters-o12" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/multi-unicorn-b44d6f8c23cdd00964192bedc38af3e82463978aa611b4365bd33a0f1f4f3e97.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;3&lt;span class="hidden s:inline"&gt;&amp;nbsp;reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/mcsee/code-smell-68-getters-o12#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              2&lt;span class="hidden s:inline"&gt;&amp;nbsp;comments&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            2 min read
          &lt;/small&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;


&lt;/div&gt;
&lt;br&gt;



&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/mcsee/code-smell-89-math-feature-envy-5543" class="crayons-story__hidden-navigation-link"&gt;Code Smell 89 - Math Feature Envy&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/mcsee" class="crayons-avatar  crayons-avatar--l  "&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" alt="mcsee profile" class="crayons-avatar__image" width="800" height="533"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/mcsee" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Maxi Contieri
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Maxi Contieri
                
                
              
              &lt;div id="story-author-preview-content-851141" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/mcsee" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" class="crayons-avatar__image" alt="" width="800" height="533"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Maxi Contieri&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/mcsee/code-smell-89-math-feature-envy-5543" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Oct 4 '21&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/mcsee/code-smell-89-math-feature-envy-5543" id="article-link-851141"&gt;
          Code Smell 89 - Math Feature Envy
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/oop"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;oop&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/webdev"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;webdev&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/cleancode"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;cleancode&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/tutorial"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;tutorial&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/mcsee/code-smell-89-math-feature-envy-5543" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/multi-unicorn-b44d6f8c23cdd00964192bedc38af3e82463978aa611b4365bd33a0f1f4f3e97.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;6&lt;span class="hidden s:inline"&gt;&amp;nbsp;reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/mcsee/code-smell-89-math-feature-envy-5543#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              4&lt;span class="hidden s:inline"&gt;&amp;nbsp;comments&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            2 min read
          &lt;/small&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;



&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/mcsee/code-smell-63-feature-envy-502f" class="crayons-story__hidden-navigation-link"&gt;Code Smell 63 - Feature Envy&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/mcsee" class="crayons-avatar  crayons-avatar--l  "&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" alt="mcsee profile" class="crayons-avatar__image" width="800" height="533"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/mcsee" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Maxi Contieri
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Maxi Contieri
                
                
              
              &lt;div id="story-author-preview-content-641338" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/mcsee" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" class="crayons-avatar__image" alt="" width="800" height="533"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Maxi Contieri&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/mcsee/code-smell-63-feature-envy-502f" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Mar 23 '21&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/mcsee/code-smell-63-feature-envy-502f" id="article-link-641338"&gt;
          Code Smell 63 - Feature Envy
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/codenewbie"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;codenewbie&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/programming"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;programming&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/oop"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;oop&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/webdev"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;webdev&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/mcsee/code-smell-63-feature-envy-502f" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/multi-unicorn-b44d6f8c23cdd00964192bedc38af3e82463978aa611b4365bd33a0f1f4f3e97.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;6&lt;span class="hidden s:inline"&gt;&amp;nbsp;reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/mcsee/code-smell-63-feature-envy-502f#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              2&lt;span class="hidden s:inline"&gt;&amp;nbsp;comments&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            2 min read
          &lt;/small&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;



&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/mcsee/code-smell-01-anemic-models-4dg2" class="crayons-story__hidden-navigation-link"&gt;Code Smell 01 - Anemic Models&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/mcsee" class="crayons-avatar  crayons-avatar--l  "&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" alt="mcsee profile" class="crayons-avatar__image" width="800" height="533"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/mcsee" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Maxi Contieri
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Maxi Contieri
                
                
              
              &lt;div id="story-author-preview-content-492890" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/mcsee" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" class="crayons-avatar__image" alt="" width="800" height="533"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Maxi Contieri&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/mcsee/code-smell-01-anemic-models-4dg2" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Oct 20 '20&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/mcsee/code-smell-01-anemic-models-4dg2" id="article-link-492890"&gt;
          Code Smell 01 - Anemic Models
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/codenewbie"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;codenewbie&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/oop"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;oop&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/beginners"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;beginners&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/computerscience"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;computerscience&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/mcsee/code-smell-01-anemic-models-4dg2" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/exploding-head-daceb38d627e6ae9b730f36a1e390fca556a4289d5a41abb2c35068ad3e2c4b5.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/multi-unicorn-b44d6f8c23cdd00964192bedc38af3e82463978aa611b4365bd33a0f1f4f3e97.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;63&lt;span class="hidden s:inline"&gt;&amp;nbsp;reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/mcsee/code-smell-01-anemic-models-4dg2#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              12&lt;span class="hidden s:inline"&gt;&amp;nbsp;comments&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            2 min read
          &lt;/small&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;



&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/mcsee/code-smell-246-expiration-date-boi" class="crayons-story__hidden-navigation-link"&gt;Code Smell 246 - Expiration Date&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/mcsee" class="crayons-avatar  crayons-avatar--l  "&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" alt="mcsee profile" class="crayons-avatar__image" width="800" height="533"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/mcsee" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Maxi Contieri
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Maxi Contieri
                
                
              
              &lt;div id="story-author-preview-content-1816232" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/mcsee" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" class="crayons-avatar__image" alt="" width="800" height="533"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Maxi Contieri&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/mcsee/code-smell-246-expiration-date-boi" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Apr 9 '24&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/mcsee/code-smell-246-expiration-date-boi" id="article-link-1816232"&gt;
          Code Smell 246 - Expiration Date
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/webdev"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;webdev&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/java"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;java&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/beginners"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;beginners&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/tutorial"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;tutorial&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/mcsee/code-smell-246-expiration-date-boi" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;4&lt;span class="hidden s:inline"&gt;&amp;nbsp;reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/mcsee/code-smell-246-expiration-date-boi#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              6&lt;span class="hidden s:inline"&gt;&amp;nbsp;comments&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            3 min read
          &lt;/small&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;



&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/mcsee/code-smell-64-inappropriate-intimacy-5h55" class="crayons-story__hidden-navigation-link"&gt;Code Smell 64 - Inappropriate Intimacy&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/mcsee" class="crayons-avatar  crayons-avatar--l  "&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" alt="mcsee profile" class="crayons-avatar__image" width="800" height="533"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/mcsee" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Maxi Contieri
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Maxi Contieri
                
                
              
              &lt;div id="story-author-preview-content-646993" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/mcsee" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" class="crayons-avatar__image" alt="" width="800" height="533"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Maxi Contieri&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/mcsee/code-smell-64-inappropriate-intimacy-5h55" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Mar 27 '21&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/mcsee/code-smell-64-inappropriate-intimacy-5h55" id="article-link-646993"&gt;
          Code Smell 64 - Inappropriate Intimacy
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/codenewbie"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;codenewbie&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/codesmell"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;codesmell&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/webdev"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;webdev&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/oop"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;oop&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/mcsee/code-smell-64-inappropriate-intimacy-5h55" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/multi-unicorn-b44d6f8c23cdd00964192bedc38af3e82463978aa611b4365bd33a0f1f4f3e97.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;7&lt;span class="hidden s:inline"&gt;&amp;nbsp;reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/mcsee/code-smell-64-inappropriate-intimacy-5h55#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              &lt;span class="hidden s:inline"&gt;Add&amp;nbsp;Comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            1 min read
          &lt;/small&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


&lt;h1&gt;
  
  
  More Information 📕
&lt;/h1&gt;


&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/mcsee/nude-models-part-ii-getters-3f2a" class="crayons-story__hidden-navigation-link"&gt;Nude Models — Part II : Getters&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/mcsee" class="crayons-avatar  crayons-avatar--l  "&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" alt="mcsee profile" class="crayons-avatar__image" width="800" height="533"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/mcsee" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Maxi Contieri
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Maxi Contieri
                
                
              
              &lt;div id="story-author-preview-content-612962" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/mcsee" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" class="crayons-avatar__image" alt="" width="800" height="533"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Maxi Contieri&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/mcsee/nude-models-part-ii-getters-3f2a" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Feb 23 '21&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/mcsee/nude-models-part-ii-getters-3f2a" id="article-link-612962"&gt;
          Nude Models — Part II : Getters
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/webdev"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;webdev&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/programming"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;programming&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/oop"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;oop&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/tutorial"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;tutorial&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/mcsee/nude-models-part-ii-getters-3f2a" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/multi-unicorn-b44d6f8c23cdd00964192bedc38af3e82463978aa611b4365bd33a0f1f4f3e97.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;7&lt;span class="hidden s:inline"&gt;&amp;nbsp;reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/mcsee/nude-models-part-ii-getters-3f2a#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              1&lt;span class="hidden s:inline"&gt;&amp;nbsp;comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            7 min read
          &lt;/small&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


&lt;p&gt;&lt;a href="https://martinfowler.com/bliki/TellDontAsk.html" rel="noopener noreferrer"&gt;Tell, Don't Ask&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://en.wikipedia.org/wiki/Encapsulation_(computer_programming)" rel="noopener noreferrer"&gt;Encapsulation&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Quote
&lt;/h1&gt;

&lt;blockquote&gt;
&lt;p&gt;OOP to me means only messaging, local retention and protection and hiding of state-process.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;em&gt;Alan Kay&lt;/em&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Disclaimer 📘
&lt;/h1&gt;

&lt;p&gt;Code Smells are my &lt;a href="https://dev.to/mcsee/i-wrote-more-than-90-articles-on-2021-here-is-what-i-learned-1n3a"&gt;opinion&lt;/a&gt;.&lt;/p&gt;

&lt;h1&gt;
  
  
  Credits 🙏
&lt;/h1&gt;

&lt;p&gt;Photo by &lt;a href="https://unsplash.com/es/@nathaliarosa" rel="noopener noreferrer"&gt;Nathália Rosa&lt;/a&gt; on &lt;a href="https://unsplash.com/es/fotos/productos-en-estanteria-rWMIbqmOxrY" rel="noopener noreferrer"&gt;Unsplash&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;This article is part of the CodeSmell Series.&lt;/p&gt;


&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/mcsee/how-to-find-the-stinky-parts-of-your-code-1dbc" class="crayons-story__hidden-navigation-link"&gt;How to Find the Stinky parts of your Code&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/mcsee" class="crayons-avatar  crayons-avatar--l  "&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" alt="mcsee profile" class="crayons-avatar__image" width="800" height="533"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/mcsee" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Maxi Contieri
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Maxi Contieri
                
                
              
              &lt;div id="story-author-preview-content-702108" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/mcsee" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" class="crayons-avatar__image" alt="" width="800" height="533"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Maxi Contieri&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/mcsee/how-to-find-the-stinky-parts-of-your-code-1dbc" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;May 21 '21&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/mcsee/how-to-find-the-stinky-parts-of-your-code-1dbc" id="article-link-702108"&gt;
          How to Find the Stinky parts of your Code
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/codenewbie"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;codenewbie&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/tutorial"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;tutorial&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/codequality"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;codequality&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/beginners"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;beginners&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/mcsee/how-to-find-the-stinky-parts-of-your-code-1dbc" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/multi-unicorn-b44d6f8c23cdd00964192bedc38af3e82463978aa611b4365bd33a0f1f4f3e97.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;23&lt;span class="hidden s:inline"&gt;&amp;nbsp;reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/mcsee/how-to-find-the-stinky-parts-of-your-code-1dbc#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              &lt;span class="hidden s:inline"&gt;Add&amp;nbsp;Comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            14 min read
          &lt;/small&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


</description>
      <category>webdev</category>
      <category>programming</category>
      <category>tutorial</category>
      <category>beginners</category>
    </item>
    <item>
      <title>AI Coding Tip 032 - Build a Dark Factory Pipeline</title>
      <dc:creator>Maxi Contieri</dc:creator>
      <pubDate>Tue, 18 Aug 2026 11:00:00 +0000</pubDate>
      <link>https://dev.to/mcsee/ai-coding-tip-032-build-a-dark-factory-pipeline-9b5</link>
      <guid>https://dev.to/mcsee/ai-coding-tip-032-build-a-dark-factory-pipeline-9b5</guid>
      <description>&lt;p&gt;&lt;em&gt;Build a factory where no human needs to work, keep the code coming, and place regular human audits.&lt;/em&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;TL;DR: Run your pipeline like a dark factory: automated, sampled, and policed by an adversarial model.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h1&gt;
  
  
  Common Mistake ❌
&lt;/h1&gt;

&lt;p&gt;You let one model write a pull request, then hand the same model (or a suspiciously agreeable fresh instance of it) the job of approving its own work.&lt;/p&gt;

&lt;p&gt;Humans like you are a scarce resource and a bottleneck, so you decide that nobody else will &lt;a href="https://dev.to/mcsee/ai-coding-tip-006-review-every-line-before-commit-bmm"&gt;look at the diffs&lt;/a&gt;.&lt;/p&gt;

&lt;h1&gt;
  
  
  Problems Addressed 😔
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Models like their own output when asked to judge it, a documented self-preference bias that makes same-model review about as objective as a suspect grading their own trial.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Skip the checkpoints, and your pipeline drifts into unreviewed &lt;a href="https://dev.to/mcsee/code-smell-313-workslop-code-n09"&gt;workslop&lt;/a&gt; that nobody catches until it ships.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://dev.to/mcsee/ai-coding-tip-006-review-every-line-before-commit-bmm"&gt;100% human review&lt;/a&gt; doesn't scale once your agents merge dozens of pull requests a day.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Fake full coverage looks safe on a dashboard the same way &lt;a href="https://dev.to/mcsee/code-smell-320-vanity-coverage-2g03"&gt;vanity coverage&lt;/a&gt; does, great on a slide deck and useless in production.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Skip the second opinion, and your pipeline quietly &lt;a href="https://dev.to/mcsee/code-smell-314-model-collapse-18nl"&gt;collapses&lt;/a&gt; into repeating its own mistakes.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  How to Do It 🛠️
&lt;/h1&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://dev.to/mcsee/ai-coding-tip-026-assign-a-persona-to-every-skill-definition-42bb"&gt;Assign&lt;/a&gt; a good builder model to write the code from a &lt;a href="https://dev.to/mcsee/ai-coding-tip-008-use-spec-driven-development-with-ai-1k0f"&gt;spec&lt;/a&gt; written by another model.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Assign a separate model from a &lt;a href="https://dev.to/mcsee/ai-coding-tip-029-stop-using-one-model-for-everything-e83"&gt;different vendor or family&lt;/a&gt; as the adversarial verifier, whose only job is to find fault with the builder's output.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Reject any pull request the verifier flags, and require the builder to fix it before a human in the loop analyzes it.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Define a sampling rate for human audit, the way &lt;a href="https://www.fabrico.io/blog/aql-vs-100-percent-inspection/" rel="noopener noreferrer"&gt;quality control samples a manufacturing lot&lt;/a&gt; instead of inspecting every unit (you can't scale).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Route that sampled percentage of merged pull requests to a human reviewer chosen at random, not the easiest or newest ones.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Log every case where a human overrides the adversarial verdict, and &lt;a href="https://dev.to/mcsee/ai-coding-tip-016-feed-your-pr-lessons-into-the-ai-brain-3al9"&gt;feed it back&lt;/a&gt; as a correction signal for the next run.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://dev.to/mcsee/ai-coding-tip-024-force-a-criteria-check-before-the-task-ends-51ij"&gt;Block any merge that skips both the adversarial gate and the sampling gate&lt;/a&gt;, with no manual bypass.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h1&gt;
  
  
  Benefits 🎯
&lt;/h1&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Cut review load without cutting review:&lt;/strong&gt; Sampling catches the same class of defects a full review would, at a fraction of the human hours.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Remove self-grading bias:&lt;/strong&gt; By policy, a &lt;a href="https://dev.to/mcsee/ai-coding-tip-029-stop-using-one-model-for-everything-e83"&gt;different model&lt;/a&gt; has no incentive to excuse the builder's assumptions.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Keep an auditable trail:&lt;/strong&gt; Every override becomes a labeled example you can use to &lt;a href="https://dev.to/mcsee/ai-coding-tip-020-create-a-second-brain-lgp"&gt;retrain or reprompt&lt;/a&gt; the pipeline.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Scale past human bandwidth:&lt;/strong&gt; The pipeline keeps merging while your reviewers sleep, and still gets audited when they wake up.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Separate concerns cleanly:&lt;/strong&gt; The &lt;a href="https://dev.to/mcsee/ai-coding-tip-024-force-a-criteria-check-before-the-task-ends-51ij"&gt;builder still can't be the auditor&lt;/a&gt;, watched over by a second model instead of a checklist alone.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h1&gt;
  
  
  Context 🧠
&lt;/h1&gt;

&lt;p&gt;Taylorist factory automation solved this exact problem decades before software did, and it never pretended to be a &lt;a href="https://dev.to/mcsee/coupling-the-one-and-only-software-design-problem-2pd7"&gt;silver bullet&lt;/a&gt; either: even the most automated line still keeps a human walking the floor.&lt;/p&gt;

&lt;p&gt;A &lt;a href="https://en.wikipedia.org/wiki/Lights_out_(manufacturing)" rel="noopener noreferrer"&gt;lights-out factory&lt;/a&gt; runs an entire production line with no on-site workers, because human presence adds variability, not quality.&lt;/p&gt;

&lt;p&gt;Foxconn replaced over 60,000 workers at its Kunshan plant with robots that build phones around the clock, and the &lt;a href="https://tractian.com/en/glossary/dark-factory" rel="noopener noreferrer"&gt;dark factory&lt;/a&gt; term stuck because the equipment genuinely doesn't need the lights on.&lt;/p&gt;

&lt;p&gt;Some data centers borrow a related trick called hypoxic fire suppression: they hold oxygen at roughly 14 to 15 percent, similar to a mountain summit, low enough that nothing can burn but still safe for a technician to walk through.&lt;/p&gt;

&lt;p&gt;That's the detail people usually get wrong when they repeat the no oxygen story.&lt;/p&gt;

&lt;p&gt;It isn't zero oxygen.&lt;/p&gt;

&lt;p&gt;It's a guardrail tuned so the environment stays safe without needing a human standing watch, which is a lot less cinematic than the version that went viral.&lt;/p&gt;

&lt;p&gt;The AI coding world already reuses the &lt;a href="https://www.mindstudio.ai/blog/what-is-dark-factory-ai-coding-autonomous-pipeline" rel="noopener noreferrer"&gt;dark factory&lt;/a&gt; label for the same idea: a spec goes in, production code comes out, and &lt;a href="https://dev.to/mcsee/ai-coding-tip-030-script-your-skills-not-your-prompts-2om3"&gt;no human touches the happy path&lt;/a&gt; in between.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Auditor Can't Be the Builder
&lt;/h2&gt;

&lt;p&gt;Manufacturing solved oversight with acceptance sampling: pull a small, randomized batch from every lot, and let that batch decide whether the whole lot passes.&lt;/p&gt;

&lt;p&gt;You can borrow the same math for code: instead of reviewing every merged pull request, you review a defined percentage, chosen at random, and trust the sample to represent the whole.&lt;/p&gt;

&lt;p&gt;The missing piece in most autonomous coding pipelines is the adversarial gate, and skipping it is how you end up with a very expensive rubber stamp.&lt;/p&gt;

&lt;p&gt;Research on &lt;a href="https://www.augmentcode.com/guides/adversarial-code-review" rel="noopener noreferrer"&gt;adversarial code review&lt;/a&gt; confirms what QA teams have known for years: the maker shouldn't grade the checker, because the same assumptions that produced the &lt;a href="https://dev.to/mcsee/stop-calling-them-bugs-57gl"&gt;defect&lt;/a&gt; also produce the blind spot in the review.&lt;/p&gt;

&lt;p&gt;Studies on self-preference bias back this up with numbers: judges built from the same model family score their own outputs &lt;a href="https://arxiv.org/pdf/2604.06996" rel="noopener noreferrer"&gt;higher than a neutral judge would&lt;/a&gt;, which is exactly why a builder and its verifier need to come from different vendors.&lt;/p&gt;

&lt;h2&gt;
  
  
  Prompt Reference 📝
&lt;/h2&gt;

&lt;h2&gt;
  
  
  Bad Prompt 🚫
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;Write the pull request for the new caching layer, then review
your own diff and tell me if it's ready to merge.

If it looks fine to you, merge it directly. I don't need to see
it unless you have doubts about your own work.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h2&gt;
  
  
  Good prompt 👉
&lt;/h2&gt;




&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;Model A (builder): write the pull request for the new caching
layer from the attached spec. Don't approve your own diff.

Model B (verifier, different vendor than Model A): review the
diff looking only for defects. Reject it if you find any, and
explain exactly what's wrong. Don't fix it yourself.

Route 10% of every batch of merged pull requests, chosen at
random, to a human reviewer. Log every case where the human
overrides Model B's verdict, in either direction.

Keep track of the defects found by a human reviewer
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h1&gt;
  
  
  Considerations ⚠️
&lt;/h1&gt;

&lt;p&gt;The builder and verifier must come from different model families, not just different prompts on the same model, or the self-preference bias survives the split.&lt;/p&gt;

&lt;p&gt;Set the sampling rate too low, and systemic drift compounds across dozens of merges before you catch it.&lt;/p&gt;

&lt;p&gt;By the time you notice, it's already an incident review, not a code review.&lt;/p&gt;

&lt;p&gt;You still need a human in the loop, even for the sampled slice and the override log, because consensus between two models isn't the same as correctness.&lt;/p&gt;

&lt;p&gt;Sampling replaces &lt;a href="https://dev.to/mcsee/ai-coding-tip-006-review-every-line-before-commit-bmm"&gt;reviewing every line&lt;/a&gt; only where full review can't keep up with the volume, not as a blanket excuse to stop looking.&lt;/p&gt;
&lt;h1&gt;
  
  
  Type 📝
&lt;/h1&gt;

&lt;p&gt;[X] Semi-Automatic&lt;/p&gt;
&lt;h1&gt;
  
  
  Limitations ⚠️
&lt;/h1&gt;

&lt;p&gt;This setup assumes you can run several distinct models in your pipeline.&lt;/p&gt;

&lt;p&gt;That adds cost and latency compared to a single-model workflow.&lt;/p&gt;

&lt;p&gt;None of this comes free.&lt;/p&gt;

&lt;p&gt;Adversarial review reduces obvious defects but can still miss subtle domain logic errors that neither model was trained to recognize, which is the humbling part.&lt;/p&gt;
&lt;h1&gt;
  
  
  Tags 🏷️
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;Safety&lt;/li&gt;
&lt;/ul&gt;
&lt;h1&gt;
  
  
  Level 🔋
&lt;/h1&gt;

&lt;p&gt;[X] Advanced&lt;/p&gt;
&lt;h1&gt;
  
  
  Related Tips 🔗
&lt;/h1&gt;


&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/mcsee/ai-coding-tip-024-force-a-criteria-check-before-the-task-ends-51ij" class="crayons-story__hidden-navigation-link"&gt;AI Coding Tip 024 - Force a Criteria Check Before the Task Ends&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/mcsee" class="crayons-avatar  crayons-avatar--l  "&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" alt="mcsee profile" class="crayons-avatar__image" width="800" height="533"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/mcsee" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Maxi Contieri
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Maxi Contieri
                
                
              
              &lt;div id="story-author-preview-content-3887200" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/mcsee" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" class="crayons-avatar__image" alt="" width="800" height="533"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Maxi Contieri&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/mcsee/ai-coding-tip-024-force-a-criteria-check-before-the-task-ends-51ij" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Jun 16&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/mcsee/ai-coding-tip-024-force-a-criteria-check-before-the-task-ends-51ij" id="article-link-3887200"&gt;
          AI Coding Tip 024 - Force a Criteria Check Before the Task Ends
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/webdev"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;webdev&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/programming"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;programming&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/productivity"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;productivity&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/mcsee/ai-coding-tip-024-force-a-criteria-check-before-the-task-ends-51ij" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;2&lt;span class="hidden s:inline"&gt;&amp;nbsp;reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/mcsee/ai-coding-tip-024-force-a-criteria-check-before-the-task-ends-51ij#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              &lt;span class="hidden s:inline"&gt;Add&amp;nbsp;Comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            6 min read
          &lt;/small&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;


&lt;/div&gt;
&lt;br&gt;



&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/mcsee/ai-coding-tip-029-stop-using-one-model-for-everything-e83" class="crayons-story__hidden-navigation-link"&gt;AI Coding Tip 029 - Stop Using One Model for Everything&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/mcsee" class="crayons-avatar  crayons-avatar--l  "&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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" alt="mcsee profile" class="crayons-avatar__image" width="800" height="533"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/mcsee" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Maxi Contieri
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Maxi Contieri
                
                
              
              &lt;div id="story-author-preview-content-4237751" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/mcsee" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" class="crayons-avatar__image" alt="" width="800" height="533"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Maxi Contieri&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/mcsee/ai-coding-tip-029-stop-using-one-model-for-everything-e83" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Jul 28&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/mcsee/ai-coding-tip-029-stop-using-one-model-for-everything-e83" id="article-link-4237751"&gt;
          AI Coding Tip 029 - Stop Using One Model for Everything
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/webdev"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;webdev&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/programming"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;programming&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/mcsee/ai-coding-tip-029-stop-using-one-model-for-everything-e83" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;1&lt;span class="hidden s:inline"&gt;&amp;nbsp;reaction&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/mcsee/ai-coding-tip-029-stop-using-one-model-for-everything-e83#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              &lt;span class="hidden s:inline"&gt;Add&amp;nbsp;Comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            6 min read
          &lt;/small&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;



&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/mcsee/ai-coding-tip-006-review-every-line-before-commit-bmm" class="crayons-story__hidden-navigation-link"&gt;AI Coding Tip 006 - Review Every Line Before Commit&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/mcsee" class="crayons-avatar  crayons-avatar--l  "&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" alt="mcsee profile" class="crayons-avatar__image" width="800" height="533"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/mcsee" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Maxi Contieri
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Maxi Contieri
                
                
              
              &lt;div id="story-author-preview-content-3251959" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/mcsee" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" class="crayons-avatar__image" alt="" width="800" height="533"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Maxi Contieri&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/mcsee/ai-coding-tip-006-review-every-line-before-commit-bmm" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Feb 13&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/mcsee/ai-coding-tip-006-review-every-line-before-commit-bmm" id="article-link-3251959"&gt;
          AI Coding Tip 006 - Review Every Line Before Commit
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/programming"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;programming&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/development"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;development&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/softwaredevelopment"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;softwaredevelopment&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
            &lt;a href="https://dev.to/mcsee/ai-coding-tip-006-review-every-line-before-commit-bmm#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              1&lt;span class="hidden s:inline"&gt;&amp;nbsp;comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            7 min read
          &lt;/small&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;



&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/mcsee/ai-coding-tip-022-give-ai-a-harness-to-work-with-274a" class="crayons-story__hidden-navigation-link"&gt;AI Coding Tip 022 - Give AI a Harness to Work With&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/mcsee" class="crayons-avatar  crayons-avatar--l  "&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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" alt="mcsee profile" class="crayons-avatar__image" width="800" height="533"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/mcsee" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Maxi Contieri
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Maxi Contieri
                
                
              
              &lt;div id="story-author-preview-content-3791486" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/mcsee" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" class="crayons-avatar__image" alt="" width="800" height="533"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Maxi Contieri&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/mcsee/ai-coding-tip-022-give-ai-a-harness-to-work-with-274a" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Jun 2&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/mcsee/ai-coding-tip-022-give-ai-a-harness-to-work-with-274a" id="article-link-3791486"&gt;
          AI Coding Tip 022 - Give AI a Harness to Work With
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/webdev"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;webdev&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/beginners"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;beginners&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
            &lt;a href="https://dev.to/mcsee/ai-coding-tip-022-give-ai-a-harness-to-work-with-274a#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              2&lt;span class="hidden s:inline"&gt;&amp;nbsp;comments&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            6 min read
          &lt;/small&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;



&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/mcsee/ai-coding-tip-008-use-spec-driven-development-with-ai-1k0f" class="crayons-story__hidden-navigation-link"&gt;AI Coding Tip 008 - Use Spec-Driven Development with AI&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/mcsee" class="crayons-avatar  crayons-avatar--l  "&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" alt="mcsee profile" class="crayons-avatar__image" width="800" height="533"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/mcsee" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Maxi Contieri
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Maxi Contieri
                
                
              
              &lt;div id="story-author-preview-content-3271031" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/mcsee" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" class="crayons-avatar__image" alt="" width="800" height="533"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Maxi Contieri&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/mcsee/ai-coding-tip-008-use-spec-driven-development-with-ai-1k0f" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Feb 24&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/mcsee/ai-coding-tip-008-use-spec-driven-development-with-ai-1k0f" id="article-link-3271031"&gt;
          AI Coding Tip 008 - Use Spec-Driven Development with AI
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/programming"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;programming&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/coding"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;coding&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/mcsee/ai-coding-tip-008-use-spec-driven-development-with-ai-1k0f" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;2&lt;span class="hidden s:inline"&gt;&amp;nbsp;reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/mcsee/ai-coding-tip-008-use-spec-driven-development-with-ai-1k0f#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              &lt;span class="hidden s:inline"&gt;Add&amp;nbsp;Comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            4 min read
          &lt;/small&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;



&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/mcsee/ai-coding-tip-016-feed-your-pr-lessons-into-the-ai-brain-3al9" class="crayons-story__hidden-navigation-link"&gt;AI Coding Tip 016 - Feed Your PR Lessons into the AI Brain&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/mcsee" class="crayons-avatar  crayons-avatar--l  "&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" alt="mcsee profile" class="crayons-avatar__image" width="800" height="533"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/mcsee" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Maxi Contieri
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Maxi Contieri
                
                
              
              &lt;div id="story-author-preview-content-3505365" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/mcsee" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" class="crayons-avatar__image" alt="" width="800" height="533"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Maxi Contieri&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/mcsee/ai-coding-tip-016-feed-your-pr-lessons-into-the-ai-brain-3al9" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Apr 21&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/mcsee/ai-coding-tip-016-feed-your-pr-lessons-into-the-ai-brain-3al9" id="article-link-3505365"&gt;
          AI Coding Tip 016 - Feed Your PR Lessons into the AI Brain
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/programming"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;programming&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/mcsee/ai-coding-tip-016-feed-your-pr-lessons-into-the-ai-brain-3al9" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;4&lt;span class="hidden s:inline"&gt;&amp;nbsp;reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/mcsee/ai-coding-tip-016-feed-your-pr-lessons-into-the-ai-brain-3al9#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              &lt;span class="hidden s:inline"&gt;Add&amp;nbsp;Comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            6 min read
          &lt;/small&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;



&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/mcsee/ai-coding-tip-020-create-a-second-brain-lgp" class="crayons-story__hidden-navigation-link"&gt;AI Coding Tip 020 - Create a Second Brain&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/mcsee" class="crayons-avatar  crayons-avatar--l  "&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" alt="mcsee profile" class="crayons-avatar__image" width="800" height="533"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/mcsee" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Maxi Contieri
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Maxi Contieri
                
                
              
              &lt;div id="story-author-preview-content-3688245" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/mcsee" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" class="crayons-avatar__image" alt="" width="800" height="533"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Maxi Contieri&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/mcsee/ai-coding-tip-020-create-a-second-brain-lgp" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;May 19&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/mcsee/ai-coding-tip-020-create-a-second-brain-lgp" id="article-link-3688245"&gt;
          AI Coding Tip 020 - Create a Second Brain
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/webdev"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;webdev&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/productivity"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;productivity&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/programming"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;programming&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/mcsee/ai-coding-tip-020-create-a-second-brain-lgp" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;1&lt;span class="hidden s:inline"&gt;&amp;nbsp;reaction&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/mcsee/ai-coding-tip-020-create-a-second-brain-lgp#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              &lt;span class="hidden s:inline"&gt;Add&amp;nbsp;Comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            8 min read
          &lt;/small&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;



&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/mcsee/ai-coding-tip-026-assign-a-persona-to-every-skill-definition-42bb" class="crayons-story__hidden-navigation-link"&gt;AI Coding Tip 026 - Assign a Persona to Every Skill Definition&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/mcsee" class="crayons-avatar  crayons-avatar--l  "&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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" alt="mcsee profile" class="crayons-avatar__image" width="800" height="533"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/mcsee" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Maxi Contieri
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Maxi Contieri
                
                
              
              &lt;div id="story-author-preview-content-4069185" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/mcsee" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" class="crayons-avatar__image" alt="" width="800" height="533"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Maxi Contieri&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/mcsee/ai-coding-tip-026-assign-a-persona-to-every-skill-definition-42bb" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Jul 7&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/mcsee/ai-coding-tip-026-assign-a-persona-to-every-skill-definition-42bb" id="article-link-4069185"&gt;
          AI Coding Tip 026 - Assign a Persona to Every Skill Definition
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/webdev"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;webdev&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/programming"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;programming&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/beginners"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;beginners&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/mcsee/ai-coding-tip-026-assign-a-persona-to-every-skill-definition-42bb" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;1&lt;span class="hidden s:inline"&gt;&amp;nbsp;reaction&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/mcsee/ai-coding-tip-026-assign-a-persona-to-every-skill-definition-42bb#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              2&lt;span class="hidden s:inline"&gt;&amp;nbsp;comments&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            5 min read
          &lt;/small&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;



&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/mcsee/ai-coding-tip-030-script-your-skills-not-your-prompts-2om3" class="crayons-story__hidden-navigation-link"&gt;AI Coding Tip 030 - Script Your Skills, Not Your Prompts&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/mcsee" class="crayons-avatar  crayons-avatar--l  "&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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" alt="mcsee profile" class="crayons-avatar__image" width="800" height="533"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/mcsee" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Maxi Contieri
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Maxi Contieri
                
                
              
              &lt;div id="story-author-preview-content-4283963" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/mcsee" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" class="crayons-avatar__image" alt="" width="800" height="533"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Maxi Contieri&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/mcsee/ai-coding-tip-030-script-your-skills-not-your-prompts-2om3" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Aug 4&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/mcsee/ai-coding-tip-030-script-your-skills-not-your-prompts-2om3" id="article-link-4283963"&gt;
          AI Coding Tip 030 - Script Your Skills, Not Your Prompts
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/webdev"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;webdev&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/programming"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;programming&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/productivity"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;productivity&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/mcsee/ai-coding-tip-030-script-your-skills-not-your-prompts-2om3" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;3&lt;span class="hidden s:inline"&gt;&amp;nbsp;reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/mcsee/ai-coding-tip-030-script-your-skills-not-your-prompts-2om3#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              3&lt;span class="hidden s:inline"&gt;&amp;nbsp;comments&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            7 min read
          &lt;/small&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


&lt;h1&gt;
  
  
  Conclusion 🏁
&lt;/h1&gt;

&lt;p&gt;A dark factory doesn't skip quality control.&lt;/p&gt;

&lt;p&gt;It redesigns it so machines catch machines, and humans only need to look at a sample instead of babysitting every commit.&lt;/p&gt;

&lt;p&gt;Give your pipeline the same three pieces: a builder, an adversarial verifier from a different vendor, and a sampling gate.&lt;/p&gt;

&lt;p&gt;Your reviewers get their weekends back, and the diff still gets caught before it ships.&lt;/p&gt;

&lt;h1&gt;
  
  
  More Information ℹ️
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://www.advancedtech.com/blog/what-is-lights-out-dark-manufacturing/" rel="noopener noreferrer"&gt;What Is Lights Out Dark Manufacturing?&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://en.wikipedia.org/wiki/Lights_out_(manufacturing)" rel="noopener noreferrer"&gt;Lights out (manufacturing), Wikipedia&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://tractian.com/en/glossary/dark-factory" rel="noopener noreferrer"&gt;Dark Factory: Definition, Technologies and Industrial Use Cases&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.conteg.com/products/hypoxic-air-fire-preventive-system" rel="noopener noreferrer"&gt;Hypoxic Air Fire Preventive System&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.mindstudio.ai/blog/what-is-dark-factory-ai-coding-autonomous-pipeline" rel="noopener noreferrer"&gt;What Is the Dark Factory Approach to AI Coding?&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://hackernoon.com/the-dark-factory-pattern-moving-from-ai-assisted-to-fully-autonomous-coding" rel="noopener noreferrer"&gt;The Dark Factory Pattern, HackerNoon&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.augmentcode.com/guides/adversarial-code-review" rel="noopener noreferrer"&gt;Adversarial Code Review: Why the Maker Shouldn't Grade the Checker&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://arxiv.org/pdf/2604.19049" rel="noopener noreferrer"&gt;Refute-or-Promote: Adversarial Stage-Gated Multi-Agent Review&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://arxiv.org/html/2604.22891v4" rel="noopener noreferrer"&gt;Quantifying and Mitigating Self-Preference Bias of LLM Judges&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.fabrico.io/blog/aql-vs-100-percent-inspection/" rel="noopener noreferrer"&gt;AQL Sampling vs 100% Inspection&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Also Known As 🎭
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;Dark-Factory-Pipeline&lt;/li&gt;
&lt;li&gt;Adversarial-Model-Gate&lt;/li&gt;
&lt;li&gt;Sampling-Based-Code-Audit&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Tools 🧰
&lt;/h1&gt;

&lt;p&gt;Any continuous integration pipeline setup that can call two or more distinct model APIs in sequence works here, as part of the &lt;a href="https://dev.to/mcsee/ai-coding-tip-022-give-ai-a-harness-to-work-with-274a"&gt;harness&lt;/a&gt; you already use, no need to buy anything fancy just to route a webhook to a human.&lt;/p&gt;

&lt;h1&gt;
  
  
  Disclaimer 📢
&lt;/h1&gt;

&lt;p&gt;The views expressed here are my own.&lt;/p&gt;

&lt;p&gt;I am a human who writes as best as possible for other humans.&lt;/p&gt;

&lt;p&gt;I use AI proofreading tools to improve some texts.&lt;/p&gt;

&lt;p&gt;Most AI detectors will flag this article as AI-generated. That's expected. It's a technical article. It has a rigid format and clear steps to follow. &lt;/p&gt;

&lt;p&gt;That's exactly the pattern those tools are trained to catch. I've apparently been "writing like an AI" for decades, long before AI existed. This is a technical article, not a novel.&lt;/p&gt;

&lt;p&gt;I welcome constructive criticism and dialogue.&lt;/p&gt;

&lt;p&gt;I shape these insights through 30 years in the software industry, 25 years of teaching, and writing over 500 articles and a book.&lt;/p&gt;




&lt;p&gt;This article is part of the &lt;em&gt;AI Coding Tip&lt;/em&gt; series.&lt;/p&gt;


&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/mcsee/ai-coding-tips-118n" class="crayons-story__hidden-navigation-link"&gt;AI Coding Tips&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/mcsee" class="crayons-avatar  crayons-avatar--l  "&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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" alt="mcsee profile" class="crayons-avatar__image" width="800" height="533"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/mcsee" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Maxi Contieri
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Maxi Contieri
                
                
              
              &lt;div id="story-author-preview-content-3187836" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/mcsee" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" class="crayons-avatar__image" alt="" width="800" height="533"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Maxi Contieri&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/mcsee/ai-coding-tips-118n" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Jan 21&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/mcsee/ai-coding-tips-118n" id="article-link-3187836"&gt;
          AI Coding Tips
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/webdev"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;webdev&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/programming"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;programming&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/beginners"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;beginners&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
            &lt;a href="https://dev.to/mcsee/ai-coding-tips-118n#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              1&lt;span class="hidden s:inline"&gt;&amp;nbsp;comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            2 min read
          &lt;/small&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


</description>
      <category>ai</category>
      <category>webdev</category>
      <category>programming</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>AI Coding Tip 031 - Stop Over-Prompting Reasoning Models</title>
      <dc:creator>Maxi Contieri</dc:creator>
      <pubDate>Wed, 12 Aug 2026 11:00:00 +0000</pubDate>
      <link>https://dev.to/mcsee/ai-coding-tip-031-stop-over-prompting-reasoning-models-3m2k</link>
      <guid>https://dev.to/mcsee/ai-coding-tip-031-stop-over-prompting-reasoning-models-3m2k</guid>
      <description>&lt;p&gt;&lt;em&gt;The perfect prompt doesn't instruct the model on what it already knows how to do.&lt;/em&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;TL;DR: Reasoning models already verify and pace themselves, so drop those prompts and set real effort, scope, length, autonomy.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h1&gt;
  
  
  Common Mistake ❌
&lt;/h1&gt;

&lt;p&gt;You still write prompts for a model that evolved and stopped needing them.&lt;/p&gt;

&lt;p&gt;"Double-check your work," "think step by step," "be concise," and a wall of REQUIRED/MANDATORY rules get pasted into every request, the same &lt;a href="https://dev.to/mcsee/code-smell-197-gratuitous-context-4gk"&gt;gratuitous context&lt;/a&gt; you'd flag in a variable name, on the assumption that more instruction always buys better output, as if the model just needed one more all-caps reminder to remember how to think.&lt;/p&gt;

&lt;p&gt;Current reasoning models (as of August 2026) already verify their own steps and pace their own depth.&lt;/p&gt;

&lt;p&gt;Those extra lines don't add safety, they add friction, waste tokens, and the model spends effort fighting your instructions instead of the task.&lt;/p&gt;

&lt;h1&gt;
  
  
  Problems Addressed 😔
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Forced verification instructions cause reasoning models to over-verify, &lt;a href="https://dev.to/mcsee/ai-coding-tip-009-compact-your-context-3io9"&gt;burning tokens&lt;/a&gt; on redundant checks the model would have run anyway.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;"Think deeply" as a universal prefix no longer maps to anything: modern APIs expose an explicit effort level, so a vague plea does nothing a real setting wouldn't do better.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;ALWAYS/NEVER absolutes written for judgment calls turn a nuanced decision into a rule the model follows literally, even when the literal reading is wrong.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;"Be concise" without specifics leaves the model guessing what to cut, so it either &lt;a href="https://dev.to/mcsee/ai-coding-tip-009-compact-your-context-3io9"&gt;pads the response&lt;/a&gt; or cuts something you needed.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Contradictions inherited from older prompt versions, the same rule stated twice, slightly differently, in two sections, leave the model to arbitrate a conflict you never meant to create, sometimes by hallucinating its own resolution.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Missing autonomy rules mean the model either stalls asking permission for trivial calls or barrels ahead on changes you wanted to review first.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  How to Do It 🛠️
&lt;/h1&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Delete forced verification lines like "double-check your work" or "review before answering," since Anthropic's guidance on Opus 5 states directly: &lt;em&gt;"If your prompt contains explicit verification instructions... remove them: they cause over-verification in modern models."&lt;/em&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Replace "think deeply" or "think hard" with the model's official effort selector (&lt;code&gt;low&lt;/code&gt;/&lt;code&gt;medium&lt;/code&gt;/&lt;code&gt;high&lt;/code&gt;/&lt;code&gt;max&lt;/code&gt;), and start low, raising it only when a task actually needs the extra depth.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Turn ALWAYS/NEVER language into decision criteria instead of blanket orders, and reserve absolute words for invariants that are genuinely always true, the same way you'd &lt;a href="https://dev.to/mcsee/ai-coding-tip-015-force-the-ai-to-obey-you-49mc"&gt;force the model to obey&lt;/a&gt; only the rules that are actually non-negotiable.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Replace a bare "be concise" with &lt;a href="https://dev.to/mcsee/ai-coding-tip-009-compact-your-context-3io9"&gt;what to keep and what to cut&lt;/a&gt;: name the sections that matter and the ones that don't.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Deduplicate inherited rules so each constraint lives in exactly one place in the prompt, stated once.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;State an explicit autonomy policy as &lt;a href="https://dev.to/mcsee/ai-coding-tip-022-give-ai-a-harness-to-work-with-274a"&gt;a harness&lt;/a&gt;, the way OpenAI's GPT-5.6 guide does: &lt;em&gt;"For requests to analyze, review, or plan, inspect and report. Don't implement changes unless asked,"&lt;/em&gt; the same &lt;a href="https://dev.to/mcsee/ai-coding-tip-003-force-read-only-planning-1d1m"&gt;read-only planning step&lt;/a&gt; you'd force on any other run.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Set explicit length in the request itself, a paragraph, a table, three bullets, instead of leaving "how long" to the model's judgment.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Rewrite the prompt using the 2026 template: Role, Objective, Success criteria, Constraints, Output format, and Stopping rules, the same explicit exit condition you'd &lt;a href="https://dev.to/mcsee/ai-coding-tip-024-force-a-criteria-check-before-the-task-ends-51ij"&gt;force before closing out any task&lt;/a&gt;, and drop step-by-step process instructions in favor of describing the outcome.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;State &lt;a href="https://dev.to/mcsee/ai-coding-tip-024-force-a-criteria-check-before-the-task-ends-51ij"&gt;clear, verifiable exit criteria&lt;/a&gt;, the same ones you'd expect from a human collaborator.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h1&gt;
  
  
  Benefits 🎯
&lt;/h1&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Better results, not just shorter ones:&lt;/strong&gt; &lt;a href="https://developers.openai.com/cookbook/examples/gpt-5/gpt-5-6_prompting_guide" rel="noopener noreferrer"&gt;OpenAI reports&lt;/a&gt; that trimming their internal agent prompts, cutting repeated instructions, unnecessary examples, and irrelevant tool descriptions, raised evaluation scores by 10 to 15%.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Lower token cost:&lt;/strong&gt; The same trimming dropped token consumption between 41 and 66%, and cost by up to 67%.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Less over-verification:&lt;/strong&gt; Removing forced double-check instructions stops the model from re-verifying work it already verified as part of normal reasoning.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Effort matches the task:&lt;/strong&gt; An explicit effort level replaces a vague "think hard," so simple requests stay cheap and hard ones get the depth they need.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Fewer surprise expansions:&lt;/strong&gt; A stated scope stops the model from turning a one-file fix into a refactor of the whole module.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;No arbitration needed:&lt;/strong&gt; A prompt with one copy of each rule leaves nothing for the model to reconcile on its own.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h1&gt;
  
  
  Context 🧠
&lt;/h1&gt;

&lt;p&gt;This shift tracks a change in what the model already does by default.&lt;/p&gt;

&lt;p&gt;Older models needed to be told to verify, to slow down, to stay on topic, because without that scaffolding they skipped steps.&lt;/p&gt;

&lt;p&gt;Reasoning models like GPT-5.6, Opus 5, and Kimi-3 already run an internal verification pass and already pace their depth against the task, so the same scaffolding stops helping and starts duplicating work the model was going to do anyway.&lt;/p&gt;

&lt;p&gt;The fix isn't a shorter prompt for its own sake, since a short but vague prompt still fails.&lt;/p&gt;

&lt;p&gt;It's a prompt where every remaining line does something no default behavior already covers: the real role, the real objective, the real constraints, and the four settings the model can't infer on its own, effort, scope, length, and autonomy.&lt;/p&gt;

&lt;p&gt;Autonomy is the one most prompts still skip, because apparently deciding when the model gets to act on its own is less fun than writing a ninth verification clause nobody needed.&lt;/p&gt;

&lt;p&gt;A three-level policy works for most tasks: act without asking on reversible, low-risk steps, confirm before anything destructive or hard to undo, and for pure analysis or planning requests, &lt;a href="https://dev.to/mcsee/ai-coding-tip-003-force-read-only-planning-1d1m"&gt;inspect and report without touching code&lt;/a&gt;, exactly as OpenAI's guidance states.&lt;/p&gt;

&lt;p&gt;As always, you need a &lt;a href="https://dev.to/mcsee/ai-coding-tip-006-review-every-line-before-commit-bmm"&gt;human in the loop&lt;/a&gt; to verify the task is complete.&lt;/p&gt;

&lt;h2&gt;
  
  
  Prompt Reference 📝
&lt;/h2&gt;

&lt;h2&gt;
  
  
  Bad Prompt 🚫
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;Think deeply about this task and be very careful.
Always double-check your work before answering.
Never skip validation, ever, no matter what.
Be concise.
Refactor the payment module.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h2&gt;
  
  
  Good prompt 👉
&lt;/h2&gt;




&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;Role: Senior backend engineer refactoring a payment module.
Objective: Extract the retry logic in PaymentGateway into its
own class.
Success criteria: Existing tests pass. Retry behavior stays
the same. No new public methods on PaymentGateway.
Constraints: Don't touch the database schema. Don't add new
dependencies.
Output format: A diff, followed by a two-sentence summary of
what moved.
Stopping rules: If a test needs new mocking infrastructure to
pass, stop and ask before adding it. Otherwise proceed without
confirming each file.
Effort: medium.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h1&gt;
  
  
  Considerations ⚠️
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://dev.to/mcsee/ai-coding-tip-009-compact-your-context-3io9"&gt;Trimming a prompt&lt;/a&gt; isn't the same as leaving out real constraints.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://dev.to/mcsee/what-is-wrong-with-software-5pa"&gt;Business rules&lt;/a&gt;, security limits, and data boundaries stay in the prompt no matter how short the rest of it gets, since those aren't scaffolding, they're the same kind of non-negotiable rule you'd &lt;a href="https://dev.to/mcsee/ai-coding-tip-027-force-code-standards-58nf"&gt;force through a hook&lt;/a&gt; instead of a wish.&lt;/p&gt;

&lt;p&gt;The effort selector is model-specific.&lt;/p&gt;

&lt;p&gt;Confirm the exact parameter name and accepted values for the model you're calling before relying on it, since &lt;code&gt;low&lt;/code&gt;/&lt;code&gt;medium&lt;/code&gt;/&lt;code&gt;high&lt;/code&gt;/&lt;code&gt;max&lt;/code&gt; doesn't map identically across every provider.&lt;/p&gt;

&lt;p&gt;An autonomy policy still needs &lt;a href="https://dev.to/mcsee/ai-coding-tip-024-force-a-criteria-check-before-the-task-ends-51ij"&gt;real stopping rules&lt;/a&gt;, not just permission to act freely.&lt;/p&gt;

&lt;p&gt;"Act without asking" without a boundary is how a reversible-looking step turns into an irreversible one.&lt;/p&gt;

&lt;p&gt;Older prompts you've relied on for months may still carry verification and hedging language written for older models.&lt;/p&gt;

&lt;p&gt;Re-check them against the current model's defaults instead of assuming last year's tuning still applies.&lt;/p&gt;

&lt;p&gt;You don't have to do that rewrite by hand.&lt;/p&gt;

&lt;p&gt;Feed the old prompt into a meta-prompt that applies this tip's own rules and hands back a trimmed version.&lt;/p&gt;




&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;Rewrite the prompt below for a reasoning model.

Remove: forced verification lines ("double-check your work",
"review before answering"), "think deeply" or "think hard"
phrasing, SIEMPRE/NUNCA rules written for judgment calls
instead of real invariants, a bare "be concise" with no
specifics, and any rule that's stated more than once.

Add: an explicit effort level (low, medium, high, or max),
an explicit scope boundary, an explicit output length, and
an explicit autonomy policy (act without asking, confirm
first, or inspect and report only).

Keep every real business rule, security limit, and data
boundary from the original prompt untouched. Don't invent
new constraints that weren't already there.

Output using this structure: Role, Objective, Success
criteria, Constraints, Output format, Stopping rules.

Old prompt:
&lt;span class="nt"&gt;&amp;lt;PASTE&lt;/span&gt; &lt;span class="na"&gt;THE&lt;/span&gt; &lt;span class="na"&gt;OLD&lt;/span&gt; &lt;span class="na"&gt;PROMPT&lt;/span&gt; &lt;span class="na"&gt;HERE&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h1&gt;
  
  
  Type 📝
&lt;/h1&gt;

&lt;p&gt;[X] Semi-Automatic&lt;/p&gt;
&lt;h1&gt;
  
  
  Limitations ⚠️
&lt;/h1&gt;

&lt;p&gt;This trimming approach targets reasoning models with an explicit effort parameter and strong default self-verification.&lt;/p&gt;

&lt;p&gt;Older or smaller models without those defaults may still need the explicit scaffolding this tip removes.&lt;/p&gt;
&lt;h1&gt;
  
  
  Tags 🏷️
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;Prompt Engineering&lt;/li&gt;
&lt;/ul&gt;
&lt;h1&gt;
  
  
  Level 🔋
&lt;/h1&gt;

&lt;p&gt;[X] Beginner&lt;/p&gt;
&lt;h1&gt;
  
  
  Related Tips 🔗
&lt;/h1&gt;


&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/mcsee/ai-coding-tip-003-force-read-only-planning-1d1m" class="crayons-story__hidden-navigation-link"&gt;AI Coding Tip 003 - Force Read-Only Planning&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/mcsee" class="crayons-avatar  crayons-avatar--l  "&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" alt="mcsee profile" class="crayons-avatar__image" width="800" height="533"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/mcsee" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Maxi Contieri
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Maxi Contieri
                
              
              &lt;div id="story-author-preview-content-3177915" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/mcsee" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" class="crayons-avatar__image" alt="" width="800" height="533"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Maxi Contieri&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/mcsee/ai-coding-tip-003-force-read-only-planning-1d1m" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Jan 20&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/mcsee/ai-coding-tip-003-force-read-only-planning-1d1m" id="article-link-3177915"&gt;
          AI Coding Tip 003 - Force Read-Only Planning
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/programming"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;programming&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/chatgpt"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;chatgpt&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/code"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;code&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/mcsee/ai-coding-tip-003-force-read-only-planning-1d1m" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;2&lt;span class="hidden s:inline"&gt;&amp;nbsp;reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/mcsee/ai-coding-tip-003-force-read-only-planning-1d1m#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              &lt;span class="hidden s:inline"&gt;Add&amp;nbsp;Comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            3 min read
          &lt;/small&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;


&lt;/div&gt;
&lt;br&gt;



&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/mcsee/ai-coding-tip-006-review-every-line-before-commit-bmm" class="crayons-story__hidden-navigation-link"&gt;AI Coding Tip 006 - Review Every Line Before Commit&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/mcsee" class="crayons-avatar  crayons-avatar--l  "&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" alt="mcsee profile" class="crayons-avatar__image" width="800" height="533"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/mcsee" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Maxi Contieri
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Maxi Contieri
                
              
              &lt;div id="story-author-preview-content-3251959" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/mcsee" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" class="crayons-avatar__image" alt="" width="800" height="533"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Maxi Contieri&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/mcsee/ai-coding-tip-006-review-every-line-before-commit-bmm" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Feb 13&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/mcsee/ai-coding-tip-006-review-every-line-before-commit-bmm" id="article-link-3251959"&gt;
          AI Coding Tip 006 - Review Every Line Before Commit
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/programming"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;programming&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/development"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;development&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/softwaredevelopment"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;softwaredevelopment&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
            &lt;a href="https://dev.to/mcsee/ai-coding-tip-006-review-every-line-before-commit-bmm#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              1&lt;span class="hidden s:inline"&gt;&amp;nbsp;comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            7 min read
          &lt;/small&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;



&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/mcsee/ai-coding-tip-009-compact-your-context-3io9" class="crayons-story__hidden-navigation-link"&gt;AI Coding Tip 009 - Compact Your Context&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/mcsee" class="crayons-avatar  crayons-avatar--l  "&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" alt="mcsee profile" class="crayons-avatar__image" width="800" height="533"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/mcsee" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Maxi Contieri
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Maxi Contieri
                
              
              &lt;div id="story-author-preview-content-3303683" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/mcsee" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" class="crayons-avatar__image" alt="" width="800" height="533"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Maxi Contieri&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/mcsee/ai-coding-tip-009-compact-your-context-3io9" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Mar 3&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/mcsee/ai-coding-tip-009-compact-your-context-3io9" id="article-link-3303683"&gt;
          AI Coding Tip 009 - Compact Your Context
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/webdev"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;webdev&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/programming"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;programming&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/tutorial"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;tutorial&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/mcsee/ai-coding-tip-009-compact-your-context-3io9" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;5&lt;span class="hidden s:inline"&gt;&amp;nbsp;reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/mcsee/ai-coding-tip-009-compact-your-context-3io9#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              1&lt;span class="hidden s:inline"&gt;&amp;nbsp;comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            4 min read
          &lt;/small&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;



&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/mcsee/ai-coding-tip-015-force-the-ai-to-obey-you-49mc" class="crayons-story__hidden-navigation-link"&gt;AI Coding Tip 015 - Force the AI to Obey You&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/mcsee" class="crayons-avatar  crayons-avatar--l  "&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" alt="mcsee profile" class="crayons-avatar__image" width="800" height="533"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/mcsee" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Maxi Contieri
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Maxi Contieri
                
              
              &lt;div id="story-author-preview-content-3495172" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/mcsee" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" class="crayons-avatar__image" alt="" width="800" height="533"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Maxi Contieri&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/mcsee/ai-coding-tip-015-force-the-ai-to-obey-you-49mc" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Apr 14&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/mcsee/ai-coding-tip-015-force-the-ai-to-obey-you-49mc" id="article-link-3495172"&gt;
          AI Coding Tip 015 - Force the AI to Obey You
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/webdev"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;webdev&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/programming"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;programming&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/productivity"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;productivity&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/mcsee/ai-coding-tip-015-force-the-ai-to-obey-you-49mc" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;1&lt;span class="hidden s:inline"&gt;&amp;nbsp;reaction&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/mcsee/ai-coding-tip-015-force-the-ai-to-obey-you-49mc#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              &lt;span class="hidden s:inline"&gt;Add&amp;nbsp;Comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            5 min read
          &lt;/small&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;



&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/mcsee/ai-coding-tip-022-give-ai-a-harness-to-work-with-274a" class="crayons-story__hidden-navigation-link"&gt;AI Coding Tip 022 - Give AI a Harness to Work With&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/mcsee" class="crayons-avatar  crayons-avatar--l  "&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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" alt="mcsee profile" class="crayons-avatar__image" width="800" height="533"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/mcsee" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Maxi Contieri
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Maxi Contieri
                
              
              &lt;div id="story-author-preview-content-3791486" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/mcsee" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" class="crayons-avatar__image" alt="" width="800" height="533"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Maxi Contieri&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/mcsee/ai-coding-tip-022-give-ai-a-harness-to-work-with-274a" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Jun 2&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/mcsee/ai-coding-tip-022-give-ai-a-harness-to-work-with-274a" id="article-link-3791486"&gt;
          AI Coding Tip 022 - Give AI a Harness to Work With
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/webdev"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;webdev&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/beginners"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;beginners&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
            &lt;a href="https://dev.to/mcsee/ai-coding-tip-022-give-ai-a-harness-to-work-with-274a#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              2&lt;span class="hidden s:inline"&gt;&amp;nbsp;comments&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            6 min read
          &lt;/small&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;



&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/mcsee/ai-coding-tip-024-force-a-criteria-check-before-the-task-ends-51ij" class="crayons-story__hidden-navigation-link"&gt;AI Coding Tip 024 - Force a Criteria Check Before the Task Ends&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/mcsee" class="crayons-avatar  crayons-avatar--l  "&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" alt="mcsee profile" class="crayons-avatar__image" width="800" height="533"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/mcsee" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Maxi Contieri
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Maxi Contieri
                
              
              &lt;div id="story-author-preview-content-3887200" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/mcsee" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" class="crayons-avatar__image" alt="" width="800" height="533"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Maxi Contieri&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/mcsee/ai-coding-tip-024-force-a-criteria-check-before-the-task-ends-51ij" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Jun 16&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/mcsee/ai-coding-tip-024-force-a-criteria-check-before-the-task-ends-51ij" id="article-link-3887200"&gt;
          AI Coding Tip 024 - Force a Criteria Check Before the Task Ends
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/webdev"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;webdev&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/programming"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;programming&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/productivity"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;productivity&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/mcsee/ai-coding-tip-024-force-a-criteria-check-before-the-task-ends-51ij" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;2&lt;span class="hidden s:inline"&gt;&amp;nbsp;reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/mcsee/ai-coding-tip-024-force-a-criteria-check-before-the-task-ends-51ij#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              &lt;span class="hidden s:inline"&gt;Add&amp;nbsp;Comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            6 min read
          &lt;/small&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;



&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/mcsee/ai-coding-tip-027-force-code-standards-58nf" class="crayons-story__hidden-navigation-link"&gt;AI Coding Tip 027 - Force Code Standards&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/mcsee" class="crayons-avatar  crayons-avatar--l  "&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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" alt="mcsee profile" class="crayons-avatar__image" width="800" height="533"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/mcsee" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Maxi Contieri
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Maxi Contieri
                
              
              &lt;div id="story-author-preview-content-4114449" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/mcsee" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" class="crayons-avatar__image" alt="" width="800" height="533"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Maxi Contieri&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/mcsee/ai-coding-tip-027-force-code-standards-58nf" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Jul 14&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/mcsee/ai-coding-tip-027-force-code-standards-58nf" id="article-link-4114449"&gt;
          AI Coding Tip 027 - Force Code Standards
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/webdev"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;webdev&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/programming"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;programming&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/beginners"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;beginners&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
            &lt;a href="https://dev.to/mcsee/ai-coding-tip-027-force-code-standards-58nf#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              &lt;span class="hidden s:inline"&gt;Add&amp;nbsp;Comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            8 min read
          &lt;/small&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


&lt;h1&gt;
  
  
  Conclusion 🏁
&lt;/h1&gt;

&lt;p&gt;A prompt written for last year's model is a prompt full of instructions the current model already follows on its own.&lt;/p&gt;

&lt;p&gt;Verification, depth, and caution used to be things you had to ask for.&lt;/p&gt;

&lt;p&gt;Now they're defaults, and asking for them again just adds noise the model has to work around, like reminding a surgeon to wash their hands before every single incision.&lt;/p&gt;

&lt;p&gt;Once useful.&lt;/p&gt;

&lt;p&gt;Now just insulting.&lt;/p&gt;

&lt;p&gt;Keep the four things a model still can't infer, effort, scope, length, and autonomy, and delete everything else that was only ever compensating for a model that's no longer the one answering.&lt;/p&gt;

&lt;h1&gt;
  
  
  More Information ℹ️
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://aimafia.substack.com/p/guia-prompting-gratis" rel="noopener noreferrer"&gt;Prompting 2026 - Guía Definitiva&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://developers.openai.com/cookbook/examples/gpt-5/gpt-5-6_prompting_guide" rel="noopener noreferrer"&gt;GPT-5.6 Prompting Guide&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://docs.claude.com/en/docs/build-with-claude/prompt-engineering" rel="noopener noreferrer"&gt;Prompting Claude Opus 5&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Also Known As 🎭
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;Prompt Pruning&lt;/li&gt;
&lt;li&gt;Prompt Minimalism&lt;/li&gt;
&lt;li&gt;Outcome-First Prompting&lt;/li&gt;
&lt;li&gt;Effort-Level Prompting&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Tools 🧰
&lt;/h1&gt;

&lt;p&gt;The &lt;code&gt;reasoning_effort&lt;/code&gt; parameter (OpenAI) and the extended-thinking budget parameter (Anthropic) set explicit depth instead of a "think hard" instruction.&lt;/p&gt;

&lt;h1&gt;
  
  
  Disclaimer 📢
&lt;/h1&gt;

&lt;p&gt;The views expressed here are my own.&lt;/p&gt;

&lt;p&gt;I am a human who writes as best as possible for other humans.&lt;/p&gt;

&lt;p&gt;I use AI proofreading tools to improve some texts.&lt;/p&gt;

&lt;p&gt;Most AI detectors will flag this article as AI-generated. That's expected. It's a technical article. It has a rigid format and clear steps to follow. &lt;/p&gt;

&lt;p&gt;That's exactly the pattern those tools are trained to catch. I've apparently been "writing like an AI" for decades, long before AI existed. This is a technical article, not a novel.&lt;/p&gt;

&lt;p&gt;I welcome constructive criticism and dialogue.&lt;/p&gt;

&lt;p&gt;I shape these insights through 30 years in the software industry, 25 years of teaching, and writing over 500 articles and a book.&lt;/p&gt;




&lt;p&gt;This article is part of the &lt;em&gt;AI Coding Tip&lt;/em&gt; series.&lt;/p&gt;


&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/mcsee/ai-coding-tips-118n" class="crayons-story__hidden-navigation-link"&gt;AI Coding Tips&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/mcsee" class="crayons-avatar  crayons-avatar--l  "&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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" alt="mcsee profile" class="crayons-avatar__image" width="800" height="533"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/mcsee" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Maxi Contieri
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Maxi Contieri
                
              
              &lt;div id="story-author-preview-content-3187836" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/mcsee" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" class="crayons-avatar__image" alt="" width="800" height="533"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Maxi Contieri&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/mcsee/ai-coding-tips-118n" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Jan 21&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/mcsee/ai-coding-tips-118n" id="article-link-3187836"&gt;
          AI Coding Tips
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/webdev"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;webdev&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/programming"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;programming&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/beginners"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;beginners&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
            &lt;a href="https://dev.to/mcsee/ai-coding-tips-118n#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              1&lt;span class="hidden s:inline"&gt;&amp;nbsp;comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            2 min read
          &lt;/small&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


</description>
      <category>ai</category>
      <category>llm</category>
      <category>productivity</category>
    </item>
    <item>
      <title>AI Coding Tip 030 - Script Your Skills, Not Your Prompts</title>
      <dc:creator>Maxi Contieri</dc:creator>
      <pubDate>Tue, 04 Aug 2026 11:00:00 +0000</pubDate>
      <link>https://dev.to/mcsee/ai-coding-tip-030-script-your-skills-not-your-prompts-2om3</link>
      <guid>https://dev.to/mcsee/ai-coding-tip-030-script-your-skills-not-your-prompts-2om3</guid>
      <description>&lt;p&gt;&lt;em&gt;Approve the logic once, then let it run the same way forever.&lt;/em&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;TL;DR: Turn repeatable skill steps into tested scripts instead of prompts, so behavior stays deterministic and cheap.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h1&gt;
  
  
  Common Mistake ❌
&lt;/h1&gt;

&lt;p&gt;You ask the AI to repeat the same multi-step task through free-form prompting every single time: call an API, parse a config file, wrap text at a column limit.&lt;/p&gt;

&lt;p&gt;Each run, the model reinterprets your instructions from scratch, so a step that ran correctly on Monday can drift on Tuesday, and by Friday it's basically improvising jazz.&lt;/p&gt;

&lt;p&gt;Worse, you paste a credential straight into the conversation because typing four extra characters into a &lt;code&gt;.env&lt;/code&gt; file felt like a personal attack on your time, turning your prompt into an &lt;a href="https://dev.to/mcsee/code-smell-258-secrets-in-code-1pg2"&gt;accidental leak&lt;/a&gt;.&lt;/p&gt;

&lt;h1&gt;
  
  
  Problems Addressed 😔
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;The same instruction produces different output on different runs, because the model &lt;a href="https://dev.to/mcsee/code-smell-300-package-hallucination-1kai"&gt;reinterprets free-form prompts&lt;/a&gt; instead of executing fixed logic.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Every repeated step burns tokens re-explaining rules the AI already knows, shrinking the room left for &lt;a href="https://dev.to/mcsee/ai-coding-tip-009-compact-your-context-3io9"&gt;actual context&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Secrets typed into a prompt end up in the transcript and the logs, turning into &lt;a href="https://dev.to/mcsee/code-smell-258-secrets-in-code-1pg2"&gt;secrets in code&lt;/a&gt; that never should have left a &lt;code&gt;.env&lt;/code&gt; file.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Manual API calls skip retries and backoff, so the first 429 response ends your task's career instead of just asking it to wait a second.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;A failure inside free-form prompting means re-reading a long conversation, instead of reading a stack trace that points at one line.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  How to Do It 🛠️
&lt;/h1&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;List skill steps that always take the same input and always produce the same output.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Write a real script for that step, in a language with a test framework, not another paragraph of instructions.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Move every credential the script needs into a &lt;code&gt;.env&lt;/code&gt; file instead of &lt;a href="https://dev.to/mcsee/code-smell-29-settings-configs-3eh3"&gt;scattering configuration values through the code&lt;/a&gt;, and load it at runtime.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Add retries, timeouts, and rate limit backoff around every external API call the script makes.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Cover the script with unit tests, so a regression &lt;a href="https://dev.to/mcsee/ai-coding-tip-024-force-a-criteria-check-before-the-task-ends-51ij"&gt;fails a test&lt;/a&gt; instead of shipping to a user.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://dev.to/mcsee/ai-coding-tip-006-review-every-line-before-commit-bmm"&gt;Review the script&lt;/a&gt; once like any other pull request, then let the skill call it the same way on every future run.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Keep the model responsible only for the judgment calls a script can't make, such as deciding which script to run.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Ask the model to audit a skill that's already running in production, looking for steps still done through free-form actions, like several &lt;code&gt;WebFetch&lt;/code&gt; calls against the same site, and point out which one a direct API call would let you replace with a script.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h1&gt;
  
  
  Benefits 🎯
&lt;/h1&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Determinism:&lt;/strong&gt; A script returns the same output for the same input every time, so you stop chasing behavior that changed for no visible reason.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Speed:&lt;/strong&gt; A script runs in milliseconds without waiting on a model round trip for logic that never actually needed judgment.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Lower token cost:&lt;/strong&gt; Logic that lives in code doesn't need to be re-explained inside the &lt;a href="https://dev.to/mcsee/ai-coding-tip-009-compact-your-context-3io9"&gt;context window&lt;/a&gt; on every run.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Testability:&lt;/strong&gt; You cover the script with unit tests, the same way you'd &lt;a href="https://dev.to/mcsee/ai-coding-tip-006-review-every-line-before-commit-bmm"&gt;review any other change&lt;/a&gt; before it ships.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Fewer errors:&lt;/strong&gt; A reviewed script removes the chance that the model improvises an unsafe step under pressure.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;One-time approval:&lt;/strong&gt; Once a script &lt;a href="https://dev.to/mcsee/ai-coding-tip-006-review-every-line-before-commit-bmm"&gt;passes review&lt;/a&gt;, every later run reuses the exact same logic instead of re-deciding it from a prompt.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Secrets stay out of the conversation:&lt;/strong&gt; Credentials read from &lt;code&gt;.env&lt;/code&gt; at runtime never turn into &lt;a href="https://dev.to/mcsee/code-smell-258-secrets-in-code-1pg2"&gt;secrets in code&lt;/a&gt; inside a transcript.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h1&gt;
  
  
  Context 🧠
&lt;/h1&gt;

&lt;p&gt;A skill is a &lt;a href="https://dev.to/mcsee/ai-coding-tip-022-give-ai-a-harness-to-work-with-274a"&gt;harness&lt;/a&gt; you install before you prompt.&lt;/p&gt;

&lt;p&gt;A script is the part of that harness you don't want the model reinventing on every call.&lt;/p&gt;

&lt;p&gt;Compare this to wiring an MCP server for the same job.&lt;/p&gt;

&lt;p&gt;An MCP server is a live process: it needs its own auth, its own protocol translation, and its own connection management, and it keeps running whether or not a task needs it.&lt;/p&gt;

&lt;p&gt;Congratulations, you've stood up a microservice to say one API call's worth of hello.&lt;/p&gt;

&lt;p&gt;A script has none of that.&lt;/p&gt;

&lt;p&gt;The skill invokes it directly, it runs, it exits, and there's no server left to patch, monitor, or keep alive between sessions.&lt;/p&gt;

&lt;p&gt;Reserve MCP for state that genuinely needs a live connection, like a database session or a long-running subscription.&lt;/p&gt;

&lt;p&gt;For a single API call or a formatting rule, a script wrapped in a &lt;a href="https://dev.to/mcsee/ai-coding-tip-004-use-modular-skills-g97"&gt;modular skill&lt;/a&gt; does the same job with less surface area to secure and &lt;a href="https://dev.to/mcsee/ai-coding-tip-007-avoid-malicious-skills-1jh"&gt;treat carefully&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;This also plugs directly into &lt;a href="https://dev.to/mcsee/ai-coding-tip-027-force-code-standards-58nf"&gt;forcing your standards through hooks&lt;/a&gt;: a script is a hook already wired in, so the model can't &lt;a href="https://dev.to/mcsee/ai-coding-tip-015-force-the-ai-to-obey-you-49mc"&gt;skip it on a bad day&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Prompt Reference 📝
&lt;/h2&gt;

&lt;h2&gt;
  
  
  Bad Prompt 🚫
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;Create a skill /buy-lunar-moon

The skill should call the billing API and mark the invoice for the
moon base on Shackleton crater as paid.

Use the key sk_live_notARealKey12345 straight in the request header.

If the call fails, just retry it a few times until it works.
Don't bother logging anything, just tell me once it succeeds.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h2&gt;
  
  
  Good prompt 👉
&lt;/h2&gt;




&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;Create a skill /buy-lunar-moon

Interact with the API using scripts.

Write a script at scripts/mark_invoice_paid.py that marks an
invoice as paid through the billing API.

Read the API key from BILLING_API_KEY in a .env file, never
inline it in the script or in this prompt.

Add a retry with exponential backoff on HTTP 429 and 5xx
responses, and raise a clear error after 3 failed attempts.

Add a unit test that mocks the API and checks the retry
logic, then wire the script into the skill so every future
run calls it the same way.

Invoke the skill to buy the moon base on Shackleton crater
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h1&gt;
  
  
  Considerations ⚠️
&lt;/h1&gt;

&lt;p&gt;A script only replaces steps that never need judgment.&lt;/p&gt;

&lt;p&gt;Keep the model in charge of choosing which script to call and interpreting ambiguous input, and let the script handle the mechanical part.&lt;/p&gt;

&lt;p&gt;A script still needs maintenance.&lt;/p&gt;

&lt;p&gt;Someone has to update it when the API changes, so treat it like any other piece of production code, with an owner and a changelog.&lt;/p&gt;

&lt;p&gt;Rate limit handling adds complexity the model would happily skip.&lt;/p&gt;

&lt;p&gt;Budget real time to build backoff and retries correctly, because a script that fails silently on a 429 is the software equivalent of ghosting someone, except the someone is your invoice.&lt;/p&gt;

&lt;p&gt;Not every skill step deserves a script.&lt;/p&gt;

&lt;p&gt;A one-off task, or a step that genuinely requires reasoning about unstructured input, stays better served by the model itself.&lt;/p&gt;

&lt;p&gt;Push this rule into the harness itself.&lt;/p&gt;

&lt;p&gt;Deny PowerShell or Bash calls that run arbitrary, on-the-fly scripts by default, no matter how convenient a one-off command feels in the moment.&lt;/p&gt;

&lt;p&gt;Let skills write scripts instead, submit them for a human-in-the-loop audit, and grant standing authorization once approved, so every future run reuses the same reviewed script instead of asking permission again.&lt;/p&gt;

&lt;p&gt;An innocent-looking command can still smuggle in arbitrary execution.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;find . -name "*.py" -exec python {} \;&lt;/code&gt; reads like a file search, but it runs every match it finds, so the harness needs to deny it on the same terms as a raw script, not wave it through because the command starts with &lt;code&gt;find&lt;/code&gt;.&lt;/p&gt;
&lt;h1&gt;
  
  
  Type 📝
&lt;/h1&gt;

&lt;p&gt;[X] Semi-Automatic&lt;/p&gt;
&lt;h1&gt;
  
  
  Limitations ⚠️
&lt;/h1&gt;

&lt;p&gt;Writing and testing the script takes upfront engineering time that a quick prompt doesn't.&lt;/p&gt;

&lt;p&gt;The script only covers the exact case it was built for, so an unexpected input still needs a human or a model to step in.&lt;/p&gt;
&lt;h1&gt;
  
  
  Tags 🏷️
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;Safety&lt;/li&gt;
&lt;/ul&gt;
&lt;h1&gt;
  
  
  Level 🔋
&lt;/h1&gt;

&lt;p&gt;[X] Intermediate&lt;/p&gt;
&lt;h1&gt;
  
  
  Related Tips 🔗
&lt;/h1&gt;


&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/mcsee/ai-coding-tip-004-use-modular-skills-g97" class="crayons-story__hidden-navigation-link"&gt;AI Coding Tip 004 - Use Modular Skills&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/mcsee" class="crayons-avatar  crayons-avatar--l  "&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" alt="mcsee profile" class="crayons-avatar__image" width="800" height="533"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/mcsee" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Maxi Contieri
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Maxi Contieri
                
              
              &lt;div id="story-author-preview-content-3200068" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/mcsee" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" class="crayons-avatar__image" alt="" width="800" height="533"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Maxi Contieri&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/mcsee/ai-coding-tip-004-use-modular-skills-g97" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Jan 27&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/mcsee/ai-coding-tip-004-use-modular-skills-g97" id="article-link-3200068"&gt;
          AI Coding Tip 004 - Use Modular Skills
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/webdev"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;webdev&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/programming"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;programming&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/beginners"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;beginners&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/mcsee/ai-coding-tip-004-use-modular-skills-g97" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/multi-unicorn-b44d6f8c23cdd00964192bedc38af3e82463978aa611b4365bd33a0f1f4f3e97.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;3&lt;span class="hidden s:inline"&gt;&amp;nbsp;reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/mcsee/ai-coding-tip-004-use-modular-skills-g97#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              &lt;span class="hidden s:inline"&gt;Add&amp;nbsp;Comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            4 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;


&lt;/div&gt;
&lt;br&gt;



&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/mcsee/ai-coding-tip-006-review-every-line-before-commit-bmm" class="crayons-story__hidden-navigation-link"&gt;AI Coding Tip 006 - Review Every Line Before Commit&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/mcsee" class="crayons-avatar  crayons-avatar--l  "&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" alt="mcsee profile" class="crayons-avatar__image" width="800" height="533"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/mcsee" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Maxi Contieri
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Maxi Contieri
                
              
              &lt;div id="story-author-preview-content-3251959" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/mcsee" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" class="crayons-avatar__image" alt="" width="800" height="533"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Maxi Contieri&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/mcsee/ai-coding-tip-006-review-every-line-before-commit-bmm" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Feb 13&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/mcsee/ai-coding-tip-006-review-every-line-before-commit-bmm" id="article-link-3251959"&gt;
          AI Coding Tip 006 - Review Every Line Before Commit
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/programming"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;programming&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/development"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;development&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/softwaredevelopment"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;softwaredevelopment&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
            &lt;a href="https://dev.to/mcsee/ai-coding-tip-006-review-every-line-before-commit-bmm#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              1&lt;span class="hidden s:inline"&gt;&amp;nbsp;comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            7 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;



&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/mcsee/ai-coding-tip-007-avoid-malicious-skills-1jh" class="crayons-story__hidden-navigation-link"&gt;AI Coding Tip 007 - Avoid Malicious Skills&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/mcsee" class="crayons-avatar  crayons-avatar--l  "&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" alt="mcsee profile" class="crayons-avatar__image" width="800" height="533"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/mcsee" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Maxi Contieri
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Maxi Contieri
                
              
              &lt;div id="story-author-preview-content-3261225" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/mcsee" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" class="crayons-avatar__image" alt="" width="800" height="533"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Maxi Contieri&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/mcsee/ai-coding-tip-007-avoid-malicious-skills-1jh" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Feb 17&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/mcsee/ai-coding-tip-007-avoid-malicious-skills-1jh" id="article-link-3261225"&gt;
          AI Coding Tip 007 - Avoid Malicious Skills
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/programming"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;programming&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/webdev"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;webdev&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/beginners"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;beginners&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/mcsee/ai-coding-tip-007-avoid-malicious-skills-1jh" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/fire-f60e7a582391810302117f987b22a8ef04a2fe0df7e3258a5f49332df1cec71e.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;3&lt;span class="hidden s:inline"&gt;&amp;nbsp;reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/mcsee/ai-coding-tip-007-avoid-malicious-skills-1jh#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              &lt;span class="hidden s:inline"&gt;Add&amp;nbsp;Comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            4 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;



&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/mcsee/ai-coding-tip-009-compact-your-context-3io9" class="crayons-story__hidden-navigation-link"&gt;AI Coding Tip 009 - Compact Your Context&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/mcsee" class="crayons-avatar  crayons-avatar--l  "&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" alt="mcsee profile" class="crayons-avatar__image" width="800" height="533"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/mcsee" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Maxi Contieri
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Maxi Contieri
                
              
              &lt;div id="story-author-preview-content-3303683" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/mcsee" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" class="crayons-avatar__image" alt="" width="800" height="533"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Maxi Contieri&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/mcsee/ai-coding-tip-009-compact-your-context-3io9" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Mar 3&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/mcsee/ai-coding-tip-009-compact-your-context-3io9" id="article-link-3303683"&gt;
          AI Coding Tip 009 - Compact Your Context
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/webdev"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;webdev&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/programming"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;programming&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/tutorial"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;tutorial&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/mcsee/ai-coding-tip-009-compact-your-context-3io9" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;5&lt;span class="hidden s:inline"&gt;&amp;nbsp;reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/mcsee/ai-coding-tip-009-compact-your-context-3io9#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              1&lt;span class="hidden s:inline"&gt;&amp;nbsp;comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            4 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;



&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/mcsee/ai-coding-tip-015-force-the-ai-to-obey-you-49mc" class="crayons-story__hidden-navigation-link"&gt;AI Coding Tip 015 - Force the AI to Obey You&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/mcsee" class="crayons-avatar  crayons-avatar--l  "&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" alt="mcsee profile" class="crayons-avatar__image" width="800" height="533"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/mcsee" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Maxi Contieri
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Maxi Contieri
                
              
              &lt;div id="story-author-preview-content-3495172" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/mcsee" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" class="crayons-avatar__image" alt="" width="800" height="533"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Maxi Contieri&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/mcsee/ai-coding-tip-015-force-the-ai-to-obey-you-49mc" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Apr 14&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/mcsee/ai-coding-tip-015-force-the-ai-to-obey-you-49mc" id="article-link-3495172"&gt;
          AI Coding Tip 015 - Force the AI to Obey You
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/webdev"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;webdev&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/programming"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;programming&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/productivity"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;productivity&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/mcsee/ai-coding-tip-015-force-the-ai-to-obey-you-49mc" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;1&lt;span class="hidden s:inline"&gt;&amp;nbsp;reaction&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/mcsee/ai-coding-tip-015-force-the-ai-to-obey-you-49mc#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              &lt;span class="hidden s:inline"&gt;Add&amp;nbsp;Comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            5 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;



&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/mcsee/ai-coding-tip-022-give-ai-a-harness-to-work-with-274a" class="crayons-story__hidden-navigation-link"&gt;AI Coding Tip 022 - Give AI a Harness to Work With&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/mcsee" class="crayons-avatar  crayons-avatar--l  "&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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" alt="mcsee profile" class="crayons-avatar__image" width="800" height="533"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/mcsee" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Maxi Contieri
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Maxi Contieri
                
              
              &lt;div id="story-author-preview-content-3791486" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/mcsee" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" class="crayons-avatar__image" alt="" width="800" height="533"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Maxi Contieri&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/mcsee/ai-coding-tip-022-give-ai-a-harness-to-work-with-274a" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Jun 2&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/mcsee/ai-coding-tip-022-give-ai-a-harness-to-work-with-274a" id="article-link-3791486"&gt;
          AI Coding Tip 022 - Give AI a Harness to Work With
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/webdev"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;webdev&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/beginners"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;beginners&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
            &lt;a href="https://dev.to/mcsee/ai-coding-tip-022-give-ai-a-harness-to-work-with-274a#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              2&lt;span class="hidden s:inline"&gt;&amp;nbsp;comments&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            6 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;



&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/mcsee/ai-coding-tip-024-force-a-criteria-check-before-the-task-ends-51ij" class="crayons-story__hidden-navigation-link"&gt;AI Coding Tip 024 - Force a Criteria Check Before the Task Ends&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/mcsee" class="crayons-avatar  crayons-avatar--l  "&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" alt="mcsee profile" class="crayons-avatar__image" width="800" height="533"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/mcsee" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Maxi Contieri
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Maxi Contieri
                
              
              &lt;div id="story-author-preview-content-3887200" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/mcsee" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" class="crayons-avatar__image" alt="" width="800" height="533"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Maxi Contieri&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/mcsee/ai-coding-tip-024-force-a-criteria-check-before-the-task-ends-51ij" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Jun 16&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/mcsee/ai-coding-tip-024-force-a-criteria-check-before-the-task-ends-51ij" id="article-link-3887200"&gt;
          AI Coding Tip 024 - Force a Criteria Check Before the Task Ends
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/webdev"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;webdev&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/programming"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;programming&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/productivity"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;productivity&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/mcsee/ai-coding-tip-024-force-a-criteria-check-before-the-task-ends-51ij" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;2&lt;span class="hidden s:inline"&gt;&amp;nbsp;reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/mcsee/ai-coding-tip-024-force-a-criteria-check-before-the-task-ends-51ij#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              &lt;span class="hidden s:inline"&gt;Add&amp;nbsp;Comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            6 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;



&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/mcsee/ai-coding-tip-027-force-code-standards-58nf" class="crayons-story__hidden-navigation-link"&gt;AI Coding Tip 027 - Force Code Standards&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/mcsee" class="crayons-avatar  crayons-avatar--l  "&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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" alt="mcsee profile" class="crayons-avatar__image" width="800" height="533"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/mcsee" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Maxi Contieri
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Maxi Contieri
                
              
              &lt;div id="story-author-preview-content-4114449" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/mcsee" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" class="crayons-avatar__image" alt="" width="800" height="533"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Maxi Contieri&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/mcsee/ai-coding-tip-027-force-code-standards-58nf" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Jul 14&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/mcsee/ai-coding-tip-027-force-code-standards-58nf" id="article-link-4114449"&gt;
          AI Coding Tip 027 - Force Code Standards
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/webdev"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;webdev&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/programming"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;programming&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/beginners"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;beginners&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
            &lt;a href="https://dev.to/mcsee/ai-coding-tip-027-force-code-standards-58nf#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              &lt;span class="hidden s:inline"&gt;Add&amp;nbsp;Comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            8 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


&lt;h1&gt;
  
  
  Conclusion 🏁
&lt;/h1&gt;

&lt;p&gt;A prompt is a request.&lt;/p&gt;

&lt;p&gt;The model is free to interpret "request" the way a teenager interprets "clean your room."&lt;/p&gt;

&lt;p&gt;A script is a decision that's already been made and already been tested.&lt;/p&gt;

&lt;p&gt;The next time a skill repeats the same mechanical step, don't write a better paragraph for it.&lt;/p&gt;

&lt;p&gt;Write a script, review it once, and let the model spend its judgment somewhere that actually needs it.&lt;/p&gt;

&lt;h1&gt;
  
  
  More Information ℹ️
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://12factor.net/config" rel="noopener noreferrer"&gt;The Twelve-Factor App: Config&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://docs.aws.amazon.com/general/latest/gr/api-retries.html" rel="noopener noreferrer"&gt;Error Retries and Exponential Backoff in AWS&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://modelcontextprotocol.io/" rel="noopener noreferrer"&gt;Model Context Protocol&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Also Known As 🎭
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;Skill-to-Script Offloading&lt;/li&gt;
&lt;li&gt;Deterministic Skill Scripting&lt;/li&gt;
&lt;li&gt;Scripted Skill Automation&lt;/li&gt;
&lt;li&gt;Prompt-to-Code Conversion&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Tools 🧰
&lt;/h1&gt;

&lt;p&gt;&lt;code&gt;python-dotenv&lt;/code&gt; loads a &lt;code&gt;.env&lt;/code&gt; file into environment variables at runtime.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;tenacity&lt;/code&gt; and &lt;code&gt;backoff&lt;/code&gt; add retry and exponential backoff decorators to API calls with a few lines of code.&lt;/p&gt;

&lt;h1&gt;
  
  
  Disclaimer 📢
&lt;/h1&gt;

&lt;p&gt;The views expressed here are my own.&lt;/p&gt;

&lt;p&gt;I am a human who writes as best as possible for other humans. &lt;/p&gt;

&lt;p&gt;I use AI proofreading tools to improve some texts.&lt;/p&gt;

&lt;p&gt;I welcome constructive criticism and dialogue.&lt;/p&gt;

&lt;p&gt;I shape these insights through 30 years in the software industry, 25 years of teaching, and writing over 500 articles and a book.&lt;/p&gt;




&lt;p&gt;This article is part of the &lt;em&gt;AI Coding Tip&lt;/em&gt; series.&lt;/p&gt;


&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/mcsee/ai-coding-tips-118n" class="crayons-story__hidden-navigation-link"&gt;AI Coding Tips&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/mcsee" class="crayons-avatar  crayons-avatar--l  "&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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" alt="mcsee profile" class="crayons-avatar__image" width="800" height="533"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/mcsee" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Maxi Contieri
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Maxi Contieri
                
              
              &lt;div id="story-author-preview-content-3187836" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/mcsee" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" class="crayons-avatar__image" alt="" width="800" height="533"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Maxi Contieri&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/mcsee/ai-coding-tips-118n" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Jan 21&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/mcsee/ai-coding-tips-118n" id="article-link-3187836"&gt;
          AI Coding Tips
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/webdev"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;webdev&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/programming"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;programming&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/beginners"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;beginners&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
            &lt;a href="https://dev.to/mcsee/ai-coding-tips-118n#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              1&lt;span class="hidden s:inline"&gt;&amp;nbsp;comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            2 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


</description>
      <category>ai</category>
      <category>webdev</category>
      <category>programming</category>
      <category>productivity</category>
    </item>
    <item>
      <title>AI Coding Tip 029 - Stop Using One Model for Everything</title>
      <dc:creator>Maxi Contieri</dc:creator>
      <pubDate>Tue, 28 Jul 2026 11:00:00 +0000</pubDate>
      <link>https://dev.to/mcsee/ai-coding-tip-029-stop-using-one-model-for-everything-e83</link>
      <guid>https://dev.to/mcsee/ai-coding-tip-029-stop-using-one-model-for-everything-e83</guid>
      <description>&lt;p&gt;&lt;em&gt;Different stages need different brains.&lt;/em&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;TL;DR: Assign a different model to each pipeline stage since none excels at planning, coding, reviewing, and testing alike.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h1&gt;
  
  
  Common Mistake ❌
&lt;/h1&gt;

&lt;p&gt;You open one chat with your favorite model and ask it to plan, write, review, and test the same feature end to end.&lt;/p&gt;

&lt;p&gt;You treat model loyalty like a virtue, so the same blind spots follow the code from the first line to the last commit.&lt;/p&gt;

&lt;p&gt;The &lt;a href="https://dev.to/mcsee/stop-calling-them-bugs-57gl"&gt;defects&lt;/a&gt; it can't see when it writes are the same defects it can't see when it reviews.&lt;/p&gt;

&lt;h1&gt;
  
  
  Problems Addressed 😔
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;The reviewer inherits the coder's blind spots, so it misses the exact defects the same model would write.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;You lose the benefit of a &lt;a href="https://dev.to/mcsee/ai-coding-tip-017-ask-for-the-analyst-not-the-analysis-df4"&gt;second opinion&lt;/a&gt;, since the analyst and the executor are the same mind.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;One vendor's outage, rate limit, or price hike stalls your entire pipeline at once.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Your codebase drifts toward one model's default style, hiding the exact spots a different model would flag as &lt;a href="https://dev.to/mcsee/ai-coding-tip-021-avoid-comprehension-debt-edm"&gt;unclear&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Test cases target the failure modes the author already thinks to avoid, so real edge cases slip through untested.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;You already bring in different people for &lt;a href="https://dev.to/mcsee/ai-coding-tip-006-review-every-line-before-commit-bmm"&gt;technical and code reviews&lt;/a&gt;, so a single model auditing everything breaks that same principle.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  How to Do It 🛠️
&lt;/h1&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Pick a model strong at reasoning to scope the task through &lt;a href="https://dev.to/mcsee/ai-coding-tip-003-force-read-only-planning-1d1m"&gt;read-only planning&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Hand the plan to a fast, cheap, code-tuned model working inside a &lt;a href="https://dev.to/mcsee/ai-coding-tip-022-give-ai-a-harness-to-work-with-274a"&gt;harness&lt;/a&gt; that runs tests automatically.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Trigger each stage as its own subagent with &lt;a href="https://dev.to/mcsee/ai-coding-tip-005-keep-context-fresh-220e"&gt;fresh context&lt;/a&gt;, a narrow local objective, and only the &lt;a href="https://dev.to/mcsee/ai-coding-tip-009-compact-your-context-3io9"&gt;information that stage needs&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Route the review to a model that didn't write the code.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Use a cheap model to review once you have &lt;a href="https://dev.to/mcsee/ai-coding-tip-015-force-the-ai-to-obey-you-49mc"&gt;clear rules&lt;/a&gt;, reusable &lt;a href="https://dev.to/mcsee/ai-coding-tip-004-use-modular-skills-g97"&gt;skills&lt;/a&gt;, and a solid &lt;a href="https://dev.to/mcsee/ai-coding-tip-022-give-ai-a-harness-to-work-with-274a"&gt;harness&lt;/a&gt; in place.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Ask the reviewing model to extend the test suite with edge cases the author missed.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Record which model handled each stage and the assumptions it made in an &lt;a href="https://en.wikipedia.org/wiki/Architectural_decision" rel="noopener noreferrer"&gt;Architecture Decision Record&lt;/a&gt; (ADR) or similar document, so you can &lt;a href="https://dev.to/mcsee/ai-coding-tip-016-feed-your-pr-lessons-into-the-ai-brain-3al9"&gt;spot repeating blind spots&lt;/a&gt; later.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Rotate the pairings every few months as model strengths shift with new releases.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Apply &lt;a href="https://dev.to/mcsee/the-dirty-secret-behind-loop-engineering-1748"&gt;TDD adversary rules&lt;/a&gt;: pick one model to write the test (Red), another to write the simplest implementation (Green), and a third to decide if it's worth refactoring (Refactor).&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h1&gt;
  
  
  Benefits 🎯
&lt;/h1&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Catch more defects:&lt;/strong&gt; A model reviewing code it didn't write spots the exact class of defect its own instincts would miss.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Avoid vendor lock:&lt;/strong&gt; You spread load across providers, so one outage or price hike doesn't stall the whole pipeline.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Match cost to complexity:&lt;/strong&gt; You save your most expensive reasoning model for planning and give routine syntax work to a cheaper one.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Widen test coverage:&lt;/strong&gt; A model with different training data invents edge cases the original author never considered.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Keep &lt;a href="https://dev.to/mcsee/ai-coding-tip-026-assign-a-persona-to-every-skill-definition-42bb"&gt;personas&lt;/a&gt; honest:&lt;/strong&gt; Rotating models forces you to write role definitions specific enough that any model can fill them.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Prevent style lock-in:&lt;/strong&gt; Your codebase stops drifting toward one model's habits and stays closer to your own &lt;a href="https://dev.to/mcsee/ai-coding-tip-027-force-code-standards-58nf"&gt;standards&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h1&gt;
  
  
  Context 🧠
&lt;/h1&gt;

&lt;p&gt;Every model carries a training history of pitfalls that shapes what it notices and what it misses.&lt;/p&gt;

&lt;p&gt;Claude models tend toward broad, breadth-first scanning of a problem, while GPT models tend toward narrow, depth-first evidence gathering.&lt;/p&gt;

&lt;p&gt;Those different instincts mean the &lt;a href="https://dev.to/mcsee/stop-calling-them-bugs-57gl"&gt;defects&lt;/a&gt; one model writes are often exactly the ones it also fails to catch in review.&lt;/p&gt;

&lt;p&gt;Research from the code review vendor &lt;a href="https://www.greptile.com/blog/model-inversion" rel="noopener noreferrer"&gt;Greptile&lt;/a&gt; found that Claude-authored pull requests get a 53.7% defect recall rate when Claude reviews itself, but a 62.0% recall rate when GPT reviews the same code.&lt;/p&gt;

&lt;p&gt;The same pattern holds in reverse for GPT-authored code.&lt;/p&gt;

&lt;p&gt;Cross-model review isn't a trick.&lt;/p&gt;

&lt;p&gt;It's the direct result of two models having different blind spots.&lt;/p&gt;

&lt;p&gt;Relying on a single model for every stage risks the same failure mode as &lt;a href="https://dev.to/mcsee/code-smell-314-model-collapse-18nl"&gt;model collapse&lt;/a&gt;: without a different perspective correcting it, the quality slowly degrades.&lt;/p&gt;

&lt;p&gt;Giving one model every stage of development is the AI equivalent of a class exhibiting &lt;a href="https://dev.to/mcsee/code-smell-124-divergent-change-ddl"&gt;divergent change&lt;/a&gt;: one entity keeps changing for many unrelated reasons, and every reason it changes is a reason it can quietly break.&lt;/p&gt;

&lt;p&gt;Treat each stage of development as its own &lt;a href="https://dev.to/mcsee/ai-coding-tip-004-use-modular-skills-g97"&gt;modular&lt;/a&gt; role, and hire the model best suited to it, the same way you'd &lt;a href="https://dev.to/mcsee/ai-coding-tip-026-assign-a-persona-to-every-skill-definition-42bb"&gt;assign a persona to a skill&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Prompt Reference 📝
&lt;/h2&gt;

&lt;h2&gt;
  
  
  Bad Prompt 🚫
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;Plan, write, review, and test the new payment retry logic.
Make sure the code is correct and the tests cover the edge cases.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h2&gt;
  
  
  Good prompt 👉
&lt;/h2&gt;




&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;Stage: Plan
Model: Opus (strong reasoning)
Task: Scope the payment retry logic in read-only mode.
List files to touch and open questions. Don't write code.

Stage: Code
Model: Sonnet (fast, code-tuned)
Task: Implement the plan above. Keep the diff under 200 lines.

Stage: Review
Model: GPT-5.5 (didn't write this code)
Task: Review the diff for correctness and missed edge cases.
List every issue, even minor ones.

Stage: Test
Model: GPT-5.5
Task: Write tests for the edge cases found during review.
Don't just cover the happy path.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h1&gt;
  
  
  Considerations ⚠️
&lt;/h1&gt;

&lt;p&gt;This adds coordination overhead, so it fits multi-day features better than one-line fixes.&lt;/p&gt;

&lt;p&gt;You still need a &lt;a href="https://dev.to/mcsee/ai-coding-tip-024-force-a-criteria-check-before-the-task-ends-51ij"&gt;human-in-the-loop checkpoint&lt;/a&gt; before merge, since cross-model review &lt;a href="https://dev.to/mcsee/ai-coding-tip-006-review-every-line-before-commit-bmm"&gt;catches more defects&lt;/a&gt; but doesn't guarantee zero defects.&lt;/p&gt;

&lt;p&gt;Track model versions alongside model names, since a provider's default model changes silently and a rotation you set up in January may mean something different by June.&lt;/p&gt;

&lt;p&gt;Costs can rise if you route trivial edits through your most expensive reasoning model, so match the model to the actual complexity of each stage.&lt;/p&gt;
&lt;h1&gt;
  
  
  Type 📝
&lt;/h1&gt;

&lt;p&gt;[X] Semi-Automatic&lt;/p&gt;
&lt;h1&gt;
  
  
  Limitations ⚠️
&lt;/h1&gt;

&lt;p&gt;Switching between providers adds latency, since each new model call starts a &lt;a href="https://dev.to/mcsee/ai-coding-tip-005-keep-context-fresh-220e"&gt;cold context&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Not every team has budget or API access to more than one provider at once.&lt;/p&gt;
&lt;h1&gt;
  
  
  Tags 🏷️
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;Prompt Engineering&lt;/li&gt;
&lt;/ul&gt;
&lt;h1&gt;
  
  
  Level 🔋
&lt;/h1&gt;

&lt;p&gt;[X] Intermediate&lt;/p&gt;
&lt;h1&gt;
  
  
  Related Tips 🔗
&lt;/h1&gt;


&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/mcsee/ai-coding-tip-003-force-read-only-planning-1d1m" class="crayons-story__hidden-navigation-link"&gt;AI Coding Tip 003 - Force Read-Only Planning&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/mcsee" class="crayons-avatar  crayons-avatar--l  "&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" alt="mcsee profile" class="crayons-avatar__image" width="800" height="533"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/mcsee" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Maxi Contieri
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Maxi Contieri
                
              
              &lt;div id="story-author-preview-content-3177915" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/mcsee" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" class="crayons-avatar__image" alt="" width="800" height="533"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Maxi Contieri&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/mcsee/ai-coding-tip-003-force-read-only-planning-1d1m" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Jan 20&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/mcsee/ai-coding-tip-003-force-read-only-planning-1d1m" id="article-link-3177915"&gt;
          AI Coding Tip 003 - Force Read-Only Planning
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/programming"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;programming&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/chatgpt"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;chatgpt&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/code"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;code&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/mcsee/ai-coding-tip-003-force-read-only-planning-1d1m" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;2&lt;span class="hidden s:inline"&gt;&amp;nbsp;reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/mcsee/ai-coding-tip-003-force-read-only-planning-1d1m#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              &lt;span class="hidden s:inline"&gt;Add&amp;nbsp;Comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            3 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;


&lt;/div&gt;
&lt;br&gt;



&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/mcsee/ai-coding-tip-004-use-modular-skills-g97" class="crayons-story__hidden-navigation-link"&gt;AI Coding Tip 004 - Use Modular Skills&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/mcsee" class="crayons-avatar  crayons-avatar--l  "&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" alt="mcsee profile" class="crayons-avatar__image" width="800" height="533"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/mcsee" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Maxi Contieri
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Maxi Contieri
                
              
              &lt;div id="story-author-preview-content-3200068" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/mcsee" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" class="crayons-avatar__image" alt="" width="800" height="533"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Maxi Contieri&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/mcsee/ai-coding-tip-004-use-modular-skills-g97" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Jan 27&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/mcsee/ai-coding-tip-004-use-modular-skills-g97" id="article-link-3200068"&gt;
          AI Coding Tip 004 - Use Modular Skills
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/webdev"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;webdev&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/programming"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;programming&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/beginners"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;beginners&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/mcsee/ai-coding-tip-004-use-modular-skills-g97" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/multi-unicorn-b44d6f8c23cdd00964192bedc38af3e82463978aa611b4365bd33a0f1f4f3e97.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;3&lt;span class="hidden s:inline"&gt;&amp;nbsp;reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/mcsee/ai-coding-tip-004-use-modular-skills-g97#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              &lt;span class="hidden s:inline"&gt;Add&amp;nbsp;Comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            4 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;



&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/mcsee/ai-coding-tip-006-review-every-line-before-commit-bmm" class="crayons-story__hidden-navigation-link"&gt;AI Coding Tip 006 - Review Every Line Before Commit&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/mcsee" class="crayons-avatar  crayons-avatar--l  "&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" alt="mcsee profile" class="crayons-avatar__image" width="800" height="533"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/mcsee" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Maxi Contieri
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Maxi Contieri
                
              
              &lt;div id="story-author-preview-content-3251959" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/mcsee" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" class="crayons-avatar__image" alt="" width="800" height="533"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Maxi Contieri&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/mcsee/ai-coding-tip-006-review-every-line-before-commit-bmm" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Feb 13&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/mcsee/ai-coding-tip-006-review-every-line-before-commit-bmm" id="article-link-3251959"&gt;
          AI Coding Tip 006 - Review Every Line Before Commit
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/programming"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;programming&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/development"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;development&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/softwaredevelopment"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;softwaredevelopment&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
            &lt;a href="https://dev.to/mcsee/ai-coding-tip-006-review-every-line-before-commit-bmm#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              1&lt;span class="hidden s:inline"&gt;&amp;nbsp;comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            7 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;



&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/mcsee/ai-coding-tip-017-ask-for-the-analyst-not-the-analysis-df4" class="crayons-story__hidden-navigation-link"&gt;AI Coding Tip 017 - Ask for the Analyst, Not the Analysis&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/mcsee" class="crayons-avatar  crayons-avatar--l  "&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" alt="mcsee profile" class="crayons-avatar__image" width="800" height="533"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/mcsee" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Maxi Contieri
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Maxi Contieri
                
              
              &lt;div id="story-author-preview-content-3558996" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/mcsee" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" class="crayons-avatar__image" alt="" width="800" height="533"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Maxi Contieri&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/mcsee/ai-coding-tip-017-ask-for-the-analyst-not-the-analysis-df4" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Apr 28&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/mcsee/ai-coding-tip-017-ask-for-the-analyst-not-the-analysis-df4" id="article-link-3558996"&gt;
          AI Coding Tip 017 - Ask for the Analyst, Not the Analysis
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/webdev"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;webdev&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/programming"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;programming&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/tutorial"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;tutorial&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/mcsee/ai-coding-tip-017-ask-for-the-analyst-not-the-analysis-df4" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;1&lt;span class="hidden s:inline"&gt;&amp;nbsp;reaction&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/mcsee/ai-coding-tip-017-ask-for-the-analyst-not-the-analysis-df4#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              &lt;span class="hidden s:inline"&gt;Add&amp;nbsp;Comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            5 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;



&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/mcsee/ai-coding-tip-022-give-ai-a-harness-to-work-with-274a" class="crayons-story__hidden-navigation-link"&gt;AI Coding Tip 022 - Give AI a Harness to Work With&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/mcsee" class="crayons-avatar  crayons-avatar--l  "&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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" alt="mcsee profile" class="crayons-avatar__image" width="800" height="533"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/mcsee" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Maxi Contieri
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Maxi Contieri
                
              
              &lt;div id="story-author-preview-content-3791486" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/mcsee" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" class="crayons-avatar__image" alt="" width="800" height="533"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Maxi Contieri&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/mcsee/ai-coding-tip-022-give-ai-a-harness-to-work-with-274a" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Jun 2&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/mcsee/ai-coding-tip-022-give-ai-a-harness-to-work-with-274a" id="article-link-3791486"&gt;
          AI Coding Tip 022 - Give AI a Harness to Work With
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/webdev"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;webdev&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/beginners"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;beginners&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
            &lt;a href="https://dev.to/mcsee/ai-coding-tip-022-give-ai-a-harness-to-work-with-274a#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              2&lt;span class="hidden s:inline"&gt;&amp;nbsp;comments&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            6 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;



&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/mcsee/ai-coding-tip-026-assign-a-persona-to-every-skill-definition-42bb" class="crayons-story__hidden-navigation-link"&gt;AI Coding Tip 026 - Assign a Persona to Every Skill Definition&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/mcsee" class="crayons-avatar  crayons-avatar--l  "&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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" alt="mcsee profile" class="crayons-avatar__image" width="800" height="533"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/mcsee" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Maxi Contieri
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Maxi Contieri
                
              
              &lt;div id="story-author-preview-content-4069185" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/mcsee" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" class="crayons-avatar__image" alt="" width="800" height="533"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Maxi Contieri&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/mcsee/ai-coding-tip-026-assign-a-persona-to-every-skill-definition-42bb" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Jul 7&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/mcsee/ai-coding-tip-026-assign-a-persona-to-every-skill-definition-42bb" id="article-link-4069185"&gt;
          AI Coding Tip 026 - Assign a Persona to Every Skill Definition
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/webdev"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;webdev&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/programming"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;programming&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/beginners"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;beginners&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/mcsee/ai-coding-tip-026-assign-a-persona-to-every-skill-definition-42bb" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;1&lt;span class="hidden s:inline"&gt;&amp;nbsp;reaction&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/mcsee/ai-coding-tip-026-assign-a-persona-to-every-skill-definition-42bb#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              2&lt;span class="hidden s:inline"&gt;&amp;nbsp;comments&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            5 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;



&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/mcsee/ai-coding-tip-027-force-code-standards-58nf" class="crayons-story__hidden-navigation-link"&gt;AI Coding Tip 027 - Force Code Standards&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/mcsee" class="crayons-avatar  crayons-avatar--l  "&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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" alt="mcsee profile" class="crayons-avatar__image" width="800" height="533"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/mcsee" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Maxi Contieri
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Maxi Contieri
                
              
              &lt;div id="story-author-preview-content-4114449" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/mcsee" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" class="crayons-avatar__image" alt="" width="800" height="533"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Maxi Contieri&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/mcsee/ai-coding-tip-027-force-code-standards-58nf" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Jul 14&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/mcsee/ai-coding-tip-027-force-code-standards-58nf" id="article-link-4114449"&gt;
          AI Coding Tip 027 - Force Code Standards
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/webdev"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;webdev&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/programming"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;programming&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/beginners"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;beginners&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
            &lt;a href="https://dev.to/mcsee/ai-coding-tip-027-force-code-standards-58nf#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              &lt;span class="hidden s:inline"&gt;Add&amp;nbsp;Comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            8 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


&lt;h1&gt;
  
  
  Conclusion 🏁
&lt;/h1&gt;

&lt;p&gt;One model can't play every role in your pipeline and catch its own mistakes at the same time.&lt;/p&gt;

&lt;p&gt;Split the work across models the way you'd split it across a team.&lt;/p&gt;

&lt;p&gt;Plan with one, code with another, and let a third one check the work.&lt;/p&gt;

&lt;p&gt;Rotate them as the models change, and let the mismatch between their blind spots do the reviewing for you.&lt;/p&gt;

&lt;h1&gt;
  
  
  More Information ℹ️
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://www.greptile.com/blog/model-inversion" rel="noopener noreferrer"&gt;Model Inversion: Why Cross-Model Code Review Catches More Defects&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://en.wikipedia.org/wiki/Ensemble_learning" rel="noopener noreferrer"&gt;Ensemble Learning&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Also Known As 🎭
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;Stage-Specific Model Routing&lt;/li&gt;
&lt;li&gt;Cross-Model Development Pipeline&lt;/li&gt;
&lt;li&gt;Model-Per-Stage Assignment&lt;/li&gt;
&lt;li&gt;Rotating Model Roles&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Tools 🧰
&lt;/h1&gt;

&lt;p&gt;Claude Code, Codex CLI, Cursor, and OpenRouter all let you configure a different model for each agent or task inside the same workflow.&lt;/p&gt;

&lt;h1&gt;
  
  
  Disclaimer 📢
&lt;/h1&gt;

&lt;p&gt;The views expressed here are my own.&lt;/p&gt;

&lt;p&gt;I am a human who writes as best as possible for other humans. &lt;/p&gt;

&lt;p&gt;I use AI proofreading tools to improve some texts.&lt;/p&gt;

&lt;p&gt;I welcome constructive criticism and dialogue.&lt;/p&gt;

&lt;p&gt;I shape these insights through 30 years in the software industry, 25 years of teaching, and writing over 500 articles and a book.&lt;/p&gt;




&lt;p&gt;This article is part of the &lt;em&gt;AI Coding Tip&lt;/em&gt; series.&lt;/p&gt;


&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/mcsee/ai-coding-tips-118n" class="crayons-story__hidden-navigation-link"&gt;AI Coding Tips&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/mcsee" class="crayons-avatar  crayons-avatar--l  "&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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" alt="mcsee profile" class="crayons-avatar__image" width="800" height="533"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/mcsee" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Maxi Contieri
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Maxi Contieri
                
              
              &lt;div id="story-author-preview-content-3187836" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/mcsee" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" class="crayons-avatar__image" alt="" width="800" height="533"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Maxi Contieri&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/mcsee/ai-coding-tips-118n" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Jan 21&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/mcsee/ai-coding-tips-118n" id="article-link-3187836"&gt;
          AI Coding Tips
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/webdev"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;webdev&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/programming"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;programming&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/beginners"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;beginners&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
            &lt;a href="https://dev.to/mcsee/ai-coding-tips-118n#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              1&lt;span class="hidden s:inline"&gt;&amp;nbsp;comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            2 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


</description>
      <category>ai</category>
      <category>webdev</category>
      <category>programming</category>
    </item>
    <item>
      <title>AI Coding Tip 028 - Build a Company Brain</title>
      <dc:creator>Maxi Contieri</dc:creator>
      <pubDate>Tue, 21 Jul 2026 11:00:00 +0000</pubDate>
      <link>https://dev.to/mcsee/ai-coding-tip-028-build-a-company-brain-4aln</link>
      <guid>https://dev.to/mcsee/ai-coding-tip-028-build-a-company-brain-4aln</guid>
      <description>&lt;p&gt;&lt;em&gt;One Second Brain doesn't scale past one skull.&lt;/em&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;TL;DR: Wire a skill into your company's live systems so every answer carries a source and a freshness check.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h1&gt;
  
  
  Common Mistake ❌
&lt;/h1&gt;

&lt;p&gt;As a single contributor, you can build a personal &lt;a href="https://dev.to/mcsee/ai-coding-tip-020-create-a-second-brain-lgp"&gt;Second Brain&lt;/a&gt;, and it works beautifully for that one person.&lt;/p&gt;

&lt;p&gt;The company's actual knowledge still sits scattered across Confluence, Slack threads, Jira tickets, CMSs, Wikis, Salesforce notes, and a wiki nobody has touched since the last reorg.&lt;/p&gt;

&lt;p&gt;Your AI searches your own vault perfectly, then guesses the moment a question needs an answer that lives in a coworker's head, a stale runbook, or a system you never gave it access to.&lt;/p&gt;

&lt;h1&gt;
  
  
  Problems Addressed 😔
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Company knowledge fragments across four to a dozen SaaS tools: document stores, chat, issue trackers, and business systems, each with its own &lt;a href="https://www.atolio.com/blog/the-diversity-of-data-sources-for-rag-in-the-enterprise" rel="noopener noreferrer"&gt;API and its own silo&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Individual &lt;a href="https://dev.to/mcsee/ai-coding-tip-020-create-a-second-brain-lgp"&gt;Second Brains&lt;/a&gt; compound personally but don't share, so a new hire repeats the exact search a colleague already ran last month.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Stale, obsolete documentation answers confidently and wrong, the same way &lt;a href="https://dev.to/mcsee/code-smell-183-obsolete-comments-3mmo"&gt;an obsolete comment lies inside a function&lt;/a&gt;, except now hundreds of employees and an AI treat the lie as ground truth.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Every team wires its own one-off integration to its own AI assistant instead of sharing a connector layer, &lt;a href="https://dev.to/mcsee/code-smell-66-shotgun-surgery-1hpd"&gt;duplicating auth, indexing, and permission logic&lt;/a&gt; per tool.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Naive integrations flatten access control when they &lt;a href="https://dev.to/mcsee/code-smell-14-god-objects-5185"&gt;index everything under one service account&lt;/a&gt;, so a cited answer can surface a document the requester was never allowed to open.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Engineers already burn &lt;a href="https://techscribehub.medium.com/why-documentation-debt-will-be-the-new-technical-debt-in-2026-232676ddacc8" rel="noopener noreferrer"&gt;3 to 10 hours a week hunting for undocumented answers&lt;/a&gt;, a form of &lt;a href="https://dev.to/mcsee/ai-coding-tip-021-avoid-comprehension-debt-edm"&gt;comprehension debt&lt;/a&gt; that works in the same way technical debt does.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Unreviewed content decay costs companies an &lt;a href="https://knowledge-base.software/guides/knowledge-base-content-audit/" rel="noopener noreferrer"&gt;estimated $12.9 million a year&lt;/a&gt; in wasted time and wrong answers.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  How to Do It 🛠️
&lt;/h1&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Inventory every system employees actually consult before opening a ticket: wiki (Confluence, Notion, Trello), chat (Slack, Teams), issue tracker (Jira, Linear), code (GitHub, GitLab), CRM (Salesforce, HubSpot), and shared drives (Google Drive, SharePoint).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Connect each source through its own &lt;a href="https://www.anthropic.com/news/model-context-protocol" rel="noopener noreferrer"&gt;MCP server&lt;/a&gt; instead of a custom API integration per tool, the same &lt;a href="https://dev.to/mcsee/ai-coding-tip-010-access-all-your-code-3ocp"&gt;give-the-AI-direct-access pattern&lt;/a&gt; extended with vendor servers like &lt;a href="https://www.atlassian.com/blog/announcements/remote-mcp-server" rel="noopener noreferrer"&gt;Atlassian's remote MCP server&lt;/a&gt; or GitHub's.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Write &lt;a href="https://dev.to/mcsee/ai-coding-tip-004-use-modular-skills-g97"&gt;a skill&lt;/a&gt; that declares an explicit persona, such as "&lt;a href="https://dev.to/mcsee/ai-coding-tip-026-assign-a-persona-to-every-skill-definition-42bb"&gt;You are the company librarian&lt;/a&gt;," and &lt;a href="https://dev.to/mcsee/ai-coding-tip-022-give-ai-a-harness-to-work-with-274a"&gt;lists exactly which MCP tools it may call&lt;/a&gt; for which category of question, so it never guesses the source.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://dev.to/mcsee/ai-coding-tip-015-force-the-ai-to-obey-you-49mc"&gt;Force the skill&lt;/a&gt; to answer only with a citation attached: source URL, system name, and last-modified date on every fact it returns, never &lt;a href="https://dev.to/mcsee/ai-coding-tip-019-tell-the-ai-why-not-just-what-43en"&gt;a paraphrase without the reasoning behind it&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Pass the requester's own identity token through every connector instead of a shared service account, so retrieval respects the exact permission boundary the source system already enforces.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Add a &lt;a href="https://dev.to/mcsee/ai-coding-tip-005-keep-context-fresh-220e"&gt;freshness gate&lt;/a&gt; that drops or downweights any document past its review-by date: an outdated Confluence page &lt;a href="https://dev.to/mcsee/code-smell-183-obsolete-comments-3mmo"&gt;lies the same way an old comment does&lt;/a&gt;, and it deserves the same don't-trust-it treatment.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://dev.to/mcsee/ai-coding-tip-016-feed-your-pr-lessons-into-the-ai-brain-3al9"&gt;Log every wrong or unanswered query&lt;/a&gt; as a new entry in &lt;a href="https://dev.to/mcsee/ai-coding-tip-025-pair-every-skill-with-a-pitfalls-file-5927"&gt;the skill's pitfalls file&lt;/a&gt;, so a human fills the missing connector or fixes the stale source instead of the AI silently guessing again next time.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://dev.to/mcsee/ai-coding-tip-024-force-a-criteria-check-before-the-task-ends-51ij"&gt;Re-run the skill weekly against a fixed set of golden questions&lt;/a&gt; and diff the answers against last week's run, so a silent schema change in one connector doesn't rot the whole Company Brain unnoticed.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Turn meetings into text too, since the skill can only reason over what it can read: run a transcription bot on the calls that matter and feed the transcript through the same connector pipeline as everything else.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h1&gt;
  
  
  Benefits 🎯
&lt;/h1&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Single entry point:&lt;/strong&gt; Employees ask one skill instead of hopping across ten browser tabs looking for the same fact.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Attributable answers:&lt;/strong&gt; Every response carries a citation, which makes &lt;a href="https://dev.to/mcsee/ai-coding-tip-006-review-every-line-before-commit-bmm"&gt;review as fast as reviewing a diff&lt;/a&gt; instead of trusting a black box.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Access control travels with the query:&lt;/strong&gt; The retrieval layer checks permissions against the requester's own identity, instead of flattening them behind a shared index.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Staleness becomes visible:&lt;/strong&gt; The freshness gate flags a document past its review date instead of trusting it forever, closing &lt;a href="https://dev.to/mcsee/code-smell-183-obsolete-comments-3mmo"&gt;the same gap an obsolete comment leaves open&lt;/a&gt; inside a function.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Faster onboarding:&lt;/strong&gt; New hires ask the Company Brain instead of interrupting five different colleagues with the same question.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Compounding knowledge:&lt;/strong&gt; Company-wide knowledge compounds the same way a &lt;a href="https://dev.to/mcsee/ai-coding-tip-020-create-a-second-brain-lgp"&gt;personal Second Brain compounds&lt;/a&gt;, except now every employee's queries feed it.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Visible gaps:&lt;/strong&gt; An unanswered query becomes a concrete signal that a runbook is missing, instead of silently costing someone an afternoon.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;No more knowledge gurus:&lt;/strong&gt; The skill breaks the informal silos and single points of knowledge teams route around, since anyone can query the same live sources instead of waiting on the one coworker who remembers.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h1&gt;
  
  
  Context 🧠
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://dev.to/mcsee/ai-coding-tip-020-create-a-second-brain-lgp"&gt;A Second Brain&lt;/a&gt; is one person's plain Markdown files, disciplined by Tiago Forte's CODE framework and Niklas Luhmann's Zettelkasten, under that person's direct control.&lt;/p&gt;

&lt;p&gt;A Company Brain stretches that same idea across a hundred people and a dozen systems nobody individually owns.&lt;/p&gt;

&lt;p&gt;The failure mode isn't that people are disorganized.&lt;/p&gt;

&lt;p&gt;It's that human memory doesn't scale past the one person who holds it.&lt;/p&gt;

&lt;p&gt;That's exactly why &lt;a href="https://www.phdata.io/blog/how-to-create-a-company-brain-with-glean/" rel="noopener noreferrer"&gt;Glean built its product around that name&lt;/a&gt;: a permissions-aware index over 100+ tools that lets teams ask questions, find experts, and trigger workflows from one surface.&lt;/p&gt;

&lt;p&gt;A knowledge silo forms the moment only one system, or one person, holds the answer to a recurring question, and that person becomes a &lt;a href="https://en.wikipedia.org/wiki/Bus_factor" rel="noopener noreferrer"&gt;bus factor risk&lt;/a&gt;: the team's only path to the answer, until they leave.&lt;/p&gt;

&lt;p&gt;A Company Brain breaks both silos and gurus the same way: it distributes the answer across every connector it can query, so the response no longer depends on which system or which coworker happens to be reachable that day.&lt;/p&gt;

&lt;p&gt;The company-librarian persona from earlier makes that shift concrete.&lt;/p&gt;

&lt;p&gt;A real librarian never invents a shelf location: she looks it up or tells you she doesn't have it yet.&lt;/p&gt;

&lt;p&gt;That's the same discipline the persona is supposed to enforce on every answer.&lt;/p&gt;

&lt;p&gt;A Company Brain isn't a wiki, and it isn't a CRM.&lt;/p&gt;

&lt;p&gt;A wiki decays the moment nobody feels responsible for updating it, and a CRM records what a customer told the company, not what an engineer needs when the customer's real objection never made it into a structured field.&lt;/p&gt;

&lt;p&gt;Glean reports its retrieval preferred roughly &lt;a href="https://www.glean.com/blog/enterprise-search-evaluation-2026" rel="noopener noreferrer"&gt;twice as often as a general chatbot's company knowledge&lt;/a&gt;, which tracks with what &lt;a href="https://www.atolio.com/blog/the-diversity-of-data-sources-for-rag-in-the-enterprise" rel="noopener noreferrer"&gt;Atolio&lt;/a&gt; and &lt;a href="https://unstructured.io/blog/enterprise-rag-why-connectors-matter-in-production-systems" rel="noopener noreferrer"&gt;Unstructured&lt;/a&gt; describe as the core problem: document stores, chat tools, engineering systems, and business systems each speak a different schema, and someone has to normalize all four into one retrieval stream before an AI can answer honestly.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.anthropic.com/news/model-context-protocol" rel="noopener noreferrer"&gt;MCP&lt;/a&gt; is the plumbing that makes this tractable without a bespoke integration per assistant: each server acts as a gatekeeper to its own system, and the protocol's authorization layer lets a client present the requester's own bearer token so the connector enforces the exact same access policy the source system already has.&lt;/p&gt;

&lt;p&gt;A knowledge base, in the sense most RAG products ship, is a copy: a pipeline chunks and embeds your documents into a vector database, and a query searches &lt;a href="https://atlan.com/know/llm-wiki-vs-rag-knowledge-base/" rel="noopener noreferrer"&gt;that copy by similarity&lt;/a&gt;, not the source system itself.&lt;/p&gt;

&lt;p&gt;That copy only stays accurate if something &lt;a href="https://weaviate.io/blog/what-is-agentic-rag" rel="noopener noreferrer"&gt;re-crawls and re-embeds it on a schedule&lt;/a&gt;, and the gap between a source edit and the next reindex run is exactly the window where a confident, wrong answer slips through, even inside Glean's own permissions-aware index.&lt;/p&gt;

&lt;p&gt;The skill from this tip skips that copy entirely: instead of searching a pre-built index, &lt;a href="https://www.llamaindex.ai/blog/rag-is-dead-long-live-agentic-retrieval" rel="noopener noreferrer"&gt;it calls each MCP connector live at request time&lt;/a&gt;, so one question can query Confluence, Salesforce, and GitHub in the same run and return their current state, not a snapshot from last week's crawl.&lt;/p&gt;

&lt;p&gt;That's the real difference between a knowledge base and this Company Brain: a knowledge base is one indexed store you search, while this skill is a router that asks several live systems the same question and merges what comes back, with nothing to fall behind because nothing gets cached in between.&lt;/p&gt;

&lt;p&gt;Nobody maintains what can't be executed, and &lt;a href="https://dev.to/mcsee/code-smell-183-obsolete-comments-3mmo"&gt;that rule&lt;/a&gt; applies just as much to a Confluence page as to a &lt;code&gt;// TODO&lt;/code&gt; comment nobody deleted.&lt;/p&gt;

&lt;p&gt;Stale context produces the same practical outcome as hallucination, a confident, fluent, wrong answer, which is why teams now treat freshness fields and stale-source suppression as first-class retrieval concerns, not an afterthought.&lt;/p&gt;

&lt;p&gt;A decision nobody wrote down costs the same inside a codebase as inside a company: &lt;a href="https://dev.to/mcsee/code-smell-168-undocumented-decisions-1nci"&gt;the missing rationale&lt;/a&gt; lives in someone's head until the day that person leaves.&lt;/p&gt;

&lt;p&gt;A Company Brain doesn't fix either smell by itself, but it turns both into a retrieval gap you can see and log instead of tribal knowledge you can only rediscover by accident.&lt;/p&gt;

&lt;p&gt;A knowledge base is never finished: &lt;a href="https://knowledge-base.software/guides/knowledge-base-content-audit/" rel="noopener noreferrer"&gt;content decay is the default failure mode of a wiki at organizational scale&lt;/a&gt;, and it decays faster than most teams expect once a product ships a few releases past the last edit.&lt;/p&gt;

&lt;p&gt;The fix isn't a bigger vault, it's &lt;a href="https://knowledge-base.software/guides/knowledge-base-governance-framework/" rel="noopener noreferrer"&gt;governance&lt;/a&gt;: every article gets a named owner, and &lt;a href="https://dev.to/mcsee/ai-coding-tip-027-force-code-standards-58nf"&gt;review cadence scales with risk the same way a harness enforces standards by severity&lt;/a&gt;, so a billing or permissions page gets reviewed after every release while an evergreen explainer gets reviewed twice a year.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://konghq.com/blog/learning-center/what-is-docs-as-code" rel="noopener noreferrer"&gt;Docs-as-code&lt;/a&gt; treats documentation like source code and pushes that governance further upstream: version-controlled, &lt;a href="https://dev.to/mcsee/ai-coding-tip-006-review-every-line-before-commit-bmm"&gt;peer-reviewed through the same pull request&lt;/a&gt; your feature ships in, so the page can't drift out of sync with the system it describes.&lt;/p&gt;

&lt;p&gt;The 2026 trend goes one step further with &lt;a href="https://www.fastdoc.io/blog/state-of-software-documentation-2026" rel="noopener noreferrer"&gt;living documentation wired directly into work-management tools&lt;/a&gt;, so closing a ticket auto-scaffolds the release note instead of leaving a human to remember it later.&lt;/p&gt;

&lt;p&gt;A Company Brain is downstream of all of this: the fresher the source, the less the retrieval skill has to compensate for a Confluence page or a runbook nobody re-read since it was written.&lt;/p&gt;

&lt;h2&gt;
  
  
  Prompt Reference 📝
&lt;/h2&gt;

&lt;h2&gt;
  
  
  Bad Prompt 🚫
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;Look through company notes and tell me our current refund policy

for enterprise customers. I don't have the Confluence page

handy, so just use whatever you already know.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h2&gt;
  
  
  Good Prompt 👉
&lt;/h2&gt;




&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;Use the company-brain skill. Query Confluence, Salesforce,

and Slack through their MCP connectors for our current

refund policy for enterprise customers. 

Cite the source URL and its last-modified date for every fact, 

and skip any document past its review-by date.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h1&gt;
  
  
  Considerations ⚠️
&lt;/h1&gt;

&lt;p&gt;Don't let the skill become &lt;a href="https://dev.to/mcsee/ai-coding-tip-007-avoid-malicious-skills-1jh"&gt;shadow IT&lt;/a&gt; that bypasses your security team's review of each connector.&lt;/p&gt;

&lt;p&gt;Every new MCP server is a new access path into a production system.&lt;/p&gt;

&lt;p&gt;Redact secrets and PII before indexing anything.&lt;/p&gt;

&lt;p&gt;Scope each connector to public channels by default, and tell employees explicitly before you point a connector at anything more private, like email or call recordings.&lt;/p&gt;

&lt;p&gt;Treat every connector's token scope as narrower than convenient, never a company-wide service account.&lt;/p&gt;

&lt;p&gt;A Company Brain still needs a human owner per source responsible for triaging staleness flags, the same way a codebase needs someone to act on a linter's complaint instead of muting it.&lt;/p&gt;

&lt;p&gt;Start with the two or three sources people ask about most, prove the citation and freshness gate work, then expand the connector list.&lt;/p&gt;
&lt;h1&gt;
  
  
  Type 📝
&lt;/h1&gt;

&lt;p&gt;[X] Semi-Automatic&lt;/p&gt;
&lt;h1&gt;
  
  
  Limitations ⚠️
&lt;/h1&gt;

&lt;p&gt;Each connector breaks independently when its underlying SaaS API changes, so a Company Brain carries the same maintenance budget as any other production integration.&lt;/p&gt;

&lt;p&gt;Running a citation and freshness check on every query costs tokens and latency, which shows up fast at company-wide query volume.&lt;/p&gt;

&lt;p&gt;Querying every connector live is slower per question than a single vector search against a pre-built index, since a live approach trades index-refresh lag for round-trip latency to each source system.&lt;/p&gt;

&lt;p&gt;A misconfigured freshness gate lets the skill amplify a wrong source faster than a human ever would, so widen its scope only after your golden-question set proves it holds.&lt;/p&gt;

&lt;p&gt;When a connector's scope quietly excludes a topic, the skill doesn't say it doesn't know.&lt;/p&gt;

&lt;p&gt;It answers anyway, confident and wrong, unless the persona is explicitly told to admit the gap instead of guessing.&lt;/p&gt;
&lt;h1&gt;
  
  
  Tags 🏷️
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;Knowledge Management&lt;/li&gt;
&lt;/ul&gt;
&lt;h1&gt;
  
  
  Level 🔋
&lt;/h1&gt;

&lt;p&gt;[X] Intermediate&lt;/p&gt;
&lt;h1&gt;
  
  
  Related Tips 🔗
&lt;/h1&gt;


&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/mcsee/ai-coding-tip-010-access-all-your-code-3ocp" class="crayons-story__hidden-navigation-link"&gt;AI Coding Tip 010 - Access All Your Code&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/mcsee" class="crayons-avatar  crayons-avatar--l  "&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" alt="mcsee profile" class="crayons-avatar__image" width="800" height="533"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/mcsee" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Maxi Contieri
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Maxi Contieri
                
              
              &lt;div id="story-author-preview-content-3336000" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/mcsee" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" class="crayons-avatar__image" alt="" width="800" height="533"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Maxi Contieri&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/mcsee/ai-coding-tip-010-access-all-your-code-3ocp" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Mar 10&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/mcsee/ai-coding-tip-010-access-all-your-code-3ocp" id="article-link-3336000"&gt;
          AI Coding Tip 010 - Access All Your Code
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/webdev"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;webdev&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/programming"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;programming&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/beginners"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;beginners&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/mcsee/ai-coding-tip-010-access-all-your-code-3ocp" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;1&lt;span class="hidden s:inline"&gt;&amp;nbsp;reaction&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/mcsee/ai-coding-tip-010-access-all-your-code-3ocp#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              &lt;span class="hidden s:inline"&gt;Add&amp;nbsp;Comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            4 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;


&lt;/div&gt;
&lt;br&gt;



&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/mcsee/ai-coding-tip-019-tell-the-ai-why-not-just-what-43en" class="crayons-story__hidden-navigation-link"&gt;AI Coding Tip 019 - Tell the AI Why, Not Just What&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/mcsee" class="crayons-avatar  crayons-avatar--l  "&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" alt="mcsee profile" class="crayons-avatar__image" width="800" height="533"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/mcsee" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Maxi Contieri
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Maxi Contieri
                
              
              &lt;div id="story-author-preview-content-3644753" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/mcsee" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" class="crayons-avatar__image" alt="" width="800" height="533"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Maxi Contieri&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/mcsee/ai-coding-tip-019-tell-the-ai-why-not-just-what-43en" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;May 12&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/mcsee/ai-coding-tip-019-tell-the-ai-why-not-just-what-43en" id="article-link-3644753"&gt;
          AI Coding Tip 019 - Tell the AI Why, Not Just What
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/coding"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;coding&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/llm"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;llm&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/productivity"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;productivity&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/mcsee/ai-coding-tip-019-tell-the-ai-why-not-just-what-43en" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/raised-hands-74b2099fd66a39f2d7eed9305ee0f4553df0eb7b4f11b01b6b1b499973048fe5.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;3&lt;span class="hidden s:inline"&gt;&amp;nbsp;reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/mcsee/ai-coding-tip-019-tell-the-ai-why-not-just-what-43en#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              3&lt;span class="hidden s:inline"&gt;&amp;nbsp;comments&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            4 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;



&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/mcsee/ai-coding-tip-020-create-a-second-brain-lgp" class="crayons-story__hidden-navigation-link"&gt;AI Coding Tip 020 - Create a Second Brain&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/mcsee" class="crayons-avatar  crayons-avatar--l  "&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" alt="mcsee profile" class="crayons-avatar__image" width="800" height="533"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/mcsee" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Maxi Contieri
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Maxi Contieri
                
              
              &lt;div id="story-author-preview-content-3688245" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/mcsee" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" class="crayons-avatar__image" alt="" width="800" height="533"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Maxi Contieri&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/mcsee/ai-coding-tip-020-create-a-second-brain-lgp" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;May 19&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/mcsee/ai-coding-tip-020-create-a-second-brain-lgp" id="article-link-3688245"&gt;
          AI Coding Tip 020 - Create a Second Brain
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/webdev"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;webdev&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/productivity"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;productivity&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/programming"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;programming&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/mcsee/ai-coding-tip-020-create-a-second-brain-lgp" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;1&lt;span class="hidden s:inline"&gt;&amp;nbsp;reaction&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/mcsee/ai-coding-tip-020-create-a-second-brain-lgp#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              &lt;span class="hidden s:inline"&gt;Add&amp;nbsp;Comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            8 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;



&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/mcsee/ai-coding-tip-024-force-a-criteria-check-before-the-task-ends-51ij" class="crayons-story__hidden-navigation-link"&gt;AI Coding Tip 024 - Force a Criteria Check Before the Task Ends&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/mcsee" class="crayons-avatar  crayons-avatar--l  "&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" alt="mcsee profile" class="crayons-avatar__image" width="800" height="533"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/mcsee" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Maxi Contieri
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Maxi Contieri
                
              
              &lt;div id="story-author-preview-content-3887200" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/mcsee" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" class="crayons-avatar__image" alt="" width="800" height="533"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Maxi Contieri&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/mcsee/ai-coding-tip-024-force-a-criteria-check-before-the-task-ends-51ij" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Jun 16&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/mcsee/ai-coding-tip-024-force-a-criteria-check-before-the-task-ends-51ij" id="article-link-3887200"&gt;
          AI Coding Tip 024 - Force a Criteria Check Before the Task Ends
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/webdev"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;webdev&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/programming"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;programming&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/productivity"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;productivity&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/mcsee/ai-coding-tip-024-force-a-criteria-check-before-the-task-ends-51ij" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;2&lt;span class="hidden s:inline"&gt;&amp;nbsp;reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/mcsee/ai-coding-tip-024-force-a-criteria-check-before-the-task-ends-51ij#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              &lt;span class="hidden s:inline"&gt;Add&amp;nbsp;Comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            6 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;



&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/mcsee/ai-coding-tip-025-pair-every-skill-with-a-pitfalls-file-5927" class="crayons-story__hidden-navigation-link"&gt;AI Coding Tip 025 - Pair Every Skill With a Pitfalls File&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/mcsee" class="crayons-avatar  crayons-avatar--l  "&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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" alt="mcsee profile" class="crayons-avatar__image" width="800" height="533"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/mcsee" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Maxi Contieri
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Maxi Contieri
                
              
              &lt;div id="story-author-preview-content-3945132" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/mcsee" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" class="crayons-avatar__image" alt="" width="800" height="533"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Maxi Contieri&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/mcsee/ai-coding-tip-025-pair-every-skill-with-a-pitfalls-file-5927" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Jun 23&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/mcsee/ai-coding-tip-025-pair-every-skill-with-a-pitfalls-file-5927" id="article-link-3945132"&gt;
          AI Coding Tip 025 - Pair Every Skill With a Pitfalls File
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/webdev"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;webdev&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/programming"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;programming&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/tutorial"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;tutorial&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/mcsee/ai-coding-tip-025-pair-every-skill-with-a-pitfalls-file-5927" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/exploding-head-daceb38d627e6ae9b730f36a1e390fca556a4289d5a41abb2c35068ad3e2c4b5.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;2&lt;span class="hidden s:inline"&gt;&amp;nbsp;reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/mcsee/ai-coding-tip-025-pair-every-skill-with-a-pitfalls-file-5927#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              2&lt;span class="hidden s:inline"&gt;&amp;nbsp;comments&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            5 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;



&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/mcsee/ai-coding-tip-026-assign-a-persona-to-every-skill-definition-42bb" class="crayons-story__hidden-navigation-link"&gt;AI Coding Tip 026 - Assign a Persona to Every Skill Definition&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/mcsee" class="crayons-avatar  crayons-avatar--l  "&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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" alt="mcsee profile" class="crayons-avatar__image" width="800" height="533"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/mcsee" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Maxi Contieri
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Maxi Contieri
                
              
              &lt;div id="story-author-preview-content-4069185" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/mcsee" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" class="crayons-avatar__image" alt="" width="800" height="533"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Maxi Contieri&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/mcsee/ai-coding-tip-026-assign-a-persona-to-every-skill-definition-42bb" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Jul 7&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/mcsee/ai-coding-tip-026-assign-a-persona-to-every-skill-definition-42bb" id="article-link-4069185"&gt;
          AI Coding Tip 026 - Assign a Persona to Every Skill Definition
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/webdev"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;webdev&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/programming"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;programming&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/beginners"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;beginners&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/mcsee/ai-coding-tip-026-assign-a-persona-to-every-skill-definition-42bb" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;1&lt;span class="hidden s:inline"&gt;&amp;nbsp;reaction&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/mcsee/ai-coding-tip-026-assign-a-persona-to-every-skill-definition-42bb#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              2&lt;span class="hidden s:inline"&gt;&amp;nbsp;comments&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            5 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


&lt;h1&gt;
  
  
  Conclusion 🏁
&lt;/h1&gt;

&lt;p&gt;Your Second Brain stops at your own skull.&lt;/p&gt;

&lt;p&gt;Wire a skill into your company's MCP-connected systems, force every answer to carry a citation and a freshness check, and the same compounding memory that helps one developer starts helping everyone who asks it a question. 🧠&lt;/p&gt;

&lt;h1&gt;
  
  
  More Information ℹ️
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://www.phdata.io/blog/how-to-create-a-company-brain-with-glean/" rel="noopener noreferrer"&gt;How to Create a Company "Brain" with Glean - phData&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.glean.com/product/system-of-context" rel="noopener noreferrer"&gt;Unified Index for Enterprise AI - Glean&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.atolio.com/blog/the-diversity-of-data-sources-for-rag-in-the-enterprise" rel="noopener noreferrer"&gt;Types of Data Sources for Enterprise RAG - Atolio&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://unstructured.io/blog/enterprise-rag-why-connectors-matter-in-production-systems" rel="noopener noreferrer"&gt;Enterprise RAG: Why Connectors Matter in Production Systems - Unstructured&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.anthropic.com/news/model-context-protocol" rel="noopener noreferrer"&gt;Introducing the Model Context Protocol - Anthropic&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.atlassian.com/blog/announcements/remote-mcp-server" rel="noopener noreferrer"&gt;Introducing Atlassian's Remote MCP Server&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://atlan.com/know/ai-agent/context-freshness/" rel="noopener noreferrer"&gt;Context Freshness: Keeping AI Agent Context Current - Atlan&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://techscribehub.medium.com/why-documentation-debt-will-be-the-new-technical-debt-in-2026-232676ddacc8" rel="noopener noreferrer"&gt;Why Documentation Debt Will Be the New Technical Debt in 2026&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://knowledge-base.software/guides/knowledge-base-content-audit/" rel="noopener noreferrer"&gt;Knowledge Base Content Audit Guide&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://knowledge-base.software/guides/knowledge-base-governance-framework/" rel="noopener noreferrer"&gt;Knowledge Base Governance Framework&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://konghq.com/blog/learning-center/what-is-docs-as-code" rel="noopener noreferrer"&gt;What is Docs as Code? - Kong&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.fastdoc.io/blog/state-of-software-documentation-2026" rel="noopener noreferrer"&gt;The State of Software Documentation 2026 - FastDoc&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://atlan.com/know/llm-wiki-vs-rag-knowledge-base/" rel="noopener noreferrer"&gt;LLM Wiki vs RAG: The Karpathy Concept and Enterprise Reality - Atlan&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://weaviate.io/blog/what-is-agentic-rag" rel="noopener noreferrer"&gt;What Is Agentic RAG? - Weaviate&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.llamaindex.ai/blog/rag-is-dead-long-live-agentic-retrieval" rel="noopener noreferrer"&gt;RAG Is Dead, Long Live Agentic Retrieval - LlamaIndex&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://en.wikipedia.org/wiki/Bus_factor" rel="noopener noreferrer"&gt;Bus Factor - Wikipedia&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Also Known As 🎭
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;Organizational-Brain&lt;/li&gt;
&lt;li&gt;Enterprise-Knowledge-Graph&lt;/li&gt;
&lt;li&gt;Unified-Company-Search&lt;/li&gt;
&lt;li&gt;Cross-System-RAG&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Tools 🧰
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.glean.com/" rel="noopener noreferrer"&gt;Glean&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.atlassian.com/blog/announcements/remote-mcp-server" rel="noopener noreferrer"&gt;Atlassian Remote MCP Server&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://unstructured.io/" rel="noopener noreferrer"&gt;Unstructured&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://onyx.app/" rel="noopener noreferrer"&gt;Onyx&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.getguru.com/" rel="noopener noreferrer"&gt;Guru&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Disclaimer 📢
&lt;/h1&gt;

&lt;p&gt;The views expressed here are my own.&lt;/p&gt;

&lt;p&gt;I am a human who writes as best as possible for other humans. &lt;/p&gt;

&lt;p&gt;I use AI proofreading tools to improve some texts.&lt;/p&gt;

&lt;p&gt;I welcome constructive criticism and dialogue.&lt;/p&gt;

&lt;p&gt;I shape these insights through 30 years in the software industry, 25 years of teaching, and writing over 500 articles and a book.&lt;/p&gt;




&lt;p&gt;This article is part of the &lt;em&gt;AI Coding Tip&lt;/em&gt; series.&lt;/p&gt;


&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/mcsee/ai-coding-tips-118n" class="crayons-story__hidden-navigation-link"&gt;AI Coding Tips&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/mcsee" class="crayons-avatar  crayons-avatar--l  "&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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" alt="mcsee profile" class="crayons-avatar__image" width="800" height="533"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/mcsee" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Maxi Contieri
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Maxi Contieri
                
              
              &lt;div id="story-author-preview-content-3187836" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/mcsee" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" class="crayons-avatar__image" alt="" width="800" height="533"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Maxi Contieri&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/mcsee/ai-coding-tips-118n" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Jan 21&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/mcsee/ai-coding-tips-118n" id="article-link-3187836"&gt;
          AI Coding Tips
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/webdev"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;webdev&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/programming"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;programming&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/beginners"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;beginners&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
            &lt;a href="https://dev.to/mcsee/ai-coding-tips-118n#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              1&lt;span class="hidden s:inline"&gt;&amp;nbsp;comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            2 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


</description>
      <category>ai</category>
      <category>webdev</category>
      <category>programming</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>AI Coding Tip 027 - Force Code Standards</title>
      <dc:creator>Maxi Contieri</dc:creator>
      <pubDate>Tue, 14 Jul 2026 11:00:00 +0000</pubDate>
      <link>https://dev.to/mcsee/ai-coding-tip-027-force-code-standards-58nf</link>
      <guid>https://dev.to/mcsee/ai-coding-tip-027-force-code-standards-58nf</guid>
      <description>&lt;p&gt;&lt;em&gt;Style errors double when nobody enforces them.&lt;/em&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;TL;DR: Wire your standards into hooks, skills, and a judge, so the harness blocks violations before a human opens the diff.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h1&gt;
  
  
  Common Mistake ❌
&lt;/h1&gt;

&lt;p&gt;You paste your coding standards into &lt;a href="https://dev.to/mcsee/ai-coding-tip-011-initialize-agentsmd-nh7"&gt;AGENTS.md&lt;/a&gt; and trust the AI to remember them.&lt;/p&gt;

&lt;p&gt;Then &lt;a href="https://dev.to/mcsee/ai-coding-tip-006-review-every-line-before-commit-bmm"&gt;a human reviewer manually checks&lt;/a&gt; &lt;a href="https://dev.to/mcsee/code-smell-159-mixedcase-nc"&gt;naming&lt;/a&gt;, &lt;a href="https://dev.to/mcsee/code-smell-164-mixed-indentations-3gfc"&gt;indentation&lt;/a&gt;, and &lt;a href="https://dev.to/mcsee/code-smell-211-tab-over-spaces-1d41"&gt;spacing&lt;/a&gt; on every pull request.&lt;/p&gt;

&lt;p&gt;Nobody wires a hook, &lt;a href="https://dev.to/mcsee/ai-coding-tip-004-use-modular-skills-g97"&gt;a skill&lt;/a&gt;, or a judge that blocks the diff before a human ever opens it.&lt;/p&gt;

&lt;p&gt;The standards live in prose, and prose is optional.&lt;/p&gt;

&lt;h1&gt;
  
  
  Problems Addressed 😔
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;A &lt;a href="https://www.coderabbit.ai/blog/state-of-ai-vs-human-code-generation-report" rel="noopener noreferrer"&gt;CodeRabbit analysis of 470 pull requests&lt;/a&gt; found AI-generated code carries roughly 1.7x more defects than human-only code, and nearly 2x more naming and style consistency errors&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://dev.to/mcsee/ai-coding-tip-006-review-every-line-before-commit-bmm"&gt;Human reviewers burn attention on indentation and casing instead of design&lt;/a&gt;, feeding the same &lt;a href="https://dev.to/mcsee/code-smell-174-broken-windows-50am"&gt;broken windows&lt;/a&gt; that erode a codebase over time&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Enforcement depends on someone remembering to check, so it drifts the moment nobody's watching&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The AI violates a rule it read in prose, because prose isn't a gate, only a suggestion&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Two human reviewers catch two different subsets of the same &lt;a href="https://dev.to/mcsee/code-smell-48-code-without-standards-2f5m"&gt;code without standards&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  How to Do It 🛠️
&lt;/h1&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Turn each standard into a machine-checkable rule instead of a paragraph of prose.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Wire a &lt;a href="https://git-scm.com/docs/githooks" rel="noopener noreferrer"&gt;pre-commit or pre-merge hook&lt;/a&gt; that runs the linter automatically on every change.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Add a validator skill that &lt;a href="https://dev.to/mcsee/ai-coding-tip-005-keep-context-fresh-220e"&gt;reads the rule set fresh&lt;/a&gt; and re-checks the whole diff, not just what the AI remembers.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Route ambiguous rules, like naming intent, to a large language model (LLM) judge instead of a human reviewer.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Block the commit, the merge, or &lt;a href="https://dev.to/mcsee/ai-coding-tip-024-force-a-criteria-check-before-the-task-ends-51ij"&gt;the session end&lt;/a&gt; until every gate reports zero violations.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://dev.to/mcsee/ai-coding-tip-016-feed-your-pr-lessons-into-the-ai-brain-3al9"&gt;Log every violation the judge catches as a new rule&lt;/a&gt;, so the harness never misses it again.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h1&gt;
  
  
  Benefits 🎯
&lt;/h1&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Consistent gate:&lt;/strong&gt; Every diff hits the same rule set, so two reviewers never catch two different subsets of the same violation.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Faster reviews:&lt;/strong&gt; &lt;a href="https://dev.to/mcsee/ai-coding-tip-006-review-every-line-before-commit-bmm"&gt;Humans spend their attention on design and correctness&lt;/a&gt;, not indentation or casing.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;No memory decay:&lt;/strong&gt; A skill &lt;a href="https://dev.to/mcsee/ai-coding-tip-005-keep-context-fresh-220e"&gt;reads the standards file fresh every session&lt;/a&gt; instead of trusting what the AI claims to remember.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Judge for nuance:&lt;/strong&gt; An LLM judge catches the semantic violations a regular expression can't parse, like a misleading name.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Compounding rules:&lt;/strong&gt; &lt;a href="https://dev.to/mcsee/ai-coding-tip-025-pair-every-skill-with-a-pitfalls-file-5927"&gt;Every violation the judge finds becomes a new check&lt;/a&gt;, so the harness gets stricter over time.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Measurable drop:&lt;/strong&gt; You can track the naming and style defect rate over time and watch it fall toward zero.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h1&gt;
  
  
  Context 🧠
&lt;/h1&gt;

&lt;p&gt;Standards enforcement isn't new.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://en.wikipedia.org/wiki/Lint_(software)" rel="noopener noreferrer"&gt;Stephen C. Johnson wrote the first lint in 1978&lt;/a&gt; to catch mistakes in C code nobody wanted to check by eye.&lt;/p&gt;

&lt;p&gt;Checkstyle, PMD, and ESLint followed, each one refusing to trust a human to notice a &lt;a href="https://dev.to/mcsee/code-smell-164-mixed-indentations-3gfc"&gt;mixed indentation&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.sonarsource.com/resources/library/linting-is-not-all-you-need/" rel="noopener noreferrer"&gt;SonarQube&lt;/a&gt; added a server that gates a whole pipeline, not just a single file.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://mago.carthage.software/" rel="noopener noreferrer"&gt;Mago&lt;/a&gt; does the same for PHP now, running a linter, a formatter, and a static analyzer in one Rust binary fast enough to run on every keystroke.&lt;/p&gt;

&lt;p&gt;None of these tools ever asked a human to vote on a &lt;a href="https://dev.to/mcsee/code-smell-211-tab-over-spaces-1d41"&gt;tab versus a space&lt;/a&gt; or a &lt;a href="https://dev.to/mcsee/code-smell-159-mixedcase-nc"&gt;mixedCase versus snake_case&lt;/a&gt; name.&lt;/p&gt;

&lt;p&gt;AI coding didn't remove that need.&lt;/p&gt;

&lt;p&gt;It multiplied it.&lt;/p&gt;

&lt;p&gt;A &lt;a href="https://www.coderabbit.ai/blog/state-of-ai-vs-human-code-generation-report" rel="noopener noreferrer"&gt;CodeRabbit analysis of 470 pull requests&lt;/a&gt; found AI-generated code carries about 1.7x more defects overall than human-only code.&lt;/p&gt;

&lt;p&gt;Naming and style consistency errors came in at nearly 2x, the exact class of mistake a linter was built to catch decades ago.&lt;/p&gt;

&lt;p&gt;A model can now write in &lt;a href="https://dev.to/mcsee/-code-smell-128-non-english-coding-48d8"&gt;any human language&lt;/a&gt;, &lt;a href="https://dev.to/mcsee/code-smell-98-speling-mistakes-4h4e"&gt;misspell an identifier&lt;/a&gt;, or &lt;a href="https://dev.to/mcsee/code-smell-87-inconsistent-parameters-sorting-21j3"&gt;reorder parameters inconsistently&lt;/a&gt; across two files it never compared side by side.&lt;/p&gt;

&lt;p&gt;A linter still catches the syntactic version of these mistakes.&lt;/p&gt;

&lt;p&gt;The semantic version, like a name that lies about its role, needs a judge that &lt;a href="https://dev.to/mcsee/ai-coding-tip-019-tell-the-ai-why-not-just-what-43en"&gt;reads intent, not just tokens&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;That's where an &lt;a href="https://arxiv.org/pdf/2508.02994" rel="noopener noreferrer"&gt;LLM-as-judge&lt;/a&gt; step fits: a second AI pass, wired into the same &lt;a href="https://dev.to/mcsee/ai-coding-tip-022-give-ai-a-harness-to-work-with-274a"&gt;harness&lt;/a&gt; that runs the linter, checking the rules no regular expression can express.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://dev.to/mcsee/ai-coding-tip-004-use-modular-skills-g97"&gt;Skills&lt;/a&gt; are the natural home for that judge.&lt;/p&gt;

&lt;p&gt;A skill reads the standards file fresh every time, instead of trusting a memory that decays across &lt;a href="https://dev.to/mcsee/ai-coding-tip-005-keep-context-fresh-220e"&gt;sessions&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Pair the judge with a &lt;a href="https://dev.to/mcsee/ai-coding-tip-024-force-a-criteria-check-before-the-task-ends-51ij"&gt;criteria check before the task ends&lt;/a&gt;, so the AI can't say a task is done until the standards gate reports zero violations.&lt;/p&gt;

&lt;p&gt;A gate that blocks the diff is just another way to &lt;a href="https://dev.to/mcsee/ai-coding-tip-015-force-the-ai-to-obey-you-49mc"&gt;force the AI to obey you&lt;/a&gt;, not by asking nicely, but by refusing to let a violation through.&lt;/p&gt;

&lt;p&gt;This doesn't replace &lt;a href="https://dev.to/mcsee/ai-coding-tip-006-review-every-line-before-commit-bmm"&gt;reviewing every line before commit&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;It removes the mechanical part of that review, so &lt;a href="https://dev.to/mcsee/ai-coding-tip-006-review-every-line-before-commit-bmm"&gt;a human is free to judge design instead of counting spaces&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;When the judge catches a new violation, log it the same way you'd log a &lt;a href="https://dev.to/mcsee/ai-coding-tip-025-pair-every-skill-with-a-pitfalls-file-5927"&gt;pitfall&lt;/a&gt;, so the harness never makes that mistake twice.&lt;/p&gt;

&lt;h2&gt;
  
  
  Prompt Reference 📝
&lt;/h2&gt;

&lt;h2&gt;
  
  
  Bad Prompt 🚫
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;Please follow our coding standards for this feature.
Use consistent naming and formatting like the rest of the codebase.
I'll check it during code review before we merge.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h2&gt;
  
  
  Good prompt 👉
&lt;/h2&gt;




&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;Before you say this task is done, run this standards checklist:
&lt;span class="p"&gt;
-&lt;/span&gt; [ ] Run the linter on every changed file, fix every violation.
&lt;span class="p"&gt;
-&lt;/span&gt; [ ] Run the formatter, don't hand-format a single line.
&lt;span class="p"&gt;
-&lt;/span&gt; [ ] Invoke the code-standards-validator skill on the full diff.
&lt;span class="p"&gt;
-&lt;/span&gt; [ ] Check every identifier: no abbreviations, no misleading names.
&lt;span class="p"&gt;
-&lt;/span&gt; [ ] Check indentation matches the project config, no mixed tabs.
&lt;span class="p"&gt;
-&lt;/span&gt; [ ] Check casing: one convention, no mixedCase next to snake_case.
&lt;span class="p"&gt;
-&lt;/span&gt; [ ] Check parameter order against other functions in the file.
&lt;span class="p"&gt;
-&lt;/span&gt; [ ] Check spelling in every identifier, comment, and string.
&lt;span class="p"&gt;
-&lt;/span&gt; [ ] Judge comment quality: flag dead comments and restated code.
&lt;span class="p"&gt;
-&lt;/span&gt; [ ] Judge naming intent: does each name say what it does?
&lt;span class="p"&gt;
-&lt;/span&gt; [ ] Confirm no file mixes languages in identifiers or comments.
&lt;span class="p"&gt;
-&lt;/span&gt; [ ] Log any new violation type as a rule for the next run.
&lt;span class="p"&gt;
-&lt;/span&gt; [ ] Don't report the task done until every box above is checked.

Show me the completed checklist, not just the final code.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h1&gt;
  
  
  Considerations ⚠️
&lt;/h1&gt;

&lt;p&gt;A linter still beats an LLM judge on speed and cost for anything syntactic.&lt;/p&gt;

&lt;p&gt;Reserve the judge for rules that need intent, not tokens.&lt;/p&gt;

&lt;p&gt;A gate that blocks too aggressively gets bypassed with &lt;code&gt;--no-verify&lt;/code&gt;, which defeats the whole point.&lt;/p&gt;

&lt;p&gt;Review the judge's false positives the same way you'd review a flaky linter rule.&lt;/p&gt;
&lt;h1&gt;
  
  
  Type 📝
&lt;/h1&gt;

&lt;p&gt;[X] Semi-Automatic&lt;/p&gt;
&lt;h1&gt;
  
  
  Limitations ⚠️
&lt;/h1&gt;

&lt;p&gt;An LLM judge costs tokens and time on every gate, so it doesn't replace a linter.&lt;/p&gt;

&lt;p&gt;It complements one.&lt;/p&gt;

&lt;p&gt;A judge can disagree with itself across two runs on borderline style calls, so keep the deterministic rules in the linter and reserve the judge for what's genuinely ambiguous.&lt;/p&gt;
&lt;h1&gt;
  
  
  Tags 🏷️
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;Knowledge Management&lt;/li&gt;
&lt;/ul&gt;
&lt;h1&gt;
  
  
  Level 🔋
&lt;/h1&gt;

&lt;p&gt;[X] Intermediate&lt;/p&gt;
&lt;h1&gt;
  
  
  Related Tips 🔗
&lt;/h1&gt;


&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/mcsee/ai-coding-tip-004-use-modular-skills-g97" class="crayons-story__hidden-navigation-link"&gt;AI Coding Tip 004 - Use Modular Skills&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/mcsee" class="crayons-avatar  crayons-avatar--l  "&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" alt="mcsee profile" class="crayons-avatar__image" width="800" height="533"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/mcsee" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Maxi Contieri
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Maxi Contieri
                
              
              &lt;div id="story-author-preview-content-3200068" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/mcsee" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" class="crayons-avatar__image" alt="" width="800" height="533"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Maxi Contieri&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/mcsee/ai-coding-tip-004-use-modular-skills-g97" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Jan 27&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/mcsee/ai-coding-tip-004-use-modular-skills-g97" id="article-link-3200068"&gt;
          AI Coding Tip 004 - Use Modular Skills
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/webdev"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;webdev&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/programming"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;programming&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/beginners"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;beginners&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/mcsee/ai-coding-tip-004-use-modular-skills-g97" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/multi-unicorn-b44d6f8c23cdd00964192bedc38af3e82463978aa611b4365bd33a0f1f4f3e97.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;3&lt;span class="hidden s:inline"&gt;&amp;nbsp;reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/mcsee/ai-coding-tip-004-use-modular-skills-g97#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              &lt;span class="hidden s:inline"&gt;Add&amp;nbsp;Comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            4 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;


&lt;/div&gt;
&lt;br&gt;



&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/mcsee/ai-coding-tip-006-review-every-line-before-commit-bmm" class="crayons-story__hidden-navigation-link"&gt;AI Coding Tip 006 - Review Every Line Before Commit&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/mcsee" class="crayons-avatar  crayons-avatar--l  "&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" alt="mcsee profile" class="crayons-avatar__image" width="800" height="533"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/mcsee" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Maxi Contieri
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Maxi Contieri
                
              
              &lt;div id="story-author-preview-content-3251959" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/mcsee" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" class="crayons-avatar__image" alt="" width="800" height="533"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Maxi Contieri&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/mcsee/ai-coding-tip-006-review-every-line-before-commit-bmm" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Feb 13&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/mcsee/ai-coding-tip-006-review-every-line-before-commit-bmm" id="article-link-3251959"&gt;
          AI Coding Tip 006 - Review Every Line Before Commit
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/programming"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;programming&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/development"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;development&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/softwaredevelopment"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;softwaredevelopment&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
            &lt;a href="https://dev.to/mcsee/ai-coding-tip-006-review-every-line-before-commit-bmm#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              1&lt;span class="hidden s:inline"&gt;&amp;nbsp;comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            7 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;



&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/mcsee/ai-coding-tip-011-initialize-agentsmd-nh7" class="crayons-story__hidden-navigation-link"&gt;AI Coding Tip 011 - Initialize Agents.md&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/mcsee" class="crayons-avatar  crayons-avatar--l  "&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" alt="mcsee profile" class="crayons-avatar__image" width="800" height="533"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/mcsee" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Maxi Contieri
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Maxi Contieri
                
              
              &lt;div id="story-author-preview-content-3369224" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/mcsee" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" class="crayons-avatar__image" alt="" width="800" height="533"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Maxi Contieri&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/mcsee/ai-coding-tip-011-initialize-agentsmd-nh7" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Mar 18&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/mcsee/ai-coding-tip-011-initialize-agentsmd-nh7" id="article-link-3369224"&gt;
          AI Coding Tip 011 - Initialize Agents.md
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/programming"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;programming&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/mcsee/ai-coding-tip-011-initialize-agentsmd-nh7" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;1&lt;span class="hidden s:inline"&gt;&amp;nbsp;reaction&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/mcsee/ai-coding-tip-011-initialize-agentsmd-nh7#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              &lt;span class="hidden s:inline"&gt;Add&amp;nbsp;Comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            3 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;



&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/mcsee/ai-coding-tip-015-force-the-ai-to-obey-you-49mc" class="crayons-story__hidden-navigation-link"&gt;AI Coding Tip 015 - Force the AI to Obey You&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/mcsee" class="crayons-avatar  crayons-avatar--l  "&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" alt="mcsee profile" class="crayons-avatar__image" width="800" height="533"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/mcsee" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Maxi Contieri
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Maxi Contieri
                
              
              &lt;div id="story-author-preview-content-3495172" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/mcsee" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" class="crayons-avatar__image" alt="" width="800" height="533"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Maxi Contieri&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/mcsee/ai-coding-tip-015-force-the-ai-to-obey-you-49mc" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Apr 14&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/mcsee/ai-coding-tip-015-force-the-ai-to-obey-you-49mc" id="article-link-3495172"&gt;
          AI Coding Tip 015 - Force the AI to Obey You
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/webdev"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;webdev&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/programming"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;programming&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/productivity"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;productivity&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/mcsee/ai-coding-tip-015-force-the-ai-to-obey-you-49mc" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;1&lt;span class="hidden s:inline"&gt;&amp;nbsp;reaction&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/mcsee/ai-coding-tip-015-force-the-ai-to-obey-you-49mc#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              &lt;span class="hidden s:inline"&gt;Add&amp;nbsp;Comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            5 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;



&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/mcsee/ai-coding-tip-016-feed-your-pr-lessons-into-the-ai-brain-3al9" class="crayons-story__hidden-navigation-link"&gt;AI Coding Tip 016 - Feed Your PR Lessons into the AI Brain&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/mcsee" class="crayons-avatar  crayons-avatar--l  "&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" alt="mcsee profile" class="crayons-avatar__image" width="800" height="533"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/mcsee" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Maxi Contieri
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Maxi Contieri
                
              
              &lt;div id="story-author-preview-content-3505365" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/mcsee" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" class="crayons-avatar__image" alt="" width="800" height="533"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Maxi Contieri&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/mcsee/ai-coding-tip-016-feed-your-pr-lessons-into-the-ai-brain-3al9" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Apr 21&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/mcsee/ai-coding-tip-016-feed-your-pr-lessons-into-the-ai-brain-3al9" id="article-link-3505365"&gt;
          AI Coding Tip 016 - Feed Your PR Lessons into the AI Brain
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/programming"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;programming&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/mcsee/ai-coding-tip-016-feed-your-pr-lessons-into-the-ai-brain-3al9" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;4&lt;span class="hidden s:inline"&gt;&amp;nbsp;reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/mcsee/ai-coding-tip-016-feed-your-pr-lessons-into-the-ai-brain-3al9#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              &lt;span class="hidden s:inline"&gt;Add&amp;nbsp;Comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            6 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;



&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/mcsee/ai-coding-tip-019-tell-the-ai-why-not-just-what-43en" class="crayons-story__hidden-navigation-link"&gt;AI Coding Tip 019 - Tell the AI Why, Not Just What&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/mcsee" class="crayons-avatar  crayons-avatar--l  "&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" alt="mcsee profile" class="crayons-avatar__image" width="800" height="533"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/mcsee" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Maxi Contieri
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Maxi Contieri
                
              
              &lt;div id="story-author-preview-content-3644753" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/mcsee" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" class="crayons-avatar__image" alt="" width="800" height="533"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Maxi Contieri&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/mcsee/ai-coding-tip-019-tell-the-ai-why-not-just-what-43en" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;May 12&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/mcsee/ai-coding-tip-019-tell-the-ai-why-not-just-what-43en" id="article-link-3644753"&gt;
          AI Coding Tip 019 - Tell the AI Why, Not Just What
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/coding"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;coding&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/llm"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;llm&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/productivity"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;productivity&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/mcsee/ai-coding-tip-019-tell-the-ai-why-not-just-what-43en" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/raised-hands-74b2099fd66a39f2d7eed9305ee0f4553df0eb7b4f11b01b6b1b499973048fe5.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;3&lt;span class="hidden s:inline"&gt;&amp;nbsp;reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/mcsee/ai-coding-tip-019-tell-the-ai-why-not-just-what-43en#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              3&lt;span class="hidden s:inline"&gt;&amp;nbsp;comments&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            4 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;



&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/mcsee/ai-coding-tip-022-give-ai-a-harness-to-work-with-274a" class="crayons-story__hidden-navigation-link"&gt;AI Coding Tip 022 - Give AI a Harness to Work With&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/mcsee" class="crayons-avatar  crayons-avatar--l  "&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" alt="mcsee profile" class="crayons-avatar__image" width="800" height="533"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/mcsee" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Maxi Contieri
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Maxi Contieri
                
              
              &lt;div id="story-author-preview-content-3791486" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/mcsee" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" class="crayons-avatar__image" alt="" width="800" height="533"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Maxi Contieri&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/mcsee/ai-coding-tip-022-give-ai-a-harness-to-work-with-274a" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Jun 2&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/mcsee/ai-coding-tip-022-give-ai-a-harness-to-work-with-274a" id="article-link-3791486"&gt;
          AI Coding Tip 022 - Give AI a Harness to Work With
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/webdev"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;webdev&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/beginners"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;beginners&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
            &lt;a href="https://dev.to/mcsee/ai-coding-tip-022-give-ai-a-harness-to-work-with-274a#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              2&lt;span class="hidden s:inline"&gt;&amp;nbsp;comments&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            6 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;



&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/mcsee/ai-coding-tip-024-force-a-criteria-check-before-the-task-ends-51ij" class="crayons-story__hidden-navigation-link"&gt;AI Coding Tip 024 - Force a Criteria Check Before the Task Ends&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/mcsee" class="crayons-avatar  crayons-avatar--l  "&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" alt="mcsee profile" class="crayons-avatar__image" width="800" height="533"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/mcsee" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Maxi Contieri
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Maxi Contieri
                
              
              &lt;div id="story-author-preview-content-3887200" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/mcsee" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" class="crayons-avatar__image" alt="" width="800" height="533"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Maxi Contieri&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/mcsee/ai-coding-tip-024-force-a-criteria-check-before-the-task-ends-51ij" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Jun 16&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/mcsee/ai-coding-tip-024-force-a-criteria-check-before-the-task-ends-51ij" id="article-link-3887200"&gt;
          AI Coding Tip 024 - Force a Criteria Check Before the Task Ends
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/webdev"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;webdev&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/programming"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;programming&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/productivity"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;productivity&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/mcsee/ai-coding-tip-024-force-a-criteria-check-before-the-task-ends-51ij" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;2&lt;span class="hidden s:inline"&gt;&amp;nbsp;reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/mcsee/ai-coding-tip-024-force-a-criteria-check-before-the-task-ends-51ij#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              &lt;span class="hidden s:inline"&gt;Add&amp;nbsp;Comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            6 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;



&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/mcsee/ai-coding-tip-025-pair-every-skill-with-a-pitfalls-file-5927" class="crayons-story__hidden-navigation-link"&gt;AI Coding Tip 025 - Pair Every Skill With a Pitfalls File&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/mcsee" class="crayons-avatar  crayons-avatar--l  "&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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" alt="mcsee profile" class="crayons-avatar__image" width="800" height="533"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/mcsee" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Maxi Contieri
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Maxi Contieri
                
              
              &lt;div id="story-author-preview-content-3945132" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/mcsee" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" class="crayons-avatar__image" alt="" width="800" height="533"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Maxi Contieri&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/mcsee/ai-coding-tip-025-pair-every-skill-with-a-pitfalls-file-5927" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Jun 23&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/mcsee/ai-coding-tip-025-pair-every-skill-with-a-pitfalls-file-5927" id="article-link-3945132"&gt;
          AI Coding Tip 025 - Pair Every Skill With a Pitfalls File
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/webdev"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;webdev&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/programming"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;programming&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/tutorial"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;tutorial&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/mcsee/ai-coding-tip-025-pair-every-skill-with-a-pitfalls-file-5927" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/exploding-head-daceb38d627e6ae9b730f36a1e390fca556a4289d5a41abb2c35068ad3e2c4b5.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;2&lt;span class="hidden s:inline"&gt;&amp;nbsp;reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/mcsee/ai-coding-tip-025-pair-every-skill-with-a-pitfalls-file-5927#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              1&lt;span class="hidden s:inline"&gt;&amp;nbsp;comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            5 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


&lt;h1&gt;
  
  
  Conclusion 🏁
&lt;/h1&gt;

&lt;p&gt;A linter never asked permission to reject bad code.&lt;/p&gt;

&lt;p&gt;Neither should your harness.&lt;/p&gt;

&lt;p&gt;Wire the standards into hooks, skills, and a judge, so the diff gets rejected before a human ever has to say so.&lt;/p&gt;

&lt;h1&gt;
  
  
  More Information ℹ️
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://en.wikipedia.org/wiki/Lint_(software)" rel="noopener noreferrer"&gt;Lint (software) - Wikipedia&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.coderabbit.ai/blog/state-of-ai-vs-human-code-generation-report" rel="noopener noreferrer"&gt;State of AI vs Human Code Generation Report - CodeRabbit&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://arxiv.org/pdf/2508.02994" rel="noopener noreferrer"&gt;When AIs Judge AIs: The Rise of Agent-as-a-Judge Evaluation for LLMs&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/lukehutch/awesome-static-analysis" rel="noopener noreferrer"&gt;Awesome Static Analysis - curated list of linters and code quality tools&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Also Known As 🎭
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;Harness-Enforced-Standards&lt;/li&gt;
&lt;li&gt;Machine-Judged-Style&lt;/li&gt;
&lt;li&gt;Standards-as-Code&lt;/li&gt;
&lt;li&gt;Linter-Native-Review&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Tools 🧰
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://mago.carthage.software/" rel="noopener noreferrer"&gt;Mago&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://eslint.org/" rel="noopener noreferrer"&gt;ESLint&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.sonarsource.com/products/sonarqube/" rel="noopener noreferrer"&gt;SonarQube&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/PHPCSStandards/PHP_CodeSniffer" rel="noopener noreferrer"&gt;PHP_CodeSniffer&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://docs.astral.sh/ruff/" rel="noopener noreferrer"&gt;Ruff&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://rubocop.org/" rel="noopener noreferrer"&gt;RuboCop&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://checkstyle.sourceforge.io/" rel="noopener noreferrer"&gt;Checkstyle&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://golangci-lint.run/" rel="noopener noreferrer"&gt;golangci-lint&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://doc.rust-lang.org/clippy/" rel="noopener noreferrer"&gt;Clippy&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Disclaimer 📢
&lt;/h1&gt;

&lt;p&gt;The views expressed here are my own.&lt;/p&gt;

&lt;p&gt;I am a human who writes as best as possible for other humans. &lt;/p&gt;

&lt;p&gt;I use AI proofreading tools to improve some texts.&lt;/p&gt;

&lt;p&gt;I welcome constructive criticism and dialogue.&lt;/p&gt;

&lt;p&gt;I shape these insights through 30 years in the software industry, 25 years of teaching, and writing over 500 articles and a book.&lt;/p&gt;




&lt;p&gt;This article is part of the &lt;em&gt;AI Coding Tip&lt;/em&gt; series.&lt;/p&gt;


&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/mcsee/ai-coding-tips-118n" class="crayons-story__hidden-navigation-link"&gt;AI Coding Tips&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/mcsee" class="crayons-avatar  crayons-avatar--l  "&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" alt="mcsee profile" class="crayons-avatar__image" width="800" height="533"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/mcsee" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Maxi Contieri
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Maxi Contieri
                
              
              &lt;div id="story-author-preview-content-3187836" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/mcsee" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" class="crayons-avatar__image" alt="" width="800" height="533"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Maxi Contieri&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/mcsee/ai-coding-tips-118n" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Jan 21&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/mcsee/ai-coding-tips-118n" id="article-link-3187836"&gt;
          AI Coding Tips
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/webdev"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;webdev&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/programming"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;programming&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/beginners"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;beginners&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
            &lt;a href="https://dev.to/mcsee/ai-coding-tips-118n#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              1&lt;span class="hidden s:inline"&gt;&amp;nbsp;comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            2 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


</description>
      <category>ai</category>
      <category>webdev</category>
      <category>programming</category>
      <category>beginners</category>
    </item>
    <item>
      <title>AI Coding Tip 026 - Assign a Persona to Every Skill Definition</title>
      <dc:creator>Maxi Contieri</dc:creator>
      <pubDate>Tue, 07 Jul 2026 11:00:00 +0000</pubDate>
      <link>https://dev.to/mcsee/ai-coding-tip-026-assign-a-persona-to-every-skill-definition-42bb</link>
      <guid>https://dev.to/mcsee/ai-coding-tip-026-assign-a-persona-to-every-skill-definition-42bb</guid>
      <description>&lt;p&gt;&lt;em&gt;Know who speaks before the skill runs&lt;/em&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;TL;DR: Always define a clear role at the top of every skill file so you know whose perspective drives the execution.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h1&gt;
  
  
  Common Mistake ❌
&lt;/h1&gt;

&lt;p&gt;You write a skill full of rules but assign no role.&lt;/p&gt;

&lt;p&gt;The AI starts executing without knowing if it's a junior developer, a seasoned architect, or a QA engineer.&lt;/p&gt;

&lt;p&gt;You get responses that feel generic, lack authority, or shift in perspective across runs.&lt;/p&gt;

&lt;h1&gt;
  
  
  Problems Addressed 😔
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;The AI picks a random voice, so outputs vary unpredictably between sessions.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;You can't audit the skill because you don't know whose judgment it applies.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The AI mixes tones and expertise levels inside a single execution.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Skill chaining breaks because each skill assumes a different implicit persona.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;You lose accountability: nobody knows who &lt;a href="https://dev.to/mcsee/ai-coding-tip-006-review-every-line-before-commit-bmm"&gt;signed off on the output&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  How to Do It 🛠️
&lt;/h1&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Open your skill file and add a role declaration as the very first instruction.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Write "You are a [role] with expertise in [domain]" before any other rule.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Add one or two sentences describing the role's constraints and responsibilities.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Keep the persona consistent through every instruction that follows in the file.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;When you &lt;a href="https://dev.to/mcsee/ai-coding-tip-004-use-modular-skills-g97"&gt;chain skills&lt;/a&gt;, verify each one declares its own persona explicitly.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h1&gt;
  
  
  Benefits 🎯
&lt;/h1&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Consistent voice:&lt;/strong&gt; The AI executes from the same expertise level every run, so output is predictable.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Auditable output:&lt;/strong&gt; You know whose perspective generated the result, which makes &lt;a href="https://dev.to/mcsee/ai-coding-tip-006-review-every-line-before-commit-bmm"&gt;reviews faster&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Better calibration:&lt;/strong&gt; An AI that knows it's a senior reviewer asks harder questions than one without a role.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Safe chaining:&lt;/strong&gt; When you chain skills, each one speaks from a declared identity instead of guessing.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Faster debugging:&lt;/strong&gt; When a skill gives a wrong answer, you know whose lens to question.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h1&gt;
  
  
  Context 🧠
&lt;/h1&gt;

&lt;p&gt;A skill without a persona is a command without a commander.&lt;/p&gt;

&lt;p&gt;You can read every instruction in the file and still not know who says what or &lt;a href="https://dev.to/mcsee/ai-coding-tip-019-tell-the-ai-why-not-just-what-43en"&gt;why&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;When you declare a role, you give the AI a &lt;a href="https://dev.to/mcsee/ai-coding-tip-011-initialize-agentsmd-nh7"&gt;stable frame of reference&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The AI &lt;a href="https://dev.to/mcsee/ai-coding-tip-015-force-the-ai-to-obey-you-49mc"&gt;stops guessing&lt;/a&gt; and starts executing from a specific vantage point.&lt;/p&gt;

&lt;p&gt;This also helps you design the skill: if you know the AI is "a strict code reviewer," you know what rules to include and which to leave out.&lt;/p&gt;

&lt;p&gt;When you &lt;a href="https://dev.to/mcsee/ai-coding-tip-017-ask-for-the-analyst-not-the-analysis-df4"&gt;ask for the analyst, not the analysis&lt;/a&gt;, you're already applying this idea at the prompt level.&lt;/p&gt;

&lt;p&gt;A skill takes it one step further: you bake the role into the definition so you don't have to repeat it every time.&lt;/p&gt;

&lt;p&gt;You can also &lt;a href="https://dev.to/mcsee/ai-coding-tip-025-pair-every-skill-with-a-pitfalls-file-5927"&gt;pair every skill with a pitfalls file&lt;/a&gt; to define what the persona should never do.&lt;/p&gt;

&lt;h2&gt;
  
  
  Prompt Reference 📝
&lt;/h2&gt;

&lt;h2&gt;
  
  
  Bad Prompt 🚫
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="nn"&gt;---&lt;/span&gt;
&lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;technosignature-analyzer&lt;/span&gt;
&lt;span class="na"&gt;version&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;1.0.0&lt;/span&gt;
&lt;span class="na"&gt;description&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;|"&lt;/span&gt;
    &lt;span class="s"&gt;Analyzes signals from radio telescope arrays.&lt;/span&gt;
    &lt;span class="s"&gt;Reports unusual frequency patterns as candidates.&lt;/span&gt;

&lt;span class="na"&gt;allowed-tools&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
&lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;ReadTelescope&lt;/span&gt;
&lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;SendAlarm&lt;/span&gt;
&lt;span class="nn"&gt;---&lt;/span&gt;

&lt;span class="gh"&gt;# Technosignature Analyzer&lt;/span&gt;

Analyze signals from the telescope array.

Check for unusual frequency patterns.
Cross-reference with the Hipparcos catalog.
Flag any readings that deviate from baseline.
Report findings with confidence levels.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h2&gt;
  
  
  Good Prompt 👉
&lt;/h2&gt;




&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="nn"&gt;---&lt;/span&gt;
&lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;technosignature-analyzer&lt;/span&gt;
&lt;span class="na"&gt;version&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;1.0.0&lt;/span&gt;
&lt;span class="na"&gt;description&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;|&lt;/span&gt;
    &lt;span class="s"&gt;Detects technosignatures in telescope data and classifies&lt;/span&gt;
    &lt;span class="s"&gt;each candidate signal with a confidence percentage.&lt;/span&gt;
    &lt;span class="s"&gt;Rejects signals explained by known natural phenomena.&lt;/span&gt;

&lt;span class="na"&gt;allowed-tools&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
&lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;ReadTelescope&lt;/span&gt;
&lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;SendAlarm&lt;/span&gt;
&lt;span class="nn"&gt;---&lt;/span&gt;

&lt;span class="gh"&gt;# Technosignature Analyzer&lt;/span&gt;

You are a senior astrophysicist with 20 years of SETI experience.

You worked at the Allen Telescope Array and the Parkes Observatory.

You hold a PhD in Radio Astronomy with 40+ publications.

You distinguish RFI from natural astrophysical signals.

You separately flag artificial sources.

You apply the scientific method.

Form a hypothesis, test it, and document it.

You apply Six Sigma rigor to rule out false positives.

You don't report candidates below a 5-sigma confidence threshold.

You always cross-check three independent baselines before escalating.

Identify narrowband signals inconsistent with natural sources.

Flag laser pulses or structured optical emissions.

Compare power ratios against stellar baselines.

Classify each candidate with a confidence percentage.

Reject signals explained by known natural phenomena.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h1&gt;
  
  
  Considerations ⚠️
&lt;/h1&gt;

&lt;p&gt;Keep the persona declaration short: one to three sentences maximum.&lt;/p&gt;

&lt;p&gt;A long persona description adds noise and dilutes the actual skill rules.&lt;/p&gt;

&lt;p&gt;Don't invent fictional personas like "You are a wizard who codes."&lt;/p&gt;

&lt;p&gt;Use real professional roles.&lt;/p&gt;

&lt;p&gt;The AI performs best when the persona matches the domain of the skill.&lt;/p&gt;
&lt;h1&gt;
  
  
  Type 📝
&lt;/h1&gt;

&lt;p&gt;[X] Semi-Automatic&lt;/p&gt;
&lt;h1&gt;
  
  
  Limitations ⚠️
&lt;/h1&gt;

&lt;p&gt;The AI doesn't enforce the persona you assign; it adopts it as context.&lt;/p&gt;

&lt;p&gt;If your instructions contradict the persona, the AI may blend both and produce inconsistent output.&lt;/p&gt;
&lt;h1&gt;
  
  
  Tags 🏷️
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;Knowledge Management&lt;/li&gt;
&lt;/ul&gt;
&lt;h1&gt;
  
  
  Level 🔋
&lt;/h1&gt;

&lt;p&gt;[X] Beginner&lt;/p&gt;
&lt;h1&gt;
  
  
  Related Tips 🔗
&lt;/h1&gt;


&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/mcsee/ai-coding-tip-004-use-modular-skills-g97" class="crayons-story__hidden-navigation-link"&gt;AI Coding Tip 004 - Use Modular Skills&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/mcsee" class="crayons-avatar  crayons-avatar--l  "&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" alt="mcsee profile" class="crayons-avatar__image" width="800" height="533"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/mcsee" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Maxi Contieri
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Maxi Contieri
                
              
              &lt;div id="story-author-preview-content-3200068" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/mcsee" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" class="crayons-avatar__image" alt="" width="800" height="533"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Maxi Contieri&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/mcsee/ai-coding-tip-004-use-modular-skills-g97" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Jan 27&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/mcsee/ai-coding-tip-004-use-modular-skills-g97" id="article-link-3200068"&gt;
          AI Coding Tip 004 - Use Modular Skills
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/webdev"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;webdev&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/programming"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;programming&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/beginners"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;beginners&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/mcsee/ai-coding-tip-004-use-modular-skills-g97" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/multi-unicorn-b44d6f8c23cdd00964192bedc38af3e82463978aa611b4365bd33a0f1f4f3e97.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;3&lt;span class="hidden s:inline"&gt;&amp;nbsp;reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/mcsee/ai-coding-tip-004-use-modular-skills-g97#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              &lt;span class="hidden s:inline"&gt;Add&amp;nbsp;Comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            4 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;


&lt;/div&gt;
&lt;br&gt;



&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/mcsee/ai-coding-tip-006-review-every-line-before-commit-bmm" class="crayons-story__hidden-navigation-link"&gt;AI Coding Tip 006 - Review Every Line Before Commit&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/mcsee" class="crayons-avatar  crayons-avatar--l  "&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" alt="mcsee profile" class="crayons-avatar__image" width="800" height="533"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/mcsee" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Maxi Contieri
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Maxi Contieri
                
              
              &lt;div id="story-author-preview-content-3251959" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/mcsee" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" class="crayons-avatar__image" alt="" width="800" height="533"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Maxi Contieri&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/mcsee/ai-coding-tip-006-review-every-line-before-commit-bmm" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Feb 13&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/mcsee/ai-coding-tip-006-review-every-line-before-commit-bmm" id="article-link-3251959"&gt;
          AI Coding Tip 006 - Review Every Line Before Commit
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/programming"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;programming&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/development"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;development&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/softwaredevelopment"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;softwaredevelopment&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
            &lt;a href="https://dev.to/mcsee/ai-coding-tip-006-review-every-line-before-commit-bmm#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              1&lt;span class="hidden s:inline"&gt;&amp;nbsp;comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            7 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;



&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/mcsee/ai-coding-tip-011-initialize-agentsmd-nh7" class="crayons-story__hidden-navigation-link"&gt;AI Coding Tip 011 - Initialize Agents.md&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/mcsee" class="crayons-avatar  crayons-avatar--l  "&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" alt="mcsee profile" class="crayons-avatar__image" width="800" height="533"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/mcsee" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Maxi Contieri
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Maxi Contieri
                
              
              &lt;div id="story-author-preview-content-3369224" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/mcsee" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" class="crayons-avatar__image" alt="" width="800" height="533"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Maxi Contieri&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/mcsee/ai-coding-tip-011-initialize-agentsmd-nh7" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Mar 18&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/mcsee/ai-coding-tip-011-initialize-agentsmd-nh7" id="article-link-3369224"&gt;
          AI Coding Tip 011 - Initialize Agents.md
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/programming"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;programming&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/mcsee/ai-coding-tip-011-initialize-agentsmd-nh7" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;1&lt;span class="hidden s:inline"&gt;&amp;nbsp;reaction&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/mcsee/ai-coding-tip-011-initialize-agentsmd-nh7#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              &lt;span class="hidden s:inline"&gt;Add&amp;nbsp;Comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            3 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;



&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/mcsee/ai-coding-tip-017-ask-for-the-analyst-not-the-analysis-df4" class="crayons-story__hidden-navigation-link"&gt;AI Coding Tip 017 - Ask for the Analyst, Not the Analysis&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/mcsee" class="crayons-avatar  crayons-avatar--l  "&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" alt="mcsee profile" class="crayons-avatar__image" width="800" height="533"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/mcsee" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Maxi Contieri
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Maxi Contieri
                
              
              &lt;div id="story-author-preview-content-3558996" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/mcsee" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" class="crayons-avatar__image" alt="" width="800" height="533"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Maxi Contieri&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/mcsee/ai-coding-tip-017-ask-for-the-analyst-not-the-analysis-df4" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Apr 28&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/mcsee/ai-coding-tip-017-ask-for-the-analyst-not-the-analysis-df4" id="article-link-3558996"&gt;
          AI Coding Tip 017 - Ask for the Analyst, Not the Analysis
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/webdev"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;webdev&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/programming"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;programming&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/tutorial"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;tutorial&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/mcsee/ai-coding-tip-017-ask-for-the-analyst-not-the-analysis-df4" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;1&lt;span class="hidden s:inline"&gt;&amp;nbsp;reaction&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/mcsee/ai-coding-tip-017-ask-for-the-analyst-not-the-analysis-df4#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              &lt;span class="hidden s:inline"&gt;Add&amp;nbsp;Comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            5 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;



&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/mcsee/ai-coding-tip-019-tell-the-ai-why-not-just-what-43en" class="crayons-story__hidden-navigation-link"&gt;AI Coding Tip 019 - Tell the AI Why, Not Just What&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/mcsee" class="crayons-avatar  crayons-avatar--l  "&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" alt="mcsee profile" class="crayons-avatar__image" width="800" height="533"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/mcsee" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Maxi Contieri
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Maxi Contieri
                
              
              &lt;div id="story-author-preview-content-3644753" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/mcsee" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" class="crayons-avatar__image" alt="" width="800" height="533"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Maxi Contieri&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/mcsee/ai-coding-tip-019-tell-the-ai-why-not-just-what-43en" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;May 12&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/mcsee/ai-coding-tip-019-tell-the-ai-why-not-just-what-43en" id="article-link-3644753"&gt;
          AI Coding Tip 019 - Tell the AI Why, Not Just What
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/coding"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;coding&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/llm"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;llm&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/productivity"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;productivity&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/mcsee/ai-coding-tip-019-tell-the-ai-why-not-just-what-43en" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/raised-hands-74b2099fd66a39f2d7eed9305ee0f4553df0eb7b4f11b01b6b1b499973048fe5.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;3&lt;span class="hidden s:inline"&gt;&amp;nbsp;reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/mcsee/ai-coding-tip-019-tell-the-ai-why-not-just-what-43en#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              3&lt;span class="hidden s:inline"&gt;&amp;nbsp;comments&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            4 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;



&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/mcsee/ai-coding-tip-025-pair-every-skill-with-a-pitfalls-file-5927" class="crayons-story__hidden-navigation-link"&gt;AI Coding Tip 025 - Pair Every Skill With a Pitfalls File&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/mcsee" class="crayons-avatar  crayons-avatar--l  "&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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" alt="mcsee profile" class="crayons-avatar__image" width="800" height="533"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/mcsee" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Maxi Contieri
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Maxi Contieri
                
              
              &lt;div id="story-author-preview-content-3945132" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/mcsee" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" class="crayons-avatar__image" alt="" width="800" height="533"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Maxi Contieri&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/mcsee/ai-coding-tip-025-pair-every-skill-with-a-pitfalls-file-5927" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Jun 23&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/mcsee/ai-coding-tip-025-pair-every-skill-with-a-pitfalls-file-5927" id="article-link-3945132"&gt;
          AI Coding Tip 025 - Pair Every Skill With a Pitfalls File
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/webdev"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;webdev&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/programming"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;programming&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/tutorial"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;tutorial&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/mcsee/ai-coding-tip-025-pair-every-skill-with-a-pitfalls-file-5927" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/exploding-head-daceb38d627e6ae9b730f36a1e390fca556a4289d5a41abb2c35068ad3e2c4b5.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;2&lt;span class="hidden s:inline"&gt;&amp;nbsp;reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/mcsee/ai-coding-tip-025-pair-every-skill-with-a-pitfalls-file-5927#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              1&lt;span class="hidden s:inline"&gt;&amp;nbsp;comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            5 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


&lt;h1&gt;
  
  
  Conclusion 🏁
&lt;/h1&gt;

&lt;p&gt;A skill without a persona is a command without a commander.&lt;/p&gt;

&lt;p&gt;You always understand the output better when you know who produced it.&lt;/p&gt;

&lt;p&gt;Assign a role first.&lt;/p&gt;

&lt;p&gt;Every time.&lt;/p&gt;

&lt;h1&gt;
  
  
  More Information ℹ️
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://docs.anthropic.com/en/docs/claude-code" rel="noopener noreferrer"&gt;Claude Code Skills Documentation&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://docs.anthropic.com/en/docs/build-with-claude/prompt-engineering/overview" rel="noopener noreferrer"&gt;System Prompts and Personas&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Also Known As 🎭
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;Role-First Skill Design&lt;/li&gt;
&lt;li&gt;Persona-Anchored Prompts&lt;/li&gt;
&lt;li&gt;Identity-Driven Skill Files&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Disclaimer 📢
&lt;/h1&gt;

&lt;p&gt;The views expressed here are my own.&lt;/p&gt;

&lt;p&gt;I am a human who writes as best as possible for other humans. &lt;/p&gt;

&lt;p&gt;I use AI proofreading tools to improve some texts.&lt;/p&gt;

&lt;p&gt;I welcome constructive criticism and dialogue.&lt;/p&gt;

&lt;p&gt;I shape these insights through 30 years in the software industry, 25 years of teaching, and writing over 500 articles and a book.&lt;/p&gt;




&lt;p&gt;This article is part of the &lt;em&gt;AI Coding Tip&lt;/em&gt; series.&lt;/p&gt;


&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/mcsee/ai-coding-tips-118n" class="crayons-story__hidden-navigation-link"&gt;AI Coding Tips&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/mcsee" class="crayons-avatar  crayons-avatar--l  "&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" alt="mcsee profile" class="crayons-avatar__image" width="800" height="533"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/mcsee" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Maxi Contieri
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Maxi Contieri
                
              
              &lt;div id="story-author-preview-content-3187836" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/mcsee" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" class="crayons-avatar__image" alt="" width="800" height="533"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Maxi Contieri&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/mcsee/ai-coding-tips-118n" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Jan 21&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/mcsee/ai-coding-tips-118n" id="article-link-3187836"&gt;
          AI Coding Tips
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/webdev"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;webdev&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/programming"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;programming&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/beginners"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;beginners&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
            &lt;a href="https://dev.to/mcsee/ai-coding-tips-118n#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              1&lt;span class="hidden s:inline"&gt;&amp;nbsp;comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            2 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


</description>
      <category>ai</category>
      <category>webdev</category>
      <category>programming</category>
      <category>beginners</category>
    </item>
    <item>
      <title>The Dirty Secret Behind Loop Engineering</title>
      <dc:creator>Maxi Contieri</dc:creator>
      <pubDate>Tue, 30 Jun 2026 12:00:00 +0000</pubDate>
      <link>https://dev.to/mcsee/the-dirty-secret-behind-loop-engineering-1748</link>
      <guid>https://dev.to/mcsee/the-dirty-secret-behind-loop-engineering-1748</guid>
      <description>&lt;p&gt;&lt;em&gt;Everyone is talking about Loop Engineering. Apparently, you don't need to program anymore.&lt;/em&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;TL;DR: Loop Engineering is the hottest AI workflow pattern of 2026. But it hides a dirty secret.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  The Tweet That Started It All
&lt;/h2&gt;

&lt;p&gt;&lt;iframe class="tweet-embed" id="tweet-2063697162748260627-249" src="https://platform.twitter.com/embed/Tweet.html?id=2063697162748260627"&gt;
&lt;/iframe&gt;

  // Detect dark theme
  var iframe = document.getElementById('tweet-2063697162748260627-249');
  if (document.body.className.includes('dark-theme')) {
    iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=2063697162748260627&amp;amp;theme=dark"
  }



&lt;/p&gt;

&lt;p&gt;In June 2026, &lt;a href="https://addyo.substack.com/p/loop-engineering" rel="noopener noreferrer"&gt;Addy Osmani&lt;/a&gt; and the &lt;a href="https://newsletter.posthog.com/p/why-were-bullish-on-loops" rel="noopener noreferrer"&gt;PostHog team&lt;/a&gt; published their takes on the same idea.&lt;/p&gt;

&lt;p&gt;Instead of prompting an AI agent manually, you build the system that prompts the agent for you.&lt;/p&gt;

&lt;p&gt;The metaprompt idea has a fancy name now. &lt;strong&gt;Loop Engineering&lt;/strong&gt;.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Loop engineering is replacing yourself as the person who prompts the agent. You design the system that does it instead.&lt;br&gt;
&lt;em&gt;Addy Osmani&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;PostHog ran it in production. The result: an 11% performance improvement and a 3-year-old &lt;a href="https://dev.to/mcsee/stop-calling-them-bugs-57gl"&gt;defect&lt;/a&gt; fixed in the query engine, hands-off.&lt;/p&gt;

&lt;p&gt;The internet got excited. Again. Rightly so.&lt;/p&gt;

&lt;p&gt;But there's a dirty secret hiding behind the vocabulary.&lt;/p&gt;

&lt;h2&gt;
  
  
  What a Loop Actually Is
&lt;/h2&gt;

&lt;p&gt;A functional loop has four parts:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Goal: a &lt;a href="https://dev.to/mcsee/ai-coding-tip-008-use-spec-driven-development-with-ai-1k0f"&gt;clearly scoped target&lt;/a&gt; for the agent&lt;/li&gt;
&lt;li&gt;Context: tools, data, errors, and &lt;a href="https://dev.to/mcsee/ai-coding-tip-009-compact-your-context-3io9"&gt;memory fed into each cycle&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Evaluation: the mechanism that decides whether the loop should continue or stop (a.k.a. the exit criteria)&lt;/li&gt;
&lt;li&gt;Agent: the executor, from a simple &lt;a href="https://code.claude.com/docs/en/goal" rel="noopener noreferrer"&gt;&lt;code&gt;/goal&lt;/code&gt;&lt;/a&gt; command to a full multi-agent harness&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The evaluation component is the key. Without it, you don't have a loop. You have an infinite runaway process. Good luck with your token bill!&lt;/p&gt;

&lt;p&gt;You also need a &lt;a href="https://dev.to/mcsee/ai-coding-tip-022-give-ai-a-harness-to-work-with-274a"&gt;harness&lt;/a&gt;: the scaffolding that contains the agent, enforces &lt;a href="https://dev.to/mcsee/object-design-checklist-2p4"&gt;your rules&lt;/a&gt;, and gives the loop a safe boundary to operate within.&lt;/p&gt;

&lt;h2&gt;
  
  
  Start With the Smallest Possible Spec
&lt;/h2&gt;

&lt;p&gt;Here's where Loop Engineering gets interesting, and where most people get it wrong.&lt;/p&gt;

&lt;p&gt;If you write an &lt;a href="https://dev.to/mcsee/ai-coding-tip-008-use-spec-driven-development-with-ai-1k0f"&gt;enormous spec covering all possible cases before the loop runs once&lt;/a&gt;, you aren't doing Loop Engineering. You're doing &lt;a href="https://dev.to/mcsee/coupling-the-one-and-only-software-design-problem-2pd7"&gt;waterfall&lt;/a&gt; with extra steps.&lt;/p&gt;

&lt;p&gt;Think about what you want to verify. Not the whole system. One behavior.&lt;/p&gt;

&lt;p&gt;Let's build a &lt;strong&gt;FIFA World Cup 2026 group standings simulator&lt;/strong&gt; using Loop Engineering.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Germany, Ivory Coast, Ecuador, and Curaçao in Group E. Three rounds of matches. The top two advance, and the best third-place teams also qualify.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;What's the smallest possible spec?&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;A team that wins a match gets 3 points.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That's it. Not the whole group. Not the knockout bracket. One rule about one match.&lt;/p&gt;

&lt;p&gt;This is the &lt;a href="https://dev.to/mcsee/ai-coding-tip-008-use-spec-driven-development-with-ai-1k0f"&gt;Spec-Driven approach&lt;/a&gt;: you define intent before implementation, but you keep the scope surgical.&lt;/p&gt;

&lt;h2&gt;
  
  
  Loop Iteration 1: Write a Spec That Fails
&lt;/h2&gt;

&lt;p&gt;Here's your first loop cycle. You define the evaluation condition before any implementation exists.&lt;/p&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;test_win_gives_three_points&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
    &lt;span class="n"&gt;germany&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;Team&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Germany 🇩🇪&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;curacao&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;Team&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Curaçao 🇨🇼&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="n"&gt;match&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;Match&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;germany&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;curacao&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;home_goals&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;7&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;away_goals&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;standings&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;GroupStandings&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
    &lt;span class="n"&gt;standings&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;record&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;match&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="k"&gt;assert&lt;/span&gt; &lt;span class="n"&gt;standings&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;points_for&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;germany&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;
    &lt;span class="k"&gt;assert&lt;/span&gt; &lt;span class="n"&gt;standings&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;points_for&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;curacao&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Run this. It fails. &lt;code&gt;Team&lt;/code&gt; doesn't exist. &lt;code&gt;Match&lt;/code&gt; doesn't exist. &lt;code&gt;GroupStandings&lt;/code&gt; doesn't exist.&lt;/p&gt;

&lt;p&gt;(Germany beat Curaçao 7-1 on June 14, 2026. The spec matches reality.)&lt;/p&gt;

&lt;p&gt;The loop condition is red 🔴.&lt;/p&gt;

&lt;p&gt;This is the signal the loop needs. The evaluation says: not done yet. Keep running until you achieve the &lt;code&gt;/goal&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Loop Iteration 2: Make the Evaluation Pass
&lt;/h2&gt;

&lt;p&gt;Now you give the agent the minimal implementation to make the loop exit:&lt;/p&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Team&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;__init__&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;name&lt;/span&gt;

&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Match&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;__init__&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;home&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;away&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;home_goals&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;away_goals&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;home&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;home&lt;/span&gt;
        &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;away&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;away&lt;/span&gt;
        &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;home_goals&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;home_goals&lt;/span&gt;
        &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;away_goals&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;away_goals&lt;/span&gt;

&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;GroupStandings&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;__init__&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;_points&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{}&lt;/span&gt;

    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;record&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;match&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;match&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;home_goals&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;match&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;away_goals&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;_points&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;match&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;home&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; 
                &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;_points&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;match&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;home&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;
            &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;_points&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;match&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;away&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; 
                &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;_points&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;match&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;away&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="k"&gt;elif&lt;/span&gt; &lt;span class="n"&gt;match&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;away_goals&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;match&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;home_goals&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;_points&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;match&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;away&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; 
                &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;_points&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;match&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;away&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;
            &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;_points&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;match&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;home&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; 
                &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;_points&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;match&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;home&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;points_for&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;team&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;_points&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;team&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Run the spec. Green 🟢. Loop exits.&lt;/p&gt;

&lt;p&gt;Not because you modeled every rule. Because you satisfied the single condition the loop was checking.&lt;/p&gt;

&lt;h2&gt;
  
  
  Loop Iteration 3: Expand the Spec, Red 🔴 Again
&lt;/h2&gt;

&lt;p&gt;The loop restarts with a new goal:&lt;/p&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;test_draw_gives_one_point_each&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
    &lt;span class="n"&gt;ecuador&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;Team&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Ecuador 🇪🇨&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;curacao&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;Team&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Curaçao 🇨🇼&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="n"&gt;match&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;Match&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;ecuador&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;curacao&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;home_goals&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;away_goals&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;standings&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;GroupStandings&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
    &lt;span class="n"&gt;standings&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;record&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;match&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="k"&gt;assert&lt;/span&gt; &lt;span class="n"&gt;standings&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;points_for&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;ecuador&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;
    &lt;span class="k"&gt;assert&lt;/span&gt; &lt;span class="n"&gt;standings&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;points_for&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;curacao&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Red 🔴. The &lt;code&gt;record&lt;/code&gt; method doesn't handle draws.&lt;/p&gt;

&lt;p&gt;(Ecuador drew 0-0 with Curaçao on June 20. Again, the spec matches reality.)&lt;/p&gt;

&lt;p&gt;The evaluation fails. Loop continues. Add the draw case. Green 🟢. Loop exits.&lt;/p&gt;

&lt;h2&gt;
  
  
  Growing the Loop: Group Stage Completion
&lt;/h2&gt;

&lt;p&gt;Cycle by cycle, the spec expands:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Iteration 4: Multiple matches accumulate points correctly across all three rounds&lt;/li&gt;
&lt;li&gt;Iteration 5: Teams with equal points get ranked by goal difference&lt;/li&gt;
&lt;li&gt;Iteration 6: Ties in goal difference break by goals scored&lt;/li&gt;
&lt;li&gt;Iteration 7: Top 2 teams advance to the knockout stage&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Each iteration follows the same pattern: write the evaluation condition first, run it (it fails), implement the minimum to pass, run again (green 🟢), move to the next cycle.&lt;/p&gt;

&lt;p&gt;After 7 iterations, Group E final standings:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Group E - Final Standings
1. Germany       6 pts  GD: +6  GF: 10
2. Ivory Coast   6 pts  GD: +2  GF: 4
3. Ecuador       4 pts  GD:  0  GF: 2
4. Curaçao       1 pt   GD: -8  GF: 1
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Growing the Loop: Knockout Brackets
&lt;/h2&gt;

&lt;p&gt;The same loop discipline applies to bracket generation.&lt;/p&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;test_group_winner_faces_different_group_runner_up&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
    &lt;span class="n"&gt;bracket&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;KnockoutBracket&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;completed_group_results&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="n"&gt;round_of_32&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;bracket&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;round_of_32&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

    &lt;span class="k"&gt;assert&lt;/span&gt; &lt;span class="n"&gt;round_of_32&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="n"&gt;home&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="n"&gt;group_e_standings&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;first_place&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
    &lt;span class="k"&gt;assert&lt;/span&gt; &lt;span class="n"&gt;round_of_32&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="n"&gt;away&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="n"&gt;group_f_standings&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;second_place&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Red 🔴 first. Then green 🟢. Then the next spec.&lt;/p&gt;

&lt;p&gt;The loop doesn't know the full bracket before it starts. It discovers the bracket one evaluation at a time.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Keeps the Loop Safe: The Harness
&lt;/h2&gt;

&lt;p&gt;None of this works without a structure that:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Runs the evaluation on every cycle&lt;/li&gt;
&lt;li&gt;Stops the agent when the condition passes&lt;/li&gt;
&lt;li&gt;Prevents the agent from moving to the next spec until the current one is green 🟢&lt;/li&gt;
&lt;li&gt;Stores state between cycles so the next spec knows what already passed&lt;/li&gt;
&lt;li&gt;Forces the minimum solution that makes the evaluation pass, nothing more.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://dev.to/mcsee/coupling-the-one-and-only-software-design-problem-2pd7"&gt;Over-engineering&lt;/a&gt; is structurally impossible when the loop stops the moment the spec is green 🟢&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That is the &lt;a href="https://dev.to/mcsee/ai-coding-tip-022-give-ai-a-harness-to-work-with-274a"&gt;harness&lt;/a&gt;. The harness is what separates Loop Engineering from running Claude in a &lt;code&gt;while True&lt;/code&gt; loop and hoping for the best.&lt;/p&gt;

&lt;p&gt;Codex and Claude Code now ship with built-in loop infrastructure: &lt;a href="https://code.claude.com/docs/en/goal" rel="noopener noreferrer"&gt;&lt;code&gt;/goal&lt;/code&gt;&lt;/a&gt;, &lt;code&gt;/loop&lt;/code&gt;, &lt;code&gt;isolation: worktree&lt;/code&gt;, and sub-agents for separate verification.&lt;/p&gt;

&lt;p&gt;The harness is no longer something you build from scratch.&lt;/p&gt;

&lt;p&gt;The agent that verifies runs in a &lt;a href="https://dev.to/mcsee/ai-coding-tip-005-keep-context-fresh-220e"&gt;clean sub-agent with no memory&lt;/a&gt; of what the implementer did.&lt;/p&gt;

&lt;p&gt;It is an independent inspector seeking &lt;em&gt;Judgment Day&lt;/em&gt; moments.&lt;/p&gt;

&lt;p&gt;It can't grade its own work because it never saw the work being done.&lt;/p&gt;

&lt;p&gt;This is the same reason you don't ask a developer to review their own pull request.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Numbers That Made Everyone Pay Attention
&lt;/h2&gt;

&lt;p&gt;Why is this getting attention now and not five years ago?&lt;/p&gt;

&lt;p&gt;Because the evaluation step (the part where the loop decides whether to continue) used to require a human. Now it doesn't.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Opus 4.8 completes 50% of tasks requiring 12 hours of work, at 6x the speed of its predecessor one year ago&lt;/li&gt;
&lt;li&gt;Stripe migrated an entire codebase in one day that would have taken a team two months manually&lt;/li&gt;
&lt;li&gt;PostHog's autoresearcher loop delivered 11% performance gains and fixed a three-year-old &lt;a href="https://dev.to/mcsee/stop-calling-them-bugs-57gl"&gt;defect&lt;/a&gt;, unsupervised&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;When models were weaker, the loop needed you to interpret the evaluation output. Now the evaluation can be the test suite itself, and the agent reads it directly.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Dirty Secret
&lt;/h2&gt;

&lt;p&gt;You've been reading about &lt;a href="https://www.youtube.com/watch?v=Xahv9nMegXA" rel="noopener noreferrer"&gt;Test-Driven Development&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The &lt;em&gt;spec&lt;/em&gt; is the test.&lt;/p&gt;

&lt;p&gt;The &lt;em&gt;evaluation&lt;/em&gt; is the test runner.&lt;/p&gt;

&lt;p&gt;The &lt;em&gt;loop&lt;/em&gt; is the red 🔴-green 🟢-refactor 🔵 cycle.&lt;/p&gt;

&lt;p&gt;The &lt;em&gt;goal&lt;/em&gt; is the failing assertion.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Loop exits when evaluation passes&lt;/em&gt; means the test is green 🟢.&lt;/p&gt;

&lt;p&gt;Kent Beck described this in &lt;a href="https://en.wikipedia.org/wiki/Test-driven_development" rel="noopener noreferrer"&gt;2003&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Ward Cunningham was doing it before that.&lt;/p&gt;

&lt;p&gt;There's even a structured guide for choosing which &lt;em&gt;goal&lt;/em&gt; to tackle next: the &lt;a href="https://dev.to/mcsee/how-i-survived-the-zombie-apocalypse-59gj"&gt;ZOMBIES framework&lt;/a&gt;. Zero, One, Many, Boundary, Interface, Exceptional, Simple. That is your loop iteration order.&lt;/p&gt;

&lt;p&gt;What changed isn't the technique. What changed is who runs the loop.&lt;/p&gt;

&lt;p&gt;In 2003, the human developer wrote the test, ran it, read the red 🔴 output, wrote the minimum code, ran it again, saw green 🟢, and moved to the next test.&lt;/p&gt;

&lt;p&gt;That was the loop.&lt;/p&gt;

&lt;p&gt;In 2026, the functional developer writes the spec, the agent runs the cycle, reads the red 🔴 output, writes the minimum code, runs the cycle again, sees green 🟢, and starts the next spec. That's still the loop.&lt;/p&gt;

&lt;p&gt;The red 🔴-green 🟢-refactor 🔵 vocabulary wasn't memorable enough for 2026. So the industry renamed it.&lt;/p&gt;

&lt;p&gt;The evaluation is still the test. The cycle is still TDD. The discipline is exactly the same.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Build the loop. But build it like someone who intends to stay the engineer, not just the person who presses go.&lt;br&gt;
&lt;em&gt;Addy Osmani&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Kent Beck said the same thing. He just called it something else.&lt;/p&gt;

&lt;p&gt;A few extra tips:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Before the first iteration, &lt;a href="https://dev.to/mcsee/ai-coding-tip-003-force-read-only-planning-1d1m"&gt;plan in read-only mode&lt;/a&gt;: decide which specs to write in which order. No code yet.&lt;/li&gt;
&lt;li&gt;Force the Agent to always write a failing test with the steps to repro of a defect or the missing functionality, and &lt;a href="https://dev.to/mcsee/ai-coding-tip-024-force-a-criteria-check-before-the-task-ends-51ij"&gt;force a criterion check before it marks the task done&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Watch the whole process, don't ship it to production without &lt;a href="https://dev.to/mcsee/ai-coding-tip-012-understand-all-your-code-450h"&gt;your explicit approval&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;You need to &lt;a href="https://dev.to/mcsee/ai-coding-tip-006-review-every-line-before-commit-bmm"&gt;understand all the solution code&lt;/a&gt;. The loop runs fast. Don't let it outrun your understanding. Passive automation creates &lt;a href="https://dev.to/mcsee/ai-coding-tip-021-avoid-comprehension-debt-edm"&gt;comprehension debt&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Configure the harness to &lt;a href="https://dev.to/mcsee/ai-coding-tip-001-commit-before-prompt-5bd9"&gt;commit automatically every time the tests pass&lt;/a&gt;. This is &lt;a href="https://medium.com/@kentbeck_7670/test-commit-revert-870bbd756864" rel="noopener noreferrer"&gt;TCR&lt;/a&gt; (Test &amp;amp;&amp;amp; Commit || Revert): if green 🟢, commit; if red 🔴, revert. Each passing cycle leaves a clean checkpoint. The loop never drifts into an invalid state.&lt;/li&gt;
&lt;li&gt;One spec per cycle means &lt;a href="https://dev.to/mcsee/ai-coding-tip-023-shrink-your-ais-pull-request-4lnb"&gt;one small pull request per feature&lt;/a&gt;. Reviewers read diffs, not novels.&lt;/li&gt;
&lt;li&gt;TDD has three steps, not two. Red 🔴, green 🟢, refactor 🔵. The loop handles the first two automatically. The third one still needs you. A harness with &lt;a href="https://dev.to/mcsee/coupling-the-one-and-only-software-design-problem-2pd7"&gt;coupling and cohesion metrics&lt;/a&gt; tells you when the code that just turned green 🟢 is worth keeping as-is. High coupling or low cohesion after a passing cycle is the signal to refactor before moving to the next spec.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Loop Engineering on Legacy Systems
&lt;/h2&gt;

&lt;p&gt;Loop Engineering isn't only for greenfield code or fancy MVPs. It's also how you safely modernize systems that have no tests at all.&lt;/p&gt;

&lt;p&gt;The trick is the same: write the spec first.&lt;/p&gt;

&lt;p&gt;On a legacy system, that spec describes behavior the system already has.&lt;/p&gt;

&lt;p&gt;You're not inventing new rules. You're pinning existing ones so the loop can't break them.&lt;/p&gt;

&lt;p&gt;Harnesses are even more critical on production legacy systems.&lt;/p&gt;

&lt;p&gt;The loop then shrinks the untested surface one cycle at a time.&lt;/p&gt;

&lt;p&gt;Each green 🟢 spec is a behavior the agent can't accidentally destroy in the next iteration. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://dev.to/mcsee/how-to-squeeze-test-driven-development-on-legacy-systems-8m9"&gt;Squeezing TDD onto legacy systems&lt;/a&gt; works the same way whether a human runs the cycle or an agent does. The discipline is identical. What changes is the speed.&lt;/p&gt;

&lt;p&gt;What are you waiting for? Build your harnesses. Start your loops.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>webdev</category>
      <category>programming</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Code Smell 320 - Vanity Coverage</title>
      <dc:creator>Maxi Contieri</dc:creator>
      <pubDate>Fri, 26 Jun 2026 11:07:00 +0000</pubDate>
      <link>https://dev.to/mcsee/code-smell-320-vanity-coverage-2g03</link>
      <guid>https://dev.to/mcsee/code-smell-320-vanity-coverage-2g03</guid>
      <description>&lt;p&gt;&lt;em&gt;Brushing Over Real Problems&lt;/em&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;TL;DR: You write tests that touch every line but verify nothing, creating false confidence in a broken system.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h1&gt;
  
  
  Problems 😔
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;False confidence&lt;/li&gt;
&lt;li&gt;Hidden production &lt;a href="https://dev.to/mcsee/stop-calling-them-bugs-57gl"&gt;defects&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Misleading metrics&lt;/li&gt;
&lt;li&gt;Wasted test effort&lt;/li&gt;
&lt;li&gt;Untested edge cases&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Solutions 😃
&lt;/h1&gt;

&lt;ol&gt;
&lt;li&gt;Use mutation testing&lt;/li&gt;
&lt;li&gt;Test real behaviors&lt;/li&gt;
&lt;li&gt;Write assertive tests&lt;/li&gt;
&lt;li&gt;Delete coverage-only tests&lt;/li&gt;
&lt;/ol&gt;

&lt;h1&gt;
  
  
  Refactorings ⚙️
&lt;/h1&gt;


&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/mcsee/-refactoring-011-replace-comments-with-tests-27j1" class="crayons-story__hidden-navigation-link"&gt;Refactoring 011 - Replace Comments with Tests&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/mcsee" class="crayons-avatar  crayons-avatar--l  "&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" alt="mcsee profile" class="crayons-avatar__image" width="800" height="533"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/mcsee" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Maxi Contieri
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Maxi Contieri
                
              
              &lt;div id="story-author-preview-content-1445609" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/mcsee" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" class="crayons-avatar__image" alt="" width="800" height="533"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Maxi Contieri&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/mcsee/-refactoring-011-replace-comments-with-tests-27j1" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Apr 23 '23&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/mcsee/-refactoring-011-replace-comments-with-tests-27j1" id="article-link-1445609"&gt;
          Refactoring 011 - Replace Comments with Tests
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/webdev"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;webdev&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/beginners"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;beginners&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/programming"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;programming&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/tutorial"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;tutorial&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
            &lt;a href="https://dev.to/mcsee/-refactoring-011-replace-comments-with-tests-27j1#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              &lt;span class="hidden s:inline"&gt;Add&amp;nbsp;Comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            2 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


&lt;h1&gt;
  
  
  Context 💬
&lt;/h1&gt;

&lt;p&gt;Many teams set a coverage threshold: 80%, 90%, or even 100%.&lt;/p&gt;

&lt;p&gt;When you chase that number, you write tests that call methods without checking the actual results.&lt;/p&gt;

&lt;p&gt;A test that calls &lt;code&gt;calculateTax()&lt;/code&gt; but only asserts &lt;code&gt;result is not None&lt;/code&gt; executes the line.&lt;/p&gt;

&lt;p&gt;It doesn't verify the tax calculation is correct.&lt;/p&gt;

&lt;p&gt;The dashboard turns green.&lt;/p&gt;

&lt;p&gt;Defects survive in production.&lt;/p&gt;

&lt;p&gt;This is vanity coverage: cosmetic metrics that hide real problems. Like brushes that make surfaces look smooth while the rot stays underneath.&lt;/p&gt;

&lt;p&gt;Mutation testing reveals the truth.&lt;/p&gt;

&lt;p&gt;When you mutate production code and no tests fail, your coverage numbers lied.&lt;/p&gt;

&lt;h1&gt;
  
  
  Sample Code 💻
&lt;/h1&gt;

&lt;h2&gt;
  
  
  Wrong 🚫
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nf"&gt;describe&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;BankAccount&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nf"&gt;test&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;deposit&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;account&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;BankAccount&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="nx"&gt;account&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;deposit&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;50&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="c1"&gt;// Only checking it didn't crash&lt;/span&gt;
    &lt;span class="nf"&gt;expect&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;account&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;toBeDefined&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
  &lt;span class="p"&gt;});&lt;/span&gt;

  &lt;span class="nf"&gt;test&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;withdraw&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;account&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;BankAccount&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;account&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;withdraw&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;30&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="c1"&gt;// No assertion about the result!&lt;/span&gt;
  &lt;span class="p"&gt;});&lt;/span&gt;

  &lt;span class="nf"&gt;test&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;transfer&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;source&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;BankAccount&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;200&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;target&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;BankAccount&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="c1"&gt;// Just calling the method to "cover" the line&lt;/span&gt;
    &lt;span class="nx"&gt;source&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;transfer&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;50&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;target&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="p"&gt;});&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h2&gt;
  
  
  Right 👉
&lt;/h2&gt;




&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nf"&gt;describe&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;BankAccount&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nf"&gt;test&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;deposit increases balance&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;account&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;BankAccount&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="nx"&gt;account&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;deposit&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;50&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="nf"&gt;expect&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;account&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;balance&lt;/span&gt;&lt;span class="p"&gt;()).&lt;/span&gt;&lt;span class="nf"&gt;toBe&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;150&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="p"&gt;});&lt;/span&gt;

  &lt;span class="nf"&gt;test&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;withdraw decreases balance&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;account&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;BankAccount&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="nx"&gt;account&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;withdraw&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;30&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="nf"&gt;expect&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;account&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;balance&lt;/span&gt;&lt;span class="p"&gt;()).&lt;/span&gt;&lt;span class="nf"&gt;toBe&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;70&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="p"&gt;});&lt;/span&gt;

  &lt;span class="nf"&gt;test&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;withdraw raises on insufficient funds&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;account&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;BankAccount&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;50&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="nf"&gt;expect&lt;/span&gt;&lt;span class="p"&gt;(()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;account&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;withdraw&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
      &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;toThrow&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;InsufficientFundsError&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="p"&gt;});&lt;/span&gt;

  &lt;span class="nf"&gt;test&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;transfer moves money between accounts&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;source&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;BankAccount&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;200&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;target&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;BankAccount&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="nx"&gt;source&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;transfer&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;50&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;target&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="nf"&gt;expect&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;source&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;balance&lt;/span&gt;&lt;span class="p"&gt;()).&lt;/span&gt;&lt;span class="nf"&gt;toBe&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;150&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="nf"&gt;expect&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;target&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;balance&lt;/span&gt;&lt;span class="p"&gt;()).&lt;/span&gt;&lt;span class="nf"&gt;toBe&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;50&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="p"&gt;});&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h1&gt;
  
  
  Detection 🔍
&lt;/h1&gt;

&lt;p&gt;[X] Semi-Automatic&lt;/p&gt;

&lt;p&gt;Run a mutation testing tool (&lt;a href="https://pitest.org/" rel="noopener noreferrer"&gt;PIT&lt;/a&gt; for Java, &lt;a href="https://stryker-mutator.io/" rel="noopener noreferrer"&gt;Stryker&lt;/a&gt; for JavaScript, &lt;a href="https://github.com/boxed/mutmut" rel="noopener noreferrer"&gt;mutmut&lt;/a&gt; for Python).&lt;/p&gt;

&lt;p&gt;Count the surviving mutants.&lt;/p&gt;

&lt;p&gt;If coverage is high but mutants survive, you have vanity coverage.&lt;/p&gt;

&lt;p&gt;You can also search for assertion-free tests, single &lt;code&gt;assertNotNull()&lt;/code&gt; assertions, or tests that still pass after you delete the entire production method body.&lt;/p&gt;
&lt;h1&gt;
  
  
  Exceptions 🛑
&lt;/h1&gt;

&lt;p&gt;Smoke tests that call endpoints to verify the system starts are acceptable without detailed assertions.&lt;/p&gt;

&lt;p&gt;These work when they complement a real test suite, not replace it.&lt;/p&gt;
&lt;h1&gt;
  
  
  Tags 🏷️
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;Testing&lt;/li&gt;
&lt;/ul&gt;
&lt;h1&gt;
  
  
  Level 🔋
&lt;/h1&gt;

&lt;p&gt;[x] Intermediate&lt;/p&gt;
&lt;h1&gt;
  
  
  Why the Bijection Is Important 🗺️
&lt;/h1&gt;

&lt;p&gt;Your test suite must map each test to a real behavior in the &lt;a href="https://dev.to/mcsee/what-is-wrong-with-software-5pa"&gt;MAPPER&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;When a test covers a line without verifying observable behavior, you break that &lt;a href="https://dev.to/mcsee/the-one-and-only-software-design-principle-3086"&gt;bijection&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Coverage tools only measure "lines executed."&lt;/p&gt;

&lt;p&gt;Chase the number without &lt;a href="https://dev.to/mcsee/the-one-and-only-software-design-principle-3086"&gt;bijection&lt;/a&gt; and your suite looks complete while missing real requirements entirely.&lt;/p&gt;
&lt;h1&gt;
  
  
  AI Generation 🤖
&lt;/h1&gt;

&lt;p&gt;AI code generators sometimes produce vanity coverage.&lt;/p&gt;

&lt;p&gt;Ask one to "add tests to reach 80% coverage," and it writes tests that call methods and assert trivially true facts.&lt;/p&gt;

&lt;p&gt;The metric goes up.&lt;/p&gt;

&lt;p&gt;Nothing gets verified.&lt;/p&gt;
&lt;h1&gt;
  
  
  AI Detection 🧲
&lt;/h1&gt;

&lt;p&gt;AI can detect vanity coverage, but only if you ask the right questions.&lt;/p&gt;

&lt;p&gt;Try: "Find tests with no real assertions" or "Find tests that pass when I delete the production method body."&lt;/p&gt;

&lt;p&gt;Without those prompts, most AI tools see a green test and call it good.&lt;/p&gt;
&lt;h2&gt;
  
  
  Try Them! 🛠
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;Remember: AI Assistants make lots of mistakes&lt;/em&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Suggested Prompt: Replace vanity coverage tests with tests that verify real behaviors and fail when production code is wrong&lt;/p&gt;
&lt;/blockquote&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Without Proper Instructions&lt;/th&gt;
&lt;th&gt;With Specific Instructions&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://chat.openai.com/?q=Correct+and+explain+this+code%3A+%60%60%60javascript%0D%0Adescribe%28%27BankAccount%27%2C+%28%29+%3D%3E+%7B%0D%0A++test%28%27deposit%27%2C+%28%29+%3D%3E+%7B%0D%0A++++const+account+%3D+new+BankAccount%28100%29%3B%0D%0A++++account.deposit%2850%29%3B%0D%0A++++%2F%2F+Only+checking+it+didn%27t+crash%0D%0A++++expect%28account%29.toBeDefined%28%29%3B%0D%0A++%7D%29%3B%0D%0A%0D%0A++test%28%27withdraw%27%2C+%28%29+%3D%3E+%7B%0D%0A++++const+account+%3D+new+BankAccount%28100%29%3B%0D%0A++++const+result+%3D+account.withdraw%2830%29%3B%0D%0A++++%2F%2F+No+assertion+about+the+result%21%0D%0A++%7D%29%3B%0D%0A%0D%0A++test%28%27transfer%27%2C+%28%29+%3D%3E+%7B%0D%0A++++const+source+%3D+new+BankAccount%28200%29%3B%0D%0A++++const+target+%3D+new+BankAccount%280%29%3B%0D%0A++++%2F%2F+Just+calling+the+method+to+%22cover%22+the+line%0D%0A++++source.transfer%2850%2C+target%29%3B%0D%0A++%7D%29%3B%0D%0A%7D%29%3B%0D%0A%60%60%60" rel="noopener noreferrer"&gt;ChatGPT&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://chat.openai.com/?q=Replace+vanity+coverage+tests+with+tests+that+verify+real+behaviors+and+fail+when+production+code+is+wrong%3A+%60%60%60javascript%0D%0Adescribe%28%27BankAccount%27%2C+%28%29+%3D%3E+%7B%0D%0A++test%28%27deposit%27%2C+%28%29+%3D%3E+%7B%0D%0A++++const+account+%3D+new+BankAccount%28100%29%3B%0D%0A++++account.deposit%2850%29%3B%0D%0A++++%2F%2F+Only+checking+it+didn%27t+crash%0D%0A++++expect%28account%29.toBeDefined%28%29%3B%0D%0A++%7D%29%3B%0D%0A%0D%0A++test%28%27withdraw%27%2C+%28%29+%3D%3E+%7B%0D%0A++++const+account+%3D+new+BankAccount%28100%29%3B%0D%0A++++const+result+%3D+account.withdraw%2830%29%3B%0D%0A++++%2F%2F+No+assertion+about+the+result%21%0D%0A++%7D%29%3B%0D%0A%0D%0A++test%28%27transfer%27%2C+%28%29+%3D%3E+%7B%0D%0A++++const+source+%3D+new+BankAccount%28200%29%3B%0D%0A++++const+target+%3D+new+BankAccount%280%29%3B%0D%0A++++%2F%2F+Just+calling+the+method+to+%22cover%22+the+line%0D%0A++++source.transfer%2850%2C+target%29%3B%0D%0A++%7D%29%3B%0D%0A%7D%29%3B%0D%0A%60%60%60" rel="noopener noreferrer"&gt;ChatGPT&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://claude.ai/new?q=Correct+and+explain+this+code%3A+%60%60%60javascript%0D%0Adescribe%28%27BankAccount%27%2C+%28%29+%3D%3E+%7B%0D%0A++test%28%27deposit%27%2C+%28%29+%3D%3E+%7B%0D%0A++++const+account+%3D+new+BankAccount%28100%29%3B%0D%0A++++account.deposit%2850%29%3B%0D%0A++++%2F%2F+Only+checking+it+didn%27t+crash%0D%0A++++expect%28account%29.toBeDefined%28%29%3B%0D%0A++%7D%29%3B%0D%0A%0D%0A++test%28%27withdraw%27%2C+%28%29+%3D%3E+%7B%0D%0A++++const+account+%3D+new+BankAccount%28100%29%3B%0D%0A++++const+result+%3D+account.withdraw%2830%29%3B%0D%0A++++%2F%2F+No+assertion+about+the+result%21%0D%0A++%7D%29%3B%0D%0A%0D%0A++test%28%27transfer%27%2C+%28%29+%3D%3E+%7B%0D%0A++++const+source+%3D+new+BankAccount%28200%29%3B%0D%0A++++const+target+%3D+new+BankAccount%280%29%3B%0D%0A++++%2F%2F+Just+calling+the+method+to+%22cover%22+the+line%0D%0A++++source.transfer%2850%2C+target%29%3B%0D%0A++%7D%29%3B%0D%0A%7D%29%3B%0D%0A%60%60%60" rel="noopener noreferrer"&gt;Claude&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://claude.ai/new?q=Replace+vanity+coverage+tests+with+tests+that+verify+real+behaviors+and+fail+when+production+code+is+wrong%3A+%60%60%60javascript%0D%0Adescribe%28%27BankAccount%27%2C+%28%29+%3D%3E+%7B%0D%0A++test%28%27deposit%27%2C+%28%29+%3D%3E+%7B%0D%0A++++const+account+%3D+new+BankAccount%28100%29%3B%0D%0A++++account.deposit%2850%29%3B%0D%0A++++%2F%2F+Only+checking+it+didn%27t+crash%0D%0A++++expect%28account%29.toBeDefined%28%29%3B%0D%0A++%7D%29%3B%0D%0A%0D%0A++test%28%27withdraw%27%2C+%28%29+%3D%3E+%7B%0D%0A++++const+account+%3D+new+BankAccount%28100%29%3B%0D%0A++++const+result+%3D+account.withdraw%2830%29%3B%0D%0A++++%2F%2F+No+assertion+about+the+result%21%0D%0A++%7D%29%3B%0D%0A%0D%0A++test%28%27transfer%27%2C+%28%29+%3D%3E+%7B%0D%0A++++const+source+%3D+new+BankAccount%28200%29%3B%0D%0A++++const+target+%3D+new+BankAccount%280%29%3B%0D%0A++++%2F%2F+Just+calling+the+method+to+%22cover%22+the+line%0D%0A++++source.transfer%2850%2C+target%29%3B%0D%0A++%7D%29%3B%0D%0A%7D%29%3B%0D%0A%60%60%60" rel="noopener noreferrer"&gt;Claude&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://www.perplexity.ai/?q=Correct+and+explain+this+code%3A+%60%60%60javascript%0D%0Adescribe%28%27BankAccount%27%2C+%28%29+%3D%3E+%7B%0D%0A++test%28%27deposit%27%2C+%28%29+%3D%3E+%7B%0D%0A++++const+account+%3D+new+BankAccount%28100%29%3B%0D%0A++++account.deposit%2850%29%3B%0D%0A++++%2F%2F+Only+checking+it+didn%27t+crash%0D%0A++++expect%28account%29.toBeDefined%28%29%3B%0D%0A++%7D%29%3B%0D%0A%0D%0A++test%28%27withdraw%27%2C+%28%29+%3D%3E+%7B%0D%0A++++const+account+%3D+new+BankAccount%28100%29%3B%0D%0A++++const+result+%3D+account.withdraw%2830%29%3B%0D%0A++++%2F%2F+No+assertion+about+the+result%21%0D%0A++%7D%29%3B%0D%0A%0D%0A++test%28%27transfer%27%2C+%28%29+%3D%3E+%7B%0D%0A++++const+source+%3D+new+BankAccount%28200%29%3B%0D%0A++++const+target+%3D+new+BankAccount%280%29%3B%0D%0A++++%2F%2F+Just+calling+the+method+to+%22cover%22+the+line%0D%0A++++source.transfer%2850%2C+target%29%3B%0D%0A++%7D%29%3B%0D%0A%7D%29%3B%0D%0A%60%60%60" rel="noopener noreferrer"&gt;Perplexity&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://www.perplexity.ai/?q=Replace+vanity+coverage+tests+with+tests+that+verify+real+behaviors+and+fail+when+production+code+is+wrong%3A+%60%60%60javascript%0D%0Adescribe%28%27BankAccount%27%2C+%28%29+%3D%3E+%7B%0D%0A++test%28%27deposit%27%2C+%28%29+%3D%3E+%7B%0D%0A++++const+account+%3D+new+BankAccount%28100%29%3B%0D%0A++++account.deposit%2850%29%3B%0D%0A++++%2F%2F+Only+checking+it+didn%27t+crash%0D%0A++++expect%28account%29.toBeDefined%28%29%3B%0D%0A++%7D%29%3B%0D%0A%0D%0A++test%28%27withdraw%27%2C+%28%29+%3D%3E+%7B%0D%0A++++const+account+%3D+new+BankAccount%28100%29%3B%0D%0A++++const+result+%3D+account.withdraw%2830%29%3B%0D%0A++++%2F%2F+No+assertion+about+the+result%21%0D%0A++%7D%29%3B%0D%0A%0D%0A++test%28%27transfer%27%2C+%28%29+%3D%3E+%7B%0D%0A++++const+source+%3D+new+BankAccount%28200%29%3B%0D%0A++++const+target+%3D+new+BankAccount%280%29%3B%0D%0A++++%2F%2F+Just+calling+the+method+to+%22cover%22+the+line%0D%0A++++source.transfer%2850%2C+target%29%3B%0D%0A++%7D%29%3B%0D%0A%7D%29%3B%0D%0A%60%60%60" rel="noopener noreferrer"&gt;Perplexity&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://www.bing.com/chat?showconv=1&amp;amp;sendquery=1&amp;amp;q=Correct+and+explain+this+code%3A+%60%60%60javascript%0D%0Adescribe%28%27BankAccount%27%2C+%28%29+%3D%3E+%7B%0D%0A++test%28%27deposit%27%2C+%28%29+%3D%3E+%7B%0D%0A++++const+account+%3D+new+BankAccount%28100%29%3B%0D%0A++++account.deposit%2850%29%3B%0D%0A++++%2F%2F+Only+checking+it+didn%27t+crash%0D%0A++++expect%28account%29.toBeDefined%28%29%3B%0D%0A++%7D%29%3B%0D%0A%0D%0A++test%28%27withdraw%27%2C+%28%29+%3D%3E+%7B%0D%0A++++const+account+%3D+new+BankAccount%28100%29%3B%0D%0A++++const+result+%3D+account.withdraw%2830%29%3B%0D%0A++++%2F%2F+No+assertion+about+the+result%21%0D%0A++%7D%29%3B%0D%0A%0D%0A++test%28%27transfer%27%2C+%28%29+%3D%3E+%7B%0D%0A++++const+source+%3D+new+BankAccount%28200%29%3B%0D%0A++++const+target+%3D+new+BankAccount%280%29%3B%0D%0A++++%2F%2F+Just+calling+the+method+to+%22cover%22+the+line%0D%0A++++source.transfer%2850%2C+target%29%3B%0D%0A++%7D%29%3B%0D%0A%7D%29%3B%0D%0A%60%60%60" rel="noopener noreferrer"&gt;Copilot&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://www.bing.com/chat?showconv=1&amp;amp;sendquery=1&amp;amp;q=Replace+vanity+coverage+tests+with+tests+that+verify+real+behaviors+and+fail+when+production+code+is+wrong%3A+%60%60%60javascript%0D%0Adescribe%28%27BankAccount%27%2C+%28%29+%3D%3E+%7B%0D%0A++test%28%27deposit%27%2C+%28%29+%3D%3E+%7B%0D%0A++++const+account+%3D+new+BankAccount%28100%29%3B%0D%0A++++account.deposit%2850%29%3B%0D%0A++++%2F%2F+Only+checking+it+didn%27t+crash%0D%0A++++expect%28account%29.toBeDefined%28%29%3B%0D%0A++%7D%29%3B%0D%0A%0D%0A++test%28%27withdraw%27%2C+%28%29+%3D%3E+%7B%0D%0A++++const+account+%3D+new+BankAccount%28100%29%3B%0D%0A++++const+result+%3D+account.withdraw%2830%29%3B%0D%0A++++%2F%2F+No+assertion+about+the+result%21%0D%0A++%7D%29%3B%0D%0A%0D%0A++test%28%27transfer%27%2C+%28%29+%3D%3E+%7B%0D%0A++++const+source+%3D+new+BankAccount%28200%29%3B%0D%0A++++const+target+%3D+new+BankAccount%280%29%3B%0D%0A++++%2F%2F+Just+calling+the+method+to+%22cover%22+the+line%0D%0A++++source.transfer%2850%2C+target%29%3B%0D%0A++%7D%29%3B%0D%0A%7D%29%3B%0D%0A%60%60%60" rel="noopener noreferrer"&gt;Copilot&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://you.com/search?q=Correct+and+explain+this+code%3A+%60%60%60javascript%0D%0Adescribe%28%27BankAccount%27%2C+%28%29+%3D%3E+%7B%0D%0A++test%28%27deposit%27%2C+%28%29+%3D%3E+%7B%0D%0A++++const+account+%3D+new+BankAccount%28100%29%3B%0D%0A++++account.deposit%2850%29%3B%0D%0A++++%2F%2F+Only+checking+it+didn%27t+crash%0D%0A++++expect%28account%29.toBeDefined%28%29%3B%0D%0A++%7D%29%3B%0D%0A%0D%0A++test%28%27withdraw%27%2C+%28%29+%3D%3E+%7B%0D%0A++++const+account+%3D+new+BankAccount%28100%29%3B%0D%0A++++const+result+%3D+account.withdraw%2830%29%3B%0D%0A++++%2F%2F+No+assertion+about+the+result%21%0D%0A++%7D%29%3B%0D%0A%0D%0A++test%28%27transfer%27%2C+%28%29+%3D%3E+%7B%0D%0A++++const+source+%3D+new+BankAccount%28200%29%3B%0D%0A++++const+target+%3D+new+BankAccount%280%29%3B%0D%0A++++%2F%2F+Just+calling+the+method+to+%22cover%22+the+line%0D%0A++++source.transfer%2850%2C+target%29%3B%0D%0A++%7D%29%3B%0D%0A%7D%29%3B%0D%0A%60%60%60" rel="noopener noreferrer"&gt;You&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://you.com/search?q=Replace+vanity+coverage+tests+with+tests+that+verify+real+behaviors+and+fail+when+production+code+is+wrong%3A+%60%60%60javascript%0D%0Adescribe%28%27BankAccount%27%2C+%28%29+%3D%3E+%7B%0D%0A++test%28%27deposit%27%2C+%28%29+%3D%3E+%7B%0D%0A++++const+account+%3D+new+BankAccount%28100%29%3B%0D%0A++++account.deposit%2850%29%3B%0D%0A++++%2F%2F+Only+checking+it+didn%27t+crash%0D%0A++++expect%28account%29.toBeDefined%28%29%3B%0D%0A++%7D%29%3B%0D%0A%0D%0A++test%28%27withdraw%27%2C+%28%29+%3D%3E+%7B%0D%0A++++const+account+%3D+new+BankAccount%28100%29%3B%0D%0A++++const+result+%3D+account.withdraw%2830%29%3B%0D%0A++++%2F%2F+No+assertion+about+the+result%21%0D%0A++%7D%29%3B%0D%0A%0D%0A++test%28%27transfer%27%2C+%28%29+%3D%3E+%7B%0D%0A++++const+source+%3D+new+BankAccount%28200%29%3B%0D%0A++++const+target+%3D+new+BankAccount%280%29%3B%0D%0A++++%2F%2F+Just+calling+the+method+to+%22cover%22+the+line%0D%0A++++source.transfer%2850%2C+target%29%3B%0D%0A++%7D%29%3B%0D%0A%7D%29%3B%0D%0A%60%60%60" rel="noopener noreferrer"&gt;You&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://gemini.google.com/" rel="noopener noreferrer"&gt;Gemini&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://gemini.google.com/" rel="noopener noreferrer"&gt;Gemini&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://chat.deepseek.com/" rel="noopener noreferrer"&gt;DeepSeek&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://chat.deepseek.com/" rel="noopener noreferrer"&gt;DeepSeek&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://www.meta.ai/chat" rel="noopener noreferrer"&gt;Meta AI&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://www.meta.ai/" rel="noopener noreferrer"&gt;Meta AI&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://grok.com/" rel="noopener noreferrer"&gt;Grok&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://grok.com/" rel="noopener noreferrer"&gt;Grok&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://chat.qwen.ai/" rel="noopener noreferrer"&gt;Qwen&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://chat.qwen.ai/" rel="noopener noreferrer"&gt;Qwen&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;h1&gt;
  
  
  Conclusion 🏁
&lt;/h1&gt;

&lt;p&gt;Coverage is a signal, not a goal.&lt;/p&gt;

&lt;p&gt;When you treat it as a goal, you create vanity coverage that hides real &lt;a href="https://dev.to/mcsee/stop-calling-them-bugs-57gl"&gt;defects&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Use mutation testing to discover what your suite actually verifies.&lt;/p&gt;

&lt;p&gt;Write tests that describe real behaviors, not tests that execute lines.&lt;/p&gt;
&lt;h1&gt;
  
  
  Relations 👩‍❤️‍💋‍👨
&lt;/h1&gt;


&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/mcsee/code-smell-104-assert-true-20db" class="crayons-story__hidden-navigation-link"&gt;Code Smell 104 - Assert True&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/mcsee" class="crayons-avatar  crayons-avatar--l  "&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" alt="mcsee profile" class="crayons-avatar__image" width="800" height="533"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/mcsee" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Maxi Contieri
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Maxi Contieri
                
              
              &lt;div id="story-author-preview-content-904367" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/mcsee" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" class="crayons-avatar__image" alt="" width="800" height="533"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Maxi Contieri&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/mcsee/code-smell-104-assert-true-20db" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Nov 21 '21&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/mcsee/code-smell-104-assert-true-20db" id="article-link-904367"&gt;
          Code Smell 104 - Assert True
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/poo"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;poo&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/testing"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;testing&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/tdd"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;tdd&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/cleancode"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;cleancode&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/mcsee/code-smell-104-assert-true-20db" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;4&lt;span class="hidden s:inline"&gt;&amp;nbsp;reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/mcsee/code-smell-104-assert-true-20db#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              &lt;span class="hidden s:inline"&gt;Add&amp;nbsp;Comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            2 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;


&lt;/div&gt;
&lt;br&gt;



&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/mcsee/code-smell-76-generic-assertions-31f1" class="crayons-story__hidden-navigation-link"&gt;Code Smell 76 - Generic Assertions&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/mcsee" class="crayons-avatar  crayons-avatar--l  "&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" alt="mcsee profile" class="crayons-avatar__image" width="800" height="533"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/mcsee" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Maxi Contieri
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Maxi Contieri
                
              
              &lt;div id="story-author-preview-content-720090" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/mcsee" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" class="crayons-avatar__image" alt="" width="800" height="533"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Maxi Contieri&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/mcsee/code-smell-76-generic-assertions-31f1" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Jun 7 '21&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/mcsee/code-smell-76-generic-assertions-31f1" id="article-link-720090"&gt;
          Code Smell 76 - Generic Assertions
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/webdev"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;webdev&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/testing"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;testing&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/testdev"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;testdev&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/tutorial"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;tutorial&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/mcsee/code-smell-76-generic-assertions-31f1" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/multi-unicorn-b44d6f8c23cdd00964192bedc38af3e82463978aa611b4365bd33a0f1f4f3e97.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;5&lt;span class="hidden s:inline"&gt;&amp;nbsp;reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/mcsee/code-smell-76-generic-assertions-31f1#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              &lt;span class="hidden s:inline"&gt;Add&amp;nbsp;Comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            2 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;



&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/mcsee/code-smell-175-changes-without-coverage-120i" class="crayons-story__hidden-navigation-link"&gt;Code Smell 175 - Changes Without Coverage&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/mcsee" class="crayons-avatar  crayons-avatar--l  "&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" alt="mcsee profile" class="crayons-avatar__image" width="800" height="533"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/mcsee" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Maxi Contieri
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Maxi Contieri
                
              
              &lt;div id="story-author-preview-content-1237745" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/mcsee" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" class="crayons-avatar__image" alt="" width="800" height="533"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Maxi Contieri&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/mcsee/code-smell-175-changes-without-coverage-120i" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Oct 31 '22&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/mcsee/code-smell-175-changes-without-coverage-120i" id="article-link-1237745"&gt;
          Code Smell 175 - Changes Without Coverage
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/javascript"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;javascript&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/webdev"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;webdev&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/beginners"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;beginners&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/programming"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;programming&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/mcsee/code-smell-175-changes-without-coverage-120i" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;9&lt;span class="hidden s:inline"&gt;&amp;nbsp;reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/mcsee/code-smell-175-changes-without-coverage-120i#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              &lt;span class="hidden s:inline"&gt;Add&amp;nbsp;Comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            2 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;



&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/mcsee/code-smell-30-mocking-business-3glm" class="crayons-story__hidden-navigation-link"&gt;Code Smell 30 - Mocking Business&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/mcsee" class="crayons-avatar  crayons-avatar--l  "&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" alt="mcsee profile" class="crayons-avatar__image" width="800" height="533"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/mcsee" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Maxi Contieri
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Maxi Contieri
                
              
              &lt;div id="story-author-preview-content-520942" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/mcsee" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" class="crayons-avatar__image" alt="" width="800" height="533"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Maxi Contieri&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/mcsee/code-smell-30-mocking-business-3glm" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Nov 21 '20&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/mcsee/code-smell-30-mocking-business-3glm" id="article-link-520942"&gt;
          Code Smell 30 - Mocking Business
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/testing"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;testing&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/webdev"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;webdev&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/programming"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;programming&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/tdd"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;tdd&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/mcsee/code-smell-30-mocking-business-3glm" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/multi-unicorn-b44d6f8c23cdd00964192bedc38af3e82463978aa611b4365bd33a0f1f4f3e97.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;3&lt;span class="hidden s:inline"&gt;&amp;nbsp;reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/mcsee/code-smell-30-mocking-business-3glm#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              &lt;span class="hidden s:inline"&gt;Add&amp;nbsp;Comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            1 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;



&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/mcsee/code-smell-203-irrelevant-test-information-3e1h" class="crayons-story__hidden-navigation-link"&gt;Code Smell 203 - Irrelevant Test Information&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/mcsee" class="crayons-avatar  crayons-avatar--l  "&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" alt="mcsee profile" class="crayons-avatar__image" width="800" height="533"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/mcsee" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Maxi Contieri
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Maxi Contieri
                
              
              &lt;div id="story-author-preview-content-1415196" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/mcsee" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" class="crayons-avatar__image" alt="" width="800" height="533"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Maxi Contieri&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/mcsee/code-smell-203-irrelevant-test-information-3e1h" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Mar 26 '23&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/mcsee/code-smell-203-irrelevant-test-information-3e1h" id="article-link-1415196"&gt;
          Code Smell 203 - Irrelevant Test Information
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/webdev"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;webdev&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/beginners"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;beginners&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/programming"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;programming&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/python"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;python&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/mcsee/code-smell-203-irrelevant-test-information-3e1h" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;2&lt;span class="hidden s:inline"&gt;&amp;nbsp;reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/mcsee/code-smell-203-irrelevant-test-information-3e1h#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              &lt;span class="hidden s:inline"&gt;Add&amp;nbsp;Comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            2 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


&lt;h1&gt;
  
  
  More Information 📕
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://en.wikipedia.org/wiki/Mutation_testing" rel="noopener noreferrer"&gt;Mutation Testing&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://martinfowler.com/bliki/TestCoverage.html" rel="noopener noreferrer"&gt;Test Coverage Is Not Enough&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://stryker-mutator.io/" rel="noopener noreferrer"&gt;Stryker Mutation Testing&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Quote
&lt;/h1&gt;

&lt;blockquote&gt;
&lt;p&gt;The most dangerous kind of waste is the waste we don't recognize.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;em&gt;Shigeo Shingo&lt;/em&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Disclaimer 📘
&lt;/h1&gt;

&lt;p&gt;Code Smells are my &lt;a href="https://dev.to/mcsee/i-wrote-more-than-90-articles-on-2021-here-is-what-i-learned-1n3a"&gt;opinion&lt;/a&gt;.&lt;/p&gt;

&lt;h1&gt;
  
  
  Credits 🙏
&lt;/h1&gt;

&lt;p&gt;Photo by &lt;a href="https://unsplash.com/es/@jamie452" rel="noopener noreferrer"&gt;Jamie Street&lt;/a&gt; on &lt;a href="https://unsplash.com/es/fotos/foto-macro-de-tres-brochas-de-maquillaje-marrones-JBQdeLezIxQ" rel="noopener noreferrer"&gt;Unsplash&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;This article is part of the CodeSmell Series.&lt;/p&gt;


&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/mcsee/how-to-find-the-stinky-parts-of-your-code-1dbc" class="crayons-story__hidden-navigation-link"&gt;How to Find the Stinky parts of your Code&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/mcsee" class="crayons-avatar  crayons-avatar--l  "&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" alt="mcsee profile" class="crayons-avatar__image" width="800" height="533"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/mcsee" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Maxi Contieri
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Maxi Contieri
                
              
              &lt;div id="story-author-preview-content-702108" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/mcsee" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" class="crayons-avatar__image" alt="" width="800" height="533"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Maxi Contieri&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/mcsee/how-to-find-the-stinky-parts-of-your-code-1dbc" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;May 21 '21&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/mcsee/how-to-find-the-stinky-parts-of-your-code-1dbc" id="article-link-702108"&gt;
          How to Find the Stinky parts of your Code
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/codenewbie"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;codenewbie&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/tutorial"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;tutorial&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/codequality"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;codequality&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/beginners"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;beginners&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/mcsee/how-to-find-the-stinky-parts-of-your-code-1dbc" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/multi-unicorn-b44d6f8c23cdd00964192bedc38af3e82463978aa611b4365bd33a0f1f4f3e97.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;23&lt;span class="hidden s:inline"&gt;&amp;nbsp;reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/mcsee/how-to-find-the-stinky-parts-of-your-code-1dbc#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              &lt;span class="hidden s:inline"&gt;Add&amp;nbsp;Comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            14 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


</description>
      <category>webdev</category>
      <category>programming</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>AI Coding Tip 025 - Pair Every Skill With a Pitfalls File</title>
      <dc:creator>Maxi Contieri</dc:creator>
      <pubDate>Tue, 23 Jun 2026 11:00:00 +0000</pubDate>
      <link>https://dev.to/mcsee/ai-coding-tip-025-pair-every-skill-with-a-pitfalls-file-5927</link>
      <guid>https://dev.to/mcsee/ai-coding-tip-025-pair-every-skill-with-a-pitfalls-file-5927</guid>
      <description>&lt;p&gt;&lt;em&gt;The happy path isn't enough.&lt;/em&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;TL;DR: Add a PITFALLS.md next to every SKILL.md so your AI never repeats the same mistake twice.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h1&gt;
  
  
  Common Mistake ❌
&lt;/h1&gt;

&lt;p&gt;You write a great &lt;a href="https://dev.to/mcsee/ai-coding-tip-004-use-modular-skills-g97"&gt;SKILL.md&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The AI follows it well most of the time.&lt;/p&gt;

&lt;p&gt;Then it does something wrong.&lt;/p&gt;

&lt;p&gt;You correct it in the conversation.&lt;/p&gt;

&lt;p&gt;Next &lt;a href="https://dev.to/mcsee/ai-coding-tip-005-keep-context-fresh-220e"&gt;session&lt;/a&gt;, the AI does the same wrong thing again.&lt;/p&gt;

&lt;p&gt;You never wrote it down.&lt;/p&gt;

&lt;h1&gt;
  
  
  Problems Addressed 😔
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Hard-won corrections disappear when the &lt;a href="https://dev.to/mcsee/ai-coding-tip-005-keep-context-fresh-220e"&gt;session ends&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Your SKILL.md grows noisy when you add every edge case to it&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The AI repeats the same mistakes across &lt;a href="https://dev.to/mcsee/ai-coding-tip-005-keep-context-fresh-220e"&gt;sessions&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Silent errors look correct until they cause real damage&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;You spend time re-teaching lessons you already taught&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  How to Do It 🛠️
&lt;/h1&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Create a &lt;code&gt;PITFALLS.md&lt;/code&gt; file in the same folder as your &lt;code&gt;SKILL.md&lt;/code&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;After each &lt;a href="https://dev.to/mcsee/ai-coding-tip-005-keep-context-fresh-220e"&gt;session&lt;/a&gt;, add one entry for each thing the AI got wrong.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Write each entry with three parts: the trigger, the wrong behavior, and the correct behavior.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Reference &lt;code&gt;PITFALLS.md&lt;/code&gt; from your &lt;code&gt;SKILL.md&lt;/code&gt; so the AI reads it at the start of every session.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Treat it as append-only: never delete entries, only add new ones.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Keep the happy path and the pitfalls apart.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h1&gt;
  
  
  Benefits 🎯
&lt;/h1&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Clean separation:&lt;/strong&gt; Your SKILL.md stays focused on the happy path while PITFALLS.md handles the exceptions.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Accumulated memory:&lt;/strong&gt; The AI starts every session knowing what failed before, without you repeating it.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Faster iteration:&lt;/strong&gt; You stop re-explaining corrections you've already made.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Explicit dark knowledge:&lt;/strong&gt; You write down &lt;a href="https://dev.to/mcsee/ai-coding-tip-021-avoid-comprehension-debt-edm"&gt;lessons that lived only in your head&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Compounding improvement:&lt;/strong&gt; Your skills get better with every mistake the AI makes, not worse.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Skill brevity:&lt;/strong&gt; You keep the skill short and focused, with &lt;a href="https://dev.to/mcsee/ai-coding-tip-013-use-progressive-disclosure-102a"&gt;progressive disclosure&lt;/a&gt; loading pitfalls only as a &lt;a href="https://dev.to/mcsee/ai-coding-tip-024-force-a-criteria-check-before-the-task-ends-51ij"&gt;final checklist&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h1&gt;
  
  
  Context 🧠
&lt;/h1&gt;

&lt;p&gt;SKILL.md tells the AI what to do.&lt;/p&gt;

&lt;p&gt;PITFALLS.md tells the AI what not to do.&lt;/p&gt;

&lt;p&gt;They're complementary, not competing.&lt;/p&gt;

&lt;p&gt;Anthropic's own &lt;a href="https://claude.com/blog/lessons-from-building-claude-code-how-we-use-skills" rel="noopener noreferrer"&gt;skill authors&lt;/a&gt; describe the pitfalls section as "the highest-signal content in any skill."&lt;/p&gt;

&lt;p&gt;When that section grows too large to stay inside SKILL.md, it earns its own file.&lt;/p&gt;

&lt;p&gt;Think of PITFALLS.md as the scar tissue that lives next to the blueprint.&lt;/p&gt;

&lt;p&gt;The same way you &lt;a href="https://dev.to/mcsee/ai-coding-tip-011-initialize-agentsmd-nh7"&gt;initialize an AGENTS.md&lt;/a&gt; for a project, you pair every skill with its failure log.&lt;/p&gt;

&lt;p&gt;When you &lt;a href="https://dev.to/mcsee/ai-coding-tip-004-use-modular-skills-g97"&gt;use modular skills&lt;/a&gt;, each skill gets its own folder.&lt;/p&gt;

&lt;p&gt;That &lt;a href="https://dev.to/mcsee/ai-coding-tip-014-use-nested-agentsmd-files-3iec"&gt;folder&lt;/a&gt; is the right place for PITFALLS.md.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Remember a Skill is a folder with documentation and scripts, not a single file.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The same instinct drives &lt;a href="https://dev.to/mcsee/ai-coding-tip-016-feed-your-pr-lessons-into-the-ai-brain-3al9"&gt;feeding pull request lessons back into the AI brain&lt;/a&gt;: you capture what went wrong so the AI doesn't repeat it.&lt;/p&gt;

&lt;p&gt;PITFALLS.md applies that exact pattern to individual skills.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://dev.to/mcsee/ai-coding-tip-020-create-a-second-brain-lgp"&gt;Each skill builds its own second brain&lt;/a&gt; of failure memory.&lt;/p&gt;

&lt;p&gt;This principle has a long history in good programming practices.&lt;/p&gt;

&lt;p&gt;The &lt;a href="https://dev.to/mcsee/code-smell-73-exceptions-for-expected-cases-504c"&gt;same separation principle applies to code&lt;/a&gt;: keep your normal flow in one place and your exceptional cases in another.&lt;/p&gt;

&lt;p&gt;Mixing them creates noise, hides intent, and makes maintenance harder.&lt;/p&gt;

&lt;p&gt;SKILL.md and PITFALLS.md apply that discipline to AI instructions.&lt;/p&gt;

&lt;p&gt;Many AI Coding Tips find their roots in established programming principles.&lt;/p&gt;

&lt;p&gt;When you &lt;a href="https://dev.to/mcsee/ai-coding-tip-003-force-read-only-planning-1d1m"&gt;separate concerns&lt;/a&gt; in your code, you separate them in your prompts too.&lt;/p&gt;

&lt;h2&gt;
  
  
  Prompt Reference 📝
&lt;/h2&gt;

&lt;h2&gt;
  
  
  Bad Prompt 🚫
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;Write a SKILL.md for validating markdown articles.
Check for required sections and formatting rules.
If something's wrong, we'll fix it in the chat.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h2&gt;
  
  
  Good Prompt 👉
&lt;/h2&gt;




&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;Write a SKILL.md for validating markdown articles.
Check for required sections and formatting rules.

Also create a PITFALLS.md in the same folder.
Add this first entry:

&lt;span class="gu"&gt;## Don't use regex to count H2 sections&lt;/span&gt;
Trigger: counting sections by heading level
Wrong: regex-based heading detection (/^##/m)
Correct: match section names explicitly by string
Reason: code blocks with # fool regex heading counters

Reference PITFALLS.md at the top of your SKILL.md.
The AI loads it at the start of every session.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h1&gt;
  
  
  Considerations ⚠️
&lt;/h1&gt;

&lt;p&gt;Keep each entry short: trigger, wrong behavior, correct behavior.&lt;/p&gt;

&lt;p&gt;Don't delete entries.&lt;/p&gt;

&lt;p&gt;Even solved pitfalls can come back after a skill update.&lt;/p&gt;

&lt;p&gt;Review PITFALLS.md when you update SKILL.md to check if any entries became obsolete.&lt;/p&gt;
&lt;h1&gt;
  
  
  Type 📝
&lt;/h1&gt;

&lt;p&gt;[X] Semi-Automatic&lt;/p&gt;
&lt;h1&gt;
  
  
  Limitations ⚠️
&lt;/h1&gt;

&lt;p&gt;PITFALLS.md only helps if the AI reads it.&lt;/p&gt;

&lt;p&gt;Always reference it explicitly inside your SKILL.md so the AI loads it automatically.&lt;/p&gt;
&lt;h1&gt;
  
  
  Level 🔋
&lt;/h1&gt;

&lt;p&gt;[X] Intermediate&lt;/p&gt;
&lt;h1&gt;
  
  
  Tags 🏷️
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;Knowledge Management&lt;/li&gt;
&lt;/ul&gt;
&lt;h1&gt;
  
  
  Related Tips 🔗
&lt;/h1&gt;


&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/mcsee/ai-coding-tip-004-use-modular-skills-g97" class="crayons-story__hidden-navigation-link"&gt;AI Coding Tip 004 - Use Modular Skills&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/mcsee" class="crayons-avatar  crayons-avatar--l  "&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" alt="mcsee profile" class="crayons-avatar__image" width="800" height="533"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/mcsee" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Maxi Contieri
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Maxi Contieri
                
              
              &lt;div id="story-author-preview-content-3200068" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/mcsee" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" class="crayons-avatar__image" alt="" width="800" height="533"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Maxi Contieri&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/mcsee/ai-coding-tip-004-use-modular-skills-g97" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Jan 27&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/mcsee/ai-coding-tip-004-use-modular-skills-g97" id="article-link-3200068"&gt;
          AI Coding Tip 004 - Use Modular Skills
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/webdev"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;webdev&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/programming"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;programming&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/beginners"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;beginners&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/mcsee/ai-coding-tip-004-use-modular-skills-g97" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/multi-unicorn-b44d6f8c23cdd00964192bedc38af3e82463978aa611b4365bd33a0f1f4f3e97.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;3&lt;span class="hidden s:inline"&gt;&amp;nbsp;reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/mcsee/ai-coding-tip-004-use-modular-skills-g97#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              &lt;span class="hidden s:inline"&gt;Add&amp;nbsp;Comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            4 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;


&lt;/div&gt;
&lt;br&gt;



&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/mcsee/ai-coding-tip-005-keep-context-fresh-220e" class="crayons-story__hidden-navigation-link"&gt;AI Coding Tip 005 - Keep Context Fresh&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/mcsee" class="crayons-avatar  crayons-avatar--l  "&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" alt="mcsee profile" class="crayons-avatar__image" width="800" height="533"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/mcsee" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Maxi Contieri
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Maxi Contieri
                
              
              &lt;div id="story-author-preview-content-3226533" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/mcsee" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" class="crayons-avatar__image" alt="" width="800" height="533"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Maxi Contieri&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/mcsee/ai-coding-tip-005-keep-context-fresh-220e" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Feb 4&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/mcsee/ai-coding-tip-005-keep-context-fresh-220e" id="article-link-3226533"&gt;
          AI Coding Tip 005 - Keep Context Fresh
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/webdev"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;webdev&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/programming"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;programming&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/tutorial"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;tutorial&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
            &lt;a href="https://dev.to/mcsee/ai-coding-tip-005-keep-context-fresh-220e#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              &lt;span class="hidden s:inline"&gt;Add&amp;nbsp;Comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            4 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;



&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/mcsee/ai-coding-tip-011-initialize-agentsmd-nh7" class="crayons-story__hidden-navigation-link"&gt;AI Coding Tip 011 - Initialize Agents.md&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/mcsee" class="crayons-avatar  crayons-avatar--l  "&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" alt="mcsee profile" class="crayons-avatar__image" width="800" height="533"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/mcsee" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Maxi Contieri
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Maxi Contieri
                
              
              &lt;div id="story-author-preview-content-3369224" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/mcsee" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" class="crayons-avatar__image" alt="" width="800" height="533"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Maxi Contieri&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/mcsee/ai-coding-tip-011-initialize-agentsmd-nh7" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Mar 18&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/mcsee/ai-coding-tip-011-initialize-agentsmd-nh7" id="article-link-3369224"&gt;
          AI Coding Tip 011 - Initialize Agents.md
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/programming"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;programming&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/mcsee/ai-coding-tip-011-initialize-agentsmd-nh7" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;1&lt;span class="hidden s:inline"&gt;&amp;nbsp;reaction&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/mcsee/ai-coding-tip-011-initialize-agentsmd-nh7#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              &lt;span class="hidden s:inline"&gt;Add&amp;nbsp;Comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            3 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;



&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/mcsee/ai-coding-tip-013-use-progressive-disclosure-102a" class="crayons-story__hidden-navigation-link"&gt;AI Coding Tip 013 - Use Progressive Disclosure&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/mcsee" class="crayons-avatar  crayons-avatar--l  "&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" alt="mcsee profile" class="crayons-avatar__image" width="800" height="533"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/mcsee" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Maxi Contieri
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Maxi Contieri
                
              
              &lt;div id="story-author-preview-content-3425913" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/mcsee" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" class="crayons-avatar__image" alt="" width="800" height="533"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Maxi Contieri&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/mcsee/ai-coding-tip-013-use-progressive-disclosure-102a" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Mar 31&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/mcsee/ai-coding-tip-013-use-progressive-disclosure-102a" id="article-link-3425913"&gt;
          AI Coding Tip 013 - Use Progressive Disclosure
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/coding"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;coding&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/llm"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;llm&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/productivity"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;productivity&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/mcsee/ai-coding-tip-013-use-progressive-disclosure-102a" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;3&lt;span class="hidden s:inline"&gt;&amp;nbsp;reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/mcsee/ai-coding-tip-013-use-progressive-disclosure-102a#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              1&lt;span class="hidden s:inline"&gt;&amp;nbsp;comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            5 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;



&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/mcsee/ai-coding-tip-016-feed-your-pr-lessons-into-the-ai-brain-3al9" class="crayons-story__hidden-navigation-link"&gt;AI Coding Tip 016 - Feed Your PR Lessons into the AI Brain&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/mcsee" class="crayons-avatar  crayons-avatar--l  "&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" alt="mcsee profile" class="crayons-avatar__image" width="800" height="533"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/mcsee" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Maxi Contieri
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Maxi Contieri
                
              
              &lt;div id="story-author-preview-content-3505365" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/mcsee" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" class="crayons-avatar__image" alt="" width="800" height="533"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Maxi Contieri&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/mcsee/ai-coding-tip-016-feed-your-pr-lessons-into-the-ai-brain-3al9" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Apr 21&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/mcsee/ai-coding-tip-016-feed-your-pr-lessons-into-the-ai-brain-3al9" id="article-link-3505365"&gt;
          AI Coding Tip 016 - Feed Your PR Lessons into the AI Brain
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/programming"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;programming&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/mcsee/ai-coding-tip-016-feed-your-pr-lessons-into-the-ai-brain-3al9" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;4&lt;span class="hidden s:inline"&gt;&amp;nbsp;reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/mcsee/ai-coding-tip-016-feed-your-pr-lessons-into-the-ai-brain-3al9#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              &lt;span class="hidden s:inline"&gt;Add&amp;nbsp;Comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            6 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;



&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/mcsee/ai-coding-tip-020-create-a-second-brain-lgp" class="crayons-story__hidden-navigation-link"&gt;AI Coding Tip 020 - Create a Second Brain&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/mcsee" class="crayons-avatar  crayons-avatar--l  "&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" alt="mcsee profile" class="crayons-avatar__image" width="800" height="533"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/mcsee" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Maxi Contieri
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Maxi Contieri
                
              
              &lt;div id="story-author-preview-content-3688245" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/mcsee" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" class="crayons-avatar__image" alt="" width="800" height="533"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Maxi Contieri&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/mcsee/ai-coding-tip-020-create-a-second-brain-lgp" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;May 19&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/mcsee/ai-coding-tip-020-create-a-second-brain-lgp" id="article-link-3688245"&gt;
          AI Coding Tip 020 - Create a Second Brain
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/webdev"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;webdev&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/productivity"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;productivity&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/programming"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;programming&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/mcsee/ai-coding-tip-020-create-a-second-brain-lgp" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;1&lt;span class="hidden s:inline"&gt;&amp;nbsp;reaction&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/mcsee/ai-coding-tip-020-create-a-second-brain-lgp#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              &lt;span class="hidden s:inline"&gt;Add&amp;nbsp;Comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            8 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;



&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/mcsee/ai-coding-tip-024-force-a-criteria-check-before-the-task-ends-51ij" class="crayons-story__hidden-navigation-link"&gt;AI Coding Tip 024 - Force a Criteria Check Before the Task Ends&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/mcsee" class="crayons-avatar  crayons-avatar--l  "&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" alt="mcsee profile" class="crayons-avatar__image" width="800" height="533"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/mcsee" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Maxi Contieri
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Maxi Contieri
                
              
              &lt;div id="story-author-preview-content-3887200" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/mcsee" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" class="crayons-avatar__image" alt="" width="800" height="533"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Maxi Contieri&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/mcsee/ai-coding-tip-024-force-a-criteria-check-before-the-task-ends-51ij" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Jun 16&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/mcsee/ai-coding-tip-024-force-a-criteria-check-before-the-task-ends-51ij" id="article-link-3887200"&gt;
          AI Coding Tip 024 - Force a Criteria Check Before the Task Ends
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/webdev"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;webdev&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/programming"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;programming&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/productivity"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;productivity&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/mcsee/ai-coding-tip-024-force-a-criteria-check-before-the-task-ends-51ij" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;2&lt;span class="hidden s:inline"&gt;&amp;nbsp;reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/mcsee/ai-coding-tip-024-force-a-criteria-check-before-the-task-ends-51ij#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              &lt;span class="hidden s:inline"&gt;Add&amp;nbsp;Comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            6 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


&lt;h1&gt;
  
  
  Conclusion 🏁
&lt;/h1&gt;

&lt;p&gt;Your SKILL.md is the blueprint.&lt;/p&gt;

&lt;p&gt;Your PITFALLS.md is the scar tissue.&lt;/p&gt;

&lt;p&gt;You need both.&lt;/p&gt;

&lt;h1&gt;
  
  
  More Information ℹ️
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://claude.com/blog/lessons-from-building-claude-code-how-we-use-skills" rel="noopener noreferrer"&gt;Lessons from building Claude Code: How we use skills&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://research.perplexity.ai/articles/designing-refining-and-maintaining-agent-skills-at-perplexity" rel="noopener noreferrer"&gt;Designing, Refining, and Maintaining Agent Skills at Perplexity&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://dev.to/mcsee/code-smell-73-exceptions-for-expected-cases-504c"&gt;Code Smell 73 - Exceptions for Expected Cases&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Also Known As 🎭
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;Negative-Knowledge-File&lt;/li&gt;
&lt;li&gt;Skill-Shadow-File&lt;/li&gt;
&lt;li&gt;Failure-Memory-Companion&lt;/li&gt;
&lt;li&gt;Anti-Pattern-Log&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Disclaimer 📢
&lt;/h1&gt;

&lt;p&gt;The views expressed here are my own.&lt;/p&gt;

&lt;p&gt;I am a human who writes as best as possible for other humans. &lt;/p&gt;

&lt;p&gt;I use AI proofreading tools to improve some texts.&lt;/p&gt;

&lt;p&gt;I welcome constructive criticism and dialogue.&lt;/p&gt;

&lt;p&gt;I shape these insights through 30 years in the software industry, 25 years of teaching, and writing over 500 articles and a book.&lt;/p&gt;




&lt;p&gt;This article is part of the &lt;em&gt;AI Coding Tip&lt;/em&gt; series.&lt;/p&gt;


&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/mcsee/ai-coding-tips-118n" class="crayons-story__hidden-navigation-link"&gt;AI Coding Tips&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/mcsee" class="crayons-avatar  crayons-avatar--l  "&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" alt="mcsee profile" class="crayons-avatar__image" width="800" height="533"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/mcsee" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Maxi Contieri
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Maxi Contieri
                
              
              &lt;div id="story-author-preview-content-3187836" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/mcsee" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&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%2Fuser%2Fprofile_image%2F366059%2F44d4a869-bb26-4b8e-aa73-6e596b4b4b8a.jpg" class="crayons-avatar__image" alt="" width="800" height="533"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Maxi Contieri&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/mcsee/ai-coding-tips-118n" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Jan 21&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/mcsee/ai-coding-tips-118n" id="article-link-3187836"&gt;
          AI Coding Tips
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/webdev"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;webdev&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/programming"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;programming&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/beginners"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;beginners&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
            &lt;a href="https://dev.to/mcsee/ai-coding-tips-118n#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              1&lt;span class="hidden s:inline"&gt;&amp;nbsp;comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            2 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


</description>
      <category>ai</category>
      <category>webdev</category>
      <category>programming</category>
      <category>tutorial</category>
    </item>
  </channel>
</rss>
