flyee 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +134 -0
- package/bin/install.js +357 -0
- package/bridge/bridge.py +1780 -0
- package/bridge/local_tracker.py +722 -0
- package/core/agents/backend-specialist.md +266 -0
- package/core/agents/code-archaeologist.md +106 -0
- package/core/agents/database-architect.md +226 -0
- package/core/agents/debugger.md +225 -0
- package/core/agents/devops-engineer.md +323 -0
- package/core/agents/documentation-writer.md +104 -0
- package/core/agents/explorer-agent.md +73 -0
- package/core/agents/frontend-specialist.md +743 -0
- package/core/agents/game-developer.md +162 -0
- package/core/agents/mobile-developer.md +377 -0
- package/core/agents/orchestrator.md +416 -0
- package/core/agents/penetration-tester.md +188 -0
- package/core/agents/performance-optimizer.md +187 -0
- package/core/agents/product-manager.md +112 -0
- package/core/agents/product-owner.md +95 -0
- package/core/agents/project-planner.md +470 -0
- package/core/agents/qa-automation-engineer.md +103 -0
- package/core/agents/security-auditor.md +170 -0
- package/core/agents/seo-specialist.md +111 -0
- package/core/agents/stitch-designer.md +190 -0
- package/core/agents/tdd-reviewer.md +282 -0
- package/core/agents/test-engineer.md +158 -0
- package/core/scripts/auto_preview.py +148 -0
- package/core/scripts/checklist.py +243 -0
- package/core/scripts/cost_report.py +149 -0
- package/core/scripts/doc-sync-check.py +461 -0
- package/core/scripts/parse_user_stories.py +79 -0
- package/core/scripts/prepare_notion_updates.py +172 -0
- package/core/scripts/print_create_payload.py +18 -0
- package/core/scripts/session_manager.py +120 -0
- package/core/scripts/task_complete.py +127 -0
- package/core/scripts/verify_all.py +327 -0
- package/core/skills/analytics-strategy/SKILL.md +128 -0
- package/core/skills/api-patterns/SKILL.md +81 -0
- package/core/skills/api-patterns/api-style.md +42 -0
- package/core/skills/api-patterns/auth.md +24 -0
- package/core/skills/api-patterns/documentation.md +26 -0
- package/core/skills/api-patterns/graphql.md +41 -0
- package/core/skills/api-patterns/rate-limiting.md +31 -0
- package/core/skills/api-patterns/response.md +37 -0
- package/core/skills/api-patterns/rest.md +40 -0
- package/core/skills/api-patterns/scripts/api_validator.py +211 -0
- package/core/skills/api-patterns/security-testing.md +122 -0
- package/core/skills/api-patterns/trpc.md +41 -0
- package/core/skills/api-patterns/versioning.md +22 -0
- package/core/skills/app-builder/SKILL.md +75 -0
- package/core/skills/app-builder/agent-coordination.md +71 -0
- package/core/skills/app-builder/feature-building.md +53 -0
- package/core/skills/app-builder/project-detection.md +34 -0
- package/core/skills/app-builder/scaffolding.md +118 -0
- package/core/skills/app-builder/tech-stack.md +40 -0
- package/core/skills/app-builder/templates/SKILL.md +39 -0
- package/core/skills/app-builder/templates/astro-static/TEMPLATE.md +76 -0
- package/core/skills/app-builder/templates/chrome-extension/TEMPLATE.md +92 -0
- package/core/skills/app-builder/templates/cli-tool/TEMPLATE.md +88 -0
- package/core/skills/app-builder/templates/electron-desktop/TEMPLATE.md +88 -0
- package/core/skills/app-builder/templates/express-api/TEMPLATE.md +83 -0
- package/core/skills/app-builder/templates/flutter-app/TEMPLATE.md +90 -0
- package/core/skills/app-builder/templates/monorepo-turborepo/TEMPLATE.md +90 -0
- package/core/skills/app-builder/templates/nextjs-fullstack/TEMPLATE.md +82 -0
- package/core/skills/app-builder/templates/nextjs-saas/TEMPLATE.md +100 -0
- package/core/skills/app-builder/templates/nextjs-static/TEMPLATE.md +106 -0
- package/core/skills/app-builder/templates/nuxt-app/TEMPLATE.md +101 -0
- package/core/skills/app-builder/templates/python-fastapi/TEMPLATE.md +83 -0
- package/core/skills/app-builder/templates/react-native-app/TEMPLATE.md +93 -0
- package/core/skills/architecture/SKILL.md +55 -0
- package/core/skills/architecture/context-discovery.md +43 -0
- package/core/skills/architecture/examples.md +94 -0
- package/core/skills/architecture/pattern-selection.md +68 -0
- package/core/skills/architecture/patterns-reference.md +50 -0
- package/core/skills/architecture/trade-off-analysis.md +77 -0
- package/core/skills/atomic-design/SKILL.md +282 -0
- package/core/skills/atomic-design/references/classification-guide.md +132 -0
- package/core/skills/atomic-design/references/quality-checklist.md +60 -0
- package/core/skills/atomic-design/references/stacks/stack-blade.md +254 -0
- package/core/skills/atomic-design/references/stacks/stack-nextjs.md +272 -0
- package/core/skills/atomic-design/references/stacks/stack-react.md +239 -0
- package/core/skills/atomic-design/references/stacks/stack-vue.md +224 -0
- package/core/skills/bash-linux/SKILL.md +199 -0
- package/core/skills/behavioral-modes/SKILL.md +242 -0
- package/core/skills/brainstorming/SKILL.md +163 -0
- package/core/skills/brainstorming/dynamic-questioning.md +373 -0
- package/core/skills/checkpointing-patterns/SKILL.md +163 -0
- package/core/skills/clean-code/SKILL.md +201 -0
- package/core/skills/code-review-checklist/SKILL.md +109 -0
- package/core/skills/code-truth-validation/SKILL.md +149 -0
- package/core/skills/component-library-discovery/SKILL.md +154 -0
- package/core/skills/content-strategy/SKILL.md +222 -0
- package/core/skills/context-budget/SKILL.md +155 -0
- package/core/skills/context-gathering-patterns/SKILL.md +278 -0
- package/core/skills/cost-tracking/SKILL.md +206 -0
- package/core/skills/database-design/SKILL.md +52 -0
- package/core/skills/database-design/database-selection.md +43 -0
- package/core/skills/database-design/indexing.md +39 -0
- package/core/skills/database-design/migrations.md +48 -0
- package/core/skills/database-design/optimization.md +36 -0
- package/core/skills/database-design/orm-selection.md +30 -0
- package/core/skills/database-design/schema-design.md +56 -0
- package/core/skills/database-design/scripts/schema_validator.py +172 -0
- package/core/skills/deployment-procedures/SKILL.md +295 -0
- package/core/skills/design-md/README.md +34 -0
- package/core/skills/design-md/SKILL.md +172 -0
- package/core/skills/design-md/examples/DESIGN.md +154 -0
- package/core/skills/design-system-enforcement/SKILL.md +339 -0
- package/core/skills/doc.md +177 -0
- package/core/skills/document-registry/SKILL.md +130 -0
- package/core/skills/documentation-publishing/SKILL.md +174 -0
- package/core/skills/documentation-templates/SKILL.md +194 -0
- package/core/skills/enhance-prompt/README.md +34 -0
- package/core/skills/enhance-prompt/SKILL.md +204 -0
- package/core/skills/enhance-prompt/references/KEYWORDS.md +114 -0
- package/core/skills/frontend-design/SKILL.md +430 -0
- package/core/skills/frontend-design/animation-guide.md +331 -0
- package/core/skills/frontend-design/color-system.md +311 -0
- package/core/skills/frontend-design/decision-trees.md +418 -0
- package/core/skills/frontend-design/motion-graphics.md +306 -0
- package/core/skills/frontend-design/scripts/accessibility_checker.py +183 -0
- package/core/skills/frontend-design/scripts/ux_audit.py +722 -0
- package/core/skills/frontend-design/typography-system.md +345 -0
- package/core/skills/frontend-design/ux-psychology.md +541 -0
- package/core/skills/frontend-design/visual-effects.md +383 -0
- package/core/skills/game-development/2d-games/SKILL.md +119 -0
- package/core/skills/game-development/3d-games/SKILL.md +135 -0
- package/core/skills/game-development/SKILL.md +167 -0
- package/core/skills/game-development/game-art/SKILL.md +185 -0
- package/core/skills/game-development/game-audio/SKILL.md +190 -0
- package/core/skills/game-development/game-design/SKILL.md +129 -0
- package/core/skills/game-development/mobile-games/SKILL.md +108 -0
- package/core/skills/game-development/multiplayer/SKILL.md +132 -0
- package/core/skills/game-development/pc-games/SKILL.md +144 -0
- package/core/skills/game-development/vr-ar/SKILL.md +123 -0
- package/core/skills/game-development/web-games/SKILL.md +150 -0
- package/core/skills/geo-fundamentals/SKILL.md +156 -0
- package/core/skills/geo-fundamentals/scripts/geo_checker.py +289 -0
- package/core/skills/git-workflow/SKILL.md +263 -0
- package/core/skills/history-check-patterns/SKILL.md +125 -0
- package/core/skills/i18n-localization/SKILL.md +154 -0
- package/core/skills/i18n-localization/scripts/i18n_checker.py +241 -0
- package/core/skills/integration-completeness/SKILL.md +219 -0
- package/core/skills/intelligent-routing/SKILL.md +370 -0
- package/core/skills/lint-and-validate/SKILL.md +45 -0
- package/core/skills/lint-and-validate/scripts/lint_runner.py +173 -0
- package/core/skills/lint-and-validate/scripts/type_coverage.py +173 -0
- package/core/skills/local-verification/SKILL.md +195 -0
- package/core/skills/mcp-builder/SKILL.md +176 -0
- package/core/skills/mobile-design/SKILL.md +394 -0
- package/core/skills/mobile-design/decision-trees.md +516 -0
- package/core/skills/mobile-design/mobile-backend.md +491 -0
- package/core/skills/mobile-design/mobile-color-system.md +420 -0
- package/core/skills/mobile-design/mobile-debugging.md +122 -0
- package/core/skills/mobile-design/mobile-design-thinking.md +357 -0
- package/core/skills/mobile-design/mobile-navigation.md +458 -0
- package/core/skills/mobile-design/mobile-performance.md +767 -0
- package/core/skills/mobile-design/mobile-testing.md +356 -0
- package/core/skills/mobile-design/mobile-typography.md +433 -0
- package/core/skills/mobile-design/platform-android.md +666 -0
- package/core/skills/mobile-design/platform-ios.md +561 -0
- package/core/skills/mobile-design/scripts/mobile_audit.py +670 -0
- package/core/skills/mobile-design/touch-psychology.md +537 -0
- package/core/skills/nextjs-react-expert/1-async-eliminating-waterfalls.md +312 -0
- package/core/skills/nextjs-react-expert/2-bundle-bundle-size-optimization.md +240 -0
- package/core/skills/nextjs-react-expert/3-server-server-side-performance.md +490 -0
- package/core/skills/nextjs-react-expert/4-client-client-side-data-fetching.md +264 -0
- package/core/skills/nextjs-react-expert/5-rerender-re-render-optimization.md +581 -0
- package/core/skills/nextjs-react-expert/6-rendering-rendering-performance.md +432 -0
- package/core/skills/nextjs-react-expert/7-js-javascript-performance.md +684 -0
- package/core/skills/nextjs-react-expert/8-advanced-advanced-patterns.md +150 -0
- package/core/skills/nextjs-react-expert/SKILL.md +267 -0
- package/core/skills/nextjs-react-expert/scripts/convert_rules.py +222 -0
- package/core/skills/nextjs-react-expert/scripts/react_performance_checker.py +252 -0
- package/core/skills/nodejs-best-practices/SKILL.md +333 -0
- package/core/skills/notion-task-patterns/SKILL.md +2529 -0
- package/core/skills/page-specifications/SKILL.md +367 -0
- package/core/skills/parallel-agents/SKILL.md +175 -0
- package/core/skills/performance-profiling/SKILL.md +143 -0
- package/core/skills/performance-profiling/scripts/lighthouse_audit.py +76 -0
- package/core/skills/plan-writing/SKILL.md +190 -0
- package/core/skills/powershell-windows/SKILL.md +167 -0
- package/core/skills/project-foundation/SKILL.md +117 -0
- package/core/skills/project-setup/SKILL.md +141 -0
- package/core/skills/project-tracking-patterns/SKILL.md +357 -0
- package/core/skills/project-type-discovery/SKILL.md +239 -0
- package/core/skills/python-patterns/SKILL.md +441 -0
- package/core/skills/qa-test-generation/SKILL.md +156 -0
- package/core/skills/react-components/README.md +36 -0
- package/core/skills/react-components/SKILL.md +47 -0
- package/core/skills/react-components/examples/gold-standard-card.tsx +80 -0
- package/core/skills/react-components/package-lock.json +231 -0
- package/core/skills/react-components/package.json +16 -0
- package/core/skills/react-components/resources/architecture-checklist.md +15 -0
- package/core/skills/react-components/resources/component-template.tsx +37 -0
- package/core/skills/react-components/resources/stitch-api-reference.md +14 -0
- package/core/skills/react-components/resources/style-guide.json +27 -0
- package/core/skills/react-components/scripts/fetch-stitch.sh +30 -0
- package/core/skills/react-components/scripts/validate.js +68 -0
- package/core/skills/red-team-tactics/SKILL.md +199 -0
- package/core/skills/remotion/README.md +105 -0
- package/core/skills/remotion/SKILL.md +393 -0
- package/core/skills/remotion/examples/WalkthroughComposition.tsx +78 -0
- package/core/skills/remotion/examples/screens.json +56 -0
- package/core/skills/remotion/resources/composition-checklist.md +124 -0
- package/core/skills/remotion/resources/screen-slide-template.tsx +123 -0
- package/core/skills/remotion/scripts/download-stitch-asset.sh +38 -0
- package/core/skills/seo-fundamentals/SKILL.md +129 -0
- package/core/skills/seo-fundamentals/scripts/seo_checker.py +219 -0
- package/core/skills/server-management/SKILL.md +161 -0
- package/core/skills/session-resilience/SKILL.md +199 -0
- package/core/skills/shadcn-ui/README.md +248 -0
- package/core/skills/shadcn-ui/SKILL.md +326 -0
- package/core/skills/shadcn-ui/examples/auth-layout.tsx +177 -0
- package/core/skills/shadcn-ui/examples/data-table.tsx +313 -0
- package/core/skills/shadcn-ui/examples/form-pattern.tsx +177 -0
- package/core/skills/shadcn-ui/resources/component-catalog.md +481 -0
- package/core/skills/shadcn-ui/resources/customization-guide.md +516 -0
- package/core/skills/shadcn-ui/resources/migration-guide.md +463 -0
- package/core/skills/shadcn-ui/resources/setup-guide.md +412 -0
- package/core/skills/shadcn-ui/scripts/verify-setup.sh +134 -0
- package/core/skills/state-machine/SKILL.md +264 -0
- package/core/skills/stitch-loop/README.md +54 -0
- package/core/skills/stitch-loop/SKILL.md +203 -0
- package/core/skills/stitch-loop/examples/SITE.md +73 -0
- package/core/skills/stitch-loop/examples/next-prompt.md +25 -0
- package/core/skills/stitch-loop/resources/baton-schema.md +61 -0
- package/core/skills/stitch-loop/resources/site-template.md +104 -0
- package/core/skills/systematic-debugging/SKILL.md +109 -0
- package/core/skills/tailwind-patterns/SKILL.md +284 -0
- package/core/skills/tdd-validation/SKILL.md +243 -0
- package/core/skills/tdd-workflow/SKILL.md +284 -0
- package/core/skills/testing-patterns/SKILL.md +196 -0
- package/core/skills/testing-patterns/scripts/test_runner.py +219 -0
- package/core/skills/ui-ux-discovery/SKILL.md +329 -0
- package/core/skills/ui-validation/SKILL.md +190 -0
- package/core/skills/ui-validation/scripts/ui_antipattern_check.py +317 -0
- package/core/skills/verification-gate/SKILL.md +205 -0
- package/core/skills/vulnerability-scanner/SKILL.md +276 -0
- package/core/skills/vulnerability-scanner/checklists.md +121 -0
- package/core/skills/vulnerability-scanner/scripts/security_scan.py +458 -0
- package/core/skills/web-design-guidelines/SKILL.md +57 -0
- package/core/skills/webapp-testing/SKILL.md +187 -0
- package/core/skills/webapp-testing/scripts/playwright_runner.py +173 -0
- package/core/templates/ARCHITECTURE.template.md +407 -0
- package/core/templates/project-resources.example.json +71 -0
- package/core/workflows/atomic.md +182 -0
- package/core/workflows/brainstorm.md +134 -0
- package/core/workflows/check-task.md +242 -0
- package/core/workflows/copy-collect.md +306 -0
- package/core/workflows/create-agent.md +33 -0
- package/core/workflows/create-skill.md +39 -0
- package/core/workflows/create-workflow.md +33 -0
- package/core/workflows/create.md +92 -0
- package/core/workflows/debug.md +186 -0
- package/core/workflows/demand.md +443 -0
- package/core/workflows/deploy.md +260 -0
- package/core/workflows/discovery.md +267 -0
- package/core/workflows/document.md +272 -0
- package/core/workflows/ds-components.md +296 -0
- package/core/workflows/ds-init.md +58 -0
- package/core/workflows/ds-refactor.md +245 -0
- package/core/workflows/ds-references.md +197 -0
- package/core/workflows/ds-styleguide.md +237 -0
- package/core/workflows/ds-token-diff.md +103 -0
- package/core/workflows/ds-tokens.md +317 -0
- package/core/workflows/ds-validate.md +309 -0
- package/core/workflows/execute.md +483 -0
- package/core/workflows/extract-template.md +278 -0
- package/core/workflows/fix-failed-tests.md +160 -0
- package/core/workflows/init-project.md +386 -0
- package/core/workflows/legacy-project.md +849 -0
- package/core/workflows/log.md +97 -0
- package/core/workflows/new-project.md +610 -0
- package/core/workflows/new-project.md.bak +3292 -0
- package/core/workflows/new-task.md +404 -0
- package/core/workflows/orchestrate.md +237 -0
- package/core/workflows/page-build.md +296 -0
- package/core/workflows/plan.md +89 -0
- package/core/workflows/prd.md +255 -0
- package/core/workflows/preview.md +81 -0
- package/core/workflows/review-page.md +304 -0
- package/core/workflows/status.md +86 -0
- package/core/workflows/stitch.md +226 -0
- package/core/workflows/task-complete.md +473 -0
- package/core/workflows/task-update.md +163 -0
- package/core/workflows/tdd.md +344 -0
- package/core/workflows/test.md +251 -0
- package/core/workflows/ui-ux-pro-max.md +437 -0
- package/core/workflows/ux-mobile-optimize.md +262 -0
- package/core/workflows/ux-mobile-validate.md +297 -0
- package/engine-files/GEMINI.md +69 -0
- package/package.json +47 -0
- package/runtime-adapters/antigravity.js +26 -0
- package/runtime-adapters/claude.js +57 -0
- package/runtime-adapters/codex.js +51 -0
- package/runtime-adapters/copilot.js +51 -0
- package/runtime-adapters/cursor.js +51 -0
- package/runtime-adapters/gemini-cli.js +30 -0
- package/runtime-adapters/opencode.js +51 -0
- package/runtime-adapters/windsurf.js +51 -0
|
@@ -0,0 +1,473 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Workflow obrigatório para finalizar tasks. Garante sync com tracker (Flyee ou Local), logs de execução e atualização de progresso.
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# /task-complete
|
|
6
|
+
|
|
7
|
+
> **OBRIGATÓRIO** ao finalizar qualquer task. Garante compliance com tracking patterns.
|
|
8
|
+
> Suporta **dois modos de tracking**: Flyee (API) ou Local (`PROJECT-PROGRESS.md`).
|
|
9
|
+
> O modo é definido pela configuração `Tracker de Tasks` em `PROJECT-PROGRESS.md`.
|
|
10
|
+
|
|
11
|
+
## Uso
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
/task-complete <task_id> "<tempo_gasto>"
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
**Exemplo:**
|
|
18
|
+
```bash
|
|
19
|
+
/task-complete 1.1 "30min"
|
|
20
|
+
/task-complete 2.3 "1h15m"
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## Etapa 0: Identificar Modo de Tracking (PRE-REQUISITO)
|
|
26
|
+
|
|
27
|
+
> [!CAUTION]
|
|
28
|
+
> **REGRA:** Ao INICIAR qualquer trabalho vinculado a uma task, o agente DEVE:
|
|
29
|
+
> 1. Ler `PROJECT-PROGRESS.md` → seção `Configurações` → campo `Tracker de Tasks`
|
|
30
|
+
> 2. **Se Flyee:** Identificar o `page_id` da task (via `API-post-search` ou `API-query-data-source`)
|
|
31
|
+
> 3. **Se Local:** Identificar a linha/checkbox correspondente em `PROJECT-PROGRESS.md` (tabela de tasks)
|
|
32
|
+
>
|
|
33
|
+
> Sem essa identificação, as etapas de sync são impossíveis e serão esquecidas.
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## Fluxo de Execução (5 Etapas)
|
|
38
|
+
|
|
39
|
+
### Etapa 1: Exibir Log de Execução
|
|
40
|
+
|
|
41
|
+
**Template OBRIGATÓRIO:**
|
|
42
|
+
|
|
43
|
+
```markdown
|
|
44
|
+
### ✅ Task {ID}: {Nome}
|
|
45
|
+
|
|
46
|
+
**Verificação:**
|
|
47
|
+
- ✅ {arquivo/componente verificado}
|
|
48
|
+
- ✅ {critério de aceitação atendido}
|
|
49
|
+
- ✅ {teste passando, se aplicável}
|
|
50
|
+
|
|
51
|
+
**Arquivos Relevantes:**
|
|
52
|
+
- `{caminho/arquivo1.ts}`
|
|
53
|
+
- `{caminho/arquivo2.tsx}`
|
|
54
|
+
|
|
55
|
+
**Ação Flyee:**
|
|
56
|
+
- Status: {anterior} → Concluído
|
|
57
|
+
- Tempo Gasto: {tempo}
|
|
58
|
+
|
|
59
|
+
**Tempo aproximado:** {tempo}
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
### Etapa 1.5: Resumo de Execução (OBRIGATÓRIO — NÃO PULAR)
|
|
63
|
+
|
|
64
|
+
> [!CAUTION]
|
|
65
|
+
> **REGRA BLOQUEANTE:** O agente DEVE produzir o Resumo de Execução ANTES de atualizar
|
|
66
|
+
> o Flyee. Este resumo é o que garante ao usuário **visibilidade total** sobre o que
|
|
67
|
+
> foi feito para resolver a task. Sem ele, a task fica marcada como concluída mas
|
|
68
|
+
> ninguém sabe o que mudou.
|
|
69
|
+
|
|
70
|
+
**Template OBRIGATÓRIO (todos os campos são required):**
|
|
71
|
+
|
|
72
|
+
```markdown
|
|
73
|
+
## Resumo de Execução — Task #{ID}
|
|
74
|
+
|
|
75
|
+
### O que foi feito
|
|
76
|
+
{Descrição técnica detalhada das mudanças. NÃO usar frases genéricas como
|
|
77
|
+
"implementado conforme solicitado". Descrever CADA mudança com contexto técnico.}
|
|
78
|
+
|
|
79
|
+
### Arquivos modificados
|
|
80
|
+
| Arquivo | Tipo de Mudança | Detalhe |
|
|
81
|
+
|---------|----------------|---------|
|
|
82
|
+
| `{path/file1.ts}` | {Criado/Modificado/Deletado} | {O que mudou neste arquivo} |
|
|
83
|
+
| `{path/file2.tsx}` | {Criado/Modificado/Deletado} | {O que mudou neste arquivo} |
|
|
84
|
+
|
|
85
|
+
### Verificação
|
|
86
|
+
- TypeScript: {✅ 0 erros / ❌ N erros}
|
|
87
|
+
- Testes: {✅ X/Y passando / ⚠️ sem testes / ❌ N falhando}
|
|
88
|
+
- Build: {✅ OK / ⚠️ não verificado}
|
|
89
|
+
|
|
90
|
+
### Decisões técnicas (se aplicável)
|
|
91
|
+
- {Decisão 1: por que escolheu abordagem X em vez de Y}
|
|
92
|
+
- {Decisão 2: trade-off feito}
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
> [!IMPORTANT]
|
|
96
|
+
> Este resumo será usado como fonte para:
|
|
97
|
+
> - **Etapa 2.5** (nota inline no corpo da task)
|
|
98
|
+
> - **Etapa 3** (comentário rico)
|
|
99
|
+
> - **Etapa 4** (LEGACY-PROGRESS.md)
|
|
100
|
+
>
|
|
101
|
+
> O agente DEVE copiar as informações deste resumo para os templates das etapas seguintes.
|
|
102
|
+
> NÃO inventar informações diferentes em cada etapa.
|
|
103
|
+
|
|
104
|
+
### Etapa 1.7: QA Test Checklist Gate (BLOQUEANTE)
|
|
105
|
+
|
|
106
|
+
> [!CAUTION]
|
|
107
|
+
> **REGRA BLOQUEANTE:** Task NÃO pode ser marcada como `completed` se `all_passed == false`.
|
|
108
|
+
> Esta etapa gera o checklist de testes e roda os testes automáticos.
|
|
109
|
+
> Leia `@[skills/qa-test-generation]` para heurísticas completas.
|
|
110
|
+
|
|
111
|
+
**Processo:**
|
|
112
|
+
|
|
113
|
+
1. **Gerar checklist** — Analisar arquivos modificados (do Resumo Etapa 1.5) + acceptance criteria:
|
|
114
|
+
- Classificar cada arquivo por tipo (UI/API/Backend/Styling/SDK/Workflow)
|
|
115
|
+
- Aplicar heurísticas da skill `qa-test-generation` → gerar `TestStep[]`
|
|
116
|
+
- Cobrir: happy path, error cases, edge cases, boundary values, empty states
|
|
117
|
+
- Salvar via bridge:
|
|
118
|
+
```bash
|
|
119
|
+
python3 .agent/flyee-bridge/bridge.py --generate-tests <task_id>
|
|
120
|
+
```
|
|
121
|
+
- Ou via API se bridge não configurado: `PUT /tasks/{id}` com `meta.test_checklist`
|
|
122
|
+
|
|
123
|
+
2. **Rodar testes automáticos** (type: `auto`):
|
|
124
|
+
- `tsc --noEmit` → reportar resultado para steps de tipo `unit/sdk`
|
|
125
|
+
- `vitest run` → reportar resultado (se configurado)
|
|
126
|
+
- Playwright → reportar resultado (se configurado)
|
|
127
|
+
- Para cada teste auto executado:
|
|
128
|
+
```bash
|
|
129
|
+
python3 .agent/flyee-bridge/bridge.py --report-test <task_id> <step_id> passed|failed ["comment"]
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
3. **Listar testes manuais pendentes** → solicitar ao dev:
|
|
133
|
+
```bash
|
|
134
|
+
python3 .agent/flyee-bridge/bridge.py --pending-tests <task_id>
|
|
135
|
+
```
|
|
136
|
+
- Se há testes manuais pendentes → informar ao dev e **aguardar**
|
|
137
|
+
- Dev pode marcar via UI (TaskDetail → tab "tests") ou CLI
|
|
138
|
+
|
|
139
|
+
4. **Verificar gate:**
|
|
140
|
+
```bash
|
|
141
|
+
python3 .agent/flyee-bridge/bridge.py --test-summary <task_id>
|
|
142
|
+
```
|
|
143
|
+
- Se `all_passed == true` → ✅ prosseguir para Etapa 2
|
|
144
|
+
- Se `all_passed == false` → ❌ **BLOQUEAR**:
|
|
145
|
+
- Listar testes falhados
|
|
146
|
+
- Sugerir: `"Deseja rodar /fix-tests <task_id> para corrigir automaticamente?"`
|
|
147
|
+
- Ou solicitar correção manual ao dev
|
|
148
|
+
|
|
149
|
+
> [!IMPORTANT]
|
|
150
|
+
> Se o dev solicitar skip dos testes (ex: hotfix urgente), o agente DEVE:
|
|
151
|
+
> 1. Registrar skip como comentário na task
|
|
152
|
+
> 2. Marcar testes pendentes como `skipped` (não `passed`)
|
|
153
|
+
> 3. Prosseguir com aviso: `"⚠️ Testes pulados — task marcada com quality debt"`
|
|
154
|
+
|
|
155
|
+
### Etapa 2: Atualizar Tracker
|
|
156
|
+
|
|
157
|
+
#### Se Tracker = Flyee:
|
|
158
|
+
```json
|
|
159
|
+
// Tool: Flyee API: update_task()
|
|
160
|
+
{
|
|
161
|
+
"page_id": "{task_page_id}",
|
|
162
|
+
"properties": {
|
|
163
|
+
"Status": { "status": { "name": "Concluído" } },
|
|
164
|
+
"Tempo Gasto": { "rich_text": [{ "text": { "content": "{tempo}" } }] },
|
|
165
|
+
"% Progresso": { "number": 100 }
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
#### Se Tracker = Local:
|
|
171
|
+
Editar `PROJECT-PROGRESS.md` — alterar `- [ ]` para `- [x]` na task correspondente na tabela de tasks.
|
|
172
|
+
|
|
173
|
+
### Etapa 2.1: 🔔 FLYEE BRIDGE EMIT (Condicional)
|
|
174
|
+
|
|
175
|
+
> Se `flyee.json` existe E `enabled: true`:
|
|
176
|
+
|
|
177
|
+
```bash
|
|
178
|
+
python .agent/flyee-bridge/bridge.py emit "dev.task_completed" '{"task_id": "{task_id}", "task_name": "{nome}", "time_spent": "{tempo}", "files_changed": ["{lista de arquivos}"]}'
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
> Se bridge não configurado ou `opted_out: true` → Pular silenciosamente.
|
|
182
|
+
|
|
183
|
+
### Etapa 2.5: Adicionar Nota de Conclusão (INLINE — NÃO PULAR)
|
|
184
|
+
|
|
185
|
+
> [!CAUTION]
|
|
186
|
+
> Os campos abaixo DEVEM ser preenchidos com os dados do **Resumo de Execução** (Etapa 1.5).
|
|
187
|
+
> NÃO usar placeholders genéricos. Se o Resumo de Execução não foi produzido, PARAR e voltar à Etapa 1.5.
|
|
188
|
+
|
|
189
|
+
#### Se Tracker = Flyee:
|
|
190
|
+
```json
|
|
191
|
+
// Tool: Flyee API: update_task() (output)
|
|
192
|
+
{
|
|
193
|
+
"block_id": "{task_page_id}",
|
|
194
|
+
"children": [
|
|
195
|
+
{ "type": "divider", "divider": {} },
|
|
196
|
+
{ "type": "callout", "callout": { "icon": { "type": "emoji", "emoji": "✅" }, "rich_text": [{ "type": "text", "text": { "content": "Concluído em {data} — Tempo: {tempo}" } }] } },
|
|
197
|
+
{ "type": "bulleted_list_item", "bulleted_list_item": { "rich_text": [{ "type": "text", "text": { "content": "📋 O que foi feito: {copiar de Etapa 1.5 → 'O que foi feito'}" } }] } },
|
|
198
|
+
{ "type": "bulleted_list_item", "bulleted_list_item": { "rich_text": [{ "type": "text", "text": { "content": "📁 Arquivos: {copiar de Etapa 1.5 → 'Arquivos modificados' — listar path + tipo}" } }] } },
|
|
199
|
+
{ "type": "bulleted_list_item", "bulleted_list_item": { "rich_text": [{ "type": "text", "text": { "content": "🧪 Verificação: {copiar de Etapa 1.5 → 'Verificação' — TS/Testes/Build}" } }] } }
|
|
200
|
+
]
|
|
201
|
+
}
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
#### Se Tracker = Local:
|
|
205
|
+
Nenhuma ação extra necessária (o checkbox `[x]` já foi marcado na Etapa 2).
|
|
206
|
+
|
|
207
|
+
### Etapa 3: Adicionar Comentário Rico (OBRIGATÓRIO)
|
|
208
|
+
> **Idioma:** Usar idioma definido em `PROJECT-PROGRESS.md` (PT-BR ou EN)
|
|
209
|
+
|
|
210
|
+
> [!CAUTION]
|
|
211
|
+
> O comentário DEVE conter detalhes técnicos reais extraídos do **Resumo de Execução** (Etapa 1.5).
|
|
212
|
+
> NÃO usar frases genéricas como "implementado conforme solicitado" ou "ajustes realizados".
|
|
213
|
+
> O comentário é o registro permanente que o usuário consultará para entender o que foi feito.
|
|
214
|
+
|
|
215
|
+
#### 🇧🇷 Português (PT-BR)
|
|
216
|
+
```json
|
|
217
|
+
// Tool: Flyee API: update_task() (output)
|
|
218
|
+
{
|
|
219
|
+
"parent": { "page_id": "{task_page_id}" },
|
|
220
|
+
"rich_text": [{
|
|
221
|
+
"text": {
|
|
222
|
+
"content": "✅ Task Concluída\n\n📋 O que foi feito:\n{copiar de Etapa 1.5 → 'O que foi feito' — cada mudança como bullet}\n\n📁 Arquivos modificados:\n{copiar de Etapa 1.5 → tabela de arquivos como bullets: • path — tipo — detalhe}\n\n🧪 Verificação:\n{copiar de Etapa 1.5 → 'Verificação' como bullets}\n\n🔗 Próximos passos:\n• {task relacionada ou 'Nenhum'}"
|
|
223
|
+
}
|
|
224
|
+
}]
|
|
225
|
+
}
|
|
226
|
+
```
|
|
227
|
+
|
|
228
|
+
#### 🇺🇸 English (EN)
|
|
229
|
+
```json
|
|
230
|
+
// Tool: Flyee API: update_task() (output)
|
|
231
|
+
{
|
|
232
|
+
"parent": { "page_id": "{task_page_id}" },
|
|
233
|
+
"rich_text": [{
|
|
234
|
+
"text": {
|
|
235
|
+
"content": "✅ Task Completed\n\n📋 What was done:\n{copy from Etapa 1.5 → 'O que foi feito' — each change as bullet}\n\n📁 Modified files:\n{copy from Etapa 1.5 → file table as bullets: • path — type — detail}\n\n🧪 Verification:\n{copy from Etapa 1.5 → 'Verificação' as bullets}\n\n🔗 Next steps:\n• {related task or 'None'}"
|
|
236
|
+
}
|
|
237
|
+
}]
|
|
238
|
+
}
|
|
239
|
+
```
|
|
240
|
+
|
|
241
|
+
### Etapa 4: Atualizar PROJECT-PROGRESS.md
|
|
242
|
+
|
|
243
|
+
Atualizar a tabela de tasks:
|
|
244
|
+
|
|
245
|
+
```markdown
|
|
246
|
+
| # | Task | Teste | Código | Status |
|
|
247
|
+
|---|------|-------|--------|--------|
|
|
248
|
+
| {id} | {nome} | ✅ | ✅ | ✅ Completo | ← ATUALIZAR
|
|
249
|
+
```
|
|
250
|
+
|
|
251
|
+
---
|
|
252
|
+
|
|
253
|
+
### Etapa 4.5: Doc Sync Gate 📄 (OBRIGATÓRIO)
|
|
254
|
+
|
|
255
|
+
> [!CAUTION]
|
|
256
|
+
> **REGRA:** Antes de fechar a task, o agente DEVE verificar se a documentação precisa de atualização.
|
|
257
|
+
> Em caso positivo, atualizar **na mesma sessão** antes de prosseguir.
|
|
258
|
+
> Skippable APENAS para tasks de tipo `chore`, `fix` ou `docs` sem impacto em features.
|
|
259
|
+
|
|
260
|
+
**Decision tree (executar mentalmente):**
|
|
261
|
+
|
|
262
|
+
```
|
|
263
|
+
Esta task entregou uma feature F-level nova (ex: F9, F10, F11)?
|
|
264
|
+
└── SIM → Atualizar PRD Sec 6.1: adicionar linha na tabela de Features com status ✅
|
|
265
|
+
└── É a primeira feature do sprint? → Atualizar PRD Sec 9 (Timeline): marcar sprint como Done
|
|
266
|
+
|
|
267
|
+
Esta task completou um sprint inteiro?
|
|
268
|
+
└── SIM → Atualizar SDD Sec 13 (Implementation Order): marcar sprint como ✅ Done
|
|
269
|
+
|
|
270
|
+
Esta task adicionou/modificou um endpoint de API?
|
|
271
|
+
└── SIM → Atualizar SDD Sec 3.2 (SDK Layer): tabela de módulos SDK
|
|
272
|
+
|
|
273
|
+
Esta task criou/modificou um documento em docs/?
|
|
274
|
+
└── SIM → Atualizar docs/INDEX.md (via skill document-registry)
|
|
275
|
+
|
|
276
|
+
Nenhuma das anteriores?
|
|
277
|
+
└── NÃO → Pular esta etapa ✓
|
|
278
|
+
```
|
|
279
|
+
|
|
280
|
+
**Verificação rápida (rodar para confirmar):**
|
|
281
|
+
|
|
282
|
+
```bash
|
|
283
|
+
python3 .agent/scripts/doc-sync-check.py
|
|
284
|
+
```
|
|
285
|
+
|
|
286
|
+
> O script mostra uma tabela de divergências entre features implementadas e documentação.
|
|
287
|
+
> Se output for `✅ Docs sincronizados` → prosseguir.
|
|
288
|
+
> Se houver divergências → corrigi-las antes de marcar a task como concluída.
|
|
289
|
+
|
|
290
|
+
**Docs afetados por tipo de mudança:**
|
|
291
|
+
|
|
292
|
+
| Tipo de mudança | Doc a atualizar | Seção |
|
|
293
|
+
|----------------|-----------------|-------|
|
|
294
|
+
| Nova feature F-level | `docs/PRD-flyee.md` | Sec 6.1 (Requirements) + Sec 9 (Timeline) |
|
|
295
|
+
| Sprint concluído | `docs/design/SDD-flyee.md` | Sec 13 (Implementation Order) |
|
|
296
|
+
| Novo endpoint SDK | `docs/design/SDD-flyee.md` | Sec 3.2 (SDK Layer) |
|
|
297
|
+
| Novo task status | `docs/design/SDD-flyee.md` | Sec 3.7 (Polling) + ADR-004 |
|
|
298
|
+
| Novo arquivo em docs/ | `docs/INDEX.md` | Tabela de documentos |
|
|
299
|
+
|
|
300
|
+
---
|
|
301
|
+
|
|
302
|
+
### Etapa 4.7: Atualizar agent_context do BREAKDOWN + RETRO 🧠
|
|
303
|
+
|
|
304
|
+
> [!IMPORTANT]
|
|
305
|
+
> **PROPÓSITO:** Manter o `agent_context` do BREAKDOWN como cache vivo do projeto.
|
|
306
|
+
> Um frontmatter desatualizado força o próximo agente a ler o documento inteiro.
|
|
307
|
+
> Esta etapa garante continuidade de contexto com custo mínimo de tokens.
|
|
308
|
+
|
|
309
|
+
**Decision tree:**
|
|
310
|
+
|
|
311
|
+
```
|
|
312
|
+
Esta task concluiu uma sprint inteira (T{N}.last)?
|
|
313
|
+
└── SIM → Atualizar agent_context do BREAKDOWN:
|
|
314
|
+
• Mudar Sprint {N} de 🔲 Pendente → ✅ nas seções ESTADO ATUAL + SPRINTS
|
|
315
|
+
• Atualizar "X concluídas / Y pendentes" no ESTADO ATUAL
|
|
316
|
+
• Verificar se algum padrão novo foi estabelecido → adicionar em PADRÕES ESTABELECIDOS
|
|
317
|
+
|
|
318
|
+
Esta task resolveu um bug ou decisão arquitetural?
|
|
319
|
+
└── SIM → Registrar em docs/RETRO-{projeto}-v{N}.md:
|
|
320
|
+
• Se arquivo não existe → criar com template mínimo (ver abaixo)
|
|
321
|
+
• Adicionar entrada na seção ## Bugs / ## Decisões
|
|
322
|
+
|
|
323
|
+
Nenhuma das anteriores?
|
|
324
|
+
└── NÃO → Pular esta etapa ✓
|
|
325
|
+
```
|
|
326
|
+
|
|
327
|
+
**Template mínimo para RETRO (se não existir):**
|
|
328
|
+
|
|
329
|
+
```markdown
|
|
330
|
+
---
|
|
331
|
+
doc_type: retro
|
|
332
|
+
doc_id: RETRO-{projeto}-v1
|
|
333
|
+
version: "1.0"
|
|
334
|
+
date: "{data}"
|
|
335
|
+
project: {projeto}
|
|
336
|
+
---
|
|
337
|
+
|
|
338
|
+
# Retrospectiva — {Projeto Nome}
|
|
339
|
+
|
|
340
|
+
## Bugs Resolvidos
|
|
341
|
+
<!-- {data}: {descrição do bug} → {como foi resolvido} -->
|
|
342
|
+
|
|
343
|
+
## Decisões Tomadas
|
|
344
|
+
<!-- {data}: {decisão} → {motivo} -->
|
|
345
|
+
|
|
346
|
+
## Padrões Estabelecidos
|
|
347
|
+
<!-- {data}: {padrão} -->
|
|
348
|
+
|
|
349
|
+
## O que NÃO fazer
|
|
350
|
+
<!-- {data}: {anti-pattern descoberto} -->
|
|
351
|
+
```
|
|
352
|
+
|
|
353
|
+
> [!TIP]
|
|
354
|
+
> O RETRO é lido via `grep -n "<keyword>" docs/RETRO-*.md` — entradas compactas
|
|
355
|
+
> (1-2 linhas) são preferíveis para não aumentar custo de busca.
|
|
356
|
+
|
|
357
|
+
**🔔 FLYEE BRIDGE EMIT** (se bridge `enabled: true`, skip silencioso se não):
|
|
358
|
+
|
|
359
|
+
```bash
|
|
360
|
+
# Se sprint concluída nesta task:
|
|
361
|
+
python3 .agent/flyee-bridge/bridge.py emit dev.workflow_completed \
|
|
362
|
+
--payload '{"sprint": N, "name": "Sprint N — Nome", "tasks_done": X, "tasks_total": Y}'
|
|
363
|
+
|
|
364
|
+
# Reportar progresso da sprint para Project Progress do cliente:
|
|
365
|
+
python3 .agent/flyee-bridge/bridge.py --sprint-progress \
|
|
366
|
+
--sprint N --name "Sprint N — Nome" --done X --total Y
|
|
367
|
+
|
|
368
|
+
# Se RETRO atualizado com bug/decisão/padrão, registrar como Decision:
|
|
369
|
+
python3 .agent/flyee-bridge/bridge.py --create-decision \
|
|
370
|
+
--decision "<resumo da entrada do RETRO>" \
|
|
371
|
+
--category "<architecture|refactoring|security|tech_debt>" \
|
|
372
|
+
--reason "<contexto ou causa raiz>" \
|
|
373
|
+
--impact "<escopo: arquivos/módulos afetados>"
|
|
374
|
+
|
|
375
|
+
# Persistir RETRO como Document no Flyee (visível para o cliente):
|
|
376
|
+
python3 .agent/flyee-bridge/bridge.py --persist-retro docs/RETRO-{projeto}-v1.md
|
|
377
|
+
```
|
|
378
|
+
|
|
379
|
+
> [!NOTE]
|
|
380
|
+
> Estes emits são condicionais: `flyee.json` deve existir com `enabled: true`.
|
|
381
|
+
> Se bridge não configurado ou `opted_out: true`: skip sem erro.
|
|
382
|
+
> Segue padrão dos 14 trigger points definidos em T8.4.
|
|
383
|
+
> `--sprint-progress` cria/atualiza Document tipo `sprint_report` (visível no frontend).
|
|
384
|
+
> `--persist-retro` cria/atualiza Document tipo `retro` com dedup SHA256.
|
|
385
|
+
|
|
386
|
+
|
|
387
|
+
|
|
388
|
+
|
|
389
|
+
> [!IMPORTANT]
|
|
390
|
+
> Após completar o sync da task, o agente DEVE verificar se foi invocado
|
|
391
|
+
> dentro de um loop de workflow (Phase 7B do `/legacy-project`).
|
|
392
|
+
|
|
393
|
+
1. Verificar se existe seção `🔧 TASK ATIVA` no `LEGACY-PROGRESS.md`
|
|
394
|
+
2. **Se SIM** → Limpar a seção `🔧 TASK ATIVA` e retornar ao loop da Phase 7B (seção `🔁 LOOP CONTINUATION`)
|
|
395
|
+
3. **Se NÃO** → Tarefa standalone, encerrar normalmente
|
|
396
|
+
4. Verificar em `LEGACY-PROGRESS.md` se há tasks `[ ]` pendentes na Phase 7B atual
|
|
397
|
+
|
|
398
|
+
> [!WARNING]
|
|
399
|
+
> O agente NÃO DEVE encerrar a sessão após `/task-complete` se ainda há tasks
|
|
400
|
+
> pendentes no loop da Phase 7B. O encerramento prematuro perde o contexto
|
|
401
|
+
> do loop e exige re-invocação manual com `--resume`.
|
|
402
|
+
|
|
403
|
+
---
|
|
404
|
+
|
|
405
|
+
## Checklist de Conclusão
|
|
406
|
+
|
|
407
|
+
Antes de prosseguir para próxima task:
|
|
408
|
+
|
|
409
|
+
- [ ] Log de Execução exibido
|
|
410
|
+
- [ ] **Resumo de Execução produzido** (Etapa 1.5)
|
|
411
|
+
- [ ] **QA Test Gate passed** (Etapa 1.7)
|
|
412
|
+
- [ ] **Tracker atualizado** (Flyee ou Local)
|
|
413
|
+
- [ ] **Nota de conclusão e comentário** (Flyee) ou checkbox `[x]` (Local)
|
|
414
|
+
- [ ] **Doc Sync Gate** (Etapa 4.5 — `doc-sync-check.py` executado)
|
|
415
|
+
- [ ] **agent_context + RETRO atualizados** (Etapa 4.7 — se sprint concluída ou bug resolvido)
|
|
416
|
+
- [ ] PROJECT-PROGRESS.md atualizado
|
|
417
|
+
- [ ] **Retorno ao workflow pai** verificado (Etapa 5)
|
|
418
|
+
- [ ] Mensagem de confirmação exibida
|
|
419
|
+
|
|
420
|
+
---
|
|
421
|
+
|
|
422
|
+
## Mensagem Final Obrigatória
|
|
423
|
+
|
|
424
|
+
```markdown
|
|
425
|
+
✅ **Task {ID} Concluída**
|
|
426
|
+
|
|
427
|
+
| Campo | Valor |
|
|
428
|
+
|-------|-------|
|
|
429
|
+
| Status | Concluído |
|
|
430
|
+
| Tempo Gasto | {tempo} |
|
|
431
|
+
| Flyee | ✅ Sincronizado |
|
|
432
|
+
|
|
433
|
+
Prosseguindo para próxima task...
|
|
434
|
+
```
|
|
435
|
+
|
|
436
|
+
---
|
|
437
|
+
|
|
438
|
+
## Gatilhos Automáticos
|
|
439
|
+
|
|
440
|
+
Este workflow DEVE ser invocado quando o agente:
|
|
441
|
+
|
|
442
|
+
- Disser "task completa" ou "task concluída"
|
|
443
|
+
- Marcar um item como `[x]` no task.md
|
|
444
|
+
- Antes de iniciar uma nova task
|
|
445
|
+
- Ao finalizar um épico
|
|
446
|
+
- **ANTES de chamar `notify_user` para reportar conclusão de trabalho vinculado a uma task Flyee**
|
|
447
|
+
|
|
448
|
+
> 🔴 **REGRA:** O agente NÃO pode prosseguir para próxima task sem executar este workflow.
|
|
449
|
+
|
|
450
|
+
---
|
|
451
|
+
|
|
452
|
+
## 🛑 REGRA UNIVERSAL DE ENFORCEMENT (Anti-Bypass)
|
|
453
|
+
|
|
454
|
+
> [!CAUTION]
|
|
455
|
+
> **REGRA BLOQUEANTE ABSOLUTA — APLICA-SE A QUALQUER CONTEXTO:**
|
|
456
|
+
>
|
|
457
|
+
> Se o agente completou trabalho que corresponde a uma task rastreada
|
|
458
|
+
> (no Flyee ou em `docs/TASKS.md`), ele **DEVE** executar `/task-complete`
|
|
459
|
+
> **ANTES** de:
|
|
460
|
+
>
|
|
461
|
+
> - Chamar `notify_user` para reportar conclusão
|
|
462
|
+
> - Iniciar a próxima task
|
|
463
|
+
> - Encerrar a sessão
|
|
464
|
+
>
|
|
465
|
+
> **SELF-CHECK antes de `notify_user`:**
|
|
466
|
+
> ```
|
|
467
|
+
> ❓ Existe task rastreada vinculada ao trabalho que acabei de fazer?
|
|
468
|
+
> → SIM → Executar /task-complete ANTES de notify_user
|
|
469
|
+
> → NÃO → Prosseguir com notify_user normalmente
|
|
470
|
+
> ```
|
|
471
|
+
>
|
|
472
|
+
> **VIOLAÇÃO:** Chamar `notify_user` reportando task concluída SEM ter executado
|
|
473
|
+
> `/task-complete` é uma violação de compliance. O tracker ficará dessincronizado.
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Update task status (Flyee or Local). NO git commits - commits are manual only.
|
|
3
|
+
skills: project-tracking-patterns
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# /task-update Workflow
|
|
7
|
+
|
|
8
|
+
Updates task status in the configured tracker. **Does NOT perform git commits.**
|
|
9
|
+
|
|
10
|
+
**Agente Envolvido:** `project-planner` (para tracking de progresso)
|
|
11
|
+
|
|
12
|
+
> [!IMPORTANT]
|
|
13
|
+
> **Git commits são exclusivamente manuais pelo usuário.**
|
|
14
|
+
> Este workflow atualiza o tracker configurado em `PROJECT-PROGRESS.md` → `Tracker de Tasks`.
|
|
15
|
+
> Se `Tracker = Flyee`: usa API do Flyee. Se `Tracker = Local`: edita `PROJECT-PROGRESS.md` (tabela de tasks).
|
|
16
|
+
|
|
17
|
+
## Usage
|
|
18
|
+
|
|
19
|
+
```
|
|
20
|
+
/task-update <task-id> <type> "<description>"
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
### Parameters:
|
|
24
|
+
- `task-id`: Task identifier or keyword (e.g., 1.1, login)
|
|
25
|
+
- `type`: Update type (start, progress, done)
|
|
26
|
+
- `description`: Description of what was done
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## Type → Status Mapping
|
|
31
|
+
|
|
32
|
+
| Type | Status | Ação |
|
|
33
|
+
|------|--------|------|
|
|
34
|
+
| `start` | Em andamento | Marca início da task |
|
|
35
|
+
| `progress` | Em andamento | Registra progresso intermediário |
|
|
36
|
+
| `done` | Concluído | Marca task como finalizada |
|
|
37
|
+
|
|
38
|
+
> [!NOTE]
|
|
39
|
+
> `Última edição` é atualizada **automaticamente** pelo Flyee a cada modificação.
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## Steps
|
|
44
|
+
|
|
45
|
+
### 1. Parse Parameters
|
|
46
|
+
Extract task-id, type, and description.
|
|
47
|
+
|
|
48
|
+
### 1.5. Identificar Modo de Tracking
|
|
49
|
+
Ler `PROJECT-PROGRESS.md` → `Tracker de Tasks`.
|
|
50
|
+
|
|
51
|
+
### 2. Search & Validate Task
|
|
52
|
+
|
|
53
|
+
**Se Tracker = Flyee:**
|
|
54
|
+
Use `API-post-search` to find the task.
|
|
55
|
+
- Query: `<task-id>`
|
|
56
|
+
- Filter: object = page
|
|
57
|
+
|
|
58
|
+
**Se Tracker = Local:**
|
|
59
|
+
Buscar a task em `PROJECT-PROGRESS.md` pelo nome ou ID.
|
|
60
|
+
|
|
61
|
+
**VALIDATION STEP:**
|
|
62
|
+
Check the `properties` of the found page.
|
|
63
|
+
1. **Status**: Must exist. (Type: status)
|
|
64
|
+
2. **Última edição**: Must exist. (Type: last_edited_time - automático)
|
|
65
|
+
|
|
66
|
+
> [!WARNING] Missing Properties?
|
|
67
|
+
> If `Status` is missing in the JSON response:
|
|
68
|
+
> 1. **STOP** execution.
|
|
69
|
+
> 2. Inform the user:
|
|
70
|
+
> ```
|
|
71
|
+
> 🛑 Propriedade ausente no Flyee!
|
|
72
|
+
>
|
|
73
|
+
> Sua tarefa Flyee não tem a coluna: `Status`
|
|
74
|
+
> Por favor, adicione esta coluna no database e tente novamente.
|
|
75
|
+
> ```
|
|
76
|
+
|
|
77
|
+
### 3. Update Flyee Task
|
|
78
|
+
**Only proceed if validation passed.**
|
|
79
|
+
|
|
80
|
+
Determine new status based on type:
|
|
81
|
+
- `done`: Status="Concluído" + **Tempo Gasto (OBRIGATÓRIO)**
|
|
82
|
+
- `start`: Status="Em andamento" + **Pre-Start Check**
|
|
83
|
+
- `progress`: Status="Em andamento"
|
|
84
|
+
|
|
85
|
+
**Para type=`start`:**
|
|
86
|
+
> [!CAUTION]
|
|
87
|
+
> Seguir Flyee API → Seção "GATE DE FINALIZAÇÃO".
|
|
88
|
+
> Verificar se há tasks "Em andamento" antes de iniciar nova.
|
|
89
|
+
|
|
90
|
+
**Para type=`done`:**
|
|
91
|
+
> [!CAUTION]
|
|
92
|
+
> **OBRIGATÓRIO:** Perguntar `Tempo Gasto` antes de marcar como "Concluído".
|
|
93
|
+
|
|
94
|
+
```
|
|
95
|
+
⏱️ Quanto tempo foi gasto nesta task?
|
|
96
|
+
(Ex: "2h30m", "4h", "30m")
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
Execute `API-patch-page`:
|
|
100
|
+
```json
|
|
101
|
+
{
|
|
102
|
+
"properties": {
|
|
103
|
+
"Status": {"status": {"name": "<New Status>"}},
|
|
104
|
+
// Se type=done, incluir:
|
|
105
|
+
"Tempo Gasto": {"rich_text": [{"text": {"content": "{tempo_informado}"}}]},
|
|
106
|
+
"% Progresso": {"number": 100}
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
> [!NOTE]
|
|
112
|
+
> `Última edição` será atualizada automaticamente pelo Flyee.
|
|
113
|
+
|
|
114
|
+
### 3.5. Adicionar Nota de Conclusão no Corpo (se type=done — INLINE — NÃO PULAR)
|
|
115
|
+
|
|
116
|
+
```json
|
|
117
|
+
// Tool: Flyee API: update_task() (output)
|
|
118
|
+
{
|
|
119
|
+
"block_id": "{page_id}",
|
|
120
|
+
"children": [
|
|
121
|
+
{ "type": "divider", "divider": {} },
|
|
122
|
+
{ "type": "callout", "callout": { "icon": { "type": "emoji", "emoji": "✅" }, "rich_text": [{ "type": "text", "text": { "content": "Concluído em {data}" } }] } },
|
|
123
|
+
{ "type": "bulleted_list_item", "bulleted_list_item": { "rich_text": [{ "type": "text", "text": { "content": "📋 {resumo da implementação}" } }] } },
|
|
124
|
+
{ "type": "bulleted_list_item", "bulleted_list_item": { "rich_text": [{ "type": "text", "text": { "content": "🧪 Testes: {resultado}" } }] } },
|
|
125
|
+
{ "type": "bulleted_list_item", "bulleted_list_item": { "rich_text": [{ "type": "text", "text": { "content": "📁 Arquivos: {lista de arquivos modificados}" } }] } }
|
|
126
|
+
]
|
|
127
|
+
}
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
### 4. Add Progress Comment
|
|
131
|
+
Add a comment documenting what was done:
|
|
132
|
+
```
|
|
133
|
+
Use: API-create-a-comment
|
|
134
|
+
rich_text: [{ "text": { "content": "📝 {description}" } }]
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
### 4.5. 🔔 FLYEE BRIDGE EMIT (Condicional)
|
|
138
|
+
|
|
139
|
+
> Se `flyee.json` existe E `enabled: true`:
|
|
140
|
+
|
|
141
|
+
**Se type=`start`:**
|
|
142
|
+
```bash
|
|
143
|
+
python .agent/flyee-bridge/bridge.py emit "dev.workflow_started" '{"workflow": "task-update", "task_name": "{task_name}"}'
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
**Se type=`done`:**
|
|
147
|
+
```bash
|
|
148
|
+
python .agent/flyee-bridge/bridge.py emit "dev.task_completed" '{"workflow": "task-update", "task_name": "{task_name}", "time_spent": "{tempo}"}'
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
> Se bridge não configurado → Pular silenciosamente.
|
|
152
|
+
|
|
153
|
+
### 5. Report Result
|
|
154
|
+
Confirm update with link to task.
|
|
155
|
+
|
|
156
|
+
---
|
|
157
|
+
|
|
158
|
+
## Notes
|
|
159
|
+
|
|
160
|
+
- **No git commits**: All git operations are manual by the user
|
|
161
|
+
- **Use during /new-task**: Call this workflow when completing subitems
|
|
162
|
+
- **Tracker-aware**: Reads `PROJECT-PROGRESS.md` → `Tracker de Tasks` to determine Flyee vs Local mode
|
|
163
|
+
- **If Local**: Steps 3, 3.5, 4 are replaced by editing `PROJECT-PROGRESS.md` task table checkboxes
|