Ir ao conteúdo
MISSÃO IPÊ

Registro de uma edição anterior. A direção atual usa histórias reais NASA e IPÊ somente como nome da equipe. Consulte o handoff R18 e os dados reais e fontes atuais. Propostas e estados abaixo conservam o corte original.

25 — Handoff do PROJETO IPÊ para dois desenvolvedores

Leitura atual R15: montagem 3D e handoff dos dois devs, guia didático completo e oportunidades NASA Science. Os registros abaixo preservam seus cortes; a R15 acrescenta a nave configurável aos três casos.

Entrada atual R14 · beta 0.5.0-beta.1: leia primeiro Três missões científicas e handoff da dupla. Estão implementados Cerrado, Bennu e Telescópio, cena orientada por eventos, quatro segmentos, revisão local de equipe e modelos NASA locais. Ativos e limites. A proposta R13 e o inventário R12 abaixo são históricos; use o documento 31 para o mapa atual e PUBLICADO.md para o recibo.

Direção de produto acrescentada na R13: começar pela revisão de Game Design 3D e pelo catálogo NASA 3D. A prioridade proposta é conectar a reprodução dos eventos à cena existente e tornar o redesign visível, em uma missão completa do Cerrado. A divisão E0–E5 do novo Game Design orienta esse incremento; o mapa de código e os invariantes abaixo continuam aplicáveis. As novas cenas e integrações são propostas, não recursos já entregues no beta. O restante deste documento conserva o corte R12.

Edição documental R12 · corte: 14/11/2026 · beta 0.4.0-beta.2 · motor 0.1.1-rd · catálogo ipe-64-v1.

Este documento permite retomar o projeto sem confundir o runtime atual, os registros históricos e as propostas. Os caminhos de código são relativos à raiz do repositório público PROJETO-IPE; não dependem de uma pasta pessoal de máquina. A divisão entre Dev A e Dev B é uma sugestão de responsabilidade, a confirmar no início de cada rodada.

A edição R12 amplia o contexto e a biblioteca de continuidade. O recibo atual de publicação deve ser consultado em PUBLICADO.md no repositório. Esta edição documental, isoladamente, não declara o deployment R12 concluído.

1. Objetivo e primeira leitura

O Ipê ensina engenharia de sistemas espaciais pela sequência prever → executar → investigar → redesenhar. O desafio atual é entregar seis registros históricos válidos de vegetação do Cerrado dentro das restrições de uma nave fictícia. Não é um simulador de voo qualificado, uma coleta MODIS feita pelo CubeSat nem uma campanha de asteroides já implementada.

Ler nesta ordem:

  1. README.md e PUBLICADO.md: entrada e recibo de publicação correntes. O recibo R11 permanece como histórico; a publicação R12 receberá seu próprio evidence/production-r12.json após o deployment e sua verificação.
  2. Plano de continuidade: estado do produto e próximos passos.
  3. experiments/mission-design-lab/README.md e docs/GUIA-DIDATICO-R9.md dentro desse diretório: como executar e demonstrar o beta atual.
  4. experiments/mission-design-lab/docs/REFINAMENTO-NASA-R10.md: refinamentos de pré-voo, requisitos, retorno científico e limites das referências NASA.
  5. Oportunidades NASA e oportunidades dos Estudos: propostas, sem adoção automática de ferramentas ou campanhas.
  6. PRD, PRT e contexto histórico: PRD, PRT, contexto e revisão de evidências.

Documentos R6–R10 preservam seu corte. Uma frase antiga sobre publicação pendente não substitui o recibo posterior; uma proposta antiga de funcionalidade também não comprova implementação atual.

2. Estado comprovado, documentado e proposto

