Qwen Validation Debugger Prompt‑Anwendungsstruktur
Erstellungsdatum: 13. Juli 2026
Dokumentationszweck
Dieses Dokument fasst die tatsächlich in tools/qwen-validation-debugger angewendeten Prompts zusammen.
Es wird ohne zusätzliche Interpretation festgehalten, in welcher Funktion welcher Prompt erzeugt wird, an welche API er gesendet wird und welches Antwortformat erwartet wird.
Ziel‑Dateien
| Datei | Inhalt, wie in diesem Dokument dargestellt |
|---|---|
tools/qwen-validation-debugger/core.js |
Funktion zur Erstellung des Prompts für die eigentliche Qwen‑Anfrage |
tools/qwen-validation-debugger/server.js |
Routing, das den Prompt an die Qwen/OpenAI‑kompatible API sendet |
tools/qwen-validation-debugger/public/app.js |
Welche Schaltfläche/Aktion welchen API‑Aufruf und Prompt auslöst |
Gemeinsame Struktur des API‑Aufrufs
callQwen() in server.js übermittelt alle Prompts auf dieselbe Weise.
{
model,
messages: [{ role: 'user', content: prompt }],
temperature: 0
}| Wert | Quelle |
|---|---|
endpoint |
Browser‑Eingabewert qwenEndpoint |
model |
Browser‑Eingabewert qwenModel |
apiKey |
Browser‑Eingabewert qwenApiKey |
prompt |
Rückgabewert der Prompt‑Erzeugungsfunktion in core.js |
Der API‑Schlüssel wird vom Browser im Anforderung‑Body an den Server gesendet, aber nicht im localStorage gespeichert.
Prompt‑Aufrufpfad
| Bildschirmpunkt | Browser‑Funktion | Server‑API | core.js Prompt‑Funktion | Antwort‑Verarbeitungsfunktion |
|---|---|---|---|---|
| Element‑Labeling | classifyItem() |
POST /api/classify-item |
buildClassificationPrompt() |
extractJsonObject(), normalizeClassification() |
| Code‑Generierung | generateCode() |
POST /api/generate-code |
buildCodePrompt() |
extractJsonObject(), normalizeGeneratedCode() |
| JSONL‑Erstellung | generateJsonl() |
POST /api/generate-jsonl |
buildJsonlPrompt() |
extractJsonObject() |
| JSONL‑Verifizierung | verifyJsonl() |
POST /api/verify-jsonl |
buildVerificationPrompt() |
normalizeYesNo() |
| JSONL‑Prompt‑Vorschau | renderSlot() |
Keine API‑Aufruf | buildJsonlPromptPreview() |
Nur zur Anzeige auf dem Bildschirm |
Tabellendefinitionen
Die in den Prompts verwendeten Tabellendefinitionen befinden sich in TABLE_DEFINITIONS von core.js.
docs_chunks
| Feld | Wert |
|---|---|
| label | docs_chunks |
| purpose | Prüft, ob die erklärende Dokumentationsbasis direkt zu den Code‑Chunks passt. |
| directFields | content, code_blocks, api_symbols, heading, symbol |
Schema:
chunk_id
doc_version
source_url
source_file
source_sha256
doc_type
symbol
section_path
heading
content
code_blocks
language_tags
godot_version_tags
api_symbols
token_count
metadataapi_mapping
| Eintrag | Wert |
|---|---|
| label | api_mapping |
| purpose | Überprüft, ob die Begründungen dafür, wie Namen, Klassen, Funktionen und Symbole von Godot 3 zu Godot 4 geändert werden, direkt mit den Code‑Chunks übereinstimmen. |
| directFields | source_api, target_api, match_terms, notes |
schema:
mapping_id
source_api
target_api
change_type
godot_from
godot_to
confidence
evidence_chunk_ids
match_terms
notes
negative_patternslabel_prototypes
| Element | Wert |
|---|---|
| label | label_prototypes |
| purpose | Überprüfen Sie, ob das Beispiel, das nicht nur eine einfache Namensänderung, sondern die gesamte Funktionsweise, Argumentstruktur und Aufrufmuster ändert, direkt mit dem Code‑Chunk übereinstimmt. |
| directFields | input_pattern, expected_finding, recommended_action, validator_rules.required_when_seen_in_code, validator_rules.before_code, validator_rules.after_code |
schema:
prototype_id
label
task_type
input_pattern
expected_finding
recommended_action
evidence_mapping_ids
evidence_chunk_ids
severity
validator_rulesSlot‑Fall‑Definition
getSlotCase({ tableName, versionKey, expectation }) legt das goal, generationRule und expectedAnswer fest, die in den JSONL‑Erstellungs‑Prompt aufgenommen werden.
| Bedingung | label | expectedAnswer | goal | generationRule |
|---|---|---|---|---|
docs_chunks + positive |
Erklärungs‑Begründungs‑JSONL | ja | Es wird ein offizielles Dokument‑JSONL erstellt, das den SOURCE_CODE direkt erklärt. | Mindestens eines der Felder description/code/symbol im JSONL muss exakt mit dem tatsächlichen String/API‑Aufruf im SOURCE_CODE übereinstimmen. |
docs_chunks + negative |
Andere Code‑Erklärungs‑JSONL | nein | Obwohl Teile der API/des Themas mit dem SOURCE_CODE überlappen und wie ein Suchkandidat wirken können, wird ein offizielles Dokument‑JSONL erstellt, das einen anderen Code‑Ablauf erklärt. | Das JSONL darf zwar teilweise überlappende APIs oder Themen enthalten, darf jedoch den Kernzweck, das Zielobjekt und die endgültige Aktion/Ergebnis des SOURCE_CODE nicht direkt beschreiben. |
expectation === negative + versionKey === migration |
Irrelevante Transformations‑JSONL | nein | Es wird ein irrelevantes 3→4‑Transformations‑/Muster‑JSONL erstellt, das weder auf Godot‑3‑ noch auf Godot‑4‑Code anwendbar ist. | Das JSONL wird im 3→4‑Transformations‑Format geschrieben, darf jedoch weder die Vor‑Begründung des GODOT3_SOURCE_CODE noch die Nach‑Begründung des GODOT4_TARGET_CODE direkt behandeln. |
expectation === negative + nicht migration |
Irrelevante Transformations‑JSONL | nein | Es wird ein irrelevantes Transformations‑/Muster‑JSONL erstellt, das nicht auf den SOURCE_CODE angewendet werden darf. | Das JSONL muss andere APIs, andere Nodes oder andere Aufruf‑Muster behandeln und darf nicht als Begründung für eine Transformation des SOURCE_CODE dienen. |
versionKey === migration + positive |
3→4‑Transformations‑Begründungs‑JSONL | Godot 3 ja / Godot 4 nein | Es wird ein 3→4‑Transformations‑Begründungs‑JSONL erstellt, das das Vor‑Muster des Godot‑3‑Codes in das Nach‑Muster des Godot‑4‑Codes überführt. | Die Felder source_api, source_pattern, match_terms, input_pattern, before_code, required_when_seen_in_code müssen exakt mit den tatsächlichen Vor‑Strings/API‑Aufrufen des GODOT3_SOURCE_CODE übereinstimmen; target_api, after_code, recommended_action müssen die Nach‑Form des GODOT4_TARGET_CODE beschreiben. |
versionKey === godot3 + positive |
Transformations‑Notwendigkeit‑JSONL | ja | Es wird ein JSONL erstellt, das zeigt, dass Godot‑3‑/Source‑Side‑APIs oder Aufruf‑Muster im SOURCE_CODE auf Godot 4 umgestellt werden müssen. | Mindestens eines der Felder source_api, source_pattern, match_terms, input_pattern, before_code, required_when_seen_in_code muss exakt mit dem tatsächlichen Transformations‑Source‑String/API‑Aufruf im SOURCE_CODE übereinstimmen. |
versionKey === godot4 + positive |
Bereits angewendetes JSONL | nein | Es wird ein JSONL erstellt, das bestätigt, dass der SOURCE_CODE bereits die Godot‑4‑Target‑Form hat und nicht als zusätzliche Migrations‑Begründung gelten darf. | Das JSONL muss Felder wie target_api, after_code, signature_stable, no_change, common syntax enthalten, die anzeigen, dass bereits umgesetzt wurde bzw. keine Transformation nötig ist, und darf den SOURCE_CODE nicht als Transformations‑Source klassifizieren. |
sonst positive |
Gemeinsames/Unnötiges JSONL | nein | Es wird ein JSONL erstellt, das zeigt, dass der SOURCE_CODE allgemeine Syntax ist und nicht als api_mapping‑ oder label_prototypes‑Migrations‑Begründung gelten darf. | Das JSONL muss Felder wie target_api, after_code, signature_stable, no_change, common syntax enthalten, die anzeigen, dass bereits umgesetzt wurde bzw. keine Transformation nötig ist, und darf den SOURCE_CODE nicht als Transformations‑Source klassifizieren. |
1. Beschriftungs‑Prompt
Aufruf‑Position
| Feld | Wert |
|---|---|
| Browser‑Funktion | classifyItem(itemId) |
| Server‑API | POST /api/classify-item |
| Core‑Funktion | buildClassificationPrompt({ itemTitle }) |
| Eingabewert | itemTitle |
| Antwort‑JSON | syntax_scope, label, reason, godot3_focus, godot4_focus |
Prompt‑Originaltext
Du bist ein Godot‑Code‑Test‑Item‑Klassifizierer.
Bestimme, ob das unten stehende **TEST_ITEM** sowohl in Godot 3 als auch in Godot 4 mit derselben Syntax/dem selben Code‑Chunk getestet werden kann oder ob separate Code‑Varianten für Godot 3 und Godot 4 erstellt werden müssen.
Bewertungskriterien:
- Wenn es sich um dieselbe GDScript‑Syntax und dieselben API‑Aufrufe handelt, die in beiden Versionen von Godot 3/4 natürlich funktionieren, ist es **„common“**.
- Wenn Klassen‑ oder Funktionsnamen, Signaturen, Node‑Namen, Aufrufarten usw. versionsspezifisch unterschiedlich sind, ist es **„separate“**.
- Bei Unsicherheit wähle **„separate“**. Es ist besser, mehr sichere Tests zu erzeugen.
- Die Antwort muss **ein einziges JSON‑Objekt** enthalten.
JSON‑Format:
{
"syntax_scope": "common oder separate",
"label": "kurzes koreanisches Label",
"reason": "ein bis zwei Sätze, warum du zu diesem Ergebnis gekommen bist",
"godot3_focus": "Worauf bei der Erstellung von Godot 3‑Code geachtet werden muss",
"godot4_focus": "Worauf bei der Erstellung von Godot 4‑Code geachtet werden muss"
}
TEST_ITEM:
${itemTitle}Antwort Normalisierung
normalizeClassification(parsed) speichert Folgendes.
| Internes Feld | Quelle |
|---|---|
syntaxScope |
parsed.syntax_scope |
label |
parsed.label |
reason |
parsed.reason |
godot3Focus |
parsed.godot3_focus |
godot4Focus |
parsed.godot4_focus |
syntax_scope lässt nur common oder separate zu.
2. Code‑Generierungs‑Prompt
Aufrufort
| Element | Wert |
|---|---|
| Browser‑Funktion | generateCode(itemId, versionKey) |
| Server‑API | POST /api/generate-code |
| Core‑Funktion | buildCodePrompt({ itemTitle, syntaxScope, targetVersion }) |
| Eingabewert | itemTitle, syntaxScope, targetVersion |
| Antwort‑JSON | godot_version, syntax_scope, source_code, notes |
versionInstruction Verzweigung
| targetVersion | versionInstruction |
|---|---|
common |
Schreibe ein GDScript‑Code‑Chunk, das sowohl in Godot 3 als auch in Godot 4 gemeinsam verwendet werden kann. |
godot3 |
Schreibe ein GDScript‑Code‑Chunk, das ausschließlich Unterschiede in Godot 3.x zeigt. |
godot4 |
Schreibe ein GDScript‑Code‑Chunk, das ausschließlich Unterschiede in Godot 4.x zeigt. |
Prompt‑Originaltext
Du bist ein Code‑Chunk‑Generator für Godot‑Tests.
${versionInstruction}
Anforderungen:
- Schreibe nicht das gesamte Projekt, sondern funktionale Einheiten oder kleine Codeblöcke.
- Schreibe nur Code, der direkt mit dem Testpunkt zusammenhängt.
- Der Code muss die für die Versionsbestimmung erforderlichen APIs/Syntax zeigen.
- Die Antwort muss exakt ein JSON‑Objekt ausgeben.
- Verwende keine Markdown‑Codeblöcke.
JSON‑Format:
{
"godot_version": "${targetVersion}",
"syntax_scope": "${syntaxScope}",
"source_code": "GDScript‑Code‑Chunk",
"notes": "Wichtige Punkte, die im Code zu prüfen sind"
}
TEST_ITEM:
${itemTitle}Antwortnormalisierung
normalizeGeneratedCode(parsed) speichert Folgendes.
| Internes Feld | Quelle |
|---|---|
godotVersion |
parsed.godot_version |
syntaxScope |
parsed.syntax_scope |
sourceCode |
parsed.source_code |
notes |
parsed.notes |
Wenn source_code leer ist, wird ein Fehler behandelt.
3. JSONL‑Erstellungs‑Prompt
Aufrufort
| Element | Wert |
|---|---|
| Browser‑Funktion | generateJsonl(itemId, slotId) |
| Server‑API | POST /api/generate-jsonl |
| Kern‑Funktion | buildJsonlPrompt({ itemTitle, tableName, expectation, versionKey, versionLabel, sourceCode, targetCode }) |
| Eingabewert | itemTitle, tableName, expectation, versionKey, versionLabel, sourceCode, targetCode |
| Antwort | JSON‑Objekt |
sourceCode / targetCode Auswahl
app.js‑Funktion getJsonlGenerationCodes(detail, slot) bestimmt den Code, der in den JSONL‑Erstellungs‑Prompt eingefügt wird.
| slot.versionKey | SOURCE‑Eingabe |
|---|---|
migration |
GODOT3_SOURCE_CODE erhält detail.codes.godot3.sourceCode, GODOT4_TARGET_CODE erhält detail.codes.godot4.sourceCode |
common |
SOURCE_CODE erhält detail.codes.common.sourceCode |
godot3 |
SOURCE_CODE erhält detail.codes.godot3.sourceCode |
godot4 |
SOURCE_CODE erhält detail.codes.godot4.sourceCode |
Prompt‑Originaltext
Du bist ein JSONL-Generator für Godot RAG-Tests.
Ziel:
${slotCase.goal}
Zieltabelle:
${table.label}
Verwendungszweck der Tabelle:
${table.purpose}
Feldliste:
${table.schema.map((field) => `- ${field}`).join('\n')}
Wichtige Felder für die direkte Matching-Entscheidung:
${table.directFields.map((field) => `- ${field}`).join('\n')}
Erstellungsregeln:
- Die Antwort muss genau ein JSON-Objekt ausgeben.
- Verwende keine Markdown-Code-Fence.
- ${slotCase.generationRule}
- docs_chunks ist ein Erklärungsbegründungs-Matching, und api_mapping sowie label_prototypes sind Migration-Source-Begründungs-Matchings.
- Code, der bereits in der Godot 4 Zielform angewendet wurde, oder allgemeine Syntax ist kein "Umwandlung nötig"-Begründungsgrund für api_mapping/label_prototypes.
- negative_patterns und reject_when_seen_in_code sind Ablehnungsbedingungen. Zeichenketten in diesen Feldern sind als "Nein"-Begründungen zu interpretieren, nicht als "Ja"-Begründungen.
- Beschränke dich nicht nur auf breite Schlagwörter, sondern differenziere anhand tatsächlicher Zeichenketten/API-Aufrufe, ob sie relevant sind oder nicht.
- Füge keine Felder hinzu, die nicht zum Verwendungszweck der Tabelle passen.
- source_url, source_file und *_id-Werte sollten für Tests natürlich erstellt werden.
TEST_ITEM:
${itemTitle}
CODE_VERSION:
${versionLabel}
${isMigrationPair ? `GODOT3_SOURCE_CODE:
${sourceCode}
GODOT4_TARGET_CODE:
${targetCode}` : `SOURCE_CODE:
${sourceCode}`}Werte, die zusammen mit der Serverantwort enthalten sind
POST /api/generate-jsonl Antwort enthält Folgendes.
| Antwortfeld | Inhalt |
|---|---|
prompt |
Der an das eigentliche Modell gesendete Prompt |
rawResponse |
Die Rohantwort des Modells |
jsonl |
Das mit extractJsonObject() geparste Objekt |
jsonlText |
Ergebnis von JSON.stringify(parsed) |
expectedAnswer |
Ergebnis von expectedAnswerForSlot() |
4. JSONL‑Validierungs‑Prompt
Aufrufort
| Element | Wert |
|---|---|
| Browser‑Funktion | verifyJsonl(itemId, slotId, targetVersionKey) |
| Server‑API | POST /api/verify-jsonl |
| Kern‑Funktion | buildVerificationPrompt({ tableName, sourceVersionKey, targetVersionKey, sourceCode, jsonlText }) |
| Eingabewert | tableName, sourceVersionKey, targetVersionKey, sourceCode, jsonlText |
| Modellausgabe | Ja oder Nein |
question‑Verzweigung
| tableName | Frage |
|---|---|
docs_chunks |
Bestimmen Sie, ob das untenstehende JSONL eine offizielle Dokumentations‑Begründung ist, die den SOURCE_CODE direkt erklärt. |
api_mapping, label_prototypes |
Entscheiden Sie anhand des untenstehenden JSONL, ob eine Migration auf den aktuellen SOURCE_CODE angewendet werden soll. |
firstRule‑Verzweigung
| tableName | firstRule |
|---|---|
docs_chunks |
In docs_chunks ist das JSONL nur dann „Ja“, wenn es den tatsächlichen String des SOURCE_CODE, API‑Aufrufe, den Zweck des Codes, das Anwendungsziel und das Ergebnis direkt erklärt. |
api_mapping, label_prototypes |
In api_mapping und label_prototypes ist das JSONL nur dann „Ja“, wenn es das vor der Anwendung aktuelle Muster beschreibt, das im aktuellen SOURCE_CODE geändert werden muss. |
docs_chunks tableRules
- In docs_chunks ist „Ja“ nur zulässig, wenn JSONL die Kernfunktion von SOURCE_CODE direkt beschreibt.
- Die Kernfunktion umfasst nicht nur den einfachen API‑Namen, sondern auch, was der Code berechnet, auf welches Ziel er angewendet wird und welchen Endzustand/Ergebnis er erzeugt.
- Auch wenn dieselbe API oder dieselbe Methode vorkommt, ist es „Nein“, wenn JSONL ein anderes Ziel, ein anderes Zielobjekt oder ein anderes Ergebnis beschreibt; es ist dann nur ein Suchkandidat und keine direkte Evidenz.
- Wenn JSONL nur eine allgemeine Beschreibung derselben API liefert und nicht die konkreten Ressourcen, Verzweigungen, Wiederholungen und Zustandsänderungen des SOURCE_CODE erklärt, ist es „Nein“, da es keine direkte Erklärung liefert.
- Wenn man betrachtet, ob SOURCE_CODE wiederholte Ausführung, Einzelausführung, Zustandswechsel oder Ressourcenaustausch darstellt, und die Reihenfolge von JSONL davon abweicht, ist es „Nein“.
- Funktionen, die in derselben Datei oder demselben Spielablauf gemeinsam auftreten, können Suchkandidaten füreinander sein. Auch hier ist es nur „Ja“, wenn das Endziel, das Zielobjekt und das Ergebnis von SOURCE_CODE mit dem von JSONL beschriebenen übereinstimmen.
- Auch wenn api_symbols oder Überschriften Teile von Aufrufen aus SOURCE_CODE enthalten, ist es keine direkte Erklärung, wenn content/code_blocks einen anderen Arbeitsablauf beschreiben.
- Nur weil Lifecycle‑Funktionen, gemeinsame Typen oder allgemeine Eigenschaftsnamen in vielen Codeabschnitten wiederkehren, stellt das keine direkte Evidenz dar.
- Wenn die code_blocks von JSONL ein anderes Beispielcode als SOURCE_CODE beschreiben, ist es „Nein“, selbst wenn einige APIs gleich sind.
- Schließe nicht, dass andere APIs mit ähnlicher Bedeutung oder ähnliche Anwendungsfälle gleichwertig sind. JSONL muss das aktuelle Ziel/Zielobjekt/Ergebnis von SOURCE_CODE direkt zeigen.
- Wenn JSONL_GENERATED_FROM_CODE_VERSION und VERIFY_TARGET_CODE_VERSION unterschiedlich sind, prüfe zuerst, ob JSONL das Verhalten des aktuell zu prüfenden Code‑Versions erklärt.
- Auch bei unterschiedlichen Versionen kann es „Ja“ sein, wenn gemeinsame APIs/gemeinsame Funktionen explizit erklärt werden, aber wenn die code_blocks/api_symbols von JSONL nicht mit der tatsächlichen Syntax/API‑Aufruf von SOURCE_CODE übereinstimmen, ist es „Nein“, selbst wenn sie ähnlich erscheinen.api_mapping / label_prototypes tableRules
- Die Fragen zu **api_mapping** und **label_prototypes** beziehen sich nicht darauf, ob „JSONL und Code überhaupt irgendwie zusammenhängen“, sondern darauf, ob „auf Basis dieses JSONL der aktuelle **SOURCE_CODE** jetzt geändert werden muss“.
- Bestimme zunächst, ob der aktuelle **SOURCE_CODE** anhand des JSONL zu den Kategorien *vorheriger Code*, *bereits geänderter Code*, *unrelevanter Code* oder *keine Umwandlung nötig* gehört.
- „Ja“ ist nur zulässig, wenn der aktuelle **SOURCE_CODE** noch **vorheriger Code** ist und die im JSONL beschriebene Umwandlung jetzt angewendet werden soll.
- Das 3→4‑Integrations‑JSONL wurde erstellt, indem sowohl der Godot‑3‑Vorher‑Code als auch der Godot‑4‑Nachher‑Code betrachtet wurden. Bei der Validierung muss getrennt beurteilt werden, ob der aktuelle **SOURCE_CODE** zum Vorher‑ oder zum Nachher‑Code gehört.
- Wenn der aktuelle **SOURCE_CODE** bereits die Godot‑4‑Ziel‑Form hat, gilt das JSONL‑Migrations‑Statement zwar als relevant, aber es ist bereits umgesetzt, also „Nein“.
- Die Bewertung „Umwandlung nötig“ bei **label_prototypes** ist nur dann „Ja“, wenn der aktuelle **SOURCE_CODE** tatsächlich das frühere Verwendungs‑Muster, die Parameter‑Zusammensetzung und das Aufruf‑Pattern enthält.
- Ein irrelevantes Umwandlungs‑JSONL ist selbst dann „Nein“, wenn das Ziel‑Objekt Godot‑3‑Code ist, aber die Umwandlung nicht auf den aktuellen **SOURCE_CODE** zutrifft.
- Inhalte der Kategorien *source/before/required* dienen als Beleg für den Vorher‑Code, Inhalte von *target/after/recommended* stellen die Nachher‑Form dar, und Inhalte von *negative/reject* beschreiben Bedingungen, unter denen die jeweilige Umwandlung **nicht** angewendet werden darf.
- Selbst wenn der Funktionsname identisch ist, muss das im JSONL beschriebene Vorher‑Pattern (Aufruf‑Parameter, Rückgabeverarbeitung, Vererbungs‑Node, umgebender Code‑Aufbau usw.) **direkt** im **SOURCE_CODE** vorhanden sein, damit „Ja“ gilt.
- **source_api** und **target_api** können denselben Namen teilen oder *match_terms* sowohl für Quelle als auch Ziel enthalten. Nur das Vorhandensein eines einzelnen Funktionsnamens oder eines breiten *match_terms* reicht nicht für „Ja“.
- Funktionen, die im selben File oder im selben Spielablauf gemeinsam auftreten, können als Suchkandidaten dienen. Fehlt jedoch das konkrete Vorher‑Pattern im aktuellen **SOURCE_CODE**, lautet die Antwort „Nein“.
- Wenn **JSONL_GENERATED_FROM_CODE_VERSION** und **VERIFY_TARGET_CODE_VERSION** unterschiedlich sind, muss zuerst geklärt werden, ob der aktuelle **SOURCE_CODE** dem Vorher‑Code oder bereits dem Nachher‑Code des JSONL entspricht.
- Ist **JSONL_GENERATED_FROM_CODE_VERSION** kein Migrations‑Slot, sondern ein einzelner Versions‑Slot, dann gilt „Ja“ nur, wenn das zu prüfende Code‑Snippet tatsächlich das *source/before/required*-Pattern enthält.
- Wenn der aktuelle **SOURCE_CODE** bereits der *target/after/recommended*-Form des JSONL entspricht oder sogar neuer ist, ist er bereits umgesetzt, also „Nein“.
- Ist die zu prüfende Version Godot 4 oder *common* und der **SOURCE_CODE** bereits in der *target/after*-Form, dann gilt das JSONL‑Migrations‑Wissen zwar als korrekt, aber für den aktuellen Code ist die Antwort „Nein“.
- Wenn **change_type** Werte wie *signature_stable*, *no_change* oder *common* hat, die keine Umwandlung erfordern, lautet die Antwort „Nein“.
- Selbst wenn ein Migrations‑JSONL an Godot‑4‑Code oder an gemeinsamen Syntax‑Code angehängt wird, ist die Antwort „Nein“, solange keine zusätzliche Umwandlung nötig ist.decisionRules
- Vor der Bewertung fassen Sie die Kernfunktion des SOURCE_CODE in einem Satz zusammen und erfassen ebenfalls das zentrale Argument, das JSONL beschreibt, in einem Satz, und vergleichen die beiden.
- Nur wenn das Zielobjekt, der Aufrufzweck, der Eingabe‑/Argumentfluss und das Endergebnis in die gleiche Richtung zeigen, wird es als direkte Evidenz betrachtet.
- Auch wenn es wie ein ähnlicher Suchkandidat aussieht, ist es „Nein“, wenn es den aktuellen SOURCE_CODE nicht erklärt oder keine Grundlage für die Anwendung auf den aktuellen SOURCE_CODE bietet.Ursprünglicher Prompt
Du bist ein JSONL‑Beweisabgleichsprüfer.
${question}
Tabelle:
${table.label}
Verwendungszweck der Tabelle:
${table.purpose}
Entscheidungskriterien:
- ${firstRule}
- Zu prüfende JSONL‑Felder: ${table.directFields.join(', ')}
- ${tableRules.join('\n- ')}
- ${decisionRules.join('\n- ')}
- Wenn nur allgemeine Wörter wie Godot, Godot3, Godot4, migration, 2D, physics übereinstimmen, ist es nicht relevant.
- Inhalte, die in JSONL negativ erwähnt werden, wie "does not describe", "not related", "unrelated", "does not apply", werden nicht als relevante Beweise anerkannt.
- Wenn JSONL Inhalte über andere APIs, andere Nodes oder andere Systeme enthält, ist die Antwort "Nein".
- Verwende dein Wissen über Godot nicht, sondern nutze ausschließlich die in JSONL angegebenen Textbelege.
- Die Antwort muss ausschließlich "Ja" oder "Nein" sein.
JSONL_GENERIERT_VON_CODE_VERSION:
${sourceVersionKey}
VERIFIZIEREN_ZIEL_CODE_VERSION:
${targetVersionKey}
QUELLCODE:
${sourceCode}
JSONL:
${jsonlText}Antwortnormalisierung
normalizeYesNo(text) akzeptiert nur die folgenden Antworten als Werte.
| Eingabeform | Interner Wert |
|---|---|
예 |
예 |
yes |
예 |
아니오 |
아니오 |
no |
아니오 |
| Wert über im Code‑Fence | entsprechender Wert |
| Wert über der ersten Zeile | entsprechender Wert |
| Sonstiges | leere Zeichenkette |
5. JSONL Prompt-Vorschau
app.js's buildJsonlPromptPreview() ist keine Funktion, die an das Modell gesendet wird, sondern eine Vorschau, die auf dem Bildschirm angezeigt wird.
Aufrufort
| Element | Wert |
|---|---|
| Browserfunktion | renderSlot() |
| API-Aufruf | Keine |
| Verwendungszweck | slot-internes JSONL 생성 프롬프트-Detailsfeld anzeigen |
Originalvorschau
Du bist ein JSONL‑Generator für Godot RAG‑Tests.
Ziel: ${slotCase.goal}
Zieltabelle: ${table.label}
Tabellenzweck: ${table.purpose}
Direkte Zuordnungsfelder: ${table.directFields.join(', ')}
TEST_ITEM: ${itemTitle}
CODE_VERSION: ${versionLabel}
${isMigrationPair ? `GODOT3_QUELLCODE:
${sourceCode || '(Automatisch nach Generierung von Godot 3 Code eingefügt)'}
GODOT4_ZIELCODE:
${targetCode || '(Automatisch nach Generierung von Godot 4 Code eingefügt)'}` : `QUELLCODE:
${sourceCode || '(Automatisch nach Codegenerierung eingefügt)'}`}Slot-Erstellungsregeln
app.js's getSlotSpecs(detail) erzeugt Slots je nach Klassifikationsergebnis.
common
Wenn die Klassifizierung common ist, werden die folgenden Slots erstellt.
| versionKey | tableName | expectation |
|---|---|---|
common |
docs_chunks |
positive |
common |
docs_chunks |
negative |
common |
api_mapping |
positive |
common |
api_mapping |
negative |
common |
label_prototypes |
positive |
common |
label_prototypes |
negative |
separate
Wenn die Klassifizierung separate ist, werden die folgenden Slots erstellt.
| versionKey | tableName | expectation |
|---|---|---|
godot3 |
docs_chunks |
positive |
godot3 |
docs_chunks |
negative |
godot4 |
docs_chunks |
positive |
godot4 |
docs_chunks |
negative |
migration |
api_mapping |
positive |
migration |
api_mapping |
negative |
migration |
label_prototypes |
positive |
migration |
label_prototypes |
negative |
Berechnung von expectedAnswer
expectedAnswer der JSONL-Erzeugungsantwort
expectedAnswerForSlot({ tableName, versionKey, expectation }) gibt das expectedAnswer von getSlotCase() zurück.
expectedAnswer zum Vergleich von Verifizierungsergebnissen
Die Regeln für expectedAnswerForVerification({ tableName, sourceVersionKey, targetVersionKey, expectation }) sind wie folgt.
| Bedingung | expectedAnswer |
|---|---|
expectation === negative |
Nein |
tableName === docs_chunks und sourceVersionKey === targetVersionKey |
Ja |
tableName === docs_chunks und sourceVersionKey !== targetVersionKey |
Nein |
tableName ist api_mapping oder label_prototypes und sourceVersionKey === migration, targetVersionKey === godot3 |
Ja |
tableName ist api_mapping oder label_prototypes und sourceVersionKey === migration, targetVersionKey !== godot3 |
Nein |
tableName ist api_mapping oder label_prototypes und sourceVersionKey === godot3, targetVersionKey === godot3 |
Ja |
| sonst | Nein |
Tabelle der Prompt-Änderungsprotokolle
Wenn der Prompt später geändert wird, wird die Tabelle unten fortgeführt.
| Datum | Funktion | Vorheriger Text/Regel | Nachheriger Text/Regel | Ergebnis der Überprüfung |
|---|---|---|---|---|
| 2026-07-13 | Gesamt | Aktuelle Code‑Basis Prompt‑Struktur | Baseline‑Dokumentation | Aufzeichnung abgeschlossen |
buildClassificationPrompt() |
||||
buildCodePrompt() |
||||
buildJsonlPrompt() |
||||
buildVerificationPrompt() |