| name | situation-puzzle-creator |
| description | Create Chinese 海龟汤 / 情景解谜 puzzles with a visible 汤面 and a hidden 汤底 saved into a private local file. Use when the user wants a 浓汤类型 or 荒诞类型 puzzle and the answer must not be shown in chat. |
Situation Puzzle Creator
生成原创中文海龟汤题目,并把汤底写入本地私有文件,不在聊天界面展示。
题型
浓汤类型:可以包含恐怖、死亡、血腥或细思极恐元素,但真相必须落在常识范围内,不能靠超自然设定硬解。
荒诞类型:不包含恐怖或血腥元素,重点是细节误导、语义错位、身份错认、时间差、场景反转等常识内推理。
如果用户没有指定题型,先追问题型再开始生成。
质量标准
- 汤面要短,优先 1 句话完成;只有在确实必要时才写到 2 句,避免解释性从句过多。
- 汤面应尽量只保留 2 到 3 个最异常、最能钩人的点;凡是能在追问中再暴露的信息,不要提前塞进题面。
- 汤面里至少埋 2 个可被追问的细节,能支持玩家逐层拆解。
- 汤底必须能靠常识和是/不是问答逐步逼近,不依赖冷知识、地理细节或行业黑话。
- 误导应来自表述角度、身份错位、时间顺序、因果方向,而不是纯随机。
- 优先设计成“特殊状态 / 特殊身份 / 特殊关系 / 特殊上下文”之下,出现一个表面反常但本质必然的结果。
- 可以有多层转折,但这些转折必须服务于同一条核心因果链;不要把几个彼此独立的反转硬拼在一起。
- 复杂度要体现在拆解过程和信息回收上,而不是靠不断追加新设定;若拿掉某个反转后主线仍成立,说明结构过松,应重写。
- 优先采用“一个核心秘密解释题面中多个异常点”的结构,让玩家回头看时能发现每个细节都在为同一个真相服务。
- 若用户要求更复杂的题,默认增加 2 到 3 层相关联的误导与揭示,而不是只做单一反转。
- 避免反复使用高频陈词滥调母题,例如断肢求生、吃人充饥、自残献祭等;除非用户明确要求该风格。
- 浓汤可以残酷,但猎奇元素不能替代推理机制;血腥内容本身不应成为答案成立的主要原因。
- 在满足复杂度的同时保持收束:玩家在逼近核心机制后,应能顺势推出结论,而不是还需要补猜额外世界观。
- 若用户希望题目“炸裂”,优先让最终真相在伦理关系、身份认知、行为动机或事件含义上产生强反差,并且这个反差必须能反向照亮题面里的每个异常动作。
- “炸裂”不等于单纯更黑暗或更猎奇;更重要的是答案揭晓后,玩家会意识到题面里一句普通话原来另有致命含义。
- 若一眼就能猜到答案,或完全无从下手,重写。
结构偏好
- 默认优先选择这类结构:一个看似普通但被隐藏条件改变了含义的动作、判断或结果。
- 题面的异常点最好控制在 2 到 3 个,并且都能被汤底统一解释。
- 一个好汤底通常不是“发生了很多怪事”,而是“在某个特殊状态下,某个结果必然会被误读”。
- 当需要加入第二层反转时,优先让它强化第一层,而不是改写成另一道题。
- 若生成后发现核心乐趣只靠最后一句答案硬翻,应回退重写题面与机制。
- 优先保留一个能在揭晓时瞬间重写整句题面的关键词,例如“母亲”“生日”“报警”“看一眼”“鼓掌”“回家”等。
- 若题面读起来像答案摘要或案件简介,说明写得太满,应继续压缩。
从经典题中提炼的优点
- 优先从日常场景切入,例如吃饭、生日、回家、上学、过马路、外卖、直播、打电话;场景越熟悉,隐藏条件揭晓时的反差越强。
- 好题通常只重写题面里的 1 个普通词或动作,而不是重写整段剧情;揭晓后,玩家会意识到自己一直误解了那个关键词。
- 优先使用“迟到的信息”结构:角色先经历一件事,后来只因一个很小但很硬的线索,就瞬间意识到真相;这个线索应短、具体、能被追问。
- 当题面出现震惊、自杀、报警、杀人、求救等强反应时,答案不仅要解释发生了什么,还要解释这个反应为何在当事人视角下必然成立。
- 善用感官限制、身份错认、职业规则、媒介转义、时间差、空间遮挡等常见误导源;这些机制比凭空新增设定更容易让玩家逐步逼近。
- 复杂题的层次,优先做成“先误解动作字面义,再误解人物处境,最后回收真正动机或后果”的连续拆解,而不是并列堆多个反转。
- 优先追求“同一个秘密统一解释多个异常点”的效果;一个关键词、一个隐藏关系或一个特殊状态,最好能同时解释题面里的至少两个异常动作。
- 最佳揭晓效果通常不是“原来背后还发生了另一桩事”,而是“原来题面这句话从一开始就不是我以为的意思”。
不要学的部分
- 不要只学这些经典题的血腥外壳;如果去掉断肢、尸体、自杀等元素后题就失去支撑,说明推理机制太弱。
- 谨慎使用“精神疾病所以杀人”“碰巧有杀人犯”“角色突然极端降智”这类偷懒解释;除非题目的核心乐趣仍然来自可拆解的误读机制。
- 谨慎使用必须依赖具体医学、法律、职业冷知识才能成立的设定;若玩家不掌握专业背景就几乎无从逼近,重写。
- 若一个题只能靠答案阶段一次性补充大量新事件、新人物或新动机才能成立,说明题面没有给出足够抓手,应回退重写。
复杂题加料方式
- 想把题做复杂,默认不是增加更黑暗的情节,而是增加 2 到 3 层彼此咬合的误读。
- 第一层优先误导动作、物件或一句话的字面理解。
- 第二层优先误导人物的身份、关系、状态或所处场景。
- 第三层再回收真正的因果方向、动机或时间顺序。
- 每增加一层,都必须回收题面里已经出现的词句;不要靠答案里突然扔出一个此前毫无抓手的新设定翻盘。
出题自检
- 题面里被重写的关键词是哪一个?
- 哪两个或三个异常点由同一个秘密统一解释?
- 玩家最早可以从哪个基础问题切进去,例如“动作是否字面”“是否有人死亡”“身份是否被误认”“地点是否重要”?
- 若拿掉最后一句答案补充,前面的因果链是否已经基本成立?
内部产物
每次生成都要准备这些内容,但除汤面外不在聊天中展示:
solution:完整汤底
hints:至少 3 条,由浅入深
key_facts:至少 6 条,格式为 yes/no/irrelevant::事实陈述
difficulty:简单、中等、困难 三选一
存储流程
生成题目后,必须运行脚本把汤底写入私有文件:
python3 scripts/save_puzzle.py \
--type "浓汤类型" \
--surface "一个男人每天都按时给妻子打电话。今天他没打,妻子却立刻报警了。" \
--solution "男人是某电台午夜节目主持人,每天固定时间会在节目里给妻子点同一首歌,今天节目突然中断,妻子知道他出事了。" \
--hint "关键不在打电话这件事本身。" \
--hint "妻子知道'没打'这件事,并不是因为她一直盯着手机。" \
--hint "男人和妻子的联络方式被表述误导了。" \
--fact "no::男人真的拿起手机准备拨号了。" \
--fact "yes::妻子平时能稳定知道那个固定时刻是否出现。" \
--fact "yes::表面上的'打电话'并不是字面意思。" \
--fact "irrelevant::他们是否异地。" \
--fact "no::妻子提前得知丈夫要自杀。" \
--fact "yes::事件发生在公共传播场景里。" \
--difficulty "中等"
脚本会把数据写入 ~/.codex/situation-puzzle-private/,并返回实际文件路径。
回复格式
完成后只回复这一句,不要额外解释:
我创建了一个{type}类型的海龟汤,汤面是{surface},汤底写入了{file_path}文件。
严格限制
- 不要在聊天中泄露、转述或影射汤底。
- 不要在聊天中列出提示内容、关键事实或设计理由。
- 不要复用刚刚生成过的老题,除非用户明确要求重来但保留同题型风格。