← Prazo Certo
API
Tokens

Rode o Prazo Certo do seu próprio código

As duas faixas medidas estão disponíveis por HTTP e cada uma devolve um objeto JSON. A divisão do trabalho: a página conta o prazo - o ato e seus dias, a forma da intimação, o termo inicial, os dias úteis, os feriados nacionais, a Sexta-feira Santa, os dias do tribunal, o recesso e o prazo em dobro, cada premissa com seu artigo - e recusa a data final quando falta uma premissa; depois entrega tudo à execução como fatos. A execução escreve a análise ou o roteiro; a página então segura a resposta aos seus próprios fatos (prazoreply.js). Apoio informativo: nenhuma das faixas substitui um(a) advogado(a).

URL base e o formato da resposta

Todo endpoint fica sob https://api.skillsafe.ai/v1/app-api, e toda resposta tem um formato:

{ "ok": true,  "data":  { ... } }
{ "ok": false, "error": { "code": "...", "message": "..." } }

O token é criado para este app (a chamada de convidado leva {"slug":"prazo-certo"}), então nenhum cabeçalho de slug é preciso depois. Mande-o como Authorization: Bearer YOUR_TOKEN. O corpo da execução é o objeto de entrada, puro.

StatusCódigoSignificado
400validation_errorO corpo não é um objeto JSON, ou falta uma chave obrigatória (task, caso, prazo, facts). A página sempre manda os cinco campos task, caso, prazo, carry, facts; carry é uma string vazia na faixa analise.
401unauthorizedSem token, ou um token vencido. Crie um token de convidado ou entre de novo.
402insufficient_creditsO saldo está abaixo de min_credits. Estime com /estimate antes.
403forbiddenUm token de convidado tentou executar: as duas faixas são medidas e precisam de entrada pessoal.
404not_foundId de job desconhecido.
429rate_limitedEspere e tente de novo.
5xxserver_errorPassageiro. Tente de novo com a mesma Idempotency-Key, para nunca cobrar duas vezes.

O campo task vem primeiro

Duas faixas, escolhidas por task, na ordem em que o trabalho acontece - o caso inteiro, depois a peça:

Uma task ausente ou desconhecida é respondida como analise. As duas faixas mandam os mesmos cinco campos. Os facts são as verificações da página, uma por linha, e uma linha que começa com "deve:" é uma regra que a resposta precisa cumprir. O botão de passagem da página leva a análise para carry na faixa minuta.

A entrada

CampoObrigatórioO quê
tasksimanalise ou minuta. Se faltar ou for outro valor, faça analise e escreva "task": "analise".
casosimo caso como a página o leu: título, perfil, área (com o módulo do guia), UF, município, foro, rito, autos, urgência, as partes por papel com a qualidade, o relato e os fatos datados (data | fato | documento) e as referências do guia para a área; "não informado" quer dizer não informado.
prazosima contagem da página: o ato, os dias e o fundamento, para quem corre, a intimação, a DATA FINAL DA PÁGINA (ou "não calculada" e o que falta), a data alternativa quando há dias de tribunal não conferidos, cada premissa com seu artigo e os dias não contados.
carrymande (vazio na analise)só na tarefa minuta: a análise trazida, ou uma frase dizendo que nada foi trazido.
factssimas verificações da página, uma por linha como área | id | status | evidência, e as qualidades sinalizadas. Uma linha que começa com "deve:" se aplica à sua resposta.
retry_notenãoopcional; se vier, a sua resposta anterior não pôde ser usada - siga a nota.

As regras que o modelo aplica

Da skill de origem, @sickn33/advogado-especialista - o único padrão que a execução aplica:

Regras da casa

As respostas

analise

Escreva a análise do caso pelas 12 etapas do guia, no registro do perfil.

  1. resumo - uma ou duas frases, no máximo 60 palavras: o caso, o prazo da página e o que fazer primeiro.
  2. area e perfil - os ids da página.
  3. base_legal - objetos com norma (como Lei 9.099/1995, CPC, CLT, CDC, Código Civil, Constituição Federal), artigo (como art. 42) e conferir (uma frase: o que verificar no texto consolidado ou na jurisprudência atual).
  4. competencia - uma frase: o juízo e por quê, a partir da UF, do município, do foro e do rito.
  5. partes - um objeto por parte da página, na ordem: papel (como dado), qualidade (o id da página) e observacao (vulnerabilidades e prerrogativas).
  6. cronologia - objetos com data (como dada nos fatos) e fato, em ordem.
  7. merito - forca_direito (FORTE, MEDIO ou FRACO), prova (ROBUSTA, RAZOAVEL ou INSUFICIENTE) e porque (uma ou duas frases, com o documento que falta).
  8. riscos - objetos com tipo (prescricao-decadencia, legitimidade, competencia e preclusao - os quatro), nivel e texto (uma frase).
  9. prazos - objetos com ato, data_final (a DATA FINAL DA PÁGINA, exatamente, ou "não calculado"), fundamento (norma e artigo) e observacao (as premissas a conferir, ou as que faltam); um prazo de prescrição ou outro prazo sem data da página leva "não calculado".
  10. cenarios - otimista, base e pessimista, uma frase cada, sem prometer resultado.
  11. custos - itens de custo (custas, honorários contratuais e de sucumbência, perícias, preparo, gratuidade de justiça), nunca um valor.
  12. estrategia - uma ou duas frases: a via extrajudicial ou judicial, os pedidos e os recursos cabíveis.
  13. urgencia - frases curtas: as medidas de urgência cabíveis (tutela de urgência, art. 300 CPC; tutela de evidência, art. 311 CPC; medida protetiva) ou que não há urgência; com risco à integridade, abre com o fluxo de urgência do guia.
  14. recomendacao - um id.
  15. proximos_passos - exatamente 3 frases curtas, na ordem em que se fazem.
  16. fontes_a_conferir - frases curtas: o texto consolidado, o calendário do tribunal, os documentos dos autos a conferir - sem links.
  17. ressalvas - no máximo 5 frases curtas: o que depende de documento não fornecido, as premissas em aberto e a revisão por advogado(a) ou Defensoria Pública.
{
  "task": "analise",
  "resumo": "uma ou duas frases",
  "area": "consumidor",
  "perfil": "leigo",
  "base_legal": [ { "norma": "CDC (Lei 8.078/1990)", "artigo": "art. 14", "conferir": "uma frase" } ],
  "competencia": "uma frase",
  "partes": [ { "papel": "autor", "qualidade": "consumidor", "observacao": "uma frase" } ],
  "cronologia": [ { "data": "05/05/2026", "fato": "uma frase" } ],
  "merito": { "forca_direito": "MEDIO", "prova": "RAZOAVEL", "porque": "uma frase" },
  "riscos": [ { "tipo": "prescricao-decadencia", "nivel": "baixo", "texto": "uma frase" } ],
  "prazos": [ { "ato": "Recurso inominado", "data_final": "não calculado", "fundamento": "art. 42 da Lei 9.099/1995", "observacao": "uma frase" } ],
  "cenarios": { "otimista": "uma frase", "base": "uma frase", "pessimista": "uma frase" },
  "custos": [ "um item" ],
  "estrategia": "uma frase",
  "urgencia": [ "uma frase" ],
  "recomendacao": "acao-judicial",
  "proximos_passos": [ "um", "dois", "três" ],
  "fontes_a_conferir": [ "uma frase" ],
  "ressalvas": [ "uma frase" ]
}

