mcpField
W
wilma-triage

wilma-triage

github.com/aikarjal生产力81401 次安装1 天前更新
代码仓库

关于 wilma-triage

wilma-triage 是面向家长的 Agent 技能,用于整理 Wilma 学校信息、筛出可执行事项,并可将考试和活动同步到家庭日历。它还强调提取临近日程安排和重要附件中的内容。

主要功能

  1. 01每日汇总 Wilma 数据
  2. 02按行动需求和偏好筛选
  3. 03读取相关文件附件
  4. 04检查重复后同步日历
  5. 05报告上学日的具体安排

适用场景

  1. 01查看多个孩子的消息和考试
  2. 02查找截止日期、必带物品和日程变更
  3. 03在日历中添加或移除学校活动

MCP 相关

可使用 wilma_summary、wilma_read_message 等 WilmAI MCP 工具;也可改用 wilma CLI。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/aikarjal/wilmai --skill wilma-triage

安装后在 Claude Code 中输入/wilma-triage确认已加载。

详细介绍

Wilma 分类处理

为家长自动对 Wilma 学校数据进行每日分类处理。过滤无关信息,突出需要采取行动的事项,并将考试和活动同步到家庭日历。

依赖项

  • Wilma 访问权限 — WilmAI MCP 工具(wilma_*),或 wilma 技能和 CLI(clawhub install wilma;此技能的命令需要 wilma-cli 2.0+)。wilma 技能会将每个 MCP 工具对应到 CLI 命令;使用可用的方式即可。
  • 日历(可选) — Agent 可用的任意日历工具:OpenClaw 上的 gog 技能(clawhub install gog),或助手自带的日历连接器。如果没有日历工具,请在报告中列出新日期,而不是进行同步。
  • 笔记 — 此技能会将设置和偏好存储在 Agent 的笔记中。在 OpenClaw 上,这些笔记是 TOOLS.md 和 MEMORY.md;在其他环境中,凡是此技能要求使用 TOOLS.md 或 MEMORY.md 的地方,请使用助手的记忆或项目说明。

首次运行设置

首次使用时,收集并存储配置:

  1. 查找孩子: 调用 wilma_account 或运行 wilma students,获取学生姓名和编号
  2. 日历: 使用 Agent 的日历工具列出可用日历(例如 gog calendar calendars)。询问用户要将哪个日历用于学校活动。在 TOOLS.md 的 ## Wilma Triage 部分中存储日历 ID 和活动命名约定。如果没有可用的日历工具,则跳过此步骤。
  3. 偏好设置: 询问是否有针对特定孩子的规则(例如,将宗教课替换为 ET 等科目覆盖设置)。将其作为 Wilma 分类处理上下文的一部分存储在 MEMORY.md 中。

随着时间推移,用户会反馈哪些内容应该报告、哪些应该跳过——请将这些偏好存储在 MEMORY.md 中。分类处理会随着使用变得更加智能。

工作流

  1. 获取数据 — 一次调用即可涵盖所有孩子的最新动态:使用带有 since 的 wilma_summary,或使用下方的 CLI。使用上次运行的日期(存储在 MEMORY.md 中),或使用昨天的日期。它会返回当天和下一个上学日的课程、即将到来的考试(如果提供了开始时间,也会一并返回)、家庭作业、课程备注(教师反馈和缺勤)、当天起的公告和消息,以及所有未读消息。

    wilma summary --since <last-run-date-or-yesterday>
    
    # Drill into specifics as needed
    wilma messages <id>                 # full text and every reply
    wilma news <id>                     # full text and linked resources
    wilma exams                         # all upcoming exams
    wilma schedule tomorrow
    wilma notes --from <date>           # lesson notes for a longer period
    

    Agent 运行 CLI 时会输出 JSON;结果按孩子分别提供(students[].student),时间均为芬兰时间。使用 MCP 工具时,wilma_read_message、wilma_read_news、wilma_upcoming_exams、wilma_schedule 和 wilma_lesson_notes 与之对应。默认情况下,所有工具和命令都会涵盖所有孩子。

  2. 下载并阅读重要附件 — 许多公告只有链接:content 字段为空(或仅提示查看附件),可执行信息——日期、截止时间、表格、所需材料、日程详情——都在附件中。跳过这些附件,就会漏掉分流流程本该捕捉到的内容。

    阅读公告或消息后,检查 JSON 中的 resources 数组。仅当以下条件全部满足时,才尝试下载:

    • 资源看起来是文档(有 fileName 提示、URL 看起来像文档链接,或其他明显表明它是文件而非网页的特征),并且
    • 公告价值较高(年度/学期信息表、教师来信、学校办公室公告、许可单),并且
    • 公告正文为空,或提示查看附件。
    wilma news <news-id> download <resource-id> --output <dir>
    

    使用 MCP 工具时,请改为调用 wilma_get_news_attachment;它会直接返回文件内容。

    处理返回的 status:

    • downloaded(CLI)或 fetched(MCP)——阅读文件(PDF 使用 PDF 阅读器),并将可执行事项提取到报告中。
    • not_a_file——链接是网页,或需要外部登录。报告该 URL,供家长自行打开。不要循环重试。
    • error——报告错误消息。

    不要下载的内容:

    • 通用信息类网页链接、社交媒体页面,以及同一通知的多语言重复版本——单条公告可能包含很多此类内容。
    • 不要遍历整个 resources 数组;只针对高价值、可执行公告中的真实文档附件。

    **沙箱说明:**图片/PDF 阅读工具可能会拒绝某些临时路径中的文件(例如系统临时目录)。请将附件下载到相对于工作区的目录(例如 ./attachments/)后再阅读;如有需要,之后清理这些文件。

  3. 筛选 — 应用下方的分流规则,以及 MEMORY.md 中针对孩子的规则。公告列表始终包含置顶公告(pinned: true,例如学年公告),因此每天都会重新出现:仅在公告日期处于分流时间范围内时才报告。若某条消息的 replyCount 较上次运行时增加(请在 MEMORY.md 中保存计数),说明有新回复——请阅读该对话线程。

  4. 日历同步 — 使用 TOOLS.md 中注明的日历工具,添加尚未录入的考试和可执行事项(若没有日历工具则跳过)。有 time 的考试应创建定时事件;其他考试均创建全天事件。

    • 务必先检查是否已有事件,再添加,以避免重复
    • 使用 TOOLS.md 中存储的命名规范
    • 从日历中删除已取消的事件
  5. 报告 — 如果发现可执行事项,请发送详细信息。如果没有可执行事项,则保持静默或发送简短确认。查看 MEMORY.md 中用户的通知偏好。然后将今天的日期存入 MEMORY.md,作为上次运行日期(供下次运行的 --since 使用)。

