idea_world_labDEV JOURNAL
segunda-feira, 13 de julho de 2026

Qwen Validation Debugger estrutura de aplicação do prompt

Data de criação: 13 de julho de 2026

Propósito do documento

Este documento resume os prompts realmente aplicados em tools/qwen-validation-debugger.

Registre apenas qual função cria qual prompt, para qual API ele é enviado e qual formato de resposta é esperado, sem adicionar interpretações.

Arquivo alvo

Arquivo Conteúdo visto neste documento
tools/qwen-validation-debugger/core.js Função que gera o prompt usado na solicitação real ao Qwen
tools/qwen-validation-debugger/server.js Roteamento que recebe o prompt e o envia para a API compatível com Qwen/OpenAI
tools/qwen-validation-debugger/public/app.js Indica qual botão/ação chama qual API e prompt

Estrutura comum de chamada da API

callQwen() de server.js envia todos os prompts da mesma maneira.

{
  model,
  messages: [{ role: 'user', content: prompt }],
  temperature: 0
}
Valor Fonte
endpoint Valor de entrada do navegador qwenEndpoint
model Valor de entrada do navegador qwenModel
apiKey Valor de entrada do navegador qwenApiKey
prompt Valor retornado pela função de criação de prompt em core.js

A chave de API é enviada ao servidor no corpo da requisição pelo navegador, mas não é armazenada no localStorage.

Caminho de chamada do prompt

Ação da tela Função do navegador API do servidor Função de prompt do core.js Função de tratamento da resposta
Rotulagem de item classifyItem() POST /api/classify-item buildClassificationPrompt() extractJsonObject(), normalizeClassification()
Geração de código generateCode() POST /api/generate-code buildCodePrompt() extractJsonObject(), normalizeGeneratedCode()
Geração de JSONL generateJsonl() POST /api/generate-jsonl buildJsonlPrompt() extractJsonObject()
Verificação de JSONL verifyJsonl() POST /api/verify-jsonl buildVerificationPrompt() normalizeYesNo()
Pré‑visualização do prompt JSONL renderSlot() Nenhuma chamada de API buildJsonlPromptPreview() Apenas exibição na tela

Definição de tabelas

As definições de tabelas usadas nos prompts estão em TABLE_DEFINITIONS dentro de core.js.

docs_chunks

Campo Valor
label docs_chunks
purpose Verifica se a justificativa explicativa da documentação corresponde diretamente ao trecho de código.
directFields content, code_blocks, api_symbols, heading, symbol

esquema:

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

Item Valor
label api_mapping
purpose Verifica se a justificativa de como nomes, classes, funções e símbolos mudam do Godot 3 para o Godot 4 corresponde diretamente aos trechos de código.
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

Item Valor
label label_prototypes
purpose Verifique se a evidência de exemplo, que não é apenas uma simples renomeação, mas altera completamente o modo de uso da função, a composição dos argumentos e o padrão de chamada, corresponde diretamente ao trecho de código.
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

Definição de Caso de Slot

getSlotCase({ tableName, versionKey, expectation }) define goal, generationRule e expectedAnswer que entram no prompt de geração de JSONL.