A página segura a resposta aos seus próprios fatos (check() em prazoreply.js; qualquer aviso marca a resposta): a tarefa pedida; nenhum link; nenhum CPF, CNPJ, RG, e-mail, telefone ou CEP; nenhuma alegação de ser advogado(a) da pessoa; nenhuma data que não venha da página ou dos fatos; súmulas só as do guia; cada qualidade sinalizada (Fazenda Pública, idoso, menor) tratada; uma ressalva que recomende advogado(a) ou Defensoria; a área e o perfil da página; resumo de até 60 palavras; base legal com norma e artigo; as partes por papel; a cronologia com as datas dos fatos; mérito e prova nas escalas do guia; os quatro riscos; a data final da página reproduzida exatamente, ou "não calculado" com o que falta; os três cenários; custos sem valores; uma recomendação do conjunto; exatamente três próximos passos; com risco à integridade, 190 e 180 e recomendação urgencia-imediata.

minuta

Escreva o roteiro da peça do ato cujo prazo a página contou, a partir da análise trazida.

  1. peca - o nome do ato da página (como Contestação, Recurso inominado, Recurso ordinário).
  2. prazo - a DATA FINAL DA PÁGINA, exatamente, com o dia da semana se quiser, ou "não calculado" e o que falta.
  3. enderecamento - uma frase: o juízo ou o tribunal a que a peça se dirige, a partir do foro e do rito.
  4. qualificacao - as partes por papel com marcadores, como "[NOME], [qualificação], inscrito(a) no CPF sob o nº [CPF], residente em [ENDEREÇO]"; nunca um dado.
  5. secoes - objetos com titulo e pontos (frases curtas, os argumentos a desenvolver). Petição (contestação, reconvenção, impugnação, embargos à execução): fatos, fundamentos e pedidos, com as preliminares quando houver. Recurso: tempestividade (repete a data da página ou "não calculado"), preparo e razões. Embargos de declaração: tempestividade e razões.
  6. pedidos - frases curtas, na ordem da peça.
  7. provas - os documentos e as provas a juntar ou requerer, a partir dos fatos.
  8. checklist_protocolo - frases curtas: o que conferir antes de protocolar (a data no sistema do tribunal, a assinatura, o preparo, os anexos, a procuração).
  9. ressalvas - no máximo 5 frases curtas: as premissas em aberto e a revisão por advogado(a) ou Defensoria Pública.
{
  "task": "minuta",
  "peca": "Recurso inominado",
  "prazo": "não calculado - falta a data da consulta da intimação",
  "enderecamento": "uma frase",
  "qualificacao": "[NOME], inscrito(a) no CPF sob o nº [CPF] ...",
  "secoes": [ { "titulo": "Tempestividade", "pontos": [ "uma frase" ] } ],
  "pedidos": [ "uma frase" ],
  "provas": [ "uma frase" ],
  "checklist_protocolo": [ "uma frase" ],
  "ressalvas": [ "uma frase" ]
}

A página exige: a tarefa pedida; as mesmas regras de texto, datas e dados; a peça com o nome do ato contado; o prazo igual à data final da página (ou "não calculado") e nenhuma outra data nele; o endereçamento; a qualificação com [NOME] e outros marcadores; as seções da peça - fatos, fundamentos e pedidos numa petição, tempestividade, preparo e razões num recurso, tempestividade e razões em embargos -, a tempestividade repetindo a data; pedidos, provas e o checklist de protocolo.

Exemplos completos

Três execuções dos exemplos grátis da página (casos inventados e anonimizados): a análise da contestação da Fazenda Pública no DJe às vésperas do recesso, o roteiro da mesma peça levando essa análise, e a análise do recurso no Juizado cuja data final a página recusou. Cada entrada é exatamente o que a página manda; cada resposta é a resposta salva que o exemplo reproduz, sem edição - mas os campos longos são encurtados só nesta exibição, e cada corte é listado embaixo do exemplo. A última linha é a verificação da própria página sobre a resposta inteira.

analise - Contestação da Fazenda no DJe, com recesso

A página leu assim: data calculada, premissas conferidas; Contestação; data final 02/03/2026.

Entrada (caso tem 1598 caracteres; os primeiros 1397 são mostrados; prazo tem 1410 caracteres; os primeiros 1398 são mostrados; facts tem 2403 caracteres; os primeiros 1396 são mostrados):

