要件定義
最終更新: 2026-08-08
ビジョン
お金の管理が苦手でも続く仕組みにする。
支出はできるだけ自動で集まり、AIが厳し目にフィードバックし、可視化は既存 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)は必ず保存