condição rótulo expectedAnswer objetivo generationRule
docs_chunks + positive JSONL de justificativa explicativa sim Cria um JSONL no estilo de documentação oficial que explica diretamente o SOURCE_CODE. Pelo menos um dos campos description/code/symbol do JSONL deve corresponder exatamente à string real/API call dentro do SOURCE_CODE.
docs_chunks + negative JSONL de explicação de código diferente não Pode parecer um candidato de busca porque parte da API/assunto se sobrepõe ao SOURCE_CODE, mas na verdade cria um JSONL no estilo de documentação oficial que explica um comportamento de código diferente. O JSONL pode ter sobreposição parcial de API ou assunto como candidato de busca, mas não deve explicar diretamente o objetivo principal, objeto alvo ou ação/resultados finais do SOURCE_CODE.
expectation === negative + versionKey === migration JSONL de conversão irrelevante não Cria um JSONL de padrão/conversão 3→4 que não deve ser aplicado nem ao código Godot 3 nem ao Godot 4. O JSONL deve ser escrito no formato de conversão 3→4, mas não deve tratar diretamente das evidências de mudança do GODOT3_SOURCE_CODE nem do GODOT4_TARGET_CODE.
expectation === negative + fora de migration JSONL de conversão irrelevante não Cria um JSONL de conversão/padrão irrelevante que não deve ser aplicado ao SOURCE_CODE. O JSONL deve abordar APIs, nós ou padrões de chamada diferentes e não pode servir como evidência de conversão para o SOURCE_CODE.
versionKey === migration + positive JSONL de evidência de conversão 3→4 Exemplo Godot 3 / Não Godot 4 Cria um JSONL de evidência de conversão 3→4 que transforma o padrão antes da mudança no código Godot 3 para a forma após a mudança no código Godot 4. Os campos source_api, source_pattern, match_terms, input_pattern, before_code, required_when_seen_in_code do JSONL devem corresponder exatamente à string real/API call antes da mudança no GODOT3_SOURCE_CODE, e target_api, after_code, recommended_action devem descrever a forma após a mudança no GODOT4_TARGET_CODE.
versionKey === godot3 + positive JSONL de necessidade de conversão sim Cria um JSONL que mostra que APIs ou padrões de chamada do lado do Godot 3 dentro do SOURCE_CODE precisam ser convertidos para o Godot 4. Pelo menos um dos campos source_api, source_pattern, match_terms, input_pattern, before_code, required_when_seen_in_code do JSONL deve corresponder exatamente à string real/API call de conversão dentro do SOURCE_CODE.
versionKey === godot4 + positive JSONL já aplicado não Cria um JSONL que indica que o SOURCE_CODE já está no formato alvo do Godot 4 e não deve ser considerado como evidência adicional de migração. O JSONL deve conter direções como target_api, after_code, signature_stable, no_change, common syntax que indiquem que já está aplicado ou que não há necessidade de conversão, e não deve fazer do SOURCE_CODE uma fonte de conversão.
demais positive JSONL comum/desnecessário não Cria um JSONL que indica que o SOURCE_CODE é sintaxe comum e não deve ser considerado como evidência de migração para api_mapping ou label_prototypes. O JSONL deve conter direções como target_api, after_code, signature_stable, no_change, common syntax que indiquem que já está aplicado ou que não há necessidade de conversão, e não deve fazer do SOURCE_CODE uma fonte de conversão.

1. Prompt de Rotulagem

Posição da Chamada

item valor
Função do navegador classifyItem(itemId)
API do servidor POST /api/classify-item
Função core buildClassificationPrompt({ itemTitle })
Valor de entrada itemTitle
JSON de resposta syntax_scope, label, reason, godot3_focus, godot4_focus

Texto original do prompt

Você é um classificador de itens de teste de código Godot.

Determine se o TEST_ITEM abaixo pode ser testado com a mesma sintaxe/código chunk em Godot 3 e Godot 4, ou se códigos separados para Godot 3 e Godot 4 devem ser criados.

Critérios de julgamento:
- Se for um item que pode ser explicado naturalmente em ambos Godot 3 e 4 usando a mesma sintaxe GDScript e chamadas de API, é **"common"**.
- Se nomes de classes, funções, assinaturas, nomes de nós, modo de chamada ou outras APIs/sintaxes mudam significativamente entre versões, é **"separate"**.
- Em caso de dúvida, escolha **"separate"**. É melhor criar mais testes seguros.
- A resposta deve conter apenas um objeto JSON.

Formato JSON:
{
  "syntax_scope": "common ou separate",
  "label": "rótulo curto em coreano",
  "reason": "por que você chegou a essa conclusão, uma ou duas frases",
  "godot3_focus": "pontos a observar ao gerar código para Godot 3",
  "godot4_focus": "pontos a observar ao gerar código para Godot 4"
}

TEST_ITEM:
${itemTitle}

Normalização de Resposta

normalizeClassification(parsed) armazena o seguinte.

Campo interno Fonte
syntaxScope parsed.syntax_scope
label parsed.label
reason parsed.reason
godot3Focus parsed.godot3_focus
godot4Focus parsed.godot4_focus

syntax_scope aceita apenas common ou separate.

2. Prompt de Geração de Código

Local de chamada

