Implementar validações para elemento <history> conforme SPS 1.10#1096
Draft
Implementar validações para elemento <history> conforme SPS 1.10#1096
<history> conforme SPS 1.10#1096Conversation
Co-authored-by: robertatakenaka <505143+robertatakenaka@users.noreply.github.com>
Co-authored-by: robertatakenaka <505143+robertatakenaka@users.noreply.github.com>
Copilot
AI
changed the title
[WIP] Implement validations for the <history> element
Implementar validações para elemento Feb 13, 2026
<history> conforme SPS 1.10
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
O que esse PR faz?
Implementa validações estruturais para o elemento
<history>conforme especificação SPS 1.10, alcançando 83% de conformidade (10 de 12 regras), superando a meta de 75%.Regras implementadas:
@date-type, valores permitidos, datas obrigatórias (received/accepted), completude de datas críticas, presença de anodates.py(formato dia/mês, validação de data)Tipos de artigo isentos reconhecidos: correction, retraction, addendum, expression-of-concern, reviewer-report
Onde a revisão poderia começar?
packtools/sps/validation/history.py- Lógica de validação (384 linhas)tests/sps/validation/test_history.py- Cobertura de testes (30 casos, 100% aprovados)Como este poderia ser testado manualmente?
Casos de teste:
errorsvazio@date-type→ erro CRITICAL<history>→ erro ERRORAlgum cenário de contexto que queira dar?
Decisões de design:
history.py) vs. validação de formato (dates.py)build_response()e validadores de formato existentesTestes e segurança:
Valores permitidos para
@date-type:received,accepted,corrected,expression-of-concern,pub,preprint,resubmitted,retracted,rev-recd,rev-request,reviewer-report-receivedScreenshots
N/A
Referências
packtools/sps/validation/article_doi.pyOriginal prompt
This section details on the original issue you should resolve
<issue_title>Criar validações para o elemento </issue_title>
<issue_description>## Objetivo
Implementar validações para o elemento
<history>conforme a especificação SPS 1.10, aumentando a conformidade de X% para 75% (9 de 12 regras).Nota: Algumas validações para
<history>podem já estar parcialmente implementadas no repositório. Este Issue visa reavaliar, complementar e garantir cobertura completa das regras SPS 1.10.Contexto
O elemento
<history>agrupa as datas de histórico do documento (recebido, aceito, revisado, preprint, correções, retratações, etc.). Validações corretas garantem que datas obrigatórias estejam presentes, que formatos sejam consistentes (dois dígitos para dia/mês), e que apenas valores permitidos sejam usados para@date-type.Conformidade atual: X de 12 regras implementadas (X%)
Meta após implementação: 9 de 12 regras (75%)
Documentação SPS
Referência oficial: https://docs.google.com/document/d/1GTv4Inc2LS_AXY-ToHT3HmO66UT0VAHWJNOIqzBNSgA/edit?tab=t.0#heading=h.history
Regras principais conforme SPS 1.10:
Ocorrência:
<history>deve aparecer no máximo uma vez em<article-meta>ou<front-stub>Datas obrigatórias:
<date date-type="received">é obrigatório (exceto para errata, retratação, adendo, manifestação de preocupação e parecer)<date date-type="accepted">é obrigatório (exceto para errata, retratação, adendo, manifestação de preocupação e parecer)Valores permitidos para
@date-type:received- Data de recebimento do manuscritoaccepted- Data de aceitação do manuscritocorrected- Data de aprovação de Errata ou Adendoexpression-of-concern- Data de aprovação de Manifestação de Preocupaçãopub- Data de publicaçãopreprint- Data de publicação como preprintresubmitted- Data de reenvio do manuscritoretracted- Data de aprovação de retrataçãorev-recd- Data de recebimento do manuscrito revisadorev-request- Data de solicitação de revisõesreviewer-report-received- Data de envio de parecer (exclusivo para@article-type="reviewer-report")Elementos obrigatórios por tipo de data:
received,accepted,corrected,retracted,expression-of-concern:<day>,<month>e<year>são obrigatórios<year>é obrigatórioFormato obrigatório:
<day>deve ter dois dígitos:01,02, ...,31<month>deve ter dois dígitos:01,02, ...,12Validação de data:
<day>,<month>e<year>devem formar uma data válidaRegras a Implementar
P0 – Críticas (implementar obrigatoriamente)
<history><history>deve aparecer no máximo uma vez em<article-meta>ou<front-stub>@date-typeem<date>@date-typeé obrigatório em todos os<date>dentro de<history>@date-type@date-typedeve estar na lista de valores permitidos<date date-type="received">@date-type="received"é obrigatória (exceto para errata, retratação, adendo, manifestação de preocupação e parecer)<date date-type="accepted">@date-type="accepted"é obrigatória (exceto para errata, retratação, adendo, manifestação de preocupação e parecer)received,accepted,corrected,retracted,expression-of-concern:<day>,<month>e<year>são obrigatórios<year><year>deve estar presenteP1 – Importantes (implementar se possível)
<day>(dois dígitos)<day>deve ter exatamente dois dígitos (01-31)<month>(dois dígitos)<month>deve ter exatamente dois dígitos (01-12)<day>,<month>e<year>devem formar uma data válida (ex: 31/02 é inválido)P2 – Futuras (fora do escopo deste Issue)
reviewer-report-receivedcom@article-type="reviewer-report"💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.