Add SPS 1.10 related-article validations with i18n support#1140
Draft
Add SPS 1.10 related-article validations with i18n support#1140
Conversation
…hensive tests Co-authored-by: robertatakenaka <505143+robertatakenaka@users.noreply.github.com>
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 <related-article> element
Add SPS 1.10 related-article validations with i18n support
Mar 19, 2026
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 8 das 12 regras de validação para
<related-article>conforme SPS 1.10, elevando a conformidade para ~70%.Novas validações (P0):
validate_related_article_type_presence()— CRITICALvalidate_ext_link_type_presence()— CRITICALvalidate_related_article_type_value()— ERROR (17 valores permitidos, case-sensitive)validate_ext_link_type_value()— ERROR (doi|uri)validate_xlink_href_presence()— ERRORvalidate_doi_preference()— WARNING (exceções:reviewer-report,preprint)Melhorias em validações existentes (P1):
validate_attrib_order()— rebaixado para INFO, corrigido FIXME, tratamento gracioso de attribs ausentesadvice_text/advice_params) adicionado a todas as mensagens existentes e novasConfiguração:
related_article_rules.jsonatualizado com 6 novos error level keys.peer-reviewed-materialadicionado à lista de tipos permitidos (necessário para contexto de peer review).Onde a revisão poderia começar?
packtools/sps/validation/related_articles.py— constantes no topo, depois as novasvalidate_*methods na classeRelatedArticleValidation.Como este poderia ser testado manualmente?
python -m pytest tests/sps/validation/test_related_articles.py -v # 119 testes (32 originais + 87 novos)Exemplo de uso direto:
Algum cenário de contexto que queira dar?
Validações parciais já existiam (
validate_type,validate_ext_link_type,validate_id_presence,validate_doi,validate_uri,validate_attrib_order). Este PR complementa com verificações de presença de atributos obrigatórios, validação contra lista global de valores permitidos, e preferência DOI vs URI.Testes de peer review (
test_peer_review.py) tinham 8 falhas pré-existentes. Este PR corrige 2 delas (testes de related-article); as 6 restantes são problemas não relacionados.Screenshots
N/A
Quais são tickets relevantes?
Criar validações para o elemento
<related-article>— SPS 1.10Referências
<related-article><related-article>Original 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
<related-article>conforme a especificação SPS 1.10, aumentando a conformidade de X% para 70% (8 de 12 regras).Nota: Algumas validações para
<related-article>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
<related-article>indica documentos relacionados ao que está sendo publicado (erratas, retratações, adendos, comentários, cartas, pareceres, preprints). Quando o documento relacionado também está publicado em SciELO, deve-se adicionar o<related-article>em ambos os documentos. Validações corretas garantem presença de atributos obrigatórios, valores corretos, e uso adequado de DOI vs URI.Conformidade atual: X de 12 regras implementadas (X%)
Meta após implementação: 8 de 12 regras (70%)
Documentação SPS
Referência oficial: https://docs.google.com/document/d/1GTv4Inc2LS_AXY-ToHT3HmO66UT0VAHWJNOIqzBNSgA/edit?tab=t.0#heading=h.relatedarticle
Regras principais conforme SPS 1.10:
Ocorrência:
<related-article>pode aparecer zero ou mais vezes em<article-meta>e<front-stub>Atributos obrigatórios:
@related-article-type(obrigatório)@id(obrigatório)@ext-link-type(obrigatório, valores:doiouuri)Valores permitidos para
@related-article-type:corrected-article- Erratacorrection-forward- Documento corrigido pela errataretracted-article- Retratação (total ou parcial)retraction-forward- Documento retratado totalmentepartial-retraction- Documento retratado parcialmenteaddended-article- Adendoaddendum- Documento objeto do adendoexpression-of-concern- Manifestação de preocupaçãoobject-of-concern- Documento objeto de manifestação de preocupaçãocommentary-article- Comentário ou cartacommentary- Documento comentado ou respostareply- Resposta (para comentário ou carta)letter- Carta ou resposta para cartareviewed-article- Parecer (revisão por pares)reviewer-report- Documento com parecerpreprint- Manuscrito em servidor de preprintsRegras de
@ext-link-type:@ext-link-type="doi"uri:@related-article-type="reviewer-report"(parecer com link externo)@related-article-type="preprint"(preprint)doise existir, mesmo para exceçõesOrdem obrigatória de atributos:
@related-article-type@id@xlink:href@ext-link-typePosicionamento:
<permissions>ou acima de<counts>Tradução (
<sub-article>):<related-article>também no idioma traduzido@idde<article>em<sub-article>Regras a Implementar
P0 – Críticas (implementar obrigatoriamente)
@related-article-type@related-article-typeé obrigatório em<related-article>@id@idé obrigatório em<related-article>@ext-link-type@ext-link-typeé obrigatório em<related-article>@related-article-type@related-article-typedeve estar na lista de valores permitidos@ext-link-type@ext-link-typedeve ser"doi"ou"uri"doicomo padrão@ext-link-typedeve ser"doi"(exceto parareviewer-reportepreprintque podem usar"uri")P1 – Importantes (implementar se possível)
@xlink:href@xlink:hrefé obrigatório em<related-article>@related-article-type,@id,@xlink:href,@ext-link-typeP2 – Futuras (fora do escopo deste Issue)
<permissions>ou antes de<counts><sub-article>quando há no artigo principal@identre<article>e<sub-article>💡 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.