loader image

Acelere a Descoberta de
Inovação em sua Empresa

Oferecermos diagnósticos detalhados para os objetivos de inovação da sua empresa. Obtenha direcionamento estratégico com OKRs e impulsione seu negócio para inovação disruptiva.

Guia rápido — uso do Disruplab Innovation Navigator™

  1. Preencha Empresa Direcionamento de inovação (2–5 frases, com metas e prazos) LGPD: marque o consentimento (obrigatório).
  2. Execute Clique “⚙️ Rodar Pipeline (IA)” Acompanhe progresso (%) e log das etapas (JTBD → TRIZ → Relatório)
  3. Imprimir/Copiar da Tela “Imprimir” (dica: “Salvar como PDF”) Copie e Cole no aplicativo de sua preferência.
Disruplab Innovation Navigator™ — versão Municipal
Direcionamento público → Necessidades (JTBD) → TRIZ → Relatório + OKRs + Checklist.
Identificação Municipal
Sumário
Prefeitura: — • Aguardando
0
Score (0–100)
Pilares
Nível de Confiança
Pipeline IA
Necessidades do cidadão: aguardando…
TRIZ: aguardando…
Relatório: aguardando…
0% — Iniciando…
Probabilidade de Êxito
Radar dos Pilares
Necessidades do Cidadão (JTBD – IA)
    Jobs Historys do Munícipe
    TRIZ — Contradições & Princípios (IA)
    Frequência de Princípios TRIZ
    Encadeamento (Necessidades → TRIZ → OKRs)
    OKRs/Metas (visão geral)
    Checklist de Execução Pública
    POCs/Experimentos recomendados
    Mapa de Iniciativas
    Relatório Executivo
    `; } function openPDFWindowAndPrint(){ const html=buildPDFHTML(); const w=window.open('','_blank'); if(!w){alert('Popup bloqueado. Permita popups para gerar o PDF.');return;} w.document.open();w.document.write(html);w.document.close();w.focus();setTimeout(()=>{w.print();},250); }const bindResizeOnce=()=>{if(resizeBound)return;window.addEventListener('resize',()=>{if(!lastCharts)return;const {JTBD,trizObj,score,prob}=lastCharts;drawRadar('chart-radar',score);drawJobsHistorys('chart-jtbd-gap-fw',JTBD);drawTRIZFreq('chart-triz-freq-fw',trizObj);drawProbability('chart-prob',prob.percent,prob.note);},{passive:true});resizeBound=true;}; bindResizeOnce();byId('dlab-run').addEventListener('click',async()=>{ if(running) return;/* Valida antes de mexer no UI para evitar “travado no início” */ if(!isValidKey(OPENAI_API_KEY)){ alert('Chave da OpenAI ausente/ inválida. Edite OPENAI_API_KEY no código.'); return; }const f=document.getElementById('dlab-form'); if(!f?.elements?.['consentimento_lgpd']?.checked){ alert('Confirme o consentimento.'); return; }resetOutputs('processing');try{ running=true; const ctx={prefeitura:(f.elements['prefeitura']?.value||'').trim(),secretaria:(f.elements['secretaria']?.value||'').trim(),direcionamento:(f.elements['direcionamento']?.value||'').trim()}; byId('dlab-report-sub').textContent=`Prefeitura: ${ctx.prefeitura||'—'} • Processando`; byId('dlab-run').disabled=true;setStep('jtbd','run','Necessidades: gerando…');setProgress(15,'Etapa 1/3 — Necessidades do cidadão'); const jtbdObj=await callOpenAI({temperature:0.2,top_p:0.9,max_tokens:1400,response_format:{type:"json_object"},messages:[{role:'system',content:'Responda apenas JSON.'},{role:'user',content:pJTBD(ctx)}]}); setStep('jtbd','ok','Necessidades: ok'); const JTBD=normalizeJTBD(Array.isArray(jtbdObj?.jtbd)?jtbdObj.jtbd:[]); renderJTBDFW(JTBD);setStep('triz','run','TRIZ: analisando…');setProgress(45,'Etapa 2/3 — TRIZ'); const trizObj=await callOpenAI({temperature:0.25,top_p:0.9,max_tokens:1600,response_format:{type:"json_object"},messages:[{role:'system',content:'Responda apenas JSON.'},{role:'user',content:pTRIZ({jtbd:JTBD})}]}); setStep('triz','ok','TRIZ: ok'); if(Array.isArray(trizObj?.contradicoes)){trizObj.contradicoes=trizObj.contradicoes.map(c=>({...c,triz_principios:toArr(c.triz_principios).map(mapTrizName)}));} renderTRIZFW(trizObj);setStep('rep','run','Relatório: consolidando…');setProgress(75,'Etapa 3/3 — Relatório'); const repObj=await callOpenAI({temperature:0.25,top_p:0.9,max_tokens:2000,response_format:{type:"json_object"},messages:[{role:'system',content:'Responda apenas JSON.'},{role:'user',content:pREPORT({prefeitura:ctx.prefeitura,secretaria:ctx.secretaria,direcionamento:ctx.direcionamento,jtbd:JTBD,triz:trizObj})}]}); setStep('rep','ok','Relatório: ok'); repObj.okrs=extendOKRs(repObj.okrs,JTBD,trizObj);const score=computeScore(JTBD,trizObj,repObj);renderPillars(score);byId('dlab-score').textContent=score.overall.toFixed(1); const prob=computeProbability(JTBD,trizObj,repObj,score);drawProbability('chart-prob',prob.percent,prob.note); const conf={Necessidades:Math.round(statsJTBD(JTBD).sJTBD),TRIZ:Math.round(statsTRIZ(trizObj).sTRIZ),OKR:Math.round(statsOKR(repObj).sOKR),Relatório:Math.min(100,40+(toArr(repObj?.sumario_bullets).length)*6)};renderConfidence(conf); drawRadar('chart-radar',score); drawJobsHistorys('chart-jtbd-gap-fw',JTBD); drawTRIZFreq('chart-triz-freq-fw',trizObj); lastCharts={JTBD,trizObj,repObj,score,prob};(function(){ const r=repObj||{}; const esc=s=>String(s||'').replace(/&/g,'&').replace(//g,'>'); const li=arr=>toArr(arr).map(x=>`
  • ${esc(x)}
  • `).join(''); const okrHTML=toArr(r.okrs).map((o,i)=>`
    O${i+1}. ${esc(o.objetivo||'Objetivo')}
    ${(o.krs?.length?`
    KRs
      ${li(o.krs)}
    `:'')}${(o.iniciativas?.length?`
    Iniciativas
      ${li(o.iniciativas)}
    `:'')}
    `).join(''); const htmlReport=`

    Disruplab Innovation Navigator™ — versão Municipal — Relatório Executivo

    Prefeitura: ${esc(ctx.prefeitura||'—')} • Secretaria: ${esc(ctx.secretaria||'—')} • Score: ${score.overall.toFixed(1)}/100 • Probabilidade de Êxito: ${prob.percent}%

    ${toArr(r.sumario_bullets).length?`

    Sumário

      ${li(r.sumario_bullets)}
    `:''}

    Diagnóstico

    ${esc(r.diagnostico||'—')}

    Necessidades do cidadão (principais)

      ${li((JTBD||[]).map(j=>j.frase))}

    TRIZ — Contradições & Princípios

      ${li(toArr(trizObj?.contradicoes).map((c,i)=>`(${i+1}) ${c.job} — Problema: ${c.problema}; Princípios: ${toArr(c.triz_principios).map(mapTrizName).join(', ')}`))}

    OKRs/Metas

    ${okrHTML}`; byId('dlab-client-content').innerHTML=htmlReport; })();byId('dlab-report-sub').textContent=`Prefeitura: ${ctx.prefeitura||'—'} • Concluído`; byId('dlab-print').disabled=false; setProgress(100,'Concluído'); }catch(err){ alert('Erro no pipeline: '+(err?.message||'desconhecido')); byId('dlab-report-sub').textContent='Prefeitura: — • Erro no pipeline'; setStep('rep','err','Relatório: erro');setProgress(100,'Erro'); }finally{ running=false;byId('dlab-run').disabled=false; } });byId('dlab-print').onclick=(()=>{const html=buildPDFHTML();const w=window.open('','_blank');if(!w){alert('Popup bloqueado. Permita popups para gerar o PDF.');return;}w.document.open();w.document.write(html);w.document.close();w.focus();setTimeout(()=>{w.print();},250);}); })();
    Abrir bate-papo
    1
    Gostaria de identificar os problemas em seu mercado?