AI が動かす前提で CLI を設計する
シリーズ・第 4 回(最終回) — 「個人で静的サイト生成ツールを作って配るまで」(全 4 回)。前回はbrew と scoop で配る話でした。一覧は シリーズの記事一覧 から。今回のテーマは「AI が動かす前提の CLI 設計」です。
crofty は端末から打つ素朴な CLI です。ただ前提が少し違っていて、「人が入れて最初の設定をしたら、あとはその人の AI(エージェント)が回す」使い方を想定しています。
狙いははっきりしています。CLI が「何ができて、何をすればいいか」を自分で語れば、AI は使い方を探る往復に頭を使わず、価値のある思考にコストを割けます。その「手前で積もる出費」は、たとえばこういうものです。
操作する相手に AI を含めると、設計はどう変わるか。最終回はその話です。
画面でなく、出力を窓口にする
人は画面をクリックもできるし、レンダリングされた文書も読めます。エージェントにできるのは、基本コマンドを実行して出力を読むことだけ。両方が確実に使える共通の道は「コマンドを実行して、その出力を読む」ことです。
だから crofty は GUI や管理画面を作らず、出力テキストを人にもエージェントにも読める窓口にしました。柱は次の 3 つです。
① 聞けば分かる ― まず crofty agent
エージェントが最初に知りたいのは「どんなコマンドがあって、どう使うのか」。それを一枚で返すのが crofty agent です。コマンドと引数・使う順番・状態を読む口まで、まとめて出します。AI はこれを最初に読めば、あとは自分で動き出せる。crofty の設計でいちばん大事な一手です。
目的別の窓口もあります。crofty features は「何ができて、どう有効にするか」を返します。
$ crofty features
crofty features — what you can do, and how to turn each thing on.
Out of the box (works in a fresh project):
rss an Atom/RSS feed and a 'Follow by RSS' link
→ automatic — nothing to set
share reader share buttons, and `crofty share` …
→ automatic on posts; `crofty share <path>` for authors
…
Restyle (owned, contract-safe):
looks ready-made colour/type presets (quiet-paper, terminal, …)
→ crofty theme set <name>
…
Opt-in (off by default — one config key or a render hook):
analytics Cloudflare / GA4 / GTM / AdSense (no trackers by default)
→ crofty add analytics
…
各行に機能と有効化の方法がセットで出ます。crofty config なら「今どうなっているか」。どれも、ドキュメントを探さずに動き出すための窓口です。
② 毎回「次の一手」を出す
コマンドは、結果だけでなく「次に何をするか」も出力に書きます。ビルドの後はこうです。
$ crofty build
✓ built → ./dist
next:
crofty preview # look at it locally first (no account)
crofty deploy # put it online (connects a free Cloudflare account)
next: があるので、手順を覚えていなくても、出力をたどれば次に進めます。人には親切なヒント、エージェントには行動の手がかり。共有用の出力に --json を添えるなど、プログラムから読める口も用意しています。
③ 勝手に書き換えず、見せる
crofty は、自分が所有するファイルは書きますが、ユーザーのもの ― たとえば hugo.yaml ― は勝手に書き換えません。代わりに「ここをこう変えてください」と案内します。
これは人にもエージェントにも効きます。何が起きるか・何を変えるべきかが出力に見えるので、ブラックボックスになりません。勝手に状態を変えないツールは、エージェントに任せても暴走しにくい、ということでもあります。
まとめ
操作する相手に AI を含めると、頼れるのは画面操作ではなく「読めて・聞けて・次が分かるテキスト」です。GUI を作らない代わりに、出力そのものを最良の窓口にする——その入口が crofty agent です。
出力がここまで揃っていれば、AI は探り合いに頭を使わず、価値のある思考に集中できます。CLI を作り込む値打ちは、最後はそこにあります。
これで全 4 回は完結です。所有して公開する薄いパイプラインを作り、多言語を設計し、brew と scoop で配り、人と AI の両方が動かせるように整えてきました。小さなツールを作って配る誰かの、どこか一場面で役に立てば、それでじゅうぶんです。
← 前の記事:自作 CLI を brew と scoop で配る | シリーズはこれで完結です。