背景
NoteDeck の HEARTBEAT cheap-check 機構は、skill の frontmatter で cheapCheckCapabilities: [...] を宣言した skill のみ発動する (useHeartbeatDaemon.ts)。宣言が無い heartbeat スキルは観測対象に変化がなくても毎 tick AI が呼ばれ、そのぶん課金が走る。
installSkill は cheapCheckCapabilities を取り込み済みなので、ストア側の frontmatter に書けばそのまま効く。
対象 (未宣言の heartbeat スキル)
- ai-cost-pulse
- server-pulse
- repost-sentinel
- mindful-pulse
- time-capsule
improvement-pulse は宣言済み (cheapCheckCapabilities: [logs.recent])。
やること
各スキルの観測対象に合った capability を選んで宣言する。「その capability の結果 hash が前回 tick と変わらなければ AI 呼び出しをスキップ」という意味論なので、tick ごとに必ず変わるもの (time.now など) を入れると無意味になる点に注意。スキルごとに「何が変わったら起きるべきか」から逆算して選ぶ。
備考
現状ストア経由インストールでは mode が manual に落ちる既知の挙動があり (notedeck 側 issue 参照)、heartbeat 稼働には手動復帰が必要。cheap-check 宣言はそれとは独立に、復帰後の課金を抑える改善。
背景
NoteDeck の HEARTBEAT cheap-check 機構は、skill の frontmatter で
cheapCheckCapabilities: [...]を宣言した skill のみ発動する (useHeartbeatDaemon.ts)。宣言が無い heartbeat スキルは観測対象に変化がなくても毎 tick AI が呼ばれ、そのぶん課金が走る。installSkillはcheapCheckCapabilitiesを取り込み済みなので、ストア側の frontmatter に書けばそのまま効く。対象 (未宣言の heartbeat スキル)
improvement-pulse は宣言済み (
cheapCheckCapabilities: [logs.recent])。やること
各スキルの観測対象に合った capability を選んで宣言する。「その capability の結果 hash が前回 tick と変わらなければ AI 呼び出しをスキップ」という意味論なので、tick ごとに必ず変わるもの (time.now など) を入れると無意味になる点に注意。スキルごとに「何が変わったら起きるべきか」から逆算して選ぶ。
備考
現状ストア経由インストールでは mode が manual に落ちる既知の挙動があり (notedeck 側 issue 参照)、heartbeat 稼働には手動復帰が必要。cheap-check 宣言はそれとは独立に、復帰後の課金を抑える改善。