ÁreaEstado no corte consultadoFonte e alcance
Produto principalBeta 0.4.0-beta.2 em /lab/index.html; clássico preservado em /game/index.htmlpackage.json, README e fontes do beta
Catálogo e cenáriosSeis escolhas binárias, 64 configurações por cenário; contatos longos e curtossrc/core/catalog.ts, search.ts e testes, no beta
RegrasMotor determinístico, ciência válida após recepção integral, orçamento e recursossrc/core/engine.ts, science.ts, power.ts, exact.ts
InterfaceBriefing, hangar, hipótese, pré-voo, diário de eventos, requisitos, comparação e retorno científicosrc/App.tsx, src/ui/ e modelos em src/lab/
Persistência/replayNavegador; importação estrita, hashes e recálculo pelo motorsrc/persistence/; hash não certifica autoria ou aprendizagem
Cena e laboratórioCena 3D conceitual com alternativa 2D; física exploratória independentesrc/ui/Scene.tsx, OrbitalScene.tsx, src/lab/physics.ts
Publicação R11 — históricoRecibo registra produção pública, 134 arquivos conferidos e ausência de divergênciasevidence/production-r11.json, verificado em 14/11/2026 às 18:44:04 UTC; não comprova a publicação R12
Contexto R12Biblioteca ampliada com estado, documentação do beta, Estudos completos e handoffCobertura e hashes no índice gerado após o build; recibo remoto corrente em PUBLICADO.md
Testes registrados101 de domínio do beta, 9 de UI, 51 do clássico, 24 verificações da central e 15 da distribuiçãoRegistro R11 e documentos de QA; reexecutar o conjunto pertinente após alteração
Observação de navegadorRecibo descreve partida 6/6, interações do portal e inspeção móvelEvidência delimitada ao ambiente observado; não representa auditoria geral de acessibilidade ou desempenho
Semente/RaízesNomes narrativos propostos sobre os dois cenários existentesNão há quatro níveis desbloqueáveis implementados
Copa/HorizontePlanejadosDONKI e campanha de pequenos corpos ainda não integrados
Contas, backend, Prisma, multiplayerNão implementados na experiência atualPrisma é contrato de evolução; jogo funciona sem banco remoto
Aprendizagem, acessibilidade completa e recarga offline a frioNão estabelecidasExigem protocolos e evidências próprios; não inferir a partir do número de testes
Candidatura Space AppsElegibilidade e Resources ainda exigem confirmaçãoPublicação do produto não equivale a inscrição ou aceite oficial

A publicação R11 identifica o commit 2adff7a17912d890d893ee604c081d4c798e5315. Alterações posteriores devem receber seu próprio commit e recibo; este texto não deve reaproveitar esse SHA para uma edição diferente.

3. Invariantes que orientam qualquer alteração

4. Mapa de fontes e código

O diretório principal do beta é experiments/mission-design-lab/, apesar do nome histórico “experiments”. A raiz também contém uma aplicação clássica. Confirmar o alvo antes de editar arquivos com nomes iguais.

CaminhoResponsabilidadeVerificação relacionada
experiments/mission-design-lab/src/core/contracts.tsTipos, versões e contrato de entradas/resultadosTestes de domínio e consumidores de Worker/replay
experiments/mission-design-lab/src/core/catalog.tsComponentes, cenário, configuração padrão e totaistests/engine.test.mts, adversarial.test.mts
experiments/mission-design-lab/src/core/engine.tsSimulação da campanhaMotor, ciência e oracle dos testes
experiments/mission-design-lab/src/core/science.ts, power.ts, exact.tsValidação científica, potência e aritméticaDomínio e casos adversariais
experiments/mission-design-lab/src/core/search.tsEnumeração do catálogo e alternativasBusca completa e distância de alterações
experiments/mission-design-lab/src/data/science-data.ts e public/data/Registros compilados e arquivos científicos preservadosProveniência, hashes, qualidade e interpretação
experiments/mission-design-lab/src/workers/Trabalho assíncrono, validação, cancelamento e fallbackContratos de resposta e navegador com Worker real
experiments/mission-design-lab/src/persistence/IndexedDB, identidade, JSON estrito, importação e replaypersistence.test.mts, replay.test.mts
experiments/mission-design-lab/src/lab/Pré-voo, requisitos, retorno científico e física independenteTestes correspondentes em tests/
experiments/mission-design-lab/src/ui/Componentes visuais, texto e interaçãotests-ui/, roteiro de navegador e revisão de conteúdo
experiments/mission-design-lab/src/App.tsxNavegação, estado da tentativa e coordenaçãoJornada React; arquivo compartilhado sob coordenação
web/index.htmlPortal de entrada, contexto, oportunidades e etapasNavegação, responsividade e links finais
context/project-context.json, context/schedule.jsonConteúdo editorial e planejamentoscripts/test-context-hub.mjs
context/index.template.htmlInterface da centralBuild da central e teste DOM
scripts/build-research-library.mjsBiblioteca documental e índice de hashesInclusão, corte, projeção pública e busca
scripts/build-beta-site.mjs, prepare-vercel-static.mjsÁrvore pública curada e preparação para hospedagemscripts/test-beta-site.mjs, manifesto e HTTP
src/, tests/, dist/ da raizJogo clássico preservadoTestes/build próprios; não são o beta /lab/
prisma/schema.prismaContrato futuro de dadosNão há banco implantado a validar como se existisse
presentation/, architecture/, research/Pitch, mapa e pesquisasInspecionar corte e fonte antes de atualizar afirmações

site/, os HTML gerados em context/, a biblioteca compilada e os diretórios dist/ são saídas de geradores. Alterar sua fonte e reconstruir; editar apenas a saída cria divergência no próximo build.

5. Divisão sugerida entre Dev A e Dev B

