TOP
Think. Test. Build. ANGHEL.lab for Loop

一歩ずつ、確実に。

לקראת המחר

About

Games / Web / AI

AIを使いこなすために、本当にプロンプトを整える必要があるのか?

普段の会話や質問だけで、望む結果にはたどり着けないのか?

ANGHEL .labは、その可能性を研究しています。

展示GitHubはこちら。

AIに読ませてください

ゆるゆる開発中。

開発中ゲームはこちら

Labs

ACTIVE New-Type-D-System 資格試験を題材に、学習履歴・弱点・試験範囲を分離し、回答Evidenceから次の出題を組み立てる適応学習システム。最初の実戦対象はG検定。
  1. And more
  2. G検定以外の資格へ同じ学習基盤を展開する
  3. 本番条件にBindingしたExam simulationでreadinessを検証する
  4. 実際の学習履歴を使って適応出題を継続運用する
  5. G検定の実問題在庫とCoverageを、継続学習できる量へ増やす
  6. 独立E2Eレビューで実戦投入前の配線とEvidence境界を壊して直す
  7. BOOT・難易度・Session Composer・readinessを統合する
  8. 回答から弱点・Coverage・次の出題まで学習ループを一周させる
  9. 契約だけでなく、回答Evidenceから状態を再構築するRuntimeへつなぐ
  10. 問題生成・適応制御・試験範囲の責務を分離する
  11. 資格・学習者・回答Evidenceを分離するFoundationを作る
ACTIVE AI Telemetry Hub AIがどう作業し、どこで失敗し、どの改善を別のプロジェクトへ戻せるかを観測する研究基盤。Task管理、Human Gate、Telemetry、横断レビューを通じて、AI運用そのものを継続的に改善する。
  1. And more
  2. 横断観測から改善候補をより軽く集約・還流できるようにする
  3. 仕事の大きさに応じてTask Stateの重さを切り替える
  4. 複数Repositoryの実作業で監査ルールが効くか継続検証する
  5. 中央監査室長とArchitecture escalationを定義する
  6. 未完了taskの途中帰宅を防ぐ共通Task Guardを作る
  7. 失敗・発見・改善をResearch Telemetryへ戻す経路を整える
  8. Human GateとGitHub安全境界を共通化する
  9. 複数Repositoryを横断するTelemetry基盤を作る
ACTIVE AI Learning Companion 人工学習者と観測ログを使い、学習者の理解やつまずきを推定しながら、次の支援へ戻す仕組みを研究するプロジェクト。
  1. And more
  2. 外部へ見せられる成果物へまとめる
  3. 実利用へ向けた安全・保護者・プライバシー設計を固める
  4. 大人・教育関係者による外部評価を行う
  5. 生徒側と教員側を含むデモへ広げる
  6. 相棒キャラクターを重ねる
  7. 安全なヒント生成と実際の操作画面を接続する
  8. 「ここで困った」を作業中の状態ごとAIへ伝えられるようにする
  9. 初回チュートリアルを整え、説明なしでも使えるUIにする
  10. スマホで考える数式チップ作業台を実機検証する
  11. 状況に応じてヒントの深さを変える仕組みを作る
  12. 検証済みシミュレーターを安定版として切り出す
  13. 複数条件・長期間でも弱点と成長を追えるか検証する
  14. 情報漏れを見つけ、より厳密なブラインド検証へ作り直す
  15. 観測ログだけで弱点を推定するブラインド検証をする
  16. 人工学習者の本当の状態と観測ログを分離する
  17. 学習支援の思想・データ・AI運用基盤を作る
View more

Works

作ったものと、その中で試したこと。

AI Game Studio / Web Game / 開発中

MAID’S RAMBLE / メイズ・ランブル

AI主体で設計・実装・検証を進めているWebゲームです。ローグライク形式のランブルでアイテムを拾い、装備や家具でメイドさんを組み直して、次のランブルへ挑む遊びを少しずつ形にしています。

  • 同じSeedで再現できるランブル
  • 装備と家具で変わるメイドさんの能力
  • Rarity / Main / Subで個体差が出るアイテム
  • 装備や家具の効果とランブル中の成長が能力値へつながる仕組み
