jarvis-ai-framework 1.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 +416 -0
- package/LICENSE +21 -0
- package/README.md +190 -0
- package/agents/AGENTS.md +234 -0
- package/agents/README.md +309 -0
- package/agents/engineering/data/eng.data-engineer.agent.md +309 -0
- package/agents/engineering/eng.agent.md +303 -0
- package/agents/engineering/eng.bug-hunter.md +386 -0
- package/agents/engineering/eng.cybersecurity.agent.md +503 -0
- package/agents/engineering/eng.dev-code-reviewer.md +148 -0
- package/agents/engineering/eng.docs-writer.md +152 -0
- package/agents/engineering/eng.frontend.agent.md +117 -0
- package/agents/engineering/eng.rpa.agent.md +215 -0
- package/agents/engineering/eng.tech-analyst.agent.md +102 -0
- package/agents/engineering/eng.ux-designer.agent.md +193 -0
- package/agents/engineering/qa/eng.qa.cypress-specialist.md +109 -0
- package/agents/engineering/qa/eng.qa.quality-champion-task-agent.md +85 -0
- package/agents/engineering/qa/eng.qa.quality-strategist.md +111 -0
- package/agents/engineering/qa/eng.qa.test-architect.md +400 -0
- package/agents/engineering/qa/eng.qa.test-planner.md +477 -0
- package/agents/engineering/qa/eng.qa.testing-engineer.md +339 -0
- package/agents/product/prod.pm-checker.md +52 -0
- package/bin/commands/docs-publish.js +184 -0
- package/bin/commands/docs-sync.js +139 -0
- package/bin/commands/info.js +87 -0
- package/bin/commands/init.js +237 -0
- package/bin/commands/install-rtk.js +90 -0
- package/bin/commands/list.js +48 -0
- package/bin/commands/qa-signoff.js +112 -0
- package/bin/commands/whoami.js +43 -0
- package/bin/jarvis.js +159 -0
- package/bin/lib/auth/session.js +56 -0
- package/bin/lib/config/constants.js +123 -0
- package/bin/lib/config/ide-config.js +233 -0
- package/bin/lib/core/scanner.js +124 -0
- package/bin/lib/core/sync-engine.js +551 -0
- package/bin/lib/docs/fetch-file.sh +41 -0
- package/bin/lib/docs/publish-file.sh +284 -0
- package/bin/lib/docs/validate-frontmatter.js +157 -0
- package/bin/lib/env-loader.js +198 -0
- package/bin/lib/tasks/comment.js +131 -0
- package/bin/lib/utils/git-parser.js +145 -0
- package/bin/lib/utils/logger.js +104 -0
- package/bin/lib/utils/npmrc-parser.js +106 -0
- package/bin/lib/utils/paths.js +55 -0
- package/bin/lib/utils/ui.js +59 -0
- package/bin/lib/vcs/api.js +312 -0
- package/bin/lib/vcs/create-issue.js +43 -0
- package/bin/lib/vcs/create-merge.js +43 -0
- package/bin/lib/vcs/fetch-raw.js +30 -0
- package/bin/postinstall.js +41 -0
- package/members.md +25 -0
- package/package.json +55 -0
- package/rules/AGENTS.md +205 -0
- package/rules/engineering/data/data-rules.md +200 -0
- package/rules/engineering/eng-rules.md +243 -0
- package/rules/engineering/eng-security-rules.md +186 -0
- package/rules/engineering/eng.breakdown-subtasks-rules.md +585 -0
- package/rules/engineering/eng.bump-rules.md +27 -0
- package/rules/engineering/eng.docs-scraping-rules.md +64 -0
- package/rules/engineering/eng.downstream-flow-rules.md +297 -0
- package/rules/engineering/eng.integrations-rules.md +73 -0
- package/rules/engineering/eng.plan-rules.md +333 -0
- package/rules/engineering/eng.pr-rules.md +359 -0
- package/rules/engineering/eng.pre-pr-rules.md +103 -0
- package/rules/engineering/eng.start-rules.md +246 -0
- package/rules/engineering/eng.tech-spec-rules.md +968 -0
- package/rules/engineering/eng.work-rules.md +312 -0
- package/rules/engineering/frontend/eng.frontend-rules.md +147 -0
- package/rules/engineering/qa/eng.qa.cypress-standards-rules.md +259 -0
- package/rules/engineering/qa/eng.qa.exploratory-session-rules.md +137 -0
- package/rules/engineering/qa/eng.qa.quality-gate-scoring-rules.md +181 -0
- package/rules/engineering/qa/eng.qa.tech-spec-validation-criteria-rules.md +120 -0
- package/rules/engineering/rpa/eng.rpa-rules.md +230 -0
- package/rules/product/README.md +24 -0
- package/rules/product/prod-rules.md +151 -0
- package/rules/rtk-rules.md +68 -0
- package/skills/AGENTS.md +290 -0
- package/skills/SKILLS-ROADMAP.md +333 -0
- package/skills/churn-audit/SKILL.md +385 -0
- package/skills/context-detect/SKILL.md +399 -0
- package/skills/context-detect/assets/context-profile-template.md +127 -0
- package/skills/docs-central/README.md +310 -0
- package/skills/docs-central/SKILL.md +423 -0
- package/skills/docs-index/SKILL.md +377 -0
- package/skills/eng-ai-engineer/SKILL.md +296 -0
- package/skills/eng-arch-c4/SKILL.md +358 -0
- package/skills/eng-arch-c4/assets/example-code.md +189 -0
- package/skills/eng-arch-c4/assets/example-component.md +105 -0
- package/skills/eng-arch-c4/assets/example-container.md +104 -0
- package/skills/eng-arch-c4/assets/example-context.md +81 -0
- package/skills/eng-backend/SKILL.md +776 -0
- package/skills/eng-browser-extension-builder/SKILL.md +385 -0
- package/skills/eng-cybersecurity/SKILL.md +645 -0
- package/skills/eng-data-bi/SKILL.md +199 -0
- package/skills/eng-data-debug/SKILL.md +307 -0
- package/skills/eng-data-engineer/SKILL.md +256 -0
- package/skills/eng-data-onboard/SKILL.md +310 -0
- package/skills/eng-data-orchestrator/SKILL.md +426 -0
- package/skills/eng-design-system/SKILL.md +619 -0
- package/skills/eng-docs-write/SKILL.md +312 -0
- package/skills/eng-frontend/SKILL.md +913 -0
- package/skills/eng-jira-comment/SKILL.md +17 -0
- package/skills/eng-microfrontend/SKILL.md +602 -0
- package/skills/eng-ms-trace/SKILL.md +469 -0
- package/skills/eng-nestjs/SKILL.md +791 -0
- package/skills/eng-performance-engineer/SKILL.md +312 -0
- package/skills/eng-pr/SKILL.md +339 -0
- package/skills/eng-qa-a11y-audit/SKILL.md +269 -0
- package/skills/eng-qa-bug-report/SKILL.md +1088 -0
- package/skills/eng-qa-bug-report/TASK_MANAGERS.md +138 -0
- package/skills/eng-qa-cypress-e2e/SKILL.md +177 -0
- package/skills/eng-qa-dev-guide/SKILL.md +164 -0
- package/skills/eng-qa-e2e/SKILL.md +400 -0
- package/skills/eng-qa-e2e-spec-writer/SKILL.md +322 -0
- package/skills/eng-qa-exploratory/SKILL.md +188 -0
- package/skills/eng-qa-gate/SKILL.md +370 -0
- package/skills/eng-qa-gate/assets/checklist-validacao.md +291 -0
- package/skills/eng-qa-graphql-contract/SKILL.md +256 -0
- package/skills/eng-qa-quality-report/SKILL.md +412 -0
- package/skills/eng-qa-test-plan/SKILL.md +466 -0
- package/skills/eng-qa-test-plan/assets/test-coverage-template.md +92 -0
- package/skills/eng-qa-test-plan/assets/test-patterns.md +178 -0
- package/skills/eng-qa-testsprite/SKILL.md +325 -0
- package/skills/eng-qa-testsprite/references/testsprite-mcp.md +224 -0
- package/skills/eng-qa-unit-test/SKILL.md +471 -0
- package/skills/eng-rabbitmq/SKILL.md +661 -0
- package/skills/eng-scraper/SKILL.md +683 -0
- package/skills/eng-scraper-robot-builder/SKILL.md +370 -0
- package/skills/eng-security-patch/SKILL.md +378 -0
- package/skills/eng-security-triage/SKILL.md +266 -0
- package/skills/eng-task-comment/SKILL.md +60 -0
- package/skills/eng-tech-analyst/SKILL.md +529 -0
- package/skills/eng-threat-model/SKILL.md +161 -0
- package/skills/init-jarvis/SKILL.md +1304 -0
- package/skills/init-jarvis/assets/mcp-configs.md +389 -0
- package/skills/init-jarvis/assets/onboarding-checklist.md +104 -0
- package/skills/init-jarvis/assets/setup-guide.md +360 -0
- package/skills/lovable-prompt-generator/SKILL.md +304 -0
- package/skills/prod-roadmap-report/README.md +303 -0
- package/skills/prod-roadmap-report/SKILL.md +198 -0
- package/skills/prod-roadmap-report/commands/status.compiled.single.team.md +23 -0
- package/skills/prod-roadmap-report/commands/status.list.projects.md +17 -0
- package/skills/prod-roadmap-report/commands/status.memory.md +192 -0
- package/skills/prod-roadmap-report/commands/status.roadmap.preview.md +94 -0
- package/skills/prod-roadmap-report/references/detailed-guide.md +236 -0
- package/skills/prod-roadmap-report/rules/detailed-guide.md +237 -0
- package/skills/prod-roadmap-report/rules/status-report-rules.md +44 -0
- package/skills/prod-roadmap-report/templates/template-multiple-teams-compiled-status.md +53 -0
- package/skills/prod-roadmap-report/templates/template-projects-list.md +23 -0
- package/skills/prod-roadmap-report/templates/template-single-team-compiled-status.md +60 -0
- package/skills/prod-roadmap-report/templates/template-single-team-status.md +49 -0
- package/skills/prod-specs/SKILL.md +108 -0
- package/skills/prod-specs/references/prod.spec.clarify.md +176 -0
- package/skills/prod-specs/references/prod.spec.epic.md +107 -0
- package/skills/prod-specs/references/prod.spec.frd.md +135 -0
- package/skills/prod-specs/references/prod.spec.issue.md +145 -0
- package/skills/prod-specs/references/prod.spec.prd.md +118 -0
- package/skills/prod-specs/rules/prod-spec-rules.md +186 -0
- package/skills/prod-specs/templates/prod-breakdown-template.md +136 -0
- package/skills/prod-specs/templates/prod-epic-template.md +76 -0
- package/skills/prod-specs/templates/prod-frd-template.md +172 -0
- package/skills/prod-specs/templates/prod-issue-template.md +68 -0
- package/skills/prod-specs/templates/prod-prd-full-template.md +159 -0
- package/skills/prod-specs/templates/prod-prd-template.md +173 -0
- package/skills/prod-specs-update/SKILL.md +272 -0
- package/skills/report-issue/SKILL.md +156 -0
- package/taxonomy.md +270 -0
- package/templates/AGENTS.md +189 -0
- package/templates/CDD aplicado a Prompts.md +182 -0
- package/templates/ENV-template.md +187 -0
- package/templates/engineering/AGENTS-template.md +71 -0
- package/templates/engineering/ARD-template.md +193 -0
- package/templates/engineering/CONTACTS-template.md +135 -0
- package/templates/engineering/PR-template.md +40 -0
- package/templates/engineering/RFC-Playbook.md +325 -0
- package/templates/engineering/RFC-template.md +199 -0
- package/templates/engineering/architecture-template.md +277 -0
- package/templates/engineering/breakdown-subtasks-template.md +582 -0
- package/templates/engineering/c4-model-template.md +516 -0
- package/templates/engineering/data-contract-template.md +135 -0
- package/templates/engineering/data-pipeline-template.md +163 -0
- package/templates/engineering/plan-template.md +255 -0
- package/templates/engineering/qa/eng.qa.quality-gate-examples-template.md +311 -0
- package/templates/engineering/qa/eng.qa.quality-gate-report-template.md +249 -0
- package/templates/engineering/qa/qa.cypress-test-template.md +172 -0
- package/templates/engineering/qa/qa.exploratory-session-template.md +148 -0
- package/templates/engineering/qa/qa.quality-report-template.md +130 -0
- package/templates/engineering/qa/qa.release-signoff-template.md +54 -0
- package/templates/engineering/qa/qa.sprint-plan-template.md +49 -0
- package/templates/engineering/swagger-template.md +145 -0
- package/templates/engineering/tech-spec-template.md +497 -0
- package/templates/engineering/work-progress-template.md +155 -0
- package/workflows/AGENTS.md +240 -0
- package/workflows/README.md +160 -0
- package/workflows/all-tools.md +11 -0
- package/workflows/engineering/data/data.contract.md +202 -0
- package/workflows/engineering/data/data.new-pipeline.md +234 -0
- package/workflows/engineering/eng.breakdown-subtasks.md +420 -0
- package/workflows/engineering/eng.bug-audit.md +591 -0
- package/workflows/engineering/eng.build-tech-spec.md +1116 -0
- package/workflows/engineering/eng.create-ard-from-code.md +259 -0
- package/workflows/engineering/eng.create-ard.md +382 -0
- package/workflows/engineering/eng.create-rfc.md +245 -0
- package/workflows/engineering/eng.debug.md +479 -0
- package/workflows/engineering/eng.docs.md +40 -0
- package/workflows/engineering/eng.light-arch.md +84 -0
- package/workflows/engineering/eng.plan.md +213 -0
- package/workflows/engineering/eng.pr.md +466 -0
- package/workflows/engineering/eng.pre-pr.md +167 -0
- package/workflows/engineering/eng.review.md +185 -0
- package/workflows/engineering/eng.rpa.robot.md +342 -0
- package/workflows/engineering/eng.security-audit.md +312 -0
- package/workflows/engineering/eng.security-incident.md +275 -0
- package/workflows/engineering/eng.security-pipeline.md +210 -0
- package/workflows/engineering/eng.security-review.md +235 -0
- package/workflows/engineering/eng.start.md +494 -0
- package/workflows/engineering/eng.work.md +558 -0
- package/workflows/engineering/frontend/eng.frontend-component.md +190 -0
- package/workflows/engineering/frontend/eng.frontend-perf-audit.md +375 -0
- package/workflows/engineering/frontend/eng.frontend-review.md +185 -0
- package/workflows/engineering/qa/eng.qa-dev-quality-guide.md +51 -0
- package/workflows/engineering/qa/eng.qa-e2e-test-generation.md +51 -0
- package/workflows/engineering/qa/eng.qa-exploratory-session.md +60 -0
- package/workflows/engineering/qa/eng.qa-quality-gate-validation.md +202 -0
- package/workflows/engineering/qa/eng.qa-quality-report.md +83 -0
- package/workflows/engineering/qa/eng.qa-refinement-entry.md +83 -0
- package/workflows/engineering/qa/eng.qa-release-signoff.md +170 -0
- package/workflows/engineering/qa/eng.qa-sprint-planning.md +100 -0
- package/workflows/engineering/ta/eng.ta.atendimento.md +93 -0
- package/workflows/product/prod.roadmap.preview.md +110 -0
- package/workflows/product/prod.spec.breakdown.md +163 -0
- package/workflows/product/prod.spec.clarify.md +178 -0
- package/workflows/product/prod.spec.epic.md +154 -0
- package/workflows/product/prod.spec.frd.md +96 -0
- package/workflows/product/prod.spec.issue.md +145 -0
- package/workflows/product/prod.spec.md +60 -0
- package/workflows/product/prod.spec.prd.md +100 -0
- package/workflows/taxonomy.md +92 -0
- package/workflows/warm-up.md +574 -0
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: prod.spec.breakdown
|
|
3
|
+
description: Quebra uma especificação de produto grande (Documento de Requisitos de Produto ou Documento de Requisitos Funcionais) em fatias gerenciáveis — versões, épicos e histórias — sem perder o objetivo de valor.
|
|
4
|
+
auto_execution_mode: 3
|
|
5
|
+
env_file: "@/ENV.md"
|
|
6
|
+
recommended_model: claude-sonnet-4-20250514
|
|
7
|
+
model_tier: high
|
|
8
|
+
model_justification: Breakdown de produto exige julgamento de valor, sequenciamento e decomposição em entregas incrementais
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Quebra de especificação (breakdown)
|
|
12
|
+
|
|
13
|
+
Este comando transforma uma especificação **grande demais para executar de uma vez** em um **plano detalhado (breakdown)**: versões / releases, épicos e esboço de histórias ou tarefas — com foco em **valor perceptível ao usuário**, não só em camadas técnicas.
|
|
14
|
+
|
|
15
|
+
Antes de iniciar, revise as regras invioláveis em `$PROD_RULES/**/*`. Se a variável for desconhecida, leia `.$IDE/rules/product/**/*.*`.
|
|
16
|
+
|
|
17
|
+
Guia humano (termos por extenso): `docs/produto/prod.spec.breakdown.md`.
|
|
18
|
+
|
|
19
|
+
Utilize o `$ARGUMENTS` como ponto de partida (caminho da spec, nome da feature ou descrição do que fatiar):
|
|
20
|
+
|
|
21
|
+
<requirement>
|
|
22
|
+
#$ARGUMENTS
|
|
23
|
+
</requirement>
|
|
24
|
+
|
|
25
|
+
## Quando usar
|
|
26
|
+
|
|
27
|
+
- Documento de Requisitos de Produto ou Documento de Requisitos Funcionais monolítico
|
|
28
|
+
- Time pergunta “por onde começamos?”
|
|
29
|
+
- Precisa de milestones / entregas parciais antes de criar vários épicos à mão
|
|
30
|
+
- Antes de `/prod.spec.epic` em série ou de um tsunami de `/prod.spec.issue`
|
|
31
|
+
|
|
32
|
+
## Quando **não** usar
|
|
33
|
+
|
|
34
|
+
- Spec ainda ambígua → execute `$PROD_FLOWS/prod.spec.clarify.md` **primeiro**
|
|
35
|
+
- Escopo já cabe em uma história → `$PROD_FLOWS/prod.spec.issue.md`
|
|
36
|
+
- Só quer um único épico sem árvore de releases → `$PROD_FLOWS/prod.spec.epic.md`
|
|
37
|
+
- Quebra de **tech spec** em subtarefas de engenharia → isso é `eng.breakdown-subtasks` (outro domínio)
|
|
38
|
+
|
|
39
|
+
## Pré-requisitos
|
|
40
|
+
|
|
41
|
+
1. Existir (ou o usuário apontar) um Documento de Requisitos de Produto e/ou Documento de Requisitos Funcionais em `$PROD_DOCS` (ou path explícito nos argumentos).
|
|
42
|
+
2. Se não houver spec pai: ofereça criar com `$PROD_FLOWS/prod.spec.prd.md` ou `$PROD_FLOWS/prod.spec.frd.md`. Não invente escopo do zero sem confirmação.
|
|
43
|
+
3. Se a spec estiver cheia de “talvez” / “depois a gente vê”: sugira clarify antes; só continue se o usuário assumir o risco.
|
|
44
|
+
|
|
45
|
+
## Skills
|
|
46
|
+
|
|
47
|
+
Use a Skill tool:
|
|
48
|
+
|
|
49
|
+
- **`prod-specs`** — gerar/atualizar o artefato de breakdown conforme o template e padrões do projeto
|
|
50
|
+
|
|
51
|
+
Template canônico do skill: `skills/prod-specs/templates/prod-breakdown-template.md`
|
|
52
|
+
(Se existir cópia em `$PROD_TEMPLATES/prod-breakdown-template.md`, prefira a do `$PROD_TEMPLATES`.)
|
|
53
|
+
|
|
54
|
+
## Busca no Central Docs (condicional)
|
|
55
|
+
|
|
56
|
+
Se `CENTRAL_DOCS_REPO` estiver no `ENV.md`:
|
|
57
|
+
|
|
58
|
+
1. `jarvis docs sync --silent` (best-effort)
|
|
59
|
+
2. Localizar Documento de Requisitos de Produto / funcional relacionado (nome, tags, `TASK_MANAGER_KEY`)
|
|
60
|
+
3. Usar como contexto; se não achar, seguir com arquivos locais em `$PROD_DOCS`
|
|
61
|
+
|
|
62
|
+
## Sessões
|
|
63
|
+
|
|
64
|
+
- Rascunhos WIP: `$SESSIONS_DIR/prod/{TASK_MANAGER_KEY}/`
|
|
65
|
+
- Artefato canônico do breakdown: sob a pasta do Documento de Requisitos de Produto pai em `$PROD_DOCS` (não substitua a pasta de sessão pela canônica)
|
|
66
|
+
|
|
67
|
+
## Resultado esperado
|
|
68
|
+
|
|
69
|
+
1. Arquivo de **plano detalhado (breakdown)** em Markdown, no idioma da conversa.
|
|
70
|
+
2. Convenção de nome sugerida (ajuste ao padrão de `prod-rules` se o projeto já tiver um):
|
|
71
|
+
|
|
72
|
+
`$PROD_DOCS/prd-{id}-{slug}/breakdown-{id}-{slug}.md`
|
|
73
|
+
|
|
74
|
+
Se não houver pasta de Documento de Requisitos de Produto, confirme com o usuário onde gravar.
|
|
75
|
+
3. Árvore validada com o usuário: Versão → Épico → Histórias/tarefas (títulos + intenção de valor).
|
|
76
|
+
4. Lista ordenada da **primeira fatia recomendada** para começar engenharia.
|
|
77
|
+
|
|
78
|
+
**Não** crie automaticamente dezenas de arquivos de épico/história sem perguntar. O breakdown é o mapa; a materialização usa:
|
|
79
|
+
|
|
80
|
+
- `$PROD_FLOWS/prod.spec.epic.md`
|
|
81
|
+
- `$PROD_FLOWS/prod.spec.issue.md`
|
|
82
|
+
|
|
83
|
+
## Diretrizes de produto (obrigatórias)
|
|
84
|
+
|
|
85
|
+
- Prefira **fatias verticais** (usuário percebe valor) a fatias só técnicas (“primeiro só o banco”).
|
|
86
|
+
- Cada épico proposto deve ter resultado de usuário em uma frase.
|
|
87
|
+
- Histórias esboçadas devem parecer INVEST o suficiente para virar issue depois (não detalhe aceite micro aqui se for só título — deixe para `prod.spec.issue`).
|
|
88
|
+
- Explicitar **fora de escopo** de cada versão quando fizer diferença de prioridade.
|
|
89
|
+
- Dependências e caminho crítico: só o necessário para não planejar o impossível.
|
|
90
|
+
- Idioma padrão: português do Brasil (salvo pedido do usuário).
|
|
91
|
+
- Nunca inventar métricas, datas ou stakeholders — perguntar ou marcar como pendente.
|
|
92
|
+
|
|
93
|
+
## Etapas de execução
|
|
94
|
+
|
|
95
|
+
### 1. Carregar contexto
|
|
96
|
+
|
|
97
|
+
- Ler `$IDE/ENV.md` (pastas `PROD_*`, `SESSIONS_DIR`, `TASK_MANAGER`)
|
|
98
|
+
- Localizar e ler a spec pai (Documento de Requisitos de Produto e/ou Documento de Requisitos Funcionais)
|
|
99
|
+
- Resumir em 3–5 bullets o problema, valor e restrições (confirmar com o usuário se estiver incerto)
|
|
100
|
+
|
|
101
|
+
### 2. Detectar se precisa de clarify
|
|
102
|
+
|
|
103
|
+
Se houver ambiguidades bloqueantes (papéis, regras de negócio críticas, fora de escopo indefinido):
|
|
104
|
+
|
|
105
|
+
- Oferecer `$PROD_FLOWS/prod.spec.clarify.md`
|
|
106
|
+
- Só seguir no breakdown se o usuário confirmar
|
|
107
|
+
|
|
108
|
+
### 3. Propor a árvore de entregas
|
|
109
|
+
|
|
110
|
+
Montar rascunho interno (ainda sem gravar arquivo final):
|
|
111
|
+
|
|
112
|
+
```
|
|
113
|
+
Versão / Release
|
|
114
|
+
└── Épico (valor)
|
|
115
|
+
└── Histórias / tarefas (títulos)
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
Perguntar **uma coisa por vez** (usar AskUserQuestion se disponível; senão tabela A/B/C/D das prod-rules):
|
|
119
|
+
|
|
120
|
+
- Ordem de valor (o que aprender primeiro com usuários?)
|
|
121
|
+
- Quantas versões fazem sentido agora (evitar over-planning)
|
|
122
|
+
- Se alguma fatia é spike / risco técnico consciente
|
|
123
|
+
|
|
124
|
+
### 4. Validar o relacionamento
|
|
125
|
+
|
|
126
|
+
Mostrar a árvore ao usuário e **pedir confirmação explícita** antes de gravar o breakdown (o template exige isso).
|
|
127
|
+
|
|
128
|
+
### 5. Gerar o artefato
|
|
129
|
+
|
|
130
|
+
- Executar skill `prod-specs` com o template de breakdown
|
|
131
|
+
- Preencher resumo, lançamentos, épicos, dependências (seções opcionais só se o usuário pedir ou se forem críticas)
|
|
132
|
+
- Gravar em `$PROD_DOCS/...` (ou path acordado)
|
|
133
|
+
- Atualizar índice/docs existentes se o projeto já tiver índice de produto
|
|
134
|
+
|
|
135
|
+
### 6. Oferecer próximos comandos
|
|
136
|
+
|
|
137
|
+
Ao final, perguntar o que materializar agora:
|
|
138
|
+
|
|
139
|
+
| Opção | Comando |
|
|
140
|
+
|-------|---------|
|
|
141
|
+
| Criar o primeiro épico | `$PROD_FLOWS/prod.spec.epic.md` |
|
|
142
|
+
| Criar histórias da primeira fatia | `$PROD_FLOWS/prod.spec.issue.md` |
|
|
143
|
+
| Esclarecer um ramo ainda frouxo | `$PROD_FLOWS/prod.spec.clarify.md` |
|
|
144
|
+
| Ir para engenharia na fatia 1 | `/eng.start` (com `TASK_MANAGER_KEY`) |
|
|
145
|
+
|
|
146
|
+
## Do / Don’t
|
|
147
|
+
|
|
148
|
+
**Do**
|
|
149
|
+
|
|
150
|
+
- Manter rastreio ao documento pai
|
|
151
|
+
- Nomear fatias pelo resultado de usuário
|
|
152
|
+
- Deixar explícito o que **não** entra na versão 1
|
|
153
|
+
|
|
154
|
+
**Don’t**
|
|
155
|
+
|
|
156
|
+
- Transformar breakdown em lista de tarefas de infra sem história de valor
|
|
157
|
+
- Criar 15 épicos “por precaução”
|
|
158
|
+
- Copiar a spec pai inteira no arquivo de breakdown
|
|
159
|
+
- Confundir com `eng.breakdown-subtasks` (tech spec → subtarefas de código)
|
|
160
|
+
|
|
161
|
+
## Status
|
|
162
|
+
|
|
163
|
+
Itens criados ou referenciados devem respeitar `$ITEM_STATUS` das prod-rules (`icebox`, `in_review`, `backlog`, …). Breakdown recém-criado em geral nasce como `in_review` até o usuário priorizar a versão 1 (`backlog`).
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: prod.spec.clarify
|
|
3
|
+
description: Identificar áreas subespecificadas na especificação da feature atual fazendo até 5 perguntas de esclarecimento altamente direcionadas e incorporando as respostas de volta na spec.
|
|
4
|
+
auto_execution_mode: 3
|
|
5
|
+
env_file: "@/ENV.md"
|
|
6
|
+
recommended_model: gpt-4o
|
|
7
|
+
model_tier: medium
|
|
8
|
+
model_justification: Esclarecimento de specs requer análise estruturada e formulação de perguntas, mas segue processo bem definido
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## Clarify workflow
|
|
12
|
+
|
|
13
|
+
Detectar e reduzir ambiguidades ou pontos de decisão ausentes na especificação da feature ativa e registrar os esclarecimentos diretamente no arquivo da spec.
|
|
14
|
+
|
|
15
|
+
Rascunhos WIP (se houver) em `$SESSIONS_DIR/prod/{TASK_MANAGER_KEY}/`. O heading `### Session YYYY-MM-DD` é um log **dentro da spec canônica** — não é a pasta `$SESSIONS_DIR`.
|
|
16
|
+
|
|
17
|
+
Observação: Este workflow de esclarecimento deve ser executado (e concluído) ANTES da etapa de planejamento. Se o usuário declarar explicitamente que está pulando o esclarecimento (por exemplo, spike exploratório), você pode prosseguir, mas deve avisar que o risco de retrabalho posterior aumenta.
|
|
18
|
+
|
|
19
|
+
Utilize o que o usuário fornecer analisar em:
|
|
20
|
+
<requirement>
|
|
21
|
+
#$ARGUMENTS
|
|
22
|
+
</requirement>
|
|
23
|
+
|
|
24
|
+
Etapas de execução:
|
|
25
|
+
|
|
26
|
+
1. Carregue o arquivo atual da spec. Realize uma varredura estruturada de ambiguidades e cobertura usando esta taxonomia. Para cada categoria, marque o status: Claro / Parcial / Ausente. Produza um mapa de cobertura interno usado para priorização (não divulgue o mapa bruto a menos que nenhuma pergunta seja feita). Analise o arquivo da spec e realize uma cobertura apenas com os itens que estão incluídos na especificação do usuário.
|
|
27
|
+
|
|
28
|
+
Ao final do processo, peça ao usuário para confirmar o esclarecimento e liste os itens ausentes, perguntando se ele quer esclarecê-los.
|
|
29
|
+
|
|
30
|
+
Escopo Funcional & Comportamento:
|
|
31
|
+
- Principais objetivos do usuário & critérios de sucesso
|
|
32
|
+
- Declarações explícitas de fora de escopo
|
|
33
|
+
- Diferenciação de papéis / personas dos usuários
|
|
34
|
+
|
|
35
|
+
Domínio & Modelo de Dados:
|
|
36
|
+
- Entidades, atributos, relacionamentos
|
|
37
|
+
- Regras de identidade & unicidade
|
|
38
|
+
- Transições de ciclo de vida/estado
|
|
39
|
+
- Suposições de volume de dados / escala
|
|
40
|
+
|
|
41
|
+
Interação & Fluxo de UX:
|
|
42
|
+
- Jornadas / sequências críticas do usuário
|
|
43
|
+
- Estados de erro/vazio/carregamento
|
|
44
|
+
- Observações de acessibilidade ou localização
|
|
45
|
+
|
|
46
|
+
Atributos de Qualidade Não Funcionais:
|
|
47
|
+
- Desempenho (latência, metas de throughput)
|
|
48
|
+
- Escalabilidade (horizontal/vertical, limites)
|
|
49
|
+
- Confiabilidade & disponibilidade (expectativas de uptime e recuperação)
|
|
50
|
+
- Observabilidade (logging, métricas, sinais de tracing)
|
|
51
|
+
- Segurança & privacidade (authN/Z, proteção de dados, suposições de ameaça)
|
|
52
|
+
- Restrições de compliance / regulatórias (se houver)
|
|
53
|
+
|
|
54
|
+
Integração & Dependências Externas:
|
|
55
|
+
- Serviços/APIs externos e modos de falha
|
|
56
|
+
- Formatos de importação/exportação de dados
|
|
57
|
+
- Suposições de protocolo/versionamento
|
|
58
|
+
|
|
59
|
+
Casos Limite & Tratamento de Falhas:
|
|
60
|
+
- Cenários negativos
|
|
61
|
+
- Rate limiting / throttling
|
|
62
|
+
- Resolução de conflitos (por exemplo, edições simultâneas)
|
|
63
|
+
|
|
64
|
+
Restrições & Trade-offs:
|
|
65
|
+
- Restrições técnicas (linguagem, armazenamento, hospedagem)
|
|
66
|
+
- Trade-offs explícitos ou alternativas rejeitadas
|
|
67
|
+
|
|
68
|
+
Terminologia & Consistência:
|
|
69
|
+
- Termos de glossário canônicos
|
|
70
|
+
- Sinônimos evitados / termos obsoletos
|
|
71
|
+
|
|
72
|
+
Sinais de Conclusão:
|
|
73
|
+
- Testabilidade dos critérios de aceitação
|
|
74
|
+
- Indicadores mensuráveis de Definition of Done
|
|
75
|
+
|
|
76
|
+
Diversos / Placeholders:
|
|
77
|
+
- Marcadores TODO / decisões não resolvidas
|
|
78
|
+
- Adjetivos ambíguos (“robusto”, “intuitivo”) sem quantificação
|
|
79
|
+
|
|
80
|
+
Para cada categoria com status Parcial ou Ausente, adicione uma oportunidade de pergunta candidata, a menos que:
|
|
81
|
+
- O esclarecimento não altere materialmente a estratégia de implementação ou validação
|
|
82
|
+
- A informação seja melhor postergada para a fase de planejamento (anote internamente)
|
|
83
|
+
|
|
84
|
+
3. Gere (internamente) uma fila priorizada de perguntas de esclarecimento candidatas (máximo de 5). IMPORTANTE: Não as apresente todas de uma vez. Aplique estas restrições:
|
|
85
|
+
- Máximo de 10 perguntas no total ao longo de toda a sessão.
|
|
86
|
+
- Cada pergunta deve ser respondida COM:
|
|
87
|
+
- Uma seleção curta de múltipla escolha (2–5 opções distintas, mutuamente exclusivas), OU
|
|
88
|
+
- Uma resposta de uma palavra / frase curta (restrinja explicitamente: “Responda em <=5 palavras”).
|
|
89
|
+
- Inclua apenas perguntas cujas respostas impactem materialmente arquitetura, modelagem de dados, decomposição de tarefas, design de testes, comportamento de UX, prontidão operacional ou validação de compliance.
|
|
90
|
+
- Garanta equilíbrio de cobertura por categoria: tente cobrir primeiro as áreas não resolvidas de maior impacto; evite fazer duas perguntas de baixo impacto quando uma área de alto impacto (por exemplo, postura de segurança) está sem resolução.
|
|
91
|
+
- Exclua perguntas já respondidas, preferências estilísticas triviais ou detalhes de execução de planejamento (a menos que bloqueiem a correção).
|
|
92
|
+
- Priorize esclarecimentos que reduzam risco de retrabalho posterior ou evitem testes de aceitação desalinhados.
|
|
93
|
+
- Se mais de 5 categorias permanecerem sem resolução, selecione as 5 principais pelo critério heurístico (Impacto * Incerteza).
|
|
94
|
+
|
|
95
|
+
4. Loop de questionamento sequencial (interativo):
|
|
96
|
+
- Apresente EXATAMENTE UMA pergunta por vez.
|
|
97
|
+
- Se estivermos esclarecendo um PRD, não pergunte sobre microinterações. Deixe para esclarecer microinteração apenas na fase de criação de histórias e tarefas.
|
|
98
|
+
- Para perguntas de múltipla escolha:
|
|
99
|
+
- **Analise todas as opções** e determine a **opção mais adequada** com base em:
|
|
100
|
+
- Melhores práticas para o tipo de projeto
|
|
101
|
+
- Padrões comuns em implementações similares
|
|
102
|
+
- Redução de risco (segurança, desempenho, manutenibilidade)
|
|
103
|
+
- Alinhamento com quaisquer metas ou restrições explícitas do projeto visíveis na spec
|
|
104
|
+
- Apresente a **opção recomendada** de forma destacada no topo com uma explicação clara (1-2 frases explicando por que é a melhor escolha).
|
|
105
|
+
- Formate como: `**Recomendado:** Opção [X] - <justificativa>`
|
|
106
|
+
- Em seguida, renderize todas as opções em uma tabela Markdown:
|
|
107
|
+
|
|
108
|
+
| Option | Description |
|
|
109
|
+
|--------|-------------|
|
|
110
|
+
| A | <Descrição da Opção A> |
|
|
111
|
+
| B | <Descrição da Opção B> |
|
|
112
|
+
| C | <Descrição da Opção C> (adicione D/E conforme necessário até 5) |
|
|
113
|
+
| Short | Forneça uma resposta curta diferente (<=5 palavras) (Inclua somente se alternativa livre fizer sentido) |
|
|
114
|
+
|
|
115
|
+
- Após a tabela, adicione: `Você pode responder com a letra da opção (por exemplo, "A"), aceitar a recomendação dizendo "sim" ou "recomendado", ou fornecer sua própria resposta curta.`
|
|
116
|
+
- Para perguntas de resposta curta (sem opções discretas significativas):
|
|
117
|
+
- Forneça sua **resposta sugerida** com base nas melhores práticas e no contexto.
|
|
118
|
+
- Formate como: `**Sugerido:** <sua resposta proposta> - <breve justificativa>`
|
|
119
|
+
- Depois, escreva: `Formato: Resposta curta (<=5 palavras). Você pode aceitar a sugestão dizendo "sim" ou "sugerido", ou fornecer sua própria resposta.`
|
|
120
|
+
- Após o usuário responder:
|
|
121
|
+
- Se o usuário responder com “sim”, “recomendado” ou “sugerido”, use a recomendação/sugestão previamente apresentada como resposta.
|
|
122
|
+
- Caso contrário, valide se a resposta corresponde a uma opção ou se respeita a restrição de <=5 palavras.
|
|
123
|
+
- Se estiver ambígua, peça um rápido esclarecimento (conta ainda como a mesma pergunta; não avance).
|
|
124
|
+
- Assim que estiver satisfatória, registre-a na memória de trabalho (ainda sem gravar em disco) e avance para a próxima pergunta enfileirada.
|
|
125
|
+
- Pare de fazer perguntas adicionais quando:
|
|
126
|
+
- Todas as ambiguidades críticas forem resolvidas cedo (itens restantes na fila tornam-se desnecessários), OU
|
|
127
|
+
- O usuário sinalizar conclusão (“done”, “good”, “no more”), OU
|
|
128
|
+
- Você atingir 5 perguntas realizadas.
|
|
129
|
+
- Nunca revele previamente perguntas futuras na fila.
|
|
130
|
+
- Se não houver perguntas válidas no início, relate imediatamente que não existem ambiguidades críticas.
|
|
131
|
+
|
|
132
|
+
5. Integração após CADA resposta aceita (abordagem de atualização incremental):
|
|
133
|
+
- Mantenha uma representação em memória da spec (carregada uma única vez no início) além do conteúdo bruto do arquivo.
|
|
134
|
+
- Para a primeira resposta integrada nesta sessão:
|
|
135
|
+
- Garanta que exista uma seção `## Clarifications` (crie-a logo após a seção contextual/de visão geral de nível mais alto conforme o template da spec, se estiver ausente).
|
|
136
|
+
- Sob ela, crie (se não existir) um subtítulo `### Session YYYY-MM-DD` para hoje.
|
|
137
|
+
- Acrescente imediatamente após a aceitação um item em bullet: `- Q: <pergunta> → A: <resposta final>`.
|
|
138
|
+
- Em seguida, aplique a clarificação diretamente nas seções mais apropriadas:
|
|
139
|
+
- Ambiguidade funcional → Atualize ou adicione um bullet em Requisitos Funcionais.
|
|
140
|
+
- Interação do usuário / distinção de atores → Atualize a subseção de Histórias de Usuário ou Atores (se existir) com o papel, restrição ou cenário esclarecido.
|
|
141
|
+
- Forma de dados / entidades → Atualize o Modelo de Dados (adicione campos, tipos, relacionamentos) preservando a ordem; registre restrições adicionadas de forma sucinta.
|
|
142
|
+
- Restrição não funcional → Adicione/modifique critérios mensuráveis na seção de Não Funcionais / Atributos de Qualidade (converta adjetivos vagos em métricas ou metas explícitas).
|
|
143
|
+
- Caso limite / fluxo negativo → Acrescente um novo bullet em Casos Limite / Tratamento de Erros (ou crie tal subseção se o template tiver placeholder).
|
|
144
|
+
- Conflito de terminologia → Normalize o termo na spec; mantenha o original apenas se necessário adicionando `(anteriormente referido como "X")` uma única vez.
|
|
145
|
+
- Se o esclarecimento invalidar uma afirmação ambígua anterior, substitua essa afirmação em vez de duplicá-la; não deixe texto contraditório.
|
|
146
|
+
- Salve o arquivo da spec APÓS cada integração para minimizar risco de perda de contexto (sobrescrita atômica).
|
|
147
|
+
- Preserve a formatação: não reordene seções não relacionadas; mantenha a hierarquia de headings intacta.
|
|
148
|
+
- Mantenha cada clarificação inserida mínima e testável (evite desvio narrativo).
|
|
149
|
+
|
|
150
|
+
6. Validação (executada após CADA escrita e no passe final):
|
|
151
|
+
- A sessão de clarificações contém exatamente um bullet por resposta aceita (sem duplicatas).
|
|
152
|
+
- Total de perguntas feitas (aceitas) ≤ 5.
|
|
153
|
+
- Seções atualizadas não contêm placeholders vagos remanescentes que a nova resposta deveria resolver.
|
|
154
|
+
- Nenhuma afirmação anterior contraditória permanece (verifique se alternativas agora inválidas foram removidas).
|
|
155
|
+
- Estrutura Markdown válida; únicos headings novos permitidos: `## Clarifications`, `### Session YYYY-MM-DD`.
|
|
156
|
+
- Insira as sessões de esclarecimento após o bloco de Requisitos.
|
|
157
|
+
- Consistência de terminologia: mesmo termo canônico usado em todas as seções atualizadas.
|
|
158
|
+
|
|
159
|
+
7. Escreva a spec atualizada de volta em `FEATURE_SPEC`.
|
|
160
|
+
|
|
161
|
+
8. Informe a conclusão (após o término do loop de perguntas ou encerramento antecipado):
|
|
162
|
+
- Número de perguntas feitas & respondidas.
|
|
163
|
+
- Caminho para a spec atualizada.
|
|
164
|
+
- Seções tocadas (liste os nomes).
|
|
165
|
+
- Tabela de resumo de cobertura listando cada categoria da taxonomia com Status: Resolvido (era Parcial/Ausente e foi tratada), Adiado (excede a cota de perguntas ou melhor tratar no planejamento), Claro (já estava suficiente), Pendente (ainda Parcial/Ausente mas de baixo impacto).
|
|
166
|
+
- Se restarem itens Pendentes ou Adiados, recomende prosseguir para `/product/prod.spec.plan.md` ou rodar `/product/prod.spec.clarify.md` novamente após o planejamento.
|
|
167
|
+
- Próximo comando sugerido.
|
|
168
|
+
|
|
169
|
+
Regras de comportamento:
|
|
170
|
+
|
|
171
|
+
- Se nenhuma ambiguidade significativa for encontrada (ou se todas as perguntas potenciais forem de baixo impacto), responda: “Nenhuma ambiguidade crítica detectada que valha esclarecimento formal.” e sugira prosseguir.
|
|
172
|
+
- Se o arquivo da spec estiver ausente, instrua o usuário a rodar `/product/prod.spec.md` primeiro (não crie uma nova spec aqui).
|
|
173
|
+
- Nunca exceda 5 perguntas feitas no total (reformulações de uma mesma pergunta não contam como novas).
|
|
174
|
+
- Evite perguntas especulativas sobre stack tecnológica, a menos que a ausência bloqueie a clareza funcional.
|
|
175
|
+
- Respeite sinais de encerramento antecipado do usuário (“stop”, “done”, “proceed”).
|
|
176
|
+
- Se nenhuma pergunta for feita devido à cobertura completa, forneça um resumo de cobertura compacto (todas as categorias Claras) e sugira avançar.
|
|
177
|
+
- Se a cota for atingida com categorias de alto impacto ainda não resolvidas, destaque-as explicitamente como Adiadas com a justificativa.
|
|
178
|
+
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: prod.spec.epic
|
|
3
|
+
description: Fluxo de trabalho para criação de épicos que agrupam histórias de usuários e tarefas relacionadas seguindo as diretrizes do Product Spec Kit.
|
|
4
|
+
auto_execution_mode: 3
|
|
5
|
+
env_file: "@/ENV.md"
|
|
6
|
+
recommended_model: gpt-4o
|
|
7
|
+
model_tier: medium
|
|
8
|
+
model_justification: Criação de épicos segue templates estruturados e requer compreensão de contexto de produto
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Crie um fluxo de trabalho épico
|
|
12
|
+
|
|
13
|
+
Este fluxo de trabalho orienta você na criação de um épico usando `$PROD_TEMPLATES/prod-epic-template.md`. épicos agrupam histórias de usuários relacionadas que oferecem uma funcionalidade significativa.
|
|
14
|
+
|
|
15
|
+
Utilize o `$ARGUMENTS` que o usuário passar como ponto de partida e para entender o contexto do que foi pedido.
|
|
16
|
+
<requirement>
|
|
17
|
+
#$ARGUMENTS
|
|
18
|
+
</requirement>
|
|
19
|
+
|
|
20
|
+
## Quando usar
|
|
21
|
+
- Ao dividir grandes recursos ou PRDs em partes gerenciáveis
|
|
22
|
+
- Quando o trabalho abrange vários sprints ou iterações
|
|
23
|
+
- Ao coordenar o trabalho entre várias equipes
|
|
24
|
+
- Se precisar agrupar várias histórias ou tasks de um mesmo tema ou entrega
|
|
25
|
+
- Para recursos ou componentes principais que precisam de rastreamento em um nível superior
|
|
26
|
+
- Quando o usuári quiser criar um épico independente de especificações anteriores ou para projetos que já estão em andamento
|
|
27
|
+
|
|
28
|
+
## Pré-requisitos e opcionais
|
|
29
|
+
- Ter uma PRD existente ou requisitos de produto é importante, mas opcional. Questione o usuário se ele deseja criar um PRD ou se ele deseja criar um épico independente de especificações anteriores ou para projetos que já estão em andamento
|
|
30
|
+
- Ter um breakdown existente é importante, mas opcional. Questione o usuário se ele deseja criar um breakdown (siga o fluxo de trabalho `prod.spec.breakdown.md`) ou se ele deseja criar um épico independente de especificações anteriores ou para projetos que já estão em andamento
|
|
31
|
+
- Compreensão de alto nível da abordagem técnica
|
|
32
|
+
|
|
33
|
+
## Resultado final
|
|
34
|
+
- Por padrão, use o modelo `$PROD_TEMPLATES/prod-epic-template.md` integralmente
|
|
35
|
+
- Siga a estrutura do modelo exatamente como definida, não pule passos, a não ser que o usuário solicite explicitamente
|
|
36
|
+
- Nomeie o arquivo usando a convenção: `$PROD_DOCS/{epic-ID}-{epic-name}.md` (se não existir uma PRD para pegar o nome, ignore esse prefixo)
|
|
37
|
+
- O arquivo final deverá estar no mesmo idioma da interação do usuário
|
|
38
|
+
|
|
39
|
+
## Diretrizes do épico
|
|
40
|
+
- Concentre-se no “o que” e não no “como”
|
|
41
|
+
- Cada épico deve agregar valor independente
|
|
42
|
+
- Mantenha os épicos em um tamanho gerenciável (normalmente de 2 a 4 semanas de trabalho)
|
|
43
|
+
- Garantir critérios de aceitação claros, não levando para o micro interações de usuário (isso fica em histórias e tasks), mas sim na solução de alto nível, possibilitando que as histórias e tasks sejam criadas com base nessas informações
|
|
44
|
+
- Link para PRD relacionado ou iniciativa dos pais
|
|
45
|
+
|
|
46
|
+
## Etapas de execução
|
|
47
|
+
|
|
48
|
+
### 1. Validar pré-requisitos
|
|
49
|
+
Verifique se existe um PRD ou plano de detalhamento. Caso contrário, oriente o usuário a criar um primeiro usando o fluxo de trabalho apropriado.
|
|
50
|
+
|
|
51
|
+
### 2. Defina detalhes épicos
|
|
52
|
+
1. **Nome épico**: título claro e voltado para a ação
|
|
53
|
+
2. **Lançamento**: Lançamento associado (se aplicável)
|
|
54
|
+
3. **Contexto**: Antecedentes e importância
|
|
55
|
+
4. **Declaração do problema**: qual problema do usuário ou da empresa isso resolve
|
|
56
|
+
5. **Solução**: abordagem de alto nível para resolver o problema
|
|
57
|
+
|
|
58
|
+
### 3. Definir critérios de aceitação
|
|
59
|
+
- Definir 3-5 critérios de aceitação de alto nível
|
|
60
|
+
- Concentre-se nos resultados e não nos detalhes da implementação
|
|
61
|
+
- Garantir que os critérios sejam testáveis e mensuráveis
|
|
62
|
+
- Baseie-se nas necessidades do usuário, não em detalhes técnicos
|
|
63
|
+
|
|
64
|
+
### 4. Identifique histórias relacionadas
|
|
65
|
+
- Liste histórias de usuários conhecidas que pertencem a este épico
|
|
66
|
+
- Cada história deve ser valiosa de forma independente
|
|
67
|
+
- Incluir IDs de histórias e breves descrições
|
|
68
|
+
- Defina prioridades sempre que possível
|
|
69
|
+
|
|
70
|
+
### 5. Considerações técnicas do documento
|
|
71
|
+
- Principais decisões de arquitetura
|
|
72
|
+
- Dependências principais
|
|
73
|
+
- Considerações de desempenho
|
|
74
|
+
- Requisitos de segurança
|
|
75
|
+
|
|
76
|
+
## Melhores práticas
|
|
77
|
+
|
|
78
|
+
### Do
|
|
79
|
+
- Mantenha os épicos focados em um único objetivo
|
|
80
|
+
- Garantir que cada épico ofereça valor tangível
|
|
81
|
+
- Torne os critérios de aceitação claros e testáveis
|
|
82
|
+
- Alinhar com estratégia de produto e PRD
|
|
83
|
+
- Incluir as partes interessadas relevantes na revisão
|
|
84
|
+
|
|
85
|
+
### Don't
|
|
86
|
+
- Faça épicos muito grandes ou muito pequenos
|
|
87
|
+
- Incluir detalhes de implementação nos critérios de aceitação
|
|
88
|
+
- Esquecer de vincular a PRDs relacionados ou iniciativas dos pais
|
|
89
|
+
- Ignorar dependências técnicas
|
|
90
|
+
- Ignore o processo de revisão
|
|
91
|
+
|
|
92
|
+
## Integração com outros fluxos de trabalho
|
|
93
|
+
- **PRD**: os épicos devem estar alinhados aos requisitos do produto. Se não existir um PRD, oriente o usuário a criar um usando o fluxo em `prod.spec.prd.md` ou a fornecer mais informações para que o épico seja construído
|
|
94
|
+
- **Histórias**: eventualmente os épicos serão divididos em diversas histórias de usuários ou tasks, então, mantenha as informações de forma que isso seja possível
|
|
95
|
+
- **Sprints**: os épicos normalmente abrangem vários sprints ou semanas, abrangendo várias entregas menores em formatos de histórias e tasks
|
|
96
|
+
- **Problemas**: pode gerar tarefas ou bugs relacionados
|
|
97
|
+
|
|
98
|
+
## Próximas etapas
|
|
99
|
+
Depois de criar um épico, pergunte para o usuário:
|
|
100
|
+
1. Se o ele quer explorar ou modificar algum tópico do épico ou se aprova o conteúdo final
|
|
101
|
+
1. Escrever as histórias de usuário ou tasks relacionadas ao épico que forma planejadas e/ou que o usuário sugeriu. Utilize o fluxo de trabalho `prod.spec.issue.md`
|
|
102
|
+
|
|
103
|
+
## Atualize os docs
|
|
104
|
+
Após a aprovação do usuário:
|
|
105
|
+
1. Atualize a PRD com as alterações relacionadas ao épico
|
|
106
|
+
2. Atualize o arquivo de breakdown (plan) com as alterações relacionadas ao épico
|
|
107
|
+
|
|
108
|
+
## Busca no Central Docs (condicional)
|
|
109
|
+
|
|
110
|
+
Se `CENTRAL_DOCS_REPO` definido no ENV.md, antes de criar o épico:
|
|
111
|
+
|
|
112
|
+
- Executar busca automática no central-docs:
|
|
113
|
+
```bash
|
|
114
|
+
jarvis docs sync --silent
|
|
115
|
+
```
|
|
116
|
+
- Buscar PRD e épicos existentes relacionados usando o contexto do usuário
|
|
117
|
+
- Se PRD ou épico encontrado: carregar como contexto e informar o usuário
|
|
118
|
+
- Se não encontrado: continuar com fluxo normal
|
|
119
|
+
|
|
120
|
+
## Publicação no Central Docs (condicional)
|
|
121
|
+
|
|
122
|
+
Após salvar o épico localmente e obter aprovação do usuário:
|
|
123
|
+
|
|
124
|
+
1. Se `CENTRAL_DOCS_REPO` definido no ENV.md:
|
|
125
|
+
- Perguntar ao usuário:
|
|
126
|
+
```
|
|
127
|
+
Deseja publicar este épico no repositório central de documentação?
|
|
128
|
+
- ( ) Sim, publicar agora
|
|
129
|
+
- ( ) Não, vou publicar depois manualmente
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
2. Se **Sim**:
|
|
133
|
+
- Extrair o slug do nome do arquivo (ex: `epic-123-checkout.md` → `checkout`)
|
|
134
|
+
- Executar:
|
|
135
|
+
```bash
|
|
136
|
+
jarvis docs publish \
|
|
137
|
+
--file {caminho_do_epico} \
|
|
138
|
+
--tipo epic \
|
|
139
|
+
--feature {slug}
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
3. Informar resultado:
|
|
143
|
+
- ✅ Sucesso: "Épico publicado no central-docs. MR criado: [URL]"
|
|
144
|
+
- ❌ Erro: Exibir mensagem de erro e orientar troubleshooting
|
|
145
|
+
|
|
146
|
+
4. Se **Não**:
|
|
147
|
+
- Informar: "Para publicar depois, execute: `jarvis docs publish --file {caminho} --tipo epic --feature {slug}`"
|
|
148
|
+
|
|
149
|
+
> **Nota**: A publicação cria um Merge Request no GitLab. O épico só será visível no central-docs após aprovação e merge do MR.
|
|
150
|
+
|
|
151
|
+
Utilize o que o usuário fornecer analisar em:
|
|
152
|
+
<requirement>
|
|
153
|
+
#$ARGUMENTS
|
|
154
|
+
</requirement>
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: prod.spec.frd
|
|
3
|
+
description: Fluxo para criação de FRD (Feature Requirements Document), que auxilia na definição detalhada dos requisitos funcionais de uma feature
|
|
4
|
+
auto_execution_mode: 3
|
|
5
|
+
env_file: "@/ENV.md"
|
|
6
|
+
recommended_model: claude-sonnet-4-20250514
|
|
7
|
+
model_tier: high
|
|
8
|
+
model_justification: FRDs requerem análise detalhada de requisitos funcionais, comportamento de usuário e especificações técnicas
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# FRD - Functional Requirement Document
|
|
12
|
+
|
|
13
|
+
Este comando tem como objetivo criar, atualizar ou editar uma FRD seguindo o template especificado e as instruções.
|
|
14
|
+
|
|
15
|
+
Antes de iniciar, revise o arquivo de regras invioláveis em `$PROD_RULES/**/*`. Se você não estiver familiarizado com essa variável, leia as regras diretamente na pasta `.$IDE/rules/product/**/*.*`.
|
|
16
|
+
|
|
17
|
+
Utilize o `$ARGUMENTS` que o usuário passar como ponto de partida e para entender o contexto do que foi pedido.
|
|
18
|
+
<requirement>
|
|
19
|
+
#$ARGUMENTS
|
|
20
|
+
</requirement>
|
|
21
|
+
|
|
22
|
+
## Skills que devem ser usadas
|
|
23
|
+
|
|
24
|
+
Utilize a Skill tool para executar as skills necessárias:
|
|
25
|
+
|
|
26
|
+
- **Para gerar ou modificar especificações de produto** use a Skill tool para executar a skill `prod-specs` para gerar uma o output final de uma FRD de acordo com os padrões estabelecidos;
|
|
27
|
+
|
|
28
|
+
## Busca no Central Docs (condicional)
|
|
29
|
+
|
|
30
|
+
Se `CENTRAL_DOCS_REPO` definido no ENV.md:
|
|
31
|
+
|
|
32
|
+
1. **Buscar PRD correspondente:**
|
|
33
|
+
- Executar busca automática no central-docs:
|
|
34
|
+
```bash
|
|
35
|
+
jarvis docs sync --silent
|
|
36
|
+
```
|
|
37
|
+
- Buscar PRD relacionado usando:
|
|
38
|
+
- Nome/contexto fornecido pelo usuário
|
|
39
|
+
- Jira ID (se disponível)
|
|
40
|
+
- Tags semânticas
|
|
41
|
+
- Se PRD encontrado no central-docs:
|
|
42
|
+
- Carregar automaticamente como base para o FRD
|
|
43
|
+
- Informar ao usuário: "✅ PRD encontrado no central-docs: [nome]"
|
|
44
|
+
- Passar como contexto para a skill `prod-specs`
|
|
45
|
+
- Se não encontrado:
|
|
46
|
+
- Perguntar ao usuário se tem PRD localmente
|
|
47
|
+
- Continuar com fluxo normal
|
|
48
|
+
|
|
49
|
+
## Instruções
|
|
50
|
+
|
|
51
|
+
- Se o usuário forneceu ou está atuando em um projeto existente, priorize obter informações sobre o projeto a partir de:
|
|
52
|
+
- **Central-docs** (se configurado) - busca automática do PRD correspondente
|
|
53
|
+
- Documentação existente (README, docs/, PRDs, FRDs, ARDs, etc.)
|
|
54
|
+
- Commits recentes para entender o que está sendo desenvolvido
|
|
55
|
+
- Arquivos de AI como CLAUDE.md e AGENTS.md para obter informações estruturadas sobre o contexto do projeto/produto.
|
|
56
|
+
- Para fazer perguntas para o usuário, tente usar o tool `AskUserQuestion` se ele estiver disponível no seu ambiente
|
|
57
|
+
- Use a Skill tool para executar a skill `prod-specs` para gerar o output final de acordo com os padrões estabelecidos, enviando as informações que encontrou como contexto
|
|
58
|
+
- Quando receber output disponibilizado pela skill, mostre para o usuário o resultado final para a aprovação e validação.
|
|
59
|
+
- Quando confirmado e validado pelo usuário:
|
|
60
|
+
- Se o usuário estiver modificando ou atualizando uma spec existente, salve o arquivo modificado
|
|
61
|
+
- Se for uma spec nova:
|
|
62
|
+
- Salve na pasta `$PROD_DOCS` seguindo todos os padrões de nomenclatura e estrutura de pastas já estabelecidos em `$PROD_RULES/**/*`
|
|
63
|
+
|
|
64
|
+
## Publicação no Central Docs (condicional)
|
|
65
|
+
|
|
66
|
+
Após salvar o FRD localmente e obter aprovação do usuário:
|
|
67
|
+
|
|
68
|
+
1. Se `CENTRAL_DOCS_REPO` definido no ENV.md:
|
|
69
|
+
- Perguntar ao usuário:
|
|
70
|
+
```
|
|
71
|
+
Deseja publicar este FRD no repositório central de documentação?
|
|
72
|
+
- ( ) Sim, publicar agora
|
|
73
|
+
- ( ) Não, vou publicar depois manualmente
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
2. Se **Sim**:
|
|
77
|
+
- Extrair o slug do nome do arquivo (ex: `frd-wallet-saque.md` → `wallet-saque`)
|
|
78
|
+
- Executar:
|
|
79
|
+
```bash
|
|
80
|
+
jarvis docs publish \
|
|
81
|
+
--file {caminho_do_frd} \
|
|
82
|
+
--tipo frd \
|
|
83
|
+
--feature {slug}
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
3. Informar resultado:
|
|
87
|
+
- ✅ Sucesso: "FRD publicado no central-docs. MR criado: [URL]"
|
|
88
|
+
- ❌ Erro: Exibir mensagem de erro e orientar troubleshooting
|
|
89
|
+
|
|
90
|
+
4. Se **Não**:
|
|
91
|
+
- Informar: "Para publicar depois, execute: `jarvis docs publish --file {caminho} --tipo frd --feature {slug}`"
|
|
92
|
+
|
|
93
|
+
5. Se `CENTRAL_DOCS_REPO` não estiver definido:
|
|
94
|
+
- Informar: "Para habilitar publicação automática, configure `CENTRAL_DOCS_REPO` no ENV.md"
|
|
95
|
+
|
|
96
|
+
> **Nota**: A publicação cria um Merge Request no GitLab. O FRD só será visível no central-docs após aprovação e merge do MR.
|