O que a suíte valida antes de confiar nos dados.
O modo offline prova contratos, roteamento, SQL, escopo e transformações locais. O modo live confirma que os comandos documentados continuam executando contra o Oracle DV com a sessão atual.
testes offline passaram
testes live passaram
falhas na última execução
data registrada
Metodologia
Os testes usam node:test. Eles leem SKILL.md, references/script-catalog.md,
references/initial-context-catalog.md e references/api-map.md como fonte da verdade,
evitando uma cópia paralela de parâmetros e regras dentro da própria suíte.
Não chama o Oracle DV. Testa se a CLI escolhe o caminho certo, monta os filtros certos e preserva o contrato de saída.
Chama o Oracle DV com --no-cache. O runtime de autenticação é copiado para uma área temporária de teste.
Testes offline
Estes testes respondem: "a skill monta a consulta e a resposta certas?". Eles não provam disponibilidade do Oracle DV nem volume real de dados.
| Teste | Objetivo | Entrada | Resultado esperado | Saída observada | Status | Avaliação |
|---|---|---|---|---|---|---|
date-window |
Validar atalhos de data e rejeição de combinações inválidas. | resolveDateWindow com --date, --month, --quarter, --week e conflito. |
Ranges conforme catálogo e erro para argumentos conflitantes. | single=2026-05-02; month=2026-04-01..2026-04-30; quarter=2026-03-01..2026-05-31; week=2026-03-22..2026-03-28; inválido rejeitado. |
PASS | Correto. |
sa-attach-defaults |
Confirmar defaults e aliases de SA Attach vindos do catálogo inicial. | parseSaAttachDefaults, parseSaAttachAliases e resolveSaAttachFilters. |
Cluster, soluções, status, LOBs, tipos de receita e aliases aplicados. | cluster=Brazil; solutions=3; statuses=3; aliases validados. |
PASS | Correto. |
current-workload-defaults |
Verificar os defaults dos intents de workload atual. | applyCurrentWorkloadIntentDefaults para owner atual e mês explícito. |
current-quarter, Cloud Infrastructure - Workloads e WORKLOAD; mês explícito preservado. |
quarter=current-quarter; solution=Cloud Infrastructure - Workloads; revenueTypeGroup=WORKLOAD; mês preservado. |
PASS | Correto. |
sa-attach-window-sql |
Evitar regressão no campo usado para filtro de close date. | buildSaAttachOpportunityWhereClauses com janela 2026-03-01..2026-05-31. |
Usar Revenue Line Close Date, incluir forecast/owner e não usar Revenue Line Close Year. |
Campo correto usado; forecast/owner incluídos; Revenue Line Close Year ausente. |
PASS | Correto. |
scope-sql |
Validar regras de escopo org-wide e my-team nos SQLs gerados. | renderViewSql para Presales Aux, Hours e srs-by-resource-email. |
Org-wide sem SEC_ARIA; my-team com SEC_ARIA; SR por recurso usa levels 1..4; lead só quando explícito. |
Regras confirmadas para org-wide, my-team, SR team e lead explícito. | PASS | Correto. |
current-team-summary |
Garantir que oportunidades sem cobertura do time continuam no resultado misto. | summarizeCurrentTeamOpportunityCoverage com 2 oportunidades e 1 cobertura. |
2 records; 1 matched; 1 unmatched; totais comerciais preservados. | records=2; matched=1; unmatched=1; totalWorkload=125000. |
PASS | Correto. |
manager-resource-summary |
Validar resumo org-wide por manager/recurso e enriquecimento opcional com SRs. | summarizeOrgWideRevenueLineCoverage com cobertura Aux e cenário com SR injetado. |
Recursos preservados; SR omitido por padrão; SR direto e candidato interno distinguidos quando injetados. | defaultResourceDetails=2; SR omitido; linkage direct-plus-candidate-internal; resourcesMatched=2. |
PASS | Correto. |
api-metrics |
Confirmar que métricas contam linhas brutas do backend, não cache local. | buildApiMetrics com resultados de 3 + 2 linhas e uma leitura local. |
totalRowsPulledFromApi=5; cache local ignorado no total. |
totalRowsPulledFromApi=5; queries=3; cache local ignorado. |
PASS | Correto. |
sales prompt commands |
Verificar se prompts comuns viram comandos CLI curtos, diretos e documentados. | Casos de tests/prompts/sales-prompts.json. |
Um modo por comando; sem discovery desnecessário; flags documentadas; intents citados nas referências. | Todos os prompts seguiram o contrato esperado. | PASS | Correto. |
people examples |
Evitar e-mails fake hard-coded nos prompts de teste. | Serialização dos prompts e placeholders esperados. | Usar placeholders como {{resourceManagerEmail}}, {{territoryOwnerEmail}} e {{resourceMember}}. |
Placeholders dinâmicos encontrados; e-mails fake padrão não apareceram. | PASS | Correto. |
intent CLI contract |
Garantir que comandos de intent batem com o contrato exposto pela própria CLI. | --list-parameters e --describe-intent para intents usados nos prompts. |
Flags existem no catálogo global e no contrato do intent; defaults atuais documentados. | Contratos bateram; defaults de workload atual e descrição do intent manager/resource validados. | PASS | Correto. |
ad-hoc-query |
Confirmar que query ad hoc renderiza como leitura org-wide de oportunidades. | --query --select opportunityId,customerName,closeDate,bookingValue,workloadAmount --where "closeDate = DATE '2026-05-02'" --render-sql. |
Modo query; escopo org-wide; fonte comercial primária; sem SEC_ARIA; aliases documentados. |
Query org-wide renderizada na fonte comercial primária, sem fallback para DV - SE Team. |
PASS | Correto. |
Testes live
Estes testes confirmam execução real contra o Oracle DV com --no-cache. A tabela mostra os prompts
com placeholders, porque os e-mails reais são resolvidos dinamicamente durante a execução.
| Caso | Prompt executado | Objetivo | Comando validado | Resultado esperado | Última saída | Status | Escopo |
|---|---|---|---|---|---|---|---|
generic-pipeline |
Me traga o pipeline de oportunidades no Knowledge One View. | Validar leitura genérica de pipeline. | --intent opportunities-default --limit 1000 |
Fonte comercial primária, org-wide, sem fallback, pelo menos 100 registros. | records=1000; apiRows=1000. |
PASS | Knowledge DV - Opportunities - V2; org-wide. |
exact-close-date |
Quais oportunidades fecham em 2026-05-02? | Validar close date exato. | --intent opportunities-close-date --date 2026-05-02 --limit 1000 |
Fonte comercial primária, org-wide, sem fallback, pelo menos 1 registro. | records=11; apiRows=11. |
PASS | Knowledge DV - Opportunities - V2; org-wide. |
calendar-month |
Quais oportunidades fecham em abril de 2026? | Validar janela de mês calendário. | --intent opportunities-close-month --month 2026-04 --limit 1000 |
Fonte comercial primária, org-wide, sem fallback, pelo menos 11 registros. | records=1000; apiRows=1000. |
PASS | Knowledge DV - Opportunities - V2; org-wide. |
manager-week |
Quais oportunidades do manager {{resourceManagerEmail}} fecham na week 43? |
Validar oportunidades por manager de recurso em uma week. | --intent opportunities-by-manager-close-window --manager-email {{resourceManagerEmail}} --week w43 --week-year 2025 --limit 10 |
Comercial org-wide com alocação via Presales Aux; sem fallback. | records=10; apiRows=11. |
PASS | Opportunities org-wide + Presales Involvement Aux org-wide. |
owner-workload-current |
Me mostre os workloads em forecast agora do vendedor {{territoryOwnerEmail}}. |
Validar workloads em forecast para vendedor. | --intent workloads-by-owner-current --owner-email {{territoryOwnerEmail}} --forecast-type Forecast --limit 10 |
Fonte comercial primária, org-wide, sem fallback. | records=1; apiRows=1. |
PASS | Knowledge DV - Opportunities - V2; org-wide. |
owner-manager-workload-current |
Quais workloads em forecast agora dos owners abaixo de {{territoryManagerEmail}}? |
Validar workloads para owners sob manager comercial. | --intent workloads-by-owner-manager-current --owner-manager-email {{territoryManagerEmail}} --forecast-type Forecast --limit 10 |
Fonte comercial primária, org-wide, sem fallback. | records=9; apiRows=9. |
PASS | Knowledge DV - Opportunities - V2; org-wide. |
manager-resource-next-7-days |
Workloads com close date nos próximos 7 dias em oportunidades com recursos abaixo de {{resourceManagerEmailA}} e {{resourceManagerEmailB}}. |
Validar workloads próximos por managers de recurso. | --intent workloads-by-manager-resource-close-window --manager-email-list {{resourceManagerEmailList}} --from-date today --to-date +7d --limit 10 |
Comercial org-wide, alocação org-wide por Presales Aux, sem consultas a DV - SE Team. |
records=4; apiRows=15. |
PASS | Opportunities org-wide + Presales Involvement Aux org-wide. |
resource-srs |
Quais SRs estão com {{resourceMember}} agora? |
Validar busca de SRs por recurso. | --intent srs-by-resource --resource {{resourceMember}} --limit 10 |
Leitura em DV - SE Team, escopo my-team-only, array de records válido. |
records=0; apiRows=0. |
PASS | DV - SE Team; my-team-only. |
current-team-close-window |
Quais oportunidades fecham nos próximos 4 dias e têm recursos do meu time? | Validar oportunidades org-wide enriquecidas com recursos do time atual. | --intent opportunities-current-team-close-window --from-date today --to-date +4d --limit 10 |
Escopo mixed-consistent; oportunidades org-wide; recursos do time atual; linhas sem match preservadas. | records=10; apiRows=12. |
PASS | Opportunities org-wide + resources current team. |
Como executar
Rode a partir de /Users/marceloarbore/.codex/skills/knowledge-one-view-cli. Nesta máquina,
o shell do agente usou o Node do runtime do Codex porque node não estava no PATH.
node tests/run.mjs
KNOWLEDGE_ONE_VIEW_LIVE=1 \
ORACLE_SI_RUNTIME_HOME=/Users/marceloarbore/code/fusion/knowledge-one-view-cli/runtime \
node tests/run.mjs
/Users/marceloarbore/.cache/codex-runtimes/codex-primary-runtime/dependencies/node/bin/node tests/run.mjs