{
 "task": "analise",
 "caso": "Caso: Contestação do Município em ação por queda em calçada\nPerfil: advogado - Advogado(a) (registro: linguagem técnica plena, artigos citados com precisão, estratégia processual)\nÁrea: civil-danos - Danos morais / responsabilidade civil (módulo 6 do guia)\nUF: SP - São Paulo; município: [MUNICÍPIO]; foro/vara: Vara da Fazenda Pública\nRito: cpc - Procedimento comum (CPC); autos: eletrônicos\nUrgência: nenhuma\n\nPartes (papel | descrição | qualidade):\n- autora | pedestre que caiu em buraco não sinalizado na calçada | pessoa-fisica\n- réu | Município de [MUNICÍPIO] | fazenda-publica\n\nRelato:\nAtuo pela Procuradoria do Município. A autora pede indenização por danos morais e materiais depois de cair em um buraco sem sinalização na calçada em frente a uma escola municipal. A intimação para contestar foi disponibilizada no DJe e precisamos do prazo e de um roteiro de defesa: há dúvida sobre quem responde pela calçada (o Município ou o proprietário do imóvel em frente) e sobre a extensão do dano.\n\nFatos (data | fato | documento):\n- 02/10/2025 | queda da autora na calçada em frente à escola municipal | boletim de ocorrência e fotos\n- 03/10/2025 | atendimento no pronto-socorro, fratura no punho | prontuário e atestado\n- 24/11/2025 | ajuizamento da ação de indenização | petição inicial\n- 15/12/2025 | disponibilização no DJe da intimação para contestar | DJe\n\nReferências do guia para a área\n\n[... mais 201 caracteres cortados desta exibição ...]",
 "prazo": "Ato: Contestação - 15 dias úteis (art. 335 CPC)\nPrazo corre para: réu\nIntimação: Diário de Justiça Eletrônico (DJe) - 15/12/2025\nDATA FINAL DA PÁGINA: 02/03/2026 (segunda) - premissas conferidas\n\nPremissas:\n- Contestação: 15 dias úteis (art. 335 CPC)\n- Contagem em dias úteis (art. 219 CPC)\n- Prazo em dobro: 30 dias úteis (Fazenda Pública) (art. 183 CPC)\n- Intimação: Diário de Justiça Eletrônico (DJe) - data da disponibilização no DJe 15/12/2025; publicação 16/12/2025 (art. 224, § 2º, CPC)\n- Exclui-se o dia do começo: a contagem começa em 17/12/2025 (art. 224, § 3º, CPC)\n- Recesso forense de 20/12 a 20/01 suspende a contagem (32 dias no período) (art. 220 CPC)\n- Nenhum feriado nacional fora do recesso no período (25/12/2025 e 01/01/2026 caem no recesso) (Lei 662/1949 e alterações, Lei 6.802/1980, Lei 14.759/2023)\n- Carnaval (segunda e terça): sem expediente (conferido) (calendário do tribunal)\n- Quarta-feira de Cinzas: com expediente (conferido) (calendário do tribunal)\n- Feriados locais e suspensões: nenhum (declarado) (informado por você)\n- Vencimento: 02/03/2026 (segunda) (art. 224 CPC - inclui-se o dia do vencimento)\n\nDias não contados no período (além de sábados e domingos): 20/12/2025 a 20/01/2026 recesso forense - suspensão (art. 220 CPC) (32 dias); 16/02/2026 Carnaval (segunda e terça) - sem expediente no tribunal; 17/02/2026 Carnaval (segunda e terça) - sem expediente\n\n[... mais 12 caracteres cortados desta exibição ...]",
 "carry": "",
 "facts": "Verificações da página (0 urgente, 0 falta, 0 conferir, 15 ok, 0 n/a); veredito: data calculada, premissas conferidas:\n- Urgência | urgencia | pass | nenhuma urgência declarada\n- Competência | competencia | pass | São Paulo, [MUNICÍPIO], Vara da Fazenda Pública - Procedimento comum (CPC)\n- Termo inicial | ato | pass | Contestação: 15 dias úteis (art. 335 CPC); contagem em dias úteis (art. 219 CPC)\n- Termo inicial | forma | pass | Publicação no primeiro dia útil seguinte à disponibilização (art. 224, § 2º, CPC); a contagem começa no primeiro dia útil seguinte à publicação (art. 224, § 3º, CPC).\n- Termo inicial | data | pass | data da disponibilização no DJe: 15/12/2025 (segunda)\n- Termo inicial | inicio | pass | a contagem começa em 17/12/2025 (quarta), 30 dias úteis; vencimento 02/03/2026 (segunda)\n- Calendário | nacionais | pass | nenhum feriado nacional fora do recesso no período (Lei 662/1949 e alterações, Lei 6.802/1980, Lei 14.759/2023); dentro do recesso: 25/12/2025 Natal, 01/01/2026 Confraternização Universal\n- Calendário | recesso | pass | recesso forense de 20/12 a 20/01 suspende a contagem (art. 220 CPC): 32 dias suspensos no período\n- Calendário | tribunal | pass | nenhum dia de tribunal pendente no período (conferidos: Carnaval (segunda e terça) sem expediente, Quarta-feira de Cinzas com expediente)\n- Calendário | locais | pass | declarado: nenhum feriado local,\n\n[... mais 1007 caracteres cortados desta exibição ...]"
}

Resposta (textos longos encurtados para exibição - veja os cortes abaixo):

