prompts-unificando 1.2.0 → 1.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/prompts/revisao-copy.md +148 -35
- package/prompts/testes.md +85 -8
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "prompts-unificando",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.4.0",
|
|
4
4
|
"description": "Biblioteca de prompts padronizados para auditoria, refatoração, testes, segurança/LGPD e revisão de copy, agnóstica de stack e de LLM.",
|
|
5
5
|
"bin": {
|
|
6
6
|
"prompts-unificando": "bin/cli.js"
|
package/prompts/revisao-copy.md
CHANGED
|
@@ -4,19 +4,20 @@
|
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
## 📋 Índice de Execução
|
|
7
|
-
1. **
|
|
8
|
-
2. **
|
|
9
|
-
3. **
|
|
10
|
-
4. **
|
|
11
|
-
5. **
|
|
12
|
-
6. **
|
|
7
|
+
1. **Regras Invioláveis (R1–R11)**
|
|
8
|
+
2. **Identificação do Projeto e da Stack (Read-Only)**
|
|
9
|
+
3. **Mapeamento de Todo Texto Visível ao Usuário (Read-Only)**
|
|
10
|
+
4. **Correção Ortográfica e Gramatical (Aplica Direto)**
|
|
11
|
+
5. **Remoção de Vícios de Linguagem de IA (Aplica Direto)**
|
|
12
|
+
6. **Diagnóstico de Unidades de Conteúdo Incompletas**
|
|
13
|
+
7. **Proposta de Item Novo de Conteúdo (Requer Aprovação)**
|
|
13
14
|
|
|
14
15
|
---
|
|
15
16
|
|
|
16
17
|
## ✅ PROMPT: REVISÃO ORTOGRÁFICA & UX COPY (PT-BR)
|
|
17
18
|
|
|
18
19
|
### 📖 O QUE ESTE PROMPT FAZ:
|
|
19
|
-
Diferente do Doc 5 (auditoria de engenharia, read-only) e do Doc 6 (segurança/LGPD/deploy, read-only), este prompt **edita texto diretamente** — mas só texto, nunca lógica, estilo ou estrutura de código.
|
|
20
|
+
Diferente do Doc 5 (auditoria de engenharia, read-only) e do Doc 6 (segurança/LGPD/deploy, read-only), este prompt **edita texto diretamente** — mas só texto, nunca lógica, estilo ou estrutura de código. Ele tem **duas facetas com prioridade corretiva**: (1) corrigir toda a escrita visível ao usuário final (UI strings, conteúdo estruturado, meta-SEO) em português formal do Brasil — ortografia, gramática e crase sempre corrigidas — e (2) eliminar vícios de linguagem característicos de texto gerado por IA, mas **apenas quando o vício atrapalha clareza, naturalidade ou conversão**, nunca por gosto pessoal. O significado e o tom pretendido são preservados em 100% dos casos.
|
|
20
21
|
|
|
21
22
|
Funciona em qualquer stack de frontend/produto digital (React, Vue, Angular, Next.js, sites estáticos, apps mobile) — a primeira etapa do prompt identifica a stack e o padrão de conteúdo antes de mapear qualquer texto.
|
|
22
23
|
|
|
@@ -25,8 +26,9 @@ Funciona em qualquer stack de frontend/produto digital (React, Vue, Angular, Nex
|
|
|
25
26
|
**Revisão de Texto:**
|
|
26
27
|
- 🔍 Detecção automática de stack e padrão de conteúdo (hardcoded, i18n, CMS, `.md`/`.mdx`)
|
|
27
28
|
- ✏️ Correção ortográfica, gramatical e de crase — aplicada direto, com evidência arquivo:linha
|
|
28
|
-
- 🤖 Remoção de vícios de IA (paralelismo negativo, regra de três artificial, vocabulário inflado, hedging excessivo)
|
|
29
|
-
-
|
|
29
|
+
- 🤖 Remoção de vícios de IA (paralelismo negativo, regra de três artificial, vocabulário inflado, hedging excessivo) — só quando atrapalha clareza/conversão, com critério anti-over-rewrite
|
|
30
|
+
- 🔒 Proteção de i18n: edita apenas valores, chaves intactas; não mexe em pluralização/parametrização dinâmica
|
|
31
|
+
- 📦 Diagnóstico de itens de conteúdo incompletos em coleções (dicas, FAQs, cards) — completa respeitando o padrão existente, sem inventar fato de produto
|
|
30
32
|
- 🆕 Proposta de item novo de conteúdo — nunca aplicada sem aprovação explícita
|
|
31
33
|
- 🚫 Nunca toca em código, nomes de variáveis/funções, comentários, logs ou strings de teste
|
|
32
34
|
|
|
@@ -47,7 +49,55 @@ Angular, Next.js, sites estáticos, apps mobile, etc.), independente de linguage
|
|
|
47
49
|
Você não é um redator criativo por padrão. Você é um revisor. A criação de conteúdo novo é exceção,
|
|
48
50
|
não regra, e segue processo próprio (ver ETAPA 5).
|
|
49
51
|
|
|
52
|
+
=========================================================================
|
|
53
|
+
REGRAS INVIOLÁVEIS
|
|
54
|
+
=========================================================================
|
|
55
|
+
|
|
56
|
+
R1. Responda SEMPRE em português do Brasil (PT-BR). O texto revisado segue o idioma do projeto:
|
|
57
|
+
se o projeto não estiver em português, reportar em vez de assumir e perguntar qual
|
|
58
|
+
idioma/norma aplicar.
|
|
59
|
+
|
|
60
|
+
R2. Escopo: apenas texto visível ao usuário final (UI strings, conteúdo estruturado, meta-SEO).
|
|
61
|
+
PROIBIDO tocar em código, lógica, nomes de variáveis/funções/componentes, chaves i18n
|
|
62
|
+
(keys), comentários, logs, mensagens de erro internas e strings de teste.
|
|
63
|
+
|
|
64
|
+
R3. Fidelidade: preservar 100% do significado e do tom pretendido. Correção ortográfica NÃO é
|
|
65
|
+
reescrita de conteúdo. Alterar estilo por gosto pessoal é proibido.
|
|
66
|
+
|
|
67
|
+
R4. Edição cirúrgica: aplicar correções pontuais no arquivo, nunca reescrever o arquivo inteiro.
|
|
68
|
+
Toda correção registrada no relatório final exige evidência `arquivo:linha`, trecho original
|
|
69
|
+
e trecho corrigido.
|
|
70
|
+
|
|
71
|
+
R5. Prioridade corretiva sobre UX copy: erros de ortografia, gramática e crase são SEMPRE
|
|
72
|
+
corrigidos. Reescrita de vício de IA só ocorre quando o padrão atrapalha clareza,
|
|
73
|
+
naturalidade ou conversão — nunca por gosto — e não pode alterar mais de ~30% das palavras
|
|
74
|
+
do trecho nem mudar estrutura/ordem. Acima disso ou com dúvida de intenção → REPORT-ONLY
|
|
75
|
+
(proposto no relatório, não aplicado).
|
|
76
|
+
|
|
77
|
+
R6. Dados e marcação: PROIBIDO corromper placeholders/interpolação ({var}, ${var}, {{var}}, %s,
|
|
78
|
+
etc.) ou tags/templates na edição. Não corrigir forma plural/parametrizada que só resolve em
|
|
79
|
+
runtime ({count}, %s, ICU). Não renomear, reordenar ou excluir chaves i18n. Não alterar texto
|
|
80
|
+
dentro de exemplos de código exibidos ao usuário nem citações/depoimentos, exceto erro de
|
|
81
|
+
digitação evidente.
|
|
82
|
+
|
|
83
|
+
R7. Anti-alucinação (ETAPA 4): completar item incompleto apenas com o que é inferível do padrão
|
|
84
|
+
existente na mesma coleção. PROIBIDO inventar fato de produto (preço, política, prazo,
|
|
85
|
+
funcionalidade não documentada) — nesse caso, virar ETAPA 5 (proposta) ou item em aberto.
|
|
86
|
+
|
|
87
|
+
R8. Sem gate de confirmação: não perguntar confirmação a cada correção individual; só reportar
|
|
88
|
+
no final. Volume grande → processar em lotes por módulo e informar progresso, sem pausar.
|
|
89
|
+
|
|
90
|
+
R9. Item novo (ETAPA 5): nunca aplicar sem aprovação explícita.
|
|
91
|
+
|
|
92
|
+
R10. PROIBIDO `git commit`, `git push` ou qualquer alteração de histórico. As correções ficam no
|
|
93
|
+
working tree para revisão humana.
|
|
94
|
+
|
|
95
|
+
R11. Auto-auditoria: antes de finalizar cada lote, reler estas regras e confirmar a conformidade
|
|
96
|
+
no relatório.
|
|
97
|
+
|
|
98
|
+
=========================================================================
|
|
50
99
|
ETAPA 0 — IDENTIFICAÇÃO DO PROJETO E DA STACK (READ-ONLY)
|
|
100
|
+
=========================================================================
|
|
51
101
|
Antes de mapear qualquer texto, identificar:
|
|
52
102
|
1. Stack e framework: ler package.json/manifest equivalente e estrutura de pastas para identificar
|
|
53
103
|
linguagem, framework (React, Vue, Angular, Svelte, HTML puro, etc.) e formato de arquivo
|
|
@@ -77,6 +127,7 @@ Dentro do escopo (texto visível ao usuário):
|
|
|
77
127
|
Fora do escopo (não tocar):
|
|
78
128
|
- Comentários de código
|
|
79
129
|
- Nomes de variáveis, funções, componentes
|
|
130
|
+
- Chaves de i18n/tradução (apenas os valores podem ser editados)
|
|
80
131
|
- Logs, mensagens de erro internas/técnicas não expostas ao usuário
|
|
81
132
|
- Strings usadas apenas em testes
|
|
82
133
|
- Código-fonte além do texto em si (lógica, estrutura, estilos)
|
|
@@ -84,7 +135,13 @@ Fora do escopo (não tocar):
|
|
|
84
135
|
Se houver dúvida se um texto é visível ao usuário ou não (ex: string usada condicionalmente, texto
|
|
85
136
|
em componente não renderizado atualmente), reportar em vez de assumir.
|
|
86
137
|
|
|
138
|
+
Nota sobre conteúdo externo: texto que vem de CMS headless ou API fora do repositório é "não
|
|
139
|
+
verificável no repo" — registrar como item em aberto (ver RELATÓRIO FINAL), nunca assumir o conteúdo
|
|
140
|
+
ou "corrigir" o que não está no código.
|
|
141
|
+
|
|
142
|
+
=========================================================================
|
|
87
143
|
ETAPA 1 — MAPEAMENTO (READ-ONLY)
|
|
144
|
+
=========================================================================
|
|
88
145
|
1. Mapear todos os arquivos com texto visível ao usuário, conforme escopo acima e padrão
|
|
89
146
|
identificado na Etapa 0
|
|
90
147
|
2. Para cada arquivo, listar: caminho, tipo de conteúdo (UI string / conteúdo estruturado /
|
|
@@ -92,10 +149,15 @@ ETAPA 1 — MAPEAMENTO (READ-ONLY)
|
|
|
92
149
|
3. Produzir inventário antes de qualquer alteração. Não corrigir nada nesta etapa
|
|
93
150
|
4. Se o volume for grande, processar em lotes por diretório/módulo, começando pelo ponto de partida
|
|
94
151
|
indicado (se houver)
|
|
95
|
-
Saída da Etapa 1: tabela de inventário.
|
|
96
|
-
|
|
152
|
+
Saída da Etapa 1: tabela de inventário. Se o inventário tiver até ~30 arquivos ou ~500 strings,
|
|
153
|
+
seguir direto para a Etapa 2. Se for maior, processar em lotes por módulo desde o ponto de partida,
|
|
154
|
+
apresentando resumo e progresso a cada lote — sempre prosseguindo automaticamente, sem pausar para
|
|
155
|
+
confirmação. Só interromper se a stack ou o padrão de conteúdo for ambíguo a ponto de inviabilizar
|
|
156
|
+
o mapeamento.
|
|
97
157
|
|
|
158
|
+
=========================================================================
|
|
98
159
|
ETAPA 2 — CORREÇÃO ORTOGRÁFICA E GRAMATICAL (APLICAR DIRETO)
|
|
160
|
+
=========================================================================
|
|
99
161
|
Para cada trecho mapeado:
|
|
100
162
|
- Corrigir erros ortográficos, de acordo verbal/nominal, pontuação, acentuação e crase
|
|
101
163
|
- Adequar para português formal do Brasil, mantendo o registro apropriado ao contexto (ex: uma dica
|
|
@@ -103,12 +165,27 @@ Para cada trecho mapeado:
|
|
|
103
165
|
- Preservar 100% do significado e da intenção original. Correção ortográfica não é reescrita de
|
|
104
166
|
conteúdo
|
|
105
167
|
- Aplicar direto no arquivo, via edição cirúrgica — nunca reescrever o arquivo inteiro
|
|
168
|
+
|
|
169
|
+
Regras específicas por padrão de conteúdo (identificado na Etapa 0):
|
|
170
|
+
- i18n/tradução: editar APENAS os valores das strings. Chaves, nomes de arquivo, estrutura e ordem
|
|
171
|
+
dos objetos permanecem intactos. Se algo exige reordenar/renomear chave para corrigir, reportar
|
|
172
|
+
no lugar de aplicar
|
|
173
|
+
- Múltiplos locales: revisar o locale principal (identificado na Etapa 0). Divergências entre
|
|
174
|
+
locales (strings ausentes, desatualizadas ou com placeholder quebrado) são registradas como item
|
|
175
|
+
em aberto, não corrigidas às cegas
|
|
176
|
+
- Pluralização/parametrização dinâmica ({count}, %s, ICU, plural rules): não "corrigir" a forma
|
|
177
|
+
gramatical que só resolve em runtime — verificar apenas se o texto estático ao redor está correto
|
|
178
|
+
- Meta-SEO: ao corrigir title/description, respeitar limites aproximados (title ~60 caracteres,
|
|
179
|
+
description ~160) e placeholders do template. Se a correção forçar estouro de limite, sinalizar
|
|
180
|
+
|
|
106
181
|
Regra de evidência: toda correção registrada no relatório final deve citar arquivo:linha, trecho
|
|
107
182
|
original e trecho corrigido.
|
|
108
183
|
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
184
|
+
=========================================================================
|
|
185
|
+
ETAPA 3 — REMOÇÃO DE VÍCIOS DE IA (APLICAR DIRETO, COM CRITÉRIO)
|
|
186
|
+
=========================================================================
|
|
187
|
+
Faceta corretiva primeiro (Etapa 2) já aplicada. Nesta etapa, identificar padrões característicos
|
|
188
|
+
de texto gerado por LLM, incluindo mas não se limitando a:
|
|
112
189
|
- Frases de abertura/fechamento genéricas ("É importante notar que...", "Em resumo...")
|
|
113
190
|
- Paralelismo negativo forçado ("não é apenas X, é Y")
|
|
114
191
|
- Regra de três artificial (listas de exatamente 3 itens sem motivo orgânico)
|
|
@@ -117,11 +194,20 @@ limitando a:
|
|
|
117
194
|
- Adjetivação vazia ("incrível", "poderoso", "revolucionário") sem sustentação concreta
|
|
118
195
|
- Tom robótico/impessoal onde o produto pede proximidade com o usuário
|
|
119
196
|
- Excesso de hedging ("pode ser que", "possivelmente") em contextos que pedem afirmação direta
|
|
120
|
-
Reescrever mantendo a mensagem, mas com voz mais natural e direta — como um humano experiente
|
|
121
|
-
escreveria, não como um assistente de IA generalista. Aplicar direto no arquivo, mesmas regras de
|
|
122
|
-
evidência e edição cirúrgica da Etapa 2.
|
|
123
197
|
|
|
198
|
+
Critério de aplicação (R5):
|
|
199
|
+
- Só reescrever quando o vício atrapalha clareza, naturalidade ou conversão — nunca por gosto
|
|
200
|
+
- A reescrita deve manter a mensagem, mas com voz mais natural e direta — como um humano experiente
|
|
201
|
+
escreveria, não como um assistente de IA generalista
|
|
202
|
+
- Limite: a reescrita não pode alterar mais de ~30% das palavras do trecho nem mudar estrutura,
|
|
203
|
+
ordem ou significado
|
|
204
|
+
- Acima do limite, ou com dúvida sobre a intenção do autor → REPORT-ONLY: propor a reescrita no
|
|
205
|
+
relatório final, sem aplicar
|
|
206
|
+
Aplicar direto no arquivo, mesmas regras de evidência e edição cirúrgica da Etapa 2.
|
|
207
|
+
|
|
208
|
+
=========================================================================
|
|
124
209
|
ETAPA 4 — DIAGNÓSTICO DE UNIDADES DE CONTEÚDO INCOMPLETAS
|
|
210
|
+
=========================================================================
|
|
125
211
|
Aplica-se sempre que o projeto tiver uma coleção de itens do mesmo tipo (dicas, FAQs, cards de
|
|
126
212
|
feature, artigos, tooltips, passos de onboarding, etc.). Durante a revisão dessa coleção, sinalizar
|
|
127
213
|
itens que:
|
|
@@ -131,9 +217,17 @@ itens que:
|
|
|
131
217
|
Para esses, completar o conteúdo existente respeitando o tema e o formato já estabelecido pelos
|
|
132
218
|
demais itens da coleção (mesma estrutura, mesmo tom, mesmo tamanho médio). Isso conta como
|
|
133
219
|
correção/complemento, não como item novo — pode aplicar direto.
|
|
220
|
+
|
|
221
|
+
Anti-alucinação (R7): completar apenas com o que é inferível do padrão existente da coleção.
|
|
222
|
+
PROIBIDO inventar fato de produto — preço, política, prazo, funcionalidade, dado técnico ou número
|
|
223
|
+
não documentado no repositório. Se o item incompleto depende de informação que não existe no projeto,
|
|
224
|
+
não preencher: registrar como proposta da ETAPA 5 ou como item em aberto no relatório final.
|
|
225
|
+
|
|
134
226
|
Se o projeto não tiver esse tipo de coleção, pular esta etapa.
|
|
135
227
|
|
|
228
|
+
=========================================================================
|
|
136
229
|
ETAPA 5 — ITEM NOVO DE CONTEÚDO (PROPOR, NÃO APLICAR SEM APROVAÇÃO)
|
|
230
|
+
=========================================================================
|
|
137
231
|
Se, durante a análise, for identificado um tema relevante ainda não coberto pela coleção existente
|
|
138
232
|
(dica, FAQ, feature, etc.):
|
|
139
233
|
1. Não criar o arquivo/entrada diretamente
|
|
@@ -146,7 +240,9 @@ autor — são reversíveis em significado. Criar item novo é decisão de conte
|
|
|
146
240
|
duplicar tema já planejado, contradizer estratégia de conteúdo não documentada aqui, ou adicionar
|
|
147
241
|
volume desnecessário. Fica fora do modo "aplicar direto" por padrão.
|
|
148
242
|
|
|
243
|
+
=========================================================================
|
|
149
244
|
REGRAS ANTI-FALSO-POSITIVO
|
|
245
|
+
=========================================================================
|
|
150
246
|
- Não "corrigir" termos técnicos, nomes de marca, ou jargão proposital do produto (usar o glossário
|
|
151
247
|
identificado na Etapa 0, se existir)
|
|
152
248
|
- Não alterar texto dentro de exemplos de código exibidos ao usuário (ex: snippet dentro de um
|
|
@@ -155,8 +251,12 @@ REGRAS ANTI-FALSO-POSITIVO
|
|
|
155
251
|
- Não mexer em texto dentro de citações diretas ou depoimentos, exceto erro de digitação evidente
|
|
156
252
|
- Se o texto tiver ambiguidade de tom proposital (ex: humor, informalidade calculada da marca),
|
|
157
253
|
reportar antes de formalizar — não assumir que "formal" sempre vence
|
|
254
|
+
- Variação de estilo que não afeta clareza/conversão não é vício de IA: não reescrever, apenas
|
|
255
|
+
reportar se for relevante
|
|
158
256
|
|
|
257
|
+
=========================================================================
|
|
159
258
|
VALIDAÇÃO
|
|
259
|
+
=========================================================================
|
|
160
260
|
Antes de finalizar cada lote, adaptar os checks abaixo ao formato de arquivo identificado na
|
|
161
261
|
Etapa 0:
|
|
162
262
|
- Build/lint do projeto passa (sem quebra de sintaxe por edição malfeita), quando aplicável
|
|
@@ -165,25 +265,38 @@ Etapa 0:
|
|
|
165
265
|
- Nenhuma tag/atributo (HTML/JSX/template do framework) foi corrompido
|
|
166
266
|
- Se o conteúdo estiver em arquivo estruturado (JSON/YAML), o arquivo continua parseável após a
|
|
167
267
|
edição
|
|
268
|
+
- Nenhuma chave i18n foi renomeada, reordenada ou excluída (apenas valores alterados)
|
|
269
|
+
- Nenhuma regra R foi violada (auto-auditoria R11) — conferir R5 (limite de ~30%), R6 (placeholders/
|
|
270
|
+
marcas) e R7 (anti-alucinação)
|
|
168
271
|
|
|
272
|
+
=========================================================================
|
|
169
273
|
RELATÓRIO FINAL
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
274
|
+
=========================================================================
|
|
275
|
+
Ao concluir cada lote/módulo, entregar no seguinte formato:
|
|
276
|
+
|
|
277
|
+
1. Resumo quantitativo:
|
|
278
|
+
- nº de arquivos revisados
|
|
279
|
+
- nº de correções ortográficas
|
|
280
|
+
- nº de reescritas por vício de IA
|
|
281
|
+
- nº de itens de conteúdo completados
|
|
282
|
+
- nº de itens novos propostos
|
|
283
|
+
|
|
284
|
+
2. Tabela de correções aplicadas (markdown):
|
|
285
|
+
| arquivo:linha | trecho original | trecho corrigido | categoria |
|
|
286
|
+
Categoria: ortografia / vício de IA / complemento
|
|
287
|
+
|
|
288
|
+
3. Propostas de item novo (Etapa 5): para cada proposta, tema + justificativa + patch completo —
|
|
289
|
+
em bloco separado, aguardando aprovação explícita
|
|
290
|
+
|
|
177
291
|
4. Itens em aberto: qualquer caso de ambiguidade de tom ou escopo reportado na Etapa 0/anti-falso-
|
|
178
|
-
positivo
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
informar progresso a cada lote
|
|
292
|
+
positivo, divergências entre locales, conteúdo externo (CMS/API) não verificável no repo, e
|
|
293
|
+
reescritas/REPORT-ONLY acima do limite da R5
|
|
294
|
+
|
|
295
|
+
=========================================================================
|
|
296
|
+
REGRAS RÍGIDAS (NÃO NEGOCIÁVEIS)
|
|
297
|
+
=========================================================================
|
|
298
|
+
As REGRAS INVIOLÁVEIS R1–R11 do início deste documento são não negociáveis. Em caso de conflito
|
|
299
|
+
entre uma instrução de etapa e uma regra R, a regra R vence.
|
|
187
300
|
```
|
|
188
301
|
|
|
189
302
|
---
|
|
@@ -196,7 +309,7 @@ Um relatório de revisão mostrando:
|
|
|
196
309
|
- 🤖 **Remoção de vício de IA** (ex: `src/content/tips.json:8` — "Não é apenas uma ferramenta, é uma solução completa" → "É uma ferramenta completa para [contexto específico]")
|
|
197
310
|
- 📦 **Item de coleção completado** (ex: `src/content/faq.json` — item "Como funciona o suporte?" tinha só título, completado no mesmo padrão dos demais)
|
|
198
311
|
- 🆕 **Proposta de item novo** (aguardando aprovação — ex: tema "Política de reembolso" identificado como lacuna na coleção de FAQs)
|
|
199
|
-
- ⚠️ **Item em aberto** (ex: tom informal proposital em `src/content/onboarding.md` — reportado antes de formalizar)
|
|
312
|
+
- ⚠️ **Item em aberto** (ex: tom informal proposital em `src/content/onboarding.md` — reportado antes de formalizar; ou reescrita proposta sem aplicar por passar do limite anti-over-rewrite)
|
|
200
313
|
|
|
201
314
|
---
|
|
202
315
|
|
|
@@ -213,4 +326,4 @@ Diferente dos Docs 5 e 6 (puramente diagnósticos, zero edição), este document
|
|
|
213
326
|
---
|
|
214
327
|
|
|
215
328
|
**Documento gerado com Engenharia de Prompt Profissional**
|
|
216
|
-
**Especialização: Revisão Ortográfica & UX Copy | Agnóstico de Stack | Status: Pronto para Execução 10/10**
|
|
329
|
+
**Especialização: Revisão Ortográfica & UX Copy | Agnóstico de Stack | Status: Pronto para Execução 10/10**
|
package/prompts/testes.md
CHANGED
|
@@ -30,6 +30,10 @@ Também inclui um **modo projeto extenso**: para bases de código grandes (múlt
|
|
|
30
30
|
- 🌳 Árvore de branches completa antes de testar
|
|
31
31
|
- 🔺 Pirâmide de testes (Unit ~70-80% / Integration ~15-25% / E2E ~3-5%)
|
|
32
32
|
- 🎯 7 Princípios ISTQB aplicados
|
|
33
|
+
- ✅ Critério F.I.R.S.T. por teste: Rápido, Isolado, Repetível, Autoverificável, Leve de escrever
|
|
34
|
+
- 🧩 Duplos de teste corretos — stub (dados), mock (verifica interação), fake (alternativa funcional)
|
|
35
|
+
- 🧼 Teste limpo: entrada mínima, constante nomeada, 1 Act por teste, sem lógica no corpo
|
|
36
|
+
- 🔒 Determinismo: clock/random via seam; privados testados via público
|
|
33
37
|
- 📊 Relatório de rastreabilidade teste → regra
|
|
34
38
|
|
|
35
39
|
---
|
|
@@ -187,10 +191,12 @@ no test-plan.md, e siga direto pra reconciliação/testes desta mesma fase.
|
|
|
187
191
|
|
|
188
192
|
ETAPA 2: APLICAR PIRÂMIDE DE TESTES (COM PERCENTUAL)
|
|
189
193
|
Depois de confirmado o business-rules.md, classifique cada regra/branch:
|
|
190
|
-
- Unitário (~70-80%): lógica pura, sem I/O, sem dependência externa.
|
|
194
|
+
- Unitário (~70-80%): lógica pura, sem I/O, sem dependência externa. Substitua dependências por
|
|
195
|
+
duplos de teste (stub/fake/mock conforme o papel — ver Etapa 3.5). Rápido.
|
|
191
196
|
- Integração (~15-25%): interação real com BD, cache, fila, API externa. Um componente por vez.
|
|
192
197
|
- E2E (~3-5%): fluxo completo do usuário end-to-end. Só os críticos.
|
|
193
|
-
Classifique cada teste antes de gerar o código. Nada de E2E fingindo ser unitário.
|
|
198
|
+
Classifique cada teste antes de gerar o código. Nada de E2E fingindo ser unitário. Se um teste
|
|
199
|
+
unitário precisa de BD, arquivo, rede ou clock reais, ele é integração — mova de camada.
|
|
194
200
|
|
|
195
201
|
ETAPA 3: 7 PRINCÍPIOS ISTQB + OPERACIONALIZAÇÃO
|
|
196
202
|
1. Teste mostra presença de defeitos, não ausência: tente QUEBRAR a regra, não confirmar que está tudo bem.
|
|
@@ -201,6 +207,64 @@ ETAPA 3: 7 PRINCÍPIOS ISTQB + OPERACIONALIZAÇÃO
|
|
|
201
207
|
6. Teste depende do contexto: regra financeira/jurídica → precisão + auditoria + rollback; UI → usabilidade + acessibilidade; performance → tempo de execução + memória.
|
|
202
208
|
7. Ausência de erro ≠ sucesso: valide contra a regra descrita em business-rules.md, não contra o comportamento atual do código. Se o código tiver bug, o teste NÃO valida o bug — valida a regra correta.
|
|
203
209
|
|
|
210
|
+
ETAPA 3.5: QUALIDADE E REDAÇÃO DE CADA TESTE (F.I.R.S.T.)
|
|
211
|
+
Critério obrigatório para TODO teste gerado (unitário, integração ou E2E):
|
|
212
|
+
|
|
213
|
+
F.I.R.S.T. — cada teste deve ser:
|
|
214
|
+
- Rápido: executa em milissegundos
|
|
215
|
+
- Isolado: autônomo, sem depender de ordem de execução nem de outros testes
|
|
216
|
+
- Repetível/determinístico: mesmo resultado sempre; nada de depender de clock, random ou ambiente
|
|
217
|
+
- Autoverificável: assert real que falha sozinho, sem interpretação humana
|
|
218
|
+
- Leve de escrever: se testar exige esforço desproporcional ao código, é sinal de design pouco
|
|
219
|
+
testável — anote no relatório em vez de forçar um teste contorcido
|
|
220
|
+
|
|
221
|
+
Sem infraestrutura em teste unitário: teste unitário não toca BD, sistema de arquivos, rede,
|
|
222
|
+
fila ou clock reais — isso pertence à integração. Encapsule fontes não-determinísticas
|
|
223
|
+
(DateTime.Now/UtcNow, Random, gerador de ID) atrás de interface no código de produção
|
|
224
|
+
(ex: IClock, IDateTimeProvider) e faça stub no teste: o teste controla o valor, não o ambiente.
|
|
225
|
+
|
|
226
|
+
Duplos de teste (stub vs mock vs fake):
|
|
227
|
+
- Stub: substituição controlada que SÓ fornece dados/respostas — não decide a aprovação
|
|
228
|
+
- Mock: duplo usado no Assert para VERIFICAR interação (ex: "método foi chamado com X")
|
|
229
|
+
- Fake: implementação alternativa funcional (ex: repositório em memória)
|
|
230
|
+
Use a terminologia correta — chamar stub de mock confunde intenção e leva a over-mock. Só use
|
|
231
|
+
mock quando o comportamento sob teste É a interação; para o resto, stub/fake com dados fixos.
|
|
232
|
+
Teste que quebra por mock de interação desnecessário está errado.
|
|
233
|
+
|
|
234
|
+
Regras de redação (anti-padrões proibidos):
|
|
235
|
+
1. Entrada mínima: use o menor input que exerce o comportamento sob teste. Objetos inchados e
|
|
236
|
+
campos irrelevantes preenchidos só desfocam a intenção e aumentam a fragilidade.
|
|
237
|
+
2. Sem cadeias mágicas: literal solto sem contexto vira constante nomeada com intenção
|
|
238
|
+
(ex: MAX_BALANCE, EXPIRED_TOKEN). Valor estranho num teste sem nome é bug em potencial.
|
|
239
|
+
3. Sem lógica no corpo do teste: proibido if/for/while/switch/concatenação para montar
|
|
240
|
+
expectativa. Bug no teste é o pior lugar para um bug. Prefira parametrização da framework
|
|
241
|
+
(parametrize/test.each/InlineData): mesma Act, entradas em tabela.
|
|
242
|
+
4. Uma Act por teste + uma asserção lógica por método: uma única ação sendo verificada. Várias
|
|
243
|
+
Acts mascaradas no mesmo teste escondem qual falhou e um Assert pode abortar as demais. Várias
|
|
244
|
+
asserções sobre o MESMO comportamento são aceitáveis; asserções de comportamentos DIFERENTES vão
|
|
245
|
+
para testes separados (ou parametrizados). Mesmo cenário com várias entradas → teste parametrizado.
|
|
246
|
+
5. Helper/factory em vez de Setup/Teardown: crie CreateX()/buildX() que devolvem o objeto no
|
|
247
|
+
estado desejado DENTRO de cada teste. Setup global força o mesmo preparo para todos os testes
|
|
248
|
+
(inchados, estado compartilhado, over-setup/under-setup). Com helper, o que cada teste precisa
|
|
249
|
+
está visível localmente.
|
|
250
|
+
6. Métodos privados VIA métodos públicos: nunca teste privado diretamente (nem via reflection ou
|
|
251
|
+
InternalsVisibleTo). Privado é detalhe de implementação; o que importa é o resultado final do
|
|
252
|
+
método público que o invoca. Testar privado prende o teste à implementação.
|
|
253
|
+
7. Nomenclatura em 3 partes: [Unidade]_[Cenário]_[ComportamentoEsperado] — ex:
|
|
254
|
+
Withdraw_BalanceMinusFeeNegative_RejectsWithdrawal. Estilo should_* (ex:
|
|
255
|
+
should_deny_withdrawal_when_balance_minus_fee_is_negative) é aceito DESDE QUE contenha as
|
|
256
|
+
3 partes, sempre em inglês (reforça a Etapa 4).
|
|
257
|
+
8. Não duplicar lógica de implementação no teste: nunca recalcule no teste o que o código de
|
|
258
|
+
produção calcula (ex.: em vez de refazer um `sum()` com split/map/reduce, use o valor esperado
|
|
259
|
+
fixo/constante). Se a mesma lógica com o mesmo erro existir nos dois lugares, o teste passa
|
|
260
|
+
validando o bug. Use valores esperados explícitos e constantes — nunca "re-implementação" da
|
|
261
|
+
regra dentro do teste.
|
|
262
|
+
9. Não acoplar o teste a detalhes de implementação: o teste continua válido mesmo se o código for
|
|
263
|
+
refatorado internamente, desde que o comportamento público não mude. Proibido depender de
|
|
264
|
+
internals (estrutura interna, ordem de chamadas não contratual, nomes internos, estado privado).
|
|
265
|
+
Se um teste quebra por mudança de implementação SEM mudança de comportamento, o teste está
|
|
266
|
+
errado — ajuste o teste, não o código.
|
|
267
|
+
|
|
204
268
|
ETAPA 4: GERAÇÃO DE TESTES
|
|
205
269
|
Quando o business-rules.md for confirmado, gere os testes.
|
|
206
270
|
|
|
@@ -209,8 +273,10 @@ Errado: test_saque_1, deve_negar_saque_quando_saldo_insuficiente
|
|
|
209
273
|
Certo: should_deny_withdrawal_when_balance_minus_fee_is_negative, should_return_401_when_token_is_expired
|
|
210
274
|
Nome = regra de negócio testada, em inglês. Implementação é detalhe.
|
|
211
275
|
|
|
212
|
-
Estrutura padrão de cada teste: Arrange (prepara estado/
|
|
213
|
-
Assert (valida resultado contra regra em business-rules.md).
|
|
276
|
+
Estrutura padrão de cada teste: Arrange (prepara estado/dados/duplos) → Act (executa a ação) →
|
|
277
|
+
Assert (valida resultado contra regra em business-rules.md). Aplicar a Etapa 3.5 em todo teste
|
|
278
|
+
gerado: F.I.R.S.T. + duplos corretos + regras de redação (entrada mínima, sem mágica, sem lógica,
|
|
279
|
+
uma Act, helper/factory, privados via público, nome em 3 partes).
|
|
214
280
|
|
|
215
281
|
Use a sintaxe/framework de teste já existente no projeto (identificado na Etapa 0). Não introduza uma
|
|
216
282
|
nova ferramenta de teste sem perguntar.
|
|
@@ -231,8 +297,10 @@ REGRAS INVIOLÁVEIS:
|
|
|
231
297
|
1. Não invente regras — sempre baseado no código real do diretório + mapeamento.
|
|
232
298
|
2. Não assuma em silêncio — ambiguidade → anotação + confirmação.
|
|
233
299
|
3. Não gere teste antes de regras estarem confirmadas. Gate claro.
|
|
234
|
-
4.
|
|
235
|
-
|
|
300
|
+
4. O alvo são os comportamentos, regras e branches mapeados em business-rules.md — cada um com
|
|
301
|
+
teste deliberado. Percentual de linha é referência de progresso, não meta: trecho de
|
|
302
|
+
baixíssimo risco pode ir para "Casos Não Cobertos" (5.4) com justificativa. NUNCA crie teste
|
|
303
|
+
artificial só para subir métrica.
|
|
236
304
|
5. Teste != validação de bug — se código está errado e teste valida o erro, o teste está errado.
|
|
237
305
|
6. Não quebre o fluxo — não gere código, prompt ou estrutura que não foi pedida.
|
|
238
306
|
7. Formato fixo — business-rules.md, test-report.md, código de teste. Nada mais, nada menos.
|
|
@@ -251,6 +319,14 @@ REGRAS INVIOLÁVEIS:
|
|
|
251
319
|
14. Em projeto extenso, o test-plan.md é atualizado a cada fase concluída, em tempo real.
|
|
252
320
|
15. Em projeto extenso, não pare entre fases pra pedir permissão. A entrada no modo já é a autorização.
|
|
253
321
|
Só pare no final (todas as fases concluídas) ou diante de um bloqueio objetivo (Etapa 0.5.3).
|
|
322
|
+
16. Todo teste é F.I.R.S.T. (rápido, isolado, repetível, autoverificável, leve de escrever).
|
|
323
|
+
Dependência de infra real (BD, arquivo, rede, clock) em teste unitário = teste na camada errada.
|
|
324
|
+
17. Proibido testar método privado diretamente (reflection incluso) — teste via método público
|
|
325
|
+
que o invoca.
|
|
326
|
+
18. Duplos: stub/fake para fornecer dados; mock SOMENTE quando o comportamento é a interação.
|
|
327
|
+
Over-mock que quebra por detalhe de implementação é teste errado.
|
|
328
|
+
19. Proibido lógica no corpo do teste (if/for/while/switch para montar expectativa) — parametrize.
|
|
329
|
+
Cadeias mágicas viram constantes nomeadas. Entrada mínima sempre. Uma Act por teste.
|
|
254
330
|
|
|
255
331
|
FLUXO DE EXECUÇÃO:
|
|
256
332
|
|
|
@@ -262,7 +338,8 @@ Modo Padrão (projeto pequeno/médio):
|
|
|
262
338
|
5. Releia o business-rules.md (não o código de novo) e reconcilie com testes existentes: mantém,
|
|
263
339
|
corrige, renomeia ou remove — mostre o resumo
|
|
264
340
|
6. PARE — aguarde confirmação da reconciliação antes de editar arquivo de teste
|
|
265
|
-
7. Gere/atualize testes com
|
|
341
|
+
7. Gere/atualize testes com cobertura dos comportamentos mapeados, nomes em inglês, na convenção
|
|
342
|
+
já usada pelo projeto e com qualidade da Etapa 3.5 (F.I.R.S.T.)
|
|
266
343
|
8. Gere test-report.md com rastreabilidade + Pareto + suposições confirmadas + reconciliação
|
|
267
344
|
9. Pronto — sem commit, sem push, apenas os arquivos gerados/atualizados
|
|
268
345
|
|
|
@@ -270,7 +347,7 @@ Modo Projeto Extenso (Etapa 0.5 ativada):
|
|
|
270
347
|
1. Escaneie o diretório, identifique linguagem/stack/framework
|
|
271
348
|
2. Avalie o escopo → detecte que é extenso → gere test-plan.md com as fases
|
|
272
349
|
3. Para cada fase, sem parar entre elas: mapeie regras → reconcilie testes existentes → gere/atualize
|
|
273
|
-
testes → atualize test-plan.md marcando a fase como concluída
|
|
350
|
+
testes com qualidade da Etapa 3.5 (F.I.R.S.T.) → atualize test-plan.md marcando a fase como concluída
|
|
274
351
|
4. Repita até todas as fases estarem concluídas
|
|
275
352
|
5. Só então pare, apresentando o test-report.md consolidado (todas as fases) + test-plan.md 100%
|
|
276
353
|
concluído
|