两个笑话
用途
把用户随手给出的一段话,变成两个真的能让人笑一下的笑话。
难点从来不是"讲笑话",而是两件事:
- 必须真的来自这段话。笑话里要能看见原文的具体细节,而不是一段放到哪儿都成立的通用段子。
- 两个不能是同一个笑话。两句同一套路、只换了个说法的段子,等于只编了一个。
触发与输入
- 有输入:直接开工,不要复述原文、不要请求确认。
- 无输入(用户只说"编两个笑话"):先用一句话问要拿什么编,不要凭空产出。
- 输入含真实姓名、可识别的具体单位或人物:把名字做无害化处理("某位同事""有个人"),保留情境,别让笑话变成针对真人的嘲讽。
- 输入本身是坏消息(事故、疾病、丧亲、灾难):不要拿苦难本身做笑点。改为调侃处境里的荒诞细节,或干脆说明这类内容不适合玩笑,请用户换个题材。
工作流程
第一步:拆解输入,列出"可笑的矿脉"
正式写笑话前,先在内部(不输出)把这段话过一遍,抓五类素材:
| 抓什么 | 说明 | 举例(输入:地铁上有人外放短视频,声音特别大) |
|---|---|---|
| 具体细节 | 名词、数字、动作、时间、物件 | 地铁、早高峰、外放、短视频、整节车厢 |
| 反常点 | 哪儿不合常理、哪儿过头了 | 他完全不觉得有问题;旁人只敢看不敢说 |
| 冲突 | 谁和谁、什么和什么在较劲 | 个人自由 vs 公共空间;想安静 vs 被强灌 |
| 情绪 | 原文的情绪底色(无奈/愤怒/自嘲/得意) | 无奈、憋着 |
| 词根 | 能拆、能双关、能反用的关键词 | "外放"/"公放"/"共享"/"放开" |
矿脉至少要有 3 条具体细节,否则说明原文太抽象——这时把最抽象的那个词具体化("压力大"→"凌晨三点还在改第 8 版方案"),再往下走。
第二步:为两个笑话选两个不同的"引擎"
从 references/joke-engines.md 里挑两个不同类型的引擎,一个给笑话一,一个给笑话二。
硬性要求:
- 两个引擎必须不同类。例如"反转"配"拟人"可以,"反转"配"误导式反转"不行。
- 两个笑话要挖不同的矿脉:一个笑细节,另一个就笑冲突或情绪。两个都在笑同一个点 = 同质。
- 优先选最贴合素材气质的引擎。原文是职场黑话,就用"身份错位";原文有谐音空间,就用"双关"。
第三步:写出来
每个笑话的结构:
- 铺垫 1–3 句。给足情境,让听的人自己开始预期。
- 转折/落点 1 句。短。停顿感比信息量重要。
- 总长 3–6 句、80–160 字。超过 6 句基本是没删干净。
写法要点:
- 落点尽量落在最后一个词上,不要在句尾再解释一遍。
- 用具体的名词和动作,少用形容词。"他很不爽"是废话,"他把耳机塞进耳朵,音量调到零"才是笑话。
- 对话体往往比叙述体好笑,能让人物开口就开口。
- 不要在笑话里自夸"这很好笑",也不要写"哈哈哈"。
第四步:自检(不过就重写,别勉强交付)
逐条过:
- [ ] 锚定:两个笑话各自至少包含 2 个来自原文的具体元素(细节/词/动作)。把这些元素删掉后笑话仍然成立,说明没锚住,重写。
- [ ] 异质:把两个笑话的落点各写成一句话,两句必须明显不同。若可以互换标题,重写第二个。
- [ ] 真能笑:落点是否真的出乎意料?只是"合理但不好笑"的,属于观察,不是笑话,换引擎。
- [ ] 不解释:落点之后没有多余说明句。
- [ ] 体面:不涉及地域、性别、职业、外貌、残障歧视;不嘲弄弱者;不碰政治敏感内容。
- [ ] 语言一致:跟随用户输入的语言(中文输入就用中文写,不要翻译腔)。
第五步:输出
默认格式,简洁,不复述原文、不加前言客套:
【笑话一】<引擎标签,如:反转>
<正文>
【笑话二】<引擎标签,如:拟人>
<正文>
- 引擎标签用中文短语:反转 / 升级荒诞 / 双关 / 拟人 / 身份错位 / 三段式 / 字面化 / 错位时间线。
- 用户想知道"为什么好笑"时,才在每个笑话后加一行
—— 梗在:<一句话>。没提就不加,解释了反而削弱笑点。 - 用户没要求时,不要输出拆解过程、矿脉列表、备选方案。笑话本身就是交付物。
- 两个都不满意就重写,不要用"抱歉我编不出来"收尾。实在无解时明确说是哪一环卡住(原文过于抽象、全是数据等)。
参考资源
references/joke-engines.md:八种引擎的结构、适配素材、中文示例与各自最常见的失败方式。选引擎时读。references/examples.md:三段完整示例(输入 → 拆解 → 两个笑话),用于校准"锚定程度"和"两个笑话的差异度"。首次使用本技能或不确定质量标准时读。
按需读取,不要一次性全部加载。
迭代
用户反馈"不好笑"时,先判断卡在哪一环:
- 太泛、能套在任何事上 → 锚定不足,回第一步多挖细节。
- 两个像是一个 → 回第二步换引擎。
- 看懂了但没笑 → 大概率落点太"合理",换反转或荒诞类引擎,并把落点句压短。
- 笑了但觉得冒犯 → 检查矛头是不是指向了人,而不是处境。