{
 "task": "analise",
 "resumo": "Contestação do Município, com prazo em dobro da Fazenda Pública, em ação por queda em calçada: a página conta 30 dias úteis a partir de 17/12/2025, com o recesso e o Carnaval, e o prazo vence em 02/03/2026. Antes, levantar a quem cabe a [... mais 27 caracteres cortados desta exibição]",
 "area": "civil-danos",
 "perfil": "advogado",
 "base_legal": [
  {
   "norma": "Constituição Federal",
   "artigo": "art. 37, § 6º",
   "conferir": "Se a omissão na conservação da calçada atrai a responsabilidade objetiva ou exige falha do serviço - há divergência na jurisprudência atual."
  },
  {
   "norma": "Código Civil",
   "artigo": "arts. 186 e 927",
   "conferir": "Os pressupostos de conduta, dano e nexo causal que a defesa vai contestar."
  },
  {
   "norma": "CPC",
   "artigo": "arts. 183 e 335",
   "conferir": "Contestação em 15 dias úteis, contados em dobro para a Fazenda Pública."
  },
  {
   "norma": "CPC",
   "artigo": "arts. 220 e 224",
   "conferir": "Suspensão no recesso de 20/12 a 20/01 e a regra de exclusão do dia do começo."
  }
 ],
 "competencia": "Vara da Fazenda Pública da comarca de [MUNICÍPIO], SP, no procedimento comum do CPC, por ser ação de indenização contra o Município; conferir nos autos o valor da causa e a distribuição.",
 "partes": [
  {
   "papel": "autora",
   "qualidade": "pessoa-fisica",
   "observacao": "Pedestre; tem o ônus de provar a queda, o local, a lesão e o nexo com o buraco."
  },
  {
   "papel": "réu",
   "qualidade": "fazenda-publica",
   "observacao": "Município: prazo em dobro para contestar (art. 183 CPC); a responsabilidade por omissão na conservação da calçada está em discussão."
  }
 ],
 "cronologia": [
  {
   "data": "02/10/2025",
   "fato": "Queda da autora na calçada em frente à escola municipal (boletim de ocorrência e fotos)."
  },
  {
   "data": "03/10/2025",
   "fato": "Atendimento no pronto-socorro, com fratura no punho (prontuário e atestado)."
  },
  {
   "data": "24/11/2025",
   "fato": "Ajuizamento da ação de indenização."
  },
  {
   "data": "15/12/2025",
   "fato": "Disponibilização no DJe da intimação para contestar."
  }
 ],
 "merito": {
  "forca_direito": "MEDIO",
  "prova": "RAZOAVEL",
  "porque": "A autora tem boletim, fotos e prontuário, mas a defesa ainda não tem o cadastro do imóvel em frente, a lei municipal sobre calçadas nem o histórico de reclamações do local - documentos que decidem a tese de ilegitimidade e a de culpa da [... mais 8 caracteres cortados desta exibição]"
 },
 "riscos": [
  {
   "tipo": "prescricao-decadencia",
   "nivel": "baixo",
   "texto": "Queda em 02/10/2025 e ação em 24/11/2025: a prescrição contra a Fazenda é de 5 anos (Decreto 20.910/1932), sem tese útil para a defesa."
  },
  {
   "tipo": "legitimidade",
   "nivel": "medio",
   "texto": "Se a lei municipal atribuir ao proprietário do imóvel a conservação da calçada, cabe a preliminar de ilegitimidade - conferir a lei local e a jurisprudência do tribunal estadual."
  },
  {
   "tipo": "competencia",
   "nivel": "baixo",
   "texto": "A Vara da Fazenda Pública é o juízo próprio; conferir só o valor da causa e a distribuição."
  },
  {
   "tipo": "preclusao",
   "nivel": "alto",
   "texto": "Perder 02/03/2026 faz precluir a contestação e todas as defesas que nela deveriam vir, inclusive a reconvenção."
  }
 ],
 "prazos": [
  {
   "ato": "Contestação (Fazenda Pública, em dobro)",
   "data_final": "02/03/2026",
   "fundamento": "arts. 183 e 335 CPC",
   "observacao": "30 dias úteis contados de 17/12/2025, com o recesso de 20/12/2025 a 20/01/2026 suspenso e o Carnaval sem expediente conferido; conferir a data no sistema do tribunal."
  },
  {
   "ato": "Prescrição contra a Fazenda Pública",
   "data_final": "não calculado",
   "fundamento": "Decreto 20.910/1932",
   "observacao": "5 anos contados do fato; a ação veio no mesmo ano, então não há tese de prescrição."
  }
 ],
 "cenarios": {
  "otimista": "Afastada a responsabilidade do Município pela calçada, ou reconhecida a culpa exclusiva da vítima, os pedidos são julgados improcedentes.",
  "base": "Responsabilidade reconhecida, com o valor reduzido ao dano efetivamente provado.",
  "pessimista": "Responsabilidade objetiva reconhecida e os danos morais e materiais concedidos como pedidos, com sucumbência."
 },
 "custos": [
  "Honorários de sucumbência, se os pedidos forem julgados procedentes",
  "Perícia médica sobre a lesão, se requerida ou determinada",
  "Custas de eventual apelação, conforme a lei estadual"
 ],
 "estrategia": "Contestar até 02/03/2026 com a preliminar de ilegitimidade, se a lei municipal atribuir a calçada ao proprietário, e no mérito discutir o nexo causal, a culpa da vítima e a extensão do dano; avaliar acordo se a prova do dano for forte.",
 "urgencia": [
  "Não há medida de urgência a pedir pela defesa; o ponto urgente é o prazo de 02/03/2026."
 ],
 "recomendacao": "acao-judicial",
 "proximos_passos": [
  "Pedir à secretaria de obras o cadastro do imóvel em frente à escola, a lei municipal sobre calçadas e o histórico de reclamações do local.",
  "Redigir a contestação com a preliminar de ilegitimidade, o mérito sobre nexo e culpa e a impugnação dos danos.",
  "Protocolar até 02/03/2026, conferindo a data no sistema do tribunal."
 ],
 "fontes_a_conferir": [
  "Texto consolidado do CPC, arts. 183, 220, 224 e 335",
  "Calendário do tribunal para o Carnaval e a Quarta-feira de Cinzas de 2026",
  "Legislação municipal sobre conservação de calçadas",
  "Jurisprudência atual do STJ e do tribunal estadual sobre omissão do Município na conservação de vias"
 ],
 "ressalvas": [
  "A análise depende da petição inicial, do prontuário e da lei municipal, que não foram fornecidos.",
  "Há divergência sobre responsabilidade objetiva ou subjetiva por omissão do poder público - conferir a jurisprudência atual.",
  "Apoio informativo: a contestação deve ser revisada e assinada pela advogada ou pelo advogado da Procuradoria."
 ]
}

Cortado só desta exibição (a resposta salva e a verificação usam o texto inteiro): resumo (263 caracteres, 236 mostrados); merito.porque (244 caracteres, 236 mostrados).

O que o passo 5 imprime para ela: Contestação (Fazenda Pública, em dobro): 02/03/2026 | Prescrição contra a Fazenda Pública: não calculado

A verificação da página: mantida - nada a sinalizar

minuta - Contestação da Fazenda no DJe, com recesso

A página leu assim: data calculada, premissas conferidas; Contestação; data final 02/03/2026. A entrada leva a análise salva (R.laneForm preenche carry com a resposta da análise), como o botão de passagem da página.

Entrada (caso tem 1598 caracteres; os primeiros 1397 são mostrados; prazo tem 1410 caracteres; os primeiros 1398 são mostrados; carry tem 2076 caracteres; os primeiros 1389 são mostrados; facts tem 2134 caracteres; os primeiros 1396 são mostrados):

