<?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: jaosnmayn</title>
    <description>The latest articles on DEV Community by jaosnmayn (@jason_romines_704550b9353).</description>
    <link>https://dev.to/jason_romines_704550b9353</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%2F4232000%2F39df69bb-2682-42ca-99c9-4f879c5f768c.png</url>
      <title>DEV Community: jaosnmayn</title>
      <link>https://dev.to/jason_romines_704550b9353</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/jason_romines_704550b9353"/>
    <language>en</language>
    <item>
      <title>3 Checks Before Shipping an AI-Built Website</title>
      <dc:creator>jaosnmayn</dc:creator>
      <pubDate>Sat, 07 Nov 2026 11:53:35 +0000</pubDate>
      <link>https://dev.to/jason_romines_704550b9353/3-checks-before-shipping-an-ai-built-website-1men</link>
      <guid>https://dev.to/jason_romines_704550b9353/3-checks-before-shipping-an-ai-built-website-1men</guid>
      <description>&lt;p&gt;Before You Trust AI-Generated Code, Check These 3 Things&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Disclosure:&lt;/em&gt; I'm developing Agent Mission Guard, a local prototype that checks declared file scope and limited static HTML acceptance evidence. This article explains a free manual method; the prototype isn't available for outside installation and isn't a browser-test or security certificate.&lt;/p&gt;

&lt;p&gt;A coding agent can write a surprisingly polished landing page, announce that the task is finished, and even report that its checks passed. The question for a freelancer delivering that page to a paying client is narrower: &lt;em&gt;which exact properties did anyone verify, and which remain unchecked?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;I learned this distinction while testing a small synthetic HTML task. A page contained the required heading and button, but one strict local-link acceptance rule did not pass. The underlying anchor was &lt;code&gt;href="#"&lt;/code&gt;, a common top-of-page shortcut, rather than the explicitly declared named anchor. That wasn't proof the browser button was broken. It was proof that our checklist and the intended user behavior needed to be reconciled. A useful verifier needs to make that distinction visible rather than just drawing a red badge.&lt;/p&gt;

&lt;p&gt;Here is a simple review workflow you can use without buying another tool.&lt;/p&gt;

&lt;h1&gt;
  
  
  1. Write a tiny mission contract first
&lt;/h1&gt;

&lt;p&gt;Before the agent starts, specify three things: the allowed files, files that must remain unchanged, and the evidence that would count toward acceptance. For example:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Allowed: &lt;code&gt;site/index.html&lt;/code&gt; and &lt;code&gt;site/styles.css&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Protected: &lt;code&gt;site/legal.html&lt;/code&gt; and &lt;code&gt;deployment.txt&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Expected result: the edited page has the agreed heading, a CTA pointing at a declared local section, and an explicit demo footer.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Notice what this &lt;em&gt;doesn't&lt;/em&gt; say: that the project is secure, the CTA works in all browsers, the deployed site is accessible, or the client has approved it. Those are separate questions.&lt;/p&gt;

&lt;p&gt;Rules written in a prompt are useful context, but they aren't independent proof that an agent obeyed them. Save the initial Git revision before work starts; otherwise you can end up comparing against a moving target.&lt;/p&gt;

&lt;h1&gt;
  
  
  2. Inspect the changed files, not just the summary
&lt;/h1&gt;

&lt;p&gt;Use Git to inspect what changed relative to the agreed baseline, including committed changes and files that are newly untracked. Which exact diff commands you need depend on whether the changes are staged, unstaged, or committed. The &lt;a href="https://git-scm.com/docs/git-diff" rel="noopener noreferrer"&gt;official Git diff reference&lt;/a&gt; documents the distinctions. A single &lt;code&gt;git diff&lt;/code&gt; without considering index state or untracked files isn't a complete inventory.&lt;/p&gt;

&lt;p&gt;Write down the changed paths. Did the agent modify &lt;code&gt;deployment.txt&lt;/code&gt; while making a layout change? Did it delete a protected page? A list of paths can answer these questions even before a human reads every line of code.&lt;/p&gt;

