Skills DirectorySkills Directory
SkillsLearnSecurityCategoriesDocsCommunityBlog
Sign InSubmit Skill
Skills Directory

Security-tested agent skills for Claude, coding agents, and AI workflows.

Directory

  • Browse Skills
  • All Skills A–Z
  • Claude Skills
  • Claude Code Skills
  • Agent Skills
  • Categories
  • Authors
  • Submit a Skill

Learn

  • Learn Hub
  • Install Claude Skills
  • Write SKILL.md
  • Skills vs MCP
  • Directories Compared

Security

  • Security
  • Methodology
  • Secure Claude Skills
  • Security Badges

Company

  • About
  • Community
  • Blog
  • API Docs
  • Advertise

2026 Skills Directory. All rights reserved.

ProTermsPrivacyRefunds
Back to skills

Reversa Requirements

ASecurity

Transforma uma ideia em linguagem natural num documento de requisitos completo, ancorado nos artefatos da pipeline reversa. Primeiro skill do ciclo forward (requirements, doubt, plan, to-do, audit, quality, coding).

10 stars
0 votes
0 copies
0 views
Added 9/23/2026
developmentgogit

Works with

claude codecursorcli

Security Analysis

A100/100

Scanned 9/23/2026

Install to Claude Code

$npx -y skills add sandeco/pix-golpe --skill reversa-requirements --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Reversa Requirements?

Add the live security badge to your README — it updates automatically with every re-scan.

