実装計画を作成しました（コードはまだ書いていません）。計画ファイルは `<計画ファイル置き場>/add-ticklish-scroll.md` です。

## 概要

taskboard は標準ライブラリのみの Python 製で、JSON に保存しています。変更は次のとおりです。

1. **`models.py`**: `Task` に `repeat: str | None = None` を追加します。`from_dict` は `d.get("repeat")` で読むので、既存の JSON もそのまま読めます。
2. **`store.py`**:
   - `next_due(due, repeat)` を追加します。daily は +1日、weekly は +7日、monthly は +1か月です。monthly で日が存在しない場合は月末に丸めます。
   - `Store.add` に `repeat` 引数を追加します。
   - `Store.complete` を拡張します。繰り返しタスクを完了したときは、元の期限を基準にした次回タスクを、title・priority・tags・repeat を引き継いで作ります。保存は 1 回にまとめます。
   - すでに完了済みのタスクに再度 `done` しても、次回は作りません。
3. **`cli.py`**:
   - `add` に `--repeat {daily,weekly,monthly}` を追加します。
   - `--repeat` があって `--due` がない場合は、エラーを出して終了コード 1 を返し、何も保存しません。
   - `done` で次回タスクが作られたら、その旨を表示します。
4. **`README.md`**: 使い方を追記します。
5. **テスト**（`tests/test_basic.py`、既存の `run` ヘルパと `--today` を利用）:
   - `next_due` の各ケース（月末丸め、うるう年、年またぎ）
   - `--due` なしのエラー
   - 元の期限基準で次回が作られること（`--today` を遅らせても変わらないこと）
   - 連鎖して生成されること
   - 非繰り返しタスクが従来どおり動くこと
   - 旧形式 JSON の読み込み

## 仕様の解釈（この前提で進める想定です）

- **月末丸めの連鎖**: 1/31 → 2/28 → 3/28 と日がずれていきます。元の日を保持する仕組みは持ちません。
- **期限が過去日の場合**: 次回期限がすでに過去日でも、生成するのは 1 回分だけです。
- **不正な `--due`**: 既存のトレースバックの問題は今回の範囲外にします。

これらの解釈を変えたい場合は教えてください。なお、計画承認用の ExitPlanMode ツールがこの環境で見つからなかったため、承認の確認はここで行います。問題なければ実装に進みます。