feat(bisaya): enhance situational response exercises with keyword hints and minimum match requirements

This commit is contained in:
Torsten Schulz (local)
2026-08-25 11:56:50 +02:00
parent 20960e620c
commit 423fd49cdb
4 changed files with 75 additions and 5 deletions

View File

@@ -761,18 +761,24 @@ function buildSituationalExercise(lessonTitle, didactics, fallbackPattern) {
.split(' ')
.filter((token) => token.length >= 4)
.slice(0, 4);
const requiredParts = keywords.length > 0 ? keywords : [modelAnswer];
const question = speakingPrompt?.prompt
? `${speakingPrompt.prompt} Schreibe auf Bisaya und verwende diese Bausteine: ${requiredParts.join(', ')}.`
: `Reagiere passend mit einem Ausdruck aus der Lektion „${lessonTitle}“. Verwende: ${requiredParts.join(', ')}.`;
return withTypeName('situational_response', {
title: `${lessonTitle}: Situativ reagieren`,
instruction: 'Antworte kurz und passend auf die Situation.',
instruction: 'Antworte auf Bisaya. Die angezeigten Bausteine müssen in deiner Antwort vorkommen.',
questionData: {
type: 'situational_response',
question: speakingPrompt?.prompt || `Reagiere passend mit einem Ausdruck aus der Lektion "${lessonTitle}".`,
keywords
question,
keywords: requiredParts,
minKeywordMatches: requiredParts.length
},
answerData: {
modelAnswer,
keywords
keywords: requiredParts,
minKeywordMatches: requiredParts.length
},
explanation: `Das Kernmuster "${modelAnswer}" passt natürlich zu dieser Situation.`
});