ずん
「権限プロンプトが毎回出るとか、もうClaude Codeを使わない方がマシなのだ!」
でぇじょうぶ博士
「やれやれ...そう短絡的に考えるのは良くないでやんす。この記事は、セキュリティと利便性の板挟みという、まるで姑と嫁の関係のような問題を解決した事例でやんす。」
やきう
「は?何言うてんねん。そんなん全部allowにしたらええやんけ。ワイはそうしとるで。」
でぇじょうぶ博士
「それは危険でやんす!gh apiコマンドには読み取り専用操作だけでなく、PRのマージやissueの削除など、取り返しのつかない操作も含まれているでやんす。全部許可するのは、泥棒に家の鍵を渡すようなもんでやんすよ。」
ずん
「でもさー、毎回許可するのもめんどくさいのだ。ボク忙しいエリートなのだ。」
やきう
「お前が忙しい?草生えるわ。昼寝と二度寝で一日終わっとるやんけ。」
でぇじょうぶ博士
「まあまあ。この筆者は賢いでやんす。GH_CONFIG_DIR環境変数を使ってプロファイルを分離し、読み取り専用のトークンで認証した別プロファイルを作ったでやんす。つまり、二つの顔を使い分けるスパイのような運用でやんすね。」
ずん
「ふーん。でもそんな複雑なことしなくても、Claude Codeに『変なことするなよ』って言えばいいんじゃないのだ?」
やきう
「アホか。AIに口約束が通じるわけないやろ。お前、詐欺に引っかかるタイプやな。」
でぇじょうぶ博士
「その通りでやんす。技術的な制限こそが最強の安全装置でやんす。このghroラッパースクリプトは、読み取り専用トークンでしか認証していないので、物理的に書き込み操作ができないでやんす。まるで包丁の刃を取り外したようなもんでやんすね。」
ずん
「なるほどー。でもボク、Fine-grained tokenとか作るの難しそうなのだ...」
でぇじょうぶ博士
「確かに最初の設定は少し手間でやんすが、一度設定すれば半永久的に使えるでやんす。それに、この方法の素晴らしい点は、readとwriteの境界線を明確にできることでやんす。」
やきう
「で、結局このghroコマンドって何ができるんや?」
でぇじょうぶ博士
「コミット履歴の取得、issueの一覧表示、PRの状態確認など、情報を見るだけの操作は全てスムーズに実行できるでやんす。一方、データを変更する操作は通常のghコマンドを使うので、毎回許可プロンプトが出てガードレールが機能するでやんす。」
ずん
「じゃあつまり、覗き見はOKだけど触るのはNGってことなのだ?」
やきう
「お前の表現、毎回キモいな。でもまあ合ってるわ。」
でぇじょうぶ博士
「そうでやんす。この仕組みの本質は『最小権限の原則』でやんす。必要な権限だけを与えることで、意図しない操作のリスクを最小化するでやんす。まるで子供に刃物ではなく、プラスチック製のおもちゃを渡すようなもんでやんすね。」
ずん
「でもさ、Claude Codeって賢いんでしょ?勝手に危ないことしないんじゃないのだ?」
やきう
「お花畑か。AIは所詮プログラムや。バグもあれば誤動作もあるんやで。」
でぇじょうぶ博士
「やきう君の言う通りでやんす。AIは確かに賢いでやんすが、完璧ではないでやんす。特にClaude Codeのような自律的に動くツールでは、想定外の操作をするリスクは常にあるでやんす。だからこそ、技術的な制約で守ることが重要でやんす。」
ずん
「むむむ...じゃあボクもこの設定やってみるのだ!でも失敗したらどうしようなのだ...」
でぇじょうぶ博士
「安心するでやんす。GH_CONFIG_DIRを変えるだけなので、既存の設定には一切影響しないでやんす。最悪失敗しても、作ったディレクトリを削除すれば元通りでやんすよ。」
やきう
「しかしこの筆者、よう考えたな。ワイも見習わなあかんわ。」
ずん
「え!?やきうがまともなこと言ってるのだ!?これは世界の終わりが近いのだ!?」