Manutencao/paridade com sdd - #5
Merged
Merged
Conversation
Alinha o limite ao utf-sdd-template, que baixou o mesmo numero. Os 400 pediam um paragrafo longo mesmo em PR de manutencao de uma linha, e o efeito era texto inflado para passar no CI em vez de explicacao. Toca o workflow do CI, o guia (secao 9 e Apendice B), o CONTRIBUTING e o template de PR — os quatro lugares que afirmavam o numero. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Prazo de entrega vive no Moodle, nao no repositorio: data em arquivo versionado envelhece sem ninguem perceber, e o template e reusado a cada semestre. A tabela das tres entregas perde a coluna Data e ganha a nota dizendo onde a data esta. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
… commitado Cada etapa da Fase 0 passa a rodar `git status --porcelain` no documento que a antecede e a PARAR se houver alteracao pendente. Sem isso o portao da Fase 0 existia so como texto no guia: nada no fluxo impedia seguir com quatro documentos por commitar, que acabavam empilhados num commit unico no fim — e ai o `git log` nao prova mais qual decisao foi de quem. Cadeia coberta: /utf-design confere o prd, /utf-architecture confere prd e design-tokens, /utf-setup confere docs/ inteiro. O /utf-backlog ja exigia o commit do PRD em prosa; agora a exigencia tem comando que a verifica. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Sem essa regra, rodar /utf-issue numa historia ja em andamento fazia o fluxo recomecar do Passo 1 e reescrever uma spec que o usuario ja tinha aprovado — apagando o commit de aprovacao dele como referencia. Agora o fluxo descobre o estado pela pasta specs/ e entra no passo certo, o que tambem e o mecanismo que fecha a Issue depois da ultima tarefa. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
O tutor do Angular tinha 4 modos; o do utf-sdd-template tem 9. Portados os que fazem sentido aqui (o modo `flows` fica de fora: neste template a jornada vive no prototipo, nao num docs/user-flows.md): - `passo <n>` — le o diff da tarefa um arquivo por vez, no ritmo do aluno. E onde se aprende sintaxe: inject(), signal(), async aparecem pela primeira vez com cinco linhas na frente, nao no PR com quarenta arquivos. - `prd | design | architecture` — explica um documento da Fase 0 em cima do documento do aluno, antes de ele commitar uma decisao que nao sabe defender na arguicao. - `setup` — explica o scaffold: o app, a fonte de dados, e por que a suite nasce verde e vazia. O /utf-setup despacha sozinho, sem perguntar, porque e o unico momento do semestre em que o aluno recebe dezenas de arquivos que nao viu nascer. Cada etapa da Fase 0 passa a oferecer o tutor no portao. O modo `depois` tambem ganhou o caso da tarefa ainda nao commitada e um grep de commit que nao confunde `tarefa 1` com `tarefa 10`. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
O /utf-issue descrevia a spec e o plano em prosa, e o formato saia diferente a cada historia — o que faz o revisor de conformidade procurar criterio numerado onde nao ha e o /utf-task nao achar a proxima tarefa. Agora a forma esta escrita, com um comentario em cada secao dizendo por que ela existe: o teste que prova um criterio de aceite, o "Fora de escopo" que segura o inchaco da spec, o "Assume que" que exige TODO e Issue, e as "Duvidas em aberto" que precisam estar vazias antes da aprovacao. Os modelos moram em docs/ de proposito: specs/ so tem spec de verdade. Adaptados ao template: dependencia contra a develop (Gitflow), o teste e um .spec.ts, o contrato e com o json-server ou o BaaS, e o caso de "Assume que" mais comum aqui e a colecao que so migra para o BaaS na E3. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Bug e tarefa tecnica nao passam pelo /utf-issue e nao tem spec, mas ate agora o template nao dizia como eles entram: a Issue nascia em branco e o aluno escrevia uma linha, que e justamente o oposto do que se precisa — sem spec, a descricao da Issue E a especificacao. Dois modelos de Issue com a etiqueta manutencao ja aplicada, e a secao do tutorial que amarra as quatro regras do caminho curto. A que mais importa e a terceira: no bug, o primeiro commit e um teste que reproduz a falha e falha de verdade — sem ele nada prova que o bug foi embora nem que nao volta. E se o PRD nunca disse o que deveria acontecer ali, nao era bug: e historia nova, e volta para o ciclo completo. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Cinco paginas estaticas, sem build e sem dependencia de runtime: inicio, o ciclo, os comandos, os papeis e as duvidas. O conteudo e a explicacao do metodo com links para docs/guia-sdd.md, docs/tutorial-sdd.md e docs/checklist.md, que seguem sendo a fonte da verdade — o site ensina e remete, nunca duplica regra. O elemento estrutural e a faixa de portao: ela atravessa a pagina inteira exatamente onde o metodo interrompe o trabalho, de modo que a leitura encena o ciclo em vez de so descreve-lo. Escrito para este template, nao copiado do utf-sdd-template: Gitflow com a branch nascendo da develop antes da aprovacao da spec, Angular e BaaS no lugar de NestJS, a jornada vivendo no prototipo, o portao em 250 e os onze artefatos deste metodo. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
O job so roda quando github.repository e utfpr-gp/utf-angular-template. Como o repositorio e um template, sem essa guarda o repositorio de cada equipe tentaria publicar o site do metodo e falharia com o Pages desabilitado. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
O link fica acima da linha de corte, na parte que a equipe apaga ao dar nome ao projeto — e conteudo do template, nao da vitrine dela. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Duas delas sao defeitos que faziam o ciclo mentir: 1. **O revisor recebia diff vazio.** O Passo 3 mandava `git diff <SHA-do-passo-0>..HEAD`, mas nesse ponto o trabalho ainda nao esta commitado — esta no working tree. Com `..HEAD` o comando compara o SHA com ele mesmo e devolve nada, entao os dois revisores vinham emitindo parecer sobre diff vazio e "APROVADO" nao significava nada. Faltava tambem um `git add -A` depois do implementador: arquivo novo nao rastreado nao aparece em `git diff`, e componente e teste recem-criados sao o miolo de quase toda tarefa. 2. **O caminho dos pareceres tinha tres formas no mesmo arquivo** — `specs/<slug>/reviews/tarefa-$1-...` para contar as rodadas e para gravar, `specs/<issue>-<slug>/...` para as decisoes. Como a contagem de rodadas E a listagem do diretorio, gravar num caminho e contar noutro faz o ciclo achar que esta sempre na rodada 1 — e o limite de 2 rodadas, que e o freio contra loop infinito de correcao, deixa de existir. Agora ha uma forma so, com um passo explicito de normalizacao do numero. E duas lacunas: 3. O tutor em modo `passo` passa a ser despachado antes do portao do commit, conduzindo a leitura do diff um arquivo por vez. O modo existia desde o commit c6a6deb, mas nada o chamava. 4. No estouro das 2 rodadas, os pareceres sao commitados antes de qualquer limpeza (sem isso o `git clean` leva a prova junto), e na retomada da tarefa eles sao arquivados em vez de apagados. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
O Passo 4 despachava o auditor e so depois mandava atualizar prd, architecture e specs/README.md. Duas das quatro coisas que o auditor confere sao exatamente essas atualizacoes — entao ele auditava um repositorio que ainda nao era o que ia para o PR, e as duas pendencias apareciam sempre. Invertida a ordem no fluxo e no guia, com o portao do commit valendo tambem para o commit de documentacao. Corrige junto a ultima ocorrencia de `specs/<slug>/reviews/` no guia. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
O aluno abre a IDE no primeiro dia sem saber se o metodo carregou — e nao ha como saber sem perguntar. O prompt colavel confirma que as regras foram lidas, diz em que fase o projeto esta e qual e o proximo comando. Serve tambem na volta depois de dias sem mexer, que e quando o contexto se perde. Se o agente nao souber recitar as regras, elas nao carregaram, e a tabela das quatro ferramentas logo abaixo diz onde conferir. Aproveita para apontar os modelos de spec e plano e o caminho de bug e tarefa tecnica, que ate agora so existiam no tutorial. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
As regras falam em "a main reflete a producao" e "o deploy em producao acompanha": sao sobre o projeto que a equipe constroi, nao sobre este repositorio, que e o material didatico e nao tem producao nem release. A ambiguidade tem consequencia pratica — um agente rodando aqui le a constituicao e tenta abrir branch a partir de uma develop que nao existe. Fica dito: o template vive so na main, a manutencao dele entra por PR de branch curta direto para ela, e a develop do projeto do aluno e criada pelo /utf-setup no repositorio novo. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
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.
Closes #5
O que este PR faz e por quê
Comparei este template com o
utf-sdd-templatee encontrei uma diferença que nãoera de propósito: o SDD recebeu cinco rodadas de manutenção depois que este aqui
parou, e o miolo do método ficou uma geração atrás. As diferenças de identidade da
disciplina — Gitflow, Angular com BaaS, a ficha com oito RAs, a jornada vivendo no
protótipo em vez de num documento — continuam intactas. O que este PR traz é o que
ficou para trás sem querer, mais dois defeitos que faziam o ciclo mentir.
Os dois defeitos são o motivo principal deste PR.
O primeiro: o
utf-task.mdmandava os revisores rodaremgit diff <SHA-do-passo-0>..HEAD, mas nesse ponto o trabalho do implementadorainda não está commitado — está no working tree. Com
..HEADo comando compara oSHA com ele mesmo e devolve nada, então os dois revisores vinham emitindo parecer
sobre diff vazio, e "APROVADO" não significava coisa alguma. Faltava também um
git add -Adepois do implementador: arquivo novo não rastreado não aparece emgit diffde jeito nenhum, e componente e teste recém-criados são o miolo de quasetoda tarefa.
O segundo: o caminho dos pareceres aparecia em três formas diferentes dentro do
mesmo arquivo, e numa quarta no
utf-issue.md. Como a contagem de rodadas é alistagem do diretório, gravar num caminho e contar noutro faz o ciclo achar que
está sempre na rodada 1 — e o limite de duas rodadas, que é o freio contra o loop
infinito de correção, deixa de existir. Agora há uma forma só, com um passo
explícito de normalização do número.
O resto é paridade. A Fase 0 ganhou o portão de commit, que confere com
git status --porcelainse o documento anterior foi commitado antes de seguir —sem ele o portão existia só como texto no guia, e os quatro documentos acabavam
empilhados num commit único no fim, com a autoria sumindo. O
/utf-issueganhou aretomada de estado, para não reescrever spec já aprovada. O tutor ganhou os modos
passo,prd,design,architectureesetup, com a oferta no portão de cadaetapa. Entraram os modelos comentados de spec e plano, os templates de Issue para
bug e tarefa técnica, e a seção do tutorial que explica o caminho curto — no bug, o
primeiro commit é um teste que reproduz a falha. A auditoria final foi invertida:
a documentação é atualizada antes do auditor rodar, porque duas das quatro coisas
que ele confere são exatamente essas atualizações.
O Portão de Entendimento caiu de 400 para 250 caracteres, alinhando com o outro
template. Tirei as datas fixas da ficha, que envelhecem em silêncio — prazo vive no
Moodle. E o CONTRIBUTING agora diz a quem as regras de Gitflow se aplicam: ao
projeto que a equipe constrói, não a este repositório, que não tem produção nem
release. Essa ambiguidade tinha consequência prática — um agente rodando aqui lia a
constituição e tentava abrir branch a partir de uma
developque não existe.Por fim, entra o site do método em
site/, publicado no Pages por um workflow comguarda de repositório, para o repositório de cada equipe não tentar publicá-lo. O
conteúdo foi escrito para este template, não copiado do outro: Gitflow com a branch
nascendo da
developantes da aprovação da spec, Angular e BaaS no lugar de NestJS,e os onze artefatos deste método.
Depois do merge, falta um passo manual: em Settings → Pages, trocar a origem
para GitHub Actions. Sem isso o deploy falha, e não há como configurar isso por
arquivo.
Apontamentos da revisão
Não se aplica — PR de manutenção, sem
spec.md.