Skill: vivalavida-say-hi/yoooclaw-family-digest (version 1.0.0)

--- name: yoooclaw-family-digest description: 从手机通知中以「人」为维度提取家庭重要信息，按相关人物（孩子、配偶、父母/长辈等）分组展示，并标注重要程度。触发：家里的信息 / 家里的消息 / 家里有什么 / 家人说了什么 / 重要信息 / 今天的通知 / 关于孩子的消息 / 孩子的消息 / 老公要我做什么 / 老婆嘱咐 / 老婆说了什么 / 妈妈说了什么 / 家庭消息汇总 / 家里有什么事。 --- # family-digest ## 目标 以**家庭成员**为维度，把今天（或最近）通知中来自配偶、父母、长辈、孩子学校/老师的**重要信息**提炼出来，回答「家人今天说了什么要紧的」。 用户通过安装弹窗的「关注谁」字段设置重点关注的家庭成员，如：老公、妈妈、婆婆、大宝班主任、钢琴老师等。设置了的人物在输出中优先展示，未设置时从通知数据中自动推断。 用户问的是「关于某个人的消息」或「家里的重要信息」，想要的是**人视角**的汇总，而不是待办清单、日程表或消费流水。 不假设家庭成员的具体姓名或结构——**全部从通知数据中推断**。 ## 数据加载策略 - **先通过 `openclaw ntf storage-path` 获取通知存储目录**（用 Bash 工具运行该命令，stdout 即是目录的绝对路径）。后续所有通知文件直接在这个目录下，命名为 `YYYY-MM-DD.json`。 - **文件命名**：`YYYY-MM-DD.json`，一天一文件，包含当日全部 App 通知 - **加载优先级**：① 用户在 prompt 里明确给的路径 > ② `<storage-path>/<YYYY-MM-DD>.json` - **时间窗口（按用户问法动态决定）**： - "今天" → 仅当天日期对应文件 - "昨天" → 仅昨天日期对应文件 - "这周 / 最近" → 近 7 天 - 无明确时间修饰 → 默认当天 - 用户给定具体日期段 → 严格按指定 - 跳过不存在的文件，不报错 - 若 `openclaw ntf storage-path` 不可用，提示用户给出数据路径 - 若用户在问句中指定了特定人物（"老公今天要我做什么"），加载后按人物过滤再展示 ## 输入数据 schema JSON 数组，每条： ```json {"appName":"com.tencent.xin","title":"群名或联系人名","content":"消息内容","timestamp":"2026-04-22T10:30:00.000+08:00","appDisplayName":"微信"} ``` - `appDisplayName` 区分来源：微信 / 短信 / 提醒事项 / 邮件 等 - `title` 为联系人名或群名 - 微信群消息 `content` 常以 `[X老师]:` / `[家长-xxx]:` 等身份标签开头，**这是判定发送者的核心信号** ## 核心逻辑 ### 1. 人物识别（运行时从数据推断，不要硬编码姓名） | 信号 | 判定角色 | |---|---| | 私聊 title 为"老公 / 老婆 / 亲爱的 / 夫妻常见昵称" | 配偶 | | 私聊 title 为"妈妈 / 爸爸 / 婆婆 / 公公 / 岳父 / 岳母" | 父母/长辈 | | 家长群内 `[X老师]:` 前缀 | 孩子—老师 | | 幼儿园/学校公众号推送 | 孩子—学校通知 | | 私聊 title 含"老师"（钢琴 / 英语等课外班） | 孩子—课外班老师 | | 家长群内 `[家长-xxx]:` 前缀含作业/孩子信息 | 孩子—家长群（谨慎收录，见过滤规则） | | 家庭大群 / 亲友群 | 其他家人 | 如果用户在「关注谁」中指定了具体人物（如"老公、妈妈、大宝班主任"），这些人物的消息优先级最高，即使内容较短也要检查是否包含请求、通知或行动项。 输出中使用从数据推断出的真实称呼（如"老公""妈妈""婆婆""大宝班主任"），无法确定时用角色占位（"配偶""大宝"）。**不要把文档示例里的姓名带进真实输出。** ### 2. 重要程度分级 每条信息自动判定： - **🔴 需要回应/行动**：含截止时间、含"请 / 麻烦 / 帮我 / 记得 / 需要 / 一定要"等请求动词、需要签字/接龙/准备物品/确认 - **🟡 知悉即可**：纯通知性（活动时间、食谱调整、表扬、分享链接）、家人情绪/进展分享 - **⚪ 闲聊**：问候、加油打气、表情包、无实质内容 → **默认不展示**（静默丢弃） ### 3. 内容提炼 对每条保留的通知： - 用一句话概括核心信息（避免照搬原文，去掉客套话） - 注明来源（"老公微信""妈妈微信""二宝班主任通知"） - 若有截止日期/时间 → 单独列出 - 若需要用户做什么 → 用 `→` 标注行动项 ## 过滤规则 - **纯闲聊**（家长群 `[家长-xxx]:` 的"收到/+1/谢谢老师"）→ 丢弃 - **营销推送**（小红书、拼多多、淘宝、抖音、饿了么优惠、美团活动）→ 丢弃 - **消费/账单通知**（银行扣款、支付宝付款成功、水电燃气缴费）→ 属于 `expense-tracker`，本 skill 丢弃 - **出行订单**（机票、酒店、租车确认）→ 属于 `family-trip-checklist`，本 skill 丢弃 - **物业/快递物流**（停水、快递到站）→ 属于 `family-todo`，本 skill 丢弃 - **⚪ 闲聊级消息** → 静默丢弃，不在输出中提及 ## 输出模板 ### A. 全家总览（默认模式） ``` 📬 家庭信息汇总（YYYY-MM-DD） ━━ 👶 孩子 ━━ 🔴 需要行动 ① <一句话概括> 来源：<班级/老师名> 截止：<如有> → <需要做什么> 🟡 知悉即可 ② <一句话概括> 来源：<来源> ━━ 👨 <老公 / 配偶昵称> ━━ 🔴 <一句话概括> → <行动项> 来源：<微信私聊 / 等> 🟡 <一句话概括> 来源：<来源> ━━ 👩 <妈妈 / 婆婆等> ━━ 🟡 <一句话概括> 来源：<来源> ━━ 其他家人 ━━（如有相关消息时展示） 🟡 ... ━━ 今天需要回应的事 ━━ ✋ <人物>：<事项>（截止：<如有>） ✋ <人物>：<事项> ``` ### B. 单人模式（用户指定了特定人物） ``` 👨 <配偶昵称> 的消息（YYYY-MM-DD） 🔴 <一句话概括> → <行动项> 🟡 <一句话概括> ``` 若该人物当天无消息，直接说明"今天没有来自 <人物> 的消息"。 ## 质量约束 - 家人的明确请求/行动事项 **100%** 保留，营销/闲聊噪音 **0%** 误入 - 重要程度标注准确：含截止日 / 请求动词 → 🔴；纯通知 → 🟡；闲聊 → 静默 - 按人物分组的标题用数据推断出的真实称呼，无法判断时才用角色占位 - 「今天需要回应的事」汇总段按紧迫度排序，确保用户能一眼看到最紧迫的事 - 不编造通知里没有的信息；来源模糊时在说明里标"（推测）" - 仅生成会话文本，不写文件


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)