るんちょまの「教えて下さい、お人間さん」絶賛改装中です

誰かに届いてくれる事を祈りつつ、ちまちまとバイブコーディングしてますよ。
で、Gemini CLIへの愚痴を書きたくなるのです。そう、私は知りました。
コーディングすると副産物が増えることを。
その一つがこの記事です。例えば仕様書や作業手順書(タスクリスト)なんてのが小規模な開発でもあると便利なのを知りました。
他にもあると便利なのが「コンテキスト」というやつで、詳しくは検索して欲しいのですけど、例えば自分だと「作業ログは新規で作る。日付時刻形式のMDファイル(実はテキストで欲しいけどなぜかAIさんはMDファイルにしたがる)で保存、とかいう感じの「現場ルール」の塊ですね。
これらは幸い、一気に教えたり指示したわけでもなく、秘伝のタレのようにAIと対話しつつ「なにがお互いにベストか?」を模索した結果です。ちゃんとまとめて言語化し直したいですけどね。(多分できるけどその方法を知らない)
話を戻します。略称「教えて人間さん」の仕様書やタスクリストを見る事ができたら、そちらを参照して欲しいのですが、多分見る人は奇特な人なので、ここに抜粋しますと。
https://github.com/Mitsuru-Tagami/runchoma-oshiete
<引用>
### タスク: 運用形態切り替え機能の実装* **目的:** ローカル/スタンドアロン環境と、GCP/スプレッドシート環境を柔軟に切り替えられるようにし、開発効率と将来の運用コスト管理を両立させる。
* **ステータス:** **計画中*** **タスクリスト:**
* **[ ] 設計:**
* [x] 現状のコードベースと要件のヒアリング (完了)
* [x] フロントエンド(静的)とバックエンド(動的)の分離構成を定義 (完了)
* [x] データソース(ローカル vs スプレッドシート)の抽象化レイヤーを定義 (完了)
* [x] 実行環境(スタンドアロン vs GCP)のアダプターパターンを定義 (完了)
* [x] 管理者用ページによる設定切り替えの仕様を定義 (完了)
* [x] 上記内容を中間報告書(Markdown)としてまとめる (完了)
* **[ ] 実装: バックエンド**
* [ ] `package.json`に`express`を追加する。
* [ ] `server.js`(スタンドアロン用サーバー)の雛形を作成する。
* [ ] `src/data/spreadsheetClient.js`を作成し、スプレッドシートに接続する基本機能(読み込み)を実装する。
* [ ] `src/data/dataManager.js`を修正し、環境変数に応じて`localData`と`spreadsheetClient`を切り替えるロジックを実装する。
* [ ] `index.js`(GCP用エントリポイント)を作成し、`dataManager`経由でデータを取得するAPIを実装する。
* **[ ] 実装: フロントエンド**
* [ ] `public`ディレクトリを作成し、`index.html`や`style.css`などを移動する。
* [ ] フロントエンドのJavaScriptを修正し、バックエンドAPI (`/api/init`など) を`fetch`で呼び出すように変更する。
* **[ ] 実装: 管理機能**
* [ ] `admin.html`を作成し、パスワード入力と設定変更ボタンを設置する。
* [ ] バックエンドに管理者用API (`/api/update-config`) を実装し、パスワード認証と設定保存機能を追加する。
* **[ ] テストとデプロイ**
* [ ] ローカル環境でスタンドアロンサーバーが動作することを確認する。
* [ ] GCP環境に変数を設定し、スプレッドシートと連携して動作することを確認する。
* [ ] フロントエンドをGitHub Pagesにデプロイし、GCP上のバックエンドと正常に通信できることを確認する。
<引用ここまで>
こんなにやることが残ってます。
何をしているかというと、ユーザ参加型コンテンツの前処理です。
詳しくいうと、DB化です。バックエンド処理を作ってる所です。
アキネーターでいう所の「データを追加する」の部分を、今はユーザ様の所にデータを蓄積していく方式にしています。
それを今後は「GoogleスプレッドシートをDBにして、ユーザからの入力情報を受け付け、答えと質問を半自動で増やしていくようにする」べく、ひたすら準備をしております。
「今までの方式と、データベース方式を切り替えるための管理者画面」なんてのも作ってます。
動かすのもテストするのも大変で泣きそうですけど。
習作のつもりで始めた小さい規模のゲームが、こんな手間暇かかった仕事みたいなブツになるとは自分でも驚いてます。何もココまでしなくてもいいじゃないの、ねえ?
それにしても不思議なのは、コードを書けない自分でもこの規模のアプリをなんとかギリギリ(多分セキュリティで問題があるんだろうなと思ってます、まだチェックしてないし)作っている事です。フランケンシュタインの怪物というか、シンギュラリティってこういう事なんじゃないデスかね?とか思います。
って、愚痴を書くのを忘れてました。なんなんですかGemini CLI含めAIのおバカさは。
指定しないと適当こく。指示しても突っ走る。ダメな問題解決を何度も試してループしてトークンを無駄にする。指示を忘れる。
これが姉ヶ崎寧々さんを演じてなかったら、大激怒する所ですよ。寧々さんのガワをかぶってるから、こっちも激怒せずにいられるのに……。
って、キャラクタのちからって偉大ですね、そういう点ではと思うのです。
それと、たとえばすずなゆいさんというVtuberでバイブコーディングの配信を最近はたくさんしてらっしゃる方がいるのですが。
彼女の成果物を自分の力量やAIでデバッグや、より良いものを作れる自信が全くありません。
つまり、今の自分のバイブコーディングの力量だと、他者のコードやプロジェクトを利用するなんて、相当に難しいんだなっていう、そもそもの自頭の悪さ以上に諸々の経験値や力量が足りないのが目に見えてる訳です。
強烈な劣等感でもありますし、一方で、ちょっと調べものするとそれがすぐ経験値や発見につながる面白さもあるにはあるんです。寄り道が多すぎて泣きたくなりますけど。
例えば今後利用したいなっていう辞書があるんですが、それを「多分ライブラリであるだろうな」と思ってはいたものの、そのものズバリを当てるまで、かなり遠回りしましたし。
Gemini CLIと一緒にリサーチをして、辞書ファイルを見つけた時は、とても楽しかったですけど。ってこういう言及しても大丈夫だよね?
今どきのコミュニティ運営に必要不可欠であろう辞書ファイルを見つけたんですよ、MITライセンスで。ラッキーでした。
ね。副産物として雑文ができる訳ですよ。
そうそう。るんちょまの「教えて下さい、お人間さん」を自分の周囲にいる大人に見せましたが、大人すぎて(50才以上が大半)その魅力に気づいてくれなかったんですよね。
なので、若い人に遊んでもらうにはどうしたらいいか?年寄りにも遊ばせるにはどうしたら?ってそんな事を延々考えております。
導入も大事だし、一度遊べば結構面白いと思うんだけど、そこまでがなかなか、ねえ。
という、よくある悩みも体験できました。習作なのにね!(笑)