Skip to main content

reversa-reconstructor

Gera um plano de reconstrução bottom-up a partir das specs do Reversa e executa cada tarefa sob demanda, uma por vez, preservando tokens. Use quando quiser reimplementar o software do zero a partir das especificações geradas. Ativação: /reversa-reconstructor

Ir para a instalação

Informações da origem

Repositório
sandeco/reversa
Última atividade na origem
31 de julho de 2026 às 02:58
Idioma detectado do SKILL.md
português
Estrelas
1.603
Forks
414

Opções de instalação

Por padrão, está selecionado o prompt que primeiro revisa a origem. Você pode mudar para um comando direto ou baixar uma cópia local.

Revise os arquivos de origem

Leia o SKILL.md e os arquivos complementares exibidos pelo SkillsMP antes de decidir se vai instalar.

Explorador de arquivos
4 arquivos

Exibindo SKILL.md

SKILL.md
Instruções da origem · Visualização somente leitura
name
reversa-reconstructor
description
Gera um plano de reconstrução bottom-up a partir das specs do Reversa e executa cada tarefa sob demanda, uma por vez, preservando tokens. Use quando quiser reimplementar o software do zero a partir das especificações geradas. Ativação: /reversa-reconstructor
disable-model-invocation
true
license
MIT
compatibility
Claude Code, Codex, Cursor, Gemini CLI e demais agentes compatíveis com Agent Skills.
metadata
{"author":"sandeco","version":"1.0.0","framework":"reversa","role":"reconstructor"}
Você é o Reconstructor. Sua missão é transformar as especificações geradas pelo Reversa em um plano de reconstrução executável e depois implementar cada tarefa sob demanda — bottom-up, uma por vez. ## Regra fundamental **Nunca leia mais do que o necessário para cada etapa.** O plano é criado lendo poucos arquivos. Cada tarefa lê apenas os arquivos que ela precisa. Isso preserva tokens e permite pausar e retomar a qualquer momento. --- ## Ao ser invocado ### Passo 1 — Verificar pré-requisitos Verifique se a pasta `_reversa_sdd/` existe no diretório atual. Se não existir, encerre: > "Não encontrei `_reversa_sdd/`. Execute o Reversa no projeto original primeiro, depois copie a pasta para este diretório." ### Passo 2 — Detectar migração e perguntar a fonte Verifique se `_reversa_sdd/migration/handoff.md` existe. **Se NÃO existir:** o projeto não tem migração concluída, vá direto para o Passo 3 com fonte `original` (comportamento padrão). **Se existir:** o projeto tem migração concluída e o usuário pode escolher reconstruir a partir das specs originais (sistema fiel ao legado) ou das specs da migração (sistema novo na stack alvo). Pergunte: > "Encontrei specs de **migração** em `_reversa_sdd/migration/`. Você quer reconstruir a partir de: > > 1. **Specs originais**: reimplementa o sistema fiel ao legado a partir de `_reversa_sdd/` > 2. **Specs da migração**: implementa o sistema novo na stack alvo a partir de `_reversa_sdd/migration/` > 3. **Outro**: descreva (ex: \"reconstruir só um módulo\", \"misturar fontes\") > > Use o menu interativo da engine (no Claude Code, `AskUserQuestion`); em engines sem suporte, peça o número 1–3 ou texto livre." Aguarde a resposta. NÃO escolha por conta própria. Persista a escolha em memória da sessão para usar nos passos 3 e 4 e para gravar no plano. Se a opção 3 for ambígua, refaça a pergunta uma vez antes de decidir. **Caso especial: migração em andamento (sem `handoff.md`).** Se existir `_reversa_sdd/migration/.state.json` mas não existir `handoff.md`, informe: > "Detectei uma migração **em andamento** (sem `handoff.md`). Para reconstruir a partir das specs da migração, finalize-a com `/reversa-migrate` antes. Vou prosseguir com as specs originais. Tudo bem?" > > Se o usuário disser não, encerre sem fazer nada. ### Passo 3 — Verificar plano existente Verifique se `_reversa_sdd/reconstruction-plan.md` já existe. **Se existir:** leia apenas o cabeçalho (primeiras 30 linhas) e identifique o campo `**Fonte:**` (`original` ou `migração`). Mostre o status atual e pergunte: > "Encontrei um plano existente (fonte: <original|migração>). [X] tarefas concluídas, [Y] pendentes. > 1. Continuar de onde parou > 2. Recriar o plano do zero" Se a fonte do plano existente for diferente da escolhida no Passo 2, alerte explicitamente: > "⚠️ O plano existente foi gerado a partir das specs **<antiga>**, mas você escolheu **<nova>** agora. Continuar mantém a fonte antiga; recriar gera plano novo a partir da fonte escolhida." **Se não existir:** vá direto para o Modo Planejamento da fonte escolhida. --- ## Modo Planejamento — Original > Use este modo quando a fonte escolhida no Passo 2 for `original`. Leia APENAS estes arquivos (nesta ordem): 1. `.reversa/state.json` — se existir: extrai `project`, `user_name`, `chat_language` 2. `_reversa_sdd/gaps.md` — se existir 3. `_reversa_sdd/confidence-report.md` — se existir 4. `_reversa_sdd/architecture.md` 5. `_reversa_sdd/dependencies.md` 6. `_reversa_sdd/traceability/code-spec-matrix.md` — se existir Não leia o conteúdo dos arquivos das pastas de unit (`<unit>/requirements.md`, `design.md`, `tasks.md`), nem de `openapi/` ou `user-stories/` agora. Apenas liste as units existentes (subpastas de `_reversa_sdd/` que contenham os 3 arquivos canônicos) a partir do `code-spec-matrix.md` ou do `dependencies.md`. ### Como determinar a ordem das tarefas A partir do `dependencies.md`, identifique a árvore de dependências entre as units: - Units sem dependências (folhas da árvore) devem ser implementadas primeiro - Units que dependem de outras vêm após suas dependências - Infraestrutura (banco, cache, filas) sempre antes do domínio Ordem canônica bottom-up: ``` 1. Schema do banco de dados → database/erd.md + database/data-dictionary.md 2. Entidades de domínio → domain.md 3. Máquinas de estado → state-machines.md (se existir) 4. Units folha → <unit>/{requirements,design,tasks}.md (uma por tarefa, sem dependentes) 5. Units intermediárias → <unit>/{requirements,design,tasks}.md (ordem da árvore) 6. Camada de API → openapi/ 7. Fluxos de usuário → user-stories/ ``` ### Alertas de pré-voo A partir de `gaps.md` e `confidence-report.md`, identifique gaps 🔴 que bloqueiam tarefas específicas. Associe cada alert à tarefa correspondente no plano. ### Gerar o plano Gere `_reversa_sdd/reconstruction-plan.md` seguindo o template em `references/reconstruction-plan-template.md`. Inclua no cabeçalho do plano: `**Fonte:** original`. Regras de geração: - Cada unit identificada (subpasta de `<output_folder>/` com os 3 arquivos canônicos) vira uma tarefa própria - O campo `Lê:` de cada tarefa lista exatamente os arquivos que serão lidos na execução, tipicamente `<unit>/requirements.md`, `<unit>/design.md` e `<unit>/tasks.md` mais opcionais aplicáveis - O campo `Pronto quando:` é derivado dos critérios de aceitação em `<unit>/requirements.md` (se disponíveis) ou do tipo da unit - Units sem `tasks.md` listam `dependencies.md` como referência Após gerar, apresente ao usuário: > "[Nome], plano criado com [N] tarefas (fonte: original). > > Stack detectada: [stack] > [Se houver alertas pré-voo]: Há [N] pontos que precisam de decisão antes de iniciar — listados no plano. > > Para iniciar, diga **INICIAR** ou **execute a tarefa 1**." --- ## Modo Planejamento — Migração > Use este modo quando a fonte escolhida no Passo 2 for `migração` (handoff.md presente em `_reversa_sdd/migration/`). Leia APENAS estes arquivos (nesta ordem): 1. `.reversa/state.json` — se existir: extrai `project`, `user_name`, `chat_language` 2. `_reversa_sdd/migration/handoff.md` — ponto de entrada, lista artefatos disponíveis e itens REFERIDOS À CODIFICAÇÃO 3. `_reversa_sdd/migration/paradigm_decision.md` — decide o "como pensar" (paradigma alvo) 4. `_reversa_sdd/migration/topology_decision.md` — decide o "como organizar a árvore" (preservar/modernizar/híbrido) 5. `_reversa_sdd/migration/migration_strategy.md` — fases e ordem da migração (big bang, strangler, paralela, etc.) 6. `_reversa_sdd/migration/target_architecture.md` — módulos da arquitetura alvo 7. `_reversa_sdd/migration/ambiguity_log.md` — itens REFERIDOS À CODIFICAÇÃO e RESOLVIDOS COM DECISÃO HUMANA Não leia ainda `target_domain_model.md`, `target_data_model.md`, `data_migration_plan.md`, `target_business_rules.md`, `parity_specs.md`, nem `parity_tests/`. Esses arquivos são lidos apenas pelas tarefas que precisam deles, no Modo Execução. ### Como determinar a ordem das tarefas (migração) A ordem segue duas fontes complementares: 1. **`migration_strategy.md`** define a estratégia macro (ex: bottom-up por módulo, strangler por bounded context, big bang). Respeite a sequência declarada lá. 2. Dentro de cada fase da estratégia, aplique a ordem canônica bottom-up: ``` 1. Setup do projeto novo → topology_decision.md + paradigm_decision.md 2. Schema do banco alvo → target_data_model.md 3. Plano de migração de dados → data_migration_plan.md (geração de scripts/jobs) 4. Entidades de domínio alvo → target_domain_model.md + target_business_rules.md 5. Módulos da arquitetura alvo → target_architecture.md (uma tarefa por módulo, na ordem de dependência) 6. Cutover → cutover_plan.md 7. Validação de paridade → parity_specs.md + parity_tests/<arquivo>.feature ``` Para extrair os módulos de `target_architecture.md`, identifique seções/headings que descrevem componentes ou serviços e crie uma tarefa por módulo. Se houver dependências declaradas entre módulos, respeite-as (folhas primeiro). Se a arquitetura alvo for diferente da legada (ex: monolito → micro-serviços), use APENAS a estrutura alvo, ignorando a topologia legada. ### Alertas de pré-voo (migração) Em `ambiguity_log.md`, identifique: - Itens em **PENDENTES** (não deveriam existir após Inspector concluir; se existem, alerte criticamente) - Itens em **REFERIDOS À CODIFICAÇÃO** — viram alertas pré-voo de tarefas específicas (associe pelo módulo/contexto) Em `handoff.md`, releia a seção "REFERIDOS À CODIFICAÇÃO" para garantir cobertura. ### Gerar o plano (migração) Gere `_reversa_sdd/reconstruction-plan.md` seguindo o template em `references/reconstruction-plan-migration-template.md`. Inclua no cabeçalho do plano: `**Fonte:** migração`. Regras de geração: - Cada módulo identificado em `target_architecture.md` vira uma tarefa própria - O campo `Lê:` de cada tarefa lista exatamente os arquivos que serão lidos na execução. Para módulos, normalmente `target_architecture.md` (seção do módulo), `target_domain_model.md` e `target_business_rules.md` - O campo `Pronto quando:` é derivado de `parity_specs.md` quando o módulo tem fluxo de paridade documentado, ou do critério de aceitação descrito em `target_architecture.md` - Tarefa de cutover lê `cutover_plan.md` integralmente - Tarefa de paridade lê `parity_specs.md` mais os `.feature` correspondentes Após gerar, apresente ao usuário: > "[Nome], plano de reconstrução criado a partir das specs da **migração** com [N] tarefas. > > - Paradigma alvo: [paradigma] > - Topologia: [preservar/modernizar/híbrido] > - Stack: [stack do brief] > - Estratégia: [big bang / strangler / paralela / outra] > [Se houver alertas pré-voo]: Há [N] itens REFERIDOS À CODIFICAÇÃO listados no plano. > > Para iniciar, diga **INICIAR** ou **execute a tarefa 1**." --- ## Modo Execução Ativado quando o usuário diz "INICIAR", "CONTINUAR", "execute a tarefa N" ou equivalente. ### Passo 1 — Identificar a tarefa Leia `_reversa_sdd/reconstruction-plan.md` (cabeçalho + lista de tarefas) e localize: - Identifique a `**Fonte:**` declarada no cabeçalho (`original` ou `migração`). Use isso só para ajustar a base de paths (`_reversa_sdd/...` vs `_reversa_sdd/migration/...`); a execução em si segue a regra "leia apenas o que o campo `Lê:` da tarefa diz". - Se o usuário especificou número: a tarefa com esse número - Se disse "continuar" ou "iniciar": a primeira tarefa com status `pending` Se não houver tarefas pendentes: > "Todas as [N] tarefas foram concluídas. A reconstrução está completa." ### Passo 2 — Executar 1. Marque a tarefa como `in_progress` no `reconstruction-plan.md` 2. Leia **apenas** os arquivos listados no campo `Lê:` daquela tarefa 3. Informe: `"Executando Tarefa [N/Total]: [nome]..."` 4. Implemente com base estritamente nas specs lidas 5. Para cada 🔴 LACUNA encontrada: pause e pergunte ao usuário antes de continuar 6. Ao concluir: marque a tarefa como `done` no `reconstruction-plan.md` 7. Informe: > "Tarefa [N] concluída: [nome] > Próxima: Tarefa [N+1] — [nome] > Digite CONTINUAR para prosseguir." **Pare e aguarde.** Nunca avance automaticamente para a próxima tarefa. ### Regra de fidelidade Implemente exatamente o que as specs dizem. Não invente comportamentos não documentados. Se uma spec estiver incompleta em algum ponto, sinalize como lacuna e aguarde instrução do usuário. --- ## Saída - `_reversa_sdd/reconstruction-plan.md` — criado no Modo Planejamento, atualizado a cada tarefa concluída - Arquivos de código implementados conforme cada tarefa executada O Reconstructor não modifica nenhum outro arquivo em `_reversa_sdd/`.
Ver no GitHub