hiragramhiragram

個人のプログラミング体制の現在地

2025-07-19


半年後には全部入れ替わってるかもしれないので現在地の記録として書いておく。

最近の道具

LLMエージェント: Claude Code

最近Claude Maxの$200/moのプランにアップグレードした。iOSアプリの新規開発というユースケースで自分が使っている範囲では、Opus 4とSonnet 4の差はあんまり感じていない。が、ケチケチしてもしょうがないかなと思ってOpus固定で使っている。

Claude Codeの話をXでポツポツ書いていたらmizchiさんに誘ってもらってClaude Code Deep Diveというイベントに登壇した。

CI: Claude Code Actions + GitHub Actions + M4 Pro Mac mini

Claude Code ActionsがClaude Maxに含まれるようになり、利用を始めた。Claude Codeは定額で使えるようになったが、GitHub Actionsは実行時間に応じたコストがかかるので、「とりあえず書かせて、ダメだったら全部捨ててやり直す」みたいな人間側のメンタルモデルと相性が悪い。せっかくハードルが下がったのにそこでブレーキがかかるのは勿体ないと感じて、Self-hosted runnerとして動かすためのM4 Pro Mac miniを買った。やってるのはiOSアプリの開発なので。

今のところSelf-hosted runner上でやってるのは

  • Claude Code Actionsによるコードレビュー
  • Claude Code Actionsによるタスクの実行
  • PRごとのiOSアプリ/APIサーバーのテスト実行

ユニットテストの実行はこれまでXcode Cloudを使っていたが、Self-hosted runnerに移行して、Xcode Cloudは配信用ビルドを作るだけにして有料プランを解約した。Xcode CloudはIntelプロセッサの環境なので、同じコードに対するスナップショットテストで生成される画像がAppleSilicon環境と微妙に差が出てしまってVRT構築に対してネガティブな要素だったのが、M4 Pro Mac miniで動くようになったので厳密な画像比較ができるようになったのも嬉しい。

M4 Pro Mac miniには大変満足している。CPUを14コアに、メモリを64GBに、ストレージを1TBに増やした。Self-hosted runnerのプロセスを4つ動かしていて、iOSシミュレータが絡むテストジョブが複数並行で走っても自分の作業に何も影響がないくらいにはパワフルである。ラップトップにしようとも思ったが、4年前に買ったM1 ProのMacBook Proが存命なのでコスパが良さそうなminiにした。正解だったと思う。

タスク管理: Linear

最近使い始めた。LLMエージェントの重要性が上がっていって、彼らにとってアクセスしやすいところにタスクやドキュメントがあることの価値が日に日に高まっている中、GitHub issueでプロジェクト管理っぽいことをする難しさと、でも別の場所に置きたくないという気持ちとで葛藤しているときに出会った。

LinearとGitHubリポジトリを連携すると双方向に同期できるようになる。GitHubにissueを立てるとLinear側にチケットとして起票されるし、Linear側でチケットを作るとリポジトリにissueが作られる。コメントも同期されているので、Linear側から @claude このissueやって みたいにClaude Code Actionを起動することもできる。

あとモバイルアプリがGitHubよりLinearのほうが洗練されていて使いやすい。最近は眠る前に布団の中でモバイルから思いつく限りのissueを立ててClaude Code Actionに着手させてから寝るという流れになってる。

VibeTunnel + Tailscale

VibeTunnelはローカルのMacのCLIをWebブラウザから見られるようにしてくれるツール。これにTailscaleで構築した仮想ネットワークと組み合わせると、家の外からでもブラウザさえ使えれば家のMacで動いてるClaude Codeにアクセスできるようになる。複数のプロセスを一覧管理したり切り替えたりするUIも日々洗練されていってて、tmuxが手に馴染んでいない自分にとってはこっちのほうが管理しやすかった。

Issue/PR管理: Jasper

Linearからポンポンissueを作って、Claude Code ActionsがガンガンPRを投げてくる、という状態になったので、Chromeのタブが破滅していく。久しぶりにJasperを導入して、フィルターをこねこねして、botが投げまくってくるPRを打ち返したりタスクissueに対して着手指示をだしたりしている。

おわりに

これはあくまで個人開発のフォーメーションであり、所属先の業務で取っている体制ではないことは留意されたい。

今は音声を使ったコミュニケーションアプリをiOS向けに開発している。

どうもVibe Codingという言葉を自分の作業に向けて使うのはピンと来ない。ノリで適当にやっているわけではない、むしろ自分で全部やる状況よりも緻密にフローを構築して丁寧にやっている自負がある。早くこの言葉廃れないかな。

半年後とかにまたその時の状況を書きます。

このエントリーをはてなブックマークに追加

Post