「あれもやらなきゃ」「これも忘れちゃいけない」——頭の中がタスクで埋め尽くされていませんか?
脳のワーキングメモリは極めて有限です。未処理のタスクがメモリを占有し続ける限り、本来の創造的な処理能力は発揮できません。
Defragoは、頭の中のすべてを安全な外部ストレージに書き出し、脳を本来のフロー状態へ導くツールです。
Mind = 脳内メモリ | Flow = 雑念なく没頭できる状態
| 原則 | 説明 |
|---|---|
| Zero-Friction Capture | 書き出す行為のハードルを限りなくゼロに。思いついた瞬間に外部化する |
| One Screen, One Decision | 各画面で求める判断は常に1つだけ。迷わない、考えさせない |
| Think Less, Do More | アプリが判断フローを導く。管理に頭を使わず、行動に集中する |
収集 → 明確化 → 実行 → 見直し → (循環)
| フェーズ | できること |
|---|---|
| 収集 | 気になることをすべてInboxに書き出す。ゼロフリクションで脳を空にする。分類は後でOK |
| 明確化 | 4つの分類ボタンから選択。委任・プロジェクト・即実行・タスクに振り分ける |
| 実行 | 今やるべきタスクをフィルタリング。ステータス変更はワンタップ |
| 見直し | 完了タスクの振り返りとプロジェクトの再計画。GTDサイクルを回し続ける |
大きなプロジェクトは、GTD理論に基づく6ステップで構造化します。
Step 1-2 目的の定義 & 望ましい結果
→ 判断基準が明確になり、迷いがなくなる
Step 3 ブレインストーミング
→ 判断せず、関連する要素をすべて洗い出す
Step 4-5 組織化 & サポート資料
→ タスクの整理・期限設定・資料の保管場所を記録
Step 6 ネクストアクションの特定
→ 「今日、自分は何をするか」が明確になる
Defrago v2.0.0 では、複雑さを排除し本質的なものだけに集中する「エッセンシャル思考」を採用しました。
| 機能 | v1 | v2(エッセンシャル思考) |
|---|---|---|
| 優先度付け | 重要度 × 緊急度で10段階評価 | 4つの分類で直感的に振り分け |
| カレンダー機能 | 独立した分類 | タスク化して即実行に統合 |
| フェーズ数 | 5フェーズ(収集→明確化→整理→実行→見直し) | 4フェーズ(収集→明確化→実行→見直し) |
| 分類方式 | ウィザード(Yes/No質問) | 4ボタン(委任/プロジェクト/即実行/タスク) |
| 削除後 | 完全削除 | 30日間のトラッシュ機能で復旧可能 |
迷いの時間を短縮し、判断から行動への遷移を最速化します。
- Python 3.12 以上
- uv(推奨)または pip
git clone https://github.com/your-username/mindflow.git
cd mindflow
uv sync --dev
# 環境変数を設定(本番はPostgreSQLを推奨)
export SECRET_KEY="your-secret-key"
# ローカル開発: SQLiteがデフォルト
# 本番: Neon PostgreSQL
# export DATABASE_URL="postgresql://user:password@host/dbname"
# 起動
uv run defrago-webブラウザで http://localhost:8000 にアクセス。モバイル・PC両対応。
Inboxを開き、気になっていることをすべて書き出します。正確さや順番は気にしません。「あとで考える」を脳から追い出すことが目的です。
分類は後からでもOK。今はとにかく書き出すことに集中してください。
Inboxの各アイテムに対し、4つの分類ボタンから1つを選ぶだけです。迷いの時間がありません。
| 分類 | 説明 |
|---|---|
| 委任(Delegation) | 自分でやらないもの。誰かに頼むか、削除する |
| プロジェクト(Project) | 2ステップ以上必要。6ステップナチュラル・プランニングで計画 |
| 即実行(Do Now) | 2分以内で完結。すぐやる、または近い将来にやる |
| タスク(Task) | 時間や場所を指定したもの。スケジュール・優先度を設定 |
削除したアイテムは30日間トラッシュに保管。誤削除も安心です。
ダッシュボードが「次に何をすべきか」を教えてくれます。あなたは実行するだけです。
完了タスクをレビューし、プロジェクトを再計画します。GTDサイクルが回り続けることで、頭の中は常にクリアな状態を保てます。
src/study_python/gtd/
├── models.py # データモデル(StrEnum + dataclass)
├── repository_protocol.py # リポジトリProtocol
├── logic/ # ビジネスロジック(Web非依存)
│ ├── collection.py # 収集
│ ├── clarification.py # 明確化
│ ├── execution.py # 実行
│ └── review.py # 見直し
└── web/ # FastAPI Webアプリケーション
├── app.py # アプリファクトリ
├── auth.py # bcrypt認証・ユーザー管理
├── labels.py # テキスト外部化(labels.json)
├── template_engine.py # Jinja2テンプレートエンジン
├── db_models.py # SQLAlchemy ORM(UserRow, NotificationRow, GtdItemRow)
├── routers/ # ルーター(auth, inbox, clarification, execution, review, dashboard, iconbar)
├── templates/ # Jinja2 + HTMXパーシャル
└── static/ # CSS + HTMX + labels.json
- ロジック層分離:
GtdRepositoryProtocolを介し、ビジネスロジックをWeb層から完全分離 - 3層アーキテクチャ: Model → Logic → Web
- HTMX: ページ遷移なしのインタラクティブUI。SPAの体験をサーバーサイドで実現
- テキスト外部化: 全ユーザー向けテキストは
labels.jsonに集約。ハードコーディング禁止 - マルチテナント対応: ユーザーテーブルにより各ユーザーのデータを分離・保護
ユーザー登録と認証
- ユーザーは本アプリで自由に登録可能(ユーザー名: 3-50文字の英数字・ハイフン・アンダースコア)
- パスワードはbcryptで安全にハッシュ化・保存
- セッション認証により、ログイン状態を安全に保持
データ分離
- 全GTDアイテムは
user_idでグループ化。ログインユーザーのデータのみ表示 - 通知・プロジェクトも同様にユーザー単位で管理
- マルチテナント環境に対応
ヘッダーのアイコンバーは、Defragoの補助的なツールにアクセスできます。
| アイコン | 機能 | 説明 |
|---|---|---|
| 通知 | Notifications | リリース通知・タスク関連のお知らせ |
| 実績 | Achievements | 完了タスク数・プロジェクト達成の記録 |
| ヘルプ | Help | アプリの使い方ガイド・チュートリアル |
| お問い合わせ | Contact | 開発チームへのフィードバック送信 |
uv run pytest # テスト
uv run pytest --cov=src/study_python # カバレッジ付き
uv run ruff check . # リンター
uv run ruff format . # フォーマッター
uv run mypy src/ # 型チェック| カテゴリ | 技術 |
|---|---|
| Web | FastAPI + Jinja2 + HTMX |
| DB | PostgreSQL(本番)/ SQLite(開発)+ SQLAlchemy |
| 認証 | bcrypt(パスワードハッシュ化) |
| テスト | pytest + httpx |
| 品質 | ruff + mypy(strict) |
| デプロイ | Docker + Render + Neon PostgreSQL |
Render + Neon PostgreSQLにデプロイ可能(render.yaml定義済み)。環境変数SECRET_KEY、DATABASE_URLを設定してください。詳細は運用マニュアルを参照。
MIT