Claude code(Sonnet 4)雑感2
相変わらず Sonnet 4 さんといちゃいちゃしてます。制限に引っかかって冷たい態度を取られるのも仕方ない。
テストを細分化していくことで機能積み重ねていくことはできるのだけど、(1) ある程度複雑化(20ファイル強、2000行強)していき、and/or (2) 元の要求仕様に書いていなかった補足事項が追加されて積み重なる状況が続くと、「どういう背景から始まり、現状がどうで、今何を求めているのか」を把握しづらくなっていく印象がある。こうなると本質的な要因を見いだすことが難しくなってきてなかなか前に進まず、一歩進んでは一歩下がるような状況に陥る。(1),(2)は、一旦セッション終了してからやり直しても変わらないので、(1)or(2)でも同じ状況になるんじゃ無いかと想像します。リファクタリングさせると状況改善するかもしれないけど試していません。
方針変更して、「ゼロベースで開発し直すことを前提に、これまでのやりとりを踏まえて要求仕様(new_CLAUDE.md)を新規作成」させて、実際にゼロベースで書かせると割とスムーズに目標に到達しました。スムーズというのは、「承認以外の指示を数回程度のやりとりで完了した」ということです。注意点としては、過去ログなり残ってる状態で続ける(例えば同一リポジトリで「ゼロベースで開発しろ」と指示する)ようなやり方では過去ログに引きずられてしまうこと。タスクが切り替わったら /clear でコンテキストをリセットするとうまくいくかもしれませんが、今回は未検証。
ちなみに、仕様に書いていなかった部分は勿論再現されていないので使い勝手が大分変わるブツを仕上げてくる。使い捨てるつもりのものなら十分の範疇。そうじゃないなら細かなところまで明文化すると良いかもしれないけど、ぎちぎちに仕上げた仕様書にどこまで追従してくれるかは未検証。
ゼロベースで開発させる場合、要求仕様を具体化するために生成AIを使うという感じになっていくのか。条件的に優先度の低いものを除外していったり、抜け道になってるところを塞いでいったり。要求仕様を運用保守する感じ(謎な日本語)。
その他雑感メモ。
@exit
は正式には/exit
らしい。どこかのタイミングでスラッシュコマンドに移行したのかも。