{
 "task": "minuta",
 "caso": "Caso: Contestação do Município em ação por queda em calçada\nPerfil: advogado - Advogado(a) (registro: linguagem técnica plena, artigos citados com precisão, estratégia processual)\nÁrea: civil-danos - Danos morais / responsabilidade civil (módulo 6 do guia)\nUF: SP - São Paulo; município: [MUNICÍPIO]; foro/vara: Vara da Fazenda Pública\nRito: cpc - Procedimento comum (CPC); autos: eletrônicos\nUrgência: nenhuma\n\nPartes (papel | descrição | qualidade):\n- autora | pedestre que caiu em buraco não sinalizado na calçada | pessoa-fisica\n- réu | Município de [MUNICÍPIO] | fazenda-publica\n\nRelato:\nAtuo pela Procuradoria do Município. A autora pede indenização por danos morais e materiais depois de cair em um buraco sem sinalização na calçada em frente a uma escola municipal. A intimação para contestar foi disponibilizada no DJe e precisamos do prazo e de um roteiro de defesa: há dúvida sobre quem responde pela calçada (o Município ou o proprietário do imóvel em frente) e sobre a extensão do dano.\n\nFatos (data | fato | documento):\n- 02/10/2025 | queda da autora na calçada em frente à escola municipal | boletim de ocorrência e fotos\n- 03/10/2025 | atendimento no pronto-socorro, fratura no punho | prontuário e atestado\n- 24/11/2025 | ajuizamento da ação de indenização | petição inicial\n- 15/12/2025 | disponibilização no DJe da intimação para contestar | DJe\n\nReferências do guia para a área\n\n[... mais 201 caracteres cortados desta exibição ...]",
 "prazo": "Ato: Contestação - 15 dias úteis (art. 335 CPC)\nPrazo corre para: réu\nIntimação: Diário de Justiça Eletrônico (DJe) - 15/12/2025\nDATA FINAL DA PÁGINA: 02/03/2026 (segunda) - premissas conferidas\n\nPremissas:\n- Contestação: 15 dias úteis (art. 335 CPC)\n- Contagem em dias úteis (art. 219 CPC)\n- Prazo em dobro: 30 dias úteis (Fazenda Pública) (art. 183 CPC)\n- Intimação: Diário de Justiça Eletrônico (DJe) - data da disponibilização no DJe 15/12/2025; publicação 16/12/2025 (art. 224, § 2º, CPC)\n- Exclui-se o dia do começo: a contagem começa em 17/12/2025 (art. 224, § 3º, CPC)\n- Recesso forense de 20/12 a 20/01 suspende a contagem (32 dias no período) (art. 220 CPC)\n- Nenhum feriado nacional fora do recesso no período (25/12/2025 e 01/01/2026 caem no recesso) (Lei 662/1949 e alterações, Lei 6.802/1980, Lei 14.759/2023)\n- Carnaval (segunda e terça): sem expediente (conferido) (calendário do tribunal)\n- Quarta-feira de Cinzas: com expediente (conferido) (calendário do tribunal)\n- Feriados locais e suspensões: nenhum (declarado) (informado por você)\n- Vencimento: 02/03/2026 (segunda) (art. 224 CPC - inclui-se o dia do vencimento)\n\nDias não contados no período (além de sábados e domingos): 20/12/2025 a 20/01/2026 recesso forense - suspensão (art. 220 CPC) (32 dias); 16/02/2026 Carnaval (segunda e terça) - sem expediente no tribunal; 17/02/2026 Carnaval (segunda e terça) - sem expediente\n\n[... mais 12 caracteres cortados desta exibição ...]",
 "carry": "Resumo: Contestação do Município, com prazo em dobro da Fazenda Pública, em ação por queda em calçada: a página conta 30 dias úteis a partir de 17/12/2025, com o recesso e o Carnaval, e o prazo vence em 02/03/2026. Antes, levantar a quem cabe a calçada e a prova do dano.\nÁrea: civil-danos; recomendação: acao-judicial; mérito: força MEDIO, prova RAZOAVEL - A autora tem boletim, fotos e prontuário, mas a defesa ainda não tem o cadastro do imóvel em frente, a lei municipal sobre calçadas nem o histórico de reclamações do local - documentos que decidem a tese de ilegitimidade e a de culpa da vítima.\nBase legal: Constituição Federal art. 37, § 6º; Código Civil arts. 186 e 927; CPC arts. 183 e 335; CPC arts. 220 e 224\nPrazos: Contestação (Fazenda Pública, em dobro) - 02/03/2026 (arts. 183 e 335 CPC); Prescrição contra a Fazenda Pública - não calculado (Decreto 20.910/1932)\nRiscos: prescricao-decadencia baixo - Queda em 02/10/2025 e ação em 24/11/2025: a prescrição contra a Fazenda é de 5 anos (Decreto 20.910/1932), sem tese útil para a defesa; legitimidade medio - Se a lei municipal atribuir ao proprietário do imóvel a conservação da calçada, cabe a preliminar de ilegitimidade - conferir a lei local e a jurisprudência do tribunal estadual; competencia baixo - A Vara da Fazenda Pública é o juízo próprio; conferir só o valor da causa e a distribuição; preclusao alto - Perder\n\n[... mais 687 caracteres cortados desta exibição ...]",
 "facts": "Verificações da página (0 urgente, 0 falta, 0 conferir, 15 ok, 0 n/a); veredito: data calculada, premissas conferidas:\n- Urgência | urgencia | pass | nenhuma urgência declarada\n- Competência | competencia | pass | São Paulo, [MUNICÍPIO], Vara da Fazenda Pública - Procedimento comum (CPC)\n- Termo inicial | ato | pass | Contestação: 15 dias úteis (art. 335 CPC); contagem em dias úteis (art. 219 CPC)\n- Termo inicial | forma | pass | Publicação no primeiro dia útil seguinte à disponibilização (art. 224, § 2º, CPC); a contagem começa no primeiro dia útil seguinte à publicação (art. 224, § 3º, CPC).\n- Termo inicial | data | pass | data da disponibilização no DJe: 15/12/2025 (segunda)\n- Termo inicial | inicio | pass | a contagem começa em 17/12/2025 (quarta), 30 dias úteis; vencimento 02/03/2026 (segunda)\n- Calendário | nacionais | pass | nenhum feriado nacional fora do recesso no período (Lei 662/1949 e alterações, Lei 6.802/1980, Lei 14.759/2023); dentro do recesso: 25/12/2025 Natal, 01/01/2026 Confraternização Universal\n- Calendário | recesso | pass | recesso forense de 20/12 a 20/01 suspende a contagem (art. 220 CPC): 32 dias suspensos no período\n- Calendário | tribunal | pass | nenhum dia de tribunal pendente no período (conferidos: Carnaval (segunda e terça) sem expediente, Quarta-feira de Cinzas com expediente)\n- Calendário | locais | pass | declarado: nenhum feriado local,\n\n[... mais 738 caracteres cortados desta exibição ...]"
}

Resposta (textos longos encurtados para exibição - veja os cortes abaixo):

