Open6

Claude Code周りの個人的思想

泡沫京水泡沫京水

AI Agentが出してくるコードはHuman Controllableでなければならない

読んで字の如くである。
人がコントロールできなくなった時点で、
私たちは単体テスト・統合テストしかすることができないし
そこで失敗されてしまったら、そのプログラムコードはAIしかメンテナンスできないし
メンテナンスをAIがちゃんとやってくれるとも限らない
結局のところ、どうしようもないまま放置するしかなくなってしまうのが関の山である

泡沫京水泡沫京水

ではどうすればいいのか

優れた開発者たちは、特定の分野のアプリケーションの開発を円滑にするための
ライブラリやフレームワークを用意してくれており、
Webで言うとT3 StackBetter T Stackプロジェクトを作成しておくと
ある程度の品質の担保がされやすくなる

泡沫京水泡沫京水

適切な情報を渡すためのMCPを活用しよう

これは非常に大事な話で、それができなければ非常に大きな苦労をすることになる。
TailwindCSSv4を入れてるのにv3の設定ファイルを生成してきたりなど
過去のバージョンで大きな変更があったものほど、過去の情報を参照したものを
使用されてしまい、うまくいかなくてトークンを無駄遣いされてしまう可能性がある
そんな時は、Context7FirecrawlなどのMCPを利用していこう

https://zenn.dev/spacemarket/articles/21c4df0b7795f9
https://zenn.dev/takna/articles/mcp-server-tutorial-08-firecrawl

さらに、公式がMCPを提供していない場合は、ドキュメントサイトの情報をローカルに保存し、
MCPとしてサーブさせるSiteMCPを活用するとより良い。

https://zenn.dev/ryoppippi/articles/1eb7fbe9042a88

泡沫京水泡沫京水

Hooksを活用しよう

  • Claude Codeが実行したコマンドの記録
  • 完了通知
  • 新規プログラム作成時やプログラム更新時のLint,Format
  • 自動的なテスト実行

など、自分がやらなくても勝手にやって欲しいことをやってもらえると
こちらとしては作業が少なくて助かるので、ガンガン設定していこう。

UserPromptSubmitを使って、プロンプトの質を担保する

ユーザーがプロンプトを送信したとき、Claudeが処理する前に実行されます。これにより、プロンプト/会話に基づいて追加のコンテキストを追加したり、プロンプトを検証したり、特定のタイプのプロンプトをブロックしたりできます。

{
  "session_id": "abc123",
  "transcript_path": "/Users/.../.claude/projects/.../00893aaf-19fa-41d2-8238-13269b9b3ca0.jsonl",
  "cwd": "/Users/...",
  "hook_event_name": "UserPromptSubmit",
  "prompt": "Write a function to calculate the factorial of a number"
}

ここのpromptの部分を取り出して、TUIプログラムを動かせられれば、
そもそものプロンプトに概要を書いて、
TUI側で構造を持ったプロンプトを入力できるようにするという
プロンプト入力に介入するプログラムを作成することによる
入力の構造の品質の維持を行うことができる

泡沫京水泡沫京水

もうMCP経由の処理をベースに操作させませんか???

ヒヤヒヤした処理を決して動かされたくないなら、操作の大半はMCPを経由させるべきだと思ってます。

役割 使用するMCP
ファイル操作 Filesystem
Webからの情報収集 Fetch,FireCrawl
開発上でわかったナレッジ保存 OpenMemory
デプロイ操作 デプロイ先のサービスが提供してくれているMCP

というように絞るのが良いかもしれませんね