Repository navigation
Closed
Description
T-303 - Alinhar a trilha dos dados de demonstração com a forma gravada pelo pipeline
- Componente:
deploy(deploy/scripts/seed.py). - Depende de: T-301, que cria a coluna
resultado_id. - Data máxima: 06/11/2026
- Estimativa: 2 pontos (Fibonacci)
Entregável
- Linhas de trilha dos cenários do seed com as etapas, as referências e os campos da conclusão que o pipeline grava.
-
resultado_idgravado nas linhas de decisão e de sugestão. - Linhas de
interpretacao_resultadoremovidas da trilha do seed. - Linha de
explicacaona forma da etapa de explicação, nos cenários que gravam explicação.
Descrição
O seed grava linhas de trilha que o pipeline não produz. Elas incluem as etapas interpretacao_resultado e explicacao, fontes e elementos_implementados na geração e simulacao_id na delegação e na decisão. Uma consulta ou tela da trilha testada contra esses dados parece mais completa do que a trilha real. Esta tarefa alinha a trilha do seed com a forma que o pipeline grava depois da T-301 e da T-302.
Contexto e decisões tomadas
- As linhas vêm da lista
trilhasde cadaCenario(viavel,inviavel,assercao_violadae os derivados porreplace) e deTRILHA_REFERENCIAS, que diz quais ids cada etapa recebe.seed_cenariomonta os ids comseed_id(cenario.chave, ...), inclusive o do resultado. - Os cenários são de formulário e não passam por extração. Por isso nenhuma linha leva
fontes. - O nó de decisão grava
encaminhamentocom um dos valoressugestao_adaptacao,busca_meta,correcao_codigooufim(decision.pyecorrecao_codigo.py). Um resultado inviável leva asugestao_adaptacao. - A tabela
explicacoese o texto de explicação dos cenários pertencem à US05 e não mudam aqui. Só o cenário viável, e os que o copiam, gravam explicação. - A etapa de explicação é criada pela T-317 e roda depois da decisão. A linha
explicacaodo seed segue a forma dela, comresultado_ideexplicacao_id, para que as narrativas gravadas emexplicacoescontinuem ligadas à trilha. O campodesfecho_explicacaosó entra no contrato com a T-316, depois desta tarefa, e não é gravado aqui.
Escopo
Dentro do escopo
- As listas
trilhasdos cenários eTRILHA_REFERENCIASemdeploy/scripts/seed.py.
Fora do escopo
- A lista
USUARIOS. O papel da conta[email protected]foi trocado à mão no Keycloak do staging, e rodar o seed com outra lista pode revertê-lo. - A tabela
explicacoes, as transições e as ações dos cenários. - Novos cenários de busca da meta, de correção do código ou de derivação.
Requisitos
- Em
TRILHA_REFERENCIAS, adelegacao_workerpassa a receber sóregra_id. Adecisaopassa a receberregra_ideresultado_id, semsimulacao_id. Ageracao_codigomantémregra_id,prompt_idecodigo_gerado_ide passa a receber tambémsimulacao_id, como a API grava. Remover a entrada deinterpretacao_resultado. Aexplicacaopassa a receberregra_id,resultado_ideexplicacao_id, semsimulacao_id. - Na conclusão da
geracao_codigo, removerfonteseelementos_implementadose acrescentarmodo_geracaoigual agerado. - Na conclusão da
confirmacao, removerfontese usar a forma queTrilhaDaConfirmacaograva, comresumo,editado_pelo_usuarioecampos_corrigidos. - Na conclusão da
decisao, acrescentar oencaminhamentoque o nó gravaria para o desfecho do cenário, conferido emdecision.py, e um resumo equivalente ao do nó. - No cenário com sugestão, acrescentar a linha
sugestao_adaptacaocomresultado_idemotivo_sugestaoigual aproposta. Incluirsugestao_adaptacaoemTRILHA_REFERENCIAScomregra_ideresultado_id. Oresultado_idresolve pela chave"resultado"deids, pelo mesmo mecanismo das demais referências. - Remover as linhas
interpretacao_resultadode todos os cenários. Manter a linhaexplicacaosó nos cenários que gravam explicação, depois da decisão, com o resumo e semdesfecho_explicacao. - Toda conclusão gravada pelo seed deve validar contra
contracts/domain/trilha-conclusao.schema.json.
Contexto técnico
- Entradas: cenários de
seed.py. - Saídas: linhas de
trilhas_auditoriana forma gravada pelo pipeline. - Componentes afetados:
deploy/scripts/seed.py. - Restrições: não alterar
USUARIOS; não rodar contra o staging como parte desta tarefa. - Referências:
contracts/domain/trilha-conclusao.schema.json,codegen/app/graph/nodes/decision.py,api/src/main/java/synapse/api/job/TrilhaDaConfirmacao.java. O modo de uso do seed está no cabeçalho deseed.py.
Critérios de aceitação
- O seed roda sem erro num banco local recém-migrado com a T-301.
- Nenhuma linha gravada pelo seed tem
noigual ainterpretacao_resultado. - Cada linha
explicacaoaponta a explicação e o resultado do próprio cenário, e nenhum cenário sem explicação tem essa linha. - As linhas
decisaoesugestao_adaptacaodo seed apontam o resultado do próprio cenário. - Toda
conclusaogravada pelo seed valida contra o schema.
Definição de concluído (DoD)
- Seed executado num banco local limpo, com a consulta da trilha dos cenários conferida.
- Conclusões gravadas validadas contra o schema com
jsonschema, usando as dependências decontracts/requirements.txt. O seed não tem teste automatizado.
Observações
- O seed insere com
ON CONFLICT (id) DO NOTHING. Rodá-lo num banco já semeado não atualiza as linhas de trilha existentes nem remove as de interpretação e explicação. A forma nova só aparece num banco limpo, e um ambiente já semeado precisa de decisão própria antes de qualquer limpeza. - O seed não grava busca da meta, correção do código nem derivação. A forma dessas linhas fica coberta pelos testes da T-302.
Activity