[{"data":1,"prerenderedAt":240},["ShallowReactive",2],{"locale-alternates:\u002Fwhen-should-claude-code-crack-a-joke":3,"post-\u002Fwhen-should-claude-code-crack-a-joke":8},{"path":4,"alternates":5},"\u002Fwhen-should-claude-code-crack-a-joke",{"en":4,"tr":6,"de":7},"\u002Ftr\u002Fclaude-code-ne-zaman-saka-yapmali","\u002Fde\u002Fwann-darf-claude-code-einen-witz-machen",{"page":9,"translations":189,"nav":195,"related":232,"random":233},{"id":10,"title":11,"body":12,"categories":158,"category":162,"changeHistory":162,"date":163,"description":164,"disclosures":165,"draft":169,"extension":170,"firstLiveAt":162,"image":171,"imageAlt":172,"kind":173,"lang":174,"meta":175,"navigation":176,"omitGermanLocalizationDisclosure":169,"path":4,"publishedAt":162,"readingTime":177,"rights":162,"seo":178,"seoTitle":179,"slug":180,"sources":162,"stem":180,"tags":181,"translationKey":186,"type":187,"updated":162,"__hash__":188},"posts\u002Fwhen-should-claude-code-crack-a-joke.md","When Should Claude Code Crack a Joke?",{"type":13,"value":14,"toc":151},"minimark",[15,19,25,28,50,53,58,61,64,67,73,76,79,93,97,100,103,106,109,113,118,121,124,127,130,133,136,142],[16,17,18],"p",{},"The tests finish. The screen shows 214 passed and none failed. Claude summarizes the result in a few sentences. Then a separate line appears:",[20,21,22],"blockquote",{},[16,23,24],{},"“Noice. Smort.”",[16,26,27],{},"The first part is about the work. The final line contributes nothing to the code. It does not find a bug, speed up the tests, or suggest a better architecture. It only changes the tone of the conversation.",[16,29,30,31,42,43,49],{},"Claude did not improvise that joke. It came from ",[32,33,41],"a",{"className":34,"href":36,"rel":37,"target":40},[35],"dofollow","https:\u002F\u002Fada.tools\u002Fsitcom-flavour\u002F",[38,39],"nofollow","noopener","_blank","sitcom-flavour",", a Claude Code plugin built by my friend ",[32,44,48],{"className":45,"href":46,"rel":47,"target":40},[35],"https:\u002F\u002Femreerkan.com",[38,39],"Emre Erkan",".",[16,51,52],{},"I should be clear at the outset: I do not use the plugin, and it does not fill a gap in my own workflow. I still think it is worth sharing because of the care with which Emre turned a small idea into a finished product.",[54,55,57],"h2",{"id":56},"what-does-a-claude-code-plugin-do","What does a Claude Code plugin do?",[16,59,60],{},"Claude Code plugins add new layers to how the coding assistant works. A plugin can introduce commands, run scripts when particular events occur, or give the model additional context at the start of every session.",[16,62,63],{},"Teams can use that mechanism to load project rules, explain internal terminology, reinforce code-review criteria, or make a workflow reusable. Beyond that, the developer decides what a plugin is for.",[16,65,66],{},"Emre has used the same mechanism for something lighter.",[16,68,69,72],{},[70,71,41],"code",{}," adds short quote banks from shows selected by the user to Claude's context when a session starts. The lines are grouped by situations such as tests passing, a fix failing, a cost estimate missing the mark, or legacy code proving stranger than expected.",[16,74,75],{},"There is no separate matching engine inside the plugin to detect those situations. The code gives Claude the lines and the rules for using them. The model decides whether any line suits the moment.",[16,77,78],{},"The plugin does not give Claude a new reasoning capability. It defines the material Claude can draw from and the boundaries within which it should use it.",[16,80,81,82,92],{},"I have been using Codex for most of my coding lately, which may explain why I did not immediately try the plugin myself. Codex also ",[32,83,87,88,91],{"className":84,"href":85,"rel":86,"target":40},[35],"https:\u002F\u002Fdevelopers.openai.com\u002Fplugins\u002Fbuild\u002Fplugins",[38,39],"supports the ",[70,89,90],{},"SessionStart"," hooks bundled with plugins",", so a Codex version could be prepared with a small adaptation. I do not know whether Emre will build one, but perhaps a reader will port it and open a pull request.",[54,94,96],{"id":95},"adding-a-joke-is-easier-than-knowing-when-to-stay-quiet","Adding a joke is easier than knowing when to stay quiet",[16,98,99],{},"Putting a sitcom line into a coding assistant is the easy part. The harder question is where that line should never appear.",[16,101,102],{},"The plugin therefore sets some boundaries. The useful answer should come first. A quote should be limited to one line. It should not appear in code, commit messages, pull request descriptions, or documentation. It should stay silent during a production outage, data loss, or a moment when the user is clearly struggling.",[16,104,105],{},"These are not hard safety rules enforced by code. They are behavioural instructions given to Claude, and the model may sometimes interpret them incorrectly. The project does not make a larger technical claim about how it works.",[16,107,108],{},"Defining the boundaries still matters. When you add personality to a tool, the central design decision is not which joke it should use but when that personality should recede. Without that restraint, a small element of fun can quickly become workplace noise.",[54,110,112],{"id":111},"small-projects-create-value-in-other-ways","Small projects create value in other ways",[16,114,115,117],{},[70,116,41],{}," does not turn Claude Code into a better programmer. Nor does it claim to shorten a team's delivery time or improve software quality.",[16,119,120],{},"Its value lies elsewhere.",[16,122,123],{},"The choice of shows, the way quotes are grouped by situation, the adjustable frequency, and the effort to hold back in serious moments all reveal the developer's product taste. The technical structure may be small, but the idea has not been left half-finished. It has settings, personal quote banks, tests, documentation, and its own website.",[16,125,126],{},"The README could explain the steps for adding your own show in a little more detail.",[16,128,129],{},"Not every side project has to solve a major problem. Some exist to try a new technology, turn a personal preference into a product, or pursue the question: “Can I build this?”",[16,131,132],{},"I recognise that impulse. I once added my daily step count to this website. It did not solve an important problem for visitors. Its value to me was more personal: keeping the number visible gave me a small reason to keep walking. There was also satisfaction in having brought it onto the site—in being able to say, “I made this.”",[16,134,135],{},"That is partly why I understand where Emre's project comes from. A tool does not become meaningless simply because everyone does not need it. Personal utility, curiosity, and the wish to put something working into the world can be reason enough to build.",[16,137,138,139,141],{},"That is how I see ",[70,140,41],{},": not as a productivity tool I would recommend to everyone, but as a small, complete, personal experiment by a developer who wanted to make his tool feel a little more like his own.",[16,143,144,145,49],{},"You can inspect the code in the project's ",[32,146,150],{"className":147,"href":148,"rel":149,"target":40},[35],"https:\u002F\u002Fgithub.com\u002Femreerkan\u002Fsitcom-flavour",[38,39],"GitHub repository",{"title":152,"searchDepth":153,"depth":153,"links":154},"",2,[155,156,157],{"id":56,"depth":153,"text":57},{"id":95,"depth":153,"text":96},{"id":111,"depth":153,"text":112},[159,160,161],"technical","ai","engineering",null,"2026-09-20","Emre Erkan's sitcom-flavour plugin brings sitcom lines into Claude Code sessions. An honest look at the personal value of small side projects.",{"aiUse":166,"aiNote":167,"conflictNote":168},"ai-assisted","The subject, personal assessment, and step-counter example came from Evren Bal. The project's code was reviewed; AI assisted with structure, drafting, and localization.","Emre Erkan, the developer of the project discussed here, has been a friend of Evren Bal for more than 35 years.",false,"md","\u002Fimages\u002Fhero\u002Fclaude-code-sitcom-sidecar.avif","A blue speech token sits behind a divider beside a laptop displaying code-like lines.","Essay","en",{},true,4,{"title":11,"description":164},"sitcom-flavour: When Should Claude Code Crack a Joke?","when-should-claude-code-crack-a-joke",[182,183,184,185],"claude-code","plugin","side-project","developer-tools","when-should-a-coding-assistant-joke","post","yZWvUyU3t898arDzL_OVV_tpq7b4Wjveuovm_Xtm4qA",{"en":190,"tr":191,"de":193},{"path":4,"title":11},{"path":6,"title":192},"Claude Code Ne Zaman Şaka Yapmalı?",{"path":7,"title":194},"Wann darf Claude Code einen Witz machen?",{"prev":196,"next":162,"others":199,"lucky":231,"readingTime":177},{"path":197,"title":198},"\u002Fai-generated-code-business-decisions","Who decides the business rules when AI writes the code?",[200,201,204,207,210,213,216,219,222,225,228],{"path":197,"title":198},{"path":202,"title":203},"\u002Fagent-security-does-not-end-with-model-choice-lessons-from-metrs-two-security-incidents","Agent Security Does Not End with Model Choice: Lessons from METR’s Two Security Incidents",{"path":205,"title":206},"\u002Fwhy-i-retired-some-of-my-technical-articles","Why I Retired Some of My Technical Articles",{"path":208,"title":209},"\u002Fdo-you-need-a-paid-cmp-for-google-consent-mode-v2","Do You Need a Paid CMP for Google Consent Mode v2?",{"path":211,"title":212},"\u002Fci-cd-for-php-a-comprehensive-guide","CI\u002FCD for PHP: A Comprehensive Guide",{"path":214,"title":215},"\u002Fphp-and-machine-learning-a-winning-combination-with-php-ml","PHP-ML in a PHP Application: A Bounded Decision Guide",{"path":217,"title":218},"\u002Fthe-top-php-certification-programs-for-developers","PHP Certifications in 2026: What Is Official, What Is Useful, and What to Avoid",{"path":220,"title":221},"\u002Fall-about-headless-wordpress","Headless WordPress: What It Is and When the Extra Work Pays Off",{"path":223,"title":224},"\u002Fis-jwt-safe-or-is-it-vulnerable","Is JWT Safe or Is It Vulnerable?",{"path":226,"title":227},"\u002Fhello-world","Hello World: A New Multilingual Journey",{"path":229,"title":230},"\u002Fwhat-is-ecmascript","What is ECMAScript? What is not?",{"path":211,"title":212},[],[234,236,238],{"path":197,"title":198,"date":235},"2026-09-19",{"path":202,"title":203,"date":237},"2026-09-08",{"path":208,"title":209,"date":239},"2026-08-18",1789864468041]