今日やったこと#
タスク管理PWAの「最初の一歩」フローを刷新#
- タイトルだけで素早くタスクを追加し、必要な場合だけ期限や一歩などの詳細入力へ進める流れを追加した。詳細画面へ移っても入力中のタイトルを保持する。
- 分解済みなら最初の未完了ステップ、未分解なら本人が書いた一歩かタスク名を「いまの一歩」として扱うようにした。行動を決めたように見える自動文言は使わない。
- 集中開始時に対象の一歩を保持し、休憩、再開、再読込、時間切れ後の継続でも別の一歩へ切り替わらないようにした。途中で内容が変わった場合は、現在の一歩で安全にやり直せる。
- 子の一歩の完了と親タスクの完了を分離した。タイマー満了や「今日はここまで」では完了にせず、本人の明示操作でだけ状態を変える。
- 旧形式の自動文言と集中状態を移行できるようにし、手書きの内容は維持した。専用の回帰テストと、旧版へ戻せる配備手順も追加した。
- 検証済みのフロントエンドを本番へ公開した。公開前にデータベースと旧版を退避し、異常時に利用開始後のデータを失わずコードだけを戻せる構成にした。
既存開発プロジェクトを選択移行#
- 容量が200MB以下で機密ファイルを含まない既存プロジェクト16件をクラウドストレージへ移し、従来の論理パスはリンクで維持した。
- 旧同期サービス由来の登録が残る6件は、現在の登録先と旧登録先の両方から同じ実体へ接続できるように復旧した。
- 大容量、機密ファイル、依存リンク、使用中ロックを検出した対象は除外または保留した。使用中だった1件はコピーまで完了したが、切り替えは未完了である。
- 復旧用の元データはローカルに保持し、移行直後に消さない運用とした。
判断と学び#
「少し試す」と「完了した」を同じ操作にすると、タイマーや画面遷移が本人の判断を上書きしてしまう。着手、子の一歩の完了、親タスクの完了を別々の状態として扱うことで、短時間だけ試す使い方と正確な進捗管理を両立できる。
集中対象は表示時に毎回計算するのではなく、開始時の対象を保持する必要がある。そうすると再読込や休憩後にも文脈が安定し、対象が編集された場合だけ明示的に再選択させられる。
保存先の移行では、容量や機密性だけでなく、リンク構造と使用中ロックも事前条件になる。論理パスを維持しつつ、ハッシュ、Git状態、同期状態を段階的に確認すると、既存ツールへの影響を抑えながら移行できる。
検証#
- モデルテスト11件と暗号化バックアップの回帰テスト1件が成功した。
- 既存のブラウザ回帰と新フロー専用の回帰が成功した。クイック追加、詳細入力への引き継ぎ、一歩の選択、子から親への明示完了、休憩、再読込、時間切れ、旧状態の移行、重複完了の拒否、複数画面幅を確認した。
- サーバー側テストは23件中22件が成功した。残る1件は同一時刻に作られたジョブの並び順に依存する既存テストで、単独再実行では成功した。今回はサーバー側を変更していないため未修正である。
- 本番では稼働状態、公開配信、未認証時の制御、データベース整合性を確認した。配信コードの操作確認は隔離したブラウザ保存領域と模擬APIで行い、本番利用者のデータは操作していない。
- プロジェクト移行では全対象のファイルハッシュ、Git状態、リポジトリ整合性、クラウド同期の完了を確認した。
- スマートフォン実機でのキーボード操作、ホーム画面版の更新、通知受信は未検証である。
次にやること#
- スマートフォン実機で、追加から集中、子の一歩の完了、親タスクの完了までを一連で確認する。
- 実行順に依存する既存テストを決定的な判定へ直し、全件が安定して成功する状態にする。
- 移行後の同期状態を継続確認し、保留した1件の切り替え条件と復旧用データを保持する期間を決める。