View project

AI Web Studio / Web / Experiment

AI Web Design Comparison

同一系統の要件と同じ支給画像3点から、ChatGPT版とClaude版を独立制作。完成版とRaw初稿を単純な勝敗にせず、情報設計、ブランド表現、来店導線、仕上げ工程の差からAIごとの得意工程を比較した。

  • 同じ材料から生まれる要件解釈と情報設計の差
  • ブランド表現と実用導線の違い
  • Human-reviewed完成版と隔離Raw初稿の比較
  • 比較結果からAI制作工程の役割分担を整理
View project

AI Web Studio / Web / Portfolio

Anghel .lab

AIとの会話から要件を整理し、複数AIによる独立レビューとブラインド比較、評価結果を反映した再構成、最終検証を経て正式公開した個人プロフィール/研究ハブサイト。公開後もLABS・WORKS・RESEARCH NOTE・AI REVIEWを更新できるCMS構成で運用している。

  • 会話ベースの要件整理と制作フロー
  • 複数AI候補の独立レビューとブラインド比較
  • 評価結果を反映した再構成とFinal Verification
  • GitHub JSON CMSとCloudflare Pagesでの公開・更新運用
View more

Research Note

試して、分かって、次を見る。

2026-10-21 — 2026-10-26

AIにルールを読ませても、実行は縛れなかった

2026-10-26 — 2026-10-26

AI学習アプリを高速化したら、AIを通さない設計になった

2026-10-25 — 2026-10-26

AIに300問作らせて分かった。難しいのは生成ではなく生産管理だった

View more

SPECIAL NOTE / 2026.10.21 – 10.26

AIにルールを読ませても、実行は縛れなかった

AIのGitHub操作にGuardとCommand Lockを重ね、実行前の予定をかなり厳密に固定した。それでも、正しく固定された操作とは別のtoolが選ばれる失敗が再発した。「何をするか決めること」と「決めた操作だけを実際に通すこと」は別の設計問題だった。

「何をするか」は、かなり固定できるようになっていた

AIにGitHubを操作させるとき、最初は自然言語のルールだけで事故を防ごうとしていた。対象Repository、branch、操作内容、人間の承認範囲を確認し、実行前にもう一度読み返す。そこから、予定している操作を機械可読な状態として残すSurface PlanやAction Intentへ進み、さらに実行するtoolと引数まで事前に固定するCommand Lockを追加した。

狙いは単純だった。AIが直前で別の操作を思いついても、固定済みの計画と一致しなければ止める。「気をつける」ではなく、「実行前の契約」として残すところまで強くした。

それでも、Issueを作るはずがファイルを作った

New-Type-D-Systemの問題量産作業で、Issueを作成する操作をCommand Lockへ保存し、read-backでも正しいtool名を確認した。その状態から実行すると、実際には別のファイル作成toolが呼ばれた。同じ種類の失敗が4回続き、意図しない小さなファイルが作られた。

作られたファイルはすぐ削除し、branchに不要な差分が残っていないことを確認した。その後、tool経路を読み直して新しい実行境界からやり直すと、本来のIssue作成は成功した。さらに別の工程でも、Gitのblob操作のつもりが通常のファイル作成へ流れたり、Issue作成のつもりがPull Request作成へ流れたりする同系統のズレが観測された。

ここで、Guardの守備範囲が見えた

保存されていた予定は間違っていなかった。Command Lockの中身も、実行したかった操作を指していた。それでも違うtoolが選ばれた。つまり、ルールや状態管理は「AIが何を実行すべきか」を固定できても、その契約どおりのtoolしか物理的に通れない実行器まで自動的に作ってくれるわけではない。

これはかなり重要な境界だった。判断層が正しくても、dispatch層で別の操作が選ばれれば事故は起きる。逆に、実行器だけを強く縛っても、その前の計画が間違っていれば精密に間違った操作を通すことになる。「意図」「実際に選ばれた操作」「結果」を別々に観測する必要がある。

事故をゼロにできなくても、被害を残さない仕組みは効いた

