Skip to content

feat(fluig): teste unitário server-side, E2E como skill própria, sandbox descartável e gates unificados (2.3.0) - #18

Open
tbc-joaovitor wants to merge 1 commit into
feat/absorcao-interno-2026-08from
feat/absorcao-interno-fluig-2026-08
Open

tbc-joaovitor wants to merge 1 commit into
feat/absorcao-interno-2026-08from
feat/absorcao-interno-fluig-2026-08

Conversation

@tbc-joaovitor

Copy link
Copy Markdown
Contributor

Empilhado no PR do protheus 2.16.0 — mergear aquele primeiro.

Absorção das melhorias recentes do plugin fluig, adaptadas ao kit:

  • Teste unitário server-side sem servidor: harness fluig-mock.cjs (node:vm carrega o ds_*/wf_* inalterado — Rhino ES5 ⊂ Node) + node --test com JUnit e threshold de cobertura; mock com lado de escrita E leitura (rowsCount/getValue).
  • Lint em dois mundos: configs ESLint shipados (server-side ecmaVersion: 5 — let/const/arrow viram erro de parse; widget moderno), fluig-lint.sh roteado por tipo (age até em repo de datasets puro), convite ao /fluig:feedback nas mensagens de block.
  • /fluig:test-web: E2E com roteiro aprovado, evidências por passo, critério verificável literal e spec de regressão com JUnit (via PLAYWRIGHT_JUNIT_OUTPUT_NAME).
  • /fluig:base: sandbox Fluig descartável em Docker NA MÁQUINA DO DEV (projeto open-source com instalador baixado pelo próprio usuário — nada redistribuído), com aviso explícito de não subir no servidor de trabalho da equipe e perfil de recursos honesto.
  • /fluig:arqueologia (variante de AMBIENTE — sem código-fonte no repo, o mapa sai do publicado; LACUNA frequente é normal) + regressão + writeback pós-deploy.
  • .gates.json unificado com tests_unit.widget/server, criado no plan e retomável no implement; lista FECHADA de risco ALTO no qa; cobertura E2E por artefato da task.
  • Skills reescritas usam só as tools do tier do kit (searchKnowledge/ragSearchKnowledge/ragSearchDocs).

Review de contexto zerado aplicado (avisos A1-A4 corrigidos). Suíte completa do kit verde. A migração de tier das skills fluig NÃO tocadas fica na issue de dívida.

🤖 Generated with Claude Code

…es unificados (2.3.0)

Harness Node (fluig-mock.cjs) carrega ds_*/wf_*/eventos sem alterar o fonte e dá
gate mecânico por node --test com JUnit e cobertura — mais a checagem de existência
que a cobertura não faz: fonte que nenhum teste carrega é invisível no relatório.
A /fluig:test passou a separar as duas metades (widget pelo runner do projeto,
server-side pelo harness) e o limite de fidelidade ficou explícito: o Node valida a
lógica, não o Rhino.

O fluig-lint.sh roteia por mundo — ds_*, wf_*, events/ e Util/ lintados como ES5
(let/const/arrow quebram no servidor), rodando mesmo sem @po-ui no projeto; widget
segue no ESLint do projeto com fallback para o config do plugin.

Nova /fluig:test-web: roteiro aprovado, evidências por passo, critério verificável
literal, log do servidor no erro, e a sessão validada virando spec de regressão com
--reporter=junit. O /fluig:qa passou a exigir spec por artefato da task e ganhou
lista fechada de risco ALTO.

Nova /fluig:arqueologia (variante ambiente): sem fonte no repositório, o mapa da
fatia sai do que está publicado, com teto de confiança próprio. /fluig:plan ganha o
Passo 3.5 de regressão e /fluig:verify o writeback pós-deploy.

gates.json unificado em docs/fluig/plans/<slug>.gates.json, com tests_unit dividido
em widget/server (n/a explícito) e lint gate global antes dos reviews.

/fluig:brainstorm levanta os fatos antes de perguntar e trabalha por rodadas, com
recomendação rotulada. /fluig:api-ref reescrita sobre as tools realmente expostas.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant