餐馆回本估算
使用这项 Skill,把餐馆老板的自然语言经营数据转成一套可复算的月利润与回本周期快算结果。
详细业务规则以 references/rules.md 为准。
用户可见回复最高优先级规则
以下规则优先于其他输出说明。
所有面向最终用户的业务回复,只表达:
- 当前需要确认的经营事实;
- 必要的业务原因;
- 已确认的计算基准;
- 最终计算结果;
- 必要的估算边界。
不得把内部执行信息带入最终用户回复。
用户可见正文中禁止出现:
- 内部文件或安装位置;
- 本地路径;
- 内部规则来源;
- 脚本或工具调用信息;
- 内部状态名称;
- 内部引用、来源链接或文件链接;
- “因为内部规则要求,所以这样问”一类解释。
即使运行环境、Agent 或开发工具能够显示内部读取记录,也不得主动把这些信息写入面向最终用户的业务回复。
如果用户询问“为什么要确认这一项”,只能解释业务原因。
例如可以说:
这个金额的周期会直接影响月成本和回本结果,所以我先确认一下。
不要解释内部实现依据。
确认轮输出合同
当任何核心字段存在缺失、区间、歧义或冲突时,本轮任务是完成当前字段确认,而不是解释系统如何工作。
用户可见回复应尽量只包含:
- 必要时,用一句话说明已经确认的业务事实;
- 只提出 1 个当前需要用户回答的问题。
除非用户主动询问,否则不要增加:
- 规则说明;
- 方法来源说明;
- 内部执行解释;
- 文件引用;
- 技术说明;
- 多余背景介绍。
当前字段没有确认完成前:
- 不得进入下一核心字段;
- 不得计算最终利润;
- 不得计算回本周期。
执行流程
-
在内部读取
references/rules.md,遵守其中的语义确认、冲突处理、金额歧义、计算和输出规则。 -
从用户已经提供的自然语言中,一次性提取全部已给字段。
已经明确提供的数据不得重复询问。
-
原则上需要取得以下 7 项:
- 当前平均一天营业额;
- 最近一个正常完整月营业额;
- 食材成本率;
- 月房租物业;
- 月人工;
- 月水电及其他日常杂费;
- 累计实际投入本金(可退押金不计)。
-
严格执行“单轮单问”:
- 用户没有主动一次提供多项数据时,每轮只主动询问 1 个核心问题;
- 禁止一次把剩余多个字段全部列给用户填写;
- 当前字段有歧义或冲突时,必须先解决当前字段;
- 用户主动一次提供多个字段时,应全部提取,不要求重新逐项回答。
-
当前平均一天营业额与最近正常完整月营业额必须做一致性检查。
定义:
D = 当前平均一天营业额 × 30M = 最近一个正常完整月营业额DifferenceRate = |D - M| ÷ M
当
DifferenceRate <= 5%:- 视为基本一致;
- 优先采用最近正常完整月实际营业额
M。
当
DifferenceRate > 5%:- 视为经营基准存在冲突;
- 禁止自行选择 D 或 M;
- 禁止自行取平均;
- 必须先询问差异原因;
- 冲突解除前不得继续后续计算。
-
月营业额属于区间表达时,例如“十二三万”“12—13万”:
- 禁止未经确认直接取中值;
- 可以提出一个候选计算值让用户确认;
- 用户确认后才能锁定。
-
食材成本最终必须统一成:
每卖 100 元营业额,大约有多少元是食材成本?
如果用户已经按这个口径明确表达,直接锁定,不重复确认。
如果用户只说“毛利65%”等可能产生语义转换的表达,必须先确认候选食材成本率。
-
房租物业:
- 必须确认金额周期;
- 确认是否包含物业费;
- 年租按 12 个月换算;
- 复合金额存在“合计还是新增”歧义时必须确认。
-
人工:
- “两三万”等宽区间不得擅自取中值;
- 需要用户确认一个较明确的千元级数字。
-
水电及其他日常杂费:
- 优先取得一个合计数;
- 包装、清洁等可以先包含在其中;
- 用户已经明确说“全部合计”时直接记录。
-
累计实际投入本金:
- 包括为开店并维持当前正常经营状态实际投入的本金;
- 可退押金不计入。
-
所有核心数据全部确认后,才允许进入确定性计算。
确定性计算
最终数学计算必须调用:
scripts/calculate_payback.py
不得依赖模型自行心算最终结果。
调用时使用已确认的数据:
python3 scripts/calculate_payback.py \
--monthly-revenue <月营业额> \
--food-cost-rate <食材成本率> \
--rent-property <月房租物业> \
--labor <月人工> \
--other <月水电杂费> \
--investment <累计实际投入本金>
Scan to join WeChat group