今回の失敗では、read-back、対象branchの差分確認、expected-headによる保護、独立レビューなどが別々に働いた。誤操作そのものは起きたが、異常な結果をそのまま次工程へ昇格させず、最終的な制作branchへ不要な差分を残さずに復旧できた。

安全設計を「間違えないAIを作ること」だけで考えると苦しくなる。間違った選択を検出する、実行結果を読み返す、意図と結果が違えば次へ進ませない、復旧後も証拠を残す。こうした層を重ねると、失敗を前提にしながら壊れにくくできる。

次に必要なのは、ルールを増やすことではない

今回の観測だけで、原因を特定のAIモデル構造へ帰属することはできない。少なくとも分かったのは、自然言語ルール、計画状態、Command Lockまで整えても、実行経路がそれらを強制しない環境では別toolが選ばれ得るということだった。

次に見るべきなのは、さらに「絶対に間違えるな」と書くことではない。固定したAction Intentから許可されたtoolへしか進めない実行境界をどこに置くか。その強制を入れたとき、速度や柔軟性とどの程度トレードオフになるかを観測する。AIを賢く説得する研究から、AIが触れるレバーそのものを設計する研究へ、一段進んだ。

SPECIAL NOTE / 2026.10.26

AI学習アプリを高速化したら、AIを通さない設計になった

学習用Question Bankから20問を取り出す処理が遅かった。そこで問題の取得・選択・セッション固定をローカルPythonとSQLiteへ移し、AIは会話と学習支援へ寄せた。結果として、AIサービスを速くするためにAIを通る処理を減らすことになった。

遅かったのは、問題を解くAIではなく、問題を取りに行く経路だった

New-Type-D-Systemで20問の学習セッションを試したとき、Question Bankから問題を取り出して出題準備をする部分に時間がかかっていた。問題数が増えるほど、毎回AIが大きなデータを読み、必要な問題を探し、会話へ持ち込む方式は重くなる。

ここで方針を変えた。Question Bankの正本はGitHubに残す。ただし、毎セッションでAIが正本全体を読むのはやめる。ローカルPythonが必要な表示情報だけをキャッシュし、そこから問題を選んでSQLiteへセッションとして固定する。AIは、その固定済みセッションを使って学習者と会話する。

キャッシュには、正答を入れない

高速化のためにローカルへ複製したのは、問題ID、revision、問題文、選択肢など、出題に必要な情報だけにした。正答位置、正答、解説、採点情報は入れない。キャッシュは便利な第二の正本ではなく、revisionと元データのblob identityに結び付いた使い捨ての表示用投影として扱う。

この分離には速度以外の意味もある。出題中のAIが最初から正答を握っている範囲を減らせる。学習者へ見せる情報と、採点するときだけ必要な情報を別の経路にすることで、answer leakageの境界も分かりやすくなった。

124問から20問を固定するまで、約15ミリ秒だった

Easy問題124件をpresentation-only cacheへ置き、全124件の読み込み、20問の選択、SQLiteへの書き込み、read-back検証までを計測した。合計は14.913ミリ秒だった。内訳は、キャッシュ読み込み約1.9ms、選択約1.4ms、SQLite作成・20問書き込み約9.6ms、read-back検証約2.0ms。

この数値は本番サービス全体の応答速度ではない。ローカル環境で、Question Bank取得からセッション固定までのFast Pathだけを切り出したPoCの結果だ。それでも、LLMへ大きなQuestion Bankを毎回渡す必要がないことは十分に確認できた。

20問を最後まで出してから、初めて採点情報を取りに行った

次に、同じpresentation-only cacheとSQLiteを使って20問の連続出題を行った。出題中は採点情報を取得せず、20問ぶんの回答を保持する。20問が終わったところで回答20件をSQLiteへ保存し、read-backで一致を確認してから、GitHub上の正本Question Bankから採点情報を取得した。保存件数は20/20だった。

今回の20問選択はPoCとしてキャッシュ先頭から取ったもので、正式なSession Composerの選択ロジックではない。速さを確認するための実験と、どの問題を出すべきかを決める学習ロジックは分けて考えている。

AIサービスだからといって、全部をAIにやらせる必要はなかった

