# Portability: USER
# Last validated: 2026-05-17
# Next review: 2027-05-17
# リソース: [household_routines テーブル、hub/routine.py]

ROUTINE - 家庭のルーチン管理
--------------------------------------

ステータス: 2026-02-08

ルーチン システム (レイヤー 3) は家庭内で繰り返し発生するタスクを管理します


コアコンセプト
------------
- 頻度: 毎日から毎年 (自動再スケジュール)。
- ステータス: 期限を過ぎたタスクには「!!!」のマークが付けられます。
- 集中化: すべてのルーチンは `bach.db` にあります。

CLI コマンド (bach ルーチン)
--------------------------
  リスト [--all] [-c <カテゴリ>]
                すべてのアクティブなルーチンの概要。
                --all は非アクティブなものも表示し、-c はカテゴリ別にフィルターします。
                例: bach ルーチン リスト -c Kueche

  show <ID> 単一ルーチンの詳細を表示します。
                例: bach ルーチン show 3

  due [days] 選択した期間の期限のタスクを表示します。
                デフォルト: 7 日。例: バッハ ルーチンの期限は 14 です

  完了 <ID> [ID2...] [--note "テキスト"]
                ルーチンを完了としてマークし、新しい日付を設定します。
                複数の ID が可能で、オプションでメモも付けられます。
                例: bach ルーチンが完了しました 3 5 --note "基本的なクリーニング"

  add "名前" [--freq/-f <頻度>] [--cat/-c <猫>] [--dur/-d <分>] [--note <テキスト>] [--schedule <時間>]
                オプションのパラメータを使用して新しいルーチンを作成します。
                --freq/-f 頻度 (毎日、毎週、毎月、毎年など)
                --cat/-c カテゴリ (キッチン、バスルーム、リビングルームなど)
                --dur/-d 期間 (分)
                --メモメモ
                --schedule スケジュールの詳細
                例: bach ルーチン「掃除機をかける」を追加 --freq 毎週 --cat リビング ルーム --dur 30

  help このヘルプを表示します。

周波数 (完全なリスト)
-------------------------------
 --freq でサポートされている周波数値:
  毎日、毎日、毎日
  毎週、毎週、毎週
  隔週、隔週、隔週
  毎月、毎月
  四半期、四半期ごと
  半年ごと、半年ごと
  毎年、毎年、毎年

ABM 構文
----------
マーカー:
  !!!  = 期限切れ
  + = アクティブ
  - = 非アクティブ

DATABASE (レイヤー 1)
---------------------
- テーブル: `household_routines` (`bach.db` 内)。
- フィールド: ID、名前、頻度、スケジュール、カテゴリ、期間分、
          last_done、next_due、is_active、notes、created_at。
- 統計: 可変数値 (DB コンテンツに応じて)。

GUI と統合
-----------------
GUI の **世帯ダッシュボード** には、ルーチンのステータスが視覚的に表示されます。
ルーチンもグローバル `カレンダー` ハンドラーに統合されています。

関連項目
----------
  bach calendar         予定とルーチンの組み合わせビュー
  bach --help gesundheit  追加の家庭用ツール (在庫)
  docs/help/maintain.txt DB再配置履歴(User->Bach)
