# instinct: daily_onceボットは±5分の許容幅がないとtick遅延でスキップされる

## 根本原因
`_check_daily_once` が厳密な時刻一致(`run_h == hour and run_m == minute`)で判定していた。
長時間ボットの実行でtickが遅延すると、daily_onceボットの実行時刻を通り過ぎてしまい丸ごとスキップされる。
group_id=449が3日間未実行になった直接原因。

## ポイント
- `DAILY_ONCE_TOLERANCE_MINUTES = 5` を定数として定義し、±5分の許容幅を持たせる
- 二重実行防止のため `last_triggered_at` が当日JST内なら `False` を返す
- `now` パラメータを外から注入できるようにしてテストしやすくする
- tick周期(通常1分)より許容幅(5分)が大きいので複数tickで実行されても `last_triggered_at` チェックで防止できる

## 関連Issue
- vvv#347 / vvv PR#349