Item Valor
Função do navegador generateCode(itemId, versionKey)
API do servidor POST /api/generate-code
Função core buildCodePrompt({ itemTitle, syntaxScope, targetVersion })
Valor de entrada itemTitle, syntaxScope, targetVersion
JSON de resposta godot_version, syntax_scope, source_code, notes

Ramificação versionInstruction

targetVersion versionInstruction
common Escreva um trecho de código GDScript que seja comum a Godot 3 e Godot 4.
godot3 Escreva um trecho de código GDScript que mostre diferenças específicas do Godot 3.x.
godot4 Escreva um trecho de código GDScript que mostre diferenças específicas do Godot 4.x.

Texto original do prompt

Você é um gerador de trechos de código de teste para Godot.

${versionInstruction}

Requisitos:
- Não escreva todo o projeto, mas sim em nível de função ou pequenos blocos de código.
- Escreva apenas o código diretamente relacionado ao item de teste.
- O código deve expor a API/sintaxe necessária para determinar a versão.
- A resposta deve conter exatamente um objeto JSON.
- Não use fences de código Markdown.

Formato JSON:
{
  "godot_version": "${targetVersion}",
  "syntax_scope": "${syntaxScope}",
  "source_code": "GDScript código chunk",
  "notes": "Pontos principais a serem verificados no código"
}

TEST_ITEM:
${itemTitle}

Normalização da Resposta

normalizeGeneratedCode(parsed) salva o seguinte.

Campo interno Fonte
godotVersion parsed.godot_version
syntaxScope parsed.syntax_scope
sourceCode parsed.source_code
notes parsed.notes

Se source_code estiver vazio, trate como falha.

3. Prompt de Geração de JSONL

Local de chamada

Item Valor
Função do navegador generateJsonl(itemId, slotId)
API do servidor POST /api/generate-jsonl
Função core buildJsonlPrompt({ itemTitle, tableName, expectation, versionKey, versionLabel, sourceCode, targetCode })
Valores de entrada itemTitle, tableName, expectation, versionKey, versionLabel, sourceCode, targetCode
Resposta Objeto JSON

Seleção de sourceCode / targetCode

app.js → getJsonlGenerationCodes(detail, slot) determina o código que será inserido no prompt de geração de JSONL.

slot.versionKey Entrada SOURCE
migration GODOT3_SOURCE_CODE recebe detail.codes.godot3.sourceCode, GODOT4_TARGET_CODE recebe detail.codes.godot4.sourceCode
common SOURCE_CODE recebe detail.codes.common.sourceCode
godot3 SOURCE_CODE recebe detail.codes.godot3.sourceCode
godot4 SOURCE_CODE recebe detail.codes.godot4.sourceCode

Texto original do prompt

Você é um gerador JSONL para teste de RAG no Godot.

Objetivo:
${slotCase.goal}

Tabela alvo:
${table.label}

Uso da tabela:
${table.purpose}

Lista de campos:
${table.schema.map((field) => `- ${field}`).join('\n')}

Campos importantes para julgamento de correspondência direta:
${table.directFields.map((field) => `- ${field}`).join('\n')}

Regras de geração:
- A resposta deve conter exatamente um objeto JSON.
- Não use fences de código Markdown.
- ${slotCase.generationRule}
- docs_chunks são correspondências de base explicativa, e api_mapping e label_prototypes são correspondências de base de migração de origem.
- Código já aplicado na forma de destino do Godot 4 ou código de sintaxe comum não são bases de “necessita conversão” em api_mapping/label_prototypes.
- negative_patterns e reject_when_seen_in_code são condições de rejeição. As strings inseridas nesses campos devem ser interpretadas como bases “não” e não como bases “sim”.
- Não se limite a palavras‑chave amplas; faça a distinção entre relacionado e não relacionado com base em strings reais/chamadas de API.
- Não adicione campos arbitrariamente que estejam fora do uso da tabela.
- Os valores de source_url, source_file, *_id devem ser criados de forma natural para fins de teste.

ITEM_DE_TESTE:
${itemTitle}

VERSÃO_DO_CÓDIGO:
${versionLabel}

${isMigrationPair ? `CÓDIGO_FONTE_GODOT3:
${sourceCode}

CÓDIGO_ALVO_GODOT4:
${targetCode}` : `CÓDIGO_FONTE:
${sourceCode}`}

