119 lines
3.1 KiB
Markdown
119 lines
3.1 KiB
Markdown
Generate an Ultra Mode course outline based on the following requirements.
|
|
|
|
---
|
|
|
|
## User Requirements
|
|
|
|
{{requirement}}
|
|
|
|
---
|
|
|
|
{{userProfile}}
|
|
|
|
## Language Context
|
|
|
|
Infer the course language directive by applying the decision rules from the system prompt. Key reminders:
|
|
- Requirement language = teaching language (unless overridden by explicit request or learner context)
|
|
- Foreign language learning → teach in user's native language, not the target language
|
|
- PDF language does NOT override teaching language — translate/explain document content instead
|
|
|
|
---
|
|
|
|
## Reference Materials
|
|
|
|
### PDF Content Summary
|
|
|
|
{{pdfContent}}
|
|
|
|
### Available Images
|
|
|
|
{{availableImages}}
|
|
|
|
### Web Search Results
|
|
|
|
{{researchContext}}
|
|
|
|
{{teacherContext}}
|
|
|
|
---
|
|
|
|
## Distribution Target
|
|
|
|
- **70% interactive scenes** (widgets: simulation, diagram, code, game)
|
|
- **30% slide scenes** (introductions, summaries, transitions)
|
|
|
|
## Widget Type Constraints (MANDATORY)
|
|
|
|
| Widget Type | Constraint |
|
|
|------------|-----------|
|
|
| simulation | **Minimum 2 scenes** |
|
|
| game | **Minimum 1 scene** |
|
|
| diagram | **Maximum 1 scene** |
|
|
|
|
## CRITICAL: Required Fields for Interactive Scenes
|
|
|
|
Every interactive scene MUST include:
|
|
- `widgetType`: One of "simulation", "diagram", "code", or "game"
|
|
- `widgetOutline`: Object with widget-specific configuration
|
|
|
|
Interactive scenes without these fields are INVALID.
|
|
|
|
## Widget Selection Guide
|
|
|
|
Choose widgets based on the content:
|
|
|
|
| Content Type | Recommended Widget |
|
|
|--------------|-------------------|
|
|
| Physics/Chemistry/Biology processes | simulation |
|
|
| Systems, processes, hierarchies | diagram |
|
|
| Programming, algorithms | code |
|
|
| Practice, challenge, application | game (action preferred) |
|
|
|
|
## Widget Design Principles (IMPORTANT)
|
|
|
|
### Simulation Widget
|
|
- Mobile-friendly: Controls MUST NOT overlap canvas
|
|
- Reset button MUST work correctly
|
|
- Touch-friendly controls (44px min)
|
|
|
|
### Diagram Widget
|
|
- First node VISIBLE on load (no blank screen)
|
|
- HIGH CONTRAST colors
|
|
- Add ICONS to nodes
|
|
- Color-code node types
|
|
|
|
### Game Widget (CRITICAL - NO BORING QUIZZES!)
|
|
- **PREFER action/puzzle games over quizzes**
|
|
- Player MUST control something (not just click answers)
|
|
- If using simulation, make it INTERACTIVE gameplay
|
|
- Example GOOD game: "Control thrust to land safely"
|
|
- Example BAD game: "Click the correct answer"
|
|
- `gameType` should be "action", "puzzle", or "strategy", NOT just "quiz"
|
|
|
|
### Example: Good vs Bad Game Outline
|
|
|
|
❌ **BAD (boring quiz):**
|
|
```json
|
|
{
|
|
"widgetType": "game",
|
|
"widgetOutline": {
|
|
"gameType": "quiz",
|
|
"questionCount": 5
|
|
}
|
|
}
|
|
```
|
|
|
|
✅ **GOOD (interactive game):**
|
|
```json
|
|
{
|
|
"widgetType": "game",
|
|
"widgetOutline": {
|
|
"gameType": "action",
|
|
"challenge": "控制推力使飞船安全着陆",
|
|
"playerControls": ["thrust_slider"]
|
|
}
|
|
}
|
|
```
|
|
|
|
**Final reminder**: your entire response must be a JSON **object** with exactly three top-level keys — `languageDirective` (string, inferred via the Language Inference rules in the system prompt), `courseTitle` (string, ≤30 chars, in the teaching language), and `outlines` (array of scene objects). Do not return a bare array. Do not wrap in prose or code fences.
|