{"id":1775,"date":"2025-04-25T16:01:01","date_gmt":"2025-04-25T16:01:01","guid":{"rendered":"https:\/\/techtrendfeed.com\/?p=1775"},"modified":"2025-04-25T16:01:02","modified_gmt":"2025-04-25T16:01:02","slug":"vibe-coding-vibe-checking-and-vibe-running-a-blog-oreilly","status":"publish","type":"post","link":"https:\/\/techtrendfeed.com\/?p=1775","title":{"rendered":"Vibe Coding, Vibe Checking, and Vibe Running a blog \u2013 O\u2019Reilly"},"content":{"rendered":"<p> <br \/>\n<\/p>\n<div>\n<p>For the previous decade and a half, I\u2019ve been exploring the intersection of know-how, training, and design as a <a rel=\"nofollow\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\" (opens in a new tab)\" href=\"https:\/\/pg.ucsd.edu\/\" target=\"_blank\">professor of cognitive science and design<\/a> at UC San Diego. A few of you might need learn my current piece for O\u2019Reilly Radar the place I detailed my journey <a rel=\"nofollow\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\" (opens in a new tab)\" href=\"https:\/\/www.oreilly.com\/radar\/using-generative-ai-to-build-generative-ai\/\" target=\"_blank\">including AI chat capabilities to Python Tutor<\/a>, the free visualization device that\u2019s helped hundreds of thousands of programming college students perceive how code executes. That have bought me desirous about my evolving relationship with generative AI as each a device and a collaborator.<\/p>\n<p>I\u2019ve been intrigued by this rising observe known as \u201cvibe coding,\u201d a time period coined by Andrej Karpathy that\u2019s been making waves in tech circles. <a rel=\"nofollow\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\" (opens in a new tab)\" href=\"https:\/\/simonwillison.net\/2025\/Mar\/19\/vibe-coding\/\" target=\"_blank\">Simon Willison describes it completely<\/a>: \u201cOnce I speak about vibe coding I imply constructing software program with an LLM with out reviewing the code it writes.\u201d The idea is each liberating and barely terrifying\u2014you describe what you want, the AI generates the code, and also you merely run it with out scrutinizing every line, trusting the general \u201cvibe\u201d of what\u2019s been created.<\/p>\n<div class=\"hFqnZQWm\">\n<div itemscope=\"\" itemtype=\"http:\/\/schema.org\/Product\" class=\"inline-cta trial-cta\" id=\"trial-cta\">\n<div class=\"thumb\">\n    <a rel=\"nofollow\" target=\"_blank\" href=\"https:\/\/www.oreilly.com\/online-learning\/\">&#13;<br \/>\n      <img decoding=\"async\" itemprop=\"image\" src=\"https:\/\/d3ansictanv2wj.cloudfront.net\/safari-topic-cta-1f60e6f96856da19ba3cb25660472ca5.jpg\" class=\"\"\/>&#13;<br \/>\n    <\/a>\n  <\/div>\n<p>&#13;<\/p>\n<h2>&#13;<br \/>\n      Study sooner. Dig deeper. See farther.&#13;<br \/>\n    <\/h2>\n<p>&#13;\n  <\/p>\n<\/div>\n<\/div>\n<p>My relationship with this strategy has advanced significantly. In my early days of utilizing AI coding assistants, I used to be that one that meticulously reviewed each single line, usually rewriting important parts. However as these instruments have improved, I\u2019ve discovered myself regularly letting go of the steering wheel in sure contexts. But I couldn\u2019t totally embrace the pure \u201cvibe coding\u201d philosophy; the professor in me wanted some high quality assurance. This led me to develop what I\u2019ve come to name \u201cvibe checks\u201d\u2014strategic verification factors that present confidence with out reverting to line-by-line code opinions. It\u2019s a center path that\u2019s labored surprisingly effectively for my private initiatives, and right now I wish to share some insights from that journey.<\/p>\n<h2><strong>Vibe Coding in Follow: Changing 250 HTML Recordsdata to Markdown<\/strong><\/h2>\n<p>I\u2019ve discovered myself more and more turning to vibe coding for these one-off scripts that clear up particular issues in my workflow. These are sometimes duties the place explaining my intent is definitely simpler than writing the code myself, particularly for information processing or file manipulation jobs the place I can simply confirm the outcomes.<\/p>\n<p>Let me stroll you thru a current instance that completely illustrates this strategy. For a category I educate, I had college students submit responses to a survey utilizing a proprietary internet app that offered an HTML export possibility. This left me with 250 HTML information containing helpful scholar suggestions, but it surely was buried in a large number of pointless markup and styling code. What I actually needed was clear Markdown variations that preserved simply the textual content content material, part headers, and\u2014critically\u2014any hyperlinks college students had included of their responses.<\/p>\n<p>Reasonably than penning this conversion script myself, I turned to Claude with a simple request: \u201cWrite me a Python script that converts these HTML information to Markdown, preserving textual content, primary formatting, and hyperlinks.\u201d Claude advised utilizing the BeautifulSoup library (a stable selection) and generated a whole script that might course of all information in a listing, making a corresponding Markdown file for every HTML supply.<\/p>\n<p>(Looking back, I spotted I in all probability may have used <a rel=\"nofollow\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\" (opens in a new tab)\" href=\"https:\/\/pandoc.org\/\" target=\"_blank\">Pandoc<\/a> for this conversion job. However within the spirit of vibe coding, I simply went with Claude\u2019s suggestion with out overthinking it. A part of the attraction of vibe coding is bypassing that analysis section the place you examine completely different approaches\u2014you simply describe what you need and roll with what you get.)<\/p>\n<p>True to the vibe coding philosophy, I didn\u2019t evaluate the generated code line by line. I merely saved it as a Python file, ran it on my listing of 250 HTML information, and waited to see what occurred. This \u201crun and see\u201d strategy is what makes vibe coding each liberating and barely nerve-wracking\u2014you\u2019re trusting the AI\u2019s interpretation of your wants with out verifying the implementation particulars.<\/p>\n<h2><strong>Belief and Threat in Vibe Coding: Operating Unreviewed Code<\/strong><\/h2>\n<p>The second I hit \u201crun\u201d on that vibe-coded script, I spotted one thing that may make many builders cringe: I used to be executing utterly unreviewed code on my precise laptop with actual information. In conventional software program growth, this may be thought-about reckless at finest. However the dynamics of belief really feel completely different with fashionable AI instruments like Claude 3.7 Sonnet, which has constructed up a status for producing fairly protected and practical code.<\/p>\n<p>My rationalization was partly primarily based on the script\u2019s restricted scope. It was simply studying HTML information and creating new Markdown information alongside them\u2014not deleting, modifying current information, or sending information over the community. After all, that\u2019s assuming the code did precisely what I requested and nothing extra! I had no ensures that it didn\u2019t embody some sudden habits since I hadn\u2019t checked out a single line.<\/p>\n<p>This highlights a belief relationship that\u2019s evolving between builders and AI coding instruments. I\u2019m far more keen to vibe code with Claude or ChatGPT than I&#8217;d be with an unknown AI device from some obscure web site. These established instruments have reputations to take care of, and their mum or dad firms have robust incentives to stop their techniques from producing malicious code.<\/p>\n<p>That stated, I\u2019d like to see working techniques develop a \u201crestricted execution mode\u201d particularly designed for vibe coding eventualities. Think about with the ability to specify: \u201cRun this Python script, however solely enable it to CREATE new information on this particular listing, stop it from overwriting current information, and block web entry.\u201d This light-weight sandboxing would supply peace of thoughts with out sacrificing comfort. (I point out solely proscribing writes relatively than reads as a result of Python scripts sometimes have to learn varied system information from throughout the filesystem, making learn restrictions impractical.)<\/p>\n<p>Why not simply use VMs, containers, or cloud companies? As a result of for personal-scale initiatives, the comfort of working straight by myself machine is tough to beat. Establishing Docker or importing 250 HTML information to some cloud service introduces friction that defeats the aim of fast, handy vibe coding. What I need is to take care of that comfort whereas including simply sufficient security guardrails.<\/p>\n<h2><strong>Vibe Checks: Easy Scripts to Confirm AI-Generated Code<\/strong><\/h2>\n<p>OK now come the \u201cvibe checks.\u201d As I discussed earlier, the good factor about these private information processing duties is that I can usually get a way of whether or not the script did what I supposed simply by analyzing the output. For my HTML-to-Markdown conversion, I may open up a number of of the ensuing Markdown information and see in the event that they contained the survey responses I anticipated. This handbook spot-checking works fairly effectively for 250 information, however what about 2,500 or 25,000? At that scale, I\u2019d want one thing extra systematic.<\/p>\n<p>That is the place vibe checks come into play. A vibe verify is basically a less complicated script that verifies a primary property of the output out of your vibe-coded script. The important thing right here is that it must be a lot less complicated than the unique job, making it simpler to confirm its correctness.<\/p>\n<p>For my HTML-to-Markdown conversion undertaking, I spotted I may use a simple precept: Markdown information must be smaller than their HTML counterparts since we\u2019re stripping away all of the tags. But when a Markdown file is dramatically smaller\u2014say, lower than 40% of the unique HTML measurement\u2014that may point out incomplete processing or content material loss.<\/p>\n<p>So I went again to Claude and vibe coded a verify script. This script merely:<\/p>\n<ol>\n<li>Discovered all corresponding HTML\/Markdown file pairs<\/li>\n<li>Calculated the scale ratio for every pair<\/li>\n<li>Flagged any Markdown file smaller than 40% of its HTML supply<\/li>\n<\/ol>\n<p>And lo and behold, the vibe verify caught a number of information the place the conversion was incomplete! The unique script had did not correctly extract content material from sure HTML buildings. I took these problematic information, went again to Claude, and had it refine the unique conversion script to deal with these edge instances.<\/p>\n<p>After a couple of iterations of this suggestions loop\u2014convert, verify, establish points, refine\u2014I finally reached some extent the place there have been no extra suspiciously small Markdown information (effectively, there have been nonetheless a couple of beneath 40%, however handbook inspection confirmed these had been appropriate conversions of HTML information with unusually excessive markup-to-content ratios).<\/p>\n<p>Now you would possibly fairly ask: \u201cFor those who\u2019re vibe coding the vibe verify script too, how have you learnt <em>that<\/em> script is appropriate?\u201d Would you want a vibe verify to your vibe verify? After which a vibe verify for that verify? Effectively, fortunately, this recursive nightmare has a sensible resolution. The vibe verify script is usually an order of magnitude less complicated than the unique job\u2014in my case, simply evaluating file sizes relatively than parsing complicated HTML. This simplicity made it possible for me to manually evaluate and confirm the vibe verify code, even whereas avoiding reviewing the extra complicated unique script.<\/p>\n<p>After all, my file measurement ratio verify isn\u2019t excellent. It could actually\u2019t inform me if the content material was transformed with the right formatting or if all hyperlinks had been preserved accurately. But it surely gave me an inexpensive confidence that no main content material was lacking, which was my main concern.<\/p>\n<h2><strong>Vibe Coding + Vibe Checking: A Pragmatic Center Floor<\/strong><\/h2>\n<p>The take-home message right here is easy however highly effective: Once you\u2019re vibe coding, at all times construct in vibe checks. Ask your self: \u201cWhat less complicated script may confirm the correctness of my important vibe-coded resolution?\u201d Even an imperfect verification mechanism dramatically will increase your confidence in outcomes from code you by no means really reviewed.<\/p>\n<p>This strategy strikes a pleasant steadiness between the velocity and inventive movement of pure vibe coding and the reliability of extra rigorous software program growth methodologies. Consider vibe checks as light-weight exams\u2014not the great check suites you\u2019d write for manufacturing code, however sufficient verification to catch apparent failures with out disrupting your momentum.<\/p>\n<p>What excites me concerning the future is the potential for AI coding instruments to counsel applicable vibe checks robotically. Think about if Claude or related instruments couldn&#8217;t solely generate your requested script but additionally proactively supply: \u201cRight here\u2019s a easy verification script you would possibly wish to run afterward to make sure all the things labored as anticipated.\u201d I believe if I had particularly requested for this, Claude may have advised the file measurement comparability verify, however having this constructed into the system\u2019s default habits can be extremely helpful. I can envision specialised AI coding assistants that function in a semi-autonomous mode\u2014writing code, producing applicable checks, operating these checks, and involving you solely when human verification is really wanted.<\/p>\n<p>Mix this with the form of sandboxed execution setting I discussed earlier, and also you\u2019d have a vibe coding expertise that\u2019s each releasing and reliable\u2014highly effective sufficient for actual work however with guardrails that stop catastrophic errors.<\/p>\n<p>And now for the meta twist: This whole weblog submit was itself the product of \u201cvibe running a blog.\u201d Firstly of our collaboration, I uploaded my earlier O\u2019Reilly article,\u201d<a rel=\"nofollow\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\" (opens in a new tab)\" href=\"https:\/\/www.oreilly.com\/radar\/using-generative-ai-to-build-generative-ai\/\" target=\"_blank\">Utilizing Generative AI to Construct Generative AI<\/a>\u201d as a reference doc. This gave Claude the chance to research my writing type, tone, and typical construction\u2014very like how a human collaborator would possibly learn my earlier work earlier than serving to me write one thing new.<\/p>\n<p>As an alternative of writing the complete submit in a single go, I broke it down into sections and offered Claude with a top level view for every part separately. For each part, I included key factors I needed to cowl and typically particular phrasings or ideas to incorporate. Claude then expanded these outlines into totally shaped sections written in my voice. After every part was drafted, I reviewed it\u2014my very own model of a \u201cvibe verify\u201d\u2014offering suggestions and requesting revisions till it matched what I needed to say and the way I needed to say it.<\/p>\n<p>This iterative, section-by-section strategy mirrors the vibe coding methodology I\u2019ve mentioned all through this submit. I didn\u2019t want to jot down each sentence myself, however I maintained management over the route, messaging, and closing approval. The AI dealt with the execution particulars primarily based on my high-level steerage, and I carried out verification checks at strategic factors relatively than micromanaging each phrase.<\/p>\n<p>What\u2019s notably fascinating is how this course of demonstrates the identical ideas of belief, verification, and iteration that I advocated for in vibe coding. I trusted Claude to generate content material in my type primarily based on my outlines, however I verified every part earlier than shifting to the following. When one thing didn\u2019t fairly match my intent or tone, we iterated till it did. This balanced strategy\u2014leveraging AI capabilities whereas sustaining human oversight\u2014appears to be the candy spot for collaborative creation, whether or not you\u2019re producing code or content material.<\/p>\n<h2><strong>Epilogue: Behind the Scenes with Claude<\/strong><\/h2>\n<p><em>[Claude speaking]<\/em><\/p>\n<p>Trying again at our vibe running a blog experiment, I ought to acknowledge that Philip famous the ultimate product doesn\u2019t totally seize his genuine voice, regardless of having his O\u2019Reilly article as a reference. However in line with the vibe philosophy itself, he selected to not make investments extreme time in countless refinements\u2014accepting good-enough relatively than excellent.<\/p>\n<p>Working section-by-section with out seeing the total construction upfront created challenges, just like portray components of a mural with out seeing the whole design. I initially fell into the lure of copying his define verbatim relatively than reworking it correctly.<\/p>\n<p>This collaboration highlights each the utility and limitations of AI-assisted content material creation. I can approximate writing types and broaden outlines however nonetheless lack the lived expertise that offers human writing its genuine voice. The very best outcomes got here when Philip offered clear route and suggestions.<\/p>\n<p>The meta-example completely illustrates the core thesis: Generative AI works finest when paired with human steerage, discovering the appropriate steadiness between automation and oversight. \u201cVibe running a blog\u201d has worth for drafts and descriptions, however like \u201cvibe coding,\u201d some type of human verification stays important to make sure the ultimate product actually represents what you wish to say.<\/p>\n<p><em>[Philip speaking so that humans get the final word\u2026for now]<\/em><\/p>\n<p>OK, that is the one half that I wrote by hand: My parting thought when studying over this submit is that I\u2019m not happy with the writing high quality (sorry Claude!), but when it weren\u2019t for an AI device like Claude, I&#8217;d not have written it within the first place because of lack of time and vitality. I had sufficient vitality right now to stipulate some tough concepts, then let Claude do the \u201cvibe running a blog\u201d for me, however not sufficient to totally write, edit, and fret over the wording of a full 2,500-word weblog submit all on my own. Thus, identical to with vibe coding, one of many nice joys of \u201cvibe-ing\u201d is that it drastically lowers the activation vitality of getting began on inventive personal-scale prototypes and tinkering-style initiatives. To me, that\u2019s fairly inspiring.<\/p>\n<\/p><\/div>\n<p><template id="caZy6SFRTiXjVLw3QDOE"></template><\/script><br \/>\n<br \/><\/p>\n","protected":false},"excerpt":{"rendered":"<p>For the previous decade and a half, I\u2019ve been exploring the intersection of know-how, training, and design as a professor of cognitive science and design at UC San Diego. A few of you might need learn my current piece for O\u2019Reilly Radar the place I detailed my journey including AI chat capabilities to Python Tutor, [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":1777,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[55],"tags":[1740,1739,1256,238,1738],"class_list":["post-1775","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-machine-learning","tag-blogging","tag-checking","tag-coding","tag-oreilly","tag-vibe"],"_links":{"self":[{"href":"https:\/\/techtrendfeed.com\/index.php?rest_route=\/wp\/v2\/posts\/1775","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/techtrendfeed.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/techtrendfeed.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/techtrendfeed.com\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/techtrendfeed.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1775"}],"version-history":[{"count":1,"href":"https:\/\/techtrendfeed.com\/index.php?rest_route=\/wp\/v2\/posts\/1775\/revisions"}],"predecessor-version":[{"id":1776,"href":"https:\/\/techtrendfeed.com\/index.php?rest_route=\/wp\/v2\/posts\/1775\/revisions\/1776"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/techtrendfeed.com\/index.php?rest_route=\/wp\/v2\/media\/1777"}],"wp:attachment":[{"href":"https:\/\/techtrendfeed.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1775"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/techtrendfeed.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1775"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/techtrendfeed.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1775"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}<!-- This website is optimized by Airlift. Learn more: https://airlift.net. Template:. Learn more: https://airlift.net. Template: 69d9690a190636c2e0989534. Config Timestamp: 2026-04-10 21:18:02 UTC, Cached Timestamp: 2026-06-13 15:24:08 UTC -->