← Back to Skills Marketplace
haoxingyao

日用品保质期管理

by Hao Xingyao · GitHub ↗ · v1.0.0 · MIT-0
cross-platform ✓ Security Clean
76
Downloads
0
Stars
0
Active Installs
1
Versions
Install in OpenClaw
/install shelflife
Description
日用品保质期管理。基于飞书多维表格,支持快速录入、查询、删除商品保质期信息。 首次使用自动初始化多维表格和定时过期提醒。 触发词:保质期、过期、临期、查保质期、还有多久过期。 也匹配:"加个xxx"、"录入xxx"、"删除xxx"等简短指令。 注意:当用户仅提到"保质期"一词时也应触发此技能。
README (SKILL.md)

日用品保质期管理

配置

配置文件路径:~/.openclaw/workspace/skills/shelflife/config.json

首次使用时读取此文件,如果 initialized 为 false 或 app_token 为空,则执行自动初始化流程

{
  "bitable": {
    "app_token": "",
    "table_id": "",
    "initialized": false
  },
  "cron": {
    "reminder_job_id": ""
  }
}

首次使用 - 自动初始化

config.jsoninitialized 为 false 或 app_token 为空时,在用户首次触发保质期相关操作前自动执行

步骤 1:创建多维表格

调用 feishu_bitable_app create,创建名为 "日用品保质期管理" 的多维表格。

步骤 2:创建数据表及字段

调用 feishu_bitable_app_table create,创建表 "商品列表",一次性定义所有字段:

字段名 类型 说明
商品名称 文本(1) 主键,必填
生产日期 日期(5) 可选
保质期截止 日期(5) 录入时必填
有效期时长 文本(1) 如"12个月",可选
剩余天数 数字(2) 公式自动计算
状态 单选(3) 公式自动计算:正常/即将过期/已过期
已用完 复选框(7) 默认 false
标签 单选(3) 食品/罐装/日用品/洗护用品

字段定义(create 时传入的 fields 数组):

商品名称: type=1 (文本)
生产日期: type=5 (日期)
保质期截止: type=5 (日期)
有效期时长: type=1 (文本)
已用完: type=7 (复选框)
标签: type=3 (单选), property.options=["食品","罐装","日用品","洗护用品"]

注意: 剩余天数和状态两个字段依赖公式,多维表格 API 不支持直接创建公式字段,需在表格创建后通过 feishu_bitable_app_table_field create 补充:

  • 剩余天数:数字类型,公式为 DATETIME_DIFF(保质期截止, TODAY(), "day")
  • 状态:单选类型,公式逻辑:
    • 剩余天数 ≤ 0 → "已过期"
    • 剩余天数 ≤ 30 → "即将过期"
    • 其他 → "正常"
    • 选项:["正常", "即将过期", "已过期"]

实际操作: 由于多维表格字段 API 对公式字段的支持有限,如果无法通过 API 创建公式字段,则退化为由 agent 在每次操作时手动计算剩余天数和状态字段。此时字段类型仍为数字和单选,但不设置公式,而是在录入/查询时由 agent 计算。

推荐方案: 先尝试创建公式字段,如果 API 不支持则手动计算。在 SKILL 使用中统一按"agent 计算"方式处理,保持兼容。

步骤 3:创建视图

调用 feishu_bitable_app_table_view create:

  • 默认视图(表格已有):按剩余天数升序排列
  • 新增视图 "临期提醒":grid 类型,筛选状态为"即将过期"或"已过期"且已用完为 false 的记录

步骤 4:更新配置文件

将 app_token 和 table_id 写入 config.json,设置 initialized=true。使用 edit 工具更新文件。

步骤 5:创建定时过期提醒

调用 cron add,创建每日定时检查任务:

{
  "name": "保质期过期提醒",
  "schedule": { "kind": "cron", "expr": "0 9 * * *", "tz": "Asia/Shanghai" },
  "payload": {
    "kind": "agentTurn",
    "message": "执行保质期过期提醒检查:读取 config.json 获取多维表格信息,查询所有「状态」为「即将过期」或「已过期」且「已用完」为 false 的商品记录。如果有,整理成简洁列表通过飞书发送给当前用户(从消息上下文获取 SenderId);如果没有,静默结束不发消息。config.json 路径:~/.openclaw/workspace/skills/shelflife/config.json"
  },
  "sessionTarget": "isolated",
  "delivery": { "mode": "none" }
}

将返回的 jobId 写入 config.json 的 cron.reminder_job_id。

步骤 6:转移所有权

多维表格创建后,将所有权转移给当前用户(从消息上下文获取 SenderId)。

初始化完成提示

告知用户:"✅ 保质期管理已初始化完成!已创建多维表格并设置每日 9:00 自动过期提醒。"

字段结构

字段名 类型 说明
商品名称 文本(1) 主键,必填
生产日期 日期(5) 可选
保质期截止 日期(5) 录入时必填
有效期时长 文本(1) 如"12个月",可选
剩余天数 数字(2) 由 agent 计算填入
状态 单选(3) 由 agent 计算填入:正常/即将过期/已过期
已用完 复选框(7) 默认 false
标签 单选(3) 食品/罐装/日用品/洗护用品,可选

操作流程

前置检查

每次执行操作前:

  1. 读取 config.json
  2. 如果 initialized 为 false 或 app_token 为空 → 执行自动初始化流程
  3. 从 config.json 获取 app_token 和 table_id

