要件定義¶
最終更新: 2026-08-14
ビジョン¶
お金の管理が苦手でも続く仕組みにする。 支出はできるだけ自動で集まり、Gemini が Discord で確認し、可視化は既存 Grafana で行う。
成功条件¶
- 支払いのたびに、手間ほぼゼロで Discord に確認が届く
- 「今週いくら使ったか / 残り感覚」が日常的に分かる
- 週1の CSV 補正で、通知漏れがあっても帳尻が合う
- Grafana で日次、週次、カテゴリ別が見える
前提と制約¶
| 項目 | 内容 |
|---|---|
| 主な支出 | PayPay(都度チャージ → 残高払い) |
| その他支出 | 楽天カードの引き落とし、サブスク系 |
| スマホ | Android |
| Android クライアント | Tasker + AutoNotification(正式)。通知時に端末 GPS も付与。自作アプリは作らない |
| 実行基盤 | 自宅 Proxmox |
| ドメイン | nkjm.dev(サブドメインを用途別に割り当て) |
| DB | PostgreSQL |
| 可視化 | 既存 Grafana VM(PostgreSQL データ源) |
| AI(運用) | Gemini API(Cursor とは別) |
| 通知先 | Discord(フィードバック + 手動/画像入力)。LINE は後回し |
| 自動取込 | PayPay は Cloudflare Tunnel 直。Discord は自動の本線にしない |
| 計算ルール | MVP 後に注入 |
詳細なデータ取得は データ取込。 Android 連携は Tasker。 公開面は Cloudflare。
MVP スコープ¶
Must¶
- Android 通知の受信、パース、保存
- 利用メールの受信、パース、保存
- Gemini による分類と短い確認
- Discord 即時通知
- 週次 CSV 取込と差分補正
- Grafana 向けデータ公開(最低限の日次/週次)
Later¶
- 予算ルール(月収、固定費、曜日配分など)の注入
- スクショ取込の本格化(Discord 手動画像は対応済み。Tasker 自動経路は別)
- LINE 連携
- 楽天 e-NAVI スクレイピング自動化
- 自作 Android ミニアプリへの置き換え(必須ではない)
ユーザーストーリー(MVP)¶
- PayPay で支払うと、数十秒以内に Discord で怒られる
- 楽天カード請求が発生すると、メール経由で同様に記録、通知される
- 日曜に CSV を置ると、週次の精算と取りこぼし報告が来る
- Grafana を開くと、今週どれだけ使ったか一目で分かる
非機能要件(要約)¶
- Android → サーバは
ingest.finance.nkjm.dev+ Cloudflare Tunnel - 認証は Access Service Token + Bearer の二重(詳細は Cloudflare)
- 永続データは PostgreSQL(SQLite 不使用)
- 秘密情報は env / Tasker ローカル変数。Git に置かない
- 二重計上しないことを優先する
- 生データ(通知本文、メール、CSV)は必ず保存する