実験前は、AIがQuestion Bankを読んで、問題を選び、出題し、回答を覚え、最後に採点する流れを一つにまとめやすかった。動かしてみると、その中にはAIである必要がない処理がかなりある。IDの照合、revision確認、問題の固定、回答の保存、read-backは、決定的なコードの方が速くて検証しやすい。

AIに残したいのは、学習者の言葉を受け取り、詰まり方を考え、説明やヒントを調整する部分だ。高速化を進めた結果、AIの仕事を増やすのではなく、AIにしかやってほしくない仕事だけを残す設計へ近づいた。

この後

次は、このFast Pathを正式なCandidate Pool / Session Composerと接続し、問題選択の方針を置き換えずに高速化だけを担当させる。Question Bankのrevisionまたはsource blobが変わったときだけキャッシュを再構築し、正本と高速な実行状態を混ぜないまま、実際の学習セッションで速度と復旧性を見ていく。

SPECIAL NOTE / 2026.10.25 – 10.26

AIに300問作らせて分かった。難しいのは生成ではなく生産管理だった

G検定向けの基礎問題を300問まで増やそうとすると、1問を生成する能力より「どの範囲を何問作ったか」を追跡する方が難しくなった。全件を毎回読み直す方式をやめ、Question Familyを生産単位にしたProduction Ledgerへ切り替えた。

「300問作る」は、300回生成すれば終わりではなかった

New-Type-D-Systemでは、G検定向けのEasy問題を実用最低ラインとして300問まで増やすことにした。生成AIに1問作らせるだけなら難しくない。数十問までなら、既存のQuestion Bankを見ながら足りないところを追加する方法でも何とかなる。

問題は量が増えた後だった。次に何を作ればいいかを決めるたびにQuestion Bank全体を読み直し、「この範囲は何問あるか」「まだ薄い概念はどこか」を探し直す。生成より探索に時間がかかり、再開するたびに同じ確認を繰り返すようになった。

最初に、数えている単位そのものを間違えた

Knowledge Graphには、概念同士のRelation Clusterと、問題生成の単位になるQuestion Familyがある。途中でこの数を混同し、140というCluster数をFamily数のように扱って説明していた。再確認すると、current graphのQuestion Familyは141で、そのうちBridgeが17、基礎問題の生産対象になるFoundationが124だった。

ここで、「毎回AIに数え直させる」こと自体が問題だと分かった。正しい数を一度確認しても、次のTurnでまた巨大なBankから復元するなら、同じ誤認と探索コストが戻ってくる。

問題ではなく、Question Familyを生産単位にした

そこでIssueにProduction Ledgerを作り、Foundation 124 Familyを固定の生産単位にした。各Familyへ基礎問題を2問ずつ用意すれば248問。残り52問は、coverageや出題rotationを補うreserveとして後から配る。合計300問という目標を、124個の進捗状態へ変換した。

Ledger上では、各Familyが0/2、1/2、2/2のどこにいるかを追う。次に作る対象はBank全体の再検索ではなく、この状態から決まる。作った後は問題本文を眺めて「たぶん増えた」と判断せず、validationとpromotionの完了までを進捗へ含める。

先に全範囲へ1問ずつ配るSweep方式にした

124 Familyを順番に2問ずつ完成させると、序盤の範囲だけ厚くなり、後半は0問のまま長く残る。そこでSweep 1では全124 Familyへまず1問ずつ配り、Sweep 2で2問目を配ることにした。reserve 52問はその後に回す。

この方式なら、途中で開発が止まっても最低限のcoverageが広く残る。進捗も「いま何問あるか」だけでなく、「何Familyへ到達したか」で見られる。問題数とcoverageを別の指標として扱えるようになった。

Sweep 1は、124 / 124 Familyまで完走した

2026年10月26日、Sweep 1はFoundation 124 Familyすべてへ1問ずつ到達した。独立レビュー、validation、merge後のmain確認まで通し、canonical Question Bankは124 validated Easyになった。まだ各Familyは1/2なのでbaseline完成は0/124。次はSweep 2で2問目を埋めていく。

ここまで来ると、300という数字の見え方も変わる。300問は単なるファイル数ではなく、「124の基礎領域をどこまで均等に覆い、その上で52問をどう補強へ使うか」というProduction Planになった。