日历同步

请参阅 TOOLS.md,了解日历 ID、命名规范,以及要使用的确切日历命令或工具。

禁止重复规则:

  1. 添加任何事件之前,先检查该日期范围内的日历
  2. 如果存在匹配事件(日期相同 + 孩子相同 + 科目关键词相同),则跳过
  3. 仅在事件尚不存在时添加

了解 Wilma 消息

Wilma 消息来自不同来源,信息含量差异很大。了解其中的区别对有效分流至关重要:

  • Viikkoviesti / 每周信(由班主任发送)——价值很高。 这是班主任每周发送的更新。看起来像随意的通讯,但常常夹带需要采取行动的信息:即将举行的考试、需要携带的材料、日程变更、校外活动、截止日期。务必阅读全文。 不要仅凭主题行就跳过。
  • 教师消息(由任课教师发送)——通常涉及具体考试、作业或班级活动。信息含量高。
  • 学校办公室 / rehtori 消息——行政事务:日程变更、活动、政策更新。信息含量中等——浏览并留意需要采取行动的事项。
  • Kuukausitiedote / 每月通讯(由学校办公室发送)——请阅读。 通常包含重要日期:假期、学年开始/结束时间、活动日程、报名截止日期。不要仅凭通用主题行就跳过。
  • 市政部门通知(由市/市政教育部门发送)——健康宣传活动、交通信息、调查。对日常分流来说通常无关紧要。浏览主题,除非明显需要采取行动,否则跳过。
  • 家长联合会 / vanhempainyhdistys——默认信息含量低(筹款、志愿者招募)。不过,请查看 MEMORY.md——如果家长积极参与联合会,这类消息就变得优先级很高。

经验法则: 如果消息来自教师(班主任或任课教师),务必阅读。如果来自学校办公室或市政部门,浏览主题;除非明显需要采取行动,否则跳过。

如果高价值消息或公告引用或附有文档,请按照工作流步骤 2 下载并阅读——需要采取行动的详细信息往往只在附件中。

了解课堂记录(merkinnät)

课堂记录是教师在 Wilma 中留下的简短课堂备注。大致可分为几类,信息含量差异很大:

  • 行为方面的担忧(例如:“Sinulta puuttui opiskeluvälineitä” =“你缺少学习用品”,“Häiritsi tuntia” =“扰乱了课堂”)——报告。 家长通常希望了解,也可能想跟进。
  • 未说明原因的缺勤(“Selvittämätön poissaolo”)——立即报告。 这可能表示逃课,也可能是家长忘记在 Wilma 中提交请假说明。
  • 已说明原因的缺勤(“Terveydellinen syy” = 因健康原因,“Muu selvitetty poissaolo” = 其他已说明原因的缺勤)——简要报告,确认缺勤已登记。如果 MEMORY.md 表明家长不希望收到缺勤确认,则跳过。
  • 正面反馈(“Hyvä!”,“Osasit toimia ryhmän vastuullisena jäsenenä”)——默认跳过。 如果 MEMORY.md 表明家长也希望收到正面记录,可偶尔提及。
  • 教师的原话(note,例如“Lähti 13.00” =“13:00 离开”,或具体缺少了什么)——往往是最有用的部分。请呈现出来。