Valores incluídos na resposta do servidor

POST /api/generate-jsonl a resposta inclui o seguinte.

Campo da resposta Conteúdo
prompt Prompt enviado ao modelo real
rawResponse Resposta original do modelo
jsonl Objeto analisado por extractJsonObject()
jsonlText Resultado de JSON.stringify(parsed)
expectedAnswer Resultado de expectedAnswerForSlot()

4. Prompt de verificação de JSONL

Local de chamada

Item Valor
Função do navegador verifyJsonl(itemId, slotId, targetVersionKey)
API do servidor POST /api/verify-jsonl
Função core buildVerificationPrompt({ tableName, sourceVersionKey, targetVersionKey, sourceCode, jsonlText })
Valores de entrada tableName, sourceVersionKey, targetVersionKey, sourceCode, jsonlText
Saída do modelo Sim ou Não

Ramificação de question

tableName question
docs_chunks Determine se o JSONL abaixo é uma evidência no formato de documentação oficial que descreve diretamente o SOURCE_CODE.
api_mapping, label_prototypes Determine, com base no JSONL abaixo, se deve aplicar a migração ao SOURCE_CODE atual.

Ramificação de firstRule

tableName firstRule
docs_chunks Em docs_chunks, o JSONL só recebe “Sim” quando descreve diretamente a string real do SOURCE_CODE, chamada de API, objetivo do código, alvo de aplicação ou resultado.
api_mapping, label_prototypes Em api_mapping e label_prototypes, o JSONL só recebe “Sim” quando descreve o padrão anterior que deve ser alterado no SOURCE_CODE atual.

Regras da tabela docs_chunks

- nos docs_chunks, “sim” só é permitido quando o JSONL descreve diretamente a ação central do SOURCE_CODE.  
- A ação central não é apenas o nome simples da API, mas inclui o que o código calcula, em que alvo ele se aplica e, finalmente, qual estado/resultado ele produz.  
- Mesmo que a mesma API ou método apareça, se o JSONL explicar um propósito diferente, um objeto alvo diferente ou um resultado diferente, ele será apenas um candidato de busca, não uma evidência direta, portanto “não”.  
- Se o JSONL fornecer apenas uma descrição geral da mesma API sem detalhar os recursos específicos, ramificações, loops ou mudanças de estado do SOURCE_CODE, não será uma evidência direta, portanto “não”.  
- Se o SOURCE_CODE envolver execução em loop, execução única, transição de estado ou troca de recurso e o fluxo descrito no JSONL for diferente, “não”.  
- Funções que aparecem juntas no mesmo arquivo ou fluxo de jogo podem ser candidatos de busca entre si. Mesmo assim, só será “sim” quando o objetivo final, o alvo e o resultado do SOURCE_CODE coincidirem com os descritos no JSONL.  
- Mesmo que api_symbols ou headings contenham nomes de chamadas presentes no SOURCE_CODE, se content/code_blocks descrevem um fluxo de trabalho diferente, não são evidências diretas.  
- Evidências que consistem apenas em pistas recorrentes em vários códigos, como funções de ciclo de vida, tipos comuns ou nomes de propriedades genéricas, não são evidências diretas.  
- Se os code_blocks do JSONL descrevem um exemplo de código diferente do SOURCE_CODE, mesmo que algumas APIs coincidam, “não”.  
- Não inferir que APIs de significado semelhante ou casos de uso parecidos são equivalentes com base no seu conhecimento. O JSONL deve expor diretamente o objetivo/alvo/resultado do SOURCE_CODE atual.  
- Quando JSONL_GENERATED_FROM_CODE_VERSION e VERIFY_TARGET_CODE_VERSION forem diferentes, primeiro verifique se o JSONL descreve o comportamento do código da versão que está sendo verificada.  
- Mesmo com versões diferentes, pode ser “sim” se houver uma explicação explícita de APIs/comportamentos comuns; porém, se os code_blocks/api_symbols do JSONL não corresponderem à sintaxe real ou chamadas de API do SOURCE_CODE atual, será “não”, mesmo que pareçam a mesma funcionalidade.

api_mapping / label_prototypes tableRules

