M.

Articles

記事一覧

Claude Code などの AI 活用、Unity・ゲーム開発、Web・サーバー運用まで。実際に手を動かして調べたこと・ハマったことをまとめた技術記事です。

テーマから探す

すべての記事

SPI3 の練習問題を自動生成する Web アプリを Claude Code で作った(26分野・お手軽/本番の2モード)

SPI3 の非言語17分野・言語9分野の練習問題を、その場で自動生成して何問でも解ける Web アプリ「SPI3ドリル(非公式)」を作りました。問題ジェネレーターの作り方、お手軽モードと本番モードで難易度を分けた方法、15万問を生成して形式の崩れを検査したテストについてまとめます。

CBT 初年度の IT ストラテジスト試験、午前は Claude と作った 425 問の過去問ドリルで突破した

令和8年度から CBT 方式になった IT ストラテジスト試験(ST)を、申込開始の深夜に受けると決め、科目A(旧午前)まで10日ほどで対策しました。IPA の過去問 PDF から Claude に解説付きの4択ドリルを作ってもらった流れと、つまずいた点、解いて分かった出題傾向をまとめます。

  • IT ストラテジスト
  • 資格試験
  • Claude

Alexa-hosted スキルのビルドが jest で落ちた件と、ログを直接読めない環境でエラーを集計する方法

Alexa スキル「安眠ノイズ」に Jest のテストを足したら、Alexa-hosted のビルドが失敗するようになりました。原因の切り分けと、テストを lambda/ の外に出した構成、さらに CloudWatch Logs に直接アクセスできない Alexa-hosted で、エラーを Logs Insights で集計できる1行ログにした話をまとめます。

コード進行アプリの楽譜表示を自作した(大譜表・コード名どおりの綴り・転調で調号を変える)

コード進行生成アプリ Chord Eureka の楽譜表示を、html-midi-player(Magenta)の表示から、SVG を直接組み立てる自作の大譜表に置き換えました。E♭m がシャープで書かれる、進行によって音部記号が変わるといった問題をどう直したかと、置き換えるかどうかの判断をまとめます。

コード進行アプリにボイシングのプリセットを10種類足した(Drop 2・シェル・4度堆積など。既定の音は1バイトも変えない)

コード進行生成アプリ Chord Eureka に、Drop 2・シェル・ルートレス・4度堆積などのボイシングを選べる機能を足しました。既定の音を変えて一度戻した経緯、「書かれていない音は足さない」という決まり、各プリセットの組み立て方をまとめます。

Claude に「敵対的レビュー」をさせて、指摘がどれくらい当たっていたかを数えた

個人開発では、Claude Code に「壊れるところを探して」と頼む敵対的レビューを何度も使っています。4つのリポジトリに残っていた再検証の記録から、指摘がどれくらい当たり、どう外れていたかを数えました。外れ方には決まった型がありました。

Claude Code 向けのドキュメントは3つに分ける(CLAUDE.md はルール、README はセットアップ、PROGRESS.md は次にやること)

Claude Code に任せて開発していると、CLAUDE.md・README・PROGRESS.md が同じ説明で膨らんでいきます。個人開発のリポジトリで役割を分け直したら、CLAUDE.md は117行から50行、README は172行から35行になりました。分け方と、書かないことにしたものをまとめます。

Claude Code の会話ログをブログのネタ帳にする(jsonl から体験を掘り出す)

Claude Code の会話ログには、自分が頼んだこと・Claude が実行したコマンド・その結果が残っています。このブログの記事のいくつかは、このログを掘って書きました。必要なところだけを抜き出すスクリプトと、auto mode に止められた話、文字化けの対処をまとめます。

PC のスリープを Claude Code に任せる(長いジョブの間は止めて、終わったら眠らせる)

ローカル GPU の長時間ジョブが、夜中に PC がスリープして止まっていました。Claude Code に「ジョブの間だけスリープを止める」「終わったらスリープさせる」を任せたときの方法と、スリープ防止が3日間残って自動スリープが効かなくなった失敗をまとめます。

Claude Code の security-guidance フックは何に反応したか(31件のうち、ほとんどが誤反応だった)

