Skip to content

docs(skill): sincroniza a skill nfeio-php-sdk com v3.2.0 + v3.3.0#28

Merged
andrenfe merged 1 commit into
masterfrom
docs/skill-sync-releases
Jul 14, 2026
Merged

docs(skill): sincroniza a skill nfeio-php-sdk com v3.2.0 + v3.3.0#28
andrenfe merged 1 commit into
masterfrom
docs/skill-sync-releases

Conversation

@andrenfe

Copy link
Copy Markdown
Member

O que

A skill de agente versionada no repo (skills/nfeio-php-sdk/) estava na baseline v3.1.0 — duas releases atrás do SDK publicado. Este PR a sincroniza com v3.2.0 (retry seguro + idempotência) e v3.3.0 (expansão do DTO ServiceInvoice). Sem a sincronização, a skill induz geração de código desatualizado (ex.: assumir que POST retenta em 5xx, ignorar findByExternalId, ler ->totalAmount).

Mudanças (3 arquivos)

SKILL.md

  • Frontmatter description: novos gatilhos (emissão idempotente, method-aware retry, campos tipados).
  • Quick Start: retry method-aware + override por chamada (RequestOptions->retry).
  • Tabela de erros: ApiConnectionException com failurePhase/curlErrno.
  • Pitfalls Install of nfe/nfe failed #17docs(readme): banner apontando para a branch v3 #19 (anexados, sem renumerar): POST não retenta em 5xx + ciclo externalId; override de retry por chamada; totalAmount phantom deprecated + campos v3.3.0 + raw populado.
  • Decision tree: linhas de reconciliação por externalId e leitura de number/checkCode.

references/error-handling-and-patterns.md

  • Seção de retry reescrita method-aware (tabela método × status × fase), FailurePhase (errnos 5/6/7/35, PSR-18), nota de mudança de comportamento vs v3.1, override por requisição com exemplo.

references/service-invoices-and-polling.md

  • findByExternalId + isDuplicateExternalId (static) na lista de métodos.
  • Nova seção ServiceInvoice DTO (v3.3.0): campos tipados, Borrower (federalTaxNumber int|string|null), raw populado (por item; SDK-wide), provider via raw, totalAmount phantom, teste de alinhamento.
  • Nova seção Idempotent emission via externalId: ciclo completo com exemplo, contrato de fio da rota /external, lag de indexação.

Verificação

Fatos conferidos contra src/ neste commit: ordem dos args de RequestOptions (apiKey, baseUrl, timeout, retry), cases do FailurePhase, allowlist de errnos (5/6/7/35), assinatura static de isDuplicateExternalId, campos do Borrower. Varredura por afirmações de retry desatualizadas: zero restantes.

Fecha a tarefa 4.4 da change expand-service-invoice-dto.

A skill versionada no repo estava na baseline v3.1.0 — duas releases atrás.
(As atualizações de v3.2.0 haviam sido aplicadas na cópia local ~/.claude,
removida quando a skill passou a ser versionada aqui.)

v3.2.0 (add-safe-retry-idempotency):
- Retry method-aware (tabela de decisão; POST não retenta em 5xx/ambíguo;
  Idempotency-Key restaura retry pleno mas a API ainda não honra o header).
- FailurePhase + failurePhase/curlErrno na ApiConnectionException.
- Override de retry por chamada (RequestOptions->retry).
- findByExternalId (rota /external, contrato de coleção, miss=200 lista vazia,
  lag de indexação) + isDuplicateExternalId + ciclo de emissão idempotente.
- Pitfalls #17/#18; decision tree; descrições dos reference files.

v3.3.0 (expand-service-invoice-dto):
- ServiceInvoice: campos tipados number/checkCode/description/cityServiceCode/
  baseTaxAmount/issRate/issTaxAmount/amountNet + borrower (Borrower DTO,
  federalTaxNumber int|string|null).
- raw agora populado (SDK-wide, por item em list); provider via raw['provider'].
- totalAmount documentado como phantom @deprecated (sempre null) — pitfall #19.
- Nota sobre o teste de alinhamento YAML<->DTO (ancorado por path).

Fatos verificados contra o src/ (ordem dos args de RequestOptions, cases do
FailurePhase, allowlist de errnos 5/6/7/35, assinatura static de
isDuplicateExternalId, campos do Borrower).
@andrenfe andrenfe self-assigned this Jul 14, 2026
@andrenfe
andrenfe merged commit 4d0d2d6 into master Jul 14, 2026
9 checks passed
@andrenfe
andrenfe deleted the docs/skill-sync-releases branch July 14, 2026 02:10
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