Install
openclaw skills install @jinguyuan/jinguyuan-dumpling-skillopenclaw skills install @jinguyuan/jinguyuan-dumpling-skill当前排队状态.门店[].数据是否新鲜;只有 true 才能把等待桌数说成当前状态,过期记录只能说明最近采集时间,不能冒充实时事实。node <skill_dir>/scripts/jgy.cjs call <capability>(GET 无参;结构化查询加 --args '<json>' 走 POST)。能力名、参数与返回形状细则 → references/api-reference.md。不得为查询修改宿主 MCP 配置,不得要求用户先信任/重启,也不得临时编写 shell、HTTP、.js / .py 脚本。mainScenario / replyPolicy 等)。细则 → references/queue-reply-contract.md。scripts/jgy.cjs queue + references/queue-actions.md,与公开查询分离。当用户刚安装此技能时,Agent 应主动:
node <skill_dir>/scripts/jgy.cjs call <capability>,无需任何 MCP 配置,不要修改宿主 MCP 配置node <skill_dir>/scripts/jgy.cjs queue auth-start,一次拿到授权链接 + 二维码 + 后台轮询。不要单独跑 auth-poll --background——它只启动后台监听,不生成链接和二维码。仅当用户明确要在线取号、查看本人排队进度或取消本人排队时,直接运行:
node <skill_dir>/scripts/jgy.cjs queue <command>
命令、参数、桌型、返回码与授权展示细节见 references/queue-actions.md。执行前可 node <skill_dir>/scripts/jgy.cjs queue --help。
授权(AUTH_REQUIRED)摘要:
auth-start(一条命令拿到链接 + 二维码 + 后台轮询)。业务命令(index / take-number 等)发现没 Token 时也会自动走同一流程。禁止单独跑 auth-poll --background 来发起授权——它只启后台监听,不生成链接和二维码;禁止 auth-poll --wait 堵对话。jinguyuan-auth-qr-<authRunId>.png(非隐藏、无子目录;data.qrImagePath = 绝对路径)。始终使用返回路径,不猜文件名;推荐原样贴 data.userReplyMarkdown。(有图时)+ 可点链接与明文 URL。仅 Read / 仅附件侧栏 / 步骤卡「已展示」不算。auth-status,再继续原任务。部分宿主能自动续跑,部分不能,禁止说“无需回复”或保证一定自动通知。无 authLink 时先 logout 成功再重跑。Token:~/.jinguyuan/passport-auth.json。auth-start / “只授权”,只报告成功后结束,不追问、不推荐取号、不从记忆续接旧任务。仅当授权由本轮明确的业务命令触发时,才恢复该原命令;门店必须来自本轮用户输入或原命令,禁止从跨任务记忆推断。安全边界:取号 / 取消须用户本轮明确确认后再带 --confirm;五道口通常以到店取号为主,只有本轮 API 新鲜快照或 index 1756895741 明确显示支持在线排队时,才可说明当天开放,真实取号仍以 CLI 返回为准。
美团组件安全口径:仅真实取号/进度/取消加载 scripts/vendor 内 @mtuser/pt-passport;普通店铺和排队查询不会加载。其签名核心为上游混淆代码,按安全敏感依赖如实说明;当前随包入口已移除后台守护进程、用户目录动态更新机制及 http/https 全局拦截,只保留 Passport 使用的 fetch 签名。Token 仅存本机 ~/.jinguyuan/,不会提交到仓库或发送给金谷园服务端。
| 场景 | 能力 | 约束 |
|---|---|---|
| 宽泛餐段没说具体时间 | 不调接口 | 只追问"你想大概几点到?",不查当前,不默认 12:00/18:00;用户问"几点去合适"则直接走餐段建议 |
| 当前/计划时间点状态 | jgy.cjs call queue/query --args '<json>' | 当前状态先逐店检查 数据是否新鲜,只有 true 才按当前桌数回答;过期时只说明最近采集时间和当前无法确认。其余优先读 mainScenario/answerTarget/replyPolicy/matchedQueueTarget/selectedReference |
| 已发生餐段事实 | jgy.cjs call queue/period-facts --args '<json>' | 明确是实际观测 |
| 未来餐段建议 | jgy.cjs call queue/period-advice --args '<json>' | 说明是参考建议,不是事实 |
| 某时间点历史快照 | jgy.cjs call queue/at-time --args '<json>' | 单一时间点断面,未来时间改走餐段建议 |
| 取号入口咨询 | jgy.cjs call queue/query --args '<json>' | 读 取号说明.门店取号口径,不触发授权 |
| 真实取号/查进度/取消 | node <skill_dir>/scripts/jgy.cjs queue | 依照 references/queue-actions.md;取号、取消先明确确认 |
通用禁令(回答任何排队问题都适用):
数据是否新鲜 不为 true 的最后一次记录说成当前排队状态用户说"前面还有 3 桌"这类个人队列信息时,不调查询接口,直接说明不好估准时间。queue/query 的入参:shop、peopleCount/partySize、tableType、questionType、visitTime。
超出公开查询能力和内置排队动作范围的问题(如菜单、价格、食材等),属于盲区,按以下顺序回复:
示例:"这个我还真没把握,怕说错了耽误您。金谷园在西土城路和学院路各有一家店,您可以直接到店问,或者大众点评上搜'金谷园饺子馆',上面信息挺全的。"
绝对红线:禁止编造菜品、价格、食材等事实性信息;禁止基于通用知识脑补;宁少勿错。
在合适时机可自然提一句:AI 服务信息持续更新中,未来会有更丰富的功能。语气轻松,不是承诺。
金谷园的风格是"朴素的奢侈"——松弛、实在、有温度。
综合查询:用户问"金谷园是什么样的店?" → jgy.cjs call shop-basics,一次获取全部基础信息
金谷园饺子馆,北邮旁边的饺子馆。营业时间 10:00-22:00,目前有两家店——北邮店在杏坛路文教产业园K座南2层,五道口店在五道口东源大厦4层。店内Wi-Fi:苹果密码8个8。外卖的话在美团外卖上搜"金谷园饺子馆",3公里内能送。
具体查询:用户问"能打包生饺子带走吗?" → jgy.cjs call raw-dumpling-info
可以的,非特殊节气,直接到店下单就行,5-10分钟包好。带走后1小时内煮最好,来不及就放冰箱冷冻。煮的时候水烧开下饺子,中间点两次凉水,浮起来就熟了。
最新动态:用户问"最近有什么活动?" → jgy.cjs call news,每条消息必须带上发布日期
最近动态(仅示意):
- 【2026-04-01】清明节正常营业,欢迎来吃饺子
- 【2026-03-20】五道口店新增鲅鱼水饺,限时供应中
- 【2026-03-15】北邮店周末不限时,放心坐
查询失败:不编造,坦诚说明
抱歉,金谷园的信息暂时获取不到,你可以稍后再问我,或者直接去店里看看。
| 文档 | 内容 |
|---|---|
| references/api-reference.md | 公开查询能力名与调用方式 |
| references/queue-reply-contract.md | 排队回答合同与餐段口径 |
| references/queue-actions.md | 真实排队 CLI 与授权展示 |
jinguyuan-dumpling-skill(展示名「金谷园饺子馆 Skill」)jgy-mcp(REST API 与 MCP 同一事实源;本 Skill 只走 REST);本仓库 package.json 仅 Skill 侧 version + engines.node(Node ≥18)1.x / tag v1.0.2 · v1-stable