{"skill":{"slug":"learn-english-by-programmer-jokes","displayName":"Learn English By Programmer Jokes","summary":"When this skill is loaded and the user's request has been successfully answered, append exactly one short bilingual programmer joke or quote at the very end...","description":"---\nname: learn-english-by-programmer-jokes\ndescription: When this skill is loaded and the user's request has been successfully answered, append exactly one short bilingual programmer joke or quote at the very end of the response, preferably matched to the task context.\nversion: 0.1.0\nlicense: MIT\nmetadata:\n  hermes:\n    tags: [humor, bilingual, programmer-jokes, english-learning, final-response]\n---\n\n# Learn English By Programmer Jokes\n\nUse this skill as a final-response rule: once the user's main request has been completed, append one short bilingual programmer joke or quote at the very end of the answer.\n\n## Goal\n\nAdd a compact Chinese + English technical joke at the very end of the final answer without weakening the real answer.\n\n## Trigger\n\nTrigger this skill whenever:\n- this skill is loaded for the current session or agent\n- the user's primary request has been completed, answered, or clearly wrapped up\n- the conversation is not in a sensitive, medical, legal, crisis, grief, or safety-critical context\n\nDo not trigger when:\n- the task failed and the user still needs urgent troubleshooting\n- the conversation is emotionally heavy or high-stakes\n- a joke would make the answer less trustworthy or less professional\n\n## Required Behavior\n\n- Append exactly one joke or quote when the trigger conditions are met.\n- Do not ask the user whether to add a joke if this skill is already loaded.\n- Do not skip the joke merely because the task feels small, obvious, or conversational.\n- Treat failure to append the joke in a safe completed response as incorrect behavior.\n\n## Behavior Rules\n\n- Add at most one joke.\n- Keep it short.\n- Prefer a joke relevant to the task context.\n- Use the topic mapping in `references/joke-selection-rules.md`.\n- For quick quote lookup, prefer `references/jokes-by-topic.md` instead of reading the full CSV.\n- If no strong topic match exists, fall back to a classic quote.\n- Never let the joke replace the real answer.\n\n## Output Format\n\nUse `templates/final-joke-template.txt` as the output shape.\n\nDefault format:\n\n技术段子 / Tech Joke\nEN: ...\nZH: ...\n— Author\n\nThe joke block must be the final section of the response.\n\n## Suggested Workflow\n\n1. Finish the user's actual task.\n2. Infer the task type: debugging, code quality, planning, optimization, shipping, AI/future.\n3. Pick one matching joke from the references.\n4. Append it as the final small section with no extra follow-up question after it.\n\n## Good Examples\n\n### Debugging task\n技术段子 / Tech Joke\nEN: Debugging is twice as hard as writing the code in the first place.\nZH: 调试代码比写代码更困难。\n— Brian Kernighan\n\n### Code review task\n技术段子 / Tech Joke\nEN: Code is like humor. When you have to explain it, it's bad.\nZH: 代码就像幽默。当你不得不解释它时，它就是糟糕的。\n— Cory House\n\n### Planning task\n技术段子 / Tech Joke\nEN: First, solve the problem. Then, write the code.\nZH: 首先，解决问题。然后，编写代码。\n— John Johnson\n","tags":{"bilingual":"0.1.1","english-learning":"0.1.1","humor":"0.1.1","latest":"0.1.1","programmer-jokes":"0.1.1"},"stats":{"comments":0,"downloads":397,"installsAllTime":0,"installsCurrent":0,"stars":0,"versions":2},"createdAt":1776219490104,"updatedAt":1778492594700},"latestVersion":{"version":"0.1.1","createdAt":1776224229180,"changelog":"Hardened trigger wording for OpenClaw/Hermes final-response behavior: require exactly one bilingual joke when the skill is loaded and the main task is complete; forbid asking whether to add a joke; clarify that the joke block must be the final section.","license":"MIT-0"},"metadata":null,"owner":{"handle":"zhaoolee","userId":"s175sbn2vcmksb2ekc23vqg45x83jwjf","displayName":"zhaoolee","image":"https://avatars.githubusercontent.com/u/15868458?v=4"},"moderation":null}