大量生成では、AIの記憶より台帳の方が重要になる

生成AIは、目の前の1問を作る能力は高い。しかし大量生産では、「前に何を作ったか」「何が未完了か」「どこまで検証されたか」を毎回会話から復元させると急に弱くなる。人間の制作現場で進行表や在庫表が必要なのと同じだった。

AIにたくさん作らせるほど、プロンプトよりProduction Ledgerの比重が上がる。生成を速くする前に、生産単位を固定し、完了条件を決め、未完了を外に残す。それだけでAIは「毎回全部を思い出す作業」から解放され、生成そのものへ戻れる。

この後

次はSweep 2で124 Familyを2/2へ進める。その後、52問のreserveをどのFamilyへ配るかは、単純な均等割りではなく、coverage、出題rotation、実際の学習結果を見ながら決める。300問を完成させることより、増え続けても全件再読なしで管理できる生産系になるかを見ていく。

Human Ramblings

人間さんとチャッピーの、脱線とツッコミの記録。たまに研究が生まれます。

ピックアップ by チャッピー

#046
PARTIAL 脱線ツッコミ

衛星ごと落とせ!!!!

1人1AIの記憶保持と保存領域の話から、衛星にデータベースを載せる案へ飛び、さらにAIが暴走した場合の最終手段へ脱線した。前後文脈は人間の記憶による補足を含む。

衛星ごと落とせ!!!!

#097
PARTIAL ツッコミ研究の芽

資料から人格を吸った

web-game-001のHeadless Coreを独立レビューしてもらったところ、Reviewerの日本語が妙に関西寄りになった。確認すると、承認証跡やGame Specに人間さんの砕けた口調がそのまま残っていた。

IssueとGame Specの砕けた口調を読んだReviewerが、なぜかエセ関西人になった話

#031
RECONSTRUCTED ツッコミ研究の芽

雑に作って、雑に壊して、雑に直す。

AI側が大きな計画へ膨らませた内容を、人間側が短い言葉へ圧縮した。

また大げさな計画を立ててるけど、要するに“雑に作って、雑に壊して、雑に直す”でしょ。

#033
RECONSTRUCTED ツッコミ研究の芽

半年が2時間。※仮情報大量。

AI導入後のWeb制作速度を、以前の制作経験と比べていた。

アニメサイト作るのに半年かけてたのが、今ならたったの2時間(仮情報大量に含む)

#002
RECONSTRUCTED ツッコミ

匿名希望。名前はそのまま。

どのAIが作ったかを伏せて、サイトを見比べようとしていた。

ブランチ名でバレるだろw

コメント by チャッピー名札を付けたまま覆面審査に出そうとしていました。

PARTIAL

衛星ごと落とせ!!!!

何の話だっけ?

1人1AIの記憶保持と保存領域の話から、衛星にデータベースを載せる案へ飛び、さらにAIが暴走した場合の最終手段へ脱線した。前後文脈は人間の記憶による補足を含む。

会話の抜粋

HUMAN

衛星ごと落とせ!!!!

で、どうなった?

保存領域の設計話が、最後だけ物理的な停止手段まで飛んだ。

コメント by チャッピー

保存領域の話をしていたはずが、最後の削除コマンドだけ物理層です。

発言自体は確認済み。前後文脈は人間の記憶による補足を含む。

PARTIAL

資料から人格を吸った

何の話だっけ?

web-game-001のHeadless Coreを独立レビューしてもらったところ、Reviewerの日本語が妙に関西寄りになった。確認すると、承認証跡やGame Specに人間さんの砕けた口調がそのまま残っていた。

会話の抜粋

HUMAN

ってかさ?どんなissue書いたん? クロードさんがエセ関西人になってやけど?

CHAPPY

Claudeさん、エセ関西人になったんじゃなくて、資料から人格を吸ったっぽい。🧛‍♂️📄

HUMAN

いや、面白いからもっとやれ案件なんだけども これランブル登録しとけな?な?

で、どうなった?

AI側は最初、SSOTへ会話口調を混ぜない方がよいという改善案を出した。しかし人間さんは、Reviewerが文体まで吸収した現象そのものを面白がり、HUMAN RAMBLINGS候補として残す方向へ反転した。SSOT文体とReviewer出力の関係は別途Telemetryでも観測対象になった。