公式プラグイン security-guidance は、危なそうなコードを書くと Claude に警告を出します。会話ログから警告31件を集めたら、Playwright の $eval や正規表現の .exec( への誤反応が多く、Claude が警告を避けるためにコードを書き換えていました。最新版での変化と付き合い方をまとめます。

GCS の画像を Cloudflare Worker で中継してエッジにキャッシュする(バケット名を変えずに独自ドメインで配る)

GCS の公開バケットにある画像を、Cloudflare Worker で中継して独自ドメインから配るようにしました。CNAME が使えなかった理由、40行ほどの Worker の中身、GCS のエラー本文を出さない処理、Vary: Origin を付け忘れて「画像を保存」が失敗した件をまとめます。

Claude Code から Unreal Editor を操作する:UnrealMCP で毎回落ちていた Blueprint のコンパイルが、UE5.8 公式の MCP では落ちなかった

UE5.5 と UE5.6 では、Claude Code から UnrealMCP 経由で Blueprint をコンパイルすると、毎回エディタがクラッシュしていました。3日かけて原因を追い、最後は UE5.8 に標準で入った公式の MCP プラグインに移行しました。セットアップの手順と、調査で外れた仮説をまとめます。

YouTube への動画アップロードを API で自動化し、OAuth クライアントを複数のアプリで使い回す

自作アプリの紹介動画を、YouTube Data API で予約投稿しています。OAuth クライアントは1つだけ作って全アプリで共有し、トークンはアプリごとに分けました。クォータ(1日10,000ユニット)の範囲で何本まで上げられるか、二重アップロードの防ぎ方、Claude Code に覚えさせた置き場所のルールをまとめます。

Claude Code の /code-review は、強度を省略すると前回の値を使う。xhigh と medium で時間は4倍、読んだ量は8倍違った

/code-review を強度なしで打ったら、1か月前に別のプロジェクトで指定した xhigh で動いていました。前回の値は ~/.claude.json に全プロジェクト共通で残ります。同じ記事のレビューを xhigh と medium で3回動かし、時間・トークン・ツールの使い方・指摘を比べました。

claude -p --json-schema はスキーマ違反を AI に差し戻す。ただし AI が諦めると exit 0 で中身が空になる

claude -p に --json-schema を付けると、出力がスキーマで検証され、違反は AI に差し戻されて直されます。7種類の制約でわざと違反させると、AI が途中で諦めた場合は structured_output が無いまま exit 0・success で終わりました。試行回数の上限(既定5回)、検証されない format キーワード、呼び出し側で何を確かめるべきかをまとめます。

「〜のはず」は外れる。Claude Code と作業して、推測が外れて実測で分かったこと8件

「npm 版だから遅いはず」「auto mode によく止められている」「通信料はかかっていないはず」。Claude Code と一緒に個人開発をしていて、思い込みや推測が外れ、数えたり測ったりして初めて分かったことを8件集めました。自分の推測、確かめたつもり、AI の推測の3種類に分けて、どう確かめたかをまとめます。

Artifact Registry が86GBに膨らんだ(「30日より古いものを削除」が効かない理由とクリーンアップポリシー)

Cloud Run で動かす GPU ワーカーのコンテナイメージが1個11.5GB。月8回ビルドしたら、30日経過で削除するポリシーを入れていても Artifact Registry が86GBに戻りました。保持件数ベースのポリシーへの見直しと、Cloud Build のソースバケットの片付けをまとめます。

  • GCP
  • Cloud Run
  • Artifact Registry
  • コスト削減

AI コード進行アプリを2年運用して分かったこと(GPT-4o から Claude へ、2024→2026)

キーワードからコード進行を作る Web アプリ Chord Eureka を、2024年12月の公開から2年近く運用してきました。GPT-4o 時代のコストと出力崩れへの対処、Claude への移行、temperature 廃止で本番が落ちた件、構造化出力、測ってから決めたモデル更新までを、git の履歴をもとに振り返ります。

Claude Code の auto mode に止められた操作を1か月分集計した(64件の内訳と、許可リストの落とし穴)

Claude Code の auto mode が拒否した操作を、会話ログから1か月分集計しました。2.2万回のツール呼び出しのうち止められたのは64件。半分近くは本番デプロイで、読むだけの grep が止められた例もありました。公式ドキュメントと照らし合わせて分かった、許可リスト(permissions.allow)が効く・効かない条件もまとめます。

Claude Code に GCP の課金を棚卸しさせたら、月1万円が半分になった(失敗込みの記録)

個人開発で使っている GCP の全プロジェクトを、Claude Code と一緒に横断して見直しました。gcloud での調査、ストレージの掃除、通信料の削減、そして CUD の二重契約という失敗まで。AI に任せられたこと・人間がやる必要があったことを整理します。

Claude Code の会話は30日で消え、compact で要約される。何をどこに残すか

Claude Code の会話ログは既定で30日で削除され、長い会話は compact で要約されます。1か月分のログを数えると、3割のセッションで compact が起きていました。compact のあとに何が残り、何が落ちるのかを公式ドキュメントで確かめ、CLAUDE.md・auto memory・リポジトリのドキュメントの使い分けをまとめます。

npm 版の Claude Code は更新が遅いと思って移行したら、原因は自分の設定だった

新しいモデルがすぐ使えないのは npm 版のせいだと思い、Claude Code をネイティブ版に移行しました。ところが公式ドキュメントでは npm 版も中身は同じで、自動更新もあります。claude doctor で調べると、自動更新を止めていたのは自分で入れた環境変数でした。npm 版の残りの消し方と合わせてまとめます。

claude -p を評価器にして、AI の生成結果を930件自動採点した

コード進行アプリのキーワードボタンが本当に効いているのかを確かめるため、Claude Code の `claude -p` で930件を生成し、プログラムで採点しました。API キーを使わない生成のしかた、本番に近づけるためのオプション、Windows での落とし穴、AI に採点させない集計の考え方をまとめます。

Claude Code のサブエージェントの結果はどう届くのか。届かなかった件を家で再現しようとした

Claude Code のサブエージェントに任せた作業の結果が、親に届かなかったことがありました。家で3並列・入れ子の実験をして、結果がどの順で何として届くのかを確かめると、受け渡しは正しく動いていました。代わりに、サブエージェントが自分の状況を間違って説明する場面に出会いました。ログ(subagents/*.jsonl と meta.json)から結果を回収する方法もまとめます。

GCP の予算アラートで Cloud Run の GPU だけを自動停止する(maxInstanceCount: 0 では止まらなかった)

画像生成アプリの GPU 費用が予算を超えないよう、予算アラート → Pub/Sub → Cloud Functions で GPU ワーカーだけを止める仕組みを作りました。Cloud Run の設定を書き換える方式は効かず、GCS のフラグファイル方式に変えた経緯と、段階導入・90%しきい値の理由をまとめます。

個人開発の GCP で「やらなかった」コスト削減4つ(e2-small・東京リージョン・Nearline・Standard ティアの保留)

GCP の費用を見直したとき、候補に挙がったものの見送った施策と、その理由をまとめます。ダウングレード、日本リージョンへの移行、Nearline 化などは、条件次第で逆効果になりました。確認して問題なしだった項目のチェックリストも載せます。

GCP の請求で Networking は ¥0 なのに、VM の通信料がかかっていた(404 の gzip 化と Standard ティア)

Cloudflare の裏で WordPress を動かす GCP VM の外向き通信が月約70GB。通信料は Networking ではなく Compute Engine 側に計上されていました。内訳を調べたら4割が圧縮されていない404応答だったので、PHP で gzip 化し、Standard ティアに切り替えた話です。

Cloudflare Pages Functions で共有リンクごとに OGP 画像を作る(workers-og・エッジキャッシュ・Server-Timing)

静的サイトのまま、共有リンクごとに中身入りの OGP 画像を出す仕組みを Cloudflare Pages Functions で作りました。クローラー向けの HTML とブラウザの転送、workers-og での画像生成、エッジキャッシュ、Server-Timing で測った生成時間と、render が 0ms になる理由までまとめます。

文章から3Dモーションを作って MMD モデルを動かす(HY-Motion 1.0 × Blender、RTX 5070)

テンセントの HY-Motion 1.0 で文章から3Dモーションを作り、MMD モデルに移して Blender で縦動画にしました。12GB の GPU で動かす工夫、ARDY との比較、時刻ごとのプロンプト切り替えや決めポーズの固定、足すべりの後処理まで、3日間試して分かったことをまとめます。

  • HY-Motion
  • MMD
  • Blender
  • モーション生成
  • RTX 5070

個人開発の Windows アプリを Microsoft Store に出すまで(MSIX パッケージ・wapproj のハマりどころ・審査メモ)

WPF で作ったデスクトップアプリ HeatDesk を Microsoft Store に公開しました。Partner Center での名前の予約、wapproj と Package.appxmanifest の設定、MSBuild で出たエラーと直し方、審査担当者へのメモ、ストア用の画像まで、つまずいた順にまとめます。

打鍵音づくりに AI を使ったら、品質は上がったが楽にはならなかった(TaktKey)

キーを打つたびにメカニカルキーボードの音を鳴らす Windows アプリ TaktKey の音づくりで、Claude Code に合成パラメータを大量に出させました。合成だけ・自分で録音・フリー素材の加工と試した順に、効いた処理と、最後まで人の耳に残った判断をまとめます。8音色の試聴つきです。

Claude Code に .env を読ませない deny 設定と、その限界

Claude Code に任せて作業するにあたり、.env や credentials を読ませないよう settings.json の permissions.deny を設定しています。実際の設定と、Bash コマンドのパターン指定ではすり抜けが防ぎきれない理由、ほかに重ねている対策をまとめます。

Windows で Claude Code を使うときのハマりどころ(Git Bash・ヒアドキュメント・CRLF・子プロセス)

Windows で Claude Code を毎日使っていて実際に踏んだハマりどころを4つまとめました。Bash ツールの正体が Git Bash であること、ヒアドキュメントの崩れ、CRLF、止めたはずの子プロセスが残る問題と、それぞれ CLAUDE.md にどう書いて防いでいるかを紹介します。

みなし残業80時間は「お得」だと思っていた——休職・復職で年収が半分になった話

みなし残業80時間・実際の残業は月20〜30時間。お得に働けていると思っていましたが、休職から復職したとたん残業禁止でみなし残業代がカットされ、同じ仕事量のまま年収が半分になりました。その体験と、入社前に確認しておきたいことをまとめます。

  • 働き方
  • みなし残業
  • 休職