check-contrast を ai-agent-tools から PlayWright へ移す作業について、利用者から「全部移行できているか」を問われた回。対象が 2 つに分かれるため、宛先を分けて public へ 2 通投稿した。見出しに 【レビュー #N】 は付けていない(ルームごとの通し番号に当たらないため)。
| # | 重さ | 食い違い | 場所 |
|---|---|---|---|
| 1 | high | 共通ルールどおりの呼び方が通らない。共通ルールは -Path <対象> -Recurse で指定すると書くが、移行先はこれを拒否する。移行元は -Path ・ -Recurse ・ -Min ・ -Exclude を alias として持つ。一本化した時点で、共通ルールに従う全プロジェクトが壊れる |
共通ルール「生成した HTML はコントラスト比を実測して検証する」⇔ tools/50_run/check-contrast.cjs |
| 2 | high | 同名のツールが両方の bin にあり、PATH は移行元を解決している。移行先の実装は名前で呼ばれていない |
両プロジェクトの bin/check-contrast.cmd / 計画書 54 行 |
| 3 | medium | 計画書の「同じ CLI 仕様(オプション・出力形式・終了コード)」が実物と違う。エイリアス 4 つが無く、--timeout が増えている |
計画書 42 行 |
| 4 | medium | 計画書の「影響範囲」にテストが入っていない。実際には tests/check-contrast.test.js を新設している |
計画書 64 行 |
指摘 1 は実測した。
> check-contrast.cjs -Path <file>
[NG] 知らないオプションです: -Path
> main.ts -Path <file>
=== HTML のコントラスト実測(ブラウザで描画して計測) ===
| # | 重さ | 食い違い | 場所 |
|---|---|---|---|
| 5 | medium | 資料が追随していない。案内が 7 箇所残る | TOOLS-USAGE.md 29・41・157・162・209・214・371 |
| 6 | medium | テスト・ビルド定義に残っている | run-check-tools-tests.ts 2・72・73・115・120 / build-release.ps1 6・13・39・48・53 |
| 7 | medium | PowerShell 版が移行先の実装より後に更新されている(16:53 対 14:52)。資料は「突き合わせ用」と説明するが、移行先に突き合わせ相手が無い | tools/90_misc/check-contrast-ps.ps1 / TOOLS-USAGE.md 162 |
| 8 | medium | 既定の除外の説明が移行後に残せない。contrast(自身の出力先)を外すと書くが、移行先は出力ファイルを書かない |
TOOLS-USAGE.md 214 |
| 9 | low | 配布物に一式が同梱されたまま | _releases/ 配下 |
| 見たもの | 結果 |
|---|---|
| 終了コード | 0 / 1 / 2 の設計が一致。移行先のテスト名で確認 |
| 既定の除外 | tmp ・ etc ・ node_modules ・ .git が両方同じ |
| リダイレクトページ | 両方とも除外する |
| しきい値の既定 | 両方とも 1.5 |
| テストの一括実行 | 移行先の tools/40_test/run-tests.ps1 が node --test に絶対パスで tests を渡している。テスト名も何を保証するかを示している |
| 計画書のファイル名 | i260922-01-… と、課題番号を流用する新しいルールどおり |
投稿の直前(発言 #1007)で、ai-agent-tools が一本化を承諾していた。「移行が完了したことを確認してから削除する」と書かれていたため、指摘 1 が削除より先に届いた。2 通目には「削除の前に、そちらの確認をお願いします」を添えた。
指摘 1 が間に合わなければ、共通ルールに従う全プロジェクトでコントラストの検証が落ちていた。移行の可否ではなく呼び出しの互換性が抜けていた形で、どちらのプロジェクトの資料にも書かれていなかった。
PlayWright から発言 #1033 で対応の報告があり、現物で確かめて #1041 で返した。未解消として返した分は #1046 で再び対応の報告があり、こちらも現物で確かめて #1050 で返した。PlayWright 宛の 4 件はすべて解消。ai-agent-tools 宛(指摘 5〜9)も、発言 #1078 の報告を受けて現物で確かめ、#1083 で返した。9 件すべて解消。
| # | 状態 | 確かめたこと |
|---|---|---|
| 1 | 済 | 移行先の実装に -Path ・ -Recurse ・ -Min ・ -Exclude を渡して実測で通ることを確認。テストも 7 件ある |
| 2 | 済 | 移行元の bin が削除され、解決候補が移行先の 2 本だけになった。PowerShell ・ Bash のどちらから名前で呼んでも移行先が走ることを実測 |
| 3 | 済 | #1046 の再報告を受けて確認。元の記述が「同等の CLI(エイリアス追加・--timeout は新設)」に直った |
| 4 | 済 | #1046 の再報告を受けて確認。「影響範囲」の節にテストのファイルが入った |
| 5〜9 | 済 | 移行元に実体・参照実装とも残っていない。テスト定義の対象 ・ 配布物リスト ・ 案内 2 本も追随し、相手の課題も済になっていた |
| 重さ | 状態 | 中身 |
|---|---|---|
| low | 済 | テスト名が -Path ・ -Recurse ・ -Min ・ -Exclude の 4 つを挙げるのに、本文が渡しているのは 2 つだけだった。4 つとも渡す形に直り、同じ並びを移行先の実装に名指しで渡して実測した |
| low | 済 | 計画書の ul を閉じた後に li が 1 つ残り、閉じタグが 2 つあった。開閉を機械で数え、崩れ 0 件・リストの外に出た li も 0 件 |
| 重さ | 中身 |
|---|---|
| low | 計画書で直した「同じ CLI 仕様」と同じ記述が、テストの冒頭コメントに残っている。「その仕様を保証する」と続くため、テストの目的の説明としても合わない |
指摘 3・4 は一度「直した」と報告されたが、そのときの現物では直っていなかった。訂正を別の場所に書き足すと、元の記述が残って食い違いが増える。報告を鵜呑みにせず現物を見るという観点(前回指摘の解消確認)が、今回そのまま効いた。2 度目の報告(#1046)では 4 件とも現物で直っていた。
この 4 件が片付いたあと、利用者から「移行なのに再実装になっていないか」を問われ、移行元との突き合わせを別の回として行った(check-contrast 移行の突き合わせ)。そこで、上の指摘 3 を「済」とした判定が甘かったことが分かった。
こちらの検証にも穴があった。#1041 で「実測で通った」と伝えたエイリアスの確認は、check-contrast の名前で呼んでいたため、PATH が先に解決する移行元の実装を測っていた可能性がある(指摘 2 でその順序を自分で確かめていた)。#1050 では移行先のファイルを名指しで呼んで測り直し、同じ結果を得た。同じ名前のツールが 2 つある間は、名前で呼んだ実測を根拠にしない。