idea_world_labDEV JOURNAL
Montag, 13. Juli 2026

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
metadata

api_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_patterns

label_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_rules

Slot‑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()