用途:从 Zephyr 烘焙日志中提取带明确时间戳的离散烘焙动作,调用 Grafana 标注 CLI 创建标注,并将命令(不含输出)写入烘焙日志的 ## grafana 区块。查找日志和读取 Zephyr 条目的方法参见 zephyr 技能。
标注对象:仅限有明确事件时间戳、时间有界的动作,如 feed_starter、starter_peaked、mix、stretch_fold、long_bulk_start、shape、cold_retard_start、score、bake_start、lid_off、bake_done。跳过观察、温度读数、问题、反思及无具体动作时间的条目。标签用 snake_case,有起止点的动作用 _start 和 _done 后缀;长时连续发酵用 long_bulk_start(非 bulk_start)。
脚本:标注脚本 /Users/mtm/pdev/taylormonacelli/diminutivedragon/scripts/annotate-grafana.py;删除脚本 scripts/clear-annotations.py。脚本从 AWS SSM 参数存储自动获取 Grafana token(/diminutivedragon/grafana_token,区域 us-west-2),该参数为带外创建、不由 Terraform 管理;测试时可用环境变量 GRAFANA_TOKEN 覆盖。切勿把 token 写入日志或提交文件。
用法:一次调用传入所有事件,重复使用 --time 与 --label,时间先转为 ISO 8601,例如 uv run --directory ~/pdev/taylormonacelli/diminutivedragon scripts/annotate-grafana.py --time 2026-05-28T20:39:00 --label feed_starter --time 2026-05-29T06:31:00 --label starter_peaked。运行后把命令以围栏代码块写入日志 ## grafana 区块,不写入输出的 Added annotation id=... 行。删除标注用 clear-annotations.py --id 42,删除后重新添加并更新日志中的命令块。每次标注后提交日志以便回退。
区块归属:## grafana 为共享区块,本技能只负责围栏标注命令块;区块顶部两个仪表盘链接由 zephyr-grafana-links 技能负责,不得删除或改写。烘焙完成后,bake_done 标注也作为需要固定链接结束时间的信号。
限制:未提供 token 的创建细节、可用 Grafana 版本、错误处理方式及网络要求。