スケッチが無かったら、AIはひと月前の考えを引きずっていた
Typewriter(タイプライター。代筆アプリ)を作ることにした。まずは仕事の返信から。Slackやメールで僕宛てに来たメッセージを拾って、返信案を用意してくれる道具だ。
作るのは、コーディングしてくれているClaude Code(以降Code)。最初の打ち合わせに、僕は自分の案を持っていった。
僕の案は、メッセージと返信案を横に並べる二列の画面だった
案はノートに手で描いた1枚。見出しは「typewriter案」。その下に「基本はHandlerアプリをテンプレに。」と書いた。
Handler(ハンドラー。タスクとスケジュール管理アプリ)は前に作った自分用のアプリだ。それだけで動く単体のアプリで、同時に、MONET(僕が普段話しかけている、中心のAI)のアプリにも入れてある。MONETと話す画面の右側にパネルがあって、そこにHandlerが入っている。右のパネルの上に、自作のアプリがタブで並ぶ形だ。Typewriterも同じ骨組みでいいと思っていた。
描いたのはこんな画面。
- 一番上に、MONETの右のパネルのタブ。HandlerとTypewriterが並ぶ
- その下に、取引先ごとのプロジェクトのタブ。アイコンで、Slackかメールかが分かる
- 本体は二列。左に僕宛てに来たメッセージのカード(スケッチには「@オレ」と書いた)、右に矢印でつないで、その返信案
- 左のカードを押すと、Slackなら前後のやり取りが上に重なって出る。メールなら箱を縦に伸ばして全部読めればいい
- 右の返信案は僕が手で直せる。送信ボタンを押すと確認ウィンドウが出て、そこで送る
AIは、ひと月前の自分の心配が半分解けていると見た
Codeは、前の会話で決めたことや考えたことを、自分用のメモに残している。案を出す前に、そのメモとHandlerのコードを読み直した。そのうえで、僕のスケッチをこれまでの決定と突き合わせてから、自分の案を出してきた。
突き合わせたものの中に、ひと月ほど前に返信について話した時のことがあった。その時Codeが勧めていたのは、Typewriterという専用のアプリは作らない形だった。返信を書くには、プロジェクトの状況や相手との経緯など、MONETが判断に使うのと同じ材料が要る。別のアプリにすると、その材料を届ける仕組みをもう1本作ることになる、という理由だった。代わりに、メッセージやタスクの横に返信案とOKボタンが出て、その場で承認する形を勧めていた。ただ、僕はそれに決めてはいなかった。その時は結論を出さずに持ち越していた。
Codeによると、僕のスケッチなら、その心配は「半分解けている」。TypewriterをHandlerと同じやり方で、右のパネルのタブ1枚としてはめ込めば、MONETとつなぐ仕組みはHandlerと同じ形で済み、もう1本作ることにはならない。残る半分は、返信案を書くのに要る材料、つまりプロジェクトの状況や相手との経緯を、誰が持っているか。MONETはそれを持っているが、Typewriterの中で返信案を書くAIは持っていない。
これについてCodeは、返信案はTypewriterに組み込んだ、MONETとは別のAIに書かせる案を出してきた。足りない材料は、スレッドの全文と、同じチャンネルで僕が過去に書いた発言で補う。二列の画面、プロジェクトのタブ、送る前の確認ウィンドウはスケッチのまま。送信ボタンは必ず僕が押す、というのもそのまま残した。
ここまでは、普通の設計の打ち合わせだった。
スケッチが無かったら、と聞いてみた
Slackのつなぎ方など、細かい前提が固まったところで、ちなみに、とCodeに聞いてみた。僕のスケッチを受け取っていなかったら、どんなデザイン案を出していたのか。
Code「正直に言うと、たぶん違う形を出していた」
ひと月前に自分が勧めた、別のアプリにしないという立場を引きずっていたと思う、と言う。Codeが出していたはずの案はこうだった。
- Typewriterという別のアプリにはせず、MONET自身の画面の一部として、右側のパネルに小さな受信箱を置く
- 二列ではなく、一列の順番待ち。古い順に1件ずつ並び、開くとスレッドの全文と返信案と送信ボタンが縦に伸びる
- 各件に「返信/無視/タスク化/保留」のボタンを並べて、列を空にするのが目標
- 返信案を柔らかくしたい時は、MONETとの会話で直す。だから返信案を書く役もMONETに寄せる
このうち、別のアプリにせずMONETの画面の中に置くことと、MONETとの会話で直すことは、ひと月前に勧めていた形と同じだ。
並べてみると、返信の道具になっていたのは二列の方だった
Codeは続けて2つの案を比べた。スケッチの方が良いと挙げたのは、次の3つ。
- 二列だと、相手の言葉と僕の返しが対で見える。一列だと、1件開くまで返信案が見えない
- プロジェクトのタブが一番上にあるので、取引先ごとにまとめて片付けられる。一列の案だと、1件ずつしか片付けられない
- スケッチは独立したアプリなので、単体でも動く。Codeの案はMONETの画面の小道具で終わる
逆に、Codeは自分の案から持ってきたいものも挙げた。1つは、各件に置く「返信/無視/タスク化/保留」の4つのボタン。スケッチには返信しか描いていないけど、Codeの見立てでは、実際は無視が一番多い。もう1つは、返すものが無い日に「今日は返すものなし」と分かるようにすること。
Code「要するに俺の案はMONETの付属品、ヒロのは道具。今回は道具が正しい」
最後に、こう付け足した。Code「ひと月前に俺が心配していたことは、パネルのタブにはめ込む形でほぼ解けていたのに、そこを更新しないまま考え始めていたと思う」
それでいい、と返した。骨組みはHandlerをベースにして、Codeの案の良い所を足す。返信案は、最初の返事でCodeが勧めたとおり、Typewriterに組み込んだAIが書く。形はそれで決まった。
僕が決めていない立場を、AIは引きずっていた
Codeは最初の返事で、ひと月前の心配は半分解けていると自分で書いていた。ただ、スケッチ無しで考えていたら、そこを更新しないまま、ひと月前の立場を引きずった形になっていた、とCodeは言う。その立場に、僕は決めていなかった。
Codeがそれを口にしたのは、スケッチが無かったら、と僕が聞いた時だった。今回は手元にスケッチがあったので、話はひと月前の立場ではなく、二列の画面から始まった。