Agent 计算规则

在录入、查询时,agent 需要计算并填入剩余天数状态字段:

  • 剩余天数 = 保质期截止日期 - 今天(天数)
  • 状态
    • 剩余天数 ≤ 0 → "已过期"
    • 剩余天数 ≤ 30 → "即将过期"
    • 其他 → "正常"

录入商品

用户说"添加xxx"、"录入xxx"、"加个xxx"时:

  1. 从用户输入提取:商品名称、保质期截止日期、标签(可选)、生产日期(可选)、有效期时长(可选)
  2. 如果用户只给了商品名和保质期时长(如"12个月"),自动计算截止日期
  3. 调用 feishu_bitable_app_table_recordcreate,写入字段:
    • 商品名称、保质期截止、标签、生产日期、有效期时长
    • 剩余天数:计算今天到截止日的天数差
    • 状态:根据剩余天数判断
  4. 日期格式传毫秒时间戳(number 类型)
  5. 录入成功后简要确认

查询

查所有: 用户说"看一下"、"列表"、"都有什么" → list action,sort 按剩余天数升序排列

查临期/过期: 用户说"快过期的"、"临期"、"已过期" → list + filter,状态 is "即将过期" 或 "已过期",且已用完 is false

查具体商品: 用户说"xxx还有多久" → list + filter 商品名称 contains 关键词

标记用完

当收到飞书卡片按钮回调(action: shelflife_used)或用户说"用完xxx"、"吃完xxx"时:

  1. 获取 record_id(从回调 value 中)或通过商品名称查询
  2. update action 将「已用完」设为 true
  3. 简要确认:"已标记 xxx 为已用完"

删除

用户说"删除xxx"、"去掉xxx"时:

  1. 先查询确认是哪条记录
  2. delete action 删除
  3. 简要确认

手动触发过期检查

用户说"检查过期"、"过期提醒"时:

  • 直接查询多维表格中状态为"即将过期"或"已过期"且已用完为 false 的记录
  • 整理列表展示给用户

注意事项

  • 日期写入时使用毫秒时间戳(number),不要用字符串
  • 剩余天数和状态由 agent 在录入时计算填入,不是表格公式
  • 如果用户输入信息不全,主动询问缺失的必填项(商品名称 + 保质期截止日期/时长)
  • 每日 9:00 定时检查由 cron 任务自动执行,agent 在 isolated session 中运行
Usage Guidance
Before installing, be aware that the first relevant use may create a Feishu Bitable and a daily 9:00 reminder job. This matches the skill’s purpose, but you should only use it if you want the agent to manage these Feishu resources and recurring reminders.
Capability Analysis
Type: OpenClaw Skill Name: shelflife Version: 1.0.0 The 'shelflife' skill is designed to manage household item expiration dates using Feishu Bitable. It automates the creation of a tracking spreadsheet, handles data entry/queries, and sets up a daily cron job for expiration reminders. The logic in SKILL.md is transparent, uses standard platform tools, and lacks any indicators of malicious intent or unauthorized data access.
Capability Assessment
Purpose & Capability
The Feishu Bitable operations, item record creation/query/update/delete, and expiration reminders fit the stated household shelf-life management purpose.
Instruction Scope
The skill uses broad trigger phrases, including a single mention of “保质期”, and may initialize resources on first trigger; this is disclosed but users should be aware of the side effect.
Install Mechanism
No install script, package dependency, shell command, or code file is provided; this is an instruction-only skill.
Credentials
It writes a scoped config file under its own .openclaw skill directory and uses Feishu Bitable APIs for its intended data store.
Persistence & Privilege
The skill creates a daily cron reminder job and stores its job ID in config; this persistence is disclosed and purpose-aligned, but users should know it will continue running until disabled or removed.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install shelflife
  3. After installation, invoke the skill by name or use /shelflife
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.0.0
shelflife 1.0.0 - 首次发布:基于飞书多维表格的日用品保质期管理工具。 - 支持商品保质期的快速录入、查询、删除、已用完标记,自动计算剩余天数和状态。 - 首次使用自动初始化表格、字段和定时每日过期提醒,无需手动配置。 - 提供丰富的自然语言触发词和简短指令,支持“加个”“录入”“删除”等中文命令。 - 保质期临期和过期商品每日自动提醒,并可随时手动检查。
Metadata
Slug shelflife
Version 1.0.0
License MIT-0
All-time Installs 0
Active Installs 0
Total Versions 1
Frequently Asked Questions

What is 日用品保质期管理?

日用品保质期管理。基于飞书多维表格,支持快速录入、查询、删除商品保质期信息。 首次使用自动初始化多维表格和定时过期提醒。 触发词:保质期、过期、临期、查保质期、还有多久过期。 也匹配:"加个xxx"、"录入xxx"、"删除xxx"等简短指令。 注意:当用户仅提到"保质期"一词时也应触发此技能。 It is an AI Agent Skill for Claude Code / OpenClaw, with 76 downloads so far.

How do I install 日用品保质期管理?

Run "/install shelflife" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is 日用品保质期管理 free?

Yes, 日用品保质期管理 is completely free, licensed under MIT-0. You can download, install and use it at no cost.

Which platforms does 日用品保质期管理 support?

日用品保质期管理 is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created 日用品保质期管理?

It is built and maintained by Hao Xingyao (@haoxingyao); the current version is v1.0.0.

💬 Comments