8.5 KiB
8.5 KiB
Decisões técnicas e execução — 26/09/2026
Estado: validado tecnicamente para desenvolvimento local, por revisão do repositório e autorização do utilizador para validar as decisões pendentes e executar. Não representa mandato de uma entidade pública, validação de dados externos ou aprovação de produção.
Decisões adoptadas
| ID | Decisão e fundamento confirmado | Execução e limites |
|---|---|---|
| D-EDU-01 / B02 | O catálogo público usa opportunities.id bigint; os domínios novos usam UUID. Preservar ambos, com uma associação explícita, sem converter IDs existentes. |
education_investment_proposals tem UUID e referências a labour_demands e opportunities. Uma ficha inicial por procura; restrições únicas e bloqueio transaccional evitam duplicação. education_opportunities conserva a semântica de oferta calendarizada. |
| D-EDU-02 / B03 | Reutilizar sessão, email verificado e manage-portal para preparação interna. O registo público não concede acesso. |
As rotas novas estão no grupo de gestão, atrás de EducationEnabled. Não criar perfis institucionais ou OAuth/OIDC sem mandatos/issuer reais. A revisão por outro gestor continua distinta de validação oficial. |
| D-EDU-03 / B06 | Vagas formativas não equivalem a trabalhadores disponíveis. Fontes desconhecidas não equivalem a zero. A versão revista da procura é requisito para preparar uma proposta. | Comparação existente preservada; proposta referencia a versão revista e vigente. Alteração de versão produz conflito na criação e aviso na consulta da ficha anterior. Nenhuma soma de vagas é apresentada como défice laboral. |
| D-EDU-04 / B01 | A preparação de uma resposta pode ocorrer antes da decisão institucional; a publicação exige evidência que ainda não foi fornecida. | Criar apenas rascunhos, com fonte, riscos e intervenção obrigatórios; nenhum montante, instituição, capacidade ou projecto é inventado. A gestão geral também rejeita publicação de fichas educativas. Não chamar este estado de lacuna validada. |
| D-EDU-05 / B04 | Reutilizar a identidade do catálogo e o fluxo de interesse/CRM existente. Não duplicar investidores, contactos ou leads. | Ficha aponta para a oportunidade canónica. O encaminhamento educativo externo ainda não é activado: suitecrm:probe devolveu disabled; sem CRM homologado não declarar sincronização concluída. |
| D-EDU-06 / B05 | Nesta etapa não recolher beneficiários, dados académicos individuais ou localizações pessoais. | Ficha usa necessidades agregadas; campos de texto devem conter fontes e responsáveis institucionais, não listas de pessoas. Auditoria partilhada não replica o texto das fontes, riscos ou planos. |
| D-EDU-07 / B07 | Correspondência por regras não é IA. Não escolher fornecedor nem enviar dados a um modelo sem configuração e critérios aprovados. | IA permanece por configurar; sem inferência externa, decisão automática ou alegação de precisão. |
| D-EDU-08 / B08 | Indicadores internos devem medir apenas o que os dados sustentam. | Contagens de declarações, procura por rever e fontes expiradas, rotuladas como globais e sem efeitos dos filtros. Sem metas fictícias, taxas de emprego ou agregação indevida de trabalhadores. |
| D-EDU-09 | Alteração aditiva e reversão sem perda. | Nova migration não altera tabelas existentes; rollback recusa apagar fichas existentes. Reversão operacional: desactivar EDUCATION_ENABLED, preservar as tabelas e reconciliar antes de qualquer restauro. |
Contratos preservados e análise de impacto
- APIs públicas, IDs, estados e campos do catálogo mantidos. Não há API Education institucional nova.
- Novo POST interno:
/management/education/demands/{id}/investment. Exige versão, sector existente, título, intervenção, riscos, fonte e moeda de referência. Não define orçamento nem publica automaticamente. - A resposta de análise ganha
proposalesectors; a listagem ganha filtros e indicadores. Consumidores React alterados em conjunto. - A ficha contém necessidades opcionais de equipamentos, formadores e financiamento; ausência significa pendência, nunca custo zero.
- A gestão geral de oportunidades bloqueia publicação apenas das oportunidades ligadas a fichas educativas; oportunidades preexistentes continuam com o contrato anterior.
- A migration deve anteceder a activação do módulo. A verificação de publicação tolera a ausência da nova tabela durante o período de transição.
- O directório não contém
.git; não foi fabricada uma aprovação por branch ou revisão por pares. Estes controlos continuam obrigatórios antes de integração em repositório partilhado/homologação.
O que ainda exige confirmação externa
- Pilotos, responsáveis, fontes e mandatos institucionais reais; a autorização técnica não é evidência desses factos.
- Taxonomias nacionais, equivalências, disponibilidade de trabalhadores e regras de alocação.
- Processo e documentação de validação institucional para permitir publicação das propostas.
- SuiteCRM acessível, identidade técnica e testes de sincronização; issuer OAuth/OIDC para API institucional.
- Políticas de retenção, beneficiários/menores, fornecedor de IA e metas operacionais.
Estes itens não impedem a execução local das decisões técnicas acima. Continuam a impedir publicação oficial, integração externa e declaração de conclusão integral do MVP.
Execução comprovada
- Ambiente confirmado como
local, PostgreSQL em loopback. - Backup custom PostgreSQL, SHA-256 registado e restauro efectuado numa base isolada. Contagens das 66 tabelas reconciliadas antes da migração; o restauro não substituiu a base da aplicação.
- Aplicadas à base local apenas
2026_09_26_100000_education_intakee2026_09_26_110000_education_investment_proposals. - Após a migração, preservadas as contagens das tabelas existentes; o ledger de migrations ganhou exactamente duas entradas. Nenhum seed de demonstração ou dado institucional foi inserido.
EDUCATION_ENABLED=trueno.envlocal. Restantes configurações e lista de gestores preservadas. Seis rotas Education confirmadas. Acesso:/management/education, com conta gestora verificada.- Suite PHP: 109 testes, 961 verificações aprovadas. TypeScript, build e PHPStan dos controllers/modelo afectados aprovados. Não houve validação visual em navegador ou homologação institucional.
- Backup e manifesto mantidos em
storage/app/private/education-backup-20260926-105520/; inclui cópia protegida do ambiente anterior. Não publicar nem versionar esse directório. - Para reversão funcional, definir
EDUCATION_ENABLED=falsee limpar a cache de configuração. Conservar as fichas e tabelas; não executar rollback destrutivo de dados.