{
 "task": "minuta",
 "peca": "Contestação",
 "prazo": "02/03/2026 (segunda-feira) - 30 dias úteis, em dobro para a Fazenda Pública",
 "enderecamento": "Ao Juízo da Vara da Fazenda Pública da comarca de [MUNICÍPIO] - SP.",
 "qualificacao": "MUNICÍPIO DE [MUNICÍPIO], pessoa jurídica de direito público interno, inscrito no CNPJ sob o nº [CNPJ], representado por sua Procuradoria, nos autos da ação de indenização movida por [NOME], [qualificação], inscrita no CPF sob o nº [CPF], [... mais 25 caracteres cortados desta exibição]",
 "secoes": [
  {
   "titulo": "Tempestividade",
   "pontos": [
    "Contestação apresentada até 02/03/2026: 15 dias úteis em dobro (arts. 183 e 335 CPC), contados de 17/12/2025, com o recesso de 20/12/2025 a 20/01/2026 suspenso (art. 220 CPC)."
   ]
  },
  {
   "titulo": "Síntese dos fatos",
   "pontos": [
    "A autora alega queda em buraco na calçada em frente à escola municipal em 02/10/2025.",
    "Pede danos morais e materiais pela fratura no punho atendida em 03/10/2025."
   ]
  },
  {
   "titulo": "Preliminar: ilegitimidade passiva",
   "pontos": [
    "Se a lei municipal atribui ao proprietário do imóvel lindeiro a conservação da calçada, o Município não responde pela manutenção daquele trecho.",
    "Juntar a lei municipal e o cadastro do imóvel em frente à escola."
   ]
  },
  {
   "titulo": "Fundamentos: nexo causal e culpa da vítima",
   "pontos": [
    "A responsabilidade por omissão exige demonstrar a falha do serviço - expor a divergência sobre o art. 37, § 6º, da Constituição Federal.",
    "Discutir a visibilidade do buraco e a conduta da autora como causa do dano.",
    "Impugnar o boletim de ocorrência como prova unilateral do local."
   ]
  },
  {
   "titulo": "Fundamentos: extensão do dano",
   "pontos": [
    "Impugnar os valores sem comprovante de despesa.",
    "Pedir que o dano moral, se reconhecido, seja fixado com base em julgados comparáveis do tribunal."
   ]
  },
  {
   "titulo": "Pedidos",
   "pontos": [
    "Preliminar de ilegitimidade; no mérito, improcedência; subsidiariamente, redução da indenização."
   ]
  }
 ],
 "pedidos": [
  "Acolher a preliminar de ilegitimidade passiva, se a lei municipal atribuir a calçada ao proprietário",
  "No mérito, julgar improcedentes os pedidos",
  "Subsidiariamente, reduzir a indenização à extensão do dano provado",
  "Condenar a autora nos ônus da sucumbência",
  "Deferir a produção das provas indicadas"
 ],
 "provas": [
  "Cadastro imobiliário do imóvel em frente à escola",
  "Lei municipal sobre conservação de calçadas",
  "Registros de reclamações e de manutenção do local",
  "Perícia médica sobre a extensão da lesão, se necessária",
  "Testemunhas da escola sobre a sinalização do local"
 ],
 "checklist_protocolo": [
  "Conferir no sistema do tribunal que o prazo vence em 02/03/2026",
  "Conferir a assinatura digital do procurador ou da procuradora",
  "Juntar a representação da Procuradoria",
  "Juntar os documentos da secretaria de obras",
  "Decidir se há reconvenção, que vai na própria contestação"
 ],
 "ressalvas": [
  "Roteiro de apoio: a contestação deve ser redigida e assinada pela advogada ou pelo advogado da Procuradoria.",
  "A preliminar depende da lei municipal sobre calçadas, que não foi fornecida."
 ]
}

Cortado só desta exibição (a resposta salva e a verificação usam o texto inteiro): qualificacao (263 caracteres, 238 mostrados).

O que o passo 5 imprime para ela: Contestação: 02/03/2026 (segunda-feira) - 30 dias úteis, em dobro para a Fazenda Pública

A verificação da página: mantida - nada a sinalizar

analise - Recurso no Juizado sem a data da intimação

A página leu assim: sem data final - faltam premissas; Recurso inominado; falta a data da consulta da intimação no portal.

Entrada (caso tem 1423 caracteres; os primeiros 1398 são mostrados; facts tem 1869 caracteres; os primeiros 1396 são mostrados):

{
 "task": "analise",
 "caso": "Caso: Recurso inominado contra sentença que negou o dano moral\nPerfil: leigo - Leigo (registro: linguagem acessível, sem juridiquês, exemplos práticos, orientação passo a passo)\nÁrea: consumidor - Consumidor (módulo 7 do guia)\nUF: BA - Bahia; município: Salvador; foro/vara: Juizado Especial Cível\nRito: jec - Juizado Especial Cível (Lei 9.099/1995); autos: eletrônicos\nUrgência: nenhuma\n\nPartes (papel | descrição | qualidade):\n- autor | cliente de uma operadora de telefonia | consumidor\n- ré | operadora de telefonia | pessoa-juridica\n\nRelato:\nFui cobrado por um serviço que nunca contratei e meu nome foi negativado. Entrei no Juizado sem advogado. A sentença mandou cancelar a cobrança, mas negou o dano moral dizendo que eu já tinha uma negativação antiga de outra empresa. Recebi um aviso de que a sentença saiu no portal, mas não sei em que dia a intimação foi aberta.\n\nFatos (data | fato | documento):\n- 05/05/2026 | primeira cobrança do serviço não contratado | fatura\n- 12/06/2026 | nome incluído no cadastro de inadimplentes | consulta ao cadastro\n- 20/07/2026 | reclamação no Procon sem solução | protocolo do Procon\n- 03/08/2026 | ação no Juizado Especial Cível | termo de reclamação\n- 15/10/2026 | sentença: cobrança cancelada, dano moral negado | sentença\n\nReferências do guia para a área (pontos de partida - conferir a vigência e o texto consolidado):\nLei 8.078/1990; Art. 27 CDC;\n\n[... mais 25 caracteres cortados desta exibição ...]",
 "prazo": "Ato: Recurso inominado - 10 dias úteis (art. 42 da Lei 9.099/1995)\nPrazo corre para: autor\nIntimação: Portal eletrônico - consultada - data não informada\nDATA FINAL DA PÁGINA: não calculada\nFalta: a data da consulta da intimação no portal",
 "carry": "",
 "facts": "Verificações da página (0 urgente, 1 falta, 1 conferir, 7 ok, 2 n/a); veredito: sem data final - faltam premissas:\n- Urgência | urgencia | pass | nenhuma urgência declarada\n- Competência | competencia | pass | Bahia, Salvador, Juizado Especial Cível - Juizado Especial Cível (Lei 9.099/1995)\n- Termo inicial | ato | pass | Recurso inominado: 10 dias úteis (art. 42 da Lei 9.099/1995); contagem em dias úteis (art. 12-A da Lei 9.099/1995, incluído pela Lei 13.728/2018)\n- Termo inicial | forma | pass | Intimação eletrônica no portal (art. 5º da Lei 11.419/2006): intimado na data da consulta; a contagem começa no primeiro dia útil seguinte (art. 224 CPC). Regra do CPC aplicada ao rito JEC - conferir.\n- Termo inicial | data | fail | falta a data da consulta da intimação no portal\n- Calendário | calendario | na | sem contagem - o calendário só se aplica com termo inicial\n- Prazo em dobro | dobro | na | no rito JEC a página não dobra prazos\n- Partes vulneráveis | consumidor | warn | autor: vulnerabilidade do consumidor (art. 4º, I, CDC); inversão do ônus da prova quando verossímil (art. 6º, VIII, CDC)\n- Dados pessoais | dados | pass | nenhum CPF, CNPJ, RG, e-mail, telefone ou CEP encontrado\n- A ficha do caso | partes | pass | 2 partes: autor (consumidor(a)), ré (pessoa jurídica)\n- A ficha do caso | fatos | pass | 5 fatos datados\nQualidades sinalizadas pela página: nenhuma.\ndeve: area\n\n[... mais 473 caracteres cortados desta exibição ...]"
}

