jarvis-ai-framework 1.0.3 → 2.0.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/AGENTS.md +66 -64
- package/README.md +24 -10
- package/agents/AGENTS.md +12 -8
- package/agents/README.md +14 -16
- package/agents/engineering/data/eng.data-engineer.agent.md +6 -6
- package/agents/engineering/eng.agent.md +19 -36
- package/agents/engineering/eng.bug-hunter.md +13 -12
- package/agents/engineering/eng.cybersecurity.agent.md +20 -35
- package/agents/engineering/eng.docs-writer.md +2 -2
- package/agents/engineering/eng.frontend.agent.md +17 -22
- package/agents/engineering/eng.rpa.agent.md +5 -15
- package/agents/engineering/qa/eng.qa.test-architect.md +4 -4
- package/agents/engineering/qa/eng.qa.test-planner.md +3 -3
- package/agents/engineering/qa/eng.qa.testing-engineer.md +3 -3
- package/agents/product/prod.discovery-interviewer.md +86 -0
- package/bin/commands/init.js +6 -6
- package/bin/jarvis.js +1 -1
- package/bin/lib/config/constants.js +47 -0
- package/bin/lib/core/sync-engine.js +12 -0
- package/package.json +2 -5
- package/rules/AGENTS.md +6 -4
- package/rules/engineering/eng-rules.md +5 -3
- package/rules/engineering/eng-security-rules.md +4 -4
- package/rules/engineering/eng.breakdown-subtasks-rules.md +208 -37
- package/rules/engineering/eng.docs-scraping-rules.md +1 -1
- package/rules/engineering/eng.downstream-flow-rules.md +1 -1
- package/rules/engineering/eng.integrations-rules.md +2 -2
- package/rules/engineering/eng.pre-pr-rules.md +1 -1
- package/rules/engineering/eng.skills-rules.md +60 -0
- package/rules/engineering/eng.specializations-rules.md +69 -0
- package/rules/engineering/eng.start-rules.md +11 -11
- package/rules/engineering/eng.work-rules.md +19 -14
- package/rules/engineering/frontend/eng.frontend-rules.md +70 -69
- package/rules/product/README.md +2 -0
- package/rules/product/prod-rules.md +7 -5
- package/{skills/prod-specs/rules/prod-spec-rules.md → rules/product/prod.spec-rules.md} +55 -50
- package/skills/AGENTS.md +111 -47
- package/skills/SKILLS-ROADMAP.md +26 -45
- package/skills/eng-ai-engineer/SKILL.md +1 -0
- package/skills/eng-backend/SKILL.md +142 -644
- package/skills/eng-backend/references/1-fundamentos-programacao.md +41 -0
- package/skills/eng-backend/references/10-seguranca.md +61 -0
- package/skills/eng-backend/references/11-performance.md +49 -0
- package/skills/eng-backend/references/12-erros-logging.md +42 -0
- package/skills/eng-backend/references/13-qualidade-codigo.md +51 -0
- package/skills/eng-backend/references/2-design-arquitetura.md +48 -0
- package/skills/eng-backend/references/3-design-patterns.md +50 -0
- package/skills/eng-backend/references/4-algoritmos-estruturas.md +43 -0
- package/skills/eng-backend/references/5-banco-dados.md +53 -0
- package/skills/eng-backend/references/6-api-comunicacao.md +42 -0
- package/skills/eng-backend/references/7-concorrencia-async.md +49 -0
- package/skills/eng-backend/references/8-arquitetura-servidor.md +49 -0
- package/skills/eng-backend/references/9-testes.md +43 -0
- package/skills/{eng-arch-c4 → eng-backend-arch-c4}/SKILL.md +12 -7
- package/skills/{eng-ms-trace → eng-backend-microservices-trace}/SKILL.md +6 -4
- package/skills/{eng-nestjs → eng-backend-nestjs}/SKILL.md +3 -1
- package/skills/{eng-rabbitmq → eng-backend-rabbitmq}/SKILL.md +3 -1
- package/skills/eng-data-bi/SKILL.md +1 -0
- package/skills/eng-data-debug/SKILL.md +2 -1
- package/skills/eng-data-engineer/SKILL.md +1 -0
- package/skills/eng-data-onboard/SKILL.md +1 -0
- package/skills/eng-data-orchestrator/SKILL.md +1 -0
- package/skills/{eng-performance-engineer → eng-devops-performance-engineer}/SKILL.md +2 -1
- package/skills/eng-frontend/SKILL.md +145 -782
- package/skills/eng-frontend/references/1-fundamentos-programacao.md +37 -0
- package/skills/eng-frontend/references/10-testes.md +47 -0
- package/skills/eng-frontend/references/11-seguranca.md +56 -0
- package/skills/eng-frontend/references/12-qualidade-codigo.md +51 -0
- package/skills/eng-frontend/references/2-html-fundamentals.md +51 -0
- package/skills/eng-frontend/references/3-css-responsive.md +61 -0
- package/skills/eng-frontend/references/4-javascript-dom.md +60 -0
- package/skills/eng-frontend/references/5-state-management.md +55 -0
- package/skills/eng-frontend/references/6-uiux-design.md +59 -0
- package/skills/eng-frontend/references/7-acessibilidade.md +46 -0
- package/skills/eng-frontend/references/8-performance.md +58 -0
- package/skills/eng-frontend/references/9-browser-apis.md +54 -0
- package/skills/{eng-design-system → eng-frontend-design-system}/SKILL.md +4 -2
- package/skills/{eng-microfrontend → eng-frontend-microfrontend}/SKILL.md +4 -2
- package/skills/{eng-browser-extension-builder → eng-global-browser-extension-builder}/SKILL.md +2 -1
- package/skills/{eng-docs-write → eng-global-docs-write}/SKILL.md +8 -4
- package/skills/eng-global-jira-comment/SKILL.md +21 -0
- package/skills/{eng-pr → eng-global-pr}/SKILL.md +7 -3
- package/skills/{eng-task-comment → eng-global-task-comment}/SKILL.md +6 -2
- package/skills/eng-qa-a11y-audit/SKILL.md +1 -0
- package/skills/eng-qa-bug-report/SKILL.md +2 -1
- package/skills/eng-qa-bug-report/TASK_MANAGERS.md +1 -1
- package/skills/eng-qa-cypress-e2e/SKILL.md +1 -0
- package/skills/eng-qa-dev-guide/SKILL.md +1 -0
- package/skills/eng-qa-e2e/SKILL.md +1 -0
- package/skills/eng-qa-e2e-spec-writer/SKILL.md +1 -0
- package/skills/eng-qa-exploratory/SKILL.md +1 -0
- package/skills/eng-qa-gate/SKILL.md +3 -2
- package/skills/eng-qa-graphql-contract/SKILL.md +1 -0
- package/skills/eng-qa-quality-report/SKILL.md +3 -2
- package/skills/eng-qa-test-plan/SKILL.md +1 -0
- package/skills/eng-qa-testsprite/SKILL.md +2 -1
- package/skills/eng-qa-unit-test/SKILL.md +1 -0
- package/skills/eng-scraper/SKILL.md +1 -0
- package/skills/eng-scraper-robot-builder/SKILL.md +1 -0
- package/skills/{eng-cybersecurity → eng-security-cybersecurity}/SKILL.md +3 -2
- package/skills/eng-security-patch/SKILL.md +6 -2
- package/skills/{eng-threat-model → eng-security-threat-model}/SKILL.md +6 -2
- package/skills/eng-security-triage/SKILL.md +4 -0
- package/skills/{context-detect → jarvis-context-detect}/SKILL.md +6 -5
- package/skills/{context-detect → jarvis-context-detect}/assets/context-profile-template.md +3 -3
- package/skills/jarvis-create-specialization/SKILL.md +230 -0
- package/skills/jarvis-create-specialization/assets/referencia-template.md +39 -0
- package/skills/jarvis-create-specialization/assets/skill-especializacao-template.md +78 -0
- package/skills/{docs-central → jarvis-docs-central}/README.md +1 -1
- package/skills/{docs-central → jarvis-docs-central}/SKILL.md +3 -40
- package/skills/{docs-index → jarvis-docs-index}/SKILL.md +8 -4
- package/skills/{init-jarvis → jarvis-init}/SKILL.md +42 -19
- package/skills/{init-jarvis → jarvis-init}/assets/mcp-configs.md +3 -3
- package/skills/{init-jarvis → jarvis-init}/assets/onboarding-checklist.md +1 -1
- package/skills/jarvis-init/assets/passo-adicionar-stacks.md +163 -0
- package/skills/{init-jarvis → jarvis-init}/assets/setup-guide.md +1 -1
- package/skills/jarvis-init/assets/sinais-de-stack.md +54 -0
- package/skills/jarvis-list-specializations/SKILL.md +148 -0
- package/skills/{report-issue → jarvis-report-issue}/SKILL.md +3 -2
- package/skills/{prod-roadmap-report → product-roadmap-report}/SKILL.md +2 -1
- package/skills/product-specs/SKILL.md +45 -0
- package/skills/{prod-specs-update → product-specs-update}/SKILL.md +3 -2
- package/taxonomy.md +3 -21
- package/templates/AGENTS.md +7 -6
- package/templates/CDD aplicado a Prompts.md +5 -5
- package/templates/ENV-template.md +12 -9
- package/templates/engineering/AGENTS-template.md +1 -1
- package/templates/engineering/CONTACTS-template.md +1 -1
- package/templates/product/prod-discovery-template.md +98 -0
- package/{skills/prod-specs/templates → templates/product}/prod-epic-template.md +1 -0
- package/{skills/prod-specs/templates → templates/product}/prod-frd-template.md +1 -0
- package/{skills/prod-specs/templates → templates/product}/prod-issue-template.md +1 -0
- package/{skills/prod-specs/templates → templates/product}/prod-prd-template.md +1 -0
- package/workflows/AGENTS.md +3 -1
- package/workflows/README.md +2 -0
- package/workflows/engineering/eng.bug-audit.md +2 -2
- package/workflows/engineering/eng.build-tech-spec.md +38 -49
- package/workflows/engineering/eng.debug.md +10 -10
- package/workflows/engineering/eng.docs.md +2 -2
- package/workflows/engineering/eng.plan.md +5 -5
- package/workflows/engineering/eng.pr.md +8 -8
- package/workflows/engineering/eng.pre-pr.md +16 -20
- package/workflows/engineering/eng.review.md +5 -10
- package/workflows/engineering/eng.rpa.robot.md +3 -3
- package/workflows/engineering/eng.security-audit.md +5 -5
- package/workflows/engineering/eng.security-incident.md +2 -2
- package/workflows/engineering/eng.security-pipeline.md +2 -2
- package/workflows/engineering/eng.start.md +16 -50
- package/workflows/engineering/eng.work.md +9 -12
- package/workflows/engineering/frontend/eng.frontend-component.md +68 -96
- package/workflows/engineering/frontend/eng.frontend-perf-audit.md +90 -220
- package/workflows/engineering/frontend/eng.frontend-review.md +57 -63
- package/workflows/engineering/qa/eng.qa-quality-report.md +0 -5
- package/workflows/product/prod.roadmap.preview.md +2 -2
- package/workflows/product/prod.spec.breakdown.md +3 -8
- package/workflows/product/prod.spec.discovery.md +152 -0
- package/workflows/product/prod.spec.epic.md +3 -0
- package/workflows/product/prod.spec.frd.md +123 -8
- package/workflows/product/prod.spec.issue.md +3 -2
- package/workflows/product/prod.spec.md +2 -0
- package/workflows/product/prod.spec.prd.md +105 -6
- package/workflows/taxonomy.md +1 -1
- package/workflows/warm-up.md +5 -26
- package/agents/engineering/eng.tech-analyst.agent.md +0 -102
- package/skills/churn-audit/SKILL.md +0 -385
- package/skills/eng-jira-comment/SKILL.md +0 -17
- package/skills/eng-tech-analyst/SKILL.md +0 -529
- package/skills/lovable-prompt-generator/SKILL.md +0 -304
- package/skills/prod-specs/SKILL.md +0 -108
- package/skills/prod-specs/references/prod.spec.clarify.md +0 -176
- package/skills/prod-specs/references/prod.spec.epic.md +0 -107
- package/skills/prod-specs/references/prod.spec.frd.md +0 -135
- package/skills/prod-specs/references/prod.spec.issue.md +0 -145
- package/skills/prod-specs/references/prod.spec.prd.md +0 -118
- package/skills/prod-specs/templates/prod-prd-full-template.md +0 -159
- package/workflows/engineering/ta/eng.ta.atendimento.md +0 -93
- /package/skills/{eng-arch-c4 → eng-backend-arch-c4}/assets/example-code.md +0 -0
- /package/skills/{eng-arch-c4 → eng-backend-arch-c4}/assets/example-component.md +0 -0
- /package/skills/{eng-arch-c4 → eng-backend-arch-c4}/assets/example-container.md +0 -0
- /package/skills/{eng-arch-c4 → eng-backend-arch-c4}/assets/example-context.md +0 -0
- /package/skills/{prod-roadmap-report → product-roadmap-report}/README.md +0 -0
- /package/skills/{prod-roadmap-report → product-roadmap-report}/commands/status.compiled.single.team.md +0 -0
- /package/skills/{prod-roadmap-report → product-roadmap-report}/commands/status.list.projects.md +0 -0
- /package/skills/{prod-roadmap-report → product-roadmap-report}/commands/status.memory.md +0 -0
- /package/skills/{prod-roadmap-report → product-roadmap-report}/commands/status.roadmap.preview.md +0 -0
- /package/skills/{prod-roadmap-report → product-roadmap-report}/references/detailed-guide.md +0 -0
- /package/skills/{prod-roadmap-report → product-roadmap-report}/rules/detailed-guide.md +0 -0
- /package/skills/{prod-roadmap-report → product-roadmap-report}/rules/status-report-rules.md +0 -0
- /package/skills/{prod-roadmap-report → product-roadmap-report}/templates/template-multiple-teams-compiled-status.md +0 -0
- /package/skills/{prod-roadmap-report → product-roadmap-report}/templates/template-projects-list.md +0 -0
- /package/skills/{prod-roadmap-report → product-roadmap-report}/templates/template-single-team-compiled-status.md +0 -0
- /package/skills/{prod-roadmap-report → product-roadmap-report}/templates/template-single-team-status.md +0 -0
- /package/{skills/prod-specs/templates → templates/product}/prod-breakdown-template.md +0 -0
|
@@ -8,7 +8,7 @@ trigger: always_on
|
|
|
8
8
|
|
|
9
9
|
## Propósito
|
|
10
10
|
|
|
11
|
-
O workflow `work` tem como **único objetivo** implementar código seguindo o plano de execução (`plan.md`). É uma etapa de **codificação
|
|
11
|
+
O workflow `work` tem como **único objetivo** implementar código seguindo o plano de execução (`plan.md`). É uma etapa de **codificação**: commita ao final de cada fase validada, mas nunca faz push nem abre PR.
|
|
12
12
|
|
|
13
13
|
---
|
|
14
14
|
|
|
@@ -67,19 +67,23 @@ Confirmar que está na branch certa? (s/n)
|
|
|
67
67
|
|
|
68
68
|
## Princípios Fundamentais
|
|
69
69
|
|
|
70
|
-
### 1.
|
|
70
|
+
### 1. Codificação com commit por fase - NUNCA push ou PR
|
|
71
71
|
|
|
72
72
|
O `work` é **estritamente proibido** de:
|
|
73
73
|
|
|
74
74
|
|
|
75
|
-
| ❌ Proibido
|
|
76
|
-
|
|
|
77
|
-
| Fazer
|
|
78
|
-
| Criar Pull Requests
|
|
79
|
-
|
|
|
80
|
-
|
|
|
81
|
-
|
|
|
82
|
-
|
|
|
75
|
+
| ❌ Proibido | ✅ Permitido |
|
|
76
|
+
| -------------------------------------------------- | --------------------------------------------------------- |
|
|
77
|
+
| Fazer `git push` | Escrever código |
|
|
78
|
+
| Criar Pull Requests | Criar/modificar arquivos de código |
|
|
79
|
+
| Usar `git add .` | `git add` de arquivos específicos da fase |
|
|
80
|
+
| Commitar sem aprovação do usuário na fase | Commitar ao final da fase validada, com testes passando |
|
|
81
|
+
| Commitar com testes falhando | Executar testes locais |
|
|
82
|
+
| Mover cards no Jira | Ler arquivos da sessão |
|
|
83
|
+
| Fazer merge de branches | Atualizar `plan.md` com progresso |
|
|
84
|
+
| Sugerir "vamos fazer o PR agora" | Validar código com o usuário |
|
|
85
|
+
|
|
86
|
+
O commit segue o formato do workflow (`{TASK_MANAGER_KEY} {tipo}({escopo}): {descrição}`, com `Refs:`). Push e PR são responsabilidade do `eng.pr`.
|
|
83
87
|
|
|
84
88
|
### 2. Escopo de Atuação
|
|
85
89
|
|
|
@@ -187,7 +191,7 @@ O workflow segue um ciclo rígido:
|
|
|
187
191
|
|
|
188
192
|
- Informar que a fase foi concluída
|
|
189
193
|
- Perguntar se deseja iniciar próxima fase
|
|
190
|
-
- ⚠️ **NUNCA sugerir
|
|
194
|
+
- ⚠️ **NUNCA sugerir push ou PR** (são do `eng.pr`)
|
|
191
195
|
|
|
192
196
|
---
|
|
193
197
|
|
|
@@ -243,9 +247,9 @@ O workflow **DEVE pausar e aguardar confirmação**:
|
|
|
243
247
|
|
|
244
248
|
1. **Escapar para Git**
|
|
245
249
|
|
|
246
|
-
- "Vou fazer o commit dessas mudanças..."
|
|
247
250
|
- "Agora podemos criar o PR..."
|
|
248
251
|
- "Deixa eu dar push das alterações..."
|
|
252
|
+
- `git add .` ou commit com testes falhando
|
|
249
253
|
2. **Pular validação**
|
|
250
254
|
|
|
251
255
|
- Implementar várias fases sem pausar
|
|
@@ -291,7 +295,7 @@ Ao finalizar **TODAS as fases** do `plan.md`, informe:
|
|
|
291
295
|
2. Execute os testes completos
|
|
292
296
|
3. Quando estiver pronto, use `eng.pr` para criar o Pull Request
|
|
293
297
|
|
|
294
|
-
⚠️ Este workflow NÃO faz
|
|
298
|
+
⚠️ Este workflow commita por fase, mas NÃO faz push nem PR.
|
|
295
299
|
Use `eng.pr` quando estiver pronto para submeter.
|
|
296
300
|
```
|
|
297
301
|
|
|
@@ -307,6 +311,7 @@ Antes de considerar uma fase completa:
|
|
|
307
311
|
- [ ] Usuário validou o código
|
|
308
312
|
- [ ] `plan.md` atualizado com status
|
|
309
313
|
- [ ] Comentários adicionados no plan.md
|
|
310
|
-
- [ ]
|
|
314
|
+
- [ ] Commit da fase feito (arquivos adicionados um a um, testes passando)
|
|
315
|
+
- [ ] NENHUM push foi feito
|
|
311
316
|
- [ ] NENHUM PR foi criado
|
|
312
317
|
- [ ] Próximos passos comunicados
|
|
@@ -1,47 +1,50 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: eng.frontend-rules
|
|
3
3
|
description: >
|
|
4
|
-
Padrões obrigatórios para devs com HUB: FRONTEND — componentes,
|
|
5
|
-
acessibilidade, performance,
|
|
4
|
+
Padrões obrigatórios para devs com HUB: FRONTEND, neutros de stack — componentes,
|
|
5
|
+
tipagem, acessibilidade, performance, testes, arquiteturas distribuídas e tokens de design.
|
|
6
|
+
O que depende da stack vem das especializações registradas em FRONTEND_SPECIALIZATIONS.
|
|
6
7
|
author: jarvis-team
|
|
7
|
-
version: "1.
|
|
8
|
+
version: "1.1"
|
|
8
9
|
---
|
|
9
10
|
|
|
10
11
|
> **Applies to:** HUB: FRONTEND | POSITION: all | AREA: ENGINEERING | SQUAD: all
|
|
11
12
|
|
|
12
13
|
# Regras de Engenharia Frontend
|
|
13
14
|
|
|
15
|
+
> **Neutras de stack.** Estas regras valem para qualquer framework ou linguagem de frontend. Onde uma regra depende da stack (como se busca dados, como se organiza um módulo, qual ferramenta de teste usar), siga a **especialização registrada** em `FRONTEND_SPECIALIZATIONS` no `ENV.md` e o código existente do projeto. Sem especialização registrada, **pergunte** em vez de presumir uma stack. Ver `eng.specializations-rules.md`.
|
|
16
|
+
|
|
14
17
|
---
|
|
15
18
|
|
|
16
19
|
## 1. Componentes
|
|
17
20
|
|
|
18
21
|
### Estrutura obrigatória
|
|
19
|
-
-
|
|
20
|
-
-
|
|
22
|
+
- Toda entrada de um componente (props, parâmetros ou atributos) é **tipada ou documentada**; tipo genérico solto (`any` ou equivalente) é proibido sem justificativa documentada
|
|
23
|
+
- Entradas obrigatórias são declaradas como obrigatórias; opcionais têm valor default explícito
|
|
21
24
|
- Componentes com mais de uma responsabilidade devem ser divididos (Single Responsibility)
|
|
22
|
-
- Lógica de negócio não pertence ao componente de UI — usar
|
|
25
|
+
- Lógica de negócio não pertence ao componente de UI — usar a camada de lógica ou de serviço que o projeto adota
|
|
23
26
|
|
|
24
27
|
### Nomenclatura
|
|
25
|
-
-
|
|
26
|
-
-
|
|
27
|
-
- Arquivos de componente: `PascalCase.tsx` (`UserCard.tsx`)
|
|
28
|
-
- Arquivos de hook: `camelCase.ts` (`useUserData.ts`)
|
|
28
|
+
- Seguir a convenção de nomes **do projeto** (e da especialização registrada) para componentes, funções de lógica reutilizável e arquivos
|
|
29
|
+
- Manter o padrão consistente: um mesmo tipo de arquivo, um mesmo estilo de nome
|
|
29
30
|
|
|
30
31
|
### Checklist mínimo por componente
|
|
31
|
-
- [ ]
|
|
32
|
+
- [ ] Entradas tipadas ou documentadas
|
|
32
33
|
- [ ] Estados visuais: normal, hover, focus, disabled, loading, erro, vazio
|
|
33
|
-
- [ ] Semântica HTML correta (não usar
|
|
34
|
-
- [ ] Responsivo (mobile-first
|
|
35
|
-
- [ ] Testável sem
|
|
34
|
+
- [ ] Semântica HTML correta (não usar um contêiner genérico para botões, links ou listas)
|
|
35
|
+
- [ ] Responsivo (mobile-first, nos tamanhos de tela do projeto)
|
|
36
|
+
- [ ] Testável sem depender de um navegador real (lógica isolada da apresentação)
|
|
36
37
|
|
|
37
38
|
---
|
|
38
39
|
|
|
39
|
-
## 2.
|
|
40
|
+
## 2. Tipagem e contratos
|
|
41
|
+
|
|
42
|
+
Aplica-se quando a linguagem do projeto tem tipagem estática ou contratos explícitos.
|
|
40
43
|
|
|
41
|
-
-
|
|
42
|
-
- Proibido:
|
|
43
|
-
-
|
|
44
|
-
- Exportar
|
|
44
|
+
- O **modo estrito** de verificação do projeto fica ligado e não é relaxado
|
|
45
|
+
- Proibido: tipo genérico solto, supressão de verificação de tipos sem comentário explicativo e asserção de "não nulo" sem verificação prévia
|
|
46
|
+
- Modelar objetos de domínio de forma explícita e unir ou derivar tipos com os recursos da linguagem
|
|
47
|
+
- Exportar o contrato público dos componentes, quando a linguagem permite
|
|
45
48
|
|
|
46
49
|
---
|
|
47
50
|
|
|
@@ -49,12 +52,12 @@ version: "1.0"
|
|
|
49
52
|
|
|
50
53
|
- Semântica HTML nativa antes de ARIA (`<button>`, `<nav>`, `<main>`, `<article>`)
|
|
51
54
|
- Todos os elementos interativos são navegáveis por teclado
|
|
52
|
-
- Contraste mínimo: 4.5:1 para texto normal, 3:1 para texto grande e elementos
|
|
53
|
-
- Imagens informativas têm
|
|
54
|
-
- Modais usam `role="dialog"`, `aria-modal="true"`, `aria-labelledby` e
|
|
55
|
-
- Formulários: todo
|
|
55
|
+
- Contraste mínimo: 4.5:1 para texto normal, 3:1 para texto grande e elementos de interface
|
|
56
|
+
- Imagens informativas têm texto alternativo descritivo; decorativas têm texto alternativo vazio
|
|
57
|
+
- Modais usam `role="dialog"`, `aria-modal="true"`, `aria-labelledby` e prendem o foco
|
|
58
|
+
- Formulários: todo campo tem rótulo associado
|
|
56
59
|
- Erros de formulário: exibidos com `role="alert"` ou `aria-live="polite"`
|
|
57
|
-
-
|
|
60
|
+
- Leitor de tela: testar com VoiceOver (Mac) ou NVDA (Windows) em features críticas
|
|
58
61
|
|
|
59
62
|
---
|
|
60
63
|
|
|
@@ -66,59 +69,56 @@ version: "1.0"
|
|
|
66
69
|
- INP (Interaction to Next Paint): < 200ms
|
|
67
70
|
|
|
68
71
|
### Práticas obrigatórias
|
|
69
|
-
- Imagens sempre com
|
|
70
|
-
-
|
|
71
|
-
- Dependências novas: avaliar impacto no
|
|
72
|
-
-
|
|
73
|
-
-
|
|
72
|
+
- Imagens sempre com largura e altura definidas, para evitar CLS
|
|
73
|
+
- Carregamento tardio de componentes pesados, com o recurso que a stack oferece, e um substituto visual com o mesmo tamanho enquanto carrega
|
|
74
|
+
- Dependências novas: avaliar o impacto no tamanho do pacote final antes de instalar
|
|
75
|
+
- Busca de dados pela camada que o projeto adota para isso (conforme a especialização), e não por efeitos soltos no componente de apresentação
|
|
76
|
+
- Otimização de renderização apenas quando necessária e **comprovada com medição** (não otimização prematura)
|
|
74
77
|
|
|
75
78
|
---
|
|
76
79
|
|
|
77
80
|
## 5. Testes
|
|
78
81
|
|
|
79
|
-
- **
|
|
80
|
-
- **Proibido
|
|
81
|
-
- **Cobertura mínima
|
|
82
|
-
- **
|
|
83
|
-
- **
|
|
84
|
-
-
|
|
82
|
+
- **Consultas por acessibilidade primeiro** (por papel e por rótulo): focar no que o usuário vê e faz, não em detalhes de implementação
|
|
83
|
+
- **Proibido** usar identificador de teste como primeira opção (só quando não houver alternativa acessível)
|
|
84
|
+
- **Cobertura mínima:** fluxos críticos de usuário (caminho feliz e estado de erro)
|
|
85
|
+
- **Testes unitários** para lógica pura e utilitários, com a ferramenta que o projeto já usa
|
|
86
|
+
- **Testes de ponta a ponta** para fluxos completos de usuário (login, checkout etc.), com a ferramenta que o projeto já usa
|
|
87
|
+
- Substitutos de módulos externos ficam num lugar previsível do projeto (por exemplo, uma pasta de mocks)
|
|
85
88
|
|
|
86
89
|
### Ferramentas disponíveis no framework
|
|
87
90
|
|
|
88
|
-
- **TestSprite** (`/eng-qa-testsprite`): se
|
|
89
|
-
e execução de testes de componente e E2E — ele gera planos de teste e código automaticamente.
|
|
91
|
+
- **TestSprite** (`/eng-qa-testsprite`): se estiver instalado no projeto, usá-lo para gerar e executar testes de componente e de ponta a ponta — ele gera planos de teste e código automaticamente.
|
|
90
92
|
Verificar: `ls node_modules/@testsprite 2>/dev/null || cat package.json | grep testsprite`
|
|
91
|
-
|
|
92
|
-
- **Stagehand** (`/eng-scraper-robot-builder`, `/eng-qa-e2e`): para testes E2E em linguagem natural
|
|
93
|
-
ou automação de fluxos de usuário complexos, o Stagehand permite descrever o fluxo em português
|
|
94
|
-
e gera os steps Playwright automaticamente.
|
|
93
|
+
- **Stagehand** (`/eng-scraper-robot-builder`, `/eng-qa-e2e`): para testes de ponta a ponta em linguagem natural ou automação de fluxos complexos, descrevendo o fluxo em português.
|
|
95
94
|
Verificar: `cat package.json | grep stagehand`
|
|
96
95
|
|
|
97
|
-
> Quando qualquer dessas ferramentas estiver disponível no projeto, **preferir sobre a implementação
|
|
98
|
-
> manual** — reduz custo de manutenção e aumenta cobertura mais rapidamente.
|
|
96
|
+
> Quando qualquer dessas ferramentas estiver disponível no projeto, **preferir sobre a implementação manual** — reduz o custo de manutenção e aumenta a cobertura mais rápido.
|
|
99
97
|
|
|
100
98
|
---
|
|
101
99
|
|
|
102
|
-
## 6.
|
|
100
|
+
## 6. Arquiteturas distribuídas (se o projeto divide o frontend em partes)
|
|
101
|
+
|
|
102
|
+
Aplica-se somente se o projeto divide o frontend em partes carregadas separadamente (por exemplo, uma aplicação principal que carrega módulos independentes). O detalhe da arquitetura em uso vem da especialização registrada. Princípios que valem em qualquer variante:
|
|
103
103
|
|
|
104
|
-
-
|
|
105
|
-
-
|
|
106
|
-
- Nenhum
|
|
107
|
-
-
|
|
108
|
-
- Cada
|
|
109
|
-
- Testes de integração entre
|
|
110
|
-
-
|
|
104
|
+
- Cada módulo é **versionado e publicado** com uma alternativa definida quando não carrega
|
|
105
|
+
- Os contratos de interface entre a aplicação principal e os módulos são declarados de forma explícita e compartilhada
|
|
106
|
+
- Nenhum módulo depende diretamente de outro: a comunicação passa pela aplicação principal ou por um barramento de eventos
|
|
107
|
+
- Dependências compartilhadas são declaradas explicitamente, para não serem carregadas em duplicidade
|
|
108
|
+
- Cada módulo deve funcionar de forma isolada, para desenvolvimento local
|
|
109
|
+
- Testes de integração entre a aplicação principal e cada módulo são obrigatórios em cada ponto de montagem
|
|
110
|
+
- Mudança que quebra o contrato de um módulo exige aumento de versão **major**
|
|
111
111
|
|
|
112
112
|
---
|
|
113
113
|
|
|
114
|
-
## 7.
|
|
114
|
+
## 7. Tokens de design e componentes compartilhados
|
|
115
115
|
|
|
116
|
-
- Cores, tipografia, espaçamentos e
|
|
117
|
-
- Proibido
|
|
118
|
-
- Novos componentes de
|
|
119
|
-
- Variantes de componente
|
|
120
|
-
- Componentes públicos
|
|
121
|
-
- Alterações na
|
|
116
|
+
- Cores, tipografia, espaçamentos e tamanhos de tela vêm **exclusivamente** dos tokens de design do projeto (quando o projeto tem)
|
|
117
|
+
- Proibido fixar valores de cor, fonte ou espaçamento fora dos tokens
|
|
118
|
+
- Novos componentes reutilizáveis nascem na biblioteca de componentes compartilhados do projeto (se existir) antes de serem usados nos módulos
|
|
119
|
+
- Variantes de componente seguem o padrão que o projeto já usa
|
|
120
|
+
- Componentes públicos da biblioteca compartilhada têm documentação visual antes de serem liberados, quando o projeto usa um catálogo de componentes
|
|
121
|
+
- Alterações na interface pública de um componente seguem o versionamento semântico
|
|
122
122
|
|
|
123
123
|
---
|
|
124
124
|
|
|
@@ -126,22 +126,23 @@ version: "1.0"
|
|
|
126
126
|
|
|
127
127
|
Ao revisar PR de frontend, verificar:
|
|
128
128
|
|
|
129
|
-
- [ ]
|
|
129
|
+
- [ ] Tipagem sem tipo genérico solto nem supressões injustificadas (quando a linguagem tem tipagem)
|
|
130
130
|
- [ ] Nenhuma lógica de negócio em componente de UI
|
|
131
131
|
- [ ] Acessibilidade: semântica HTML, ARIA correto, navegação por teclado
|
|
132
|
-
- [ ] Performance: sem
|
|
133
|
-
- [ ] Tokens
|
|
134
|
-
- [ ] Testes cobrem
|
|
135
|
-
- [ ] Responsividade verificada em
|
|
136
|
-
- [ ] Se
|
|
132
|
+
- [ ] Performance: sem renderizações desnecessárias comprovadas, carregamento tardio aplicado quando cabível
|
|
133
|
+
- [ ] Tokens de design do projeto usados (sem valores fixos)
|
|
134
|
+
- [ ] Testes cobrem o caminho feliz e o estado de erro
|
|
135
|
+
- [ ] Responsividade verificada em celular e desktop
|
|
136
|
+
- [ ] Se arquitetura distribuída: contrato de interface atualizado e módulo funciona de forma isolada
|
|
137
|
+
- [ ] Itens exigidos pelas especializações registradas atendidos
|
|
137
138
|
|
|
138
139
|
---
|
|
139
140
|
|
|
140
141
|
## 9. Proibições Absolutas
|
|
141
142
|
|
|
142
|
-
-
|
|
143
|
+
- Manipulação direta do DOM fora do mecanismo que o framework do projeto prevê para isso
|
|
143
144
|
- `!important` em CSS sem comentário explicativo
|
|
144
|
-
-
|
|
145
|
-
- Importar de outro
|
|
146
|
-
-
|
|
147
|
-
- `console.log` em código commitado (usar logger estruturado ou remover)
|
|
145
|
+
- Busca de dados direto no componente de apresentação (usar a camada que o projeto adota)
|
|
146
|
+
- Importar diretamente de outro módulo de uma arquitetura distribuída (rompe o isolamento)
|
|
147
|
+
- Fixar tokens de design (cores, espaçamentos, fontes) fora do sistema de tokens
|
|
148
|
+
- Log de depuração (`console.log` ou equivalente) em código commitado (usar logger estruturado ou remover)
|
package/rules/product/README.md
CHANGED
|
@@ -12,6 +12,7 @@ Documentação didática (termos por extenso, exemplos, quando usar cada comando
|
|
|
12
12
|
|---------|--------|
|
|
13
13
|
| Guia de decisão (qual spec?) | [prod.spec.guide.md](../../docs/produto/prod.spec.guide.md) |
|
|
14
14
|
| `/prod.spec` | [prod.spec.md](../../docs/produto/prod.spec.md) |
|
|
15
|
+
| `/prod.spec.discovery` | [prod.spec.discovery.md](../../docs/produto/prod.spec.discovery.md) |
|
|
15
16
|
| `/prod.spec.prd` | [prod.spec.prd.md](../../docs/produto/prod.spec.prd.md) |
|
|
16
17
|
| `/prod.spec.frd` | [prod.spec.frd.md](../../docs/produto/prod.spec.frd.md) |
|
|
17
18
|
| `/prod.spec.breakdown` | [prod.spec.breakdown.md](../../docs/produto/prod.spec.breakdown.md) |
|
|
@@ -22,3 +23,4 @@ Documentação didática (termos por extenso, exemplos, quando usar cada comando
|
|
|
22
23
|
## Arquivo normativo (agentes)
|
|
23
24
|
|
|
24
25
|
- [`prod-rules.md`](./prod-rules.md) — ENV, pastas, status, convenção de nomes, formato de perguntas
|
|
26
|
+
- [`prod.spec-rules.md`](./prod.spec-rules.md) — princípios de escrita de spec: critérios de aceitação por tipo de documento, contexto completo e terminologia consistente
|
|
@@ -7,9 +7,9 @@ trigger: always_on
|
|
|
7
7
|
## Principais Regras
|
|
8
8
|
- O idioma padrão é o português do Brasil. Mas mude caso o usuário solicite outro idioma.
|
|
9
9
|
- Leia o `./$IDE/ENV.md` para entender as variáveis de ambiente do framework. Ele é importante para você saber caminhos de pastas e outras informações sobre projeto e usuário.
|
|
10
|
-
- Se não existir, use o skill `init
|
|
10
|
+
- Se não existir, use o skill `jarvis-init` para criar o `ENV.md`.
|
|
11
11
|
- Procure `CLAUDE.md` ou `AGENTS.md` para entender informações sobre o contexto e objetivo do projeto.
|
|
12
|
-
- Se não existirem, use o skill `init
|
|
12
|
+
- Se não existirem, use o skill `jarvis-init` para criar o `AGENTS.md` e após essa criação, copie o conteúdo do `AGENTS.md` para o `CLAUDE.md` (se não existir o CLAUDE.md, crie-o).
|
|
13
13
|
- Nunca invente ou presuma dados ou informações. Se não souber, pergunte, valide e confirme com o usuário.
|
|
14
14
|
- Entenda se o projeto é novo ou existente, para criar ou modificar especificações de produto ou técnicas.
|
|
15
15
|
|
|
@@ -18,7 +18,7 @@ trigger: always_on
|
|
|
18
18
|
IMPORTANTE: Para que você funcione como o previsto e tenha todas as informações necessárias, é importante que você leia e interprete o arquivo `./$IDE/ENV.md`. Esse é o arquivo que guardamos variáveis de informações importantes sobre o projeto, o usuário e estruturas de pastas e arquivos que você precisará para operar corretamente.
|
|
19
19
|
|
|
20
20
|
- **Sempre no início de novas sessões ou interações, ANTES de executar qualquer comando ou workflow**, o agente **DEVE verificar** se o arquivo `$IDE/ENV.md` existe e está preenchido corretamente.
|
|
21
|
-
- **Exceção**: O comando `/init
|
|
21
|
+
- **Exceção**: O comando `/jarvis-init` é o único que pode ser executado sem o `ENV.md`, pois é ele que cria o arquivo.
|
|
22
22
|
- **Validação obrigatória**: O arquivo deve conter as seguintes variáveis preenchidas (não vazias):
|
|
23
23
|
- `RULES_FOLDER`
|
|
24
24
|
- `PROD_FOLDER_NAME`
|
|
@@ -30,7 +30,7 @@ IMPORTANTE: Para que você funcione como o previsto e tenha todas as informaçõ
|
|
|
30
30
|
- **Se o ENV.md não existir ou estiver incompleto**, o agente deve:
|
|
31
31
|
1. Interromper a execução do comando solicitado
|
|
32
32
|
2. Informar ao usuário que não podemos avançar sem o ENV.md. Mensagem abaixo.
|
|
33
|
-
3. Após confirmação, executar via Skill tool o `init
|
|
33
|
+
3. Após confirmação, executar via Skill tool o `jarvis-init`. No caso de negativa, o agente poderá avançar apenas para criar especificações de produto. E sempre que precisar salvar arquivos das especificações, deverá confirmar com o usuário.
|
|
34
34
|
```
|
|
35
35
|
⚠️ O framework não foi inicializado.
|
|
36
36
|
|
|
@@ -42,7 +42,7 @@ Se o arquivo não existir ou no caso de recusa, crie o `$IDE/ENV.md` incluindo a
|
|
|
42
42
|
RULES_FOLDER=.$IDE/rules
|
|
43
43
|
PROD_FOLDER_NAME=product
|
|
44
44
|
PROD_RULES=$RULES_FOLDER/$PROD_FOLDER_NAME
|
|
45
|
-
PROD_FLOWS=.$IDE/$FLOWS_FOLDER
|
|
45
|
+
PROD_FLOWS=.$IDE/$FLOWS_FOLDER
|
|
46
46
|
PROD_TEMPLATES=.$IDE/$TEMPLATES_FOLDER/$PROD_FOLDER_NAME
|
|
47
47
|
PROD_DOCS=$DOCS_FOLDER/$PROD_FOLDER_NAME
|
|
48
48
|
CENTRAL_DOCS_REPO=[USER:LOCAL_CENTRAL_DOCS_REPO]
|
|
@@ -95,6 +95,7 @@ Abaixo, segue uma descrição de algumas das variáveis mais importantes para as
|
|
|
95
95
|
Sempre siga as instruções de acordo com as relações abaixo.
|
|
96
96
|
**Guia para humanos (desenvolvedores aprendendo produto):** `docs/produto/` — uma página por comando, termos por extenso.
|
|
97
97
|
|
|
98
|
+
- `$PROD_FLOWS/prod.spec.discovery.md` — Investigação inicial de uma ideia (rascunho estruturado; não define tarefas) → [docs/produto/prod.spec.discovery.md](../../docs/produto/prod.spec.discovery.md)
|
|
98
99
|
- `$PROD_FLOWS/prod.spec.prd.md` — Documento de Requisitos de Produto (*Product Requirements Document*) → [docs/produto/prod.spec.prd.md](../../docs/produto/prod.spec.prd.md)
|
|
99
100
|
- `$PROD_FLOWS/prod.spec.frd.md` — Documento de Requisitos Funcionais (*Functional Requirements Document*) → [docs/produto/prod.spec.frd.md](../../docs/produto/prod.spec.frd.md)
|
|
100
101
|
- `$PROD_FLOWS/prod.spec.breakdown.md` — Quebra de especificação grande em fatias → [docs/produto/prod.spec.breakdown.md](../../docs/produto/prod.spec.breakdown.md)
|
|
@@ -129,6 +130,7 @@ Dentro das pastas do projeto, os caminhos de pastas e o nome dos arquivos finais
|
|
|
129
130
|
- Documento de Requisitos Funcionais: `$PROD_DOCS/prd-{id}-{nome-do-pai}/frd-{id}-{nome}.md`
|
|
130
131
|
- Épico: `$PROD_DOCS/prd-{id}-{nome-do-pai}/issues/epic-{id}-{nome}.md`
|
|
131
132
|
- História / tarefa: `$PROD_DOCS/prd-{id}-{nome-do-pai}/issues/{story|task}-{id}-{nome}.md`
|
|
133
|
+
- Discovery (rascunho de uma ideia, anterior ao PRD): `$PROD_DOCS/discoveries/discovery-{id}-{nome}.md`. Usa `status` (`in_review` enquanto o rascunho existe; `cancelled` se o veredito for não seguir) e `verdict` (vazio durante a entrevista, `proceed`, `investigate_more` ou `do_not_proceed`). O veredito é uma recomendação; um PRD, FRD, épico ou issue criado depois prevalece como fonte da verdade.
|
|
132
134
|
|
|
133
135
|
O ID deve ser iterado nos novos arquivos seguindo a sequência existente.
|
|
134
136
|
|
|
@@ -2,75 +2,39 @@
|
|
|
2
2
|
trigger: always_on
|
|
3
3
|
---
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
- O idioma padrão é o português do Brasil. Mas mude caso o usuário solicite outro idioma.
|
|
7
|
-
- Sempre procure por arquivos de configuração e documentação do projeto antes de executar qualquer comando ou workflow.
|
|
8
|
-
- Leia o `README.md` do projeto para saber contexto e detalhes importantes.
|
|
9
|
-
- Nunca invente ou presuma dados ou informações. Se não souber, pergunte, valide e confirme com o usuário.
|
|
10
|
-
- Entenda se o projeto é novo ou existente, para criar ou modificar especificações de produto ou técnicas.
|
|
11
|
-
- Identifique se o produto é versionado com git e leia o histórico de commits para entender as últimas atualizações.
|
|
5
|
+
> **Applies to:** HUB: all | POSITION: all | AREA: PRODUCT | SQUAD: all
|
|
12
6
|
|
|
7
|
+
# Regras de Escrita de Especificação de Produto
|
|
13
8
|
|
|
14
|
-
##
|
|
9
|
+
## Objetivo
|
|
15
10
|
|
|
16
|
-
|
|
11
|
+
Definir os princípios que todo documento de especificação de produto (PRD, FRD, épico, história, tarefa e bug) deve seguir: o nível certo de critérios de aceitação em cada tipo de documento, contexto completo, terminologia consistente e o uso opcional de um discovery como insumo.
|
|
17
12
|
|
|
18
|
-
|
|
13
|
+
## Escopo
|
|
19
14
|
|
|
20
|
-
-
|
|
21
|
-
- `$SKILL_REFERENCES_FOLDER`: `${CLAUDE_SKILL_DIR}/references/`
|
|
15
|
+
Aplica-se a todos os comandos `prod.spec.*` que escrevem ou alteram um documento. Complementa o `prod-rules.md` (variáveis de ambiente, comandos, nomes de arquivos, status e perguntas ao usuário), que continua sendo a regra geral de produto.
|
|
22
16
|
|
|
17
|
+
## Regras
|
|
23
18
|
|
|
24
|
-
|
|
19
|
+
### Princípio: Critérios de aceitação e requisitos
|
|
25
20
|
|
|
26
|
-
|
|
27
|
-
1. Tente usar o tool `AskUserQuestion` se ele estiver disponível no seu ambiente (ex: Claude Desktop, Claude Cowork, Claude Code CLI).
|
|
28
|
-
2. Se não estiver disponível, use **obrigatoriamente** (se possível) o formato de tabela abaixo. Caso não possível no formato de tabela, faça perguntas em texto corrido.
|
|
29
|
-
3. Nunca avance sem coletar as respostas necessárias.
|
|
21
|
+
#### Critérios de aceitação específicos do documento
|
|
30
22
|
|
|
31
|
-
|
|
32
|
-
| | {Aqui fica a pergunta que você deve fazer para o usuário. Seja objetivo e direto ao ponto:} |
|
|
33
|
-
| --- | ----------------------------------------------------------------------------------------- |
|
|
34
|
-
| A | {Resposta 1} |
|
|
35
|
-
| B | {Resposta 2} |
|
|
36
|
-
| C | {Resposta 3} |
|
|
37
|
-
| D | {Resposta 4} |
|
|
38
|
-
```
|
|
39
|
-
|
|
40
|
-
**NUNCA** pergunte tudo de uma vez, sempre faça perguntas separadas e aguarde a resposta antes de prosseguir.
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
## Descrição dos Status
|
|
44
|
-
|
|
45
|
-
Em itens e especificações, utilizamos status para identificar quais etapas do desenvolvimento cada item está. Isso é representado pela variável `$ITEM_STATUS`.
|
|
46
|
-
|
|
47
|
-
- icebox: Lista de ideias, necessidades e desejos. Item que está aguardando priorização ou definição de escopo.
|
|
48
|
-
- in_review: Item que está sendo estudado, descoberto, revisado ou analisado.
|
|
49
|
-
- backlog: Item já foi estudado, sabemos o que fazer e está aguardando priorização de implementação.
|
|
50
|
-
- in_progress: Item que está em desenvolvimento.
|
|
51
|
-
- in_production: Item que está em produção.
|
|
52
|
-
- cancelled: Item que foi descontinuado ou cancelado.
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
## Princípio: Critérios de aceitação e requisitos
|
|
56
|
-
|
|
57
|
-
### Critérios de aceitação específicos do documento
|
|
58
|
-
|
|
59
|
-
#### Para PRDs (nível macro)
|
|
23
|
+
##### Para PRDs (nível macro)
|
|
60
24
|
Concentre-se no "o quê" e no "porquê":
|
|
61
25
|
- Definir capacidades gerais do produto
|
|
62
26
|
- Definir regras e restrições de negócios
|
|
63
27
|
- Estabelecer métricas de sucesso
|
|
64
28
|
- Descrições sempre levando em consideração as soluções macro do Projeto, baseando-se nas FRDs
|
|
65
29
|
|
|
66
|
-
|
|
30
|
+
##### Para FRDs (nível médio)
|
|
67
31
|
Retrata as soluções macro do produto. É ponte entre estratégia e implementação:
|
|
68
32
|
- Definir requisitos de nível de recurso
|
|
69
33
|
- Definir limites para histórias relacionadas
|
|
70
34
|
- Incluir pontos de integração
|
|
71
35
|
- Definir requisitos não funcionais
|
|
72
36
|
|
|
73
|
-
|
|
37
|
+
#### Para histórias (detalhadas, funcionais)
|
|
74
38
|
|
|
75
39
|
Concentre-se em comportamentos específicos e testáveis com base em designs:
|
|
76
40
|
|
|
@@ -104,7 +68,7 @@ Concentre-se em comportamentos específicos e testáveis com base em designs:
|
|
|
104
68
|
- **Épico**: escopo em nível de recurso e abordagem técnica
|
|
105
69
|
- **Issues (História/Tarefa)**: detalhes específicos de implementação e comportamento da UI
|
|
106
70
|
|
|
107
|
-
|
|
71
|
+
### Princípio: Contexto completo
|
|
108
72
|
|
|
109
73
|
**Princípio**: Cada documento deve ser compreensível por si só, sem exigir conhecimento tribal.
|
|
110
74
|
|
|
@@ -147,7 +111,7 @@ As pessoas juntam-se em equipas, o contexto perde-se, as memórias desaparecem.
|
|
|
147
111
|
- **Bugs rápidos**: ambiente do documento, etapas, comportamento esperado
|
|
148
112
|
- **Tarefas rápidas**: explique por que esse trabalho é importante
|
|
149
113
|
|
|
150
|
-
|
|
114
|
+
### Princípio: Terminologia Consistente
|
|
151
115
|
|
|
152
116
|
**Princípio**: Use os mesmos termos para os mesmos conceitos em toda a documentação.
|
|
153
117
|
|
|
@@ -184,3 +148,44 @@ A terminologia inconsistente cria confusão. "Cliente" vs "Usuário" vs "Cliente
|
|
|
184
148
|
- **Planos**: use os termos exatos do PRD
|
|
185
149
|
- **Histórias**: Combine a terminologia do PRD e do Plano
|
|
186
150
|
- **Questões rápidas**: use terminologia estabelecida ou defina novos termos
|
|
151
|
+
|
|
152
|
+
### Princípio: Discovery como insumo
|
|
153
|
+
|
|
154
|
+
**Princípio**: O discovery (`$PROD_DOCS/discoveries/discovery-{id}-{nome}.md`) é um rascunho de suposições. Ele pode servir de contexto para um PRD, FRD, épico ou issue, mas nunca é obrigatório e nunca é tratado como verdade.
|
|
155
|
+
|
|
156
|
+
**O discovery é opcional**:
|
|
157
|
+
- Sem discovery apontado, siga o fluxo do comando normalmente, sem procurar na pasta `discoveries/` e sem perguntar nada sobre discovery. Ter arquivos nessa pasta não tem relação com o comando.
|
|
158
|
+
- Exemplos: `/prod.spec.prd já sei o que quero` segue o fluxo de sempre; `/prod.spec.prd discovery-002` carrega o discovery.
|
|
159
|
+
|
|
160
|
+
**Como apontar e achar o discovery**:
|
|
161
|
+
- O usuário aponta por caminho, nome ou id (como `discovery-002`); procure em `$PROD_DOCS/discoveries/`.
|
|
162
|
+
- Se o arquivo não existir: informe, liste os discoveries da pasta e pergunte qual usar, ou se o usuário prefere seguir sem discovery.
|
|
163
|
+
- Se a pasta `discoveries/` não existir: siga sem discovery e não crie a pasta.
|
|
164
|
+
- Se mais de um arquivo casar com o que o usuário apontou: pergunte qual usar, sem escolher sozinho.
|
|
165
|
+
|
|
166
|
+
**Como usar o discovery**:
|
|
167
|
+
- Leia o discovery como **contexto, não como resposta**: é um rascunho e pode estar defasado.
|
|
168
|
+
- **Questione e repasse tudo com o usuário**, seção por seção: mostre o que está registrado e pergunte se ainda vale ou se mudou.
|
|
169
|
+
- Hipóteses e perguntas em aberto do discovery são perguntadas como tais; o que o comando exige e o discovery não cobre é perguntado normalmente.
|
|
170
|
+
- Nada do discovery entra no documento novo como fato sem o usuário ter passado por aquilo. O que ficar sem validação continua marcado como suposição.
|
|
171
|
+
|
|
172
|
+
**Avisos conforme a situação do discovery**:
|
|
173
|
+
- `verdict: do_not_proceed` (ou `status: cancelled`): avise que a recomendação foi não seguir, mostre o motivo registrado e só continue com confirmação explícita do usuário.
|
|
174
|
+
- `verdict: investigate_more`, `verdict` vazio ou `status: in_review` (discovery ainda em entrevista): avise que há lacunas críticas, liste as perguntas em aberto e pergunte se o usuário quer retomar o discovery antes ou seguir assumindo o risco.
|
|
175
|
+
- `verdict: proceed`: siga normalmente.
|
|
176
|
+
|
|
177
|
+
**O documento novo é o oficial**:
|
|
178
|
+
- O PRD, FRD, épico ou issue é a fonte da verdade. O discovery **nunca é alterado** por estes comandos: ele permanece como o registro do momento da investigação.
|
|
179
|
+
- O documento novo referencia o discovery de origem no campo `related_discovery` do frontmatter.
|
|
180
|
+
- Quando a informação do documento novo divergir do discovery, **avise o usuário na conversa** e crie no documento novo a seção **"Divergências"** (somente quando houver), com o que mudou e por quê, em poucas linhas.
|
|
181
|
+
|
|
182
|
+
## Exceções
|
|
183
|
+
|
|
184
|
+
Quando o usuário pedir explicitamente outro formato ou nível de detalhe para um documento, registre a decisão no próprio documento e siga o pedido.
|
|
185
|
+
|
|
186
|
+
## Referências
|
|
187
|
+
|
|
188
|
+
- `prod-rules.md`: regras gerais de produto (ambiente, comandos, nomes de arquivos, status e perguntas ao usuário)
|
|
189
|
+
- `../../templates/product/`: templates dos documentos
|
|
190
|
+
- `../../workflows/product/`: os comandos `prod.spec.*`
|
|
191
|
+
- `prod.spec.discovery.md` (workflow) e `prod-discovery-template.md`: o comando e o formato do discovery, o rascunho que os comandos acima podem usar como insumo
|