@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,329 @@
|
|
|
1
|
+
# 📋 Estratégia de Critérios de Aceitação com Checkboxes Interativos
|
|
2
|
+
|
|
3
|
+
## 🎯 Objetivo
|
|
4
|
+
|
|
5
|
+
Usar **checkboxes markdown interativos** nativos do ClickUp para rastreamento visual de critérios de aceitação durante desenvolvimento.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## ✅ Como Funciona
|
|
10
|
+
|
|
11
|
+
### O ClickUp Renderiza Checkboxes Markdown
|
|
12
|
+
|
|
13
|
+
O ClickUp renderiza automaticamente checkboxes markdown em descriptions:
|
|
14
|
+
|
|
15
|
+
```markdown
|
|
16
|
+
- [ ] Critério não marcado
|
|
17
|
+
- [x] Critério marcado
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
**Resultado no ClickUp:**
|
|
21
|
+
- ☑️ Checkboxes **completamente interativos**
|
|
22
|
+
- ✅ Podem ser **marcados/desmarcados** dinamicamente
|
|
23
|
+
- 📊 **Rastreamento visual** de progresso
|
|
24
|
+
- 🎯 **Não requer API** especial, tudo via markdown
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## 📝 Template de Critérios de Aceitação
|
|
29
|
+
|
|
30
|
+
### Para DESCRIPTIONS (Markdown com Checkboxes):
|
|
31
|
+
|
|
32
|
+
```markdown
|
|
33
|
+
## 🎯 Objetivo da Task
|
|
34
|
+
|
|
35
|
+
[DESCRIÇÃO_DETALHADA]
|
|
36
|
+
|
|
37
|
+
---
|
|
38
|
+
|
|
39
|
+
## 📋 Escopo de Implementação
|
|
40
|
+
|
|
41
|
+
### ✅ Funcionalidades:
|
|
42
|
+
- [x] Feature A - Implementada
|
|
43
|
+
- [ ] Feature B - Em progresso
|
|
44
|
+
- [ ] Feature C - Pendente
|
|
45
|
+
|
|
46
|
+
### 🔧 Arquitetura Técnica:
|
|
47
|
+
- [x] Componente X modificado
|
|
48
|
+
- [ ] Integration Y implementada
|
|
49
|
+
|
|
50
|
+
### 📊 Métricas Esperadas:
|
|
51
|
+
|
|
52
|
+
| Metric | Before | After | Target |
|
|
53
|
+
|--------|--------|-------|--------|
|
|
54
|
+
| Performance | N/A | [VALOR] | ✅ |
|
|
55
|
+
| Coverage | N/A | [VALOR] | ✅ |
|
|
56
|
+
|
|
57
|
+
---
|
|
58
|
+
|
|
59
|
+
## ✅ Critérios de Aceitação
|
|
60
|
+
|
|
61
|
+
- [ ] Funcionalidade A implementada
|
|
62
|
+
- [ ] Testes passando com cobertura > 95%
|
|
63
|
+
- [ ] Documentation atualizada
|
|
64
|
+
- [ ] Performance dentro do target
|
|
65
|
+
- [ ] Code review aprovado
|
|
66
|
+
|
|
67
|
+
---
|
|
68
|
+
|
|
69
|
+
**🎯 Success Metric**: Todos os critérios marcados = Task completa
|
|
70
|
+
**🕒 Timeline**: [PRAZO_ESTIMADO]
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
---
|
|
74
|
+
|
|
75
|
+
## 🔄 Fluxo de Atualização Durante Desenvolvimento
|
|
76
|
+
|
|
77
|
+
### Quando Usar `/engineer/work`:
|
|
78
|
+
|
|
79
|
+
```
|
|
80
|
+
Fase 1: Backend Implementation
|
|
81
|
+
├── ✅ COMPLETA
|
|
82
|
+
└── Marcar critérios relacionados como [x]
|
|
83
|
+
|
|
84
|
+
Fase 2: Frontend Integration
|
|
85
|
+
├── 🔄 EM PROGRESSO
|
|
86
|
+
└── Atualizar checkboxes conforme progresso
|
|
87
|
+
|
|
88
|
+
Fase 3: Testing & QA
|
|
89
|
+
├── ⏳ PENDENTE
|
|
90
|
+
└── Manter como [ ] até início
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
### Atualização Automática de Checkboxes:
|
|
94
|
+
|
|
95
|
+
**Quando uma fase é completada:**
|
|
96
|
+
|
|
97
|
+
1. **Identificar critérios relacionados** àquela fase
|
|
98
|
+
2. **Atualizar description** marcando checkboxes `[x]`
|
|
99
|
+
3. **Adicionar comentário** com progresso
|
|
100
|
+
4. **Manter sincronizado** conforme desenvolvimento
|
|
101
|
+
|
|
102
|
+
---
|
|
103
|
+
|
|
104
|
+
## 💻 Implementação em Comandos
|
|
105
|
+
|
|
106
|
+
### Em `/engineer/work`:
|
|
107
|
+
|
|
108
|
+
```typescript
|
|
109
|
+
// Quando uma fase é completada
|
|
110
|
+
async function completePhase(taskId, phaseName, criteria) {
|
|
111
|
+
// 1. Buscar description atual
|
|
112
|
+
const task = await mcp_clickup_get_task({ task_id: taskId });
|
|
113
|
+
let description = task.description;
|
|
114
|
+
|
|
115
|
+
// 2. Marcar critérios relacionados
|
|
116
|
+
for (const criterion of criteria) {
|
|
117
|
+
// Trocar "- [ ]" por "- [x]" para este critério
|
|
118
|
+
description = description.replace(
|
|
119
|
+
`- [ ] ${criterion}`,
|
|
120
|
+
`- [x] ${criterion}`
|
|
121
|
+
);
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
// 3. Atualizar description com checkboxes marcados
|
|
125
|
+
await mcp_clickup_update_task({
|
|
126
|
+
task_id: taskId,
|
|
127
|
+
markdown_description: description
|
|
128
|
+
});
|
|
129
|
+
|
|
130
|
+
// 4. Adicionar comentário com progresso
|
|
131
|
+
await mcp_clickup_create_task_comment({
|
|
132
|
+
task_id: taskId,
|
|
133
|
+
comment_text: `✅ Fase Completada: ${phaseName}
|
|
134
|
+
|
|
135
|
+
Critérios de aceitação relacionados marcados como completos.
|
|
136
|
+
Veja description para status visual completo.`
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
### Em `/product/check-acceptance`:
|
|
142
|
+
|
|
143
|
+
```typescript
|
|
144
|
+
// Validar e marcar automaticamente critérios
|
|
145
|
+
async function checkAcceptanceCriteria(taskId) {
|
|
146
|
+
// 1. Buscar task
|
|
147
|
+
const task = await mcp_clickup_get_task({ task_id: taskId });
|
|
148
|
+
|
|
149
|
+
// 2. Extrair critérios da description
|
|
150
|
+
const criteria = extractCriteria(task.markdown_description);
|
|
151
|
+
|
|
152
|
+
// 3. Validar cada um
|
|
153
|
+
let updated = false;
|
|
154
|
+
let newDescription = task.markdown_description;
|
|
155
|
+
|
|
156
|
+
for (const criterion of criteria) {
|
|
157
|
+
const isValid = await validateCriterion(criterion);
|
|
158
|
+
|
|
159
|
+
if (isValid && criterion.status === 'unchecked') {
|
|
160
|
+
// Marcar como válido
|
|
161
|
+
newDescription = newDescription.replace(
|
|
162
|
+
`- [ ] ${criterion.text}`,
|
|
163
|
+
`- [x] ${criterion.text} ✅`
|
|
164
|
+
);
|
|
165
|
+
updated = true;
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
// 4. Atualizar se houve mudanças
|
|
170
|
+
if (updated) {
|
|
171
|
+
await mcp_clickup_update_task({
|
|
172
|
+
task_id: taskId,
|
|
173
|
+
markdown_description: newDescription
|
|
174
|
+
});
|
|
175
|
+
|
|
176
|
+
console.log(`✅ ${countMarked(newDescription)}/${criteria.length} critérios marcados`);
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
---
|
|
182
|
+
|
|
183
|
+
## 📊 Exemplo Prático
|
|
184
|
+
|
|
185
|
+
### Task Inicial (Todos pendentes):
|
|
186
|
+
|
|
187
|
+
```markdown
|
|
188
|
+
## ✅ Critérios de Aceitação
|
|
189
|
+
|
|
190
|
+
- [ ] Usuário consegue fazer login com email/senha
|
|
191
|
+
- [ ] JWT é gerado e retornado após login
|
|
192
|
+
- [ ] Refresh token permite renovação de sessão
|
|
193
|
+
- [ ] Rotas protegidas bloqueam acesso não autenticado
|
|
194
|
+
- [ ] Logout invalida tokens corretamente
|
|
195
|
+
- [ ] Testes de segurança passando
|
|
196
|
+
- [ ] Documentação de API atualizada
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
**Progresso Visual:** 0/7 completos
|
|
200
|
+
|
|
201
|
+
---
|
|
202
|
+
|
|
203
|
+
### Após Fase 1 (Backend completa):
|
|
204
|
+
|
|
205
|
+
```markdown
|
|
206
|
+
## ✅ Critérios de Aceitação
|
|
207
|
+
|
|
208
|
+
- [x] Usuário consegue fazer login com email/senha
|
|
209
|
+
- [x] JWT é gerado e retornado após login
|
|
210
|
+
- [x] Refresh token permite renovação de sessão
|
|
211
|
+
- [ ] Rotas protegidas bloqueam acesso não autenticado
|
|
212
|
+
- [x] Logout invalida tokens corretamente
|
|
213
|
+
- [ ] Testes de segurança passando
|
|
214
|
+
- [ ] Documentação de API atualizada
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
**Progresso Visual:** 4/7 completos
|
|
218
|
+
|
|
219
|
+
---
|
|
220
|
+
|
|
221
|
+
### Após Fase 2 (Frontend completa):
|
|
222
|
+
|
|
223
|
+
```markdown
|
|
224
|
+
## ✅ Critérios de Aceitação
|
|
225
|
+
|
|
226
|
+
- [x] Usuário consegue fazer login com email/senha
|
|
227
|
+
- [x] JWT é gerado e retornado após login
|
|
228
|
+
- [x] Refresh token permite renovação de sessão
|
|
229
|
+
- [x] Rotas protegidas bloqueam acesso não autenticado
|
|
230
|
+
- [x] Logout invalida tokens corretamente
|
|
231
|
+
- [ ] Testes de segurança passando
|
|
232
|
+
- [ ] Documentação de API atualizada
|
|
233
|
+
```
|
|
234
|
+
|
|
235
|
+
**Progresso Visual:** 5/7 completos
|
|
236
|
+
|
|
237
|
+
---
|
|
238
|
+
|
|
239
|
+
### Após Validação (Todos completos):
|
|
240
|
+
|
|
241
|
+
```markdown
|
|
242
|
+
## ✅ Critérios de Aceitação
|
|
243
|
+
|
|
244
|
+
- [x] Usuário consegue fazer login com email/senha ✅
|
|
245
|
+
- [x] JWT é gerado e retornado após login ✅
|
|
246
|
+
- [x] Refresh token permite renovação de sessão ✅
|
|
247
|
+
- [x] Rotas protegidas bloqueam acesso não autenticado ✅
|
|
248
|
+
- [x] Logout invalida tokens corretamente ✅
|
|
249
|
+
- [x] Testes de segurança passando ✅
|
|
250
|
+
- [x] Documentação de API atualizada ✅
|
|
251
|
+
```
|
|
252
|
+
|
|
253
|
+
**Progresso Visual:** 7/7 completos ✅
|
|
254
|
+
|
|
255
|
+
---
|
|
256
|
+
|
|
257
|
+
## 🎯 Benefícios
|
|
258
|
+
|
|
259
|
+
### Para Desenvolvedores:
|
|
260
|
+
- ✅ Visão clara do progresso
|
|
261
|
+
- ✅ Feedback imediato ao marcar
|
|
262
|
+
- ✅ Rastreamento de cada critério
|
|
263
|
+
- ✅ Fácil identificar o que falta
|
|
264
|
+
|
|
265
|
+
### Para Product Owners:
|
|
266
|
+
- ✅ Status visual na description
|
|
267
|
+
- ✅ Não precisa abrir comentários
|
|
268
|
+
- ✅ Fácil ver completude da task
|
|
269
|
+
- ✅ Melhor comunicação do progresso
|
|
270
|
+
|
|
271
|
+
### Para Code Reviewers:
|
|
272
|
+
- ✅ Validação rápida de requisitos
|
|
273
|
+
- ✅ Checklist de aceitar/rejeitar
|
|
274
|
+
- ✅ Rastreabilidade de critérios
|
|
275
|
+
- ✅ Menos discussão sobre requisitos
|
|
276
|
+
|
|
277
|
+
---
|
|
278
|
+
|
|
279
|
+
## 🔧 Boas Práticas
|
|
280
|
+
|
|
281
|
+
### ✅ Fazer:
|
|
282
|
+
- ✅ Manter checkboxes simples e diretos
|
|
283
|
+
- ✅ Descrever o que cada critério testa
|
|
284
|
+
- ✅ Usar linguagem clara e acionável
|
|
285
|
+
- ✅ Atualizar regularmente conforme progresso
|
|
286
|
+
- ✅ Marcar como completo quando realmente está pronto
|
|
287
|
+
|
|
288
|
+
### ❌ Evitar:
|
|
289
|
+
- ❌ Critérios muito vagos ou ambíguos
|
|
290
|
+
- ❌ Criterios não mensuráveis
|
|
291
|
+
- ❌ Marcar como completo sem validar
|
|
292
|
+
- ❌ Deixar checkboxes desatualizados
|
|
293
|
+
- ❌ Misturar com informações técnicas detalhadas
|
|
294
|
+
|
|
295
|
+
---
|
|
296
|
+
|
|
297
|
+
## 📚 Integração com Outros Comandos
|
|
298
|
+
|
|
299
|
+
### `/product/task`
|
|
300
|
+
- Cria task com template de checkboxes
|
|
301
|
+
- Descrição já inclui seção de critérios
|
|
302
|
+
|
|
303
|
+
### `/engineer/work`
|
|
304
|
+
- Marca checkboxes ao completar fases
|
|
305
|
+
- Atualiza description conforme progresso
|
|
306
|
+
|
|
307
|
+
### `/product/check-acceptance`
|
|
308
|
+
- Valida automaticamente critérios
|
|
309
|
+
- Marca como completo quando validado
|
|
310
|
+
|
|
311
|
+
### `/engineer/pr`
|
|
312
|
+
- Referencia checkboxes na PR
|
|
313
|
+
- Valida que todos estão marcados antes de merge
|
|
314
|
+
|
|
315
|
+
---
|
|
316
|
+
|
|
317
|
+
## 🚀 Próximos Passos
|
|
318
|
+
|
|
319
|
+
1. **Usar em `/product/task`** - Template com checkboxes
|
|
320
|
+
2. **Atualizar `/engineer/work`** - Marcar conforme completa
|
|
321
|
+
3. **Criar `/product/check-acceptance`** - Validação automática
|
|
322
|
+
4. **Testar com task real** - Validar fluxo completo
|
|
323
|
+
|
|
324
|
+
---
|
|
325
|
+
|
|
326
|
+
**Última atualização**: 2025-11-05
|
|
327
|
+
**Status**: Documentado e pronto para implementação
|
|
328
|
+
**Prioridade**: ALTA - Rastreamento visual de progresso
|
|
329
|
+
|
|
@@ -0,0 +1,318 @@
|
|
|
1
|
+
# 🔄 Estratégia de Auto-Update ClickUp
|
|
2
|
+
|
|
3
|
+
Este documento define quando e como os comandos do Sistema Onion devem **automaticamente atualizar** tasks no ClickUp vs quando devem **pedir confirmação** do usuário.
|
|
4
|
+
|
|
5
|
+
## 🎯 **Princípios Fundamentais**
|
|
6
|
+
|
|
7
|
+
### **✅ Atualização AUTOMÁTICA quando:**
|
|
8
|
+
- ✅ **Baixo risco** - mudança é informativa/progress tracking
|
|
9
|
+
- ✅ **Esperado pelo usuário** - parte natural do comando
|
|
10
|
+
- ✅ **Reversível** - pode ser desfeito facilmente
|
|
11
|
+
- ✅ **Status tracking** - progresso natural do workflow
|
|
12
|
+
|
|
13
|
+
### **⚠️ Confirmação NECESSÁRIA quando:**
|
|
14
|
+
- ⚠️ **Alto impacto** - mudança afeta timeline/priority/assignees
|
|
15
|
+
- ⚠️ **Irreversível** - não pode ser facilmente desfeito
|
|
16
|
+
- ⚠️ **Decisão de negócio** - requer aprovação stakeholder
|
|
17
|
+
- ⚠️ **Múltiplas opções** - várias alternativas possíveis
|
|
18
|
+
|
|
19
|
+
## 📊 **Matriz de Decisão por Comando**
|
|
20
|
+
|
|
21
|
+
| Comando | Auto-Update | Confirmação | Detalhes |
|
|
22
|
+
|---------|-------------|-------------|----------|
|
|
23
|
+
| **`/product/task`** | ✅ Status → "To Do" | - | Task criada em estado inicial |
|
|
24
|
+
| **`/engineer/start`** | ✅ Status → "In Progress" | - | Início natural do desenvolvimento |
|
|
25
|
+
| **`/engineer/work`** | ✅ Comentário DETALHADO na subtask<br>✅ Comentário RESUMIDO na task principal<br>✅ Status da subtask → "Done" | - | **ESTRATÉGIA DUAL** - Ver `.cursor/docs/clickup/clickup-dual-comment-strategy.md` |
|
|
26
|
+
| **`/engineer/pre-pr`** | ✅ Comments de checklist | - | Preparação para PR |
|
|
27
|
+
| **`/engineer/pr`** | ✅ Status → "In Progress"<br>✅ Tag "under-review"<br>✅ Comment PR details | - | **JÁ IMPLEMENTADO** |
|
|
28
|
+
| **`/product/task-check`** | ✅ Comments de verificação | ⚠️ Status change | Verificação é tracking, mas status requer decisão |
|
|
29
|
+
| **`/product/validate-task`** | ✅ Comments de análise | ⚠️ Priority/Status changes | Análise é tracking, mudanças estruturais requerem aprovação |
|
|
30
|
+
| **`/engineer/bump`** | ✅ Comments de versioning | - | Tracking de releases |
|
|
31
|
+
| **`/engineer/docs`** | ✅ Comments de documentação | - | Updates de docs |
|
|
32
|
+
|
|
33
|
+
## 🔧 **Implementação por Comando**
|
|
34
|
+
|
|
35
|
+
### **1. `/product/task-check <task-id>`**
|
|
36
|
+
|
|
37
|
+
#### **Auto-Update SEMPRE:**
|
|
38
|
+
```javascript
|
|
39
|
+
// Comentário automático com resultados
|
|
40
|
+
create_task_comment({
|
|
41
|
+
taskId: taskId,
|
|
42
|
+
commentText: `🔍 VERIFICAÇÃO DE IMPLEMENTAÇÃO
|
|
43
|
+
|
|
44
|
+
━━━━━━━━━━━━━━━━━━━━━━━━
|
|
45
|
+
|
|
46
|
+
📊 RESULTADO DA VERIFICAÇÃO:
|
|
47
|
+
∟ Status: ${verificationStatus}
|
|
48
|
+
∟ Completude: ${completionPercentage}%
|
|
49
|
+
∟ Arquivos verificados: ${filesChecked}
|
|
50
|
+
|
|
51
|
+
✅ IMPLEMENTADO:
|
|
52
|
+
∟ ${implementedFeatures.join('\n ∟ ')}
|
|
53
|
+
|
|
54
|
+
⚠️ PENDENTE:
|
|
55
|
+
∟ ${pendingItems.join('\n ∟ ')}
|
|
56
|
+
|
|
57
|
+
━━━━━━━━━━━━━━━━━━━━━━━━
|
|
58
|
+
|
|
59
|
+
⏰ Verificado: ${timestamp} | 🎯 Próximo: ${nextAction}`
|
|
60
|
+
})
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
#### **Confirmação SE necessário:**
|
|
64
|
+
```javascript
|
|
65
|
+
if (verificationStatus === 'COMPLETE' && currentStatus !== 'Done') {
|
|
66
|
+
// Perguntar se deve mover para Done
|
|
67
|
+
const userConfirm = await askUser("Task verificada como completa. Mover status para 'Done'?")
|
|
68
|
+
if (userConfirm) {
|
|
69
|
+
update_task({ taskId, status: 'Done' })
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
### **2. `/product/validate-task <task-id>`**
|
|
75
|
+
|
|
76
|
+
#### **Auto-Update SEMPRE:**
|
|
77
|
+
```javascript
|
|
78
|
+
create_task_comment({
|
|
79
|
+
taskId: taskId,
|
|
80
|
+
commentText: `📊 VALIDAÇÃO ESTRATÉGICA
|
|
81
|
+
|
|
82
|
+
━━━━━━━━━━━━━━━━━━━━━━━━
|
|
83
|
+
|
|
84
|
+
🎯 ANÁLISE EXECUTIVA:
|
|
85
|
+
∟ Viabilidade: ${viabilityScore}/10
|
|
86
|
+
∟ Alinhamento: ${alignmentScore}/10
|
|
87
|
+
∟ Complexidade: ${complexityLevel}
|
|
88
|
+
|
|
89
|
+
✅ PONTOS FORTES:
|
|
90
|
+
∟ ${strongPoints.join('\n ∟ ')}
|
|
91
|
+
|
|
92
|
+
⚠️ RISCOS IDENTIFICADOS:
|
|
93
|
+
∟ ${risks.join('\n ∟ ')}
|
|
94
|
+
|
|
95
|
+
💡 RECOMENDAÇÕES:
|
|
96
|
+
∟ ${recommendations.join('\n ∟ ')}
|
|
97
|
+
|
|
98
|
+
━━━━━━━━━━━━━━━━━━━━━━━━
|
|
99
|
+
|
|
100
|
+
⏰ Validado: ${timestamp} | 🎯 Status: ${validationResult}`
|
|
101
|
+
})
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
#### **Confirmação PARA mudanças estruturais:**
|
|
105
|
+
```javascript
|
|
106
|
+
if (recommendations.includes('PRIORITY_CHANGE')) {
|
|
107
|
+
const newPriority = await askUser(`Recomendo mudar prioridade para ${suggestedPriority}. Confirmar?`)
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
if (recommendations.includes('SCOPE_REDUCTION')) {
|
|
111
|
+
const confirmed = await askUser(`Task muito complexa. Quebrar em subtasks?`)
|
|
112
|
+
}
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
### **3. `/engineer/work` (ESTRATÉGIA DUAL)**
|
|
116
|
+
|
|
117
|
+
#### **Auto-Update SEMPRE (em ORDEM):**
|
|
118
|
+
|
|
119
|
+
**1. Comentário DETALHADO na SUBTASK:**
|
|
120
|
+
```javascript
|
|
121
|
+
// Comentário técnico completo na subtask correspondente
|
|
122
|
+
const subtaskId = getSubtaskIdForPhase(currentPhase, contextMd);
|
|
123
|
+
|
|
124
|
+
await mcp_clickup_create_task_comment({
|
|
125
|
+
task_id: subtaskId, // ← SUBTASK ID
|
|
126
|
+
workspace_id: workspaceId,
|
|
127
|
+
comment_text: `🔧 FASE COMPLETADA: ${phaseName}
|
|
128
|
+
|
|
129
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
130
|
+
|
|
131
|
+
📁 ARQUIVOS MODIFICADOS:
|
|
132
|
+
∟ ${file1}
|
|
133
|
+
∟ ${file2}
|
|
134
|
+
∟ ... e mais ${moreFiles.length} arquivos
|
|
135
|
+
|
|
136
|
+
🔧 IMPLEMENTAÇÕES:
|
|
137
|
+
▶ ${implementation1}
|
|
138
|
+
▶ ${implementation2}
|
|
139
|
+
|
|
140
|
+
✅ TESTES ADICIONADOS:
|
|
141
|
+
∟ ${testFile1} (${testCount1} testes)
|
|
142
|
+
∟ Cobertura: ${coverage}%
|
|
143
|
+
|
|
144
|
+
💡 DECISÕES TÉCNICAS:
|
|
145
|
+
∟ ${decision1}
|
|
146
|
+
∟ ${decision2}
|
|
147
|
+
|
|
148
|
+
🚀 PRÓXIMOS PASSOS:
|
|
149
|
+
∟ ${nextPhase}
|
|
150
|
+
∟ ${nextAction1}
|
|
151
|
+
|
|
152
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
153
|
+
|
|
154
|
+
⏰ Completado: ${timestamp} | 🎯 Status: Done`
|
|
155
|
+
});
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
**2. Atualizar STATUS da SUBTASK:**
|
|
159
|
+
```javascript
|
|
160
|
+
await mcp_clickup_update_task({
|
|
161
|
+
task_id: subtaskId, // ← SUBTASK ID
|
|
162
|
+
workspace_id: workspaceId,
|
|
163
|
+
status: 'Done'
|
|
164
|
+
});
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
**3. Comentário RESUMIDO na TASK PRINCIPAL:**
|
|
168
|
+
```javascript
|
|
169
|
+
const mainTaskId = getMainTaskId(contextMd);
|
|
170
|
+
|
|
171
|
+
await mcp_clickup_create_task_comment({
|
|
172
|
+
task_id: mainTaskId, // ← MAIN TASK ID
|
|
173
|
+
workspace_id: workspaceId,
|
|
174
|
+
comment_text: `📝 PROGRESSO: Fase ${phaseNum}/${totalPhases} Completada
|
|
175
|
+
|
|
176
|
+
✅ ${phaseName} - Concluída
|
|
177
|
+
∟ Subtask: #${subtaskId}
|
|
178
|
+
∟ Detalhes: Ver comentário na subtask
|
|
179
|
+
|
|
180
|
+
🎯 Próximo: Fase ${nextPhaseNum} - ${nextPhaseName}
|
|
181
|
+
|
|
182
|
+
⏰ ${timestamp}`
|
|
183
|
+
});
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
**📚 Documentação completa**: `.cursor/docs/clickup/clickup-dual-comment-strategy.md`
|
|
187
|
+
|
|
188
|
+
### **4. `/engineer/start <slug>` (quando sessão tem task-id)**
|
|
189
|
+
|
|
190
|
+
#### **Auto-Update SEMPRE:**
|
|
191
|
+
```javascript
|
|
192
|
+
update_task({
|
|
193
|
+
taskId: sessionTaskId,
|
|
194
|
+
status: 'In Progress'
|
|
195
|
+
})
|
|
196
|
+
|
|
197
|
+
create_task_comment({
|
|
198
|
+
taskId: sessionTaskId,
|
|
199
|
+
commentText: `🚀 DESENVOLVIMENTO INICIADO
|
|
200
|
+
|
|
201
|
+
━━━━━━━━━━━━━━━━━━━━━━━━
|
|
202
|
+
|
|
203
|
+
🏗️ SESSÃO ATIVADA:
|
|
204
|
+
▶ Branch: ${featureBranch}
|
|
205
|
+
▶ Sessão: .cursor/sessions/${slug}/
|
|
206
|
+
▶ Arquitetura: Definida e aprovada
|
|
207
|
+
|
|
208
|
+
📋 PLANO DE IMPLEMENTAÇÃO:
|
|
209
|
+
∟ ${phases.join('\n ∟ ')}
|
|
210
|
+
|
|
211
|
+
━━━━━━━━━━━━━━━━━━━━━━━━
|
|
212
|
+
|
|
213
|
+
⏰ Iniciado: ${timestamp} | 🎯 Próximo: Implementar Fase 1`
|
|
214
|
+
})
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
## ⚙️ **Configuração por Comando**
|
|
218
|
+
|
|
219
|
+
### **Pattern de Implementação:**
|
|
220
|
+
|
|
221
|
+
```typescript
|
|
222
|
+
interface AutoUpdateConfig {
|
|
223
|
+
command: string
|
|
224
|
+
autoUpdates: {
|
|
225
|
+
status?: string
|
|
226
|
+
tags?: string[]
|
|
227
|
+
comments: boolean
|
|
228
|
+
properties?: Record<string, any>
|
|
229
|
+
}
|
|
230
|
+
confirmationRequired: {
|
|
231
|
+
statusChanges?: string[]
|
|
232
|
+
priorityChanges?: boolean
|
|
233
|
+
assigneeChanges?: boolean
|
|
234
|
+
scopeChanges?: boolean
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
const commandConfigs: AutoUpdateConfig[] = [
|
|
239
|
+
{
|
|
240
|
+
command: '/product/task-check',
|
|
241
|
+
autoUpdates: {
|
|
242
|
+
comments: true, // Sempre
|
|
243
|
+
tags: ['verified'] // Se verificação passou
|
|
244
|
+
},
|
|
245
|
+
confirmationRequired: {
|
|
246
|
+
statusChanges: ['Done', 'Closed'], // Só com confirmação
|
|
247
|
+
priorityChanges: true
|
|
248
|
+
}
|
|
249
|
+
},
|
|
250
|
+
{
|
|
251
|
+
command: '/engineer/pr',
|
|
252
|
+
autoUpdates: {
|
|
253
|
+
status: 'In Progress', // Automático
|
|
254
|
+
tags: ['under-review'], // Automático
|
|
255
|
+
comments: true // Automático
|
|
256
|
+
},
|
|
257
|
+
confirmationRequired: {} // Nenhuma confirmação necessária
|
|
258
|
+
}
|
|
259
|
+
// ... outros comandos
|
|
260
|
+
]
|
|
261
|
+
```
|
|
262
|
+
|
|
263
|
+
## 🎯 **Casos Especiais**
|
|
264
|
+
|
|
265
|
+
### **1. Task não encontrada na sessão atual**
|
|
266
|
+
```javascript
|
|
267
|
+
// Se comando é executado mas não há task-id na sessão
|
|
268
|
+
if (!currentSessionTaskId && taskIdFromArgs) {
|
|
269
|
+
// Usar task-id fornecido pelo usuário
|
|
270
|
+
// Auto-update OK
|
|
271
|
+
} else if (!currentSessionTaskId && !taskIdFromArgs) {
|
|
272
|
+
// Perguntar qual task atualizar
|
|
273
|
+
const taskId = await askUser("Qual task ID devo atualizar?")
|
|
274
|
+
}
|
|
275
|
+
```
|
|
276
|
+
|
|
277
|
+
### **2. Múltiplas tasks em sessão**
|
|
278
|
+
```javascript
|
|
279
|
+
// Se sessão tem task pai + subtasks
|
|
280
|
+
if (sessionHasMultipleTasks) {
|
|
281
|
+
// Sempre atualizar task principal
|
|
282
|
+
// Subtasks só com confirmação
|
|
283
|
+
}
|
|
284
|
+
```
|
|
285
|
+
|
|
286
|
+
### **3. Task já finalizada**
|
|
287
|
+
```javascript
|
|
288
|
+
if (taskStatus === 'Done' || taskStatus === 'Closed') {
|
|
289
|
+
const confirm = await askUser("Task já está finalizada. Ainda assim atualizar?")
|
|
290
|
+
if (!confirm) return
|
|
291
|
+
}
|
|
292
|
+
```
|
|
293
|
+
|
|
294
|
+
## 📝 **Implementação nos Comandos**
|
|
295
|
+
|
|
296
|
+
Cada comando deve incluir esta seção antes dos argumentos:
|
|
297
|
+
|
|
298
|
+
```markdown
|
|
299
|
+
## 🔄 **Auto-Update ClickUp**
|
|
300
|
+
|
|
301
|
+
Este comando **automaticamente atualiza** a task ClickUp quando:
|
|
302
|
+
- ✅ Adiciona comentário com resultados da verificação
|
|
303
|
+
- ✅ Aplica tag 'verified' se verificação passou
|
|
304
|
+
|
|
305
|
+
Este comando **pede confirmação** para:
|
|
306
|
+
- ⚠️ Mudança de status para 'Done'
|
|
307
|
+
- ⚠️ Alteração de prioridade baseada na análise
|
|
308
|
+
- ⚠️ Quebra da task em subtasks
|
|
309
|
+
|
|
310
|
+
### **📋 Identificação da Task:**
|
|
311
|
+
1. **Sessão ativa**: Usa task-id do arquivo `context.md`
|
|
312
|
+
2. **Argumento fornecido**: Usa task-id passado pelo usuário
|
|
313
|
+
3. **Não identificada**: Pergunta ao usuário qual task atualizar
|
|
314
|
+
```
|
|
315
|
+
|
|
316
|
+
---
|
|
317
|
+
|
|
318
|
+
**Esta estratégia garante produtividade máxima com controle adequado sobre mudanças críticas! 🚀**
|