Skip to content

reminder ファミリー全体ロードマップ(cli / tap / server / dashboard) #3

Description

@yancya

これは何

reminder ファミリー4リポジトリの全体ロードマップ。各リポジトリの実行タスク issue はここから辿れる(本文末尾のリンク集参照。作成後に追記)。

対象リポジトリと現状

リポジトリ 役割 現状
reminder-cli Swift 製 iCloud Reminders CLI。ファミリーの土台 v1.0.1(binary 配布に移行済み)。テストなし
homebrew-reminder-cli Homebrew tap ⚠️ Formula が v1.0.0 のソースビルドのままで、本体の binary 配布方針と乖離
reminder-server (private) cli をラップする REST API サーバー(Sinatra 4) 実装は動く状態だがほぼ全ファイル未コミット(消失リスク)
reminder-dashboard (private) 閲覧専用ダッシュボード構想 コミット 0。旧設計書と、reminder-server の重複コード(backend/)のみ

server / dashboard の統合判断(提案)

提案: reminder-server に統合し、dashboard はサルベージ後アーカイブ。

根拠:

  • dashboard の backend/ は reminder-server の旧バージョンの重複(役割が完全に被っている)
  • dashboard の設計書が想定する Node/Express + React + Vite スタックは未着手。閲覧専用 UI に SPA スタックは過剰
  • reminder-server(Sinatra)が / で静的な閲覧 UI を配信すれば設計書の要件(一覧・詳細・フィルタ・ソート)は満たせる
  • リポジトリが1つ減り、launchd 常駐・公開も1サービスで済む

代替案(分離維持)を選ぶ場合も、dashboard の backend/ 削除と設計書の全面書き直しは必須。判断はユーザーに委ねるが、タスク issue は統合前提で切ってある。

優先順位

P1 — 壊れている / 消失リスク

  1. tap の Formula を v1.0.1 binary 配布に更新(homebrew-reminder-cli)
  2. reminder-server の未コミット実装を commit & push(reminder-server)

P2 — 品質基盤(後方互換を守るための足場)
3. reminder-cli にテストスイート導入 + CI(reminder-cli)
4. reminder-server にテスト導入 + CI(reminder-server)
5. reminder-cli の変更系コマンドに --format json 追加(reminder-cli)
6. ↑完了後、reminder-server の正規表現パースを JSON 化(reminder-server)

P3 — 機能・運用
7. reminder-server を launchd 常駐 + tailnet 内公開に(reminder-server)
8. 閲覧ダッシュボード UI を reminder-server に実装(reminder-server)
9. reminder-cli に lists サブコマンド追加(reminder-cli)
10. リリース時の tap 自動更新(reminder-cli → homebrew-reminder-cli)

P4 — 整理
11. dashboard の未コミット資産の棚卸しと移管(reminder-dashboard)
12. dashboard リポジトリのアーカイブ判断(reminder-dashboard)

後方互換ポリシー(ファミリー共通)

  • reminder-cli は日常運用(自動化スクリプト・server)から常用されているため、既存コマンドのデフォルト出力・既存フラグの挙動は変えない。機能追加はオプトイン(新フラグ・新サブコマンド)のみ
  • バージョンは semver。出力フォーマット変更を伴う場合は minor 以上を上げる
  • server の API は /api/v1 名前空間を維持。破壊的変更は /api/v2

タスク issue リンク集

reminder-cli

homebrew-reminder-cli

reminder-server(private)

  • yancya/reminder-server#1 — 未コミット実装のコミット & push(P1-2・最優先)
  • yancya/reminder-server#2 — テスト整備 + CI(P2-4)
  • yancya/reminder-server#3 — launchd 常駐 + Tailscale VIP Service 化(P3-7)
  • yancya/reminder-server#4 — 正規表現パースの JSON 化(P2-6、cli#5 に依存)
  • yancya/reminder-server#5 — 閲覧ダッシュボード UI(P3-8、統合の受け皿)

reminder-dashboard(private)

  • yancya/reminder-dashboard#1 — 未コミット資産の棚卸しと移管確認(P4-11)
  • yancya/reminder-dashboard#2 — アーカイブ判断と実行(P4-12、ユーザー承認必須)

依存関係の要点

  • cli#5(変更系 json)→ server#4(パース置換)
  • server#5(UI)→ dashboard#1 → dashboard#2(アーカイブ)
  • cli#4(テスト基盤)は cli#5 / cli#6 より先に着手推奨(いずれもclose済み)
  • tap自動更新はpull型(homebrew#6)に方針転換。reminder-cli側の実装・secret登録は不要になった

Metadata

Metadata

Assignees

Labels

No labels
No labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions