SPI3 の練習問題を自動生成する Web アプリを Claude Code で作った(26分野・お手軽/本番の2モード)
SPI3 の非言語17分野・言語9分野の練習問題を、その場で自動生成して何問でも解ける Web アプリ「SPI3ドリル(非公式)」を作りました。問題ジェネレーターの作り方、お手軽モードと本番モードで難易度を分けた方法、15万問を生成して形式の崩れを検査したテストについてまとめます。
- SPI3
- Webアプリ
- Claude Code
Topic
Claude Code を毎日の開発で使いながら、設定・hooks・auto mode・サブエージェント・claude -p などを実際に試し、ログを集計して分かったことをまとめています。Windows で使うときのハマりどころや、推測が外れた失敗の記録も含みます。
33件(新しい順)
SPI3 の非言語17分野・言語9分野の練習問題を、その場で自動生成して何問でも解ける Web アプリ「SPI3ドリル(非公式)」を作りました。問題ジェネレーターの作り方、お手軽モードと本番モードで難易度を分けた方法、15万問を生成して形式の崩れを検査したテストについてまとめます。
Alexa スキル「安眠ノイズ」に Jest のテストを足したら、Alexa-hosted のビルドが失敗するようになりました。原因の切り分けと、テストを lambda/ の外に出した構成、さらに CloudWatch Logs に直接アクセスできない Alexa-hosted で、エラーを Logs Insights で集計できる1行ログにした話をまとめます。
コード進行生成アプリ Chord Eureka の楽譜表示を、html-midi-player(Magenta)の表示から、SVG を直接組み立てる自作の大譜表に置き換えました。E♭m がシャープで書かれる、進行によって音部記号が変わるといった問題をどう直したかと、置き換えるかどうかの判断をまとめます。
コード進行生成アプリ Chord Eureka に、Drop 2・シェル・ルートレス・4度堆積などのボイシングを選べる機能を足しました。既定の音を変えて一度戻した経緯、「書かれていない音は足さない」という決まり、各プリセットの組み立て方をまとめます。
個人開発では、Claude Code に「壊れるところを探して」と頼む敵対的レビューを何度も使っています。4つのリポジトリに残っていた再検証の記録から、指摘がどれくらい当たり、どう外れていたかを数えました。外れ方には決まった型がありました。
Claude Code に任せて開発していると、CLAUDE.md・README・PROGRESS.md が同じ説明で膨らんでいきます。個人開発のリポジトリで役割を分け直したら、CLAUDE.md は117行から50行、README は172行から35行になりました。分け方と、書かないことにしたものをまとめます。
Claude Code の会話ログには、自分が頼んだこと・Claude が実行したコマンド・その結果が残っています。このブログの記事のいくつかは、このログを掘って書きました。必要なところだけを抜き出すスクリプトと、auto mode に止められた話、文字化けの対処をまとめます。
ローカル GPU の長時間ジョブが、夜中に PC がスリープして止まっていました。Claude Code に「ジョブの間だけスリープを止める」「終わったらスリープさせる」を任せたときの方法と、スリープ防止が3日間残って自動スリープが効かなくなった失敗をまとめます。
公式プラグイン security-guidance は、危なそうなコードを書くと Claude に警告を出します。会話ログから警告31件を集めたら、Playwright の $eval や正規表現の .exec( への誤反応が多く、Claude が警告を避けるためにコードを書き換えていました。最新版での変化と付き合い方をまとめます。
Claude Code で「今後は確認しない」を選ぶたびに、settings.local.json に許可ルールが足されていきます。10リポジトリ分を数えたら879件あり、6割は二度と使わない一回限りのコマンドでした。何が溜まっていたのかと、整理の方針をまとめます。
GCS の公開バケットにある画像を、Cloudflare Worker で中継して独自ドメインから配るようにしました。CNAME が使えなかった理由、40行ほどの Worker の中身、GCS のエラー本文を出さない処理、Vary: Origin を付け忘れて「画像を保存」が失敗した件をまとめます。
UE5.5 と UE5.6 では、Claude Code から UnrealMCP 経由で Blueprint をコンパイルすると、毎回エディタがクラッシュしていました。3日かけて原因を追い、最後は UE5.8 に標準で入った公式の MCP プラグインに移行しました。セットアップの手順と、調査で外れた仮説をまとめます。
自作アプリの紹介動画を、YouTube Data API で予約投稿しています。OAuth クライアントは1つだけ作って全アプリで共有し、トークンはアプリごとに分けました。クォータ(1日10,000ユニット)の範囲で何本まで上げられるか、二重アップロードの防ぎ方、Claude Code に覚えさせた置き場所のルールをまとめます。
/code-review を強度なしで打ったら、1か月前に別のプロジェクトで指定した xhigh で動いていました。前回の値は ~/.claude.json に全プロジェクト共通で残ります。同じ記事のレビューを xhigh と medium で3回動かし、時間・トークン・ツールの使い方・指摘を比べました。
claude -p に --json-schema を付けると、出力がスキーマで検証され、違反は AI に差し戻されて直されます。7種類の制約でわざと違反させると、AI が途中で諦めた場合は structured_output が無いまま exit 0・success で終わりました。試行回数の上限(既定5回)、検証されない format キーワード、呼び出し側で何を確かめるべきかをまとめます。
「npm 版だから遅いはず」「auto mode によく止められている」「通信料はかかっていないはず」。Claude Code と一緒に個人開発をしていて、思い込みや推測が外れ、数えたり測ったりして初めて分かったことを8件集めました。自分の推測、確かめたつもり、AI の推測の3種類に分けて、どう確かめたかをまとめます。
Claude Code の auto mode が拒否した操作を、会話ログから1か月分集計しました。2.2万回のツール呼び出しのうち止められたのは64件。半分近くは本番デプロイで、読むだけの grep が止められた例もありました。公式ドキュメントと照らし合わせて分かった、許可リスト(permissions.allow)が効く・効かない条件もまとめます。
個人開発で使っている GCP の全プロジェクトを、Claude Code と一緒に横断して見直しました。gcloud での調査、ストレージの掃除、通信料の削減、そして CUD の二重契約という失敗まで。AI に任せられたこと・人間がやる必要があったことを整理します。
Claude Code の会話ログは既定で30日で削除され、長い会話は compact で要約されます。1か月分のログを数えると、3割のセッションで compact が起きていました。compact のあとに何が残り、何が落ちるのかを公式ドキュメントで確かめ、CLAUDE.md・auto memory・リポジトリのドキュメントの使い分けをまとめます。
新しいモデルがすぐ使えないのは npm 版のせいだと思い、Claude Code をネイティブ版に移行しました。ところが公式ドキュメントでは npm 版も中身は同じで、自動更新もあります。claude doctor で調べると、自動更新を止めていたのは自分で入れた環境変数でした。npm 版の残りの消し方と合わせてまとめます。
コード進行アプリのキーワードボタンが本当に効いているのかを確かめるため、Claude Code の `claude -p` で930件を生成し、プログラムで採点しました。API キーを使わない生成のしかた、本番に近づけるためのオプション、Windows での落とし穴、AI に採点させない集計の考え方をまとめます。
Claude Code のサブエージェントに任せた作業の結果が、親に届かなかったことがありました。家で3並列・入れ子の実験をして、結果がどの順で何として届くのかを確かめると、受け渡しは正しく動いていました。代わりに、サブエージェントが自分の状況を間違って説明する場面に出会いました。ログ(subagents/*.jsonl と meta.json)から結果を回収する方法もまとめます。
毎日の個人開発で使っている Claude Code の設定を一通り紹介します。settings.json の permissions・hooks・モデル設定、グローバル CLAUDE.md に書いているルール、キー割り当てとプラグインまで、何をなぜそう設定しているかをまとめました。
キーを打つたびにメカニカルキーボードの音を鳴らす Windows アプリ TaktKey の音づくりで、Claude Code に合成パラメータを大量に出させました。合成だけ・自分で録音・フリー素材の加工と試した順に、効いた処理と、最後まで人の耳に残った判断をまとめます。8音色の試聴つきです。
2026年9月に公開された Qwen-Image-2.1 を、Claude Code に調べてもらいながら VRAM 12GB の RTX 5070 で動かしました。OOM を3回踏んだ回避策と、普段使っている NetaYume Lumina と同じプロンプト・同じ seed で描き比べた結果を紹介します。
Claude Code に任せて作業するにあたり、.env や credentials を読ませないよう settings.json の permissions.deny を設定しています。実際の設定と、Bash コマンドのパターン指定ではすり抜けが防ぎきれない理由、ほかに重ねている対策をまとめます。
Claude Code が実行した git clean で .env やデータが消えたのをきっかけに、PreToolUse フックで危険な git コマンドをブロックするようにしました。設定とスクリプト、文字列マッチならではの限界をまとめます。
Claude Code で Haiku・Sonnet・Opus をどう使い分けているか、グローバル CLAUDE.md に書いている判断表をそのまま紹介します。Opus 5.5 が速くなりトークン消費も減ったことで、以前よりかなり Opus 寄りに変えました。
Claude Code の statusline に、5時間・7日の利用上限の使用率とリセットまでの残り時間、コンテキストの使用率、モデル名を表示しています。Node.js で書いたスクリプトの全文と、表示している項目を選んだ理由を紹介します。
Windows で Claude Code を毎日使っていて実際に踏んだハマりどころを4つまとめました。Bash ツールの正体が Git Bash であること、ヒアドキュメントの崩れ、CRLF、止めたはずの子プロセスが残る問題と、それぞれ CLAUDE.md にどう書いて防いでいるかを紹介します。
Claude Code を Enter で改行・Ctrl+Enter(Mac は Cmd+Enter)で送信にする設定。Windows Terminal と iTerm2 の両方で、ターミナル側と Claude Code 側に必要な設定とハマりどころをまとめました。
Windows + Git Bash 環境で Claude Code の statusLine が空白になる問題。原因はスクリプトのロジックではなく pwsh.exe の起動の遅さで、完了前に次の更新が来て実行がキャンセルされていました。Node.js に移植して 1411ms → 143ms に短縮し、表示が安定しました。
Claude Code で使うモデルのバージョンを固定する方法。/model・起動フラグ・環境変数・settings.json の優先順位と、Default への逃げ道も塞ぐ完全固定の設定をまとめました。