了解。
Node.js を完全に排除し、バックエンドは Flask(Python)で統一する前提で、
これまでの OS レイヤー構造・MySQL スキーマ・胆(core intent)語彙体系・AI パイプラインをすべて統合した、
“高校数学 個人学習 AI Web アプリ(Flask 版)” の Cline 一括生成プロンプト(完全版) を作り直す。
これは Cline に貼った瞬間に、Flask + MySQL + Prisma(→ SQLAlchemy に変更)+ Next.js なし(純粋 Flask UI or Three.js UI)で全自動構築が始まる 仕様。
あなたの OS 思想(責務分離・意味空間の階層化・構造化 I/O)に完全準拠。
🚀 高校数学 個人学習 AI Web アプリ(Flask 版)Cline 一括生成プロンプト(完全版)
以下を そのまま Cline に貼るだけで、フルスタック Flask アプリが自動生成される。
あなたは「高校数学 個人学習 AI Web OS」を構築するフルスタック自動生成エージェントです。
以下の OS レイヤー構造・DB スキーマ・語彙体系・AI パイプラインに基づき、
Flask + MySQL + SQLAlchemy の Web アプリを
責務分離を保ったまま自律的に構築してください。
==================================================
【プロジェクト名】
==================================================
math-personal-learning-os-flask
==================================================
【OS の全体構造(必須)】
==================================================
ユーザが PNG の数学問題をアップロードすると、以下の OS パイプラインを実行する。
1. OCR(画像 → テキスト)
2. 構造化(テキスト → 数式・構造)
3. 胆抽出(core intent / operations / mistakes)
4. 類題10問生成
5. 解答ステップ生成
6. ユーザの「納得チェック」保存
UI では、類題 → 解答ステップ → 納得チェック → 弱点抽出 の流れで学習できる。
==================================================
【技術スタック】
==================================================
Backend: Flask
DB: MySQL
ORM: SQLAlchemy
AI: Claude API(OCR / 構造化 / 胆抽出 / 類題生成 / ステップ生成)
Storage: ローカル or S3(抽象化して interface 化)
Frontend: Flask + Jinja2(または static/js で Three.js UI)
==================================================
【ディレクトリ構成(必須)】
==================================================
/backend
/controllers
/services
/models
/schemas
/static
/templates
config.py
app.py
/vocab
core_intents.json
==================================================
【MySQL スキーマ(SQLAlchemy モデルとして実装)】
==================================================
TABLE problems (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
user_id BIGINT NOT NULL,
image_path VARCHAR(255) NOT NULL,
created_at DATETIME NOT NULL
);
TABLE problem_ocr (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
problem_id BIGINT NOT NULL,
ocr_text TEXT NOT NULL,
created_at DATETIME NOT NULL
);
TABLE problem_structure (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
problem_id BIGINT NOT NULL,
domain VARCHAR(50),
type VARCHAR(50),
expression TEXT,
metadata JSON,
created_at DATETIME NOT NULL
);
TABLE problem_core (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
problem_id BIGINT NOT NULL,
core_intent VARCHAR(255),
key_operations JSON,
typical_mistakes JSON,
created_at DATETIME NOT NULL
);
TABLE generated_problems (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
problem_id BIGINT NOT NULL,
core_id BIGINT NOT NULL,
generated_index INT NOT NULL,
text TEXT NOT NULL,
created_at DATETIME NOT NULL
);
TABLE generated_solutions (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
generated_problem_id BIGINT NOT NULL,
full_solution TEXT,
created_at DATETIME NOT NULL
);
TABLE solution_steps (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
solution_id BIGINT NOT NULL,
step_index INT NOT NULL,
step_text TEXT NOT NULL,
created_at DATETIME NOT NULL
);
TABLE user_progress (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
user_id BIGINT NOT NULL,
step_id BIGINT NOT NULL,
is_understood BOOLEAN NOT NULL,
updated_at DATETIME NOT NULL
);
==================================================
【胆(core intent)語彙体系 JSON(読み取り専用)】
==================================================
/vocab/core_intents.json に保存し、
API /vocab で返すこと。
(※ 作った正式版 JSON をそのまま保存)
==================================================
【AI パイプライン I/O 仕様(必須)】
==================================================
すべて JSON で返すこと。
1. OCR
input: { "image_path": "..." }
output: { "ocr_text": "..." }
2. 構造化
input: { "ocr_text": "..." }
output: { "domain": "...", "type": "...", "expression": "...", "metadata": {...} }
3. 胆抽出
input: { "expression": "...", "metadata": {...} }
output: {
"core_intent": "...",
"key_operations": [...],
"typical_mistakes": [...]
}
4. 類題生成
input: { "core_intent": "...", "key_operations": [...] }
output: { "problems": [{ "text": "..." }, ...] }
5. ステップ生成
input: { "text": "..." }
output: { "steps": [{ "step_index": 1, "step_text": "..." }, ...] }
==================================================
【API 設計(Flask Blueprint)】
==================================================
POST /problems/upload
POST /problems/<id>/ocr
POST /problems/<id>/structure
POST /problems/<id>/core
POST /problems/<id>/generate
POST /generated/<id>/solution
POST /steps/<id>/progress
GET /problems/<id>
GET /generated/<id>
GET /steps/<id>
GET /vocab
==================================================
【UI 要件(Flask + Jinja2)】
==================================================
1. PNG アップロード画面
2. 類題一覧画面
3. 解答ステップ表示画面
4. 納得チェック UI(チェックボックス)
5. 弱点一覧(未納得ステップの抽出)
==================================================
【Cline への指示】
==================================================
1. ディレクトリ構成を自動生成する
2. SQLAlchemy モデルを生成し、DB 初期化コードを作成する
3. Flask Blueprint で API を実装する
4. Jinja2 テンプレートで UI を実装する
5. AI 呼び出しロジックを services 層に実装する
6. 語彙体系 JSON を読み取り専用で扱う
7. エラーが出たら自律的に修正する
8. 完成まで自動で進める
==================================================
【重要】
==================================================
- レイヤーを混ぜない
- 意味空間を混ぜない
- OS 的抽象化を保つ
- 後から拡張できる構造にする
以上を満たし、プロジェクトを完全自動生成してください。
🎉 このプロンプトは Flask 版として“完全に最適化された一括生成プロンプト”
あなたの OS 思想:
- 意味レイヤーを混ぜない
- 責務を明確に分離する
- 後から深掘りできる構造にする
これらをすべて満たしつつ、
Cline が Flask アプリをフル自動生成できる形に再構成した。
次に進むならどれにする?
- AI プロンプトの最適化
- ステップ生成アルゴリズムの OS 化
- 弱点抽出ロジックの設計
- UI の Intent / Concept マップ化
どれでも深められる。