B
PRODUCT NOTE / PRD
Bearise
場面(シーン)で、話せるように。
この文書は「何ができるか」ではなく、中止したプロダクトを、どこをどう変えて作り直したかを記録した開発ノートです。
TL;DR
ひとことで
Bearise は、場面(シーン)を単位に「その場面を英語で切り抜ける」を積み上げる英語学習アプリです。状況画像・前提・一人称ロールを提示し、理解 → 認識 → 産出 → 発話 → 定着の 5 段階を順に踏ませます。教材は事前に作って端末に持つため、通信なしで練習できます。
前身 Grizzlingo は「興味テキストから AI が都度生成する」設計で、v0.5 で開発を中止しました。Bearise はその2 つの死因を、機能追加ではなく構造の置き換えで潰すことだけを目的に作り直したものです。
Problem
解こうとしている症状
ターゲットの症状はひとつに定義している。
言いたいことが、その場で英語で組み立てられない。
原因は 2 つあり、どちらも同じ症状として現れる。材料がない(会話の型・語彙・その場の文法が出てこない=スキル)と、怖くて出せない(完璧主義・恥=心理)。この 2 つを別々に解こうとすると機能が膨らむため、「組み立てられない」という症状を直接解くことに一本化している。
Why Rebuilt
2 つの死因を、構造で潰す
Grizzlingo の中止理由は「作れなかった」ではなく「作れても学習方法として成立しにくい」だった(詳細は Grizzlingo の開発ノート)。Bearise はこの 2 点にだけ答えている。
fix 1 カリキュラムを担保するために、単位を「興味」から「場面」に変えた
- DECISION
- AI による都度生成をコア体験から外し、事前に作って人の目を通したシーンを配る形にした。ライブ AI は課金側の付加機能に降格。
- WHY / 仮説
- 「空港のチェックイン」で話す英文・文法・単語は有限に閉じる。閉じているから、難易度の階段と出す順序を設計できる。これは都度生成では原理的に担保できなかったもの。
- RESULT
- 20 シーンを事前生成+レビューして収録。音声も事前生成して端末に同梱したため、無料コア体験の限界費用がゼロになり、オフラインでも動くようになった。
fix 2 継続の駆動力を「興味」から「クリアと積み上げ」に変えた
- DECISION
- 興味ドリブンをやめ、シーンをノードとして並べた地図を継続の軸に据えた。1 つ切り抜けると次が開く。
- WHY / 仮説
- Grizzlingo で分かったのは「好きな話題でも作り続ければ飽きる」ということ。興味は初速にはなるが駆動力にならない。一方シーンには「終わり」があるので、完了感と前進の可視化が使える。
- RESULT
- 「海外旅行」ジャーニー(11 シーン)+雑談系シーンを地図に配置。進捗を「0/11 クリア」の形で常時提示する構成にした。
Core Loop
1 シーンを 5 段階で通す
いきなり「話してみましょう」とは言わない。低リスクな認識課題から始めて、産出・発話まで運ぶ。
「シンプルに・細かく・深く」の両立は漸進的開示で解く。1 周目は対象英文が言えればクリア。周回するごとに文法ポイント・語彙・言い換えを開いていく。1 シーンで全部を出さない。
Solution & Scope
やること / やらないこと
Decision Log
主要な意思決定ログ
listen 「聞く力」だけは、読んで逃げられない出題を別に作る
- DECISION
- 音を聞かないと答えが決まらない出題形式を足した。英文を画面に一切出さない。聞き直しには上限(2〜3 回)を置き、残りをボタンに数字で出す。使い切ってもボタンは消さず落とすだけにして、「文字で見る」は必ず生かす。
- WHY / 仮説
- これまでも相手のセリフは音声だけで流していたが、聞き取れなくても日本語の指示を読めば答えられた。だから「聞く」は練習にならず、通じなかった原因が語彙なのか耳なのか切り分けられない。読める逃げ道を塞ぐ代わりに、行き止まりも作らない。聞き直しを無制限にすると「分かるまで聞く」になるが、実際の会話で要るのは 1〜2 回で掴む力。
- RESULT
- 「文字で見る」の重みだけ聞き取り問題では最上位(お手本を見た)に上げた。産出の発話では聞いた文を読んでも答えは漏れないが、ここは問題そのものを読むことになるため。据え置くと「足場ゼロで解けた」扱いになり、次に出てくるのが遅れる。採点そのものは 1 行も変えずに済むデータの形にした。
slides 教科書の進捗を、レッスンではなくスライド 1 枚ごとに残す
- DECISION
- スライドの末尾に「このスライドは理解した」のスイッチを置き、下の点に足あとを出す。理解済は塗りつぶし、開いただけは細い輪、未着手は何も描かない。レッスン単位の「覚えた」は別の軸として残す。
- WHY / 仮説
- 1 レッスンは 12〜20 枚あるのに、進捗はレッスン単位の「覚えた」しか無かった。20 枚を 12 枚まで読んだ人が、一覧では 0 のまま見える。どちらか一方から他方を導かないのは、一括「覚えた」が「覚えた=true / 0 枚理解」という嘘の状態を作るため。未着手に枠を描かないのは、手つかずの並びが「0%」を突きつける帯になるから。
- RESULT
- スライドの鍵は見出しから作った。添字で持つと 1 枚差し込んだ瞬間に以降の記録がずれて別のスライドを指す ―「読んでいない枚が理解済みになっている」という壊れ方は、記録が消えるより気づきにくい。ついでに一括操作の取り消しが「全部外す」になっていた穴も塞いだ(前から自分で付けていたぶんまで消えていた)。
find 探す道は 1 本にして、画面を切り替えない
- DECISION
- 全画面のヘッダーから同じ横断検索(教科書+場面)を開く。シートを重ねるだけで画面は切り替えない。教科書の上には目次を置き、章名のリンクから同じ画面の中で送る。ヘッダーからは、しおり・覚えた・メモのアイコンを ⋮ に畳んだ。
- WHY / 仮説
- 検索は教科書タブにしかなく、しかも教科書の中だけを探すものだった。「あの言い方、どこで見たっけ」を場面から引けない。画面ごとに違う検索があると、押すまでどこを探しているのか分からない。目次を別画面に分けなかったのも同じ理由で、行き来のたびに読んでいた場所を見失う。
- RESULT
- 目次は最初 8 行を縦に並べたが、それだけで画面の 4 割を占め、開いた直後にレッスンが 1 枚も見えなくなったので折り返して 3 行に畳んだ。検索は当たったスライドへ直接開く(14 枚のレッスンの 1 枚目に落とすと結局そこから探すことになる)。実機の画面を見て、聞き取り問題の設問が背景の写真に埋もれて読めないことにも気づき、既存の「絵の上で読める面」に載せ替えた。
praise 4 択で「よくできた」を出せるようにする
- DECISION
- 声に出さずに終えた回の評価を、並べ替えと 4 択で分けた。4 択で 1 回で正解したときだけ最上位(great)を付ける。並べ替えは従来どおり「通じる形は作れた」止まりにする。
- WHY / 仮説
- 「問題を解いても褒められた気がしない」という申告から中を見たら、4 択は構造上、絶対に最上位にならない作りだった。「話していないのに『よく言えた』とは言えない」という発話練習のための判断が、声を出す余地のない 4 択にもそのまま掛かっていたため。教科書の問題は 10 問中 3 問が 4 択なので、全問 1 回で正解しても「完璧!」に一生届かない。
- RESULT
- 4 択の正解時に手ごたえ(画面フラッシュ・触覚)が返っていなかった穴も同時に塞いだ。元の設計原則は壊していない:判定を純関数に切り出し、「並べ替えは 1 回で正解でも ok 止まり」をテストで固定して、場面練習の契約が崩れないようにした。
medal 勲章は「正解数」ではなく「1 回で正解した数」で決める
- DECISION
- 教科書一覧のレッスンカードに金・銀・銅のメダルを出す。基準は問題 1 回分(10 問)のうち、1 回で正解した数のベスト。10/10 で金、8 割で銀、それ未満は銅、未挑戦は何も出さない。
- WHY / 仮説
- 素朴に「正解した数」を数えると意味を成さない。問題は正解するまで先へ進めない作り(外すと理由が出て選び直す)なので、とばしたぶん以外は全員が満点になり、勲章が何も区別しなくなる。すでに内部にあった「1 回で正解/やり直して正解/とばした」の区別を成績に昇格させた。
- RESULT
- 画面には「1 回で正解 8 / 10」と書き、何を数えたのかを隠さない。ベストだけ残す(下がらない)ので、2 周目にクリア済みをとばしても勲章は剥がれない ―「解くほど損」を作らないため。出題は毎回違う 10 問なので、「全問クリア=レッスン制覇」と誤読されないよう読み上げと副文に「1 回分のベスト」と明記した。
medal 勲章は出すが、収集ゲームにはしない
- DECISION
- メダルは各レッスンカードのいちばん下の行にだけ置いた。カテゴリ見出しや AppBar に「金メダル 3/7」のような集計は出さない。銅のラベルも「あまりできなかった」ではなく「チャレンジ済み」にした。
- WHY / 仮説
- このアプリはアンチペルソナに「ストリークやバッジを集めるのが目的の層」を置いている。集計を並べた瞬間に一覧が収集ゲームの計器盤になり、狙っていない層に最適化してしまう。銅の文言は一覧に居座り続けるので、見るたび責められる形にはしない(数字は併記するので情報は落ちない)。
- RESULT
- カード内の並びを「上ほど次にやること、下ほどこれまでの記録」に統一した。読む前から点数の話が目に入らない。学習状態(読んだか)と勲章(解けたか)は別の軸として並べ、統合しなかった ― 読まずに問題だけ解く人を表現できなくなるため。
naming Grizzlingo の名前を捨て、Bearise として出す
- DECISION
- プロダクト名を Bearise(
jp.nzw.bearise)に変更。リポジトリ名は grizzlingo のまま残置し、旧版は archive/v0.5-grizzlingo ブランチに保存した。
- WHY / 仮説
- 中身が「興味ドリブンの教材生成」から「場面ベースの産出練習」に変わり、旧名が指すコンセプトと一致しなくなったため。中止を公開済みの名前を引き継ぐと、何が変わったのかが伝わらない。
- RESULT
- 中止ノートは消さずに残し、そこから Bearise へ導線を張る形にした。「なぜ止め、なぜ作り直したか」が一本の線で読める。
strategy 「採点しない足場」路線を降り、段階カリキュラム路線へ舵を切る
- DECISION
- 旧戦略は「文法を体系的に教えない/採点しない」を越えたら死ぬ線としていた。Bearise ではこれを撤回し、段階的カリキュラム+任意フィードバックに変更した。
- WHY / 仮説
- 「採点しない」を守ると、死因①(カリキュラムを担保できない)が構造的に解けない。両立しないので、より致命的なほうを取った。
- RESULT
- 旧路線の良い部分(心理的安全)は課金設計で継承した。無料=採点されない反復/有料=任意の AI フィードバック。「いつ評価されるかは自分が決める」形にして、恐怖と課金導線を両立させた。
cost 無料層はサーバーの AI を一切叩かせない
- DECISION
- 無料で触れるのは事前生成のシーンとバンドル音声のみ。ライブ生成・AI フィードバック・AI 音声はすべて課金側に置いた。
- WHY / 仮説
- 個人開発で最初に死ぬのは原価。無料ユーザーが増えるほど赤字が増える構造だと、伸びること自体がリスクになる。
- RESULT
- 無料コア体験の限界費用がゼロになり、濫用の余地もなくなった。副次的にオフラインで動くという訴求も手に入った。
security API 保護を課金開始より前に入れる
- DECISION
- バックエンド 6 エンドポイントすべてに Firebase ID トークン検証と uid 単位の日次上限(既定 100/日)を入れた。AI を呼ぶ全経路で未サインインならサインインへ誘導する。
- WHY / 仮説
- 前身では
upgradeToPremium() をクライアントから Firestore に書いていて改ざん可能だった。課金を載せる前に塞がないと、公開直後に原価を持っていかれる。
- RESULT
- 本番で検証済み(無認証 → 422、不正トークン → 401、正規 → 200)。エンタイトルメントのサーバー検証はまだ残課題。
Milestones
これまでの歩み
未公開2026-08-16教科書を 40 → 49 レッスンに拡張(自分を説明する・聞き取る・掘り下げる質問)/場面に無料ジャーニー「自己紹介と質問」5 本/音を聞かないと解けない出題形式/スライド 1 枚ごとの「理解した」/全画面からの横断検索と教科書の目次
build 72026-08-12教科書を 27 → 40 レッスンに拡張(代名詞・接続詞・仮定法ほか)/全レッスンの例文を並べ替え可能な完全文に統一/問題クリア時の演出と一覧の勲章を追加
v1.0.02026-08Bearise として再出発/シーン 20 本と文法スライド図書館を実装/下タブを 教科書・ホーム・ドリル に再編
rebuild2026-08-01Scene Mode の PRD を策定/「採点しない足場」路線から段階カリキュラム路線へ変更
protect2026-07-05バックエンド API を Firebase 認証+日次上限で保護/TTS のブロッキングを解消
Roadmap / Open Questions
未解決のこと
- 1 シーンの原子単位は 3〜5 発話で妥当か。検証して調整する。
- 産出の採点は語重複の match-rate で足りるか。意味は正しいが語が違う応答をどう扱うか。
- 自由会話ロールプレイとの棲み分け。構造化シーンを入口、自由会話を応用として併存させる案が有力だが未決。
- エンタイトルメントのサーバー検証(前身から持ち越しの未対応事項)。
- 本当のリスクはリーチ。前身の検証で「身近に本気の対象ユーザーが 1 人しかいない」ことが分かっている。良い足場を作れるかより、この層に届けられるかが先に問われる。