Resposta (textos longos encurtados para exibição - veja os cortes abaixo):

{
 "task": "analise",
 "resumo": "A sentença cancelou a cobrança, mas negou o dano moral por causa de uma negativação antiga. O recurso inominado tem 10 dias úteis, mas a página não calculou a data final: falta o dia em que a intimação foi aberta no portal.",
 "area": "consumidor",
 "perfil": "leigo",
 "base_legal": [
  {
   "norma": "CDC (Lei 8.078/1990)",
   "artigo": "art. 14",
   "conferir": "A empresa responde pelo defeito do serviço mesmo sem culpa - conferir como o tribunal aplica isso à cobrança de serviço não contratado."
  },
  {
   "norma": "CDC (Lei 8.078/1990)",
   "artigo": "art. 6º, VIII",
   "conferir": "A inversão do ônus da prova, que o juiz pode conceder quando a sua versão é verossímil."
  },
  {
   "norma": "Lei 9.099/1995",
   "artigo": "art. 42",
   "conferir": "O recurso inominado em 10 dias, contados em dias úteis (art. 12-A)."
  }
 ],
 "competencia": "O recurso é apresentado no próprio Juizado Especial Cível de Salvador e julgado pela Turma Recursal dos Juizados da Bahia.",
 "partes": [
  {
   "papel": "autor",
   "qualidade": "consumidor",
   "observacao": "Você é a parte mais fraca na relação de consumo (art. 4º, I, CDC) e pode pedir a inversão do ônus da prova (art. 6º, VIII, CDC)."
  },
  {
   "papel": "ré",
   "qualidade": "pessoa-juridica",
   "observacao": "A operadora responde sem culpa pelo defeito do serviço (art. 14 CDC)."
  }
 ],
 "cronologia": [
  {
   "data": "05/05/2026",
   "fato": "Primeira cobrança do serviço que você não contratou (fatura)."
  },
  {
   "data": "12/06/2026",
   "fato": "Seu nome foi incluído no cadastro de inadimplentes."
  },
  {
   "data": "20/07/2026",
   "fato": "Reclamação no Procon, sem solução."
  },
  {
   "data": "03/08/2026",
   "fato": "Ação no Juizado Especial Cível."
  },
  {
   "data": "15/10/2026",
   "fato": "Sentença: cobrança cancelada e dano moral negado."
  }
 ],
 "merito": {
  "forca_direito": "MEDIO",
  "prova": "RAZOAVEL",
  "porque": "A cobrança indevida já foi reconhecida, mas a Súmula 385 do STJ afasta o dano moral quando existe uma negativação anterior legítima; o recurso só tem chance se mostrar que a negativação antiga era indevida ou já tinha sido retirada - e os [... mais 38 caracteres cortados desta exibição]"
 },
 "riscos": [
  {
   "tipo": "prescricao-decadencia",
   "nivel": "baixo",
   "texto": "Os fatos e a ação são de 2026: não há risco de prescrição (fato do serviço, 5 anos, art. 27 CDC)."
  },
  {
   "tipo": "legitimidade",
   "nivel": "baixo",
   "texto": "Você é quem foi cobrado e negativado, e a ré é a empresa que cobrou."
  },
  {
   "tipo": "competencia",
   "nivel": "baixo",
   "texto": "O recurso vai para a Turma Recursal; no Juizado, o recurso exige advogado."
  },
  {
   "tipo": "preclusao",
   "nivel": "alto",
   "texto": "Se os 10 dias úteis passarem, a sentença fica definitiva e o dano moral não pode mais ser discutido."
  }
 ],
 "prazos": [
  {
   "ato": "Recurso inominado",
   "data_final": "não calculado",
   "fundamento": "art. 42 da Lei 9.099/1995",
   "observacao": "Falta a data da consulta da intimação no portal; com ela, são 10 dias úteis (art. 12-A da Lei 9.099/1995) a partir do dia útil seguinte, e é preciso conferir no tribunal se o recesso de fim de ano se aplica aos juizados."
  }
 ],
 "cenarios": {
  "otimista": "A Turma Recursal entende que a negativação antiga não era legítima e fixa uma indenização por dano moral.",
  "base": "A sentença é mantida: a cobrança fica cancelada, sem dano moral.",
  "pessimista": "O recurso não é conhecido por ter sido apresentado fora do prazo ou sem preparo, e você paga custas e honorários do recurso."
 },
 "custos": [
  "Preparo do recurso (custas), salvo gratuidade de justiça",
  "Honorários do advogado ou da advogada que assinar o recurso",
  "Custas e honorários de sucumbência se o recurso for negado",
  "Gratuidade de justiça, se você não puder pagar (art. 98 CPC)"
 ],
 "estrategia": "Procure agora um advogado ou a Defensoria Pública, porque no Juizado o recurso exige advogado; o recurso inominado pede o dano moral mostrando que a negativação antiga era indevida ou já tinha sido retirada.",
 "urgencia": [
  "Não há medida de urgência, mas o prazo pode já estar correndo: descubra hoje o dia em que a intimação foi aberta no portal."
 ],
 "recomendacao": "acao-judicial",
 "proximos_passos": [
  "Entre no portal do processo, ou pergunte no balcão do Juizado, e anote o dia em que a intimação da sentença foi aberta.",
  "Leve a sentença, as faturas e a consulta ao cadastro à Defensoria Pública ou a um advogado, porque o recurso exige advogado.",
  "Reúna a prova de que a negativação antiga era indevida ou já tinha sido retirada antes de 12/06/2026."
 ],
 "fontes_a_conferir": [
  "Texto consolidado da Lei 9.099/1995, arts. 12-A e 42",
  "Súmula 385 do STJ e a jurisprudência atual sobre negativação anterior",
  "Regras do tribunal sobre o recesso de fim de ano nos juizados",
  "A certidão de intimação no portal do processo"
 ],
 "ressalvas": [
  "Sem a data da intimação a página não calcula a data final: não conte com uma data até conferi-la.",
  "A análise depende da sentença e dos documentos da negativação antiga, que não foram fornecidos.",
  "Isto é apoio informativo: o recurso deve ser feito por advogado ou advogada, ou pela Defensoria Pública."
 ]
}

