NexusFlow は、既存の PropFlow(進捗管理システム)と LogicDeck(意思決定支援ツール)を統合し、単一のリポジトリへ移行するプロジェクトです。 「実行(PropFlow)」と「判断(LogicDeck)」のプロセスを融合させることで、タスクの進捗管理だけでなく、その価値や優先度を動的に評価する包括的なワークフロー管理を実現します。
統合に伴い、コアロジックと型定義を中心に以下のような構成で整理を進めています。
-
src/lib/types.ts- プロジェクト全体の共通型定義。
PropFlowTaskとLogicDeckTaskを統合したTask型(Discriminated Union)を定義し、sourceプロパティによる型安全な分岐を実現しています。
-
src/lib/logic/- ビジネスロジックの格納場所。
scoreCalculator.ts: 旧 LogicDeck のアルゴリズムを移植し、統合Task型に対応させたスコア計算ロジック。
- Framework: Next.js
- Language: TypeScript
- Architecture:
- Discriminated Union型による統合モデル: 異なる特性を持つタスクデータを、判別可能なユニオン型としてモデル化し、堅牢な型安全性を確保。
- Type Guard Pattern: ランタイムでのデータ検証とコンパイル時の型チェックを両立させる実装パターンを採用。
本プロジェクトでは、複数のドメイン(不動産・ロジック)でタスクを扱うため、BaseTask を基点とした拡張可能な型定義を採用しています。
- BaseTask: 全てのアプリで共通のプロパティ(title, category, layer等)
- Metadata: 各アプリ固有の拡張データ(priorityScore, siteLocation等)
- Source: データ元を判別するリテラル型 ('propflow' | 'logicdeck')
ディレクトリ階層の深化に伴うパスの複雑化を防ぐため、以下のエイリアスを推奨します。
@/lib/types: 共通の型定義および定数(LAYER_MAP等)@/lib/logic: 計算アルゴリズム関連
- PropFlowロジックの完全移行: 未実装の PropFlow 固有ロジック(承認フロー等)を
src/lib/logic配下へ移植。 - 統合ダッシュボード: 両方のタスクを横断的に可視化・操作できる Next.js ベースの UI コンポーネント開発。
- API統合: バックエンドAPIを統合し、単一のエンドポイントで多様なタスク操作を可能にする。
-
プロジェクト基盤の最適化:
- Next.js プロジェクトのディレクトリ構成を App Router に準拠した
src/配下へ統合。 - Turbopack 環境におけるビルドキャッシュおよび TypeScript 設定(
tsconfig.json)を最適化し、開発体験を改善。 .gitignoreおよび VS Code の除外設定(files.exclude)を整備し、キャッシュフォルダのクリーンな管理を確立。
- Next.js プロジェクトのディレクトリ構成を App Router に準拠した
-
コアロジックの統合と機能実装:
src/lib/logic/score.tsへ並び替えロジック(sortTasks)を追加し、スコア計算との依存関係を集約。- 統合ダッシュボード (
src/app/page.tsx) における、PropFlowおよびLogicDeckデータの横断的なスコア計算・ソート表示を実装。 - プロトタイプ画面による、タスク優先度の動的評価ロジックの動作確認が完了。 設計ドキュメントの整備: architecture.md を作成し、全体構成とデータフロー図を可視化。
-
コアシステムのアーキテクチャ刷新 「NexusFlow」としての基盤を強固にするため、データ構造とディレクトリ戦略を大幅にリファクタリング。
-
型定義の統合 (Unified Task System)
PropFlowとLogicDeckでバラバラだった Task 型をsrc/lib/types.tsに一本化。- 共通プロパティ(
category,layer,intensity)をBaseTaskへ抽出し、アプリ固有データはmetadataへ分離。 createdAtをDate型からnumber(timestamp) 型へ変更し、シリアライズ性能とソートの正確性を向上。
-
インポートパスの標準化
tsconfig.jsonのパスエイリアス設定に基づき、@/lib/types等の絶対パス参照へ完全移行。- 相対パス地獄(
../../)を解消し、コンポーネント移動に強い構造を実現。
-
UIコンポーネントの汎用化準備
TaskCard,TaskFormの型エラーを解消し、どのドメインのタスクでも受け入れ可能な状態を整備。
-
ビルド環境の正常化
- 全ファイルにおいて TypeScript の型整合性を確認。
npm run buildの正常終了を確認済み。
- 全ファイルにおいて TypeScript の型整合性を確認。
- 不動産実務ドメインの統合と PDCA 指標の実装 単なるタスク管理から、不動産管理業務の最適化に特化した「実務直結型ロジック」への大幅アップデート。
業務優先度を「重要・緊急」の2軸ではなく、実務の痛みに基づく以下の4指標で再定義:
- 波及度 (Impact): 空室工事や募集開始など、後続工程を止めている度合い。
- 収支リスク (Financial): サブリース賃料改定や原状回復費用など、直接的な金銭損失リスク。
- 利益貢献 (Profit): 大規模修繕(紹介料10%)等の収益案件の可視化。
- 精神コスト (Burnout): クレーム等の心理的負荷を早期解消するための重み付け。
- Estimated vs Actual: 各タスクに「予想作業時間」と「実績時間」の保持フィールドを追加。
- 業務改善の可視化: 乖離率を算出することで、属人的な見積もり精度の向上とボトルネック業務の特定を可能にする設計。
- Salesforce等のPMツール(Property Management)の思想を継承。
- 部屋ごとのステータス(空室・募集準備・募集中)に紐づくタスク管理の基盤構築。
- エディタとリザルト画面の分離実装(思考と決断のフェーズ分割) 入力中の自動ソートによる操作ストレスを排除し、現場の「差し込み」を即座に記録できる安定した入力基盤の構築。
「入力中にカードが動く」というストレスを排除し、実務で発生した事象を即座にメモできる「思考の場」として再定義:
- 自動ソートの停止:
src/app/page.tsxにおいて、入力順(発生順)での表示に固定。スライダー操作中のカード移動を解消し、入力体験を最適化。 - 事実の記録への集中: 評価結果を別ページへ切り離すことで、漏水対応やオーナー連絡などの「事実の記録」に専念できる設計へ移行。
記録したタスクを、独自のスコアリングエンジンに基づき「動くべき順番」に再構成する専用ビュー(/result)を構築:
- 優先順位の可視化: 複雑な評価指標をランキング形式(#01, #02...)で出力し、迷いなく「次の一手」を決定できるUIを実現。
- AppraisalMode の永続化:
localStorageを介して、エディタで選択した評価軸(Sweet/Normal/Spicy)をリザルト画面へ安全に継承。
将来的なカテゴリ刷新(オーナー対応、設備故障等)を見据えた、ロジックとUIの完全分離(Decoupling)を完了:
- アーキテクチャの整理:
score.tsを独立させ、UIに依存しない純粋なビジネスルールとして定義。将来的な外部システム(Salesforce等)連携への拡張性を確保。 - 部屋ごとのステータス(空室・募集準備・募集中)に紐づくタスク管理の基盤構築。
- [ロジック] score.ts における計算アルゴリズムの修正と最適化
- [ドキュメント] architecture.md へのデータベースリレーション図(Entity Relationship Diagram)の追記
- [課題] 次回は Firestore のセキュリティルールと、修正済みロジックの結合テストを実施
- [機能名] RICEスコア(Reach/Confidence)の計算ロジック導入と、不動産実務リスク加点テーブルの整理
- [内容] -
score.tsにおいて、ユーザー設定(Weights)に基づいた柔軟な優先度計算を実装- カテゴリー(漏水・オーナー対応等)ごとの加点(200点など)を定数化
- 期限(Deadline)による指数関数的なブーストロジックの維持
- [課題] -
src/lib/logicやcomponents/logicdeckなど、古いプロジェクト名の残骸(亡霊)の削除と整理UserDocへのweights(重み設定)の保存とUI(スライダー)の実装
- [認証フローの基盤導入]
src/app/page.tsxを「門番(Root Redirector)」として再定義。localStorageのisLoggedInフラグを用いた擬似セッション管理を実装。ログイン済みなら/dashboard、未ログインなら/loginへ自動リダイレクト。
- [マルチページ化(ディレクトリ構造の刷新)]
- アプリケーションを役割ごとに分割し、メンテナンス性を向上。
/login: ユーザー認証(フラグ保持)画面。/dashboard: タスクランキング + Googleカレンダー埋め込みの2ペイン構成。/settings: RICE係数やラベル名のカスタマイズ画面(雛形)。/tasks/new: 従来のメイン入力フォームを「タスク作成専用ページ」として安全に移行。
- アプリケーションを役割ごとに分割し、メンテナンス性を向上。
- [環境に依存しないUI実装]
- 特定のPC環境(Tailwind設定の有無など)に左右されず、一貫した表示を保証するため、Inline Style を活用してレイアウトとカラーテーマを固定。
- ダッシュボードに
CalendarEmbed(iframe)を配置し、スケジュールと優先順位の同時視認を実現。
-
[ロジックの再接続]
- メイン環境にある最新の
score.tsや型定義を、新設したdashboardおよびsettingsの各コンポーネントに反映させる。
- メイン環境にある最新の
-
[CSSの正規化]
- 現在 Inline Style で記述している箇所を、プロジェクト標準の Tailwind CSS または CSS Modules へ段階的に移行し、コードをクリーンにする。
-
[Firebase Authの統合]
- 現在の
localStorageによる簡易判定を、実際の Firebase Authentication サービスに置き換え、セキュアな認証フローを完成させる。
- 現在の
-
[設計] 汎用タスク管理フレームワークとしてのER図(User, UserConfig, Task)の策定完了
-
[ロジック] RICEとアイゼンハワーを統合した「3D優先順位判定アルゴリズム(XYZ軸)」の確定
-
[課題] 次回はメインPCにてGit競合解消後、Prismaを導入しSQLiteでのDB実装・マイグレーションを確認
- [機能名] spec.yaml と README の構造整理・連動設計を実施
- [課題] spec.yaml を参照した開発フローの運用確認