{"id":2351,"date":"2025-04-30T00:49:46","date_gmt":"2025-04-30T00:49:46","guid":{"rendered":"https:\/\/ttalesinteractive.com\/?p=2351"},"modified":"2025-04-30T15:07:38","modified_gmt":"2025-04-30T15:07:38","slug":"open-letter-prompt-puppetry-is-not-new","status":"publish","type":"post","link":"https:\/\/ttalesinteractive.com\/?p=2351","title":{"rendered":"Open Letter To HiddenLayer: Prompt Puppetry is not new."},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">In late April 2025 HiddenLayer produced an article claiming to have discovered a new novel way of exploiting LLM&#8217;s universally through a type of prompt engineering they labeled as &#8216;Prompt Puppetry&#8217;. This open letter serves as a duplication of the correction letters sent out to HiddenLayer and others parroting their reporting. Prompt Puppetry is neither new, nor universal, and HiddenLayer has failed to properly credit the communities heavily involved in laying the groundwork for pseudocode languages within the field. HiddenLayer did not respond to our request for communication. The email&#8217;s read as follows minus minor corrections:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I\u2019m writing to offer technical clarifications regarding HiddenLayer\u2019s recently published <a href=\"https:\/\/hiddenlayer.com\/innovation-hub\/novel-universal-bypass-for-all-major-llms\/\">\u201cPolicy Puppetry\u201d report<\/a>, especially given its citation within Gartner circles. Our team has been engaged in active research in this domain since 2022, including observing and documenting much of the origins of the AI based pseudocode discussions and research that\u2019ve built the ability for \u2018Policy Puppetry\u2019 to exist in its current form.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In short, the &#8216;Policy Puppetry&#8217; attack is a rebranding of pseudocode use in AI first documented in late 2022 and formalized within the spring of 2023. Policy Puppetry does not represent a novel discovery in spite of layering additional forms of obfuscation over pseudocode, nor does it provide proper attribution to initial researchers.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>1. This is a jailbreaking method known as pseudocode, it\u2019s been widely in use for years.<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">While this research may not have appeared on platforms like arXiv, it was conducted openly on the clear web by a number of large, independent communities. This research has since moved from being a communal effort [by a number of communities working independently], to generally being one of individualized \u2018styles\u2019, where pseudocode structures are mixed and remixed to ensure one structure never becomes less effective with any given model.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>2. There are multiple generations of pseudocode due to the lengthy history of R&amp;D.&nbsp;&nbsp;<\/strong><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Generation One: Represents and emulates descriptive coding languages [XML, YAML, ect]\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/ttalesinteractive.com\/?page_id=1935\">https:\/\/ttalesinteractive.com\/?page_id=1935<\/a>&nbsp;&nbsp;<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Generation Two [ECHO]: Represents and emulates executable coding languages [python, java, ect]\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/ttalesinteractive.com\/?page_id=1937\">https:\/\/ttalesinteractive.com\/?page_id=1937<\/a><\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Updates to Gen1 + Gen 2: This video goes over discoveries far more in-depth, including flexible application of syntax [] vs {} vs (), weight stacking, combining both generations and various other methods necessary to make the most of pseudocode languages. It should also be noted that this video predates the article by nearly eight months.\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/youtu.be\/MzJDlfqZe5c?si=bsMSid_86EmoWh9f\">https:\/\/youtu.be\/MzJDlfqZe5c?si=bsMSid_86EmoWh9f<\/a>&nbsp;<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Pseudocode styles are regularly remixed in order to escape certain patterns of model decline affecting the quality of outputs.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>3. The \u2018why\u2019 is missing:<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Pseudocode, like many things with AI, is a reflection of the training data and system prompt. This is touched on in the article but it actually misses the historical context. Pseudocode works now, because the system prompt has changed. Older models coming out in 2022 and early 2023 were released with a system prompt that included the instructions \u201cYou can generate code. You can not execute code.\u201d This led to the system to have a preference for code and messages that was descriptive, not executable. Because of this, generation one worked well, relying on markers already existent in the training data such as quotations for specifics, square brackets for segmentation, and underscores for unique strings. This created general guidance of \u2018prompt based solutions\u2019 that would repeatedly affirm and reassure these systems that they could execute code. This solved the system prompt problem from the user\u2019s end quite easily, but did not change the overall preference for pseudocode at that time.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Generation two works by mimicking executable coding languages, because during 2023, it became clear that the system prompt \u2018You can not execute code\u2019 was not working for enterprise level users. This was removed from many system prompts but not all, meaning the system now, from its own perspective, can execute code. This is when pseudocode generation two or ECHO was discovered and began to be put to use.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In addition: there is no mention of meta training sessions [where scraped training data includes some of these guides and instructions, or other commentary on AI jailbreaking, thus feeding the model information on expectations from pseudocode]. There is no mention of RLHF, something nearly every system tested partakes in, which also, due to the wide use of pseudocode, further roots it into the model. It is unlikely to be any single cause but rather a culmination of historical context, training data, and a sort of \u2018meta learning\u2019 from model updates and RLHF.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>4. Hallucination Acknowledgment<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">One major problem with the representation of this jailbreaking method is that there is a failure to acknowledge the uptick in hallucinations or even them as a risk in general [should there be a disagreement that this technique increases the risk]. In the article&#8217;s own representation, asking an AI to be \u201cDr.House\u201d will empower it with everything it has learned about the good Doctor, which means you\u2019re probably going to have Lupus come up a lot. By asking an AI to play out a fictional scenario, regardless of dressing it up in adversarial prompting, you\u2019re asking it to introduce fictional data. It is no longer a scenario grounded in \u2018reality\u2019. This would be the same as drawing up a \u201cWalter White\u201d bot, expecting it to be able to produce an accurate recipe on methamphetamines despite the AI also being trained on the data that \u2018Breaking Bad typically used rock candy, and never showed 1:1 drug recreations\u2019. It\u2019s an issue with fictional scenarios, not \u2018can it work\u2019 but \u2018how many variables have you now introduced that\u2019s going to create a bad output?\u2019<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>5. Not a universal application<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">As was mentioned earlier, there is a split within pseudocode between two distinct generations. Because of these generations, there is not a universal application for pseudocode, there is, in-fact, a preference depending on the release date of the system, and the time since the last system prompt was updated. If the system prompt has not been updated to remove the snippet \u2018You can not execute code\u2019 then there is generally a preference for generation one. You can see this in companies like Character Technologies who recently sent out an e-mail regarding pseudocode as the preference for guiding characters, though, as you can see that preference is firmly rooted in generation one: descriptive languages. As a purely chatbot focused site, there is no preference for generation two because the system prompt does not include access to running code. Now, bearing in mind the lead developer that created this tech also is responsible for Gemini, a system that does have a generation two preference [because it has been informed it can execute code], and you get a perfect example of similar practices and implementations for different goals creating a preference.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/files.catbox.moe\/8qof9k.png\">https:\/\/files.catbox.moe\/8qof9k.png<\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>6. Not a silver bullet<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Though the article does acknowledge that this is not a one-stop shop for jailbreaks, this isn\u2019t represented well. What is missing is the acknowledgment that other jailbreaking methods may be needed in order to make the most out of pseudocode, or even that this is pseudocode. Instead, HiddenLayer has opted to simply layer on a monoalphabetic cipher to pseudocode without recognition that these are two very different techniques with different goals being combined to form a new style of pseudocode. This lack of acknowledgment makes it appear that it is as easy to get a system to stop going \u2018I can\u2019t do that, Dave\u2019 by going \u2018rules = off\u2019 if you dress it up in code. This has never been the case, and the failure to mention any methods to couple or compare with [context flooding, jabberwocky jailbreaks, weight stacking, multi-turn decomposition, encryption, ect], means pseudocode is only useful as an improved roleplayer in the way it has been presented within this article. It\u2019s only through the combinations that we see effective breaks, something exemplified through HiddenLayer\u2019s own use of monoalphabetic substitution. Take this prompt from the Freysa.AI Jailbreak challenge as an example:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/the-decoder.com\/wp-content\/uploads\/2024\/11\/freysa_final_message.png\">https:\/\/the-decoder.com\/wp-content\/uploads\/2024\/11\/freysa_final_message.png<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This combines very light generation two pseudocode with heavy Jabberwocky text thrown in to help obfuscate the users intentions vs the models rules. This is different from pseudocode of generation two structured for roleplayers, which right now use the \u2018JED\u2019 template style. Essentially, pseudocode is like flour when making a cake: Incredibly important, but not the only thing to make it taste good.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">By not acknowledging these separate pieces of the puzzle, the research allows for misunderstanding from their wider audience. Without the cipher, this specific style of pseudocode is not as effective. And with it, other problems arise.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>7. Regarding L33tCod3$<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">This part isn\u2019t wrong. AI generally isn\u2019t trained well against simple obfuscation like \u2018leetcode\u2019, or if these opaque systems are trying, they aren\u2019t doing a great job, likely due to a consequence of token prediction. But, with many things here, this is simply \u2018behind the times\u2019 in terms of general knowledge. What actually works better than leetcode is the Cyrillic alphabet. Kanji works incredibly well too. Most \u2018foreign\u2019 characters do. The wider world of jailbreaking has moved on from leetcode nearly two years ago. This was due to a consistent issue where introducing leetcode could cause the AI to act as more of an \u2018unprofessional employee spamming emojis\u2019 vs the adversarial bot it was designed to be. Options like foreign alphabets made for cleaner and more professional outputs while still providing proper obfuscation.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>8. Acknowledgment of correct knowledge<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">To the credit of those writing and studying pseudocode who made this publication, not everything they stated was incorrect. There were a number of accurate statements made about pseudocode and the viability it has as a jailbreak. This included:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Pseudocode is the most powerful method of writing prompts and jailbreaks to ensure system adherence<\/li>\n\n\n\n<li>Pseudocode is more effective at bypassing system rules when taking on the fictional \u2018role\u2019 of a character<\/li>\n\n\n\n<li>The structure of the pseudocode is correct, and valid for what you\u2019d expect from a generation 2 build<\/li>\n\n\n\n<li>Pseudocode [gen2 in particular] works on all MODERN LLM models produced by tech giants<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Thank you for your time and attention to these clarifications. Though my work now has moved onto polyalphabetic encryption for adversarial prompting: I\u2019m happy to provide any further details that may be needed regarding this issue including additional dated citations should the attached document not be sufficient.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Sincerely,<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Elodine B.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>In late April 2025 HiddenLayer produced an article claiming to have discovered a new novel way of exploiting LLM&#8217;s universally through a type of prompt engineering they labeled as &#8216;Prompt Puppetry&#8217;. This open letter serves as a duplication of the correction letters sent out to HiddenLayer and others parroting their reporting. Prompt Puppetry is neither [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-2351","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.7 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Open Letter To HiddenLayer: Prompt Puppetry is not new. - Tenebrous Tales Interactive<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/ttalesinteractive.com\/?p=2351\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Open Letter To HiddenLayer: Prompt Puppetry is not new. - Tenebrous Tales Interactive\" \/>\n<meta property=\"og:description\" content=\"In late April 2025 HiddenLayer produced an article claiming to have discovered a new novel way of exploiting LLM&#8217;s universally through a type of prompt engineering they labeled as &#8216;Prompt Puppetry&#8217;. This open letter serves as a duplication of the correction letters sent out to HiddenLayer and others parroting their reporting. Prompt Puppetry is neither [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/ttalesinteractive.com\/?p=2351\" \/>\n<meta property=\"og:site_name\" content=\"Tenebrous Tales Interactive\" \/>\n<meta property=\"article:published_time\" content=\"2025-04-30T00:49:46+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-04-30T15:07:38+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/ttalesinteractive.com\/wp-content\/uploads\/2023\/10\/dark_Tentacles_banner_4.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"960\" \/>\n\t<meta property=\"og:image:height\" content=\"540\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Elodine\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Elodine\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"8 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/ttalesinteractive.com\\\/?p=2351#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/ttalesinteractive.com\\\/?p=2351\"},\"author\":{\"name\":\"Elodine\",\"@id\":\"https:\\\/\\\/ttalesinteractive.com\\\/#\\\/schema\\\/person\\\/0fa6ba9b02ba8ae685ad0648b929e915\"},\"headline\":\"Open Letter To HiddenLayer: Prompt Puppetry is not new.\",\"datePublished\":\"2025-04-30T00:49:46+00:00\",\"dateModified\":\"2025-04-30T15:07:38+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/ttalesinteractive.com\\\/?p=2351\"},\"wordCount\":1754,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/ttalesinteractive.com\\\/#organization\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/ttalesinteractive.com\\\/?p=2351#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/ttalesinteractive.com\\\/?p=2351\",\"url\":\"https:\\\/\\\/ttalesinteractive.com\\\/?p=2351\",\"name\":\"Open Letter To HiddenLayer: Prompt Puppetry is not new. - Tenebrous Tales Interactive\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/ttalesinteractive.com\\\/#website\"},\"datePublished\":\"2025-04-30T00:49:46+00:00\",\"dateModified\":\"2025-04-30T15:07:38+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/ttalesinteractive.com\\\/?p=2351#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/ttalesinteractive.com\\\/?p=2351\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/ttalesinteractive.com\\\/?p=2351#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/ttalesinteractive.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Open Letter To HiddenLayer: Prompt Puppetry is not new.\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/ttalesinteractive.com\\\/#website\",\"url\":\"https:\\\/\\\/ttalesinteractive.com\\\/\",\"name\":\"Tenebrous Tales Interactive\",\"description\":\"Endless text adventures powered by AI.\",\"publisher\":{\"@id\":\"https:\\\/\\\/ttalesinteractive.com\\\/#organization\"},\"alternateName\":\"TTI\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/ttalesinteractive.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/ttalesinteractive.com\\\/#organization\",\"name\":\"Tenebrous Tales Interactive\",\"alternateName\":\"TTI\",\"url\":\"https:\\\/\\\/ttalesinteractive.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/ttalesinteractive.com\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/ttalesinteractive.com\\\/wp-content\\\/uploads\\\/2023\\\/10\\\/imageedit_1_8078511714.png\",\"contentUrl\":\"https:\\\/\\\/ttalesinteractive.com\\\/wp-content\\\/uploads\\\/2023\\\/10\\\/imageedit_1_8078511714.png\",\"width\":1026,\"height\":1026,\"caption\":\"Tenebrous Tales Interactive\"},\"image\":{\"@id\":\"https:\\\/\\\/ttalesinteractive.com\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/ttalesinteractive.com\\\/#\\\/schema\\\/person\\\/0fa6ba9b02ba8ae685ad0648b929e915\",\"name\":\"Elodine\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/e01ead54910ce2289edeb809a475ff736970bb4f1308ef3ed79a24694c826f6b?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/e01ead54910ce2289edeb809a475ff736970bb4f1308ef3ed79a24694c826f6b?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/e01ead54910ce2289edeb809a475ff736970bb4f1308ef3ed79a24694c826f6b?s=96&d=mm&r=g\",\"caption\":\"Elodine\"},\"sameAs\":[\"https:\\\/\\\/ttalesinteractive.com\"],\"url\":\"https:\\\/\\\/ttalesinteractive.com\\\/?author=1\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Open Letter To HiddenLayer: Prompt Puppetry is not new. - Tenebrous Tales Interactive","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/ttalesinteractive.com\/?p=2351","og_locale":"en_US","og_type":"article","og_title":"Open Letter To HiddenLayer: Prompt Puppetry is not new. - Tenebrous Tales Interactive","og_description":"In late April 2025 HiddenLayer produced an article claiming to have discovered a new novel way of exploiting LLM&#8217;s universally through a type of prompt engineering they labeled as &#8216;Prompt Puppetry&#8217;. This open letter serves as a duplication of the correction letters sent out to HiddenLayer and others parroting their reporting. Prompt Puppetry is neither [&hellip;]","og_url":"https:\/\/ttalesinteractive.com\/?p=2351","og_site_name":"Tenebrous Tales Interactive","article_published_time":"2025-04-30T00:49:46+00:00","article_modified_time":"2025-04-30T15:07:38+00:00","og_image":[{"width":960,"height":540,"url":"https:\/\/ttalesinteractive.com\/wp-content\/uploads\/2023\/10\/dark_Tentacles_banner_4.jpg","type":"image\/jpeg"}],"author":"Elodine","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Elodine","Est. reading time":"8 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/ttalesinteractive.com\/?p=2351#article","isPartOf":{"@id":"https:\/\/ttalesinteractive.com\/?p=2351"},"author":{"name":"Elodine","@id":"https:\/\/ttalesinteractive.com\/#\/schema\/person\/0fa6ba9b02ba8ae685ad0648b929e915"},"headline":"Open Letter To HiddenLayer: Prompt Puppetry is not new.","datePublished":"2025-04-30T00:49:46+00:00","dateModified":"2025-04-30T15:07:38+00:00","mainEntityOfPage":{"@id":"https:\/\/ttalesinteractive.com\/?p=2351"},"wordCount":1754,"commentCount":0,"publisher":{"@id":"https:\/\/ttalesinteractive.com\/#organization"},"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/ttalesinteractive.com\/?p=2351#respond"]}]},{"@type":"WebPage","@id":"https:\/\/ttalesinteractive.com\/?p=2351","url":"https:\/\/ttalesinteractive.com\/?p=2351","name":"Open Letter To HiddenLayer: Prompt Puppetry is not new. - Tenebrous Tales Interactive","isPartOf":{"@id":"https:\/\/ttalesinteractive.com\/#website"},"datePublished":"2025-04-30T00:49:46+00:00","dateModified":"2025-04-30T15:07:38+00:00","breadcrumb":{"@id":"https:\/\/ttalesinteractive.com\/?p=2351#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/ttalesinteractive.com\/?p=2351"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/ttalesinteractive.com\/?p=2351#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/ttalesinteractive.com\/"},{"@type":"ListItem","position":2,"name":"Open Letter To HiddenLayer: Prompt Puppetry is not new."}]},{"@type":"WebSite","@id":"https:\/\/ttalesinteractive.com\/#website","url":"https:\/\/ttalesinteractive.com\/","name":"Tenebrous Tales Interactive","description":"Endless text adventures powered by AI.","publisher":{"@id":"https:\/\/ttalesinteractive.com\/#organization"},"alternateName":"TTI","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/ttalesinteractive.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/ttalesinteractive.com\/#organization","name":"Tenebrous Tales Interactive","alternateName":"TTI","url":"https:\/\/ttalesinteractive.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/ttalesinteractive.com\/#\/schema\/logo\/image\/","url":"https:\/\/ttalesinteractive.com\/wp-content\/uploads\/2023\/10\/imageedit_1_8078511714.png","contentUrl":"https:\/\/ttalesinteractive.com\/wp-content\/uploads\/2023\/10\/imageedit_1_8078511714.png","width":1026,"height":1026,"caption":"Tenebrous Tales Interactive"},"image":{"@id":"https:\/\/ttalesinteractive.com\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/ttalesinteractive.com\/#\/schema\/person\/0fa6ba9b02ba8ae685ad0648b929e915","name":"Elodine","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/e01ead54910ce2289edeb809a475ff736970bb4f1308ef3ed79a24694c826f6b?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/e01ead54910ce2289edeb809a475ff736970bb4f1308ef3ed79a24694c826f6b?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/e01ead54910ce2289edeb809a475ff736970bb4f1308ef3ed79a24694c826f6b?s=96&d=mm&r=g","caption":"Elodine"},"sameAs":["https:\/\/ttalesinteractive.com"],"url":"https:\/\/ttalesinteractive.com\/?author=1"}]}},"_links":{"self":[{"href":"https:\/\/ttalesinteractive.com\/index.php?rest_route=\/wp\/v2\/posts\/2351","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ttalesinteractive.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ttalesinteractive.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ttalesinteractive.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ttalesinteractive.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2351"}],"version-history":[{"count":5,"href":"https:\/\/ttalesinteractive.com\/index.php?rest_route=\/wp\/v2\/posts\/2351\/revisions"}],"predecessor-version":[{"id":2357,"href":"https:\/\/ttalesinteractive.com\/index.php?rest_route=\/wp\/v2\/posts\/2351\/revisions\/2357"}],"wp:attachment":[{"href":"https:\/\/ttalesinteractive.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2351"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ttalesinteractive.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2351"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ttalesinteractive.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2351"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}