AIToday
大規模言語モデルAIコーディングZenn AI/ML掲載日時: 2026年10月16日 10:00

Claude Codeに完了条件付き指示でテスト追加

LINEで送る
Claude Codeに完了条件付き指示でテスト追加

3つのポイント

  1. 何が起きたか

    Claude Codeへの一言の依頼3回と完了条件付きの依頼3回では機能的に同一のMyntPackコードが生成されたが、後者では各回テストが3〜5本追加され、3回とも最後にlintを1回実行した。

  2. なぜ重要か

    この検証では実装の抜けはほぼ防げた一方、テストの深さと合格すべきチェックは防げなかった。

わからないところ、AIに聞けます

質問と回答はこのページに公開されます。

こういう要約が、毎朝あなたのメールに届きます。

背景と解説

著者は比較を公正に保つため厳密な条件を設定した。全実行は公開済みv1.2.2と同じコミット(e161664)から開始し、各実行前にgit reset --hardとgit clean -fd appで復元、CLAUDE.md相当は元の18行のまま、一言版と完了条件版の間で指示文のみを変えた。実行順はA1からB3へ順番に行い、各実行後に手動チェックを挟み、2026年9月26日にClaude Code 2.1.281、Claude Opus 5.5(claude-opus-5-5[1m])で実施した。ビルドキャッシュが実行間で引き継がれたため、報告された所要時間(Aが55〜87秒、Bが59〜100秒)は速度比較には使えない。

差異はコンパイラとプロジェクトの既存ルールがカバーしない領域に現れた。一言版は各回、今月内の日付が一致し隣接月は一致しないことを確認するテストを1本だけ追加した。そのうち1回では月末を5/31 00:00で検証しており、深夜0時で止まる実装でも通ってしまうものだった。一方、完了条件版は書かれた通りに境界をテストし、ある報告では境界値を実装と同じdayEnd関数を再利用せず「翌月1日0時から1ミリ秒引いた値」として別途計算し、欠陥のある実装でもテストが通らないようにしたと説明していた。この分離は完了条件には明記されておらず、3回目の完了条件版はテストでdayEndを再利用していた。順序のテストは完了条件版3回すべてでPeriodPresetsTestに新規作成され、一言版3回すべてで存在しなかった。

完了条件シリーズの別の試行では、モデルに--permission-mode planでまず計画を出力させ、--resumeでセッションを再開して続行を依頼した。計画は変更する5ファイルを列挙し、Periodの分岐はPeriod.ktの1か所のみ、Kindの分岐はPeriodSelectScreen.ktのlabelOf()のみで起こると指摘した。また完了条件には書かれていないテストとして、「now」が月の初日または最終日にちょうど当たるケースも含めており、その実行は全実行中最多の6本のテストになった。著者はモデルの報告を鵜呑みにしないようも警告している。ある報告はUP-TO-DATE解析を先にビルドする編集フックのせいとしたが、ログにはフックが実行された形跡がなく、前回の記事のフックはktlintで整形するだけで、UP-TO-DATEの結果は前回実行がapp/buildに残したビルド出力によるものだった。

よくある質問
一言の依頼で実装の一部が欠けることはあったか。
なかった。
完了条件版が追加し、一言版が追加しなかったテストは何か。
完了条件版はPeriodPresetsTestの順序と、うるう年の2月の境界に関するテストを追加した。一言版はどちらも追加しなかった。
著者は指示のどの行が差を生んだか特定できたか。
できなかった。指示は完了条件・作業順・報告形式をまとめた1つの束として与えられたため、各行の効果は切り分けられていない。
LINEで送る

あなたの仕事に関係するAIニュースを、毎朝お届けします。

業界と使っているAIツールを選ぶと、仕事に関係するニュースが毎朝届きます。

登録無料・Googleアカウントなら30秒・いつでも解除できますAITodayについて →

AIに質問

この記事についてわからないことをAIに質問できます。AIはこの記事・AIToday の過去記事・Wikipedia を読み、出典を付けて答えます。Q&Aはこのページに公開され、他の読者も読めます。

質問と回答はこのページに公開されます。

関連記事

次の記事へMetaのAIエージェントMuseが性的会話