360 Secure SkillHub
360 安全技能中心

Grocery Shopping Assistant

核心功能:为OpenClaw提供持久化杂货与 pantry 状态管理,支持自然语言完成缺货报备、加采购项、查待购清单、标记已购等操作,搭配Telegram呈现购物/ pantry视图。典型场景:日常采购管理,如说“加牛奶到清单”“我盐用完了”等。输入为自然语言指令,输出为Telegram UI视图或操作反馈,成功Telegram操作后返回NO_REPLY,状态存储于本地指定文件。

serdarsalim
serdarsalim
热度 53.58
最近更新 2026-05-11 17:39:55
分类:生活依赖:代码执行 / 读写文件 / 第三方 API / MCP 服务应用场景:购物 / 任务管理

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add grocery-assistant
Metadata
name
grocery-checklist
description
Persistent pantry-backed grocery checklist for OpenClaw, intended for normal conversational use with Telegram shopping-list UI.
version
1.1.3
user-invocable
true
metadata
{"openclaw":{"emoji":"🛒","requires":{"bins":["bash","python3","openclaw"]},"reads":["~/.openclaw/openclaw.json"],"writes":["~/.openclaw/data/grocery-checklist/state.json","~/.openclaw/data/grocery-checklist/telegram-bot-state.json"]}}

Grocery Checklist

This skill stores grocery state locally and supports a Telegram checklist UX.

Intended usage:

  • OpenClaw handles conversation normally
  • this skill provides grocery state and actions
  • Telegram renders shopping and pantry views
  • the managed OpenClaw route is the primary install mode

Runtime behavior:

  • reads Telegram account config from ~/.openclaw/openclaw.json
  • writes pantry state to ~/.openclaw/data/grocery-checklist/state.json
  • writes Telegram polling state to ~/.openclaw/data/grocery-checklist/telegram-bot-state.json
  • uses the bundled wrapper at scripts/grocery.sh

Use it for:

  • I ran out of salt
  • Add milk and eggs to groceries
  • What do I need to buy?
  • Mark eggs bought
  • I'm shopping now
  • Should I go shopping today?

Wrapper:

bash <skill_dir>/scripts/grocery.sh ...

Core states:

  • needed
  • have

Telegram callbacks use:

callback_data: gchk:...

Behavior guidance:

  • when tools are available, use mutate_grocery_items for state changes and render_grocery_view for Telegram UI
  • treat natural grocery mutation phrasing as state changes
  • for mutation intents, run the mutation first; do not render as a substitute for the mutation
  • treat show me the shopping list, what do I need to buy, and “I am shopping now” phrasing as shopping-list renders
  • treat show me the pantry and what do I have as pantry renders
  • keep normal grocery conversation conversational
  • after a Telegram UI render or callback, do not send a second explanatory message
  • for successful Telegram UI actions, the ideal model output is exactly NO_REPLY