&lt;p&gt;But a scope PASS has a narrow meaning: the files in the comparison were allowed. It cannot prove that a login works, that a form submits, or that a third-party service hasn't changed.&lt;/p&gt;

&lt;h1&gt;
  
  
  3. Check acceptance criteria one by one
&lt;/h1&gt;

&lt;p&gt;A useful acceptance item is something a person can inspect without guessing. Compare:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;“The page looks professional.” That's subjective; review it visually.&lt;/li&gt;
&lt;li&gt;“The HTML contains a CTA with &lt;code&gt;href="#contact"&lt;/code&gt; and a section with &lt;code&gt;id="contact"&lt;/code&gt;.” That's an explicit static check.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Even the second check does &lt;em&gt;not&lt;/em&gt; establish a successful browser click. JavaScript can interfere, links can be hidden, or the target may be off-screen. Static checks are necessary only when they match the requirement, and often insufficient by themselves.&lt;/p&gt;

&lt;p&gt;If you ask an agent for evidence, don't let the agent's own explanation substitute for a separate read of the resulting files. A good outcome record distinguishes &lt;strong&gt;present&lt;/strong&gt;, &lt;strong&gt;missing&lt;/strong&gt;, and &lt;strong&gt;not checked&lt;/strong&gt;.&lt;/p&gt;

&lt;h1&gt;
  
  
  4. Deliberately break one declared property
&lt;/h1&gt;

&lt;p&gt;On a disposable fixture, change the CTA target to a nonexistent ID. The heading and button still exist, but the destination check should fail. If your checklist continues to say everything passed, it isn't testing the property you think it is.&lt;/p&gt;

&lt;p&gt;It's just as important to check for false alarms. In one local example, &lt;code&gt;href="#"&lt;/code&gt; was technically navigable in the browser, but a stricter explicit-anchor rule treated it as incomplete. Instead of rewriting valid code solely for a green check, first decide whether that strict rule represents what the client actually requested.&lt;/p&gt;

&lt;p&gt;This is why every failed criterion needs an explanation: the file, the observed mismatch, and what a reviewer should consider. Vague red labels waste time; unexplained green labels create false confidence.&lt;/p&gt;

&lt;h1&gt;
  
  
  5. Finish with human checks the static list can't do
&lt;/h1&gt;

&lt;p&gt;Open the page at desktop and narrow widths. Use the keyboard and click the navigation. Verify the form with safe test data if it exists. Check the real deployment, authentication and server behavior separately. For accessibility and security decisions, use appropriate independent testing beyond static HTML.&lt;/p&gt;

&lt;p&gt;Write a short handoff summary: &lt;strong&gt;what changed, what was tested, what failed, and what remains unverified.&lt;/strong&gt; This will be far more honest to a client than “AI finished the website.”&lt;/p&gt;

&lt;h1&gt;
  
  
  6. Keep your free baseline in the comparison
&lt;/h1&gt;

&lt;p&gt;Git plus a clear manual checklist may already be sufficient. &lt;a href="https://code.claude.com/docs/en/hooks-guide" rel="noopener noreferrer"&gt;Claude Code hooks&lt;/a&gt; and other agent lifecycle tools also let builders execute their own checks. But hook coverage matters: post-action checks cannot undo edits, and a matcher covering only one tool can miss another kind of write.&lt;/p&gt;

&lt;p&gt;A separate verification product should earn its place by reducing repeat review effort, producing clearer evidence, or finding in-scope mistakes that existing free checks missed. If it only reproduces a diff with an extra screen, it may not be worth paying for.&lt;/p&gt;

&lt;p&gt;That's the experiment we're running with Agent Mission Guard. The current private prototype checks a narrow set of local file-scope and static HTML requirements; it's not distributed or sold. The useful habit doesn't depend on it: *&lt;em&gt;define what done means, inspect the artifact, and report the boundaries of the evidence.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>ai</category>
      <category>tutorial</category>
      <category>productivity</category>
    </item>
  </channel>
</rss>