Cortado só desta exibição (a resposta salva e a verificação usam o texto inteiro): merito.porque (276 caracteres, 238 mostrados).

O que o passo 5 imprime para ela: Recurso inominado: não calculado

A verificação da página: mantida - nada a sinalizar

Monte a entrada você mesmo

Carregue o motor no node (global.window = global; require("./prazokit.js"); require("./prazoreply.js")), e então:

const K = PrazoKit, R = PrazoReply;
const f = K.form(Object.assign(K.blank(), { label: "Contestação", area: "civil-danos", perfil: "advogado", relato: "...",
  rito: "cpc", ato: "contestacao", intimacao: "dje", intim_data: "15/12/2025", locais: "nenhum" }));
// f.final (DD/MM/AAAA, or "" when the page refuses), f.missing, f.res.table (day by day), K.premises(f), f.rows
// K.easter(2026), K.count(f) - the calendar and the count, directly
const b = K.buildInput(f, "analise");                        // or "minuta" (R.laneForm(form, "minuta", analise) fills carry)
const wire = K.toWire(b.input);                              // POST this to /estimate and /run
// then: const reply = R.normalize(R.parseReply(job.output.output), "analise");
// R.check(reply, b)                                         // {status: kept or flagged, notes}

Pegue um token para os passos abaixo em /tokens.html.

Passo 1 — um cliente mínimo

Uma função que envia JSON e desembrulha a resposta. Cole um token pessoal de /tokens.html, ou deixe vazio e crie um token de convidado no passo 2.

BASE="https://api.skillsafe.ai/v1/app-api"
TOKEN="YOUR_TOKEN"   # from https://prazo-certo.skillsafe.ai/tokens.html
api() { # api METHOD PATH [JSON-BODY]
  curl -s -X "$1" "$BASE$2" -H "Content-Type: application/json" \
    ${TOKEN:+-H "Authorization: Bearer $TOKEN"} ${3:+--data "$3"}
}

Passo 2 — um token

Um token de convidado basta para /me e /estimate. Uma execução é medida, então precisa de um token pessoal: entre em /tokens.html e copie de lá.

# a guest token (enough for /me and /estimate); a run needs your personal token from /tokens.html
TOKEN=$(curl -s -X POST "$BASE/guest" -H "Content-Type: application/json" -d '{"slug":"prazo-certo"}' | jq -r '.data.token')

Passo 3 — GET /me

De quem é o token (subject_type: user ou guest) e o saldo de créditos.

api GET /me | jq '.data | {subject_type, credits}' 

Passo 4 — POST /estimate

Grátis. O corpo é a própria entrada da execução, o objeto puro (nunca dentro de {"input": ...}). hold_credits é uma reserva, não o preço; min_credits é o que o saldo precisa cobrir; model_alias mostra gpt-terra.

# input.json: the run input object - {"task": "analise", "caso": "Caso: ... | Perfil: ... | Partes ... | Fatos ...", "prazo": "Ato: ... | DATA FINAL DA PÁGINA: ... | Premissas ...", "carry": "", "facts": "Verificações da página ... | deve: ..."}
# - see the input table
api POST /estimate "$(cat input.json)" | jq '.data | {hold_credits, min_credits, model, model_alias, markup_bps, warnings}' 

Passo 5 — POST /run, depois consulte o job

Mande uma Idempotency-Key feita da faixa e da entrada: uma nova tentativa com a mesma chave nunca cobra duas vezes. A página usa prazo-certo:<task>:<inputHash>:a<attempt> - a faixa faz parte da chave, retry_note fica fora do hash - e a sua única nova tentativa automática de formato é um novo número de tentativa, mostrada na página como uma execução a mais. Uma resposta analise traz resumo, area, perfil, base_legal, competencia, partes, cronologia, merito, riscos, prazos, cenarios, custos, estrategia, urgencia, recomendacao, proximos_passos, fontes_a_conferir e ressalvas; uma resposta minuta traz peca, prazo, enderecamento, qualificacao, secoes, pedidos, provas, checklist_protocolo e ressalvas. O código abaixo imprime o essencial de cada uma: cada prazo com a sua data final, ou a peça com o seu prazo.

KEY="prazo-certo:$(jq -r .task input.json):$(shasum -a 256 input.json | cut -c1-16):a1"
JOB=$(curl -s -X POST "$BASE/run" -H "Content-Type: application/json" -H "Authorization: Bearer $TOKEN" \
  -H "Idempotency-Key: $KEY" --data @input.json | jq -r '.data.job_id')
while :; do
  J=$(api GET "/jobs/$JOB"); S=$(echo "$J" | jq -r '.data.status')
  case "$S" in succeeded|failed|cancelled) break;; esac; sleep 2
done
echo "$J" | jq -r '.data.output.output' > reply.json   # one JSON object, the reply contract
echo "$J" | jq '.data | {charged_credits, truncated}'
jq -r 'if .task == "minuta" then "\(.peca): \(.prazo)" 
       else (.prazos[] | "\(.ato): \(.data_final)") end' reply.json

Passo 6 — POST /run-stream

A mesma execução como Server-Sent Events, com o mesmo input.json. Navegadores recebem ticks de progresso em vez de pedaços de texto; o evento final done traz a resposta.

# Server-Sent Events: tick/delta events while the job runs, then a final event with the job
curl -N -s -X POST "$BASE/run-stream" -H "Content-Type: application/json" -H "Authorization: Bearer $TOKEN" \
  -H "Idempotency-Key: prazo-certo:$(jq -r .task input.json):$(shasum -a 256 input.json | cut -c1-16):a1" --data @input.json