通知発動条件の詳細
通知が期待どおりに届かないときに参照するテクニカルリファレンスページです。システム自動通知とユーザー登録スケジュールは、いずれも複数の条件を通過した場合にのみ最終的に送信されます。
共通ブロック条件(全通知に適用)
スケジュール時刻が正しくても、以下のいずれかの条件に該当すると通知がブロックされます。
| 条件 | 詳細 | 例外 |
|---|---|---|
| 通知全体無効 | 設定で通知をオフにしている場合 | なし |
| サイレント時間帯 | 22:00〜08:00 KST | ユーザー登録スケジュール |
| 会話中 | 最後のメッセージ送信後1時間以内 | ユーザー登録スケジュール |
| 1日の上限超過 | 自動通知1日最大 3回 | 予算警告、ユーザー登録スケジュール |
| 個別ジョブ無効化 | 通知センターでその通知をオフにしている場合 | なし |
ユーザーが直接登録したスケジュール(例:「毎日8時に運動リマインダー」)は、サイレント時間帯・会話中・1日3回制限をすべて無視して送信されます。ただし、通知全体設定とスキルゲートは適用されます。
システム通知別の発動条件
週次レポート
- 実行時間: 毎週月曜日 09:00 KST
- 必要スキル:
finance - データ条件: 過去30日以内に家計簿の記録が存在する
- 疲労度チェック: 適用
予算警告
- 実行時間: 毎時間 :00(1時間ごと)
- 必要スキル:
budget - データ条件:
- 予算カテゴリが1つ以上設定されていること
- 今月のそのカテゴリの支出が予算の 90% 以上
- 疲労度チェック: サイレント時間帯 / 会話中は適用、1日3回制限は 未適用
日次消費サマリー
- 実行時間: 毎日 21:00 KST
- 必要スキル:
finance - データ条件: 今日(KST) の家計簿記録が存在する
- 疲労度チェック: 適用
非アクティブリマインダー
- 実行時間: 毎日 20:00 KST
- 必要スキル:
proactive - データ条件:
- 過去の家計簿記録は存在するが
- 過去 3日間 家計簿の記録がない
- 疲労度チェック: 適用
月末締め
- 実行時間: 毎月28〜31日 21:00 KST(実際の月末にのみ実行)
- 必要スキル:
finance - データ条件: 今月の家計簿記録が存在する
- 追加条件: コード内部で実際にその月の末日かどうかを再確認(クロン式は月の日数の違いに対応するもの)
- 疲労度チェック: 適用
支出異常検知
- 実行時間: 3時間ごと
- 必要スキル:
finance - データ条件:
- 今日(KST)の家計簿記録が存在する
- 7日以上のデータが蓄積されていること
- 今日の支出合計 > 30日間の日次平均の 200% 超
- 疲労度チェック: 適用
パターンインサイト
- 実行時間: 毎日 14:00 KST
- 必要スキル:
pattern - データ条件:
knowledge_baseにパターン分析結果(pattern:analysis_result)が保存されていること- (→ 毎日 06:00 のパターン分析バックグラウンドジョブが先に実行されている必要あり)
- パターン信頼度 ≥ 0.6
- 保存されたパターントリガーが現在の曜日 / 日付と一致する
- 疲労度チェック: 適用
目標達成状況レポート
- 実行時間: 毎週水曜日 12:00 KST
- 必要スキル:
goals - データ条件:
knowledge_baseにstatus='active'の目標が存在する - 疲労度チェック: 適用
D-Day 通知
- 実行時間: 毎日 08:00 KST
- 必要スキル:
dday - データ条件:
ddaysテーブルに登録された項目が存在する- 今日が D-30、D-7、D-3、D-1、D-0 のいずれかに該当する
- 繰り返し(recurring)項目は今年または来年基準で日付計算
- 疲労度チェック: 適用
バックグラウンド専用ジョブ(通知なし)
以下のジョブはデータの分析・保存のみを行い、通知は送りません。無効化不可。
パターン分析
- 実行時間: 毎日 06:00 KST
- 必要スキル:
pattern - 条件: 過去30日以内に家計簿の記録が存在する
- 出力:
knowledge_base.key='pattern:analysis_result'に保存 - 依存: パターンインサイト通知の先行ジョブ
会話分析
- 実行時間: 10分ごと(条件が満たされた場合のみ実際に実行)
- 必要スキル:
diary - 条件:
- ユーザーがメッセージ送信の履歴がある
- 最後のメッセージから 30分〜2時間 経過(アイドル状態)
- サイレント時間帯(22:00〜08:00)ではない
- 同一アイドルセッションの重複分析なし
- 出力: 会話分析結果を保存(AIメモリページで確認可能)
目標評価
- 実行時間: 毎日 07:00 KST
- 必要スキル:
goals - 条件: アクティブな目標が存在する
- 出力: 評価結果を
knowledge_baseに保存
週次メモリ圧縮
- 実行時間: 毎週月曜日 05:00 KST
- 必要スキル: なし(常時実行)
- 条件: 過去30日以内に家計簿の記録が存在する
- 出力: 前週の日次ログを週次サマリーに圧縮して保存
ユーザー登録スケジュール
- 確認間隔: 15分ごとにアクティブなスケジュール全件を照会
- 必要スキル:
schedule - 発動条件:
- スケジュール
status='active' - 現在時刻が予約時刻の ±15分 以内
- 今日すでに送信していないこと(
last_sent確認)
- スケジュール
- スケジュールタイプ:
one_time:指定日時に1回送信後、completedに変更recurring:曜日+時刻に基づいて繰り返し送信、last_sent更新
| 疲労度条件 | ユーザー登録スケジュール |
|---|---|
| サイレント時間帯(22〜08時) | 無視 |
| 会話中(1時間以内) | 無視 |
| 1日3回制限 | 無視 |
| 通知全体無効 | 適用 |
スキルゲート(schedule) |
適用 |
スキルゲート一覧
通知に必要なスキルが無効の場合、通知は送信されません。設定 > スキル で確認してください。
| 通知 | 必要スキル | スキルなしの場合 |
|---|---|---|
| 週次レポート | finance |
送信されない |
| 予算警告 | budget |
送信されない |
| 日次サマリー | finance |
送信されない |
| 非アクティブリマインダー | proactive |
送信されない |
| 月末締め | finance |
送信されない |
| 支出異常検知 | finance |
送信されない |
| パターンインサイト | pattern |
送信されない |
| 目標達成状況 | goals |
送信されない |
| D-Day通知 | dday |
送信されない |
| ユーザー登録スケジュール | schedule |
送信されない |
| パターン分析(バックグラウンド) | pattern |
実行されない |
| 会話分析(バックグラウンド) | diary |
実行されない |
| 目標評価(バックグラウンド) | goals |
実行されない |
| 週次メモリ圧縮 | なし | 常時実行 |
トラブルシューティング:通知が届かないとき
チェックリスト(上から順に確認)
□ 1. スキルの有効化
設定 > スキルで必要なスキルがオンになっているか確認
□ 2. Telegram 連携
設定 > チャンネルでテレグラムが連携されているか確認
□ 3. 通知全体の設定
設定で通知が有効になっているか確認
□ 4. 個別通知の状態
通知センター > システムタブで該当通知がオンになっているか確認
□ 5. 現在時刻の確認
22:00〜08:00 KST の間はサイレント時間帯ポリシーでブロックされる
□ 6. 今日の通知回数
自動通知は1日最大3回。すでに3件以上受信済みなら深夜以降に再確認
□ 7. データの十分性
- 支出異常検知:7日以上のデータが必要
- パターンインサイト:分析結果と信頼度0.6以上が必要
- 非アクティブリマインダー:過去の記録があり、直近3日間の記録がないこと
□ 8. ユーザー登録スケジュール — 時間ウィンドウ
システムは15分ごとにチェックするため最大15分の遅延が発生する可能性あり
確認時に予約時刻の±15分以内である必要あり
全スケジュールタイムライン
| 時間(KST) | 実行ジョブ |
|---|---|
| 05:00(月曜日) | 週次メモリ圧縮 |
| 06:00 | パターン分析(バックグラウンド) |
| 07:00 | 目標評価(バックグラウンド) |
| 08:00 | D-Day通知 |
| 09:00(月曜日) | 週次レポート |
| 12:00(水曜日) | 目標達成状況レポート |
| 14:00 | パターンインサイト |
| 20:00 | 非アクティブリマインダー |
| 21:00 | 日次サマリー、月末締め |
| 毎時間 | 予算警告 |
| 3時間ごと | 支出異常検知 |
| 10分ごと | 会話分析条件確認 |
| 15分ごと | ユーザー登録スケジュール確認 |