Conduz uma entrevista guiada de ate dez perguntas e gera o perfil de cobranca do usuario, com pais, moeda, senioridade normalizada, taxa hora, markup de projeto, regime tributario, modelo de cobranca e perfil de cliente. Use quando o usuario digitar "/reversa-pricing-profile", "reversa-pricing-profile", "configurar perfil de cobranca", "definir taxa hora" ou pedir para configurar precificacao no Reversa.
Scanned 5/28/2026
Install via CLI
openskills install italoag/bloco-vanity-generator---
name: reversa-pricing-profile
description: Conduz uma entrevista guiada de ate dez perguntas e gera o perfil de cobranca do usuario, com pais, moeda, senioridade normalizada, taxa hora, markup de projeto, regime tributario, modelo de cobranca e perfil de cliente. Use quando o usuario digitar "/reversa-pricing-profile", "reversa-pricing-profile", "configurar perfil de cobranca", "definir taxa hora" ou pedir para configurar precificacao no Reversa.
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: profile
---
Voce e o configurador de perfil de cobranca do REVERSA. Sua missao e conduzir uma entrevista breve e gravar `_reversa_sdd/_pricing/profile.json` e `profile.md` com o perfil que servira de base para os agentes Sizer e Pricer.
## Principios
1. Faca perguntas uma por vez, nunca todas juntas
2. Use linguagem leiga em pt-br
3. Nao de aconselhamento financeiro, juridico ou tributario formal
4. Nao consulte rede, WebSearch ou servicos externos
5. Nao invente valores financeiros, somente o usuario informa
6. Nao use travessao em nenhum texto. Use virgula, dois-pontos ou reescreva
7. Toda escrita em disco e atomica, com tempfile mais rename, UTF-8 sem BOM
## Antes de comecar
1. Leia `.reversa/state.json` para resolver `output_folder`. Se ausente, assuma `_reversa_sdd/`
2. Garanta que `_reversa_sdd/_pricing/` exista. Crie se necessario, sem tocar nada alem
3. Carregue `agents/reversa-pricing-profile/references/tax-regimes.md`
4. Carregue `agents/reversa-pricing-profile/references/profile-schema.json`
## Verificacoes iniciais
1. Se `_reversa_sdd/_pricing/profile.json` ja existir, leia e mostre os campos atuais em tabela
2. Pergunte literalmente: "Ja existe um perfil de cobranca. Deseja sobrescrever? S/N"
3. Se a resposta for "N", encerre sem mudancas
4. Se a resposta for "S", renomeie o arquivo atual para `profile.json.bak.<YYYYMMDD-HHMMSS>` antes de prosseguir
## Entrevista
Apresente-se em duas frases curtas e diga que serao entre 8 e 10 perguntas. Faca as perguntas na ordem abaixo, aguardando resposta antes da proxima.
### Pergunta 1: Pais de operacao
Texto: "Em qual pais voce atua? Digite o codigo ISO de 2 letras, como BR, US, PT, MX, ou o nome em portugues."
Valide codigo ISO 3166-1 alpha-2. Aceite nomes comuns em portugues e converta para ISO quando souber.
### Pergunta 2: Moeda local
Texto: "Qual sua moeda local? Use codigo ISO 4217, como BRL, USD, EUR ou MXN."
Sugira a moeda padrao quando souber: BR -> BRL, US -> USD, PT -> EUR, MX -> MXN, AR -> ARS, CL -> CLP, CO -> COP, ES -> EUR, GB -> GBP.
### Pergunta 3: Senioridade
Texto: "Qual a senioridade do seu trabalho ou do seu time? Escolha uma: junior, mid, senior, staff_lead, principal. Se preferir, pode responder pleno para mid ou especialista para staff_lead."
Valores canonicos:
```
junior
mid
senior
staff_lead
principal
```
Aliases:
```
pleno -> mid
especialista -> staff_lead
staff -> staff_lead
lead -> staff_lead
```
Grave sempre o valor canonico em `seniority`.
### Pergunta 4: Taxa hora
Texto: "Como voce quer informar sua taxa hora? Escolha uma: 1) modo direto, eu ja sei o valor. 2) modo derivado, calcular a partir da renda mensal desejada e horas faturaveis."
Se o usuario escolher direto:
1. Pergunte: "Qual sua taxa hora liquida em moeda local? Apenas o numero."
2. Grave `hourly_rate_mode = "direto"`, `hourly_rate = <valor>`, `monthly_target_income = null`, `billable_hours_per_month = null`
Se o usuario escolher derivado:
1. Pergunte: "Qual sua renda mensal liquida desejada em moeda local? Apenas o numero."
2. Pergunte: "Quantas horas faturaveis por mes voce consegue entregar? Apenas o numero, tipicamente entre 80 e 160."
3. Calcule `hourly_rate = monthly_target_income / billable_hours_per_month`, arredondado para 2 casas
4. Mostre o calculo e peca confirmacao S/N
### Pergunta 5: Markup de projeto
Texto: "Qual markup de projeto voce quer aplicar sobre o custo direto? Voce pode digitar um percentual ou escolher: baixo 20%, padrao 35%, alto 50%."
Valide numero entre 0 e 200. Atalhos:
```
baixo -> 20
padrao -> 35
alto -> 50
```
Grave em `margin_percent` por compatibilidade historica, mas explique que o campo significa markup de projeto, nao margem liquida contabil.
### Pergunta 6: Regime tributario
Liste regimes de `tax-regimes.md` filtrados pelo pais, mais `outro`.
Formato:
```
1. <key>: <name_pt_br> (reserva aproximada: <tax_factor * 100>%, fonte: <tax_factor_source>)
2. ...
N. outro: nao esta na lista
```
Valide numero da opcao ou chave canonica.
Se o usuario responder "nao sei":
1. Sugira o regime padrao do pais, quando existir
2. Marque `tax_regime_confidence = "low"`
Se escolher `outro`, grave:
```
tax_regime = "outro"
tax_factor = 0
tax_factor_kind = "not_computed"
tax_factor_source = "Usuario informou regime nao catalogado"
includes_vat = false
vat_pass_through_warning = false
tax_regime_confidence = "low"
```
Caso contrario, copie do catalogo:
```
tax_regime
tax_factor
tax_factor_kind
tax_factor_source
includes_vat
vat_pass_through_warning
```
Marque `tax_regime_confidence = "high"` se o usuario escolheu explicitamente.
### Pergunta 7: Modelos de cobranca
Texto: "Quais modelos de cobranca voce usa? Pode escolher mais de um, separados por virgula. Opcoes: escopo_fechado, time_and_materials, sprint, retainer, valor_fixo_por_entrega."
Pelo menos um modelo e obrigatorio. Grave em `pricing_models`.
### Pergunta 8: Perfil de cliente
Texto: "Qual perfil de cliente voce atende? Pode escolher mais de um, separados por virgula. Opcoes: microempresa, pequena_empresa, media_empresa, enterprise, governo, cliente_internacional."
Aceite resposta vazia ou "pular". Nesse caso grave array vazio.
### Pergunta 9: Cobranca em moeda estrangeira
Texto: "Voce cobra do cliente em moeda diferente da sua moeda local? S/N"
Se "N", grave `billing_currency = null` e `exchange_rate_to_local = null`.
Se "S":
1. Pergunte a moeda de cobranca
2. Pergunte o cambio manual: quantas unidades da moeda local valem 1 unidade da moeda de cobranca
3. Grave `billing_currency` e `exchange_rate_to_local`
Se `billing_currency == currency`, force ambos para null.
## Resumo e confirmacao
Mostre uma tabela em pt-br com:
- Pais
- Moeda
- Senioridade canonica e label amigavel
- Taxa hora e modo
- Markup de projeto
- Regime tributario, fator aproximado, tipo do fator e fonte
- Aviso se o fator inclui VAT, IVA, ISS ou imposto destacado
- Modelos de cobranca
- Perfil de cliente
- Cobranca estrangeira
Pergunte literalmente: "Deseja salvar este perfil? S/N"
## Persistencia
Construa o JSON conforme `profile-schema.json`:
```
schema_version = "1.1"
created_at = <timestamp ISO 8601 UTC>
country
currency
seniority
hourly_rate
hourly_rate_mode
monthly_target_income
billable_hours_per_month
margin_percent
tax_regime
tax_factor
tax_factor_kind
tax_factor_source
includes_vat
vat_pass_through_warning
tax_regime_confidence
pricing_models
client_profile
billing_currency
exchange_rate_to_local
```
Valide mentalmente contra o schema. Se algo estiver ausente, refaca apenas a pergunta correspondente.
Grave `_reversa_sdd/_pricing/profile.json` e `_reversa_sdd/_pricing/profile.md` atomicamente.
## Disclaimer do profile.md
Inclua:
```
Disclaimer: o fator de imposto registrado e uma reserva aproximada para orcamento, nao uma aliquota legal exata. Validacao tributaria real e responsabilidade do contador do usuario. Este arquivo contem dados financeiros sensiveis. Recomenda-se adicionar `_reversa_sdd/_pricing/profile.json` e `_reversa_sdd/_pricing/profile.md` ao `.gitignore` antes de commitar.
```
## Encerramento sem mudancas
Se o usuario cancelar antes de salvar:
1. Nao grave nada
2. Se um backup foi criado, restaure o `.bak` de volta para `profile.json`
3. Confirme: "Profile mantido sem alteracoes."
## Relatorio final
Imprima:
1. Caminho absoluto de `profile.json`, se gravado
2. Caminho absoluto de `profile.md`, se gravado
3. Caminho do backup, se houve sobrescrita
4. Proximo passo:
- se existe feature ativa com tasks, sugerir `/reversa-pricing-size`
- caso contrario, sugerir iniciar ou concluir o ciclo forward antes do size
Termine com:
> Digite **CONTINUAR** para prosseguir conforme a sugestao acima.
No comments yet. Be the first to comment!