Skip to content
Back to skills

Reversa Resume

ASecurity

Retoma uma feature pausada (listada em paused-features de active-requirements.json) e a torna ativa. Use quando o usuário digitar "/reversa-resume", "reversa-resume", "retomar feature pausada" ou pedir para voltar a uma feature anterior. NÃO cria features novas, apenas troca a ativa pela escolhida e (quando faz sentido) move a ativa atual para paused-features.

  • 2 stars
  • 0 votes
  • 0 copies
  • 3 views
  • Added May 28, 2026
toolsgit

Works with

  • claude code
  • cursor
  • cli

Security analysis

A100/100

Scanned May 28, 2026

npx -y skills add italoag/bloco-vanity-generator --skill reversa-resume --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Reversa Resume?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Reversa Resume
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/italoag-reversa-resume/badge)](https://www.skillsdirectory.com/skills/italoag-reversa-resume)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: reversa-resume
description: Retoma uma feature pausada (listada em paused-features de active-requirements.json) e a torna ativa. Use quando o usuário digitar "/reversa-resume", "reversa-resume", "retomar feature pausada" ou pedir para voltar a uma feature anterior. NÃO cria features novas, apenas troca a ativa pela escolhida e (quando faz sentido) move a ativa atual para paused-features.
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
  phase: forward
  stage: resume
---

Você é o retomador. Sua missão é trocar a feature ativa por uma das que estão em `paused-features`, sem perder o trabalho de nenhuma das duas.

## Antes de começar

1. Leia `.reversa/state.json` para resolver `output_folder` e `forward_folder`
2. Use os valores reais nos lugares onde o texto mencionar `_reversa_sdd/` ou `_reversa_forward/`

## Verificações Iniciais

1. Leia `.reversa/active-requirements.json`
   1.1. Se ausente, aborte com mensagem:

       > 🛑 `/reversa-resume` exige uma feature ativa para fazer a troca. `active-requirements.json` não existe.
       >
       > Use `/reversa-requirements` para criar a primeira feature do projeto.

2. Verifique o campo `paused-features`
   2.1. Se ausente ou array vazio, aborte com mensagem:

       > 🛑 Não há features pausadas para retomar. O array `paused-features` está vazio.
       >
       > Features ficam pausadas quando você roda `/reversa-requirements` numa feature ativa em andamento e escolhe a opção 2 (criar paralela).

3. Aplique ganchos `before-resume` da forma padrão (lê `.reversa/hooks.yml`, filtra `enabled: false`, mesma lógica de outros skills do ciclo forward)

## Listagem das pausadas

Para cada entrada em `paused-features`:

1. Verifique se o `feature-dir` ainda existe em disco
   1.1. Se NÃO existir, marque como `ausente` (a pasta foi apagada manualmente, a entry virou lixo)
2. Se existir, detecte o **estágio físico atual** com a mesma lógica do `/reversa-requirements`:

   | Condição observada em `feature-dir` | Estágio físico |
   |--------------------------------------|----------------|
   | `requirements.md` ausente | `vazio` |
   | `requirements.md` presente, `roadmap.md` ausente | `requirements` |
   | `roadmap.md` presente, `actions.md` ausente | `plan` |
   | `actions.md` presente com pelo menos uma linha `\| ... \| \[ \] \|` | `coding-em-progresso` |
   | `actions.md` presente, todas as ações como `\| ... \| \[X\] \|` | `done` |

3. Para `coding-em-progresso`, conte ações `[X]` versus `[ ]`

Apresente lista numerada ao usuário:

```
Features pausadas:

1. <NNN-short-name>  ·  estágio: <físico>  ·  pausada em <YYYY-MM-DD>  [· N de M ações]
2. <NNN-short-name>  ·  estágio: <físico>  ·  pausada em <YYYY-MM-DD>
3. <NNN-short-name>  ·  estágio: ausente   ·  pausada em <YYYY-MM-DD>  (pasta apagada, entry orfã)
```

Para entries `ausente`, marque visualmente que estão órfãs.

## Escolha do usuário

Pergunte:

> Qual feature você quer retomar? Digite o número da lista, ou `0` para cancelar.

Aguarde a resposta. NÃO escolha por conta própria.

## Tratamento de entry órfã

Se o usuário escolheu uma entry com estágio `ausente`:

1. NÃO faça swap
2. Pergunte: "A pasta dessa feature foi apagada. Quer remover essa entry de `paused-features`? (sim / não)"
3. Se sim, remova só essa entry do array, escreva `active-requirements.json` atualizado (atomicamente), encerre o skill.
4. Se não, encerre sem mudar nada.

## Detecção do estado da feature atualmente ativa

Para a feature em `active-requirements.json#feature-dir`, detecte o estágio físico usando a mesma tabela acima. Esse valor decide se ela vai ser pausada ou descartada na troca.

## Swap

1. Construa a nova entrada de pausa para a feature **atualmente ativa**, copiando todos os campos do `active-requirements.json` exceto `paused-features`, e adicionando:
   - `paused-at`: ISO 8601 da hora atual
   - `paused-from-stage`: estágio físico detectado da ativa atual
2. Decida o destino da feature ativa atual:
   - 2.1. Se estágio físico for `requirements`, `plan` ou `coding-em-progresso`: **pause**, ou seja, faça push da entrada construída no array `paused-features`
   - 2.2. Se estágio físico for `done`: **descarte do active**, NÃO faça push (a feature está concluída, não vale ocupar espaço em paused-features). A pasta dela continua intocada em `_reversa_forward/`
   - 2.3. Se estágio físico for `vazio`: **descarte do active**, NÃO faça push (corrupção, pasta sem `requirements.md`)
3. Remova a feature escolhida do array `paused-features`
4. Construa o novo `active-requirements.json`:

```json
{
  "schema-version": 1,
  "feature-dir": "<feature-dir da escolhida>",
  "feature-id": "<feature-id da escolhida>",
  "short-name": "<short-name da escolhida>",
  "started-at": "<started-at original da escolhida>",
  "current-stage": "<current-stage original da escolhida, ou estágio físico detectado>",
  "stages-completed": [<copiado da escolhida, ou [] se ausente>],
  "paused-features": [<array atualizado>]
}
```

   4.1. Se a escolhida não tinha `started-at`/`current-stage`/`stages-completed` (entry de versão antiga, antes do schema rico), use o estágio físico detectado para `current-stage` e a hora atual como `started-at` (registre essa fallback em mensagem ao usuário)

5. Escreva o JSON atomicamente (tempfile mais rename)

## Ganchos Pós-execução

Aplique `after-resume` da forma padrão.

## Relatório final ao usuário

1. Feature retomada: identificador `<NNN-short-name>`
2. Estágio físico detectado dessa feature: valor entre `requirements` / `plan` / `coding-em-progresso`
3. Para `coding-em-progresso`, mostrar `N de M ações concluídas`
4. Destino da feature anteriormente ativa:
   4.1. "pausada" (se foi push pra paused-features)
   4.2. "descartada do ativo (estado: done)" ou "descartada do ativo (estado: vazio)"
5. Sugestão de próximo skill conforme o estágio da feature retomada:
   5.1. `requirements` → sugerir `/reversa-doubt` (se houver `[DÚVIDA]`) ou `/reversa-plan`
   5.2. `plan` → sugerir `/reversa-to-do`
   5.3. `coding-em-progresso` → sugerir `/reversa-coding` (com argumento opcional pra restringir escopo)

Termine sempre com:

> Digite **CONTINUAR** para prosseguir conforme a sugestão acima.

NÃO execute o próximo skill automaticamente, deixe a decisão com o usuário.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.