typeLabel 是芬兰语标签,note 是教师的原话(或 null),subject 是课程代码(例如 MA_8LV;与课程无关的记录中为空)。报告时,将连续出现且科目和类型相同的记录合并(一次缺勤通常会跨多个课时)。如需查看整个学期的概况,wilma notes summary(wilma_lesson_notes_summary)会按类型统计记录数量。

分流规则

始终报告(需要采取行动)
  • 需要填写的表格、许可单、回复
  • 截止日期(报名、付款、需携带的材料)
  • 日程变更(提前放学、停课、代课安排)
  • 需要准备的特殊装备/材料(例如“带上滑雪装备”、“穿户外服装”)
  • 孩子可能想参加的课后活动(舞会、电影之夜)
  • 考试日程更新或新增考试
  • 已列入日历但已取消的活动 → 将其删除
  • 行为方面的课堂记录或未说明原因的缺勤(参见上文的 merkinnät 部分)
简要报告(值得提及)
  • 校外活动、主题日及日期信息
  • 学校停课、假期安排变更
  • 健康通知(头虱提醒、疾病暴发)
  • 新成绩(简要提及并注明科目)
  • 课程记录中登记的已说明缺勤(仅确认)
重要:务必阅读每周信件(viikkoviesti)

班主任发送的每周信件中,常常会在正文中夹带需要采取行动的事项:考试、需要携带的材料、日程变更、校外活动。务必阅读 viikkoviesti 消息的全部内容——不要只看主题行就跳过。如果信件提及或附有文档(信息表、日程、表格),也要按照工作流步骤 2 下载并阅读。

前一天的安排(关键!)

Viikkoviesti 和教师消息中常常包含未来几天的实际安排细节,这些内容可能无法对应到日历事件,但对家长在前一天或前一晚至关重要:

  • 上学或放学时间变更(例如,正常是 8:30,但要“9:30 到校”)
  • 需要携带或准备的物品(水壶、户外衣物、零食、特定装备)
  • 因校外活动或其他事件而取消的课程(例如,没有 ET 或选修课)
  • 接送/返校时间变更(例如,“约 15:00 返回学校”)
  • 当天的安排顺序(例如,“先考试,然后立即出发参加校外活动”)

**这些细节和考试及日程变更同样重要。**家长知道有校外活动,却不知道上学时间改为 9:30,而不是 8:30,得到的信息就不完整。

工作流:

  1. 阅读 viikkoviesti 时,提取未来 2-3 个上学日的所有每日具体安排
  2. 如果今天的筛查发现明天或后天的安排,务必报告,即使相关事件(校外活动、考试)已在日历中
  3. 包括:时间变更、需要携带的物品、取消的课程、交通详情、返程时间
  4. 不要以为日历同步就代表任务完成——日历里有事件,但没有这些安排细节

**如果不留意,可能会漏掉以下内容:**日历显示周五有“活动公园之旅”和“历史考试”。但 viikkoviesti 说上学时间是 9:30(不是 8:30),先考历史,需要带水壶和零食,没有 ET 或选修课,约 15:00 返回。家长前一晚必须了解所有这些关键信息。

静默跳过
  • 音乐会、文化演出(仅供参考)
  • 泛泛的“欢迎回来”或季节性问候
  • 全市范围的信息通知(健康宣传、交通信息、调查)
  • 家长联合会的消息(除非用户积极参与——查看 MEMORY.md)
  • 正面的课程记录(除非 MEMORY.md 另有说明)

查看 MEMORY.md,了解用户长期提供的其他跳过/报告规则(例如科目例外、针对特定学校的筛选规则)。

建议的 Cron 设置

按本地时间每天 07:00 运行。在 OpenClaw 中,将其设为隔离的 agentTurn 任务;在其他助手中,如果有定时任务功能,则使用该功能:

Schedule: 07:00 daily
Timeout: 180s
Task: "Read the wilma-triage skill, then run the full triage workflow. Report actionable findings."

与其他早间任务错开时间(例如,07:05 检查电子邮件),以避免触发 API 速率限制。

输出格式示例

📚 Wilma Update

Child A (8th grade)
• Math exam tomorrow — yhtälöt, kpl 1-8
• Friday short day (9:20-12:35) — kulttuuripäivä, bring laptop + outdoor clothes
• Lesson note (yesterday, MA_8LV): "Sinulta puuttui opiskeluvälineitä" — kirja jäi kotiin

Child B (6th grade)
• No actionable items

📅 Calendar: Added Child A math exam (10 Feb), removed cancelled disco (11 Feb)

保持简短。每项一行。宁可不报,也不要制造噪声。

为用户写日期时,请遵循回答所用的语言:芬兰语 ke 7.10.(末尾带句点),英语 Wed 7 Oct。Wilma 的原文使用芬兰语格式;请转换格式,不要混用两者(不要写成 Wed 7.10)。

评论

支持 Markdown