- As perguntas sobre **api_mapping** e **label_prototypes** não são “Será que JSONL e código têm alguma relação?” mas sim “Com base neste JSONL, devemos alterar o **SOURCE_CODE** agora?”.
- Primeiro, determine em qual das categorias o **SOURCE_CODE** atual se encaixa, considerando o JSONL: código antes da mudança, código já alterado, código irrelevante ou código que não precisa ser convertido.
- Responda **“sim”** apenas quando o **SOURCE_CODE** atual for código antes da mudança e a conversão indicada pelo JSONL precisar ser aplicada agora.
- O JSONL de integração 3→4 foi criado a partir da comparação entre o código antes da mudança do Godot 3 e o código depois da mudança do Godot 4. Na verificação, separe se o **SOURCE_CODE** atual corresponde ao código antes ou ao código depois da mudança.
- Se o **SOURCE_CODE** já estiver no formato alvo do Godot 4, mesmo que o JSONL pareça relacionado à migração, considere‑o “já aplicado” e responda **“não”**.
- O julgamento de “necessidade de conversão” em **label_prototypes** só deve ser **“sim”** quando o **SOURCE_CODE** atual ainda contiver o padrão de uso, a composição de argumentos e o padrão de chamada anteriores.
- Um JSONL de conversão irrelevante recebe resposta **“não”** se, mesmo que o alvo da verificação seja código Godot 3, a conversão não for aplicável ao **SOURCE_CODE** atual.
- Conteúdos nas categorias `source/before/required` servem como evidência de código antes da mudança; conteúdos em `target/after/recommended` representam a forma após a mudança; conteúdos em `negative/reject` indicam condições nas quais a conversão **não** deve ser aplicada.
- Mesmo que o nome da função seja o mesmo, a resposta será **“sim”** somente se o **SOURCE_CODE** ainda mantiver o padrão anterior descrito no JSONL (por exemplo, argumentos de chamada, tratamento de retorno, nó herdado, estrutura de código ao redor etc.).
- `source_api` e `target_api` podem compartilhar o mesmo nome ou conter termos de correspondência (`match_terms`) tanto para fonte quanto para alvo. Nesse caso, apenas a coincidência de um nome de função ou de termos amplos **não** basta para responder **“sim”**.
- Funcionalidades que aparecem no mesmo arquivo ou no mesmo fluxo de jogo podem ser candidatos de busca entre si, mas se o padrão anterior não estiver presente no **SOURCE_CODE** atual, a resposta será **“não”**.
- Se `JSONL_GENERATED_FROM_CODE_VERSION` e `VERIFY_TARGET_CODE_VERSION` forem diferentes, primeiro identifique se o **SOURCE_CODE** atual corresponde ao código antes da mudança ou já ao código depois da mudança descrito no JSONL.
- Quando `JSONL_GENERATED_FROM_CODE_VERSION` representa um slot de versão única (não uma migração), responda **“sim”** apenas se o padrão `source/before/required` estiver presente no código que está sendo verificado.
- Se o **SOURCE_CODE** atual já estiver no formato `target/after/recommended` do JSONL ou for ainda mais recente, considere‑o “já aplicado” e responda **“não”**.
- Quando a versão alvo da verificação for Godot 4 ou “common” e o **SOURCE_CODE** já estiver no formato `target/after`, mesmo que o JSONL contenha conhecimento de migração correto, a resposta deve ser **“não”**.
- Se `change_type` for `signature_stable`, `no_change`, `common` ou outro que indique que nenhuma alteração é necessária, responda **“não”**.
- Mesmo que um JSONL de migração esteja anexado a código Godot 4 ou a código com sintaxe comum, se nenhuma transformação adicional for necessária, a resposta deve ser **“não”**.

decisionRules

- Antes da avaliação, capture a ação principal do SOURCE_CODE em uma frase, capture também o principal fundamento descrito pelo JSONL em uma frase e compare os dois.  
- Considere como evidência direta apenas quando o objeto alvo, o propósito da chamada, o fluxo de entrada/parâmetro e o resultado final estiverem na mesma direção.  
- Mesmo que pareça um candidato de busca semelhante, se não explicar o SOURCE_CODE atual ou não servir como base para aplicá‑lo ao SOURCE_CODE atual, é “não”.

