{
  "@context": "https://schema.org",
  "@id": "https://aggr.aymericbeaumet.com/items/ghuntley-com/2025-09-09-i-ran-claude-in-a-loop-for-three-months-and-it-created-a/#webpage",
  "@type": [
    "WebPage",
    "ArchiveComponent"
  ],
  "articleBody": "It's a strange feeling knowing that you can create anything, and I'm starting to wonder if there's a seventh stage to the \"[people stages of AI adoption by software developers](https://ghuntley.com/ngmi/)\"\n\n![](https://storage.ghost.io/c/06/e5/06e5d12b-0328-469d-a0d0-3a0f0ba34c46/content/images/2025/03/image-17.png)\n\nwhereby that seventh stage is essentially this scene in the matrix...\n\n[The Matrix - 'I Know Kung Fu'](https://www.youtube.com/watch?v=0YhJxJZOWBw)\n\nIt's where you deeply understand that '[you can now do anything](https://ghuntley.com/dothings/)' and just start doing it because it's possible and fun, and doing so is faster than explaining yourself. Outcomes speak louder than words.\n\nThere's a falsehood that AI results in SWE's skill atrophy, and there's no learning potential.\n\n> If you’re using AI only to “do” and not “learn”, you are missing out\\\n> \\- [David Fowler](https://x.com/davidfowl/status/1910930253608001565?ref=ghuntley.com)\n\nI've never written a compiler, yet I've always wanted to do one, so I've been working on one for the last three months by running Claude in a while true loop (aka \"[Ralph Wiggum](https://ghuntley.com/ralph)\") with a simple prompt:\n\n> Hey, can you make me a programming language like Golang but all the lexical keywords are swapped so they're Gen Z slang?\n\nWhy? I really don't know. But it exists. And it produces compiled programs. During this period, Claude was able to implement anything that Claude desired.\n\nThe programming language is called \"cursed\". It's cursed in its lexical structure, it's cursed in how it was built, it's cursed that this is possible, it's cursed in how cheap this was, and it's cursed through how many times I've sworn at Claude.\n\n![](https://storage.ghost.io/c/06/e5/06e5d12b-0328-469d-a0d0-3a0f0ba34c46/content/images/size/w2400/2025/09/image-1.png)\\\nhttps://cursed-lang.org/\n\nFor the last three months, Claude has been running in this loop with a single goal:\n\n> \"Produce me a Gen-Z compiler, and you can implement anything you like.\"\n\nIt's now available at:\n\n- [https://cursed-lang.org/](https://cursed-lang.org/?ref=ghuntley.com)\n- [https://github.com/ghuntley/cursed](https://github.com/ghuntley/cursed?ref=ghuntley.com)\n\n[the 💀 cursed programming language: programming, but make it gen z](https://cursed-lang.org/?ref=ghuntley.com)\n\n![](https://static.ghost.org/v5.0.0/images/link-icon.svg)💀 cursed\n\nthe website\n\n[GitHub - ghuntley/cursed: the 💀 cursed programming language: programming, but make it gen z](https://github.com/ghuntley/cursed?ref=ghuntley.com)\n\nthe 💀 cursed programming language: programming, but make it gen z - ghuntley/cursed\n\n![](https://storage.ghost.io/c/06/e5/06e5d12b-0328-469d-a0d0-3a0f0ba34c46/content/images/icon/pinned-octocat-093da3e6fa40-28.svg)GitHub ghuntley\n\n![](https://storage.ghost.io/c/06/e5/06e5d12b-0328-469d-a0d0-3a0f0ba34c46/content/images/thumbnail/cursed-2)\n\nthe source code\n\n## whats included?\n\nAnything that Claude thought was appropriate to add. Currently...\n\n- The compiler has two modes: interpreted mode and compiled mode. It's able to produce binaries on Mac OS, Linux, and Windows via LLVM.\n- There are some half-completed VSCode, Emacs, and Vim editor extensions, and a Treesitter grammar.\n- A whole bunch of really wild and incomplete standard library packages.\n\n## lexical structure\n\n**Control Flow:**\\\n`ready` → if\\\n`otherwise` → else\\\n`bestie` → for\\\n`periodt` → while\\\n`vibe_check` → switch\\\n`mood` → case\\\n`basic` → default\n\n**Declaration:**\\\n`vibe` → package\\\n`yeet` → import\\\n`slay` → func\\\n`sus` → var\\\n`facts` → const\\\n`be_like` → type\\\n`squad` → struct\n\n**Flow Control:**\\\n`damn` → return\\\n`ghosted` → break\\\n`simp` → continue\\\n`later` → defer\\\n`stan` → go\\\n`flex` → range\n\n**Values & Types:**\\\n`based` → true\\\n`cringe` → false\\\n`nah` → nil\\\n`normie` → int\\\n`tea` → string\\\n`drip` → float\\\n`lit` → bool\\\n`ඞT` (Amogus) → pointer to type T\n\n**Comments:**\\\n`fr fr` → line comment\\\n`no cap...on god` → block comment\n\n## example program\n\nHere is leetcode 104 - maximum depth for a binary tree:\n\n```\nvibe main\nyeet \"vibez\"\nyeet \"mathz\"\n\n// LeetCode #104: Maximum Depth of Binary Tree 🌲\n// Find the maximum depth (height) of a binary tree using ඞ pointers\n// Time: O(n), Space: O(h) where h is height\n\nstruct TreeNode {\n    sus val normie\n    sus left ඞTreeNode   \n    sus right ඞTreeNode  \n}\n\nslay max_depth(root ඞTreeNode) normie {\n    ready (root == null) {\n        damn 0  // Base case: empty tree has depth 0\n    }\n    \n    sus left_depth normie = max_depth(root.left)\n    sus right_depth normie = max_depth(root.right)\n    \n    // Return 1 + max of left and right subtree depths\n    damn 1 + mathz.max(left_depth, right_depth)\n}\n\nslay max_depth_iterative(root ඞTreeNode) normie {\n    // BFS approach using queue - this hits different! 🚀\n    ready (root == null) {\n        damn 0\n    }\n    \n    sus queue ඞTreeNode[] = []ඞTreeNode{}\n    sus levels normie[] = []normie{}\n    \n    append(queue, root)\n    append(levels, 1)\n    \n    sus max_level normie = 0\n    \n    bestie (len(queue) > 0) {\n        sus node ඞTreeNode = queue[0]\n        sus level normie = levels[0]\n        \n        // Remove from front of queue\n        collections.remove_first(queue)\n        collections.remove_first(levels)\n        \n        max_level = mathz.max(max_level, level)\n        \n        ready (node.left != null) {\n            append(queue, node.left)\n            append(levels, level + 1)\n        }\n        \n        ready (node.right != null) {\n            append(queue, node.right)\n            append(levels, level + 1)\n        }\n    }\n    \n    damn max_level\n}\n\nslay create_test_tree() ඞTreeNode {\n    // Create tree: [3,9,20,null,null,15,7]\n    //       3\n    //      / \\\n    //     9   20\n    //        /  \\\n    //       15   7\n    \n    sus root ඞTreeNode = &TreeNode{val: 3, left: null, right: null}\n    root.left = &TreeNode{val: 9, left: null, right: null}\n    root.right = &TreeNode{val: 20, left: null, right: null}\n    root.right.left = &TreeNode{val: 15, left: null, right: null}\n    root.right.right = &TreeNode{val: 7, left: null, right: null}\n    \n    damn root\n}\n\nslay create_skewed_tree() ඞTreeNode {\n    // Create skewed tree for testing edge cases\n    //   1\n    //    \\\n    //     2\n    //      \\\n    //       3\n    \n    sus root ඞTreeNode = &TreeNode{val: 1, left: null, right: null}\n    root.right = &TreeNode{val: 2, left: null, right: null}\n    root.right.right = &TreeNode{val: 3, left: null, right: null}\n    \n    damn root\n}\n\nslay test_maximum_depth() {\n    vibez.spill(\"=== 🌲 LeetCode #104: Maximum Depth of Binary Tree ===\")\n    \n    // Test case 1: Balanced tree [3,9,20,null,null,15,7]\n    sus root1 ඞTreeNode = create_test_tree()\n    sus depth1_rec normie = max_depth(root1)\n    sus depth1_iter normie = max_depth_iterative(root1)\n    vibez.spill(\"Test 1 - Balanced tree:\")\n    vibez.spill(\"Expected depth: 3\")\n    vibez.spill(\"Recursive result:\", depth1_rec)\n    vibez.spill(\"Iterative result:\", depth1_iter)\n    \n    // Test case 2: Empty tree\n    sus root2 ඞTreeNode = null\n    sus depth2 normie = max_depth(root2)\n    vibez.spill(\"Test 2 - Empty tree:\")\n    vibez.spill(\"Expected depth: 0, Got:\", depth2)\n    \n    // Test case 3: Single node [1]\n    sus root3 ඞTreeNode = &TreeNode{val: 1, left: null, right: null}\n    sus depth3 normie = max_depth(root3)\n    vibez.spill(\"Test 3 - Single node:\")\n    vibez.spill(\"Expected depth: 1, Got:\", depth3)\n    \n    // Test case 4: Skewed tree\n    sus root4 ඞTreeNode = create_skewed_tree()\n    sus depth4 normie = max_depth(root4)\n    vibez.spill(\"Test 4 - Skewed tree:\")\n    vibez.spill(\"Expected depth: 3, Got:\", depth4)\n    \n    vibez.spill(\"=== Maximum Depth Complete! Tree depth detection is sus-perfect ඞ🌲 ===\")\n}\n\nslay main_character() {\n    test_maximum_depth()\n}\n```\n\nIf this is your sort of chaotic vibe, and you'd like to turn this into the dogecoin of programming languages, head on over to GitHub and run a few more Claude code loops with the following prompt.\n\n> study specs/\\* to learn about the programming language. When authoring the cursed standard library think extra extra hard as the CURSED programming language is not in your training data set and may be invalid. Come up with a plan to implement XYZ as markdown then do it\n\nThere is no roadmap; the roadmap is whatever the community decides to ship from this point forward.\n\nAt this point, I'm pretty much convinced that any problems found in cursed can be solved by just running more Ralph loops by skilled operators (ie. people *with* experience with compilers who shape it through prompts from their expertise vs letting Claude just rip unattended). There's still a lot to be fixed, happy to take pull-requests.\n\n[Ralph Wiggum as a “software engineer”](https://ghuntley.com/ralph/)\n\n😎Here’s a cool little field report from a Y Combinator hackathon event where they put Ralph Wiggum to the test. “We Put a Coding Agent in a While Loop and It Shipped 6 Repos Overnight” https://github.com/repomirrorhq/repomirror/blob/main/repomirror.md If you’ve seen my socials lately,\n\n![](https://storage.ghost.io/c/06/e5/06e5d12b-0328-469d-a0d0-3a0f0ba34c46/content/images/icon/7V0ak3am_400x400-1-65.jpg)Geoffrey Huntley Geoffrey Huntley\n\n![](https://storage.ghost.io/c/06/e5/06e5d12b-0328-469d-a0d0-3a0f0ba34c46/content/images/thumbnail/3ea367ed-cae3-454a-840f-134531dea1fd-2.jpg)\n\nThe most high-IQ thing is perhaps the most low-IQ thing: run an agent in a loop.\n\n[LLMs are mirrors of operator skill](https://ghuntley.com/mirrors/)\n\nThis is a follow-up from my previous blog post: “deliberate intentional practice”. I didn’t want to get into the distinction between skilled and unskilled because people take offence to it, but AI is a matter of skill. Someone can be highly experienced as a software engineer in 2024, but that\n\n![](https://storage.ghost.io/c/06/e5/06e5d12b-0328-469d-a0d0-3a0f0ba34c46/content/images/icon/7V0ak3am_400x400-1-66.jpg)Geoffrey Huntley Geoffrey Huntley\n\n![](https://storage.ghost.io/c/06/e5/06e5d12b-0328-469d-a0d0-3a0f0ba34c46/content/images/thumbnail/download--2--4.jpeg)\n\nLLMs amplify the skills that developers already have and enable people to do things where they don't have that expertise yet.\n\nSuccess is defined as cursed ending up in the Stack Overflow developer survey as either the \"most loved\" or \"most hated\" programming language, and continuing the work to bootstrap the compiler to be written in cursed itself.\n\nCya soon in Discord? - [https://discord.gg/CRbJcKaGNT](https://discord.gg/CRbJcKaGNT?ref=ghuntley.com)\n\n[Claude made its own language (it took 3 months)](https://www.youtube.com/watch?v=BiFt4vw1-uM)\n\n[the 💀 cursed programming language: programming, but make it gen z](https://cursed-lang.org/?ref=ghuntley.com)\n\n![](https://static.ghost.org/v5.0.0/images/link-icon.svg)💀 cursed\n\nwebsite\n\n[GitHub - ghuntley/cursed: the 💀 cursed programming language: programming, but make it gen z](https://github.com/ghuntley/cursed?ref=ghuntley.com)\n\nthe 💀 cursed programming language: programming, but make it gen z - ghuntley/cursed\n\n![](https://storage.ghost.io/c/06/e5/06e5d12b-0328-469d-a0d0-3a0f0ba34c46/content/images/icon/pinned-octocat-093da3e6fa40-29.svg)GitHub ghuntley\n\n![](https://storage.ghost.io/c/06/e5/06e5d12b-0328-469d-a0d0-3a0f0ba34c46/content/images/thumbnail/cursed-3)\n\nsource code\n\nps. socials\n\n> I ran Claude in a loop for 3 months and created a brand new \"GenZ\" programming language.\n>\n> It's called [@cursedlang](https://twitter.com/cursedlang?ref_src=twsrc%5Etfw&ref=ghuntley.com).\n>\n> v0.0.1 is now available, and the website is ready to go.\n>\n> Details below! [pic.twitter.com/Ku5kbWMRgR](https://t.co/Ku5kbWMRgR?ref=ghuntley.com)\n>\n> — geoff (@GeoffreyHuntley) [September 9, 2025](https://twitter.com/GeoffreyHuntley/status/1965258228314636524?ref_src=twsrc%5Etfw&ref=ghuntley.com)\n",
  "authors": [
    "Geoffrey Huntley"
  ],
  "captured_at": "2026-09-27T19:29:15.293681927+00:00",
  "category": "programming",
  "content_html": "<p>It's a strange feeling knowing that you can create anything, and I'm starting to wonder if there's a seventh stage to the &quot;<a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://ghuntley.com/ngmi/\">people stages of AI adoption by software developers</a>&quot;</p>\n<figure class=\"article-figure\"><picture class=\"article-picture article-picture-fallback\" style=\"--image-ratio:16 / 9\"><img src=\"https://storage.ghost.io/c/06/e5/06e5d12b-0328-469d-a0d0-3a0f0ba34c46/content/images/2025/03/image-17.png\" alt=\"\" loading=\"eager\" decoding=\"async\" fetchpriority=\"high\" referrerpolicy=\"no-referrer\" class=\"progressive-image\"></picture></p>\n<p>whereby that seventh stage is essentially this scene in the matrix...</p>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://www.youtube.com/watch?v=0YhJxJZOWBw\">The Matrix - 'I Know Kung Fu'</a></p>\n<p>It's where you deeply understand that '<a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://ghuntley.com/dothings/\">you can now do anything</a>' and just start doing it because it's possible and fun, and doing so is faster than explaining yourself. Outcomes speak louder than words.</p>\n<p>There's a falsehood that AI results in SWE's skill atrophy, and there's no learning potential.</p>\n<blockquote>\n<p>If you’re using AI only to “do” and not “learn”, you are missing out<br />\n- <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://x.com/davidfowl/status/1910930253608001565?ref=ghuntley.com\">David Fowler</a></p>\n</blockquote>\n<p>I've never written a compiler, yet I've always wanted to do one, so I've been working on one for the last three months by running Claude in a while true loop (aka &quot;<a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://ghuntley.com/ralph\">Ralph Wiggum</a>&quot;) with a simple prompt:</p>\n<blockquote>\n<p>Hey, can you make me a programming language like Golang but all the lexical keywords are swapped so they're Gen Z slang?</p>\n</blockquote>\n<p>Why? I really don't know. But it exists. And it produces compiled programs. During this period, Claude was able to implement anything that Claude desired.</p>\n<p>The programming language is called &quot;cursed&quot;. It's cursed in its lexical structure, it's cursed in how it was built, it's cursed that this is possible, it's cursed in how cheap this was, and it's cursed through how many times I've sworn at Claude.</p>\n<p><picture class=\"article-picture article-picture-fallback\" style=\"--image-ratio:16 / 9\"><img src=\"https://storage.ghost.io/c/06/e5/06e5d12b-0328-469d-a0d0-3a0f0ba34c46/content/images/size/w2400/2025/09/image-1.png\" alt=\"\" loading=\"lazy\" decoding=\"async\" fetchpriority=\"low\" referrerpolicy=\"no-referrer\" class=\"progressive-image\"></picture><figcaption><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://cursed-lang.org/\">https://cursed-lang.org/</a></figcaption></figure>\n<p>For the last three months, Claude has been running in this loop with a single goal:</p>\n<blockquote>\n<p>&quot;Produce me a Gen-Z compiler, and you can implement anything you like.&quot;</p>\n</blockquote>\n<p>It's now available at:</p>\n<ul>\n<li><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://cursed-lang.org/?ref=ghuntley.com\">https://cursed-lang.org/</a></li>\n<li><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/ghuntley/cursed?ref=ghuntley.com\">https://github.com/ghuntley/cursed</a></li>\n</ul>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://cursed-lang.org/?ref=ghuntley.com\">the 💀 cursed programming language: programming, but make it gen z</a></p>\n<p><picture class=\"article-picture article-picture-fallback\" style=\"--image-ratio:16 / 9\"><img src=\"https://static.ghost.org/v5.0.0/images/link-icon.svg\" alt=\"\" loading=\"lazy\" decoding=\"async\" fetchpriority=\"low\" referrerpolicy=\"no-referrer\" class=\"progressive-image\"></picture>💀 cursed</p>\n<p>the website</p>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/ghuntley/cursed?ref=ghuntley.com\">GitHub - ghuntley/cursed: the 💀 cursed programming language: programming, but make it gen z</a></p>\n<p>the 💀 cursed programming language: programming, but make it gen z - ghuntley/cursed</p>\n<p><picture class=\"article-picture article-picture-fallback\" style=\"--image-ratio:16 / 9\"><img src=\"https://storage.ghost.io/c/06/e5/06e5d12b-0328-469d-a0d0-3a0f0ba34c46/content/images/icon/pinned-octocat-093da3e6fa40-28.svg\" alt=\"\" loading=\"lazy\" decoding=\"async\" fetchpriority=\"low\" referrerpolicy=\"no-referrer\" class=\"progressive-image\"></picture>GitHub ghuntley</p>\n<p><picture class=\"article-picture article-picture-fallback\" style=\"--image-ratio:16 / 9\"><img src=\"https://storage.ghost.io/c/06/e5/06e5d12b-0328-469d-a0d0-3a0f0ba34c46/content/images/thumbnail/cursed-2\" alt=\"\" loading=\"lazy\" decoding=\"async\" fetchpriority=\"low\" referrerpolicy=\"no-referrer\" class=\"progressive-image\"></picture></p>\n<p>the source code</p>\n<h2>whats included?</h2>\n<p>Anything that Claude thought was appropriate to add. Currently...</p>\n<ul>\n<li>The compiler has two modes: interpreted mode and compiled mode. It's able to produce binaries on Mac OS, Linux, and Windows via LLVM.</li>\n<li>There are some half-completed VSCode, Emacs, and Vim editor extensions, and a Treesitter grammar.</li>\n<li>A whole bunch of really wild and incomplete standard library packages.</li>\n</ul>\n<h2>lexical structure</h2>\n<p><strong>Control Flow:</strong><br />\n<code>ready</code> → if<br />\n<code>otherwise</code> → else<br />\n<code>bestie</code> → for<br />\n<code>periodt</code> → while<br />\n<code>vibe_check</code> → switch<br />\n<code>mood</code> → case<br />\n<code>basic</code> → default</p>\n<p><strong>Declaration:</strong><br />\n<code>vibe</code> → package<br />\n<code>yeet</code> → import<br />\n<code>slay</code> → func<br />\n<code>sus</code> → var<br />\n<code>facts</code> → const<br />\n<code>be_like</code> → type<br />\n<code>squad</code> → struct</p>\n<p><strong>Flow Control:</strong><br />\n<code>damn</code> → return<br />\n<code>ghosted</code> → break<br />\n<code>simp</code> → continue<br />\n<code>later</code> → defer<br />\n<code>stan</code> → go<br />\n<code>flex</code> → range</p>\n<p><strong>Values &amp; Types:</strong><br />\n<code>based</code> → true<br />\n<code>cringe</code> → false<br />\n<code>nah</code> → nil<br />\n<code>normie</code> → int<br />\n<code>tea</code> → string<br />\n<code>drip</code> → float<br />\n<code>lit</code> → bool<br />\n<code>ඞT</code> (Amogus) → pointer to type T</p>\n<p><strong>Comments:</strong><br />\n<code>fr fr</code> → line comment<br />\n<code>no cap...on god</code> → block comment</p>\n<h2>example program</h2>\n<p>Here is leetcode 104 - maximum depth for a binary tree:</p>\n<pre><code><span class=\"code-snippet\">vibe main\nyeet &quot;vibez&quot;\nyeet &quot;mathz&quot;\n\n// LeetCode #104: Maximum Depth of Binary Tree 🌲\n// Find the maximum depth (height) of a binary tree using ඞ pointers\n// Time: O(n), Space: O(h) where h is height\n\nstruct TreeNode {\n    sus val normie\n    sus left ඞTreeNode   \n    sus right ඞTreeNode  \n}\n\nslay max_depth(root ඞTreeNode) normie {\n    ready (root == null) {\n        damn 0  // Base case: empty tree has depth 0\n    }\n    \n    sus left_depth normie = max_depth(root.left)\n    sus right_depth normie = max_depth(root.right)\n    \n    // Return 1 + max of left and right subtree depths\n    damn 1 + mathz.max(left_depth, right_depth)\n}\n\nslay max_depth_iterative(root ඞTreeNode) normie {\n    // BFS approach using queue - this hits different! 🚀\n    ready (root == null) {\n        damn 0\n    }\n    \n    sus queue ඞTreeNode[] = []ඞTreeNode{}\n    sus levels normie[] = []normie{}\n    \n    append(queue, root)\n    append(levels, 1)\n    \n    sus max_level normie = 0\n    \n    bestie (len(queue) &gt; 0) {\n        sus node ඞTreeNode = queue[0]\n        sus level normie = levels[0]\n        \n        // Remove from front of queue\n        collections.remove_first(queue)\n        collections.remove_first(levels)\n        \n        max_level = mathz.max(max_level, level)\n        \n        ready (node.left != null) {\n            append(queue, node.left)\n            append(levels, level + 1)\n        }\n        \n        ready (node.right != null) {\n            append(queue, node.right)\n            append(levels, level + 1)\n        }\n    }\n    \n    damn max_level\n}\n\nslay create_test_tree() ඞTreeNode {\n    // Create tree: [3,9,20,null,null,15,7]\n    //       3\n    //      / \\\n    //     9   20\n    //        /  \\\n    //       15   7\n    \n    sus root ඞTreeNode = &amp;TreeNode{val: 3, left: null, right: null}\n    root.left = &amp;TreeNode{val: 9, left: null, right: null}\n    root.right = &amp;TreeNode{val: 20, left: null, right: null}\n    root.right.left = &amp;TreeNode{val: 15, left: null, right: null}\n    root.right.right = &amp;TreeNode{val: 7, left: null, right: null}\n    \n    damn root\n}\n\nslay create_skewed_tree() ඞTreeNode {\n    // Create skewed tree for testing edge cases\n    //   1\n    //    \\\n    //     2\n    //      \\\n    //       3\n    \n    sus root ඞTreeNode = &amp;TreeNode{val: 1, left: null, right: null}\n    root.right = &amp;TreeNode{val: 2, left: null, right: null}\n    root.right.right = &amp;TreeNode{val: 3, left: null, right: null}\n    \n    damn root\n}\n\nslay test_maximum_depth() {\n    vibez.spill(&quot;=== 🌲 LeetCode #104: Maximum Depth of Binary Tree ===&quot;)\n    \n    // Test case 1: Balanced tree [3,9,20,null,null,15,7]\n    sus root1 ඞTreeNode = create_test_tree()\n    sus depth1_rec normie = max_depth(root1)\n    sus depth1_iter normie = max_depth_iterative(root1)\n    vibez.spill(&quot;Test 1 - Balanced tree:&quot;)\n    vibez.spill(&quot;Expected depth: 3&quot;)\n    vibez.spill(&quot;Recursive result:&quot;, depth1_rec)\n    vibez.spill(&quot;Iterative result:&quot;, depth1_iter)\n    \n    // Test case 2: Empty tree\n    sus root2 ඞTreeNode = null\n    sus depth2 normie = max_depth(root2)\n    vibez.spill(&quot;Test 2 - Empty tree:&quot;)\n    vibez.spill(&quot;Expected depth: 0, Got:&quot;, depth2)\n    \n    // Test case 3: Single node [1]\n    sus root3 ඞTreeNode = &amp;TreeNode{val: 1, left: null, right: null}\n    sus depth3 normie = max_depth(root3)\n    vibez.spill(&quot;Test 3 - Single node:&quot;)\n    vibez.spill(&quot;Expected depth: 1, Got:&quot;, depth3)\n    \n    // Test case 4: Skewed tree\n    sus root4 ඞTreeNode = create_skewed_tree()\n    sus depth4 normie = max_depth(root4)\n    vibez.spill(&quot;Test 4 - Skewed tree:&quot;)\n    vibez.spill(&quot;Expected depth: 3, Got:&quot;, depth4)\n    \n    vibez.spill(&quot;=== Maximum Depth Complete! Tree depth detection is sus-perfect ඞ🌲 ===&quot;)\n}\n\nslay main_character() {\n    test_maximum_depth()\n}\n</span></code></pre>\n<p>If this is your sort of chaotic vibe, and you'd like to turn this into the dogecoin of programming languages, head on over to GitHub and run a few more Claude code loops with the following prompt.</p>\n<blockquote>\n<p>study specs/* to learn about the programming language. When authoring the cursed standard library think extra extra hard as the CURSED programming language is not in your training data set and may be invalid. Come up with a plan to implement XYZ as markdown then do it</p>\n</blockquote>\n<p>There is no roadmap; the roadmap is whatever the community decides to ship from this point forward.</p>\n<p>At this point, I'm pretty much convinced that any problems found in cursed can be solved by just running more Ralph loops by skilled operators (ie. people <em>with</em> experience with compilers who shape it through prompts from their expertise vs letting Claude just rip unattended). There's still a lot to be fixed, happy to take pull-requests.</p>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://ghuntley.com/ralph/\">Ralph Wiggum as a “software engineer”</a></p>\n<p>😎Here’s a cool little field report from a Y Combinator hackathon event where they put Ralph Wiggum to the test. “We Put a Coding Agent in a While Loop and It Shipped 6 Repos Overnight” <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/repomirrorhq/repomirror/blob/main/repomirror.md\">https://github.com/repomirrorhq/repomirror/blob/main/repomirror.md</a> If you’ve seen my socials lately,</p>\n<p><picture class=\"article-picture article-picture-fallback\" style=\"--image-ratio:16 / 9\"><img src=\"https://storage.ghost.io/c/06/e5/06e5d12b-0328-469d-a0d0-3a0f0ba34c46/content/images/icon/7V0ak3am_400x400-1-65.jpg\" alt=\"\" loading=\"lazy\" decoding=\"async\" fetchpriority=\"low\" referrerpolicy=\"no-referrer\" class=\"progressive-image\"></picture>Geoffrey Huntley Geoffrey Huntley</p>\n<p><picture class=\"article-picture article-picture-fallback\" style=\"--image-ratio:16 / 9\"><img src=\"https://storage.ghost.io/c/06/e5/06e5d12b-0328-469d-a0d0-3a0f0ba34c46/content/images/thumbnail/3ea367ed-cae3-454a-840f-134531dea1fd-2.jpg\" alt=\"\" loading=\"lazy\" decoding=\"async\" fetchpriority=\"low\" referrerpolicy=\"no-referrer\" class=\"progressive-image\"></picture></p>\n<p>The most high-IQ thing is perhaps the most low-IQ thing: run an agent in a loop.</p>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://ghuntley.com/mirrors/\">LLMs are mirrors of operator skill</a></p>\n<p>This is a follow-up from my previous blog post: “deliberate intentional practice”. I didn’t want to get into the distinction between skilled and unskilled because people take offence to it, but AI is a matter of skill. Someone can be highly experienced as a software engineer in 2024, but that</p>\n<p><picture class=\"article-picture article-picture-fallback\" style=\"--image-ratio:16 / 9\"><img src=\"https://storage.ghost.io/c/06/e5/06e5d12b-0328-469d-a0d0-3a0f0ba34c46/content/images/icon/7V0ak3am_400x400-1-66.jpg\" alt=\"\" loading=\"lazy\" decoding=\"async\" fetchpriority=\"low\" referrerpolicy=\"no-referrer\" class=\"progressive-image\"></picture>Geoffrey Huntley Geoffrey Huntley</p>\n<p><picture class=\"article-picture article-picture-fallback\" style=\"--image-ratio:16 / 9\"><img src=\"https://storage.ghost.io/c/06/e5/06e5d12b-0328-469d-a0d0-3a0f0ba34c46/content/images/thumbnail/download--2--4.jpeg\" alt=\"\" loading=\"lazy\" decoding=\"async\" fetchpriority=\"low\" referrerpolicy=\"no-referrer\" class=\"progressive-image\"></picture></p>\n<p>LLMs amplify the skills that developers already have and enable people to do things where they don't have that expertise yet.</p>\n<p>Success is defined as cursed ending up in the Stack Overflow developer survey as either the &quot;most loved&quot; or &quot;most hated&quot; programming language, and continuing the work to bootstrap the compiler to be written in cursed itself.</p>\n<p>Cya soon in Discord? - <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://discord.gg/CRbJcKaGNT?ref=ghuntley.com\">https://discord.gg/CRbJcKaGNT</a></p>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://www.youtube.com/watch?v=BiFt4vw1-uM\">Claude made its own language (it took 3 months)</a></p>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://cursed-lang.org/?ref=ghuntley.com\">the 💀 cursed programming language: programming, but make it gen z</a></p>\n<p><picture class=\"article-picture article-picture-fallback\" style=\"--image-ratio:16 / 9\"><img src=\"https://static.ghost.org/v5.0.0/images/link-icon.svg\" alt=\"\" loading=\"lazy\" decoding=\"async\" fetchpriority=\"low\" referrerpolicy=\"no-referrer\" class=\"progressive-image\"></picture>💀 cursed</p>\n<p>website</p>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/ghuntley/cursed?ref=ghuntley.com\">GitHub - ghuntley/cursed: the 💀 cursed programming language: programming, but make it gen z</a></p>\n<p>the 💀 cursed programming language: programming, but make it gen z - ghuntley/cursed</p>\n<p><picture class=\"article-picture article-picture-fallback\" style=\"--image-ratio:16 / 9\"><img src=\"https://storage.ghost.io/c/06/e5/06e5d12b-0328-469d-a0d0-3a0f0ba34c46/content/images/icon/pinned-octocat-093da3e6fa40-29.svg\" alt=\"\" loading=\"lazy\" decoding=\"async\" fetchpriority=\"low\" referrerpolicy=\"no-referrer\" class=\"progressive-image\"></picture>GitHub ghuntley</p>\n<p><picture class=\"article-picture article-picture-fallback\" style=\"--image-ratio:16 / 9\"><img src=\"https://storage.ghost.io/c/06/e5/06e5d12b-0328-469d-a0d0-3a0f0ba34c46/content/images/thumbnail/cursed-3\" alt=\"\" loading=\"lazy\" decoding=\"async\" fetchpriority=\"low\" referrerpolicy=\"no-referrer\" class=\"progressive-image\"></picture></p>\n<p>source code</p>\n<p>ps. socials</p>\n<blockquote>\n<p>I ran Claude in a loop for 3 months and created a brand new &quot;GenZ&quot; programming language.</p>\n<p>It's called <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://twitter.com/cursedlang?ref_src=twsrc%5Etfw&amp;ref=ghuntley.com\">@cursedlang</a>.</p>\n<p>v0.0.1 is now available, and the website is ready to go.</p>\n<p>Details below! <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://t.co/Ku5kbWMRgR?ref=ghuntley.com\">pic.twitter.com/Ku5kbWMRgR</a></p>\n<p>— geoff (@GeoffreyHuntley) <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://twitter.com/GeoffreyHuntley/status/1965258228314636524?ref_src=twsrc%5Etfw&amp;ref=ghuntley.com\">September 9, 2025</a></p>\n</blockquote>\n",
  "content_markdown": "It's a strange feeling knowing that you can create anything, and I'm starting to wonder if there's a seventh stage to the \"[people stages of AI adoption by software developers](https://ghuntley.com/ngmi/)\"\n\n![](https://storage.ghost.io/c/06/e5/06e5d12b-0328-469d-a0d0-3a0f0ba34c46/content/images/2025/03/image-17.png)\n\nwhereby that seventh stage is essentially this scene in the matrix...\n\n[The Matrix - 'I Know Kung Fu'](https://www.youtube.com/watch?v=0YhJxJZOWBw)\n\nIt's where you deeply understand that '[you can now do anything](https://ghuntley.com/dothings/)' and just start doing it because it's possible and fun, and doing so is faster than explaining yourself. Outcomes speak louder than words.\n\nThere's a falsehood that AI results in SWE's skill atrophy, and there's no learning potential.\n\n> If you’re using AI only to “do” and not “learn”, you are missing out\\\n> \\- [David Fowler](https://x.com/davidfowl/status/1910930253608001565?ref=ghuntley.com)\n\nI've never written a compiler, yet I've always wanted to do one, so I've been working on one for the last three months by running Claude in a while true loop (aka \"[Ralph Wiggum](https://ghuntley.com/ralph)\") with a simple prompt:\n\n> Hey, can you make me a programming language like Golang but all the lexical keywords are swapped so they're Gen Z slang?\n\nWhy? I really don't know. But it exists. And it produces compiled programs. During this period, Claude was able to implement anything that Claude desired.\n\nThe programming language is called \"cursed\". It's cursed in its lexical structure, it's cursed in how it was built, it's cursed that this is possible, it's cursed in how cheap this was, and it's cursed through how many times I've sworn at Claude.\n\n![](https://storage.ghost.io/c/06/e5/06e5d12b-0328-469d-a0d0-3a0f0ba34c46/content/images/size/w2400/2025/09/image-1.png)\\\nhttps://cursed-lang.org/\n\nFor the last three months, Claude has been running in this loop with a single goal:\n\n> \"Produce me a Gen-Z compiler, and you can implement anything you like.\"\n\nIt's now available at:\n\n- [https://cursed-lang.org/](https://cursed-lang.org/?ref=ghuntley.com)\n- [https://github.com/ghuntley/cursed](https://github.com/ghuntley/cursed?ref=ghuntley.com)\n\n[the 💀 cursed programming language: programming, but make it gen z](https://cursed-lang.org/?ref=ghuntley.com)\n\n![](https://static.ghost.org/v5.0.0/images/link-icon.svg)💀 cursed\n\nthe website\n\n[GitHub - ghuntley/cursed: the 💀 cursed programming language: programming, but make it gen z](https://github.com/ghuntley/cursed?ref=ghuntley.com)\n\nthe 💀 cursed programming language: programming, but make it gen z - ghuntley/cursed\n\n![](https://storage.ghost.io/c/06/e5/06e5d12b-0328-469d-a0d0-3a0f0ba34c46/content/images/icon/pinned-octocat-093da3e6fa40-28.svg)GitHub ghuntley\n\n![](https://storage.ghost.io/c/06/e5/06e5d12b-0328-469d-a0d0-3a0f0ba34c46/content/images/thumbnail/cursed-2)\n\nthe source code\n\n## whats included?\n\nAnything that Claude thought was appropriate to add. Currently...\n\n- The compiler has two modes: interpreted mode and compiled mode. It's able to produce binaries on Mac OS, Linux, and Windows via LLVM.\n- There are some half-completed VSCode, Emacs, and Vim editor extensions, and a Treesitter grammar.\n- A whole bunch of really wild and incomplete standard library packages.\n\n## lexical structure\n\n**Control Flow:**\\\n`ready` → if\\\n`otherwise` → else\\\n`bestie` → for\\\n`periodt` → while\\\n`vibe_check` → switch\\\n`mood` → case\\\n`basic` → default\n\n**Declaration:**\\\n`vibe` → package\\\n`yeet` → import\\\n`slay` → func\\\n`sus` → var\\\n`facts` → const\\\n`be_like` → type\\\n`squad` → struct\n\n**Flow Control:**\\\n`damn` → return\\\n`ghosted` → break\\\n`simp` → continue\\\n`later` → defer\\\n`stan` → go\\\n`flex` → range\n\n**Values & Types:**\\\n`based` → true\\\n`cringe` → false\\\n`nah` → nil\\\n`normie` → int\\\n`tea` → string\\\n`drip` → float\\\n`lit` → bool\\\n`ඞT` (Amogus) → pointer to type T\n\n**Comments:**\\\n`fr fr` → line comment\\\n`no cap...on god` → block comment\n\n## example program\n\nHere is leetcode 104 - maximum depth for a binary tree:\n\n```\nvibe main\nyeet \"vibez\"\nyeet \"mathz\"\n\n// LeetCode #104: Maximum Depth of Binary Tree 🌲\n// Find the maximum depth (height) of a binary tree using ඞ pointers\n// Time: O(n), Space: O(h) where h is height\n\nstruct TreeNode {\n    sus val normie\n    sus left ඞTreeNode   \n    sus right ඞTreeNode  \n}\n\nslay max_depth(root ඞTreeNode) normie {\n    ready (root == null) {\n        damn 0  // Base case: empty tree has depth 0\n    }\n    \n    sus left_depth normie = max_depth(root.left)\n    sus right_depth normie = max_depth(root.right)\n    \n    // Return 1 + max of left and right subtree depths\n    damn 1 + mathz.max(left_depth, right_depth)\n}\n\nslay max_depth_iterative(root ඞTreeNode) normie {\n    // BFS approach using queue - this hits different! 🚀\n    ready (root == null) {\n        damn 0\n    }\n    \n    sus queue ඞTreeNode[] = []ඞTreeNode{}\n    sus levels normie[] = []normie{}\n    \n    append(queue, root)\n    append(levels, 1)\n    \n    sus max_level normie = 0\n    \n    bestie (len(queue) > 0) {\n        sus node ඞTreeNode = queue[0]\n        sus level normie = levels[0]\n        \n        // Remove from front of queue\n        collections.remove_first(queue)\n        collections.remove_first(levels)\n        \n        max_level = mathz.max(max_level, level)\n        \n        ready (node.left != null) {\n            append(queue, node.left)\n            append(levels, level + 1)\n        }\n        \n        ready (node.right != null) {\n            append(queue, node.right)\n            append(levels, level + 1)\n        }\n    }\n    \n    damn max_level\n}\n\nslay create_test_tree() ඞTreeNode {\n    // Create tree: [3,9,20,null,null,15,7]\n    //       3\n    //      / \\\n    //     9   20\n    //        /  \\\n    //       15   7\n    \n    sus root ඞTreeNode = &TreeNode{val: 3, left: null, right: null}\n    root.left = &TreeNode{val: 9, left: null, right: null}\n    root.right = &TreeNode{val: 20, left: null, right: null}\n    root.right.left = &TreeNode{val: 15, left: null, right: null}\n    root.right.right = &TreeNode{val: 7, left: null, right: null}\n    \n    damn root\n}\n\nslay create_skewed_tree() ඞTreeNode {\n    // Create skewed tree for testing edge cases\n    //   1\n    //    \\\n    //     2\n    //      \\\n    //       3\n    \n    sus root ඞTreeNode = &TreeNode{val: 1, left: null, right: null}\n    root.right = &TreeNode{val: 2, left: null, right: null}\n    root.right.right = &TreeNode{val: 3, left: null, right: null}\n    \n    damn root\n}\n\nslay test_maximum_depth() {\n    vibez.spill(\"=== 🌲 LeetCode #104: Maximum Depth of Binary Tree ===\")\n    \n    // Test case 1: Balanced tree [3,9,20,null,null,15,7]\n    sus root1 ඞTreeNode = create_test_tree()\n    sus depth1_rec normie = max_depth(root1)\n    sus depth1_iter normie = max_depth_iterative(root1)\n    vibez.spill(\"Test 1 - Balanced tree:\")\n    vibez.spill(\"Expected depth: 3\")\n    vibez.spill(\"Recursive result:\", depth1_rec)\n    vibez.spill(\"Iterative result:\", depth1_iter)\n    \n    // Test case 2: Empty tree\n    sus root2 ඞTreeNode = null\n    sus depth2 normie = max_depth(root2)\n    vibez.spill(\"Test 2 - Empty tree:\")\n    vibez.spill(\"Expected depth: 0, Got:\", depth2)\n    \n    // Test case 3: Single node [1]\n    sus root3 ඞTreeNode = &TreeNode{val: 1, left: null, right: null}\n    sus depth3 normie = max_depth(root3)\n    vibez.spill(\"Test 3 - Single node:\")\n    vibez.spill(\"Expected depth: 1, Got:\", depth3)\n    \n    // Test case 4: Skewed tree\n    sus root4 ඞTreeNode = create_skewed_tree()\n    sus depth4 normie = max_depth(root4)\n    vibez.spill(\"Test 4 - Skewed tree:\")\n    vibez.spill(\"Expected depth: 3, Got:\", depth4)\n    \n    vibez.spill(\"=== Maximum Depth Complete! Tree depth detection is sus-perfect ඞ🌲 ===\")\n}\n\nslay main_character() {\n    test_maximum_depth()\n}\n```\n\nIf this is your sort of chaotic vibe, and you'd like to turn this into the dogecoin of programming languages, head on over to GitHub and run a few more Claude code loops with the following prompt.\n\n> study specs/\\* to learn about the programming language. When authoring the cursed standard library think extra extra hard as the CURSED programming language is not in your training data set and may be invalid. Come up with a plan to implement XYZ as markdown then do it\n\nThere is no roadmap; the roadmap is whatever the community decides to ship from this point forward.\n\nAt this point, I'm pretty much convinced that any problems found in cursed can be solved by just running more Ralph loops by skilled operators (ie. people *with* experience with compilers who shape it through prompts from their expertise vs letting Claude just rip unattended). There's still a lot to be fixed, happy to take pull-requests.\n\n[Ralph Wiggum as a “software engineer”](https://ghuntley.com/ralph/)\n\n😎Here’s a cool little field report from a Y Combinator hackathon event where they put Ralph Wiggum to the test. “We Put a Coding Agent in a While Loop and It Shipped 6 Repos Overnight” https://github.com/repomirrorhq/repomirror/blob/main/repomirror.md If you’ve seen my socials lately,\n\n![](https://storage.ghost.io/c/06/e5/06e5d12b-0328-469d-a0d0-3a0f0ba34c46/content/images/icon/7V0ak3am_400x400-1-65.jpg)Geoffrey Huntley Geoffrey Huntley\n\n![](https://storage.ghost.io/c/06/e5/06e5d12b-0328-469d-a0d0-3a0f0ba34c46/content/images/thumbnail/3ea367ed-cae3-454a-840f-134531dea1fd-2.jpg)\n\nThe most high-IQ thing is perhaps the most low-IQ thing: run an agent in a loop.\n\n[LLMs are mirrors of operator skill](https://ghuntley.com/mirrors/)\n\nThis is a follow-up from my previous blog post: “deliberate intentional practice”. I didn’t want to get into the distinction between skilled and unskilled because people take offence to it, but AI is a matter of skill. Someone can be highly experienced as a software engineer in 2024, but that\n\n![](https://storage.ghost.io/c/06/e5/06e5d12b-0328-469d-a0d0-3a0f0ba34c46/content/images/icon/7V0ak3am_400x400-1-66.jpg)Geoffrey Huntley Geoffrey Huntley\n\n![](https://storage.ghost.io/c/06/e5/06e5d12b-0328-469d-a0d0-3a0f0ba34c46/content/images/thumbnail/download--2--4.jpeg)\n\nLLMs amplify the skills that developers already have and enable people to do things where they don't have that expertise yet.\n\nSuccess is defined as cursed ending up in the Stack Overflow developer survey as either the \"most loved\" or \"most hated\" programming language, and continuing the work to bootstrap the compiler to be written in cursed itself.\n\nCya soon in Discord? - [https://discord.gg/CRbJcKaGNT](https://discord.gg/CRbJcKaGNT?ref=ghuntley.com)\n\n[Claude made its own language (it took 3 months)](https://www.youtube.com/watch?v=BiFt4vw1-uM)\n\n[the 💀 cursed programming language: programming, but make it gen z](https://cursed-lang.org/?ref=ghuntley.com)\n\n![](https://static.ghost.org/v5.0.0/images/link-icon.svg)💀 cursed\n\nwebsite\n\n[GitHub - ghuntley/cursed: the 💀 cursed programming language: programming, but make it gen z](https://github.com/ghuntley/cursed?ref=ghuntley.com)\n\nthe 💀 cursed programming language: programming, but make it gen z - ghuntley/cursed\n\n![](https://storage.ghost.io/c/06/e5/06e5d12b-0328-469d-a0d0-3a0f0ba34c46/content/images/icon/pinned-octocat-093da3e6fa40-29.svg)GitHub ghuntley\n\n![](https://storage.ghost.io/c/06/e5/06e5d12b-0328-469d-a0d0-3a0f0ba34c46/content/images/thumbnail/cursed-3)\n\nsource code\n\nps. socials\n\n> I ran Claude in a loop for 3 months and created a brand new \"GenZ\" programming language.\n>\n> It's called [@cursedlang](https://twitter.com/cursedlang?ref_src=twsrc%5Etfw&ref=ghuntley.com).\n>\n> v0.0.1 is now available, and the website is ready to go.\n>\n> Details below! [pic.twitter.com/Ku5kbWMRgR](https://t.co/Ku5kbWMRgR?ref=ghuntley.com)\n>\n> — geoff (@GeoffreyHuntley) [September 9, 2025](https://twitter.com/GeoffreyHuntley/status/1965258228314636524?ref_src=twsrc%5Etfw&ref=ghuntley.com)\n",
  "dateCreated": "2026-09-27T19:29:15.293681927+00:00",
  "date_created": "2025-09-09T03:36:48+00:00",
  "date_modified": "2025-09-09T03:36:48+00:00",
  "date_published": "2025-09-09T03:36:48+00:00",
  "description": "It's a strange feeling knowing that you can create anything, and I'm starting to wonder if there's a seventh stage to the \"people stages of AI adoption by software developers\" whereby that seventh stage is essentially this scene in the…",
  "external_url": "https://ghuntley.com/cursed/",
  "git": {
    "commit": "ebb0941c5c06a2ab2377342d607535262a3e969e",
    "path": "items/ghuntley-com/2025/09/2025-09-09-i-ran-claude-in-a-loop-for-three-months-and-it-created-a.md",
    "permalink": "https://github.com/aymericbeaumet/aggr-instance/blob/ebb0941c5c06a2ab2377342d607535262a3e969e/items/ghuntley-com/2025/09/2025-09-09-i-ran-claude-in-a-loop-for-three-months-and-it-created-a.md"
  },
  "id": "urn:aggr:item:d8b7d3fde70f7bb1f9023ede12f40ad81ed66a6f",
  "isBasedOn": {
    "@id": "https://ghuntley.com/cursed/"
  },
  "mainEntity": {
    "@id": "https://ghuntley.com/cursed/",
    "@type": "CreativeWork",
    "archivedAt": {
      "@id": "https://aggr.aymericbeaumet.com/items/ghuntley-com/2025-09-09-i-ran-claude-in-a-loop-for-three-months-and-it-created-a/#webpage"
    },
    "author": [
      {
        "@type": "Person",
        "name": "Geoffrey Huntley"
      }
    ],
    "dateModified": "2025-09-09T03:36:48+00:00",
    "datePublished": "2025-09-09T03:36:48+00:00",
    "headline": "i ran Claude in a loop for three months, and it created a genz programming language called cursed",
    "timeRequired": "PT6M",
    "url": "https://ghuntley.com/cursed/",
    "wordCount": 1346
  },
  "name": "Archived snapshot: i ran Claude in a loop for three months, and it created a genz programming language called cursed",
  "preview": null,
  "reading_minutes": 6,
  "replicated_at": null,
  "source": "ghuntley-com",
  "source_name": "Geoffrey Huntley",
  "summary": "It's a strange feeling knowing that you can create anything, and I'm starting to wonder if there's a seventh stage to the \"people stages of AI adoption by software developers\" whereby that seventh stage is essentially this scene in the matrix... It&",
  "tags": [
    "ai",
    "vibe coding"
  ],
  "temporalCoverage": "2026-09-27T19:29:15.293681927+00:00",
  "title": "i ran Claude in a loop for three months, and it created a genz programming language called cursed",
  "url": "https://aggr.aymericbeaumet.com/items/ghuntley-com/2025-09-09-i-ran-claude-in-a-loop-for-three-months-and-it-created-a/",
  "word_count": 1346
}