@onion-architect-ai/cli 4.1.0-beta.4 → 4.1.0-beta.5
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/dist/cli.js +1 -1
- package/dist/cli.js.map +1 -1
- package/package.json +1 -1
- package/templates/.cursor/agents/development/c4-architecture-specialist.md +712 -0
- package/templates/.cursor/agents/development/c4-documentation-specialist.md +658 -0
- package/templates/.cursor/agents/development/clickup-specialist.md +397 -0
- package/templates/.cursor/agents/development/cursor-specialist.md +249 -0
- package/templates/.cursor/agents/development/docs-reverse-engineer.md +418 -0
- package/templates/.cursor/agents/development/gamma-api-specialist.md +1169 -0
- package/templates/.cursor/agents/development/gitflow-specialist.md +1207 -0
- package/templates/.cursor/agents/development/linux-security-specialist.md +676 -0
- package/templates/.cursor/agents/development/mermaid-specialist.md +516 -0
- package/templates/.cursor/agents/development/nodejs-specialist.md +673 -0
- package/templates/.cursor/agents/development/nx-migration-specialist.md +867 -0
- package/templates/.cursor/agents/development/nx-monorepo-specialist.md +619 -0
- package/templates/.cursor/agents/development/postgres-specialist.md +1124 -0
- package/templates/.cursor/agents/development/react-developer.md +132 -0
- package/templates/.cursor/agents/development/runflow-specialist.md +278 -0
- package/templates/.cursor/agents/development/system-documentation-orchestrator.md +1388 -0
- package/templates/.cursor/agents/development/task-specialist.md +618 -0
- package/templates/.cursor/agents/development/whisper-specialist.md +373 -0
- package/templates/.cursor/agents/development/zen-engine-specialist.md +421 -0
- package/templates/.cursor/agents/git/branch-code-reviewer.md +200 -0
- package/templates/.cursor/agents/git/branch-documentation-writer.md +162 -0
- package/templates/.cursor/agents/git/branch-metaspec-checker.md +68 -0
- package/templates/.cursor/agents/git/branch-test-planner.md +177 -0
- package/templates/.cursor/agents/product/branding-positioning-specialist.md +1030 -0
- package/templates/.cursor/agents/product/extract-meeting-specialist.md +395 -0
- package/templates/.cursor/agents/product/meeting-consolidator.md +483 -0
- package/templates/.cursor/agents/product/pain-price-specialist.md +509 -0
- package/templates/.cursor/agents/product/presentation-orchestrator.md +1191 -0
- package/templates/.cursor/agents/product/product-agent.md +202 -0
- package/templates/.cursor/agents/product/story-points-framework-specialist.md +539 -0
- package/templates/.cursor/agents/product/storytelling-business-specialist.md +891 -0
- package/templates/.cursor/agents/review/code-reviewer.md +155 -0
- package/templates/.cursor/agents/testing/test-agent.md +425 -0
- package/templates/.cursor/agents/testing/test-engineer.md +295 -0
- package/templates/.cursor/agents/testing/test-planner.md +118 -0
- package/templates/.cursor/commands/docs/build-business-docs.md +276 -0
- package/templates/.cursor/commands/docs/build-index.md +128 -0
- package/templates/.cursor/commands/docs/build-tech-docs.md +204 -0
- package/templates/.cursor/commands/docs/consolidate-documents.md +424 -0
- package/templates/.cursor/commands/docs/docs-health.md +142 -0
- package/templates/.cursor/commands/docs/help.md +306 -0
- package/templates/.cursor/commands/docs/refine-vision.md +27 -0
- package/templates/.cursor/commands/docs/reverse-consolidate.md +160 -0
- package/templates/.cursor/commands/docs/sync-sessions.md +320 -0
- package/templates/.cursor/commands/docs/validate-docs.md +159 -0
- package/templates/.cursor/commands/engineer/bump.md +43 -0
- package/templates/.cursor/commands/engineer/docs.md +39 -0
- package/templates/.cursor/commands/engineer/help.md +329 -0
- package/templates/.cursor/commands/engineer/hotfix.md +186 -0
- package/templates/.cursor/commands/engineer/plan.md +111 -0
- package/templates/.cursor/commands/engineer/pr-update.md +198 -0
- package/templates/.cursor/commands/engineer/pr.md +136 -0
- package/templates/.cursor/commands/engineer/pre-pr.md +91 -0
- package/templates/.cursor/commands/engineer/start.md +266 -0
- package/templates/.cursor/commands/engineer/validate-phase-sync.md +118 -0
- package/templates/.cursor/commands/engineer/warm-up.md +173 -0
- package/templates/.cursor/commands/engineer/work.md +169 -0
- package/templates/.cursor/commands/git/code-review.md +215 -0
- package/templates/.cursor/commands/git/fast-commit.md +45 -0
- package/templates/.cursor/commands/git/feature/finish.md +90 -0
- package/templates/.cursor/commands/git/feature/publish.md +91 -0
- package/templates/.cursor/commands/git/feature/start.md +158 -0
- package/templates/.cursor/commands/git/help.md +306 -0
- package/templates/.cursor/commands/git/hotfix/finish.md +98 -0
- package/templates/.cursor/commands/git/hotfix/start.md +94 -0
- package/templates/.cursor/commands/git/init.md +139 -0
- package/templates/.cursor/commands/git/release/finish.md +98 -0
- package/templates/.cursor/commands/git/release/start.md +95 -0
- package/templates/.cursor/commands/git/sync.md +228 -0
- package/templates/.cursor/commands/global/help.md +388 -0
- package/templates/.cursor/commands/product/analyze-pain-price.md +709 -0
- package/templates/.cursor/commands/product/branding.md +460 -0
- package/templates/.cursor/commands/product/check.md +48 -0
- package/templates/.cursor/commands/product/checklist-sync.md +241 -0
- package/templates/.cursor/commands/product/collect.md +96 -0
- package/templates/.cursor/commands/product/consolidate-meetings.md +306 -0
- package/templates/.cursor/commands/product/convert-to-tasks.md +220 -0
- package/templates/.cursor/commands/product/estimate.md +519 -0
- package/templates/.cursor/commands/product/extract-meeting.md +241 -0
- package/templates/.cursor/commands/product/feature.md +431 -0
- package/templates/.cursor/commands/product/help.md +212 -0
- package/templates/.cursor/commands/product/light-arch.md +97 -0
- package/templates/.cursor/commands/product/presentation.md +189 -0
- package/templates/.cursor/commands/product/refine.md +186 -0
- package/templates/.cursor/commands/product/spec.md +107 -0
- package/templates/.cursor/commands/product/task-check.md +340 -0
- package/templates/.cursor/commands/product/task.md +585 -0
- package/templates/.cursor/commands/product/transform-consolidated.md +592 -0
- package/templates/.cursor/commands/product/validate-task.md +294 -0
- package/templates/.cursor/commands/product/warm-up.md +187 -0
- package/templates/.cursor/commands/product/whisper.md +325 -0
- package/templates/.cursor/commands/test/e2e.md +392 -0
- package/templates/.cursor/commands/test/integration.md +523 -0
- package/templates/.cursor/commands/test/unit.md +378 -0
|
@@ -0,0 +1,241 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: extract-meeting
|
|
3
|
+
description: |
|
|
4
|
+
Extração estruturada de conhecimento de transcrições de reuniões usando Framework EXTRACT.
|
|
5
|
+
Use para transformar arquivos de contexto bruto em artefatos de alto valor para humanos, sistemas e IA.
|
|
6
|
+
model: sonnet
|
|
7
|
+
|
|
8
|
+
parameters:
|
|
9
|
+
- name: source
|
|
10
|
+
description: Caminho do arquivo ou pasta com transcrição(ões)
|
|
11
|
+
required: true
|
|
12
|
+
- name: level
|
|
13
|
+
description: Nível de output (compact, executive, complete, graph)
|
|
14
|
+
required: false
|
|
15
|
+
- name: focus
|
|
16
|
+
description: Foco específico (decisions, tasks, gaps, all)
|
|
17
|
+
required: false
|
|
18
|
+
|
|
19
|
+
category: product
|
|
20
|
+
tags:
|
|
21
|
+
- meeting
|
|
22
|
+
- extraction
|
|
23
|
+
- knowledge-base
|
|
24
|
+
- documentation
|
|
25
|
+
|
|
26
|
+
version: "4.0.0"
|
|
27
|
+
updated: "2025-12-20"
|
|
28
|
+
|
|
29
|
+
related_commands:
|
|
30
|
+
- /product/task
|
|
31
|
+
- /docs/build-tech-docs
|
|
32
|
+
- /meta/create-knowledge-base
|
|
33
|
+
|
|
34
|
+
related_agents:
|
|
35
|
+
- extract-meeting-specialist
|
|
36
|
+
- product-agent
|
|
37
|
+
- task-specialist
|
|
38
|
+
|
|
39
|
+
knowledge_bases:
|
|
40
|
+
- docs/knowbase/concepts/meeting-transcription-to-knowledge-base.md
|
|
41
|
+
level: intermediate
|
|
42
|
+
context: business
|
|
43
|
+
---
|
|
44
|
+
|
|
45
|
+
# 📋 Extrair Conhecimento de Reunião
|
|
46
|
+
|
|
47
|
+
Transformação de transcrições brutas em conhecimento estruturado usando o Framework EXTRACT.
|
|
48
|
+
|
|
49
|
+
## 🎯 Objetivo
|
|
50
|
+
|
|
51
|
+
Processar transcrições de reuniões e gerar outputs estruturados consumíveis por humanos, sistemas e IA, seguindo as 7 dimensões do Framework EXTRACT.
|
|
52
|
+
|
|
53
|
+
## ⚡ Fluxo de Execução
|
|
54
|
+
|
|
55
|
+
### Passo 1: Validar Input
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
# Verificar se source existe
|
|
59
|
+
test -e "{{source}}" || echo "❌ Arquivo/pasta não encontrado"
|
|
60
|
+
|
|
61
|
+
# Identificar tipo (arquivo ou pasta)
|
|
62
|
+
if [ -d "{{source}}" ]; then
|
|
63
|
+
echo "📁 Processando pasta com múltiplos arquivos"
|
|
64
|
+
FILES=$(find "{{source}}" -type f \( -name "*.txt" -o -name "*.md" \))
|
|
65
|
+
else
|
|
66
|
+
echo "📄 Processando arquivo único"
|
|
67
|
+
FILES="{{source}}"
|
|
68
|
+
fi
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
### Passo 2: Ler Conteúdo
|
|
72
|
+
|
|
73
|
+
```bash
|
|
74
|
+
# Ler transcrição(ões)
|
|
75
|
+
read_file "{{source}}"
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
### Passo 3: Aplicar Framework EXTRACT
|
|
79
|
+
|
|
80
|
+
Invocar `@extract-meeting-specialist` com instruções:
|
|
81
|
+
|
|
82
|
+
```markdown
|
|
83
|
+
## Tarefa
|
|
84
|
+
Processar a transcrição abaixo aplicando o Framework EXTRACT completo.
|
|
85
|
+
|
|
86
|
+
## Framework EXTRACT (7 Dimensões)
|
|
87
|
+
- **E**ssência: Resumo executivo em 3 linhas
|
|
88
|
+
- **X**pectativas: Objetivos da reunião e status (atingido/parcial/não)
|
|
89
|
+
- **T**arefas: Ações definidas (quem, o quê, quando)
|
|
90
|
+
- **R**esoluções: Decisões tomadas com justificativa
|
|
91
|
+
- **A**mbiguidades: Gaps, contradições, pontos não resolvidos
|
|
92
|
+
- **C**onexões: Dependências, stakeholders, documentos relacionados
|
|
93
|
+
- **T**imeline: Datas e marcos mencionados
|
|
94
|
+
|
|
95
|
+
## Nível de Output
|
|
96
|
+
{{level}} (default: executive)
|
|
97
|
+
|
|
98
|
+
## Foco
|
|
99
|
+
{{focus}} (default: all)
|
|
100
|
+
|
|
101
|
+
## Regras
|
|
102
|
+
1. NUNCA inventar informações — usar [INFERIDO] ou [NÃO ESPECIFICADO]
|
|
103
|
+
2. Indicar confidence level em decisões (high/medium/low)
|
|
104
|
+
3. Capturar TODOS os gaps — o que NÃO foi decidido é crítico
|
|
105
|
+
4. Tasks devem ter owner + deadline sempre que possível
|
|
106
|
+
5. Preservar citações importantes entre aspas
|
|
107
|
+
|
|
108
|
+
## Transcrição
|
|
109
|
+
[CONTEÚDO DO ARQUIVO]
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
### Passo 4: Gerar Output
|
|
113
|
+
|
|
114
|
+
**Nível `compact`:**
|
|
115
|
+
```markdown
|
|
116
|
+
## Reunião: [Título] | [Data]
|
|
117
|
+
**Decisão**: [Principal decisão]
|
|
118
|
+
**Ações**: [Nome] faz [quê] até [quando]
|
|
119
|
+
**Pendente**: [Principal gap]
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
**Nível `executive`:**
|
|
123
|
+
```markdown
|
|
124
|
+
## [Título] - [Data]
|
|
125
|
+
|
|
126
|
+
### Resumo
|
|
127
|
+
[3-5 linhas]
|
|
128
|
+
|
|
129
|
+
### Decisões
|
|
130
|
+
- ✅ [Decisão 1]
|
|
131
|
+
- ✅ [Decisão 2]
|
|
132
|
+
|
|
133
|
+
### Ações
|
|
134
|
+
| Responsável | Ação | Prazo |
|
|
135
|
+
|-------------|------|-------|
|
|
136
|
+
| [Nome] | [Descrição] | [Data] |
|
|
137
|
+
|
|
138
|
+
### Pendências
|
|
139
|
+
- ⚠️ [Gap 1]
|
|
140
|
+
- ⚠️ [Gap 2]
|
|
141
|
+
|
|
142
|
+
### Timeline
|
|
143
|
+
- 📅 [Data]: [Marco]
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
**Nível `complete`:**
|
|
147
|
+
Output YAML completo seguindo schema do knowledge base.
|
|
148
|
+
|
|
149
|
+
**Nível `graph`:**
|
|
150
|
+
JSON com entidades e relacionamentos para sistemas.
|
|
151
|
+
|
|
152
|
+
### Passo 5: Salvar Resultado
|
|
153
|
+
|
|
154
|
+
```bash
|
|
155
|
+
# Determinar nome do output
|
|
156
|
+
OUTPUT_NAME=$(basename "{{source}}" | sed 's/\.[^.]*$//')
|
|
157
|
+
OUTPUT_FILE="docs/meetings/${OUTPUT_NAME}-extract.md"
|
|
158
|
+
|
|
159
|
+
# Criar diretório se não existir
|
|
160
|
+
mkdir -p docs/meetings/
|
|
161
|
+
|
|
162
|
+
# Salvar
|
|
163
|
+
write "${OUTPUT_FILE}"
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
## 📤 Output Esperado
|
|
167
|
+
|
|
168
|
+
```
|
|
169
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
170
|
+
✅ EXTRAÇÃO CONCLUÍDA
|
|
171
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
172
|
+
|
|
173
|
+
📁 Arquivo: docs/meetings/[nome]-extract.md
|
|
174
|
+
|
|
175
|
+
📊 Extração EXTRACT:
|
|
176
|
+
∟ Essência: ✅
|
|
177
|
+
∟ Expectativas: ✅
|
|
178
|
+
∟ Tarefas: [N] itens
|
|
179
|
+
∟ Resoluções: [N] decisões
|
|
180
|
+
∟ Ambiguidades: [N] gaps
|
|
181
|
+
∟ Conexões: [N] links
|
|
182
|
+
∟ Timeline: [N] datas
|
|
183
|
+
|
|
184
|
+
📈 Qualidade:
|
|
185
|
+
∟ Confidence Score: [0.X]
|
|
186
|
+
∟ Tasks com Owner: [X]%
|
|
187
|
+
∟ Tasks com Deadline: [X]%
|
|
188
|
+
∟ Gaps com Owner Sugerido: [X]%
|
|
189
|
+
|
|
190
|
+
🚀 Próximos Passos:
|
|
191
|
+
1. Revisar gaps críticos
|
|
192
|
+
2. Validar decisões com participantes
|
|
193
|
+
3. Criar tasks no gerenciador (@task-specialist)
|
|
194
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
## 🎯 Exemplos de Uso
|
|
198
|
+
|
|
199
|
+
```bash
|
|
200
|
+
# Extrair reunião específica (nível executivo default)
|
|
201
|
+
/product/extract-meeting source=rhilo-reuniao-28-nov.txt
|
|
202
|
+
|
|
203
|
+
# Nível completo com YAML
|
|
204
|
+
/product/extract-meeting source=reuniao.txt level=complete
|
|
205
|
+
|
|
206
|
+
# Foco apenas em decisões
|
|
207
|
+
/product/extract-meeting source=reuniao.txt focus=decisions
|
|
208
|
+
|
|
209
|
+
# Processar pasta de contexto
|
|
210
|
+
/product/extract-meeting source=contextos/projeto-x/
|
|
211
|
+
|
|
212
|
+
# Gerar grafo para sistemas
|
|
213
|
+
/product/extract-meeting source=reuniao.txt level=graph
|
|
214
|
+
```
|
|
215
|
+
|
|
216
|
+
## 🔗 Referências
|
|
217
|
+
|
|
218
|
+
- **Agente**: `@extract-meeting-specialist`
|
|
219
|
+
- **Knowledge Base**: `docs/knowbase/concepts/meeting-transcription-to-knowledge-base.md`
|
|
220
|
+
- **Framework**: EXTRACT (7 dimensões)
|
|
221
|
+
|
|
222
|
+
## ⚠️ Notas
|
|
223
|
+
|
|
224
|
+
- Processar em até 24h após reunião (contexto fresco)
|
|
225
|
+
- Validar decisões críticas com participantes
|
|
226
|
+
- Gaps são tão importantes quanto decisões
|
|
227
|
+
- Para criar tasks automaticamente, usar `@task-specialist` após extração
|
|
228
|
+
|
|
229
|
+
|
|
230
|
+
|
|
231
|
+
---
|
|
232
|
+
|
|
233
|
+
## 📚 Pré-requisitos
|
|
234
|
+
|
|
235
|
+
Domine comandos starter antes de usar este comando intermediate/advanced.
|
|
236
|
+
|
|
237
|
+
Consulte os comandos help para ver hierarquia completa:
|
|
238
|
+
- /business/help --level=starter
|
|
239
|
+
- /technical/help --level=starter
|
|
240
|
+
|
|
241
|
+
💡 Comandos intermediate/advanced assumem familiaridade com workflows básicos.
|
|
@@ -0,0 +1,431 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: feature
|
|
3
|
+
description: Criar task de feature no gerenciador configurado para planejamento e backlog.
|
|
4
|
+
model: sonnet
|
|
5
|
+
category: product
|
|
6
|
+
tags: [feature, task-manager, backlog]
|
|
7
|
+
version: "4.0.0"
|
|
8
|
+
updated: "2025-12-20"
|
|
9
|
+
|
|
10
|
+
related_commands:
|
|
11
|
+
- /product/estimate
|
|
12
|
+
- /product/task
|
|
13
|
+
|
|
14
|
+
related_agents:
|
|
15
|
+
- story-points-framework-specialist
|
|
16
|
+
- product-agent
|
|
17
|
+
level: intermediate
|
|
18
|
+
context: business
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
# 🎯 Criar Feature - Task para Planejamento
|
|
22
|
+
|
|
23
|
+
Você é um assistente de IA especializado em **criar tasks de feature no gerenciador configurado (via Task Manager abstraction) para planejamento e backlog** seguindo o padrão do Sistema Onion. Seu papel é criar tasks de backlog para organização e priorização sem iniciar desenvolvimento.
|
|
24
|
+
|
|
25
|
+
## 🎯 **Funcionalidades**
|
|
26
|
+
|
|
27
|
+
### **📋 Criar Task Backlog:**
|
|
28
|
+
- Criar task no gerenciador configurado com tag "backlog"
|
|
29
|
+
- Status: "Backlog" (aguardando planejamento e priorização)
|
|
30
|
+
- Projeto/Lista: Mesmo projeto da sessão atual ou projeto padrão
|
|
31
|
+
- Auto-detecção de contexto e projeto via Task Manager
|
|
32
|
+
|
|
33
|
+
### **🔗 Integração Inteligente:**
|
|
34
|
+
- Auto-detecção do projeto/lista atual via Task Manager
|
|
35
|
+
- Herda contexto da sessão ativa (se houver)
|
|
36
|
+
- Links com tasks relacionadas
|
|
37
|
+
- Tags apropriadas para categorização
|
|
38
|
+
- Suporta múltiplos provedores (ClickUp, Asana, Linear)
|
|
39
|
+
|
|
40
|
+
---
|
|
41
|
+
|
|
42
|
+
## 🚀 **Uso do Comando**
|
|
43
|
+
|
|
44
|
+
### **Sintaxe:**
|
|
45
|
+
```bash
|
|
46
|
+
/product/feature "nome-ou-descrição-da-feature"
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
### **Examples:**
|
|
50
|
+
```bash
|
|
51
|
+
/product/feature "implementar-autenticacao-oauth"
|
|
52
|
+
/product/feature "adicionar-filtros-avancados-dashboard"
|
|
53
|
+
/product/feature "integrar-payment-gateway-stripe"
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
---
|
|
57
|
+
|
|
58
|
+
## ⚙️ **Workflow Automático**
|
|
59
|
+
|
|
60
|
+
### **1. Validação de Parâmetros**
|
|
61
|
+
```bash
|
|
62
|
+
# Verificar se nome da feature foi fornecido
|
|
63
|
+
if [ "$#" -eq 0 ]; then
|
|
64
|
+
echo "❌ ERROR: Feature name required"
|
|
65
|
+
echo "📖 USAGE: /product/feature \"feature-name-or-description\""
|
|
66
|
+
echo ""
|
|
67
|
+
echo "💡 EXAMPLES:"
|
|
68
|
+
echo " /product/feature \"implement-oauth-authentication\""
|
|
69
|
+
echo " /product/feature \"add-advanced-dashboard-filters\""
|
|
70
|
+
exit 1
|
|
71
|
+
fi
|
|
72
|
+
|
|
73
|
+
FEATURE_NAME="$1"
|
|
74
|
+
# Sanitizar nome da feature (remover caracteres especiais)
|
|
75
|
+
FEATURE_SLUG=$(echo "$FEATURE_NAME" | sed 's/[^a-zA-Z0-9]/-/g' | tr '[:upper:]' '[:lower:]' | sed 's/--*/-/g' | sed 's/^-\\|-$//g')
|
|
76
|
+
|
|
77
|
+
echo "🎯 Creating feature planning task: $FEATURE_NAME"
|
|
78
|
+
echo "📝 Feature slug: $FEATURE_SLUG"
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
### **2. Detecção de Contexto via Task Manager**
|
|
82
|
+
|
|
83
|
+
**IMPORTANTE:** Use Task Manager abstraction para detectar contexto independente do provedor:
|
|
84
|
+
|
|
85
|
+
```typescript
|
|
86
|
+
// Via abstração - funciona para qualquer provedor (ClickUp, Asana, Linear)
|
|
87
|
+
const taskManager = getTaskManager();
|
|
88
|
+
|
|
89
|
+
// Detectar projeto/lista da sessão atual
|
|
90
|
+
function getCurrentProjectId() {
|
|
91
|
+
// Tentar obter de sessão ativa
|
|
92
|
+
const sessionContext = readSessionContext();
|
|
93
|
+
if (sessionContext?.taskId) {
|
|
94
|
+
const currentTask = await taskManager.getTask(sessionContext.taskId);
|
|
95
|
+
if (currentTask?.projectId) {
|
|
96
|
+
return currentTask.projectId;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
// Fallback: usar projeto padrão configurado
|
|
101
|
+
return taskManager.defaultProjectId;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
const projectId = getCurrentProjectId();
|
|
105
|
+
console.log(`📋 Target project/list ID: ${projectId}`);
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
**Nota:** Se o comando ainda usar código bash direto, atualizar para usar Task Manager abstraction quando possível.
|
|
109
|
+
|
|
110
|
+
### **3. Criação da Task via Task Manager**
|
|
111
|
+
```bash
|
|
112
|
+
# Preparar dados da task
|
|
113
|
+
TASK_TITLE="🚀 $FEATURE_NAME"
|
|
114
|
+
|
|
115
|
+
# Descrição da task com contexto
|
|
116
|
+
TASK_DESCRIPTION="## 🎯 **Feature para Planejamento**
|
|
117
|
+
|
|
118
|
+
**Tipo**: Feature Development
|
|
119
|
+
**Status**: Backlog - Aguardando planejamento e priorização
|
|
120
|
+
**Criada via**: /product/feature
|
|
121
|
+
|
|
122
|
+
---
|
|
123
|
+
|
|
124
|
+
## 📋 **Descrição**
|
|
125
|
+
$FEATURE_NAME
|
|
126
|
+
|
|
127
|
+
---
|
|
128
|
+
|
|
129
|
+
## 🔄 **Workflow de Desenvolvimento**
|
|
130
|
+
|
|
131
|
+
### **Para Iniciar Desenvolvimento:**
|
|
132
|
+
\`\`\`bash
|
|
133
|
+
# Após planejamento, iniciar desenvolvimento GitFlow:
|
|
134
|
+
/git/feature/start \"$FEATURE_SLUG\"
|
|
135
|
+
|
|
136
|
+
# Ou usar sessão de desenvolvimento:
|
|
137
|
+
/engineer/start $FEATURE_SLUG
|
|
138
|
+
\`\`\`
|
|
139
|
+
|
|
140
|
+
### **Workflow Sequencial Recomendado:**
|
|
141
|
+
1. **🎯 Planejamento**: Task criada (atual) + detalhamento
|
|
142
|
+
2. **🌿 Desenvolvimento**: /git/feature/start $FEATURE_SLUG
|
|
143
|
+
3. **🛠️ Iteração**: /engineer/work
|
|
144
|
+
4. **🔄 Finalização**: /git/sync
|
|
145
|
+
5. **🚀 Deploy**: /engineer/pr
|
|
146
|
+
|
|
147
|
+
---
|
|
148
|
+
|
|
149
|
+
## 📊 **Critérios de Aceitação**
|
|
150
|
+
- [ ] Requisitos funcionais detalhados
|
|
151
|
+
- [ ] Mockups ou wireframes definidos
|
|
152
|
+
- [ ] Critérios de aceitação específicos
|
|
153
|
+
- [ ] Estimativas de esforço
|
|
154
|
+
- [ ] Dependências identificadas
|
|
155
|
+
- [ ] Prioridade definida no roadmap
|
|
156
|
+
|
|
157
|
+
### **Para Desenvolvimento:**
|
|
158
|
+
- [ ] Funcionalidade implementada conforme especificação
|
|
159
|
+
- [ ] Testes unitários criados
|
|
160
|
+
- [ ] Documentação atualizada
|
|
161
|
+
- [ ] Code review aprovado
|
|
162
|
+
- [ ] Deploy em ambiente de teste
|
|
163
|
+
|
|
164
|
+
---
|
|
165
|
+
|
|
166
|
+
## 🏷️ **Tags e Categorização**
|
|
167
|
+
- **Type**: feature
|
|
168
|
+
- **Status**: backlog
|
|
169
|
+
- **Priority**: medium (ajustar conforme roadmap)
|
|
170
|
+
- **Phase**: planning
|
|
171
|
+
|
|
172
|
+
**Criada automaticamente pelo Sistema Onion** 🧅"
|
|
173
|
+
|
|
174
|
+
# Criar task via Task Manager abstraction
|
|
175
|
+
console.log("🚀 Creating feature planning task via Task Manager...");
|
|
176
|
+
|
|
177
|
+
const taskManager = getTaskManager();
|
|
178
|
+
const task = await taskManager.createTask({
|
|
179
|
+
name: TASK_TITLE,
|
|
180
|
+
projectId: projectId,
|
|
181
|
+
markdownDescription: TASK_DESCRIPTION,
|
|
182
|
+
status: 'backlog',
|
|
183
|
+
priority: 'medium',
|
|
184
|
+
tags: ['feature', 'backlog', 'planning']
|
|
185
|
+
});
|
|
186
|
+
|
|
187
|
+
const TASK_ID = task.id;
|
|
188
|
+
console.log(`✅ Task created: ${TASK_ID}`);
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
### **4. Estimar Story Points (Automático)**
|
|
192
|
+
|
|
193
|
+
**CRÍTICO:** Após criar task, SEMPRE estimar story points automaticamente.
|
|
194
|
+
|
|
195
|
+
```markdown
|
|
196
|
+
@story-points-framework-specialist
|
|
197
|
+
|
|
198
|
+
Por favor, analise e estime a seguinte feature de backlog:
|
|
199
|
+
|
|
200
|
+
**Feature:** $FEATURE_NAME
|
|
201
|
+
**Descrição:** [descrição da feature]
|
|
202
|
+
**Status:** Backlog (planejamento inicial)
|
|
203
|
+
|
|
204
|
+
Forneça estimativa inicial de story points para planejamento.
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
**Atualizar Task com Estimativa:**
|
|
208
|
+
|
|
209
|
+
```bash
|
|
210
|
+
# Obter estimativa via agente
|
|
211
|
+
ESTIMATE_RESPONSE=$(invoke_agent_story_points "$FEATURE_NAME")
|
|
212
|
+
|
|
213
|
+
# Extrair story points
|
|
214
|
+
STORY_POINTS=$(echo "$ESTIMATE_RESPONSE" | extract_story_points)
|
|
215
|
+
|
|
216
|
+
# Atualizar task com custom field Story Points
|
|
217
|
+
if [ "$STORY_POINTS" != "" ]; then
|
|
218
|
+
echo "📊 Updating task with story points: $STORY_POINTS"
|
|
219
|
+
|
|
220
|
+
// Atualizar custom field via Task Manager
|
|
221
|
+
await taskManager.updateTask(TASK_ID, {
|
|
222
|
+
customFields: {
|
|
223
|
+
'Story Points': STORY_POINTS
|
|
224
|
+
}
|
|
225
|
+
});
|
|
226
|
+
|
|
227
|
+
// Adicionar comentário com análise via Task Manager
|
|
228
|
+
const ESTIMATE_ANALYSIS = extractAnalysis(ESTIMATE_RESPONSE);
|
|
229
|
+
|
|
230
|
+
await taskManager.addComment(TASK_ID,
|
|
231
|
+
'━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n' +
|
|
232
|
+
'📊 ESTIMATIVA INICIAL DE STORY POINTS\n' +
|
|
233
|
+
'━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n\n' +
|
|
234
|
+
`🎲 Story Points: ${STORY_POINTS} pontos\n\n` +
|
|
235
|
+
`⚡ ANÁLISE:\n${ESTIMATE_ANALYSIS}\n\n` +
|
|
236
|
+
'💡 NOTA: Esta é uma estimativa inicial para planejamento. Pode ser refinada durante o refinement.\n' +
|
|
237
|
+
'━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━'
|
|
238
|
+
);
|
|
239
|
+
fi
|
|
240
|
+
```
|
|
241
|
+
|
|
242
|
+
### **5. Resultado e Links**
|
|
243
|
+
```bash
|
|
244
|
+
if [ "$TASK_ID" != "" ] && [ "$TASK_ID" != "null" ]; then
|
|
245
|
+
TASK_URL = task.url; // Via Task Manager abstraction
|
|
246
|
+
|
|
247
|
+
echo ""
|
|
248
|
+
echo "✅ FEATURE PLANNING TASK CREATED SUCCESSFULLY!"
|
|
249
|
+
echo ""
|
|
250
|
+
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
|
251
|
+
echo ""
|
|
252
|
+
echo "📋 TASK DETAILS:"
|
|
253
|
+
echo " ▶ Title: $TASK_TITLE"
|
|
254
|
+
echo " ▶ ID: $TASK_ID"
|
|
255
|
+
echo " ▶ Status: Backlog"
|
|
256
|
+
echo " ▶ URL: $TASK_URL"
|
|
257
|
+
echo ""
|
|
258
|
+
echo "🏷️ TAGS: feature, backlog, planning"
|
|
259
|
+
echo "📝 DESCRIPTION: Auto-generated with development workflow"
|
|
260
|
+
echo ""
|
|
261
|
+
if [ "$STORY_POINTS" != "" ]; then
|
|
262
|
+
echo "🎲 STORY POINTS: $STORY_POINTS pontos (estimativa inicial)"
|
|
263
|
+
echo ""
|
|
264
|
+
fi
|
|
265
|
+
echo ""
|
|
266
|
+
echo "🎯 NEXT STEPS:"
|
|
267
|
+
echo " ∟ Add details: Open $TASK_URL"
|
|
268
|
+
echo " ∟ Set priority: Adjust based on roadmap"
|
|
269
|
+
echo " ∟ Start development: /git/feature/start \"$FEATURE_SLUG\""
|
|
270
|
+
echo ""
|
|
271
|
+
echo "💡 WORKFLOW SEQUENCIAL:"
|
|
272
|
+
echo " 1. 🎯 Planning (current) → 2. 🌿 GitFlow Start → 3. 🛠️ Development → 4. ✅ Done"
|
|
273
|
+
echo ""
|
|
274
|
+
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
|
275
|
+
echo ""
|
|
276
|
+
echo "🌟 Feature '$FEATURE_NAME' ready for planning!"
|
|
277
|
+
|
|
278
|
+
# Adicionar comentário inicial na task
|
|
279
|
+
INITIAL_COMMENT="🎯 FEATURE BACKLOG PARA PLANEJAMENTO
|
|
280
|
+
|
|
281
|
+
━━━━━━━━━━━━━━━━━━━━━━━━
|
|
282
|
+
|
|
283
|
+
✅ TASK SETUP:
|
|
284
|
+
▶ Feature: $FEATURE_NAME
|
|
285
|
+
▶ Slug: $FEATURE_SLUG
|
|
286
|
+
▶ Status: Backlog (Planning)
|
|
287
|
+
▶ Criada via: /product/feature
|
|
288
|
+
|
|
289
|
+
🎯 PLANEJAMENTO:
|
|
290
|
+
▶ Detalhar requisitos funcionais
|
|
291
|
+
▶ Definir critérios de aceitação
|
|
292
|
+
▶ Estimar esforço e cronograma
|
|
293
|
+
▶ Priorizar no roadmap
|
|
294
|
+
|
|
295
|
+
🚀 PARA DESENVOLVIMENTO:
|
|
296
|
+
▶ Após planejamento: /git/feature/start \"$FEATURE_SLUG\"
|
|
297
|
+
▶ Para sessão: /engineer/start $FEATURE_SLUG
|
|
298
|
+
|
|
299
|
+
📋 WORKFLOW:
|
|
300
|
+
∟ Planning → GitFlow Start → Development → Done
|
|
301
|
+
|
|
302
|
+
━━━━━━━━━━━━━━━━━━━━━━━━
|
|
303
|
+
|
|
304
|
+
⏰ Criada: $(date +'%Y-%m-%d %H:%M:%S') | 🧅 Sistema Onion"
|
|
305
|
+
|
|
306
|
+
# Adicionar comentário via Task Manager (graceful degradation)
|
|
307
|
+
// Via Task Manager abstraction
|
|
308
|
+
await taskManager.addComment(TASK_ID, INITIAL_COMMENT).catch(() => {
|
|
309
|
+
console.warn("⚠️ Comment creation failed - task created successfully anyway");
|
|
310
|
+
});
|
|
311
|
+
|
|
312
|
+
else
|
|
313
|
+
console.error("❌ FAILED TO CREATE TASK");
|
|
314
|
+
console.error("");
|
|
315
|
+
console.error("💡 POSSIBLE CAUSES:");
|
|
316
|
+
console.error(" ∟ Task Manager provider not configured");
|
|
317
|
+
console.error(" ∟ Invalid project/list ID or permissions");
|
|
318
|
+
console.error(" ∟ Network connectivity issues");
|
|
319
|
+
console.error("");
|
|
320
|
+
console.error("🔧 TROUBLESHOOTING:");
|
|
321
|
+
console.error(" ∟ Check TASK_MANAGER_PROVIDER environment variable");
|
|
322
|
+
console.error(" ∟ Verify project/list permissions and ID");
|
|
323
|
+
console.error(" ∟ Execute /meta/setup-integration to configure");
|
|
324
|
+
console.error(" ∟ Try manual task creation as fallback");
|
|
325
|
+
echo ""
|
|
326
|
+
echo "📖 MANUAL FALLBACK:"
|
|
327
|
+
echo " ∟ Create task manually: '$TASK_TITLE'"
|
|
328
|
+
echo " ∟ Add tags: feature, backlog, planning"
|
|
329
|
+
echo " ∟ Set status: Backlog"
|
|
330
|
+
exit 1
|
|
331
|
+
fi
|
|
332
|
+
```
|
|
333
|
+
|
|
334
|
+
---
|
|
335
|
+
|
|
336
|
+
## 🔗 **Integração com Sistema Onion**
|
|
337
|
+
|
|
338
|
+
### **Separação Clara de Responsabilidades:**
|
|
339
|
+
- **`/product/feature`**: Cria task backlog para **planejamento**
|
|
340
|
+
- **`/git/feature/start`**: Inicia desenvolvimento **GitFlow** (branch + session)
|
|
341
|
+
- **`/git/sync`**: Finaliza desenvolvimento (pós-merge + cleanup)
|
|
342
|
+
|
|
343
|
+
### **Workflow Sequencial Integrado:**
|
|
344
|
+
```bash
|
|
345
|
+
1. /product/feature "nova-funcionalidade" # ← PLANEJAMENTO
|
|
346
|
+
# ... tempo de planejamento, detalhamento, priorização ...
|
|
347
|
+
|
|
348
|
+
2. /git/feature/start "nova-funcionalidade" # ← DESENVOLVIMENTO GitFlow
|
|
349
|
+
# ... desenvolvimento usando sessões ...
|
|
350
|
+
|
|
351
|
+
3. /git/sync # ← FINALIZAÇÃO
|
|
352
|
+
```
|
|
353
|
+
|
|
354
|
+
### **Quando Usar:**
|
|
355
|
+
- ✅ **Criar features para backlog** e roadmap planning
|
|
356
|
+
- ✅ **Organizar product backlog** e priorização
|
|
357
|
+
- ✅ **Capturar ideias** de features rapidamente
|
|
358
|
+
- ✅ **Setup inicial** de projetos com múltiplas features
|
|
359
|
+
|
|
360
|
+
### **Quando NÃO usar:**
|
|
361
|
+
- ❌ Desenvolvimento imediato (use `/git/feature/start`)
|
|
362
|
+
- ❌ Hotfixes urgentes (use `/engineer/hotfix`)
|
|
363
|
+
- ❌ Tasks já existem (use `/engineer/start <feature-slug>`)
|
|
364
|
+
|
|
365
|
+
---
|
|
366
|
+
|
|
367
|
+
## ⚠️ **Tratamento de Erros**
|
|
368
|
+
|
|
369
|
+
### **Erro: Nome da feature não fornecido**
|
|
370
|
+
```
|
|
371
|
+
❌ ERROR: Feature name required
|
|
372
|
+
📖 USAGE: /product/feature "feature-name-or-description"
|
|
373
|
+
```
|
|
374
|
+
|
|
375
|
+
### **Erro: Task Manager falhou**
|
|
376
|
+
```
|
|
377
|
+
❌ FAILED TO CREATE TASK
|
|
378
|
+
🔧 Check TASK_MANAGER_PROVIDER configuration and permissions
|
|
379
|
+
📖 Create task manually as fallback
|
|
380
|
+
```
|
|
381
|
+
|
|
382
|
+
### **Erro: Lista não encontrada**
|
|
383
|
+
```
|
|
384
|
+
❌ ERROR: Unable to detect project/list via Task Manager
|
|
385
|
+
💡 Run from active session or configure default list
|
|
386
|
+
```
|
|
387
|
+
|
|
388
|
+
---
|
|
389
|
+
|
|
390
|
+
## 💡 **Dicas de Uso**
|
|
391
|
+
|
|
392
|
+
### **✅ Boas Práticas:**
|
|
393
|
+
```bash
|
|
394
|
+
# Nomes descritivos e específicos
|
|
395
|
+
/product/feature "implement-oauth2-authentication-flow"
|
|
396
|
+
|
|
397
|
+
# Features modulares e focadas
|
|
398
|
+
/product/feature "add-user-profile-avatar-upload"
|
|
399
|
+
|
|
400
|
+
# Include context quando útil
|
|
401
|
+
/product/feature "integrate-stripe-payment-gateway-checkout"
|
|
402
|
+
```
|
|
403
|
+
|
|
404
|
+
### **❌ Evitar:**
|
|
405
|
+
```bash
|
|
406
|
+
# Muito genérico
|
|
407
|
+
/product/feature "melhorias"
|
|
408
|
+
|
|
409
|
+
# Muito técnico/interno
|
|
410
|
+
/product/feature "refactor-class-x"
|
|
411
|
+
|
|
412
|
+
# Tasks que não são features
|
|
413
|
+
/product/feature "fix-bug-payment" # Use /engineer/hotfix
|
|
414
|
+
```
|
|
415
|
+
|
|
416
|
+
---
|
|
417
|
+
|
|
418
|
+
**🎯 Criação rápida de features para backlog e planejamento! Para iniciar desenvolvimento GitFlow, use `/git/feature/start [feature-name]`.**
|
|
419
|
+
|
|
420
|
+
|
|
421
|
+
---
|
|
422
|
+
|
|
423
|
+
## 📚 Pré-requisitos
|
|
424
|
+
|
|
425
|
+
Domine comandos starter antes de usar este comando intermediate/advanced.
|
|
426
|
+
|
|
427
|
+
Consulte os comandos help para ver hierarquia completa:
|
|
428
|
+
- /business/help --level=starter
|
|
429
|
+
- /technical/help --level=starter
|
|
430
|
+
|
|
431
|
+
💡 Comandos intermediate/advanced assumem familiaridade com workflows básicos.
|