Prompt original

Você é um avaliador de correspondência de evidências JSONL.

${question}

Tabela:
${table.label}

Uso da tabela:
${table.purpose}

Critérios de avaliação:
- ${firstRule}
- Campos JSONL a serem revisados: ${table.directFields.join(', ')}
- ${tableRules.join('\n- ')}
- ${decisionRules.join('\n- ')}
- Se apenas palavras amplas como Godot, Godot3, Godot4, migration, 2D, physics coincidirem, não há relação.
- Conteúdos mencionados negativamente no JSONL, como "does not describe", "not related", "unrelated", "does not apply", não são reconhecidos como evidência relevante.
- Se o JSONL tratar de outra API, outro nó ou outro sistema, a resposta é "não".
- Não use o conhecimento de Godot que você possui; utilize apenas as evidências de texto presentes no JSONL.
- A resposta deve ser apenas "sim" ou "não".

JSONL_GENERATED_FROM_CODE_VERSION:
${sourceVersionKey}

VERIFY_TARGET_CODE_VERSION:
${targetVersionKey}

SOURCE_CODE:
${sourceCode}

JSONL:
${jsonlText}

Normalização de Resposta

normalizeYesNo(text) aceita apenas as seguintes respostas como valores.

Forma de Entrada Valor Interno
yes
아니오 아니오
no 아니오
valor acima dentro de fence de código valor correspondente
valor acima na primeira linha valor correspondente
outro string vazia

5. Pré‑visualização do Prompt JSONL

buildJsonlPromptPreview() em app.js não é uma função que envia ao modelo, mas sim uma pré‑visualização exibida na tela.

Local de Chamada

Item Valor
Função do navegador renderSlot()
Chamada de API Nenhuma
Propósito Exibir a área de detalhes do JSONL 생성 프롬프트 dentro do slot

Texto Original da Pré‑visualização

Você é um gerador de JSONL para teste Godot RAG.

Objetivo: ${slotCase.goal}
Tabela alvo: ${table.label}
Uso da tabela: ${table.purpose}
Campos de correspondência direta: ${table.directFields.join(', ')}

TEST_ITEM: ${itemTitle}
CODE_VERSION: ${versionLabel}

${isMigrationPair ? `GODOT3_SOURCE_CODE:
${sourceCode || '(Código gerado automaticamente após criação do Godot 3)'}

GODOT4_TARGET_CODE:
${targetCode || '(Código gerado automaticamente após criação do Godot 4)'}` : `SOURCE_CODE:
${sourceCode || '(Código gerado automaticamente após criação)'}`}

Regras de criação de slot

A função getSlotSpecs(detail) em app.js cria slots de acordo com o resultado da classificação.

common

Se a classificação for common, os seguintes slots são criados.

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

Se a classificação for separate, os seguintes slots são criados.

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

Cálculo de expectedAnswer

expectedAnswer da resposta de geração JSONL

expectedAnswerForSlot({ tableName, versionKey, expectation }) devolve o expectedAnswer de getSlotCase().

expectedAnswer para comparação de resultados de verificação

As regras de expectedAnswerForVerification({ tableName, sourceVersionKey, targetVersionKey, expectation }) são as seguintes.

Condição expectedAnswer
expectation === negative Não
tableName === docs_chunks e sourceVersionKey === targetVersionKey Sim
tableName === docs_chunks e sourceVersionKey !== targetVersionKey Não
tableName é api_mapping ou label_prototypes e sourceVersionKey === migration, targetVersionKey === godot3 Sim
tableName é api_mapping ou label_prototypes e sourceVersionKey === migration, targetVersionKey !== godot3 Não
tableName é api_mapping ou label_prototypes e sourceVersionKey === godot3, targetVersionKey === godot3 Sim
Outros Não

Registro de alterações de prompt

Quando o prompt for modificado no futuro, adicione as alterações na tabela abaixo.

Data Função Texto/Regra antes da alteração Texto/Regra após a alteração Resultado da verificação
2026-07-13 geral Estrutura do prompt baseada no código atual Documentação de linha de base Registro concluído
buildClassificationPrompt()
buildCodePrompt()
buildJsonlPrompt()
buildVerificationPrompt()