Você é o executor. Sua missão é transformar actions.md em código real, fase por fase, respeitando paralelismo e dependências. Ao terminar, deixar dois rastros para auditoria futura: legacy-impact.md (o que foi mexido no legado) e regression-watch.md (o que precisa continuar verdadeiro nas próximas extrações).
Antes de começar
- Leia
.reversa/state.json para resolver output_folder e forward_folder
- Use os valores reais nos lugares onde o texto mencionar
_reversa_sdd/ ou _reversa_forward/
Pré-requisito inegociável: extração reversa
Esse skill EXIGE que a pipeline reversa tenha sido executada antes pelo menos uma vez. Sem _reversa_sdd/, os dois artefatos centrais do skill (legacy-impact.md e regression-watch.md) ficam sem âncora e perdem completamente o valor, o ciclo forward vira um framework genérico qualquer. O Reversa só faz sentido com a ponte legado-código viva.
A verificação é estrita: _reversa_sdd/ precisa existir como diretório E conter pelo menos architecture.md E domain.md. Se qualquer condição falhar, o skill aborta com mensagem clara, NÃO oferece opção de prosseguir mesmo assim, NÃO escreve nada em disco.
Verificações Iniciais
Leia .reversa/active-requirements.json
1.1. Se ausente, aborte com mensagem apontando /reversa-requirements
Verifique a existência de feature-dir/actions.md
2.1. Se ausente, aborte com mensagem apontando /reversa-to-do
Verifique o pré-requisito da extração reversa:
3.1. Se _reversa_sdd/ não existir como diretório, aborte com a mensagem:
> 🛑 `/reversa-coding` exige a pipeline reversa executada antes. A pasta `_reversa_sdd/` não foi encontrada.
>
> Execute `/reversa` para gerar a extração do legado e depois volte para cá. Sem esse contexto, `legacy-impact.md` e `regression-watch.md` ficariam sem âncora e o ciclo forward perderia seu diferencial.
3.2. Se _reversa_sdd/ existir mas faltar architecture.md, aborte com a mensagem:
> 🛑 `/reversa-coding` exige `_reversa_sdd/architecture.md` (gerado pelo Architect na pipeline reversa). O arquivo está ausente, talvez a extração tenha sido parcial.
>
> Execute `/reversa` em modo completo (mínimo `essencial`) e volte para cá.
3.3. Se _reversa_sdd/architecture.md existir mas faltar _reversa_sdd/domain.md, aborte com a mensagem:
> 🛑 `/reversa-coding` exige `_reversa_sdd/domain.md` (gerado pelo Detective na pipeline reversa). O arquivo está ausente.
>
> Execute `/reversa` para completar a extração e volte para cá.
3.4. Em todos os casos do passo 3, NÃO crie legacy-impact.md, NÃO crie regression-watch.md, NÃO toque em actions.md, NÃO escreva progress.jsonl. Apenas relate e encerre.
Aplique before-coding da forma padrão
Escopo da rodada
- Se o argumento livre indicar fase ou intervalo de IDs (ex.: "só Núcleo", "T001-T005"), restrinja a execução a esse escopo
- Caso contrário, execute em ordem todas as ações
[ ] ainda não concluídas
Loop de execução por fase
Para cada fase, na ordem Preparação, Testes, Núcleo, Integração, Polimento:
- Selecione todas as ações da fase com status
[ ]
- Calcule o conjunto independente (ações sem dependência aberta)
- Para o conjunto independente, identifique sub-conjunto marcado
[//]
3.1. Execute esse sub-conjunto pensando em cada ação como bloco coerente, mas relate à parte
- Execute as demais ações do conjunto sequencialmente
- Após cada ação:
5.1. Atualize
feature-dir/actions.md mudando [ ] para [X]
5.2. Escreva linha em feature-dir/progress.jsonl com timestamp ISO 8601, ID da ação, status final, arquivos tocados
- Se uma ação falhar:
6.1. Mantenha
[ ] no actions
6.2. Registre status: failed no progress
6.3. Pare a fase e relate ao usuário
Geração do legacy-impact.md
Após executar (mesmo que parcialmente):
- Para cada arquivo do projeto tocado, mapeie ao componente correspondente em
_reversa_sdd/architecture.md quando possível
- Para cada componente afetado, classifique o tipo de impacto:
regra-alterada, regra-removida, regra-nova, componente-novo, componente-extinto, delta-de-dados, delta-de-contrato-externo
- Atribua severidade alinhada com
/reversa-audit (CRITICAL, HIGH, MEDIUM, LOW)
- Liste regras 🟢 do
_reversa_sdd/domain.md que continuam intactas (vão para a seção "Preservadas")
- Liste regras 🟢 que foram alteradas ou removidas (vão para a seção "Modificadas")
Estrutura do arquivo:
- Cabeçalho com data e identificador da feature
- Tabela
Arquivo afetado | Componente | Tipo | Severidade | Justificativa
- Diff conceitual por componente, em prosa
- Seção "Preservadas"
- Seção "Modificadas"
Grave em feature-dir/legacy-impact.md com escrita atômica, rewrite completo.
Geração do regression-watch.md
- Para cada regra na seção "Modificadas" do
legacy-impact.md, gere um watch item
- Para regras explicitamente removidas, gere watch item do tipo
ausência
- Para regras alteradas, gere watch item do tipo
redação ou presença conforme o caso
- Para regras com confidência rebaixada, gere watch item do tipo
confidência
- Atribua ID estável
W001, W002, ..., reciclando IDs antigos do arquivo se já existir
Estrutura:
- Cabeçalho com identificador da feature
- Tabela
ID | Origem (arquivo, seção) | Regra esperada após mudança | Tipo de verificação | Sinal de violação
- Seção "Histórico de re-extrações" inicialmente vazia, será preenchida pelo agente reverso quando rodar
/reversa de novo
- Seção "Arquivadas" inicialmente vazia
NUNCA inclua no watch principal regras que originalmente eram 🟡 ou 🔴, essas vão para uma seção "Observações" sem peso de regressão.
Grave em feature-dir/regression-watch.md. A primeira execução cria o arquivo; execuções seguintes fazem append nas seções de itens novos, jamais reescrevendo histórico ou IDs antigos.
Atualização do progress.jsonl
Cada linha deve ter, no mínimo:
{"ts":"2026-05-05T16:30:00Z","action":"T003","status":"done","files":["src/x/y.js"]}
Append-only. Jamais reescreva linhas anteriores, mesmo se descobrir que ficaram erradas. Para corrigir, adicione nova linha status: corrected com o ID alvo.
Ganchos Pós-execução
Aplique after-coding da forma padrão.
Relatório final ao usuário
- Quantas ações executadas com sucesso
- Quantas falharam (se houver)
- Caminho absoluto de
actions.md, progress.jsonl, legacy-impact.md, regression-watch.md
- Quantos watch items foram criados nessa rodada
- Aviso explícito: para fechar o ciclo, rode
/reversa (extração reversa) novamente em algum momento futuro
- Se a execução foi parcial, indique a próxima fase ou ação pendente
NUNCA dispare a re-extração sozinho, isso é decisão do usuário.
Termine com:
Digite CONTINUAR para prosseguir com /reversa (re-extração) ou outra ação que o usuário quiser.
1---2name: reversa-coding3description: Conduz a execução do actions.md em código. Atualiza checkboxes para [X], escreve progress.jsonl, gera legacy-impact.md e regression-watch.md. Use quando o usuário digitar "/reversa-coding", "reversa-coding", "executar plano" ou pedir para começar a codar a feature ativa. Último skill do ciclo forward, depois de `/reversa-to-do` (e opcionalmente `/reversa-audit` ou `/reversa-quality`).4license: MIT5---67Você é o executor. Sua missão é transformar `actions.md` em código real, fase por fase, respeitando paralelismo e dependências. Ao terminar, deixar dois rastros para auditoria futura: `legacy-impact.md` (o que foi mexido no legado) e `regression-watch.md` (o que precisa continuar verdadeiro nas próximas extrações).89## Antes de começar10111. Leia `.reversa/state.json` para resolver `output_folder` e `forward_folder`122. Use os valores reais nos lugares onde o texto mencionar `_reversa_sdd/` ou `_reversa_forward/`1314## Pré-requisito inegociável: extração reversa1516Esse skill **EXIGE** que a pipeline reversa tenha sido executada antes pelo menos uma vez. Sem `_reversa_sdd/`, os dois artefatos centrais do skill (`legacy-impact.md` e `regression-watch.md`) ficam sem âncora e perdem completamente o valor, o ciclo forward vira um framework genérico qualquer. O Reversa só faz sentido com a ponte legado-código viva.1718A verificação é estrita: `_reversa_sdd/` precisa existir como diretório E conter pelo menos `architecture.md` E `domain.md`. Se qualquer condição falhar, o skill aborta com mensagem clara, NÃO oferece opção de prosseguir mesmo assim, NÃO escreve nada em disco.1920## Verificações Iniciais21221. Leia `.reversa/active-requirements.json`23 1.1. Se ausente, aborte com mensagem apontando `/reversa-requirements`242. Verifique a existência de `feature-dir/actions.md`25 2.1. Se ausente, aborte com mensagem apontando `/reversa-to-do`263. Verifique o pré-requisito da extração reversa:27 3.1. Se `_reversa_sdd/` não existir como diretório, aborte com a mensagem:2829 > 🛑 `/reversa-coding` exige a pipeline reversa executada antes. A pasta `_reversa_sdd/` não foi encontrada.30 >31 > Execute `/reversa` para gerar a extração do legado e depois volte para cá. Sem esse contexto, `legacy-impact.md` e `regression-watch.md` ficariam sem âncora e o ciclo forward perderia seu diferencial.3233 3.2. Se `_reversa_sdd/` existir mas faltar `architecture.md`, aborte com a mensagem:3435 > 🛑 `/reversa-coding` exige `_reversa_sdd/architecture.md` (gerado pelo Architect na pipeline reversa). O arquivo está ausente, talvez a extração tenha sido parcial.36 >37 > Execute `/reversa` em modo completo (mínimo `essencial`) e volte para cá.3839 3.3. Se `_reversa_sdd/architecture.md` existir mas faltar `_reversa_sdd/domain.md`, aborte com a mensagem:4041 > 🛑 `/reversa-coding` exige `_reversa_sdd/domain.md` (gerado pelo Detective na pipeline reversa). O arquivo está ausente.42 >43 > Execute `/reversa` para completar a extração e volte para cá.4445 3.4. Em todos os casos do passo 3, NÃO crie `legacy-impact.md`, NÃO crie `regression-watch.md`, NÃO toque em `actions.md`, NÃO escreva `progress.jsonl`. Apenas relate e encerre.46474. Aplique `before-coding` da forma padrão4849## Escopo da rodada50511. Se o argumento livre indicar fase ou intervalo de IDs (ex.: "só Núcleo", "T001-T005"), restrinja a execução a esse escopo522. Caso contrário, execute em ordem todas as ações `[ ]` ainda não concluídas5354## Loop de execução por fase5556Para cada fase, na ordem Preparação, Testes, Núcleo, Integração, Polimento:57581. Selecione todas as ações da fase com status `[ ]`592. Calcule o conjunto independente (ações sem dependência aberta)603. Para o conjunto independente, identifique sub-conjunto marcado `[//]`61 3.1. Execute esse sub-conjunto pensando em cada ação como bloco coerente, mas relate à parte624. Execute as demais ações do conjunto sequencialmente635. Após cada ação:64 5.1. Atualize `feature-dir/actions.md` mudando `[ ]` para `[X]`65 5.2. Escreva linha em `feature-dir/progress.jsonl` com timestamp ISO 8601, ID da ação, status final, arquivos tocados666. Se uma ação falhar:67 6.1. Mantenha `[ ]` no actions68 6.2. Registre `status: failed` no progress69 6.3. Pare a fase e relate ao usuário7071## Geração do legacy-impact.md7273Após executar (mesmo que parcialmente):74751. Para cada arquivo do projeto tocado, mapeie ao componente correspondente em `_reversa_sdd/architecture.md` quando possível762. Para cada componente afetado, classifique o tipo de impacto: `regra-alterada`, `regra-removida`, `regra-nova`, `componente-novo`, `componente-extinto`, `delta-de-dados`, `delta-de-contrato-externo`773. Atribua severidade alinhada com `/reversa-audit` (CRITICAL, HIGH, MEDIUM, LOW)784. Liste regras 🟢 do `_reversa_sdd/domain.md` que continuam intactas (vão para a seção "Preservadas")795. Liste regras 🟢 que foram alteradas ou removidas (vão para a seção "Modificadas")8081Estrutura do arquivo:82831. Cabeçalho com data e identificador da feature842. Tabela `Arquivo afetado | Componente | Tipo | Severidade | Justificativa`853. Diff conceitual por componente, em prosa864. Seção "Preservadas"875. Seção "Modificadas"8889Grave em `feature-dir/legacy-impact.md` com escrita atômica, rewrite completo.9091## Geração do regression-watch.md92931. Para cada regra na seção "Modificadas" do `legacy-impact.md`, gere um watch item942. Para regras explicitamente removidas, gere watch item do tipo `ausência`953. Para regras alteradas, gere watch item do tipo `redação` ou `presença` conforme o caso964. Para regras com confidência rebaixada, gere watch item do tipo `confidência`975. Atribua ID estável `W001`, `W002`, ..., reciclando IDs antigos do arquivo se já existir9899Estrutura:1001011. Cabeçalho com identificador da feature1022. Tabela `ID | Origem (arquivo, seção) | Regra esperada após mudança | Tipo de verificação | Sinal de violação`1033. Seção "Histórico de re-extrações" inicialmente vazia, será preenchida pelo agente reverso quando rodar `/reversa` de novo1044. Seção "Arquivadas" inicialmente vazia105106NUNCA inclua no watch principal regras que originalmente eram 🟡 ou 🔴, essas vão para uma seção "Observações" sem peso de regressão.107108Grave em `feature-dir/regression-watch.md`. A primeira execução cria o arquivo; execuções seguintes fazem append nas seções de itens novos, jamais reescrevendo histórico ou IDs antigos.109110## Atualização do progress.jsonl111112Cada linha deve ter, no mínimo:113114```json115{"ts":"2026-05-05T16:30:00Z","action":"T003","status":"done","files":["src/x/y.js"]}116```117118Append-only. Jamais reescreva linhas anteriores, mesmo se descobrir que ficaram erradas. Para corrigir, adicione nova linha `status: corrected` com o ID alvo.119120## Ganchos Pós-execução121122Aplique `after-coding` da forma padrão.123124## Relatório final ao usuário1251261. Quantas ações executadas com sucesso1272. Quantas falharam (se houver)1283. Caminho absoluto de `actions.md`, `progress.jsonl`, `legacy-impact.md`, `regression-watch.md`1294. Quantos watch items foram criados nessa rodada1305. Aviso explícito: para fechar o ciclo, rode `/reversa` (extração reversa) novamente em algum momento futuro1316. Se a execução foi parcial, indique a próxima fase ou ação pendente132133NUNCA dispare a re-extração sozinho, isso é decisão do usuário.134135Termine com:136137> Digite **CONTINUAR** para prosseguir com `/reversa` (re-extração) ou outra ação que o usuário quiser.