@onion-architect-ai/cli 4.1.0-beta.1 → 4.1.0-beta.3
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 +8 -19
- package/dist/cli.js.map +1 -1
- package/package.json +4 -3
- package/templates/.cursor/agents/compliance/iso-22301-specialist.md +917 -0
- package/templates/.cursor/agents/compliance/iso-27001-specialist.md +641 -0
- package/templates/.cursor/agents/compliance/pmbok-specialist.md +669 -0
- package/templates/.cursor/agents/compliance/security-information-master.md +824 -0
- package/templates/.cursor/agents/compliance/soc2-specialist.md +818 -0
- package/templates/.cursor/agents/deployment/docker-specialist.md +1192 -0
- package/templates/.cursor/agents/meta/agent-creator-specialist.md +1135 -0
- package/templates/.cursor/agents/meta/command-creator-specialist.md +1519 -0
- package/templates/.cursor/agents/meta/metaspec-gate-keeper.md +240 -0
- package/templates/.cursor/agents/meta/onion.md +753 -0
- package/templates/.cursor/agents/research/research-agent.md +292 -0
- package/templates/.cursor/agents/review/corporate-compliance-specialist.md +370 -0
- package/templates/.cursor/commands/common/prompts/README.md +187 -0
- package/templates/.cursor/commands/common/prompts/clickup-patterns.md +144 -0
- package/templates/.cursor/commands/common/prompts/code-review-checklist.md +168 -0
- package/templates/.cursor/commands/common/prompts/git-workflow-patterns.md +235 -0
- package/templates/.cursor/commands/common/prompts/output-formats.md +240 -0
- package/templates/.cursor/commands/common/prompts/technical.md +172 -0
- package/templates/.cursor/commands/common/prompts/validation-rules.md +173 -0
- package/templates/.cursor/commands/common/templates/abstraction-template.md +400 -0
- package/templates/.cursor/commands/common/templates/agent-template.md +353 -0
- package/templates/.cursor/commands/common/templates/business_context_template.md +748 -0
- package/templates/.cursor/commands/common/templates/command-template.md +273 -0
- package/templates/.cursor/commands/common/templates/technical_context_template.md +526 -0
- package/templates/.cursor/commands/development/runflow-dev.md +465 -0
- package/templates/.cursor/commands/docs/build-compliance-docs.md +143 -0
- package/templates/.cursor/commands/git/README.md +606 -0
- package/templates/.cursor/commands/meta/all-tools.md +50 -0
- package/templates/.cursor/commands/meta/analyze-complex-problem.md +186 -0
- package/templates/.cursor/commands/meta/create-abstraction.md +859 -0
- package/templates/.cursor/commands/meta/create-agent-express.md +83 -0
- package/templates/.cursor/commands/meta/create-agent.md +210 -0
- package/templates/.cursor/commands/meta/create-command.md +203 -0
- package/templates/.cursor/commands/meta/create-knowledge-base.md +143 -0
- package/templates/.cursor/commands/meta/create-task-structure.md +150 -0
- package/templates/.cursor/commands/meta/setup-integration.md +257 -0
- package/templates/.cursor/commands/onion/setup.md +843 -0
- package/templates/.cursor/commands/onion.md +168 -0
- package/templates/.cursor/commands/product/README.md +230 -0
- package/templates/.cursor/commands/quick/analisys.md +17 -0
- package/templates/.cursor/commands/validate/collab/pair-testing.md +633 -0
- package/templates/.cursor/commands/validate/collab/three-amigos.md +505 -0
- package/templates/.cursor/commands/validate/qa-points/estimate.md +660 -0
- package/templates/.cursor/commands/validate/test-strategy/analyze.md +1134 -0
- package/templates/.cursor/commands/validate/test-strategy/create.md +392 -0
- package/templates/.cursor/commands/validate/workflow.md +360 -0
- package/templates/.cursor/commands/warm-up.md +91 -0
- package/templates/.cursor/docs/architecture/acoplamento-clickup-problema-analise.md +446 -0
- package/templates/.cursor/docs/architecture/desacoplamento-roadmap.md +360 -0
- package/templates/.cursor/docs/architecture/validacao-fase-1.md +219 -0
- package/templates/.cursor/docs/c4/c4-detection-rules.md +395 -0
- package/templates/.cursor/docs/c4/c4-documentation-templates.md +579 -0
- package/templates/.cursor/docs/c4/c4-mermaid-patterns.md +331 -0
- package/templates/.cursor/docs/c4/c4-templates.md +256 -0
- package/templates/.cursor/docs/clickup/clickup-acceptance-criteria-strategy.md +329 -0
- package/templates/.cursor/docs/clickup/clickup-auto-update-strategy.md +318 -0
- package/templates/.cursor/docs/clickup/clickup-comment-formatter.md +239 -0
- package/templates/.cursor/docs/clickup/clickup-description-fix.md +355 -0
- package/templates/.cursor/docs/clickup/clickup-dual-comment-strategy.md +505 -0
- package/templates/.cursor/docs/clickup/clickup-formatting.md +302 -0
- package/templates/.cursor/docs/clickup/separador-tamanho-otimizado.md +256 -0
- package/templates/.cursor/docs/engineer/pre-pr-acceptance-validation.md +256 -0
- package/templates/.cursor/docs/onion/ESPERANTO.md +278 -0
- package/templates/.cursor/docs/onion/agents-reference.md +832 -0
- package/templates/.cursor/docs/onion/clickup-integration.md +738 -0
- package/templates/.cursor/docs/onion/commands-guide.md +807 -0
- package/templates/.cursor/docs/onion/engineering-flows.md +865 -0
- package/templates/.cursor/docs/onion/getting-started.md +741 -0
- package/templates/.cursor/docs/onion/maintenance-checklist.md +388 -0
- package/templates/.cursor/docs/onion/naming-conventions.md +268 -0
- package/templates/.cursor/docs/onion/practical-examples.md +782 -0
- package/templates/.cursor/docs/product/story-points-integration.md +254 -0
- package/templates/.cursor/docs/product/story-points-validation.md +224 -0
- package/templates/.cursor/docs/reviews/task-manager-docs-review-2025-11-24.md +167 -0
- package/templates/.cursor/docs/strategies/clickup-comment-patterns.md +766 -0
- package/templates/.cursor/docs/strategies/clickup-integration-tests.md +599 -0
- package/templates/.cursor/docs/strategies/clickup-mcp-wrappers-tests.md +854 -0
- package/templates/.cursor/docs/strategies/clickup-regression-tests.md +589 -0
- package/templates/.cursor/docs/strategies/visual-patterns.md +308 -0
- package/templates/.cursor/docs/templates/README.md +624 -0
- package/templates/.cursor/docs/templates/adr-template.md +226 -0
- package/templates/.cursor/docs/templates/analysis-template.md +280 -0
- package/templates/.cursor/docs/templates/execution-plan-template.md +430 -0
- package/templates/.cursor/docs/templates/guide-template.md +367 -0
- package/templates/.cursor/docs/templates/phase-execution-prompt-template.md +504 -0
- package/templates/.cursor/docs/templates/reference-template.md +522 -0
- package/templates/.cursor/docs/templates/solution-template.md +390 -0
- package/templates/.cursor/docs/tools/README.md +325 -0
- package/templates/.cursor/docs/tools/agents.md +330 -0
- package/templates/.cursor/docs/tools/commands.md +606 -0
- package/templates/.cursor/docs/tools/cursor.md +498 -0
- package/templates/.cursor/docs/tools/mcps.md +858 -0
- package/templates/.cursor/docs/tools/rules.md +423 -0
- package/templates/.cursor/rules/language-and-documentation.mdc +371 -0
- package/templates/.cursor/rules/onion-patterns.mdc +197 -0
- package/templates/.cursor/rules/validation-rules.mdc +194 -0
- package/templates/.cursor/utils/clickup-mcp-wrappers.md +671 -0
- package/templates/.cursor/utils/date-time-standards.md +182 -0
- package/templates/.cursor/utils/task-manager/README.md +94 -0
- package/templates/.cursor/utils/task-manager/adapters/asana.md +377 -0
- package/templates/.cursor/utils/task-manager/adapters/clickup.md +467 -0
- package/templates/.cursor/utils/task-manager/adapters/linear.md +421 -0
- package/templates/.cursor/utils/task-manager/detector.md +290 -0
- package/templates/.cursor/utils/task-manager/factory.md +363 -0
- package/templates/.cursor/utils/task-manager/interface.md +248 -0
- package/templates/.cursor/utils/task-manager/types.md +409 -0
- package/templates/.cursor/validation/product-task-validation.md +344 -0
- package/templates/.onion/contexts/business/.context-config.yml +52 -0
- package/templates/.onion/contexts/business/README.md +222 -0
- package/templates/.onion/contexts/business/agents/branding-specialist.md +1030 -0
- package/templates/.onion/contexts/business/agents/clickup-specialist.md +397 -0
- package/templates/.onion/contexts/business/agents/extract-meeting-specialist.md +395 -0
- package/templates/.onion/contexts/business/agents/gamma-specialist.md +1169 -0
- package/templates/.onion/contexts/business/agents/meeting-consolidator.md +483 -0
- package/templates/.onion/contexts/business/agents/pain-price-specialist.md +509 -0
- package/templates/.onion/contexts/business/agents/presentation-orchestrator.md +1191 -0
- package/templates/.onion/contexts/business/agents/product-agent.md +202 -0
- package/templates/.onion/contexts/business/agents/story-points-specialist.md +539 -0
- package/templates/.onion/contexts/business/agents/storytelling-specialist.md +891 -0
- package/templates/.onion/contexts/business/agents/task-specialist.md +618 -0
- package/templates/.onion/contexts/business/agents/whisper-specialist.md +373 -0
- package/templates/.onion/contexts/business/commands/advanced/analyze-pain-price.md +709 -0
- package/templates/.onion/contexts/business/commands/advanced/branding.md +460 -0
- package/templates/.onion/contexts/business/commands/advanced/checklist-sync.md +241 -0
- package/templates/.onion/contexts/business/commands/advanced/presentation.md +189 -0
- package/templates/.onion/contexts/business/commands/advanced/transform-consolidated.md +592 -0
- package/templates/.onion/contexts/business/commands/help.md +212 -0
- package/templates/.onion/contexts/business/commands/intermediate/check.md +48 -0
- package/templates/.onion/contexts/business/commands/intermediate/collect.md +96 -0
- package/templates/.onion/contexts/business/commands/intermediate/consolidate-meetings.md +306 -0
- package/templates/.onion/contexts/business/commands/intermediate/convert-to-tasks.md +220 -0
- package/templates/.onion/contexts/business/commands/intermediate/extract-meeting.md +241 -0
- package/templates/.onion/contexts/business/commands/intermediate/feature.md +431 -0
- package/templates/.onion/contexts/business/commands/intermediate/light-arch.md +97 -0
- package/templates/.onion/contexts/business/commands/intermediate/task-check.md +340 -0
- package/templates/.onion/contexts/business/commands/intermediate/validate-task.md +294 -0
- package/templates/.onion/contexts/business/commands/intermediate/whisper.md +325 -0
- package/templates/.onion/contexts/business/commands/starter/estimate.md +519 -0
- package/templates/.onion/contexts/business/commands/starter/refine.md +186 -0
- package/templates/.onion/contexts/business/commands/starter/spec.md +107 -0
- package/templates/.onion/contexts/business/commands/starter/task.md +585 -0
- package/templates/.onion/contexts/business/commands/starter/warm-up.md +187 -0
- package/templates/.onion/contexts/technical/.context-config.yml +64 -0
- package/templates/.onion/contexts/technical/README.md +238 -0
- package/templates/.onion/contexts/technical/agents/branch-code-reviewer.md +200 -0
- package/templates/.onion/contexts/technical/agents/branch-doc-writer.md +162 -0
- package/templates/.onion/contexts/technical/agents/branch-metaspec-checker.md +68 -0
- package/templates/.onion/contexts/technical/agents/branch-test-planner.md +177 -0
- package/templates/.onion/contexts/technical/agents/c4-architecture-specialist.md +712 -0
- package/templates/.onion/contexts/technical/agents/c4-documentation-specialist.md +658 -0
- package/templates/.onion/contexts/technical/agents/code-reviewer.md +155 -0
- package/templates/.onion/contexts/technical/agents/cursor-specialist.md +249 -0
- package/templates/.onion/contexts/technical/agents/docs-reverse-engineer.md +418 -0
- package/templates/.onion/contexts/technical/agents/gitflow-specialist.md +1207 -0
- package/templates/.onion/contexts/technical/agents/linux-security-specialist.md +676 -0
- package/templates/.onion/contexts/technical/agents/mermaid-specialist.md +516 -0
- package/templates/.onion/contexts/technical/agents/nodejs-specialist.md +673 -0
- package/templates/.onion/contexts/technical/agents/nx-migration-specialist.md +867 -0
- package/templates/.onion/contexts/technical/agents/nx-monorepo-specialist.md +619 -0
- package/templates/.onion/contexts/technical/agents/postgres-specialist.md +1124 -0
- package/templates/.onion/contexts/technical/agents/react-developer.md +132 -0
- package/templates/.onion/contexts/technical/agents/runflow-specialist.md +278 -0
- package/templates/.onion/contexts/technical/agents/system-doc-orchestrator.md +1388 -0
- package/templates/.onion/contexts/technical/agents/test-agent.md +425 -0
- package/templates/.onion/contexts/technical/agents/test-engineer.md +295 -0
- package/templates/.onion/contexts/technical/agents/test-planner.md +118 -0
- package/templates/.onion/contexts/technical/agents/zen-engine-specialist.md +421 -0
- package/templates/.onion/contexts/technical/commands/advanced/bump.md +43 -0
- package/templates/.onion/contexts/technical/commands/advanced/consolidate-documents.md +424 -0
- package/templates/.onion/contexts/technical/commands/advanced/e2e.md +392 -0
- package/templates/.onion/contexts/technical/commands/advanced/feature-finish.md +90 -0
- package/templates/.onion/contexts/technical/commands/advanced/feature-publish.md +91 -0
- package/templates/.onion/contexts/technical/commands/advanced/feature-start.md +158 -0
- package/templates/.onion/contexts/technical/commands/advanced/hotfix-finish.md +98 -0
- package/templates/.onion/contexts/technical/commands/advanced/hotfix-start.md +94 -0
- package/templates/.onion/contexts/technical/commands/advanced/hotfix.md +186 -0
- package/templates/.onion/contexts/technical/commands/advanced/refine-vision.md +27 -0
- package/templates/.onion/contexts/technical/commands/advanced/release-finish.md +98 -0
- package/templates/.onion/contexts/technical/commands/advanced/release-start.md +95 -0
- package/templates/.onion/contexts/technical/commands/advanced/reverse-consolidate.md +160 -0
- package/templates/.onion/contexts/technical/commands/advanced/validate-phase-sync.md +118 -0
- package/templates/.onion/contexts/technical/commands/help.md +329 -0
- package/templates/.onion/contexts/technical/commands/intermediate/build-business-docs.md +276 -0
- package/templates/.onion/contexts/technical/commands/intermediate/build-index.md +128 -0
- package/templates/.onion/contexts/technical/commands/intermediate/build-tech-docs.md +204 -0
- package/templates/.onion/contexts/technical/commands/intermediate/code-review.md +215 -0
- package/templates/.onion/contexts/technical/commands/intermediate/docs-health.md +142 -0
- package/templates/.onion/contexts/technical/commands/intermediate/fast-commit.md +45 -0
- package/templates/.onion/contexts/technical/commands/intermediate/integration.md +523 -0
- package/templates/.onion/contexts/technical/commands/intermediate/pr-update.md +198 -0
- package/templates/.onion/contexts/technical/commands/intermediate/pre-pr.md +91 -0
- package/templates/.onion/contexts/technical/commands/intermediate/start.md +266 -0
- package/templates/.onion/contexts/technical/commands/intermediate/sync-sessions.md +320 -0
- package/templates/.onion/contexts/technical/commands/intermediate/unit.md +378 -0
- package/templates/.onion/contexts/technical/commands/intermediate/validate-docs.md +159 -0
- package/templates/.onion/contexts/technical/commands/starter/docs.md +39 -0
- package/templates/.onion/contexts/technical/commands/starter/help.md +306 -0
- package/templates/.onion/contexts/technical/commands/starter/init.md +139 -0
- package/templates/.onion/contexts/technical/commands/starter/plan.md +111 -0
- package/templates/.onion/contexts/technical/commands/starter/pr.md +136 -0
- package/templates/.onion/contexts/technical/commands/starter/sync.md +228 -0
- package/templates/.onion/contexts/technical/commands/starter/warm-up.md +173 -0
- package/templates/.onion/contexts/technical/commands/starter/work.md +169 -0
- package/templates/.onion/core/commands/help.md +388 -0
|
@@ -0,0 +1,738 @@
|
|
|
1
|
+
# 🔗 Integração ClickUp MCP - Sistema Onion
|
|
2
|
+
|
|
3
|
+
## 📋 Índice
|
|
4
|
+
|
|
5
|
+
- [Visão Geral](#-visão-geral)
|
|
6
|
+
- [Estratégia Dual de Formatação](#-estratégia-dual-de-formatação)
|
|
7
|
+
- [Formatação de Descriptions](#-formatação-de-descriptions-markdown)
|
|
8
|
+
- [Formatação de Comments](#-formatação-de-comments-unicode)
|
|
9
|
+
- [Bulk Operations](#-bulk-operations)
|
|
10
|
+
- [Hierarquia de Tasks](#-hierarquia-de-tasks)
|
|
11
|
+
- [Checklists Nativos](#-checklists-nativos)
|
|
12
|
+
- [Auto-Update Patterns](#-auto-update-patterns)
|
|
13
|
+
- [Troubleshooting](#-troubleshooting)
|
|
14
|
+
- [Best Practices](#-best-practices)
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## 🎯 Visão Geral
|
|
19
|
+
|
|
20
|
+
O Sistema Onion integra-se profundamente com o **ClickUp MCP** (Model Context Protocol) para sincronização automática de tasks, subtasks, comments e progresso durante todo o ciclo de desenvolvimento.
|
|
21
|
+
|
|
22
|
+
### Capacidades Principais
|
|
23
|
+
- ✅ **Criação de Tasks** com decomposição hierárquica
|
|
24
|
+
- ✅ **Auto-Update** de status e progresso
|
|
25
|
+
- ✅ **Comentários Estruturados** com formatação visual
|
|
26
|
+
- ✅ **Bulk Operations** otimizadas para performance
|
|
27
|
+
- ✅ **Checklists Nativos** para tracking interativo
|
|
28
|
+
- ✅ **Phase-Subtask Mapping** automático
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
## 🎨 Estratégia Dual de Formatação
|
|
33
|
+
|
|
34
|
+
O Sistema Onion usa **duas estratégias distintas** de formatação dependendo do contexto:
|
|
35
|
+
|
|
36
|
+
### 📋 Task Descriptions (markdown_description)
|
|
37
|
+
**Quando:** Criar ou atualizar descrições de tasks/subtasks
|
|
38
|
+
**Formato:** Markdown nativo do ClickUp
|
|
39
|
+
**Comandos:** `create_task`, `update_task`
|
|
40
|
+
|
|
41
|
+
### 💬 Task Comments (commentText)
|
|
42
|
+
**Quando:** Adicionar comentários de progresso ou status
|
|
43
|
+
**Formato:** Formatação visual Unicode
|
|
44
|
+
**Comandos:** `create_task_comment`
|
|
45
|
+
|
|
46
|
+
---
|
|
47
|
+
|
|
48
|
+
## 📋 Formatação de Descriptions (Markdown)
|
|
49
|
+
|
|
50
|
+
### Quando Usar
|
|
51
|
+
- Descrições de tasks principais
|
|
52
|
+
- Descrições de subtasks
|
|
53
|
+
- Action items em descrição markdown
|
|
54
|
+
- Documentação técnica na task
|
|
55
|
+
|
|
56
|
+
### Sintaxe Suportada
|
|
57
|
+
|
|
58
|
+
#### Headers
|
|
59
|
+
```markdown
|
|
60
|
+
# Header 1
|
|
61
|
+
## Header 2
|
|
62
|
+
### Header 3
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
#### Listas
|
|
66
|
+
```markdown
|
|
67
|
+
- Item não ordenado
|
|
68
|
+
- Outro item
|
|
69
|
+
- Sub-item
|
|
70
|
+
|
|
71
|
+
1. Item ordenado
|
|
72
|
+
2. Segundo item
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
#### Tabelas
|
|
76
|
+
```markdown
|
|
77
|
+
| Coluna 1 | Coluna 2 | Coluna 3 |
|
|
78
|
+
|----------|----------|----------|
|
|
79
|
+
| Valor 1 | Valor 2 | Valor 3 |
|
|
80
|
+
| Valor 4 | Valor 5 | Valor 6 |
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
#### Formatação de Texto
|
|
84
|
+
```markdown
|
|
85
|
+
**Negrito**
|
|
86
|
+
*Itálico*
|
|
87
|
+
`Código inline`
|
|
88
|
+
[Link](https://example.com)
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
#### Code Blocks
|
|
92
|
+
````markdown
|
|
93
|
+
```python
|
|
94
|
+
def hello_world():
|
|
95
|
+
print("Hello, World!")
|
|
96
|
+
```
|
|
97
|
+
````
|
|
98
|
+
|
|
99
|
+
#### Checkboxes (Action Items)
|
|
100
|
+
```markdown
|
|
101
|
+
- [ ] Action item não completado
|
|
102
|
+
- [x] Action item completado
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
### Exemplo Completo de Description
|
|
106
|
+
|
|
107
|
+
```markdown
|
|
108
|
+
## 🎯 Objetivo
|
|
109
|
+
Implementar autenticação JWT com refresh tokens para melhorar segurança.
|
|
110
|
+
|
|
111
|
+
## 📚 Contexto Técnico
|
|
112
|
+
Sistema atual usa sessões server-side. Migração para JWT permite:
|
|
113
|
+
- Stateless authentication
|
|
114
|
+
- Melhor escalabilidade
|
|
115
|
+
- Suporte a mobile apps
|
|
116
|
+
|
|
117
|
+
## 🏗️ Arquitetura
|
|
118
|
+
|
|
119
|
+
### Componentes Afetados
|
|
120
|
+
| Componente | Mudança | Impacto |
|
|
121
|
+
|------------|---------|---------|
|
|
122
|
+
| Auth Service | Adicionar JWT | Alto |
|
|
123
|
+
| API Gateway | Validar tokens | Médio |
|
|
124
|
+
| Database | Armazenar refresh tokens | Baixo |
|
|
125
|
+
|
|
126
|
+
### Stack Tecnológico
|
|
127
|
+
- **JWT**: jsonwebtoken v9.0.0
|
|
128
|
+
- **Crypto**: bcrypt v5.1.0
|
|
129
|
+
- **Storage**: Redis para refresh tokens
|
|
130
|
+
|
|
131
|
+
## ✅ Critérios de Aceitação
|
|
132
|
+
- [ ] Usuário pode fazer login e receber JWT
|
|
133
|
+
- [ ] Token expira após 15 minutos
|
|
134
|
+
- [ ] Refresh token permite renovação
|
|
135
|
+
- [ ] Logout invalida refresh token
|
|
136
|
+
- [ ] Testes de segurança passam
|
|
137
|
+
|
|
138
|
+
## 🧪 Estratégia de Testes
|
|
139
|
+
- Unit tests para geração de tokens
|
|
140
|
+
- Integration tests para fluxo completo
|
|
141
|
+
- Security tests para vulnerabilidades
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
---
|
|
145
|
+
|
|
146
|
+
## 💬 Formatação de Comments (Unicode)
|
|
147
|
+
|
|
148
|
+
### Quando Usar
|
|
149
|
+
- Comentários de progresso
|
|
150
|
+
- Updates de status
|
|
151
|
+
- Início/fim de desenvolvimento
|
|
152
|
+
- Conclusão de fases
|
|
153
|
+
- Notificações de PR
|
|
154
|
+
|
|
155
|
+
### Caracteres Unicode Permitidos
|
|
156
|
+
|
|
157
|
+
#### Separadores
|
|
158
|
+
```
|
|
159
|
+
━━━━━━━━━━━━━━━━━━━━━━━━ (linha horizontal)
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
#### Bullets e Marcadores
|
|
163
|
+
```
|
|
164
|
+
▶ (seta para direita - itens principais)
|
|
165
|
+
∟ (canto - sub-itens)
|
|
166
|
+
◆ (diamante - destaque)
|
|
167
|
+
✅ (check verde - concluído)
|
|
168
|
+
⏰ (relógio - timestamp)
|
|
169
|
+
🎯 (alvo - próxima ação)
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
#### Emojis de Status
|
|
173
|
+
```
|
|
174
|
+
🚀 (foguete - início/lançamento)
|
|
175
|
+
🔧 (ferramenta - trabalho em progresso)
|
|
176
|
+
📋 (clipboard - lista/plano)
|
|
177
|
+
🏗️ (construção - arquitetura)
|
|
178
|
+
✅ (check - concluído)
|
|
179
|
+
⚠️ (aviso - atenção)
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
### Template de Comentário de Início
|
|
183
|
+
|
|
184
|
+
```
|
|
185
|
+
🚀 DESENVOLVIMENTO INICIADO
|
|
186
|
+
|
|
187
|
+
━━━━━━━━━━━━━━━━━━━━━━━━
|
|
188
|
+
|
|
189
|
+
🏗️ SESSÃO ATIVADA:
|
|
190
|
+
▶ Branch: feature/jwt-authentication
|
|
191
|
+
▶ Sessão: .cursor/sessions/jwt-authentication/
|
|
192
|
+
▶ Arquitetura: Definida e validada ✅
|
|
193
|
+
|
|
194
|
+
📋 PLANO DE IMPLEMENTAÇÃO:
|
|
195
|
+
∟ Fase 1: Backend JWT Service (4-6h)
|
|
196
|
+
∟ Fase 2: API Integration (3-4h)
|
|
197
|
+
∟ Fase 3: Frontend Integration (2-3h)
|
|
198
|
+
∟ Fase 4: Testing & Security (2-3h)
|
|
199
|
+
|
|
200
|
+
🎯 STACK TECNOLÓGICO:
|
|
201
|
+
∟ jsonwebtoken v9.0.0
|
|
202
|
+
∟ bcrypt v5.1.0
|
|
203
|
+
∟ Redis para refresh tokens
|
|
204
|
+
|
|
205
|
+
🔧 DECISÕES ARQUITETURAIS:
|
|
206
|
+
∟ JWT em Authorization header (Bearer)
|
|
207
|
+
∟ Refresh tokens em httpOnly cookies
|
|
208
|
+
∟ Redis para blacklist de tokens
|
|
209
|
+
∟ Rotação automática de refresh tokens
|
|
210
|
+
|
|
211
|
+
━━━━━━━━━━━━━━━━━━━━━━━━
|
|
212
|
+
|
|
213
|
+
⏰ Iniciado: 2025-01-27 10:30 | 🎯 Próximo: Implementar Fase 1
|
|
214
|
+
```
|
|
215
|
+
|
|
216
|
+
### Template de Comentário de Progresso
|
|
217
|
+
|
|
218
|
+
```
|
|
219
|
+
🔧 PROGRESSO DE DESENVOLVIMENTO
|
|
220
|
+
|
|
221
|
+
━━━━━━━━━━━━━━━━━━━━━━━━
|
|
222
|
+
|
|
223
|
+
📋 FASE COMPLETADA:
|
|
224
|
+
▶ Fase 1: Backend JWT Service
|
|
225
|
+
▶ Arquivos modificados: 8 arquivos
|
|
226
|
+
▶ Funcionalidades: Token generation, validation, refresh
|
|
227
|
+
▶ Testes: 15 unit tests, 5 integration tests ✅
|
|
228
|
+
|
|
229
|
+
✅ DECISÕES TÉCNICAS:
|
|
230
|
+
∟ Usamos RS256 (assimétrico) para melhor segurança
|
|
231
|
+
∟ Tokens armazenados em Redis com TTL automático
|
|
232
|
+
∟ Implementado rate limiting em refresh endpoint
|
|
233
|
+
∟ Adicionado logging de eventos de autenticação
|
|
234
|
+
|
|
235
|
+
🚀 PRÓXIMA FASE:
|
|
236
|
+
▶ Fase 2: API Integration
|
|
237
|
+
▶ Estimativa: 3-4 horas
|
|
238
|
+
▶ Bloqueadores: Nenhum
|
|
239
|
+
|
|
240
|
+
📊 PROGRESSO GERAL: 25% completo (1/4 fases)
|
|
241
|
+
|
|
242
|
+
━━━━━━━━━━━━━━━━━━━━━━━━
|
|
243
|
+
|
|
244
|
+
⏰ Atualização: 2025-01-27 15:45 | 🎯 Próximo: Integrar com API Gateway
|
|
245
|
+
```
|
|
246
|
+
|
|
247
|
+
### Template de Comentário de PR
|
|
248
|
+
|
|
249
|
+
```
|
|
250
|
+
🚀 PULL REQUEST CREATED
|
|
251
|
+
|
|
252
|
+
━━━━━━━━━━━━━━━━━━━━━━━━
|
|
253
|
+
|
|
254
|
+
📋 CHANGES IMPLEMENTED:
|
|
255
|
+
∟ JWT authentication service completo
|
|
256
|
+
∟ Refresh token mechanism
|
|
257
|
+
∟ Redis integration para token storage
|
|
258
|
+
∟ Security middleware para API routes
|
|
259
|
+
∟ Comprehensive test suite ✅
|
|
260
|
+
|
|
261
|
+
🔗 REVIEW DETAILS:
|
|
262
|
+
▶ PR: https://github.com/org/repo/pull/123
|
|
263
|
+
▶ Branch: feature/jwt-authentication
|
|
264
|
+
▶ Status: Ready for review
|
|
265
|
+
▶ Tests: All passing (45/45) ✅
|
|
266
|
+
|
|
267
|
+
✅ CHECKLIST:
|
|
268
|
+
◆ Code committed and pushed ✅
|
|
269
|
+
◆ Tests passing ✅
|
|
270
|
+
◆ Documentation updated ✅
|
|
271
|
+
◆ Task moved to "in progress" ✅
|
|
272
|
+
◆ Tag "under-review" added ✅
|
|
273
|
+
|
|
274
|
+
🤖 GITFLOW INTEGRATION:
|
|
275
|
+
∟ Auto-sync scheduled pós-merge
|
|
276
|
+
∟ GitFlow analysis will optimize cleanup
|
|
277
|
+
∟ Session archiving automático
|
|
278
|
+
∟ Performance-optimized operations
|
|
279
|
+
|
|
280
|
+
━━━━━━━━━━━━━━━━━━━━━━━━
|
|
281
|
+
|
|
282
|
+
⏰ Created: 2025-01-27 18:30 | 🎯 Next: Code review, merge, auto-sync
|
|
283
|
+
```
|
|
284
|
+
|
|
285
|
+
---
|
|
286
|
+
|
|
287
|
+
## ⚡ Bulk Operations
|
|
288
|
+
|
|
289
|
+
### Quando Usar
|
|
290
|
+
- Criar múltiplas subtasks de uma vez
|
|
291
|
+
- Atualizar status de várias tasks
|
|
292
|
+
- Operações em lote para performance
|
|
293
|
+
|
|
294
|
+
### Limitações Importantes
|
|
295
|
+
|
|
296
|
+
#### ❌ NÃO usar `create_bulk_tasks` para hierarquia
|
|
297
|
+
```javascript
|
|
298
|
+
// ERRADO - não suporta parent parameter
|
|
299
|
+
const subtasks = await create_bulk_tasks({
|
|
300
|
+
tasks: [
|
|
301
|
+
{ name: "Subtask 1", parent: mainTaskId }, // ❌ parent ignorado!
|
|
302
|
+
{ name: "Subtask 2", parent: mainTaskId }
|
|
303
|
+
]
|
|
304
|
+
});
|
|
305
|
+
```
|
|
306
|
+
|
|
307
|
+
#### ✅ Usar `create_task` sequencial para hierarquia
|
|
308
|
+
```javascript
|
|
309
|
+
// CORRETO - cria hierarquia apropriada
|
|
310
|
+
// 1. Criar task principal
|
|
311
|
+
const mainTask = await create_task({
|
|
312
|
+
name: "🎯 Feature Principal",
|
|
313
|
+
listId: "901314121395",
|
|
314
|
+
description: "Descrição completa..."
|
|
315
|
+
});
|
|
316
|
+
|
|
317
|
+
// 2. Criar subtasks com parent
|
|
318
|
+
const subtask1 = await create_task({
|
|
319
|
+
name: "🔧 Subtask 1",
|
|
320
|
+
listId: "901314121395",
|
|
321
|
+
parent: mainTask.id, // ✅ Hierarquia correta
|
|
322
|
+
description: "..."
|
|
323
|
+
});
|
|
324
|
+
|
|
325
|
+
const subtask2 = await create_task({
|
|
326
|
+
name: "🔧 Subtask 2",
|
|
327
|
+
listId: "901314121395",
|
|
328
|
+
parent: mainTask.id, // ✅ Hierarquia correta
|
|
329
|
+
description: "..."
|
|
330
|
+
});
|
|
331
|
+
```
|
|
332
|
+
|
|
333
|
+
### Quando usar `create_bulk_tasks`
|
|
334
|
+
✅ **Bom para:** Criar múltiplas tasks independentes no mesmo nível
|
|
335
|
+
❌ **Ruim para:** Criar hierarquia (task → subtasks)
|
|
336
|
+
|
|
337
|
+
---
|
|
338
|
+
|
|
339
|
+
## 🏗️ Hierarquia de Tasks
|
|
340
|
+
|
|
341
|
+
### Estrutura de 3 Níveis
|
|
342
|
+
|
|
343
|
+
```
|
|
344
|
+
📋 TASK (Objetivo de Alto Nível)
|
|
345
|
+
├── 🔧 Subtask 1 (Componente Funcional)
|
|
346
|
+
│ ├── ✅ Checklist Item 1.1 (Ação Específica)
|
|
347
|
+
│ ├── ✅ Checklist Item 1.2
|
|
348
|
+
│ └── ✅ Checklist Item 1.3
|
|
349
|
+
└── 🔧 Subtask 2 (Componente Funcional)
|
|
350
|
+
├── ✅ Checklist Item 2.1
|
|
351
|
+
└── ✅ Checklist Item 2.2
|
|
352
|
+
```
|
|
353
|
+
|
|
354
|
+
### Implementação Correta
|
|
355
|
+
|
|
356
|
+
```javascript
|
|
357
|
+
// PASSO 1: Criar Task Principal
|
|
358
|
+
const mainTask = await mcp_clickup_create_task({
|
|
359
|
+
name: "🎯 Implementar Autenticação JWT",
|
|
360
|
+
listId: "901314121395",
|
|
361
|
+
markdown_description: `
|
|
362
|
+
## 🎯 Objetivo
|
|
363
|
+
Implementar autenticação JWT completa...
|
|
364
|
+
|
|
365
|
+
## ✅ Critérios de Aceitação
|
|
366
|
+
- [ ] Login retorna JWT válido
|
|
367
|
+
- [ ] Refresh token funciona
|
|
368
|
+
- [ ] Logout invalida tokens
|
|
369
|
+
`,
|
|
370
|
+
tags: ["feature", "security"],
|
|
371
|
+
priority: "high"
|
|
372
|
+
});
|
|
373
|
+
|
|
374
|
+
// PASSO 2: Criar Subtasks com Parent
|
|
375
|
+
const subtask1 = await mcp_clickup_create_task({
|
|
376
|
+
name: "🔧 Backend JWT Service",
|
|
377
|
+
listId: "901314121395",
|
|
378
|
+
parent: mainTask.id, // ← CRITICAL
|
|
379
|
+
markdown_description: `
|
|
380
|
+
## Objetivos
|
|
381
|
+
- Implementar geração de JWT
|
|
382
|
+
- Implementar validação de tokens
|
|
383
|
+
- Implementar refresh mechanism
|
|
384
|
+
`,
|
|
385
|
+
tags: ["subtask", "backend"]
|
|
386
|
+
});
|
|
387
|
+
|
|
388
|
+
const subtask2 = await mcp_clickup_create_task({
|
|
389
|
+
name: "🔧 Frontend Integration",
|
|
390
|
+
listId: "901314121395",
|
|
391
|
+
parent: mainTask.id, // ← CRITICAL
|
|
392
|
+
markdown_description: `
|
|
393
|
+
## Objetivos
|
|
394
|
+
- Integrar login com JWT
|
|
395
|
+
- Implementar token storage
|
|
396
|
+
- Implementar auto-refresh
|
|
397
|
+
`,
|
|
398
|
+
tags: ["subtask", "frontend"]
|
|
399
|
+
});
|
|
400
|
+
|
|
401
|
+
// PASSO 3: Adicionar Comentário de Setup
|
|
402
|
+
await mcp_clickup_create_task_comment({
|
|
403
|
+
task_id: mainTask.id,
|
|
404
|
+
comment_text: `
|
|
405
|
+
🚀 TASK SETUP COMPLETO
|
|
406
|
+
|
|
407
|
+
━━━━━━━━━━━━━━━━━━━━━━━━
|
|
408
|
+
|
|
409
|
+
📊 ESTRUTURA CRIADA:
|
|
410
|
+
▶ Task Principal: ${mainTask.id}
|
|
411
|
+
▶ Subtasks: 2 componentes funcionais
|
|
412
|
+
▶ Total Estimate: 13-17 horas
|
|
413
|
+
|
|
414
|
+
🏗️ AMBIENTE PREPARADO:
|
|
415
|
+
▶ Branch: feature/jwt-authentication ✅
|
|
416
|
+
▶ Session: .cursor/sessions/jwt-authentication/ ✅
|
|
417
|
+
▶ Docs: Architecture + Implementation ✅
|
|
418
|
+
|
|
419
|
+
━━━━━━━━━━━━━━━━━━━━━━━━
|
|
420
|
+
|
|
421
|
+
⏰ Created: ${new Date().toISOString()} | 🎯 Next: /engineer/start
|
|
422
|
+
`
|
|
423
|
+
});
|
|
424
|
+
```
|
|
425
|
+
|
|
426
|
+
---
|
|
427
|
+
|
|
428
|
+
## ✅ Checklists Nativos
|
|
429
|
+
|
|
430
|
+
### Visão Geral
|
|
431
|
+
O ClickUp suporta **checklists nativos** que são diferentes de checkboxes em markdown. Checklists nativos oferecem:
|
|
432
|
+
- ✅ Tracking interativo (resolved/unresolved)
|
|
433
|
+
- ✅ Progresso visual automático
|
|
434
|
+
- ✅ Notificações de conclusão
|
|
435
|
+
- ✅ API para leitura de status
|
|
436
|
+
|
|
437
|
+
### Estrutura Híbrida
|
|
438
|
+
|
|
439
|
+
O Sistema Onion suporta **estrutura híbrida**:
|
|
440
|
+
1. **Markdown checkboxes** na descrição (documentação)
|
|
441
|
+
2. **Checklists nativos** para tracking interativo
|
|
442
|
+
|
|
443
|
+
### Leitura de Checklists
|
|
444
|
+
|
|
445
|
+
```javascript
|
|
446
|
+
// Ler task com checklists
|
|
447
|
+
const task = await mcp_clickup_get_task({
|
|
448
|
+
task_id: "86acu8pdk",
|
|
449
|
+
subtasks: true // Incluir subtasks e seus checklists
|
|
450
|
+
});
|
|
451
|
+
|
|
452
|
+
// Analisar checklists
|
|
453
|
+
task.checklists.forEach(checklist => {
|
|
454
|
+
console.log(`Checklist: ${checklist.name}`);
|
|
455
|
+
console.log(`Progress: ${checklist.resolved}/${checklist.unresolved + checklist.resolved}`);
|
|
456
|
+
|
|
457
|
+
checklist.items.forEach(item => {
|
|
458
|
+
console.log(` ${item.resolved ? '✅' : '⬜'} ${item.name}`);
|
|
459
|
+
});
|
|
460
|
+
});
|
|
461
|
+
```
|
|
462
|
+
|
|
463
|
+
### Monitoramento de Progresso
|
|
464
|
+
|
|
465
|
+
```javascript
|
|
466
|
+
// Calcular progresso baseado em checklists
|
|
467
|
+
function calculateProgress(task) {
|
|
468
|
+
let totalItems = 0;
|
|
469
|
+
let resolvedItems = 0;
|
|
470
|
+
|
|
471
|
+
task.checklists.forEach(checklist => {
|
|
472
|
+
totalItems += checklist.unresolved + checklist.resolved;
|
|
473
|
+
resolvedItems += checklist.resolved;
|
|
474
|
+
});
|
|
475
|
+
|
|
476
|
+
return totalItems > 0 ? (resolvedItems / totalItems * 100).toFixed(1) : 0;
|
|
477
|
+
}
|
|
478
|
+
|
|
479
|
+
const progress = calculateProgress(task);
|
|
480
|
+
console.log(`Progresso: ${progress}%`);
|
|
481
|
+
```
|
|
482
|
+
|
|
483
|
+
---
|
|
484
|
+
|
|
485
|
+
## 🔄 Auto-Update Patterns
|
|
486
|
+
|
|
487
|
+
### Pattern 1: Início de Desenvolvimento (`/engineer/start`)
|
|
488
|
+
|
|
489
|
+
```javascript
|
|
490
|
+
// 1. Ler task do ClickUp
|
|
491
|
+
const task = await mcp_clickup_get_task({
|
|
492
|
+
task_id: taskId,
|
|
493
|
+
subtasks: true
|
|
494
|
+
});
|
|
495
|
+
|
|
496
|
+
// 2. Atualizar status
|
|
497
|
+
await mcp_clickup_update_task({
|
|
498
|
+
task_id: taskId,
|
|
499
|
+
status: "in progress"
|
|
500
|
+
});
|
|
501
|
+
|
|
502
|
+
// 3. Adicionar comentário de início
|
|
503
|
+
await mcp_clickup_create_task_comment({
|
|
504
|
+
task_id: taskId,
|
|
505
|
+
comment_text: `🚀 DESENVOLVIMENTO INICIADO...`
|
|
506
|
+
});
|
|
507
|
+
|
|
508
|
+
// 4. Criar mapeamento fase→subtask no context.md
|
|
509
|
+
const mapping = {
|
|
510
|
+
"Phase 1": task.subtasks[0].id,
|
|
511
|
+
"Phase 2": task.subtasks[1].id,
|
|
512
|
+
"Phase 3": task.subtasks[2].id
|
|
513
|
+
};
|
|
514
|
+
```
|
|
515
|
+
|
|
516
|
+
### Pattern 2: Progresso de Fase (`/engineer/work`)
|
|
517
|
+
|
|
518
|
+
```javascript
|
|
519
|
+
// 1. Ler mapeamento do context.md
|
|
520
|
+
const phaseMapping = readPhaseMapping();
|
|
521
|
+
|
|
522
|
+
// 2. Identificar subtask correspondente
|
|
523
|
+
const subtaskId = phaseMapping[currentPhase];
|
|
524
|
+
|
|
525
|
+
// 3. Atualizar status da subtask
|
|
526
|
+
await mcp_clickup_update_task({
|
|
527
|
+
task_id: subtaskId,
|
|
528
|
+
status: "done"
|
|
529
|
+
});
|
|
530
|
+
|
|
531
|
+
// 4. Adicionar comentário de progresso
|
|
532
|
+
await mcp_clickup_create_task_comment({
|
|
533
|
+
task_id: mainTaskId,
|
|
534
|
+
comment_text: `🔧 PROGRESSO DE DESENVOLVIMENTO...`
|
|
535
|
+
});
|
|
536
|
+
|
|
537
|
+
// 5. Atualizar plan.md
|
|
538
|
+
updatePlanMd(currentPhase, "completed");
|
|
539
|
+
```
|
|
540
|
+
|
|
541
|
+
### Pattern 3: Pull Request (`/engineer/pr`)
|
|
542
|
+
|
|
543
|
+
```javascript
|
|
544
|
+
// 1. Atualizar status
|
|
545
|
+
await mcp_clickup_update_task({
|
|
546
|
+
task_id: taskId,
|
|
547
|
+
status: "in progress",
|
|
548
|
+
tags: [...existingTags, "under-review"]
|
|
549
|
+
});
|
|
550
|
+
|
|
551
|
+
// 2. Adicionar comentário de PR
|
|
552
|
+
await mcp_clickup_create_task_comment({
|
|
553
|
+
task_id: taskId,
|
|
554
|
+
comment_text: `🚀 PULL REQUEST CREATED...`
|
|
555
|
+
});
|
|
556
|
+
```
|
|
557
|
+
|
|
558
|
+
### Pattern 4: Conclusão (`/git/sync`)
|
|
559
|
+
|
|
560
|
+
```javascript
|
|
561
|
+
// 1. Atualizar status final
|
|
562
|
+
await mcp_clickup_update_task({
|
|
563
|
+
task_id: taskId,
|
|
564
|
+
status: "done"
|
|
565
|
+
});
|
|
566
|
+
|
|
567
|
+
// 2. Adicionar comentário de conclusão
|
|
568
|
+
await mcp_clickup_create_task_comment({
|
|
569
|
+
task_id: taskId,
|
|
570
|
+
comment_text: `✅ FEATURE CONCLUÍDA E MERGED...`
|
|
571
|
+
});
|
|
572
|
+
```
|
|
573
|
+
|
|
574
|
+
---
|
|
575
|
+
|
|
576
|
+
## 🔧 Troubleshooting
|
|
577
|
+
|
|
578
|
+
### Problema: Hierarquia não criada corretamente
|
|
579
|
+
|
|
580
|
+
**Sintoma:** Subtasks aparecem como tasks independentes
|
|
581
|
+
|
|
582
|
+
**Causa:** Uso de `create_bulk_tasks` com `parent` parameter
|
|
583
|
+
|
|
584
|
+
**Solução:**
|
|
585
|
+
```javascript
|
|
586
|
+
// ❌ ERRADO
|
|
587
|
+
await create_bulk_tasks({
|
|
588
|
+
tasks: [
|
|
589
|
+
{ name: "Sub 1", parent: mainId },
|
|
590
|
+
{ name: "Sub 2", parent: mainId }
|
|
591
|
+
]
|
|
592
|
+
});
|
|
593
|
+
|
|
594
|
+
// ✅ CORRETO
|
|
595
|
+
const sub1 = await create_task({
|
|
596
|
+
name: "Sub 1",
|
|
597
|
+
parent: mainId
|
|
598
|
+
});
|
|
599
|
+
const sub2 = await create_task({
|
|
600
|
+
name: "Sub 2",
|
|
601
|
+
parent: mainId
|
|
602
|
+
});
|
|
603
|
+
```
|
|
604
|
+
|
|
605
|
+
---
|
|
606
|
+
|
|
607
|
+
### Problema: Formatação quebrada em comments
|
|
608
|
+
|
|
609
|
+
**Sintoma:** Comentários aparecem com formatação estranha
|
|
610
|
+
|
|
611
|
+
**Causa:** Uso de markdown em vez de Unicode
|
|
612
|
+
|
|
613
|
+
**Solução:**
|
|
614
|
+
```javascript
|
|
615
|
+
// ❌ ERRADO - markdown em comments
|
|
616
|
+
comment_text: `
|
|
617
|
+
## Header
|
|
618
|
+
**Bold text**
|
|
619
|
+
- List item
|
|
620
|
+
`
|
|
621
|
+
|
|
622
|
+
// ✅ CORRETO - Unicode visual
|
|
623
|
+
comment_text: `
|
|
624
|
+
🚀 TÍTULO
|
|
625
|
+
|
|
626
|
+
━━━━━━━━━━━━━━━━━━
|
|
627
|
+
|
|
628
|
+
📋 SEÇÃO:
|
|
629
|
+
▶ Item principal
|
|
630
|
+
∟ Sub-item
|
|
631
|
+
`
|
|
632
|
+
```
|
|
633
|
+
|
|
634
|
+
---
|
|
635
|
+
|
|
636
|
+
### Problema: Auto-update não funciona
|
|
637
|
+
|
|
638
|
+
**Sintoma:** Status não atualiza automaticamente
|
|
639
|
+
|
|
640
|
+
**Diagnóstico:**
|
|
641
|
+
1. Verificar se `context.md` tem task-id correto
|
|
642
|
+
2. Verificar se mapeamento fase→subtask existe
|
|
643
|
+
3. Verificar permissões da API key
|
|
644
|
+
|
|
645
|
+
**Solução:**
|
|
646
|
+
```bash
|
|
647
|
+
# 1. Verificar context.md
|
|
648
|
+
cat .cursor/sessions/<feature-slug>/context.md | grep "Task ID"
|
|
649
|
+
|
|
650
|
+
# 2. Validar mapeamento
|
|
651
|
+
/engineer/validate-phase-sync
|
|
652
|
+
|
|
653
|
+
# 3. Testar conexão ClickUp
|
|
654
|
+
# (usar comando de teste do MCP)
|
|
655
|
+
```
|
|
656
|
+
|
|
657
|
+
---
|
|
658
|
+
|
|
659
|
+
### Problema: Checklists não aparecem
|
|
660
|
+
|
|
661
|
+
**Sintoma:** Checklists nativos não são lidos
|
|
662
|
+
|
|
663
|
+
**Causa:** Não usar `subtasks: true` no `get_task`
|
|
664
|
+
|
|
665
|
+
**Solução:**
|
|
666
|
+
```javascript
|
|
667
|
+
// ❌ ERRADO
|
|
668
|
+
const task = await get_task({ task_id: id });
|
|
669
|
+
|
|
670
|
+
// ✅ CORRETO
|
|
671
|
+
const task = await get_task({
|
|
672
|
+
task_id: id,
|
|
673
|
+
subtasks: true // ← Inclui checklists
|
|
674
|
+
});
|
|
675
|
+
```
|
|
676
|
+
|
|
677
|
+
---
|
|
678
|
+
|
|
679
|
+
## 💡 Best Practices
|
|
680
|
+
|
|
681
|
+
### 1. Sempre use hierarquia correta
|
|
682
|
+
```javascript
|
|
683
|
+
// Sequência obrigatória:
|
|
684
|
+
// 1. Task principal
|
|
685
|
+
// 2. Subtasks com parent
|
|
686
|
+
// 3. Comentário de setup
|
|
687
|
+
```
|
|
688
|
+
|
|
689
|
+
### 2. Formatação apropriada por contexto
|
|
690
|
+
```javascript
|
|
691
|
+
// Descriptions: Markdown nativo
|
|
692
|
+
markdown_description: "## Header\n- List"
|
|
693
|
+
|
|
694
|
+
// Comments: Unicode visual
|
|
695
|
+
comment_text: "🚀 TÍTULO\n━━━━━━━━"
|
|
696
|
+
```
|
|
697
|
+
|
|
698
|
+
### 3. Sempre incluir timestamps
|
|
699
|
+
```javascript
|
|
700
|
+
comment_text: `
|
|
701
|
+
...
|
|
702
|
+
⏰ ${new Date().toISOString()} | 🎯 Next: ...
|
|
703
|
+
`
|
|
704
|
+
```
|
|
705
|
+
|
|
706
|
+
### 4. Mapeamento fase→subtask obrigatório
|
|
707
|
+
```markdown
|
|
708
|
+
## 📋 Phase-Subtask Mapping
|
|
709
|
+
- **Phase 1**: Backend → Subtask ID: 86acu8peq
|
|
710
|
+
- **Phase 2**: Frontend → Subtask ID: 86acu8pew
|
|
711
|
+
```
|
|
712
|
+
|
|
713
|
+
### 5. Validar estrutura após criação
|
|
714
|
+
```javascript
|
|
715
|
+
const task = await get_task({
|
|
716
|
+
task_id: mainTaskId,
|
|
717
|
+
subtasks: true
|
|
718
|
+
});
|
|
719
|
+
|
|
720
|
+
console.log(`Subtasks: ${task.subtasks.length}`);
|
|
721
|
+
// Esperado: >= 2
|
|
722
|
+
```
|
|
723
|
+
|
|
724
|
+
---
|
|
725
|
+
|
|
726
|
+
## 🔗 Documentos Relacionados
|
|
727
|
+
|
|
728
|
+
- [Guia de Comandos](./commands-guide.md) - Comandos que usam ClickUp
|
|
729
|
+
- [Fluxos de Engenharia](./engineering-flows.md) - Workflows com ClickUp
|
|
730
|
+
- [Exemplos Práticos](./practical-examples.md) - Casos de uso reais
|
|
731
|
+
- [Configuração Inicial](./getting-started.md) - Setup do ClickUp MCP
|
|
732
|
+
|
|
733
|
+
---
|
|
734
|
+
|
|
735
|
+
**Última atualização:** 2025-01-27
|
|
736
|
+
**Versão:** 2.0
|
|
737
|
+
**ClickUp MCP:** Integração completa
|
|
738
|
+
|