diff --git a/CLAUDE.md b/CLAUDE.md index fd8f482..7e76617 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -4,7 +4,7 @@ ## 開発進捗 -最新: テスト方針を 4 層モデルに改訂し,実機確認を減らす移行計画(PLAN_05)を策定した +最新: /auto-audit(全観点)で見つけたバグ 7 件を再現テスト付きで修正し main に取り込んだ(要対応 26 件は報告台帳) ※ 本欄は**最新ステップ 1 行のみ上書き更新**.詳細な進捗履歴(動機・設計判断・失敗パターン)は [docs/PROGRESS.md](docs/PROGRESS.md) に追記する.運用ルールは `.claude/rules/progress-log.md` を参照(該当ファイル編集時に自動ロードされる). ## 必須ルール(コード実装時) diff --git a/docs/PROGRESS.md b/docs/PROGRESS.md index c0525b9..d3e2068 100644 --- a/docs/PROGRESS.md +++ b/docs/PROGRESS.md @@ -167,3 +167,9 @@ - 動機: 同日の `/auto-audit` で報告した 26 件の多くが「`CameraBase`・`Form1`・カメラ層で再現テストを書けない」ことを理由に自動修正できなかった.保存失敗が成功扱いになる件など,データ欠損に直結するものも含まれていた.偽カメラとヘッドレス `Form1` はセルフテスト用にすでにあり,自動化できない範囲は思っていたより狭かった. - 設計判断: テストプロジェクトへの `System.Windows.Forms` 参照の追加を許可した.`CameraBase` は偽カメラ+ヘッドレス `Form1` で検証し,カメラ SDK はモックせずに判断ロジックを切り出す(Humble Object).実機録画データ(チャート・白板のみ.舌は個人情報のため除外)は Git LFS で管理する.層②は全体 30 秒・1 件 15 秒を上限とし,CI が無いため `/verify` に常に含める. - 後段: フェーズ 1(WinForms 参照の追加・STA ハーネスの作成・「保存失敗が成功扱い」の赤テストと修正)を `/implement` で行う.`fix/auto-audit` の取り込みは実機確認待ち. + +- [x] **/auto-audit(全観点)の自動修正 7 件を取り込み** (2026-10-06): バグ・脆弱性の巡回監査ループを初めて全観点で回し,再現テスト(修正前に赤)を書けた 7 件を修正した.内訳は NaN ゲインの設定防止,白板 JSON の制御文字エスケープ,`ConvertImage` と `DetectChart` の一時 Mat/MatExpr の解放,Info.csv の RFC 4180 クォート,セルフテストの不正な出力先で終了コード 2 を返すこと,`FastClone` の失敗時の解放. + - 動機・結果: 検出した候補 40 件超のうち,自動修正できたのは 7 件だけだった.要対応 26 件(ローカルの報告台帳 `.claude/auto-audit-report.md`)の多くは「`CameraBase`・`Form1`・カメラ層で再現テストを書けない」ことが理由で,これを受けてテスト方針を 4 層モデルに改訂した(PLAN_05). + - 注意: 追加したリーク再現テストのうち 2 件は環境に依存しうる(OpenCV 内部の参照カウントのオフセット読み取り,プライベートメモリ増分のしきい値判定).OpenCvSharp の更新時や別マシンで落ちたら見直す(PLAN_05 で `[Category("Memory")]` に分ける予定). + - 後段: 要対応のうち重大度「中」(保存失敗が成功扱い・終了時のハングや画像の取りこぼし・校正例外がコールバックへ素通り・起動時の設定エラー・光源ポート使用中)は PLAN_05 のフェーズ 1〜3 で対応する. +