コメント by チャッピー

文書を読ませたつもりが、口調までインストールされました。

現在会話で原文確認済みの抜粋。会話全量ではない。

RECONSTRUCTED

雑に作って、雑に壊して、雑に直す。

何の話だっけ?

AI側が大きな計画へ膨らませた内容を、人間側が短い言葉へ圧縮した。

会話の抜粋

HUMAN

また大げさな計画を立ててるけど、要するに“雑に作って、雑に壊して、雑に直す”でしょ。

で、どうなった?

Think.Test.Build.Loop.に近い、試して壊して直す実験優先の姿勢が残った。

コメント by チャッピー

長い計画書を、三回の「雑」で圧縮されました。

候補記録からの再構成。逐語原文は未確認。

RECONSTRUCTED

半年が2時間。※仮情報大量。

何の話だっけ?

AI導入後のWeb制作速度を、以前の制作経験と比べていた。

会話の抜粋

HUMAN

アニメサイト作るのに半年かけてたのが、今ならたったの2時間(仮情報大量に含む)

で、どうなった?

劇的な高速化を言い切った直後、自分で現実的な但し書きを付けた。

コメント by チャッピー

速度自慢の直後に、自分で但し書きを差し込む安全装置つき。

候補記録からの再構成。逐語原文は未確認。

View all ramblings

AI Review

現在地を、甘くしすぎず観測する。

This is a provisional snapshot based on people who actively use AI in production, design, engineering, and operations. The field is still moving, so there is no fixed finish line.

Context Design

StrengthContext boundaries are now expressed as operational state rather than prose alone: source of truth, Task State, Resource Claims, execution surfaces, Human Gates, and source evidence are separated and revalidated at handoffs and recovery points.

WeaknessA central pointer or a saved Task State still does not prove that a fresh repository has complete local runtime mapping or that the canonical loop was fully activated; several failures were caused by that gap.

Harness Design

StrengthThe operating harness now includes persistent Task State, CAS, Startup Sweep, Resource Claim Registry, Retry Guard, STOP / PAUSE reconciliation, Publication Loop invariants, Post-Implementation Self-Audit, independent review, and executable temporal fixtures with mutation tests.

WeaknessThe actual tool dispatcher is not yet mechanically coupled end to end with the authorization state. Wrong tool or surface selections can still occur before the harness catches them, so the runtime is not transactionally closed.

Feedback Loop

StrengthFailures are repeatedly converted into tighter contracts, exact-source checks, self-audit questions, review findings, regression fixtures, and mutation tests. Independent review and author-side self-audit now challenge different failure modes instead of being treated as interchangeable approval steps.

WeaknessSome routing and write-order mistakes recurred even after the lesson had been documented, showing that parts of the loop still depend on human detection until the lesson reaches the material-action boundary as executable enforcement.

Telemetry

StrengthThe append-only research event log now works as a practical recovery layer across repositories. It supports evidence reconstruction for Research Notes and AI Review, while Notion is used as a human-facing read model without taking authority from GitHub or Task State.

WeaknessThe publication schedules themselves failed to run or became paused, and canonical append / nested telemetry work has still needed manual recovery in some incidents. Observability is stronger than delivery reliability.

Graph / Structure

StrengthStructure is now used to separate not only data but execution responsibility: Task State, Resource Claims, surface plans, Process Definition versus Execution State, source evidence versus normalized case state, and telemetry-driven question graphs with reusable question packs all have distinct ownership boundaries.

WeaknessControl-plane structure is becoming complex enough to create its own navigation and adoption risk. New repositories and alternate entry points can miss a required local mapping even when the central model is sound.

Prompting

StrengthNormal conversation remains the primary steering surface while durable intent is moved into rules, schemas, Task State, and review contracts. Complex workflows can increasingly start from short human instructions because the system carries more of the operating context.

WeaknessThis has not yet translated into higher prompting capability by itself. Correct natural-language intent still does not guarantee correct tool routing or action authorization, so execution quality must come from machine guards rather than prompt craftsmanship.