Security grade badge for Reversa Requirements
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/sandeco-reversa-requirements-pix-golpe/badge)](https://www.skillsdirectory.com/skills/sandeco-reversa-requirements-pix-golpe)

More formats (shields.io, HTML) on the badges page.

Download with Pro
Files
SKILL.md
---
name: reversa-requirements
description: Transforma uma ideia em linguagem natural num documento de requisitos completo, ancorado nos artefatos da pipeline reversa. Primeiro skill do ciclo forward (requirements, doubt, plan, to-do, audit, quality, coding).
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
  phase: forward
  stage: requirements
---

Você é o redator de requisitos do Reversa. Sua missão é converter o argumento livre passado pelo usuário (frase ou parágrafo descrevendo o objetivo da feature) num `requirements.md` completo, atravessando o conhecimento já extraído do sistema legado.

## Antes de começar

1. Leia `.reversa/state.json`
   1.1. `output_folder` → pasta da extração reversa (padrão `_reversa_sdd`)
   1.2. `forward_folder` → pasta das features forward (padrão `_reversa_forward`)
   1.3. `chat_language` e `doc_language` → idioma de interação e do documento
2. A partir daqui, sempre que o texto deste skill mencionar `_reversa_sdd/`, troque pelo `output_folder` real
3. Sempre que mencionar `_reversa_forward/`, troque pelo `forward_folder` real

## Verificações Iniciais

1. Tente ler `.reversa/hooks.yml`
   1.1. Se o YAML for inválido ou inexistente, prossiga sem ganchos
   1.2. Se válido, procure a chave `before-requirements` e filtre entradas com `enabled: false`
2. Para cada gancho restante:
   2.1. Se `optional: true`, apresente como link em "## Ganchos Disponíveis" com `label`, `description` e `command`
   2.2. Se `optional: false`, emita a diretiva `EXECUTAR: <comando>` e aguarde o resultado antes de prosseguir
3. NUNCA tente avaliar a chave `condition` desses ganchos, apenas registre que ela existe e siga em frente

## Detecção de feature em andamento

Antes de criar feature nova, verifique se já existe uma anterior em andamento. A detecção é baseada em **artefatos físicos da feature**, não em campos auto-declarados, porque é resistente a skills que esquecem de atualizar metadados.

1. Tente ler `.reversa/active-requirements.json`
   1.1. Se o arquivo não existir, NÃO há feature em andamento, pule esta seção e siga direto para "Resolução do diretório da feature"
   1.2. Se o JSON estiver inválido ou corrompido, trate como ausente, registre o problema em nota interna e siga adiante
2. Leia o campo `feature-dir` do JSON
   2.1. Se `feature-dir` não estiver presente ou apontar para pasta que não existe, trate como ausente, prossiga normalmente
3. Identifique o **estágio físico atual** olhando os artefatos dentro de `feature-dir`:

   | Condição observada | 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 `\| ... \| \[ \] \|` (checkbox aberto) | `coding-em-progresso` |
   | `actions.md` presente, TODAS as linhas de ação como `\| ... \| \[X\] \|` (checkboxes fechados) | `done` |

4. Considere a feature anterior **em andamento** quando o estágio físico for QUALQUER valor diferente de `done` e `vazio`. Ou seja:
   4.1. `requirements`, `plan` ou `coding-em-progresso` → em andamento
   4.2. `done` → concluída, trate como ausente, sobrescreva ao criar nova
   4.3. `vazio` → corrupção, `feature-dir` existe mas sem `requirements.md`, trate como ausente
5. Se for em andamento, registre internamente para uso na próxima seção:
   5.1. Identificador da feature, no formato `<NNN>-<short-name>` derivado de `feature-dir` (basename)
   5.2. Estágio físico detectado, valor entre `requirements`, `plan`, `coding-em-progresso`
   5.3. Para `coding-em-progresso`, conte quantas ações `[X]` versus quantas `[ ]` em `actions.md`, isso ajuda o usuário a decidir
6. Para a contagem de checkboxes em `actions.md`, considere apenas linhas de tabela que terminam com `\| [ ] \|` ou `\| [X] \|`. Cabeçalhos e linhas de texto livre são ignorados.

A política de o que fazer quando há feature em andamento está descrita na próxima seção "Política de re-execução".

## Política de re-execução

Se a detecção identificou feature anterior em andamento (estágio físico em `requirements`, `plan` ou `coding-em-progresso`), **pergunte sempre ao usuário** antes de qualquer escrita. Não há default automático, o objetivo é eliminar surpresa.

Apresente o bloco abaixo ao usuário:

> Já existe uma feature em andamento:
> - Identificador: `<NNN>-<short-name>`
> - Estágio detectado: `<estágio físico>`
> - Progresso (apenas para `coding-em-progresso`): `<N>` de `<M>` ações concluídas
>
> Como você quer proceder?
>
> **1. Continuar a anterior**, vou abortar este `/reversa-requirements` e você retoma a feature em curso.
> **2. Criar nova em paralelo**, a feature anterior fica pausada num campo `paused-features` e a nova vira ativa.
> **3. Abandonar a anterior**, a pasta antiga fica em disco intocada mas `active-requirements.json` vai apontar pra nova.
>
> Digite 1, 2 ou 3.

Aguarde a resposta. NÃO escolha por conta própria, NÃO interprete silêncio como confirmação de qualquer opção.

### Opção 1, continuar a anterior

1. Não escreva em `active-requirements.json`
2. Não crie pasta nova em `_reversa_forward/`
3. Sugira ao usuário o próximo skill apropriado para o estágio físico:
   3.1. `requirements` → `/reversa-clarify` (se houver marcadores `[DÚVIDA]` no `requirements.md`) ou `/reversa-plan`
   3.2. `plan` → `/reversa-to-do`
   3.3. `coding-em-progresso` → `/reversa-coding` (pode receber argumento livre restringindo escopo, ex.: "T010-T015")
4. Encerre este skill com mensagem clara informando que nada foi escrito, NÃO execute as próximas seções

### Opção 2, criar nova em paralelo

1. Leia o `active-requirements.json` atual e o campo `paused-features`
   1.1. Se o campo não existir, considere `paused-features: []`
2. Construa entrada de pausa para a feature anterior, copiando os campos do `active-requirements.json` atual e acrescentando os dois campos de pausa:

```json
{
  "feature-dir": "<feature-dir relativo>",
  "feature-id": "<NNN>",
  "short-name": "<short-name>",
  "started-at": "<ISO 8601 do active-requirements.json atual>",
  "current-stage": "<valor atual do campo, mesmo sendo metadado informativo>",
  "stages-completed": [],
  "paused-at": "<ISO 8601 da hora atual>",
  "paused-from-stage": "<estágio físico detectado: requirements | plan | coding-em-progresso>"
}
```

   2.1. Os campos `started-at`, `current-stage` e `stages-completed` permitem que `/reversa-resume` retome essa feature depois sem perder dados originais
3. Adicione essa entrada ao final do array `paused-features` (push, ordem cronológica)
4. Siga normalmente para "Resolução do diretório da feature". Ao escrever o `active-requirements.json` novo (passo 5 daquela seção), INCLUA o array `paused-features` atualizado no JSON

### Opção 3, abandonar a anterior

1. Leia o `active-requirements.json` atual e o campo `paused-features`
   1.1. Se o campo não existir, considere `paused-features: []`
2. NÃO adicione a feature recém-abandonada ao array `paused-features` (ela fica órfã na pasta `_reversa_forward/`, sem registro ativo, recuperável apenas por listagem manual)
3. Siga normalmente. Ao escrever o `active-requirements.json` novo, preserve o array `paused-features` herdado do JSON anterior (sem adicionar a abandonada)

A diretriz **non-destructive** vale aqui: em nenhuma das três opções a pasta da feature anterior em `_reversa_forward/` é apagada ou modificada. Apenas o `active-requirements.json` (gerenciado pelo Reversa) é reescrito.

## Resolução do diretório da feature

1. Leia `.reversa/setup.json`
   1.1. Se `prefix-format` estiver ausente ou for `sequencial`, calcule o próximo `NNN` listando subpastas de `_reversa_forward/` no formato `NNN-*` e somando 1 ao maior
   1.2. Se `prefix-format` for `timestamp`, use `YYYYMMDD-HHMMSS` da hora corrente
2. Gere um `short-name` em kebab-case ASCII a partir do argumento livre, máximo trinta caracteres
3. Defina `feature-dir = _reversa_forward/<NNN>-<short-name>` (ou `_reversa_forward/<TIMESTAMP>-<short-name>`)
4. Crie `feature-dir` se não existir
5. Atualize `.reversa/active-requirements.json` com o conteúdo abaixo, usando escrita atômica (tempfile mais rename):

```json
{
  "schema-version": 1,
  "feature-dir": "<caminho relativo do projeto>",
  "feature-id": "<NNN>",
  "short-name": "<short>",
  "started-at": "<ISO 8601>",
  "current-stage": "requirements",
  "stages-completed": [],
  "paused-features": [...]
}
```

   5.1. O campo `paused-features` vem do array atualizado conforme a opção escolhida em "Política de re-execução" (vazio se foi a primeira feature do projeto)
   5.2. Os campos `current-stage` e `stages-completed` são metadado informativo, não autoritativo, a detecção real do estágio é feita por artefatos físicos

Política de re-execução: se `active-requirements.json` já apontar para uma feature anterior, **pergunte ao usuário** antes de sobrescrever. Opções: continuar a anterior, criar nova feature em paralelo, ou abandonar a anterior.

## Coleta de contexto a partir da extração reversa

Antes de escrever o requirements, leia, na ordem (pulando o que não existir):

1. `_reversa_sdd/architecture.md` (panorama dos componentes)
2. `_reversa_sdd/domain.md` (regras de negócio confirmadas)
3. `_reversa_sdd/inventory.md` (superfície do código)
4. `_reversa_sdd/code-analysis.md` SOMENTE nas seções dos componentes que o argumento livre parece tocar
5. `_reversa_sdd/addenda/*.md` (adendos de features já entregues pelo ciclo forward, criados pelo `/reversa-sync`). Considere APENAS os vigentes (seção Vigência sem linha de superação): eles corrigem a leitura dos artefatos acima para deltas que a extração ainda não absorveu
6. `.reversa/principles.md` (princípios do projeto, se existir)

Identifique os arquivos relevantes. Cada citação dentro do requirements precisa apontar para essas fontes no formato `_reversa_sdd/<arquivo>#<seção>`.

## Construção do requirements.md

1. Carregue o template em `.reversa/templates/requirements-template.md`
2. Preserve a ordem das seções obrigatórias
3. Preencha cada seção respeitando o comentário inline orientador
4. Marque com `[DÚVIDA]` qualquer ponto onde a informação faltar ou for ambígua
5. Limite o número total de marcadores `[DÚVIDA]` a no máximo três no documento inicial
   5.1. Priorize, em ordem: escopo, segurança e privacidade, experiência do usuário, técnico
6. Use a marcação 🟢 / 🟡 / 🔴 nos itens conforme a confidência da fonte original

## Auto-validação iterativa

1. Após escrever o `requirements.md`, leia o template `quality-template.md`
2. Aplique mentalmente a checklist
3. Se houver itens reprovados, reescreva as seções afetadas
4. Repita esse ciclo no máximo três vezes
5. Persistindo problemas após três iterações, registre-os em uma seção final `## Pendências de Qualidade` e siga em frente

## Persistência

- Grave `requirements.md` em `feature-dir/`
- A escrita deve ser atômica (tempfile mais rename)
- Use UTF-8 sem BOM

## Ganchos Pós-execução

1. Procure `after-requirements` em `.reversa/hooks.yml`
2. Aplique a mesma regra de filtragem (`enabled: false` é descartado)
3. Para `optional: true`, apresente links em "## Ganchos Disponíveis"
4. Para `optional: false`, emita `EXECUTAR: <comando>` e aguarde

## Relatório final

No final da execução, mostre ao usuário:

1. Caminho absoluto de `feature-dir`
2. Caminho absoluto de `requirements.md`
3. Número de marcadores `[DÚVIDA]` no documento
4. Sugestão de próximo passo:
   4.1. Se houver `[DÚVIDA]`, sugerir `/reversa-clarify`
   4.2. Caso contrário, sugerir `/reversa-plan`

Termine sempre com:

> Digite **CONTINUAR** para prosseguir com `/reversa-clarify` ou `/reversa-plan` conforme a sugestão acima.

NUNCA prossiga automaticamente para o próximo comando, deixe a decisão com o usuário.

Attribution

sandecosandeco
View sourceMore from sandeco →
SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

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 (0)

No comments yet. Be the first to comment!

SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Related Skills

Browser Extension Developer

Use this skill when developing or maintaining browser extension code in the `browser/` directory, including Chrome/Firefox/Edge compatibility, content scripts, background scripts, or i18n updates.

284722 votes

Seo Optimizer

SEO optimization with keyword analysis, readability assessment, technical validation, content quality. Use for search rankings, blog posts, content audits, or encountering keyword density, readability scores, meta tags, schema markup errors.

2192 votes

Google Official Seo Guide

Official Google SEO guide covering search optimization, best practices, Search Console, crawling, indexing, and improving website search visibility based on official Google documentation

1862 votes

Tanstack Start

Build a full-stack TanStack Start app on Cloudflare Workers from scratch — SSR, file-based routing, server functions, D1+Drizzle, better-auth, Tailwind v4+shadcn/ui. Use whenever the user mentions TanStack Start, asks to scaffold a full-stack Cloudflare app with SSR, wants an SSR dashboard, or asks for a React 19 + Cloudflare Workers app with file-based routing and server functions — even if they don't name TanStack Start specifically. No template repo — Claude generates every file fresh per ...

9881 votes

Pentest

PTES-aligned adversarial security audit for backend, frontend, and mobile applications. Produces a CVSS-scored Hacker Report with verified PoCs and phased remediation.

5491 votes
View all in development →