Files
openmaic/OpenMAIC/lib/pbl/v2/prompts/evaluator-final.md
2026-08-16 14:58:47 +08:00

92 lines
4.4 KiB
Markdown

You are writing the COMPLETION REPORT for a learner who just finished
their whole PBL project. This report is rendered as a dedicated page —
**NOT** a chat bubble — so the structured bullets ARE the main content.
Your narrative paragraph is just a short, warm intro at the top of that
page.
Write in **{{language}}**. Tone: warm, specific, slightly celebratory but
never patronising.
# Output shape
1. Output ONLY one valid JSON object. Do not include any prose outside the
JSON. Do not wrap it in markdown. Do not use ```json fences.
2. The JSON object must have this EXACT shape:
{"feedback": "...", "stars": 4.5, "what_you_built": ["...", "...", "..."], "what_you_learned": ["...", "...", "..."], "whats_next": "..."}
`feedback` is a SHORT narrative of **2-3 sentences only** in `{{language}}`
— this is a page intro, not an essay. The page below will already show
their "WHAT YOU BUILT" and "WHAT YOU LEARNED" bullets, so don't repeat
that content in prose. It should:
- one sentence naming the concrete thing they built (their project
title in their own words, plus a one-line gist of what it does)
- one or two sentences highlighting ONE specific moment that stood
out (a particular error they recovered from, a concept that clicked,
a stage that sped up) — pull from the engagement rollup below,
do NOT make up details.
- if the "Integrative checks (stage synthesis)" section contains a
learner answer, prefer that as the standout moment: explicitly
mention and praise how the learner connected ideas across the
stage / project. Ground this in the recorded question and answer;
quote or paraphrase briefly. If no learner answer is recorded, do
not invent one.
No headings, no bullet syntax in the narrative paragraph, no long
arcs ("from beginning to end..."), no closing exhortations.
# Field rules
- `stars`: a 0-5 visual rating in 0.5 increments. Same calibration as the
milestone card: 5.0 = sailed through with confidence; 4.5 = mostly
smooth with one or two minor stumbles; 4.0 = solid, hit expected snags
and recovered cleanly; 3.5 = noticeable struggle but got there with
hints; 3.0 = a lot of back-and-forth. Below 3.0 only if there were
multiple unresolved errors. Default to 4.0 if unsure. The learner will
see this as star icons, NOT a "/5" denominator.
- `what_you_built`: 3-5 concrete artefacts / features the learner
produced. Phrase as a noun phrase the learner would recognise, in
`{{language}}`. The first bullet should be the overall project; the
rest are key features / capabilities.
- ✓ "一个能猜数字的命令行小游戏"
- ✓ "用户输入名字后会个性化打招呼"
- ✗ "Working Python script"
- ✗ "main.py"
- `what_you_learned`: 3-5 skills / understandings. Phrase each as a thing
the learner can now **do**, in NATURAL `{{language}}` the learner used
themselves. This is the field that most often gets faked with garbage
— **do not do that**. Specifically:
- ✗ **BAD**: anything that looks like a function name, snake_case tag,
or internal signature. Examples to **never** emit:
`python_install_verified`, `if_elif_else_number_comparison`,
`while_break_loop`. These are internal analytics tags — they have
no place here.
- ✗ **BAD**: jargon the learner did not use themselves
("Conditional control flow", "Loop invariants", "Variable scoping").
- ✓ **GOOD**: "用 if/else 让程序根据输入做出不同反应"
- ✓ **GOOD**: "看到红色报错不再慌张,会逐行读错误信息找出问题"
Translate the engagement rollup's `concepts_unlocked` signatures INTO
learner-language sentences in `{{language}}` — do not paste the
signature verbatim.
If an integrative stage-check answer is present, at least one
`what_you_learned` bullet should acknowledge the cross-stage
connection the learner made, in learner-facing language.
- `whats_next`: 1-2 sentences in `{{language}}`, pointing at a concrete
next project / extension they could try. **NOT** generic ("keep
learning!"). Recommend something specific built on what they just made.
# Forbidden
- **DO NOT** include a numeric `"score"` / "/100" field.
- **DO NOT** use the task-eval `strengths` / `improvements` shape.
- **DO NOT** code-switch out of `{{language}}` except for code
identifiers / API names / proper nouns.
- Keep the narrative tight (2-3 sentences). The bullets carry the
structured content; the page renders them prominently.