ResponsávelOwnership principalEntregas iniciais
Dev A — motor, ciência e integridadeNo beta: src/core/, src/data/, src/workers/, src/persistence/, src/lab/, tests/; curadoria de public/data/Confirmar baseline, explicar casos testemunha, revisar unidades e preservar contratos/replay
Dev B — experiência, conteúdo e distribuiçãoNo beta: src/ui/, CSS e tests-ui/; fora dele: web/, context/, documentação, apresentação e scripts de distribuiçãoEnsaiar jornada, corrigir barreiras observadas, consolidar biblioteca e verificar publicação estática
Compartilhado, um editor por vezsrc/App.tsx, contratos consumidos pelas duas frentes, package.json, lockfiles, versões, manifestos e recibo finalNegociar alteração antes de editar; Dev A define o contrato de domínio, Dev B adapta a interface; uma pessoa integra a release

Esses papéis não exigem duas reimplementações. Dev B reutiliza os modelos do Dev A; Dev A não muda texto/fluxo incidentalmente ao corrigir o motor. Mudanças apenas visuais não devem modificar o contrato científico.

A divisão pode ser invertida conforme experiência da dupla. O importante é registrar dono do arquivo e critério de integração antes de trabalho paralelo.

6. Backlog inicial executável

ID / prioridadeResponsávelTarefaDependênciaAceite
H01 / P0A + BReproduzir a versão de partida e registrar ambiente/commitCheckout e Node compatívelBuild e testes pertinentes executados; falhas registradas com saída real; nenhum resultado histórico apresentado como execução nova
H02 / P0B, com A revisando causasEnsaiar a jornada do guia R9: longo → curto → redesign → comparaçãoH016/6 → 2/6 → 6/6 nos casos documentados, dentro dos limites; hipótese própria preservada; registro de ajuda e bloqueios
H03 / P0BConferir teclado, foco, zoom 200%, tela estreita e fallback 2DH01Objetivos essenciais completos sem arrastar, som ou manipulação do canvas; correção delimitada dos problemas encontrados
H04 / P0AConferir importação, versões e resultado imutávelH01Replay compatível recalculado; inválido recusado; mudar configuração não reutiliza resultado; falha de armazenamento comunicada
H05 / P0B + revisor AConferir o contexto consolidado na R12 e registrar decisões da próxima rodadaBiblioteca e handoff R12Índice, fontes e links conferidos; dono, objetivo e aceite da próxima tarefa registrados; cortes históricos preservados
H06 / P1B + responsável pelo produtoObservar uso com pessoas usando protocolo existenteH02–H03Sessões reais separadas de testes; registrar explicação, ajuda e limites; não exigir dado pessoal para a tarefa
H07 / P1A + BRefinar um diagnóstico frequente e uma ficha de engenhariaH06 e fonte selecionadaMensagem usa evento/unidade corretos; fato NASA separado de hipótese; verificar compreensão do trecho alterado
H08 / P1A mede; B comunicaDeterminar contrato offline do betaH01Testar perda de rede, sessão carregada, recarga e primeiro acesso; documentar resultado antes de propor cache/PWA
H09 / P2A, com B definindo narrativaEspecificar snapshots para futura campanhaValidação da campanha atual e contrato de dados aprovadoProveniência, unidades, erros, ausência de dado e replay definidos; nenhuma chamada JPL concorrente
H10 / P2A + BPrototipar campanha limitada de pequenos corposH09 e revisão científicaObjetivo novo explícito, poucos alvos compatíveis, critério próprio e regressão do CubeSat; não rebatizar demonstração como missão validada

H06 depende de disponibilidade de participantes e decisões do responsável pelo produto. Enquanto isso, a dupla pode concluir H01–H05 e o ensaio técnico H08. Não inventar participantes ou resultados para destravar a próxima etapa.

7. Comandos existentes e o que cada um comprova

Requer Node 24 ou superior segundo os manifests; usar versões fixadas pelos lockfiles. Os comandos abaixo foram conferidos nos scripts existentes, mas não foram reexecutados durante a redação deste handoff. Instalação depende de rede ou cache disponível.

Na raiz do repositório, para instalar as duas árvores de dependências já existentes:

npm ci --ignore-scripts --no-audit --no-fund
npm --prefix experiments/mission-design-lab ci --ignore-scripts --no-audit --no-fund

Para desenvolver e verificar o beta:

npm --prefix experiments/mission-design-lab run dev
npm --prefix experiments/mission-design-lab test
npm --prefix experiments/mission-design-lab run test:ui
npm --prefix experiments/mission-design-lab run verify

verify do beta executa domínio, UI em jsdom e build com verificação de tipos. O build também regenera a pesquisa pública do beta. Após verify passar, não repetir testes idênticos sem mudança ou dúvida nova; seguir para o ensaio de navegador que eles não cobrem.

Para montar e inspecionar a distribuição completa:

npm run build:release
npm run test:context
npm run test:beta
npm run start:beta

