{"id":130,"date":"2026-08-14T23:51:42","date_gmt":"2026-08-14T23:51:42","guid":{"rendered":"https:\/\/zerotoghost.com\/?p=130"},"modified":"2026-08-14T23:52:52","modified_gmt":"2026-08-14T23:52:52","slug":"i-used-claude-code-for-a-ridiculous-task","status":"publish","type":"post","link":"https:\/\/zerotoghost.com\/?p=130","title":{"rendered":"I used Claude Code for a ridiculous task."},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">*NOTE* Since the starting of this draft I learned Knowledge Fight has officially ended. Farewell, and thanks for all the fish (and laughs)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">So there&#8217;s this podcast I adore called Knowledge Fight. I&#8217;ve been listening to these Chicago boys laugh, fact check, and try to make sense of a popular right-wing conspiracy host for about 4 years now, and Dan (show host) says the phrase &#8220;Be that as it may&#8221; often. Often enough that even he recognized it at one point. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Naturally, while I was taking a year of java, I thought &#8220;what a fun project. Transcribe each episode &#8211; usually transcripts are already available &#8211; and then have it count the phrase&#8221;, making a running joke counter.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">My one year of half-assed Java was not enough to figure that out, so I tried having ChatGPT figure out a python version for me. It failed, miserably. This was late 2024 and I then relegated the project to a sad folder on my macbook, to be revisited one day (or deleted).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Fast forward to now and AI has come a LONG way in less than 18 months. I started tinkering with Claude Code for different work tasks, and decided to give my silly BE THAT AS IT MAY project another shot (using AI of course, because as a full time employee, mom and wife &#8212; who has time to do anything fun)?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Well. It worked! Here&#8217;s the steps we &#8212; Claude and I &#8212; did to accomplish it. <\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"494\" src=\"https:\/\/zerotoghost.com\/wp-content\/uploads\/2026\/06\/Screenshot-2026-06-24-at-11.36.46-AM-1024x494.png\" alt=\"\" class=\"wp-image-131\" srcset=\"https:\/\/zerotoghost.com\/wp-content\/uploads\/2026\/06\/Screenshot-2026-06-24-at-11.36.46-AM-1024x494.png 1024w, https:\/\/zerotoghost.com\/wp-content\/uploads\/2026\/06\/Screenshot-2026-06-24-at-11.36.46-AM-300x145.png 300w, https:\/\/zerotoghost.com\/wp-content\/uploads\/2026\/06\/Screenshot-2026-06-24-at-11.36.46-AM-768x371.png 768w, https:\/\/zerotoghost.com\/wp-content\/uploads\/2026\/06\/Screenshot-2026-06-24-at-11.36.46-AM-850x410.png 850w, https:\/\/zerotoghost.com\/wp-content\/uploads\/2026\/06\/Screenshot-2026-06-24-at-11.36.46-AM.png 1461w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">We started with the idea. Since my console isn&#8217;t running in tmux and I couldn&#8217;t scroll to the very top, I asked Claude to recap. Green is my prompt, blue is *a summary* of my initial prompt. I definitely did not write that word for word, but it got the gist correct.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"325\" src=\"https:\/\/zerotoghost.com\/wp-content\/uploads\/2026\/06\/blog-kf_prompt-1024x325.png\" alt=\"\" class=\"wp-image-135\" srcset=\"https:\/\/zerotoghost.com\/wp-content\/uploads\/2026\/06\/blog-kf_prompt-1024x325.png 1024w, https:\/\/zerotoghost.com\/wp-content\/uploads\/2026\/06\/blog-kf_prompt-300x95.png 300w, https:\/\/zerotoghost.com\/wp-content\/uploads\/2026\/06\/blog-kf_prompt-768x244.png 768w, https:\/\/zerotoghost.com\/wp-content\/uploads\/2026\/06\/blog-kf_prompt-850x270.png 850w, https:\/\/zerotoghost.com\/wp-content\/uploads\/2026\/06\/blog-kf_prompt.png 1272w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Claude started by analyzing my dead project folder. As you can see, I did not give the best directions to ChatGPT but it tried to figure out what I wanted. <\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"301\" src=\"https:\/\/zerotoghost.com\/wp-content\/uploads\/2026\/06\/blog-kf-step1-1024x301.png\" alt=\"\" class=\"wp-image-136\" srcset=\"https:\/\/zerotoghost.com\/wp-content\/uploads\/2026\/06\/blog-kf-step1-1024x301.png 1024w, https:\/\/zerotoghost.com\/wp-content\/uploads\/2026\/06\/blog-kf-step1-300x88.png 300w, https:\/\/zerotoghost.com\/wp-content\/uploads\/2026\/06\/blog-kf-step1-768x226.png 768w, https:\/\/zerotoghost.com\/wp-content\/uploads\/2026\/06\/blog-kf-step1-850x250.png 850w, https:\/\/zerotoghost.com\/wp-content\/uploads\/2026\/06\/blog-kf-step1.png 1272w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">For step 2, Claude asked clarifying questions (I always include this in my instructions file). Which source to use, scope of episodes to work with, output options, and language. Then Claude began steps 3-5, which consisted of verifying code, building the actual product, and debugging<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"237\" src=\"https:\/\/zerotoghost.com\/wp-content\/uploads\/2026\/06\/blog-kf-step3-1024x237.png\" alt=\"\" class=\"wp-image-139\" srcset=\"https:\/\/zerotoghost.com\/wp-content\/uploads\/2026\/06\/blog-kf-step3-1024x237.png 1024w, https:\/\/zerotoghost.com\/wp-content\/uploads\/2026\/06\/blog-kf-step3-300x69.png 300w, https:\/\/zerotoghost.com\/wp-content\/uploads\/2026\/06\/blog-kf-step3-768x178.png 768w, https:\/\/zerotoghost.com\/wp-content\/uploads\/2026\/06\/blog-kf-step3-850x197.png 850w, https:\/\/zerotoghost.com\/wp-content\/uploads\/2026\/06\/blog-kf-step3.png 1263w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"347\" src=\"https:\/\/zerotoghost.com\/wp-content\/uploads\/2026\/06\/blog-kf-step4-1024x347.png\" alt=\"\" class=\"wp-image-138\" srcset=\"https:\/\/zerotoghost.com\/wp-content\/uploads\/2026\/06\/blog-kf-step4-1024x347.png 1024w, https:\/\/zerotoghost.com\/wp-content\/uploads\/2026\/06\/blog-kf-step4-300x102.png 300w, https:\/\/zerotoghost.com\/wp-content\/uploads\/2026\/06\/blog-kf-step4-768x260.png 768w, https:\/\/zerotoghost.com\/wp-content\/uploads\/2026\/06\/blog-kf-step4-850x288.png 850w, https:\/\/zerotoghost.com\/wp-content\/uploads\/2026\/06\/blog-kf-step4.png 1263w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"362\" src=\"https:\/\/zerotoghost.com\/wp-content\/uploads\/2026\/06\/blog-kf-step5-6-1024x362.png\" alt=\"\" class=\"wp-image-140\" srcset=\"https:\/\/zerotoghost.com\/wp-content\/uploads\/2026\/06\/blog-kf-step5-6-1024x362.png 1024w, https:\/\/zerotoghost.com\/wp-content\/uploads\/2026\/06\/blog-kf-step5-6-300x106.png 300w, https:\/\/zerotoghost.com\/wp-content\/uploads\/2026\/06\/blog-kf-step5-6-768x271.png 768w, https:\/\/zerotoghost.com\/wp-content\/uploads\/2026\/06\/blog-kf-step5-6-850x300.png 850w, https:\/\/zerotoghost.com\/wp-content\/uploads\/2026\/06\/blog-kf-step5-6.png 1263w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Claude suggested running it in batches of 100, to optimize runtime and usage. This helped solve timeouts that were breaking the process.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"400\" src=\"https:\/\/zerotoghost.com\/wp-content\/uploads\/2026\/06\/blog-kf-step7-1024x400.png\" alt=\"\" class=\"wp-image-141\" srcset=\"https:\/\/zerotoghost.com\/wp-content\/uploads\/2026\/06\/blog-kf-step7-1024x400.png 1024w, https:\/\/zerotoghost.com\/wp-content\/uploads\/2026\/06\/blog-kf-step7-300x117.png 300w, https:\/\/zerotoghost.com\/wp-content\/uploads\/2026\/06\/blog-kf-step7-768x300.png 768w, https:\/\/zerotoghost.com\/wp-content\/uploads\/2026\/06\/blog-kf-step7-850x332.png 850w, https:\/\/zerotoghost.com\/wp-content\/uploads\/2026\/06\/blog-kf-step7.png 1263w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">During the second run (episodes 11-50) Claude picked up on an issue with rate limiting and fixed the code (I have auto mode selected so I don&#8217;t need to approve changes, but that&#8217;s a personal preference).<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"444\" src=\"https:\/\/zerotoghost.com\/wp-content\/uploads\/2026\/06\/blog-kf_fixcode-1024x444.png\" alt=\"\" class=\"wp-image-142\" srcset=\"https:\/\/zerotoghost.com\/wp-content\/uploads\/2026\/06\/blog-kf_fixcode-1024x444.png 1024w, https:\/\/zerotoghost.com\/wp-content\/uploads\/2026\/06\/blog-kf_fixcode-300x130.png 300w, https:\/\/zerotoghost.com\/wp-content\/uploads\/2026\/06\/blog-kf_fixcode-768x333.png 768w, https:\/\/zerotoghost.com\/wp-content\/uploads\/2026\/06\/blog-kf_fixcode-850x369.png 850w, https:\/\/zerotoghost.com\/wp-content\/uploads\/2026\/06\/blog-kf_fixcode.png 1263w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">After the first run of 100 episodes, Claude came to the conclusion that episode 68 had an inanely high count of &#8220;be that as it may&#8221; 20 times during the show. I do want to clarify, some of these episodes are quite long &#8211; often going past the two hour mark. Still, compared to the ones before, it must have been one hell of an episode. Claude specifically mentioned <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Jordan must have been losing his mind\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">In all fairness, I&#8217;m not sure if Jordan was the one who noticed Dan&#8217;s chronic usage of the phrase. It might have been a listener or just Dan noticing it during editing. We also see the rate limiter constricted the process 4 times, but our retry logic was working as expected.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\n\nWow. 220 hits across 100 episodes \u2014 and there's a clear runaway leader:\n\n  Ep. 68 (September 19-28, 2015) \u2014 20 hits. That is not a typo. Dan said \"be that as it may\" twenty times in a single episode. That's once every ~3 minutes assuming an\n  hour-long show. Jordan must have been losing his mind.\n\n  The rate limiter hit 4 times but the retry logic handled it cleanly each time. A few other standouts:\n\n  - Eps. 69 &amp; 71 tied at 8\u00d7 \u2014 back-to-back August 2017 episodes, Dan was clearly in a phase\n  - 69 out of 100 episodes (69%) contain the phrase \u2014 it is simply part of how the man speaks\n\n  Running to 200 will take about 5\u20136 minutes with the 2s delays + retry pauses. Ready when you are: .\/run.sh --episodes 200\n\n\u273b Cooked for 5m 13s\n\n\u203b recap: KF Counter v3 counts \"be that as it may\" in Knowledge Fight transcripts. We've analyzed 100 of 1144 episodes and found 220 hits. Run .\/run.sh --episodes 200 to\n  continue. (disable recaps in \/config)<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Claude suggested running it in batches of 100, to optimize runtime and usage. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>  - Ep 1\u2013100: 220 hits (2.2\/ep)\n  - Ep 101\u2013200: 117 hits (1.17\/ep)\n  - Ep 201\u2013300: 14 hits (0.14\/ep)\n  - Ep 301\u2013400: 5 hits (0.05\/ep) \u2190 nearly silent\n\n  Something notable: Episode 400 is literally titled \"One Out of Five Seems High\" \u2014 which, mathematically, describes how often Dan says this phrase in the back 200.\n  Ready for .\/run.sh --episodes 450 whenever you want to see if the rate recovers.<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Once we got to Episode 800, Claude returned this:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>367 hits across 800 episodes. Just 1 new hit from episodes 701\u2013800.\n\nThat is a single hit across a hundred episodes. The phrase is effectively extinct in the modern era of the show. Full trajectory:\n\n\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n\u2502  Range  \u2502 New hits \u2502  Rate   \u2502\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n\u2502 1\u2013100   \u2502 220      \u2502 2.2\/ep  \u2502\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n\u2502 101\u2013200 \u2502 117      \u2502 1.17\/ep \u2502\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n\u2502 201\u2013700 \u2502 29       \u2502 0.06\/ep \u2502\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n\u2502 701\u2013800 \u2502 1        \u2502 0.01\/ep \u2502\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n\nThe top 10 hasn't changed in seven straight runs. It's done. The definitive leaderboard is set.\n\nThe story this data tells is actually fascinating: \"be that as it may\" was a genuine verbal tic Dan had in the early years of the show (2015\u20132018), peaked hard around episode 68, then gradually faded out entirely. By 2022\u20132023 it's almost gone. Jordan probably did break him of it eventually \u2014 or Dan listened back to episode 68 and was horrified.\n\n344 episodes left. .\/run.sh --all would finish it off \u2014 probably adds fewer than 10 more hits total. Want to go for the complete count, or call it here?<\/code><\/pre>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\"><strong>Jordan probably did break him of it eventually \u2014 or Dan listened back to episode 68 and was horrified<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">That made me laugh. Possibly from crawling through all the transcribed text, Claude made a pretty astute characterization of Dan. (We love you Dan). <\/p>\n<\/blockquote>\n<\/blockquote>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">Anyway, we ended the project with a final count of 380 across 1,140 episodes. Mission accomplished, and I can rest easy knowing exactly how many times the phrase was uttered.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"582\" src=\"https:\/\/zerotoghost.com\/wp-content\/uploads\/2026\/08\/Screenshot-2026-08-14-at-7.49.27-PM-1024x582.png\" alt=\"\" class=\"wp-image-165\" srcset=\"https:\/\/zerotoghost.com\/wp-content\/uploads\/2026\/08\/Screenshot-2026-08-14-at-7.49.27-PM-1024x582.png 1024w, https:\/\/zerotoghost.com\/wp-content\/uploads\/2026\/08\/Screenshot-2026-08-14-at-7.49.27-PM-300x170.png 300w, https:\/\/zerotoghost.com\/wp-content\/uploads\/2026\/08\/Screenshot-2026-08-14-at-7.49.27-PM-768x436.png 768w, https:\/\/zerotoghost.com\/wp-content\/uploads\/2026\/08\/Screenshot-2026-08-14-at-7.49.27-PM-1536x872.png 1536w, https:\/\/zerotoghost.com\/wp-content\/uploads\/2026\/08\/Screenshot-2026-08-14-at-7.49.27-PM-2048x1163.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>*NOTE* Since the starting of this draft I learned Knowledge Fight has officially ended. Farewell, and thanks for all the\u2026<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[22,23],"tags":[],"class_list":["post-130","post","type-post","status-publish","format-standard","hentry","category-coding","category-projects"],"_links":{"self":[{"href":"https:\/\/zerotoghost.com\/index.php?rest_route=\/wp\/v2\/posts\/130","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/zerotoghost.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/zerotoghost.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/zerotoghost.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/zerotoghost.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=130"}],"version-history":[{"count":10,"href":"https:\/\/zerotoghost.com\/index.php?rest_route=\/wp\/v2\/posts\/130\/revisions"}],"predecessor-version":[{"id":166,"href":"https:\/\/zerotoghost.com\/index.php?rest_route=\/wp\/v2\/posts\/130\/revisions\/166"}],"wp:attachment":[{"href":"https:\/\/zerotoghost.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=130"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/zerotoghost.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=130"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/zerotoghost.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=130"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}