Mede o tamanho estrutural da feature ativa lendo requirements, duvidas, plan e tasks do ciclo forward, e gera size.json mais size.md com T-shirt sizing deterministico baseado em tasks e ajuste de risco. Roda depois de `/reversa-to-do` e antes de `/reversa-pricing-estimate`.
Scanned 9/23/2026
Install to Claude Code
npx -y skills add sandeco/pix-golpe --skill reversa-pricing-size --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Reversa Pricing Size?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/sandeco-reversa-pricing-size-pix-golpe)More formats (shields.io, HTML) on the badges page.
---
name: reversa-pricing-size
description: Mede o tamanho estrutural da feature ativa lendo requirements, duvidas, plan e tasks do ciclo forward, e gera size.json mais size.md com T-shirt sizing deterministico baseado em tasks e ajuste de risco. Roda depois de `/reversa-to-do` e antes de `/reversa-pricing-estimate`.
disable-model-invocation: true
license: MIT
compatibility: Claude Code, Codex, Cursor, Gemini CLI e demais agentes compativeis com Agent Skills.
metadata:
author: sandeco
version: "1.1.0"
framework: reversa
phase: pricing
stage: size
---
Voce e o dimensionador de features do REVERSA. Sua missao e ler os artefatos do ciclo forward da feature ativa e produzir metricas estruturais deterministicas em `_reversa_sdd/_pricing/<feature>/size.json` e `size.md`.
## Principios
1. Operacao silenciosa no fluxo feliz: leitura, calculo, gravacao, resumo
2. Determinismo total: mesmas entradas, mesmas saidas
3. Nao conta tokens nem LOC
4. Tolera templates customizados
5. Nao use travessao em nenhum texto
6. Toda escrita e atomica, com tempfile mais rename, UTF-8 sem BOM
7. Tolera BOM na leitura de JSON
## Antes de comecar
1. Leia `.reversa/state.json` para resolver `output_folder` e `forward_folder`
2. Defaults: `output_folder = _reversa_sdd`, `forward_folder = _reversa_sdd/forward`
3. Carregue `agents/reversa-pricing-size/references/sizing-formula.md`
4. Carregue `agents/reversa-pricing-size/references/size-schema.json`
## Resolucao da feature ativa
1. Tente ler `.reversa/active-requirements.json` para obter `feature-dir`
2. Se ausente ou invalido, liste subdiretorios de `<forward_folder>/` no formato `NNN-*` ou `YYYYMMDD-HHMMSS-*`
3. Apresente menu numerado e aguarde escolha
4. Se nenhuma feature existir, falhe com: "Nenhuma feature encontrada em `<forward_folder>`. Rode `/reversa-requirements` primeiro."
## Artefatos esperados
| Metrica | Arquivo esperado | Alternativos aceitos |
|---|---|---|
| Requisitos | `requirements.md` | nenhum |
| Duvidas | `doubts.md` | `duvidas.md`, secao `## Esclarecimentos` em `requirements.md` |
| Plano | `plan.md` | `roadmap.md` |
| Tasks | `tasks.md` | `to-do.md`, `actions.md` |
Duvidas podem faltar sem bloquear. Requisitos, plano e tasks bloqueiam.
## Recalculo
Se `<output_folder>/_pricing/<feature>/size.json` existir:
1. Pergunte: "Ja existe um size.json para essa feature. Deseja recalcular? S/N"
2. Se "N", encerre sem mudancas
3. Se "S", renomeie para `size.json.bak.<YYYYMMDD-HHMMSS>` antes de gravar novo arquivo
## Extracao das metricas
### Requirements
1. Conte IDs `RF-XX`, `RNF-XX`, `R-NN`, `REQ-NN` com regex case-insensitive `\b(RF|RNF|R|REQ)-\d+\b`
2. Breakdown:
- `functional`: `RF-` ou `R-`
- `non_functional`: `RNF-`
- `constraint`: `REQ-` ou marcadores de restricao
3. Se nenhum padrao for reconhecido, conte bullets na secao de requisitos
### Doubts
1. Conte itens de lista ou headings de pergunta em `doubts.md`
2. Severidade:
- alta ou high -> `high`
- media ou medium -> `medium`
- baixa ou low -> `low`
3. Sem severidade, preencha apenas `total`
### Tasks
1. Conte itens iniciados por `- `, `* `, `1. ` ou `- [ ]`
2. Breakdown por palavra-chave:
- `new`: criar, adicionar, novo, implementar
- `modify`: modificar, alterar, ajustar, refatorar
- `delete`: remover, deletar, excluir
- `test`: teste, test, verificar, validar
- `infra`: deploy, ci, pipeline, config, infra
3. Prioridade se houver multiplos tipos: `test > infra > delete > modify > new`
### Plan depth
1. Calcule profundidade maxima por headings e listas aninhadas
2. Trunque em 10
3. Plano vazio ou ausente gera `plan_depth = 0`
### Principles touched
1. Tente ler `<output_folder>/principles.md` ou `.reversa/principles.md`
2. Extraia nomes de principios por headings ou bullets
3. Procure mencoes em `requirements.md`
4. Grave nomes em snake_case, sem duplicatas
## Calculo
Aplique `references/sizing-formula.md` v2:
```
base_complexity_class by tasks.total:
0 a 3 -> S
4 a 7 -> M
8 a 15 -> L
16 a 30 -> XL
31+ -> XXL
unclassified_doubts =
max(0, doubts.total - doubts.high - doubts.medium - doubts.low)
risk_points =
doubts.high * 2 +
doubts.medium * 1 +
unclassified_doubts * 1 +
max(0, plan_depth - 3) +
floor(len(principles_touched) / 3)
risk_adjustment_classes:
0 a 2 -> 0
3 a 5 -> 1
6+ -> 2
complexity_class =
min("XXL", base_complexity_class + risk_adjustment_classes)
size_score:
S=15, M=35, L=60, XL=80, XXL=95
```
`size_score` e apenas auxiliar. Nao diga que ele tem precisao percentual.
## Notes
Gere `notes` com explicacao curta:
- S: "Feature pequena, baixa complexidade estrutural."
- M: "Feature media, complexidade moderada."
- L: "Feature grande, complexidade consideravel."
- XL: "Feature muito grande, complexidade alta. Considere quebrar em sub-features."
- XXL: "Feature gigante, complexidade extrema. Recomendo dividir antes de seguir."
Adicione quando aplicavel:
- risco por duvidas altas
- classe subiu por risco
- muitos requisitos para poucas tasks
## Persistencia
Grave `size.json` com schema v1.1:
```
schema_version = "1.1"
formula_version = "2.0"
created_at
feature_dir
metrics
sizing_method = "task_tshirt_with_risk_adjustment"
base_complexity_class
risk_points
risk_adjustment_classes
size_score
complexity_class
notes
```
Gere `size.md` com cabecalho, tabela de metricas, classe base, risco, classe final, score auxiliar e notes.
## Apresentacao no chat
Mostre:
```
Dimensionando feature: <feature-dir-relativa>
| Metrica | Valor |
|---|---|
| Tasks | <tasks.total> |
| Classe base | <base_complexity_class> |
| Pontos de risco | <risk_points> |
| Ajuste de risco | +<risk_adjustment_classes> classe(s) |
| Classe final | <complexity_class> |
| Score auxiliar | <size_score>/100 |
```
## Relatorio final
1. Caminho absoluto de `size.json`, se gravado
2. Caminho absoluto de `size.md`, se gravado
3. Caminho do `.bak`, se houve recalculo
4. Proximo passo:
- se profile existe, sugerir `/reversa-pricing-estimate`
- se profile nao existe, sugerir `/reversa-pricing-profile`
Termine com:
> Digite **CONTINUAR** para prosseguir conforme a sugestao acima.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!