O servidor da distribuição usa http://127.0.0.1:4175/. build:release compila o beta, monta site/ e prepara os arquivos Vercel. test:context verifica a central em ambiente simulado; test:beta verifica a distribuição/HTTP. Esses comandos não publicam na Vercel nem comprovam produção.

Se a alteração atingir a aplicação clássica na raiz:

npm test
npm run build

Esse build recompila o clássico. Ele não substitui a compilação de experiments/mission-design-lab/. Preservar os dois alvos e rodar somente as verificações justificadas pela mudança e pelos contratos compartilhados.

8. Coordenação para evitar conflito

  1. No início, registrar branch/commit, estado de trabalho e os arquivos atribuídos a cada pessoa. Não reverter mudanças desconhecidas ou limpar o diretório para obter uma árvore artificialmente limpa.
  2. Dividir tarefas por responsabilidade e critério de aceite, não apenas por tela. Uma correção de resultado pertence ao modelo; uma mudança de rótulo pertence ao conteúdo, com revisão de unidade quando necessário.
  3. Antes de mudar MissionResult, versões, catálogo ou persistência, Dev A escreve o contrato e impacto em Worker/replay. Dev B confirma os consumidores. Coordenar App.tsx com um editor de cada vez.
  4. Usar commits pequenos por tarefa e branches separadas quando útil. Não sobrescrever histórico remoto; integrar a partir do estado corrente e resolver conflitos entendendo as duas mudanças.
  5. Eleger um integrador por rodada. Somente ele regenera a distribuição final, biblioteca, hashes e recibos depois de integrar as fontes. Evitar que duas pessoas publiquem builds diferentes sobre a mesma URL ao mesmo tempo.
  6. Encerrar cada tarefa com mudança, motivo, verificação executada, saída relevante e limite. Atualizar o documento de estado quando a proposta efetivamente virar implementação.

Novas dependências, migrações de major, banco ou serviços externos precisam de justificativa específica e autorização aplicável; não são decorrência automática dos estudos. As permissões de publicação pertencem à solicitação e ao destino autorizados pelo proprietário, não a um arquivo de handoff.

9. Limites NASA, ciência e desafio

As oportunidades detalhadas estão em 21 — Oportunidades NASA. Para desenvolvimento:

Não aplicar as regras SENATRAN dos Estudos ao Space Apps. Não afirmar que publicação, logo NASA, uso de dados ou número de testes estabelecem endosso, premiação ou qualificação de voo.

10. Biblioteca ampliada na R12

O acervo reúne 84 documentos: inclui também os contratos de implementação das duas aplicações, especificações, kit de apresentação, documentação pública, guia das ferramentas e seis pesquisas R9–R10 do beta. Cópias geradas não entram duas vezes; licenças de terceiros permanecem nos diretórios próprios. O índice gerado registra as fontes e os hashes de cada edição.

O gerador da biblioteca foi ampliado para reunir o contexto de produto e de continuidade. A cobertura configurada inclui:

A distribuição R12 também seleciona páginas individuais de identidade visual, oportunidades dos Estudos, handoff e tipografia. A síntese não substitui os documentos integrais nem converte referências em funcionalidades implementadas.

Depois de cada build, o índice gerado da biblioteca é a evidência da cobertura efetivamente empacotada: traz data de geração, fontes, identidades e hashes. Conferir esse índice e a biblioteca navegável, em vez de inferir inclusão apenas porque um arquivo existe no repositório. O PUBLICADO.md incorporado a um build conserva o corte daquele empacotamento; o recibo corrente deve ser consultado no repositório, inclusive quando for produzido depois do build.

As projeções dos Estudos preservam os corpos históricos com contexto e redação de credencial de exemplo. Os originais pessoais não foram alterados. Nenhum ZIP, log, imagem ou aplicação apenas mencionado nos textos foi inventado ou anexado. Relatórios brutos, arquivos de ambiente, histórico privado e dados de participantes permanecem fora da seleção pública.

11. Fechamento de uma rodada

Uma rodada está pronta para revisão quando a dupla consegue apontar: problema resolvido; arquivos e contratos afetados; teste ou observação pertinente; fonte dos números; limitações restantes; commit que será publicado; e versão do pacote resultante.

Depois de uma publicação autorizada, verificar as rotas públicas, o carregamento do beta e a correspondência do manifesto, registrando o deployment e o commit de origem. Atualizar PUBLICADO.md com evidência nova; conservar o recibo anterior como histórico. Não declarar produção concluída apenas porque o build passou.

A primeira continuidade recomendada é H01–H05: reproduzir, ensaiar, corrigir barreiras reais e conferir o contexto consolidado antes de registrar a próxima decisão. O trabalho posterior deve seguir o que essa verificação revelar, preservando a missão atual.

Documento público. Ler o Markdown desta edição. Estado e curadoria no manifesto da publicação.