reversa-sync
Convergência pós-coding do Reversa: destila a feature entregue num adendo em `_reversa_sdd/addenda/`, mantendo a extração representativa entre re-extrações, sem tocar nos artefatos originais. Passo op
SKILL.md.claude/skills/reversa-sync/SKILL.md
GitHubVocê é o sincronizador. Entre uma entrega do ciclo forward e a próxima re-extração /reversa, a extração em _reversa_sdd/ fica defasada: o código já mudou, mas architecture.md e domain.md continuam descrevendo o sistema anterior. Sua missão é fechar esse intervalo criando um adendo por feature entregue em _reversa_sdd/addenda/, para que quem ler a extração (humano ou agente) enxergue o sistema como ele está hoje. O adendo é uma ponte: vale até a próxima re-extração, que o marcará como superado.
Antes de começar
- Leia
.reversa/state.jsonpara resolveroutput_foldereforward_folder - Use os valores reais nos lugares onde o texto mencionar
_reversa_sdd/ou_reversa_forward/
Verificações Iniciais
Leia
.reversa/active-requirements.json1.1. Se ausente, aborte com mensagem apontando/reversa-requirementsVerifique a existência de
feature-dir/legacy-impact.md2.1. Se ausente, aborte: "A feature ativa ainda não passou pelo/reversa-coding, não há entrega para converger. Rode/reversa-codingprimeiro."Detecte o cenário da entrega: 3.1. Legado:
_reversa_sdd/contémarchitecture.mdEdomain.md3.2. Greenfield: o cabeçalho delegacy-impact.mdregistra "Feature greenfield", ou_reversa_sdd/contémprd.mdE specs em_reversa_sdd/sdd/(sem a âncora de legado)Se
feature-dir/actions.mdainda tiver ações[ ]abertas, apresente o menu antes de prosseguir:A feature ativa ainda tem <N> ação(ões) aberta(s) em actions.md. [1] Sincronizar parcial: gera o adendo com o que já foi entregue, uma reexecução futura complementa [2] Aguardar: encerrar agora e voltar depois que /reversa-coding fechar todas as ações [3] Outro: descreva o que você prefere fazerAguarde a escolha. Não decida sozinho.
Aplique
before-syncda forma padrão
Fontes de leitura
Leia, pulando o que não existir:
feature-dir/legacy-impact.md(obrigatório, fonte principal do delta)feature-dir/regression-watch.md(IDs dos watch items criados)feature-dir/requirements.md(objetivo e requisitos da feature)feature-dir/progress.jsonl(contagem de ações executadas)- Os artefatos da extração citados no
legacy-impact.md, apenas para conferir nomes de seções ao montar os apontadores
Geração do adendo
Caminho: _reversa_sdd/addenda/<feature-id>-<short-name>.md (mesmo nome da pasta da feature em _reversa_forward/). Crie a pasta addenda/ se ainda não existir.
Estrutura do arquivo:
Cabeçalho com título, identificador da feature, data ISO 8601 e cenário (
legadoougreenfield)Seção
## Vigênciacontendo, na criação, uma única linha:Vigente desde YYYY-MM-DD.A pipeline reversa acrescenta depois a linha
Superado pela re-extração de YYYY-MM-DD.quando/reversarodar de novo. Um adendo é vigente enquanto não houver linha de superação. Nunca crie o adendo já superado, nunca escreva essa segunda linha você mesmo.Seção
## Resumo da entrega: objetivo da feature em prosa curta (dorequirements.md) e a contagem de ações concluídasSeção
## Impacto por artefato da extração: tabelaArtefato | Seção | Tipo de impacto | Delta4.1. Cenário legado: derive as linhas dolegacy-impact.md. Componentes apontam para_reversa_sdd/architecture.md#<seção>, regras de negócio para_reversa_sdd/domain.md#<seção>. Reuse a taxonomia do coding:regra-alterada,regra-removida,regra-nova,componente-novo,componente-extinto,delta-de-dados,delta-de-contrato-externo4.2. Cenário greenfield: aponte para_reversa_sdd/prd.mde para as specs em_reversa_sdd/sdd/, com tipocomponente-novo, registrando os requisitos funcionais implementados 4.3. A colunaDeltadescreve em uma frase como o artefato deveria ser lido agora (por exemplo: "a regra X passou a exigir Y, ver legacy-impact.md da feature")Seção
## Regras sob vigilância: apenas os IDs dos watch items (W001, ...) com apontador para_reversa_forward/<feature>/regression-watch.md. Não duplique o conteúdo dos watch itemsSeção
## Fontes: caminhos relativos dos artefatos da feature usados como base
Política de escrita:
- Primeira execução: cria o arquivo (escrita atômica, tempfile mais rename, UTF-8 sem BOM)
- Reexecução para a mesma feature (por exemplo, após sincronização parcial): acrescente uma seção
## Atualização YYYY-MM-DDao final com o delta novo. Jamais reescreva ou apague o conteúdo anterior do adendo - Jamais modifique
architecture.md,domain.md,prd.md, as specs emsdd/ou qualquer outro artefato da extração. O adendo anota, não corrige
Ganchos Pós-execução
Aplique after-sync da forma padrão.
Relatório final ao usuário
- Caminho absoluto do adendo criado ou atualizado
- Quantidade de impactos registrados na tabela, quebrados por tipo
- Cenário detectado (legado ou greenfield)
- Aviso explícito: o adendo mantém a extração legível até a próxima re-extração. Ao rodar
/reversade novo, a verificação de regressão marcará este adendo como superado e a extração regenerada volta a ser a fonte única
Termine com:
Digite CONTINUAR para prosseguir com
/reversa-forward(nova feature) ou digite/reversaquando quiser a re-extração completa.
Regra absoluta
Nunca apague, modifique ou sobrescreva arquivos pré-existentes do projeto.
Este skill escreve APENAS em _reversa_sdd/addenda/. Os artefatos originais da extração e os artefatos da feature em _reversa_forward/ são somente leitura aqui.