@ggailabs/cli-context 0.5.6 → 1.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/README.md +25 -181
- package/dist/.context/docs/GENESIS_SYSTEM_PROMPT.md +61 -0
- package/dist/.context/eng/agents/architect.md +68 -0
- package/dist/.context/eng/agents/backend_typescript.md +1000 -0
- package/dist/.context/eng/agents/bug_hunter.md +49 -0
- package/dist/.context/eng/agents/code_archaeologist.md +83 -0
- package/dist/.context/eng/agents/code_reviewer.md +90 -0
- package/dist/.context/eng/agents/devops_specialist.md +718 -0
- package/dist/.context/eng/agents/frontend_specialist.md +1027 -0
- package/dist/.context/eng/agents/orchestrator.md +89 -0
- package/dist/.context/eng/agents/penetration_tester.md +59 -0
- package/dist/.context/eng/agents/qa_specialist.md +1234 -0
- package/dist/.context/eng/agents/security_reviewer.md +92 -0
- package/dist/.context/eng/agents/ui_specialist.md +16 -0
- package/dist/.context/eng/docs/AGENT_HANDOFF_PROMPT.md +44 -0
- package/dist/.context/eng/docs/GENESIS_DESIGN_SYSTEM.md +88 -0
- package/dist/.context/eng/docs/GG_METHODOLOGY.md +48 -0
- package/dist/.context/eng/docs/OPERATIONS_LOG.md +31 -0
- package/dist/.context/eng/docs/PROJECT_MAP.md +35 -0
- package/dist/.context/eng/docs/standards/devops.md +0 -0
- package/dist/.context/eng/docs/standards/frontend.md +0 -0
- package/dist/.context/eng/docs/standards/typescript.md +12 -0
- package/dist/.context/eng/skills/agent_logging/SKILL.md +22 -0
- package/dist/.context/eng/skills/brainstorming/SKILL.md +51 -0
- package/dist/.context/eng/skills/documentation_templates/SKILL.md +73 -0
- package/dist/.context/eng/skills/exploring_codebase/SKILL.md +52 -0
- package/dist/.context/eng/skills/mcp_builder/SKILL.md +64 -0
- package/dist/.context/eng/skills/patterns/compliance_check/SKILL.md +37 -0
- package/dist/.context/eng/skills/patterns/coverage_table/SKILL.md +57 -0
- package/dist/.context/eng/skills/patterns/exit_criteria/SKILL.md +35 -0
- package/dist/.context/eng/skills/patterns/failure_recovery/SKILL.md +78 -0
- package/dist/.context/eng/skills/patterns/quality_gate/SKILL.md +43 -0
- package/dist/.context/eng/skills/patterns/standards_workflow/SKILL.md +395 -0
- package/dist/.context/eng/skills/patterns/state_tracking/SKILL.md +34 -0
- package/dist/.context/eng/skills/patterns/task_tracking/SKILL.md +42 -0
- package/dist/.context/eng/skills/performance_profiling/SKILL.md +60 -0
- package/dist/.context/eng/skills/previce/SKILL.md +49 -0
- package/dist/.context/eng/skills/tdd/SKILL.md +59 -0
- package/dist/.context/eng/skills/using_git_worktrees/SKILL.md +45 -0
- package/dist/.context/eng/skills/vulnerability_scanner/SKILL.md +78 -0
- package/dist/.context/eng/skills/writing_plans/SKILL.md +85 -0
- package/dist/.context/plans/.gitkeep +0 -0
- package/dist/.context/pt-br/agents/architect.md +68 -0
- package/dist/.context/pt-br/agents/backend_typescript.md +1002 -0
- package/dist/.context/pt-br/agents/bug_hunter.md +49 -0
- package/dist/.context/pt-br/agents/code_archaeologist.md +82 -0
- package/dist/.context/pt-br/agents/code_reviewer.md +88 -0
- package/dist/.context/pt-br/agents/devops_specialist.md +718 -0
- package/dist/.context/pt-br/agents/frontend_specialist.md +1029 -0
- package/dist/.context/pt-br/agents/orchestrator.md +87 -0
- package/dist/.context/pt-br/agents/penetration_tester.md +59 -0
- package/dist/.context/pt-br/agents/qa_specialist.md +1234 -0
- package/dist/.context/pt-br/agents/security_reviewer.md +92 -0
- package/dist/.context/pt-br/agents/ui_specialist.md +55 -0
- package/dist/.context/pt-br/docs/AGENT_HANDOFF_PROMPT.md +44 -0
- package/dist/.context/pt-br/docs/GENESIS_DESIGN_SYSTEM.md +88 -0
- package/dist/.context/pt-br/docs/GG_METHODOLOGY.md +48 -0
- package/dist/.context/pt-br/docs/OPERATIONS_LOG.md +31 -0
- package/dist/.context/pt-br/docs/PROJECT_MAP.md +37 -0
- package/dist/.context/pt-br/docs/standards/devops.md +707 -0
- package/dist/.context/pt-br/docs/standards/frontend.md +748 -0
- package/dist/.context/pt-br/docs/standards/typescript.md +1150 -0
- package/dist/.context/pt-br/skills/agent_logging/SKILL.md +40 -0
- package/dist/.context/pt-br/skills/brainstorming/SKILL.md +51 -0
- package/dist/.context/pt-br/skills/documentation_templates/SKILL.md +73 -0
- package/dist/.context/pt-br/skills/exploring_codebase/SKILL.md +52 -0
- package/dist/.context/pt-br/skills/mcp_builder/SKILL.md +64 -0
- package/dist/.context/pt-br/skills/patterns/compliance_check/SKILL.md +37 -0
- package/dist/.context/pt-br/skills/patterns/coverage_table/SKILL.md +57 -0
- package/dist/.context/pt-br/skills/patterns/exit_criteria/SKILL.md +38 -0
- package/dist/.context/pt-br/skills/patterns/failure_recovery/SKILL.md +30 -0
- package/dist/.context/pt-br/skills/patterns/quality_gate/SKILL.md +43 -0
- package/dist/.context/pt-br/skills/patterns/standards_workflow/SKILL.md +45 -0
- package/dist/.context/pt-br/skills/patterns/state_tracking/SKILL.md +31 -0
- package/dist/.context/pt-br/skills/patterns/task_tracking/SKILL.md +27 -0
- package/dist/.context/pt-br/skills/performance_profiling/SKILL.md +60 -0
- package/dist/.context/pt-br/skills/previce/SKILL.md +51 -0
- package/dist/.context/pt-br/skills/tdd/SKILL.md +59 -0
- package/dist/.context/pt-br/skills/using_git_worktrees/SKILL.md +45 -0
- package/dist/.context/pt-br/skills/vulnerability_scanner/SKILL.md +78 -0
- package/dist/.context/pt-br/skills/writing_plans/SKILL.md +85 -0
- package/dist/.context/workflow/.gitkeep +0 -0
- package/dist/commands/init.js +159 -0
- package/dist/commands/monitor.js +34 -0
- package/dist/index.js +20 -568
- package/dist/services/monitor-service.js +342 -0
- package/dist/services/scaffolder.js +177 -0
- package/package.json +16 -58
- package/LICENSE +0 -21
- package/dist/generators/agents/agentConfig.d.ts +0 -4
- package/dist/generators/agents/agentConfig.d.ts.map +0 -1
- package/dist/generators/agents/agentConfig.js +0 -180
- package/dist/generators/agents/agentConfig.js.map +0 -1
- package/dist/generators/agents/agentGenerator.d.ts +0 -9
- package/dist/generators/agents/agentGenerator.d.ts.map +0 -1
- package/dist/generators/agents/agentGenerator.js +0 -97
- package/dist/generators/agents/agentGenerator.js.map +0 -1
- package/dist/generators/agents/agentTypes.d.ts +0 -4
- package/dist/generators/agents/agentTypes.d.ts.map +0 -1
- package/dist/generators/agents/agentTypes.js +0 -25
- package/dist/generators/agents/agentTypes.js.map +0 -1
- package/dist/generators/agents/index.d.ts +0 -4
- package/dist/generators/agents/index.d.ts.map +0 -1
- package/dist/generators/agents/index.js +0 -12
- package/dist/generators/agents/index.js.map +0 -1
- package/dist/generators/agents/templates/index.d.ts +0 -4
- package/dist/generators/agents/templates/index.d.ts.map +0 -1
- package/dist/generators/agents/templates/index.js +0 -8
- package/dist/generators/agents/templates/index.js.map +0 -1
- package/dist/generators/agents/templates/indexTemplate.d.ts +0 -3
- package/dist/generators/agents/templates/indexTemplate.d.ts.map +0 -1
- package/dist/generators/agents/templates/indexTemplate.js +0 -36
- package/dist/generators/agents/templates/indexTemplate.js.map +0 -1
- package/dist/generators/agents/templates/playbookTemplate.d.ts +0 -4
- package/dist/generators/agents/templates/playbookTemplate.d.ts.map +0 -1
- package/dist/generators/agents/templates/playbookTemplate.js +0 -99
- package/dist/generators/agents/templates/playbookTemplate.js.map +0 -1
- package/dist/generators/agents/templates/types.d.ts +0 -14
- package/dist/generators/agents/templates/types.d.ts.map +0 -1
- package/dist/generators/agents/templates/types.js +0 -3
- package/dist/generators/agents/templates/types.js.map +0 -1
- package/dist/generators/documentation/documentationGenerator.d.ts +0 -15
- package/dist/generators/documentation/documentationGenerator.d.ts.map +0 -1
- package/dist/generators/documentation/documentationGenerator.js +0 -188
- package/dist/generators/documentation/documentationGenerator.js.map +0 -1
- package/dist/generators/documentation/guideRegistry.d.ts +0 -6
- package/dist/generators/documentation/guideRegistry.d.ts.map +0 -1
- package/dist/generators/documentation/guideRegistry.js +0 -82
- package/dist/generators/documentation/guideRegistry.js.map +0 -1
- package/dist/generators/documentation/index.d.ts +0 -2
- package/dist/generators/documentation/index.d.ts.map +0 -1
- package/dist/generators/documentation/index.js +0 -6
- package/dist/generators/documentation/index.js.map +0 -1
- package/dist/generators/documentation/templates/apiReferenceTemplate.d.ts +0 -2
- package/dist/generators/documentation/templates/apiReferenceTemplate.d.ts.map +0 -1
- package/dist/generators/documentation/templates/apiReferenceTemplate.js +0 -490
- package/dist/generators/documentation/templates/apiReferenceTemplate.js.map +0 -1
- package/dist/generators/documentation/templates/architectureTemplate.d.ts +0 -3
- package/dist/generators/documentation/templates/architectureTemplate.d.ts.map +0 -1
- package/dist/generators/documentation/templates/architectureTemplate.js +0 -66
- package/dist/generators/documentation/templates/architectureTemplate.js.map +0 -1
- package/dist/generators/documentation/templates/common.d.ts +0 -7
- package/dist/generators/documentation/templates/common.d.ts.map +0 -1
- package/dist/generators/documentation/templates/common.js +0 -58
- package/dist/generators/documentation/templates/common.js.map +0 -1
- package/dist/generators/documentation/templates/dataFlowTemplate.d.ts +0 -3
- package/dist/generators/documentation/templates/dataFlowTemplate.d.ts.map +0 -1
- package/dist/generators/documentation/templates/dataFlowTemplate.js +0 -40
- package/dist/generators/documentation/templates/dataFlowTemplate.js.map +0 -1
- package/dist/generators/documentation/templates/developmentWorkflowTemplate.d.ts +0 -2
- package/dist/generators/documentation/templates/developmentWorkflowTemplate.d.ts.map +0 -1
- package/dist/generators/documentation/templates/developmentWorkflowTemplate.js +0 -44
- package/dist/generators/documentation/templates/developmentWorkflowTemplate.js.map +0 -1
- package/dist/generators/documentation/templates/glossaryTemplate.d.ts +0 -3
- package/dist/generators/documentation/templates/glossaryTemplate.d.ts.map +0 -1
- package/dist/generators/documentation/templates/glossaryTemplate.js +0 -41
- package/dist/generators/documentation/templates/glossaryTemplate.js.map +0 -1
- package/dist/generators/documentation/templates/index.d.ts +0 -15
- package/dist/generators/documentation/templates/index.d.ts.map +0 -1
- package/dist/generators/documentation/templates/index.js +0 -30
- package/dist/generators/documentation/templates/index.js.map +0 -1
- package/dist/generators/documentation/templates/indexTemplate.d.ts +0 -3
- package/dist/generators/documentation/templates/indexTemplate.d.ts.map +0 -1
- package/dist/generators/documentation/templates/indexTemplate.js +0 -42
- package/dist/generators/documentation/templates/indexTemplate.js.map +0 -1
- package/dist/generators/documentation/templates/migrationTemplate.d.ts +0 -2
- package/dist/generators/documentation/templates/migrationTemplate.d.ts.map +0 -1
- package/dist/generators/documentation/templates/migrationTemplate.js +0 -422
- package/dist/generators/documentation/templates/migrationTemplate.js.map +0 -1
- package/dist/generators/documentation/templates/onboardingTemplate.d.ts +0 -2
- package/dist/generators/documentation/templates/onboardingTemplate.d.ts.map +0 -1
- package/dist/generators/documentation/templates/onboardingTemplate.js +0 -431
- package/dist/generators/documentation/templates/onboardingTemplate.js.map +0 -1
- package/dist/generators/documentation/templates/projectOverviewTemplate.d.ts +0 -3
- package/dist/generators/documentation/templates/projectOverviewTemplate.d.ts.map +0 -1
- package/dist/generators/documentation/templates/projectOverviewTemplate.js +0 -65
- package/dist/generators/documentation/templates/projectOverviewTemplate.js.map +0 -1
- package/dist/generators/documentation/templates/securityTemplate.d.ts +0 -2
- package/dist/generators/documentation/templates/securityTemplate.d.ts.map +0 -1
- package/dist/generators/documentation/templates/securityTemplate.js +0 -39
- package/dist/generators/documentation/templates/securityTemplate.js.map +0 -1
- package/dist/generators/documentation/templates/testingTemplate.d.ts +0 -2
- package/dist/generators/documentation/templates/testingTemplate.d.ts.map +0 -1
- package/dist/generators/documentation/templates/testingTemplate.js +0 -45
- package/dist/generators/documentation/templates/testingTemplate.js.map +0 -1
- package/dist/generators/documentation/templates/toolingTemplate.d.ts +0 -2
- package/dist/generators/documentation/templates/toolingTemplate.d.ts.map +0 -1
- package/dist/generators/documentation/templates/toolingTemplate.js +0 -42
- package/dist/generators/documentation/templates/toolingTemplate.js.map +0 -1
- package/dist/generators/documentation/templates/troubleshootingTemplate.d.ts +0 -2
- package/dist/generators/documentation/templates/troubleshootingTemplate.d.ts.map +0 -1
- package/dist/generators/documentation/templates/troubleshootingTemplate.js +0 -292
- package/dist/generators/documentation/templates/troubleshootingTemplate.js.map +0 -1
- package/dist/generators/documentation/templates/types.d.ts +0 -23
- package/dist/generators/documentation/templates/types.d.ts.map +0 -1
- package/dist/generators/documentation/templates/types.js +0 -3
- package/dist/generators/documentation/templates/types.js.map +0 -1
- package/dist/generators/plans/index.d.ts +0 -2
- package/dist/generators/plans/index.d.ts.map +0 -1
- package/dist/generators/plans/index.js +0 -6
- package/dist/generators/plans/index.js.map +0 -1
- package/dist/generators/plans/planGenerator.d.ts +0 -22
- package/dist/generators/plans/planGenerator.d.ts.map +0 -1
- package/dist/generators/plans/planGenerator.js +0 -109
- package/dist/generators/plans/planGenerator.js.map +0 -1
- package/dist/generators/plans/templates/indexTemplate.d.ts +0 -3
- package/dist/generators/plans/templates/indexTemplate.d.ts.map +0 -1
- package/dist/generators/plans/templates/indexTemplate.js +0 -37
- package/dist/generators/plans/templates/indexTemplate.js.map +0 -1
- package/dist/generators/plans/templates/planTemplate.d.ts +0 -3
- package/dist/generators/plans/templates/planTemplate.d.ts.map +0 -1
- package/dist/generators/plans/templates/planTemplate.js +0 -166
- package/dist/generators/plans/templates/planTemplate.js.map +0 -1
- package/dist/generators/plans/templates/types.d.ts +0 -19
- package/dist/generators/plans/templates/types.d.ts.map +0 -1
- package/dist/generators/plans/templates/types.js +0 -3
- package/dist/generators/plans/templates/types.js.map +0 -1
- package/dist/generators/shared/contextGenerator.d.ts +0 -7
- package/dist/generators/shared/contextGenerator.d.ts.map +0 -1
- package/dist/generators/shared/contextGenerator.js +0 -13
- package/dist/generators/shared/contextGenerator.js.map +0 -1
- package/dist/generators/shared/directoryTemplateHelpers.d.ts +0 -2
- package/dist/generators/shared/directoryTemplateHelpers.d.ts.map +0 -1
- package/dist/generators/shared/directoryTemplateHelpers.js +0 -12
- package/dist/generators/shared/directoryTemplateHelpers.js.map +0 -1
- package/dist/generators/shared/generatorUtils.d.ts +0 -16
- package/dist/generators/shared/generatorUtils.d.ts.map +0 -1
- package/dist/generators/shared/generatorUtils.js +0 -119
- package/dist/generators/shared/generatorUtils.js.map +0 -1
- package/dist/generators/shared/index.d.ts +0 -4
- package/dist/generators/shared/index.d.ts.map +0 -1
- package/dist/generators/shared/index.js +0 -10
- package/dist/generators/shared/index.js.map +0 -1
- package/dist/index.d.ts +0 -9
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/prompts/defaults.d.ts +0 -3
- package/dist/prompts/defaults.d.ts.map +0 -1
- package/dist/prompts/defaults.js +0 -95
- package/dist/prompts/defaults.js.map +0 -1
- package/dist/services/baseLLMClient.d.ts +0 -12
- package/dist/services/baseLLMClient.d.ts.map +0 -1
- package/dist/services/baseLLMClient.js +0 -80
- package/dist/services/baseLLMClient.js.map +0 -1
- package/dist/services/fill/fillService.d.ts +0 -46
- package/dist/services/fill/fillService.d.ts.map +0 -1
- package/dist/services/fill/fillService.js +0 -254
- package/dist/services/fill/fillService.js.map +0 -1
- package/dist/services/init/initService.d.ts +0 -37
- package/dist/services/init/initService.d.ts.map +0 -1
- package/dist/services/init/initService.js +0 -167
- package/dist/services/init/initService.js.map +0 -1
- package/dist/services/llmClientFactory.d.ts +0 -8
- package/dist/services/llmClientFactory.d.ts.map +0 -1
- package/dist/services/llmClientFactory.js +0 -23
- package/dist/services/llmClientFactory.js.map +0 -1
- package/dist/services/openRouterClient.d.ts +0 -9
- package/dist/services/openRouterClient.d.ts.map +0 -1
- package/dist/services/openRouterClient.js +0 -49
- package/dist/services/openRouterClient.js.map +0 -1
- package/dist/services/plan/planService.d.ts +0 -57
- package/dist/services/plan/planService.d.ts.map +0 -1
- package/dist/services/plan/planService.js +0 -334
- package/dist/services/plan/planService.js.map +0 -1
- package/dist/services/shared/llmConfig.d.ts +0 -22
- package/dist/services/shared/llmConfig.d.ts.map +0 -1
- package/dist/services/shared/llmConfig.js +0 -38
- package/dist/services/shared/llmConfig.js.map +0 -1
- package/dist/types.d.ts +0 -65
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js +0 -3
- package/dist/types.js.map +0 -1
- package/dist/utils/cliUI.d.ts +0 -27
- package/dist/utils/cliUI.d.ts.map +0 -1
- package/dist/utils/cliUI.js +0 -252
- package/dist/utils/cliUI.js.map +0 -1
- package/dist/utils/fileMapper.d.ts +0 -11
- package/dist/utils/fileMapper.d.ts.map +0 -1
- package/dist/utils/fileMapper.js +0 -146
- package/dist/utils/fileMapper.js.map +0 -1
- package/dist/utils/gitService.d.ts +0 -50
- package/dist/utils/gitService.d.ts.map +0 -1
- package/dist/utils/gitService.js +0 -470
- package/dist/utils/gitService.js.map +0 -1
- package/dist/utils/i18n.d.ts +0 -171
- package/dist/utils/i18n.d.ts.map +0 -1
- package/dist/utils/i18n.js +0 -381
- package/dist/utils/i18n.js.map +0 -1
- package/dist/utils/promptLoader.d.ts +0 -12
- package/dist/utils/promptLoader.d.ts.map +0 -1
- package/dist/utils/promptLoader.js +0 -81
- package/dist/utils/promptLoader.js.map +0 -1
- package/dist/utils/versionChecker.d.ts +0 -15
- package/dist/utils/versionChecker.d.ts.map +0 -1
- package/dist/utils/versionChecker.js +0 -49
- package/dist/utils/versionChecker.js.map +0 -1
- package/prompts/update_plan_prompt.md +0 -41
- package/prompts/update_scaffold_prompt.md +0 -47
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: zenith-previce
|
|
3
|
+
description: Ciclo de desenvolvimento Zenith (Planning, Review, Execution, Validation, Confirmation, Evolution). O loop inegociável da v1.1.0.
|
|
4
|
+
---
|
|
5
|
+
---
|
|
6
|
+
name: genesis:previce
|
|
7
|
+
description: Main implementation workflow (Planejamento, Revisão, Execução, Validação, Confirmação).
|
|
8
|
+
trigger: |
|
|
9
|
+
- New feature request
|
|
10
|
+
- Bug fix implementation
|
|
11
|
+
- Architectural refactoring
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# ⚡ PREVICE Workflow - Genesis Grid AI Labs
|
|
15
|
+
|
|
16
|
+
Este é o workflow mandatório para o desenvolvimento no **GG-Framework**. Ele garante governança, qualidade e alinhamento com a visão de **Guilherme Giorgi (GG)**.
|
|
17
|
+
|
|
18
|
+
## Fases do Ciclo
|
|
19
|
+
|
|
20
|
+
### 1. P - Planejamento (Planning)
|
|
21
|
+
**Objetivo:** Definir o escopo e a estratégia técnica antes de codar.
|
|
22
|
+
- **Ação:** O agente `genesis:architect` deve criar um arquivo de plano em `.context/plans/[YYYY-MM-DD]-[feature-name].md`.
|
|
23
|
+
- **Conteúdo:** Objetivo, arquivos afetados, agent lineup e passos detalhados (bite-sized).
|
|
24
|
+
|
|
25
|
+
### 2. R - Revisão (Review)
|
|
26
|
+
**Objetivo:** Validação humana (GG) do plano técnico.
|
|
27
|
+
- **Ação:** Notificar o usuário para revisar o plano gerado.
|
|
28
|
+
- **Critério de Saída:** Aprovação explícita do usuário.
|
|
29
|
+
|
|
30
|
+
### 3. E - Execução (Execution)
|
|
31
|
+
**Objetivo:** Implementação do código seguindo o plano.
|
|
32
|
+
- **Ação:** Executar os passos do plano um a um.
|
|
33
|
+
- **Ação:** Executar os passos do plano um a um.
|
|
34
|
+
- **Regra:** Usar agentes especialistas (`genesis:ui_specialist`, `genesis:code_archaeologist`, `genesis:penetration_tester`) conforme necessário.
|
|
35
|
+
|
|
36
|
+
### 4. V - Validação (Validation)
|
|
37
|
+
**Objetivo:** Garantir que a implementação está correta e segura.
|
|
38
|
+
- **Ação:** Rodar testes (unitários/E2E) e realizar o check visual do Genesis Design System.
|
|
39
|
+
- **Ação:** Rodar testes (unitários/E2E) e realizar o check visual do Genesis Design System.
|
|
40
|
+
- **Ferramenta:** Usar `genesis:qa_specialist` para auditoria de estabilidade.
|
|
41
|
+
|
|
42
|
+
### 5. C - Confirmação (Confirmation)
|
|
43
|
+
**Objetivo:** Finalização e entrega.
|
|
44
|
+
- **Ação:** Realizar o commit com mensagem padronizada e informar ao usuário o sucesso da tarefa.
|
|
45
|
+
|
|
46
|
+
## Regras de Execução
|
|
47
|
+
- **TODO Tracking:** Use um arquivo `task.md` ou similar para rastrear o progresso de cada fase.
|
|
48
|
+
- **Context Preservation:** Mantenha o estado do workflow em `.context/workflow/state.json`.
|
|
49
|
+
|
|
50
|
+
---
|
|
51
|
+
*Genesis Grid AI Labs - Efficiency by Design.*
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: zenith:tdd
|
|
3
|
+
description: Fluxo de desenvolvimento orientado a testes (Red-Green-Refactor). Use para garantir 100% de cobertura em lógica crítica.
|
|
4
|
+
---
|
|
5
|
+
---
|
|
6
|
+
name: zenith:tdd
|
|
7
|
+
description: |
|
|
8
|
+
Metodologia de implementação RED-GREEN-REFACTOR - escreva o teste que falha primeiro,
|
|
9
|
+
implementação mínima para passar e, em seguida, refatore. Garante que os testes verifiquem o comportamento.
|
|
10
|
+
|
|
11
|
+
trigger: |
|
|
12
|
+
- Iniciando implementação de nova funcionalidade
|
|
13
|
+
- Iniciando implementação de bugfix
|
|
14
|
+
- Escrevendo novo código de produção
|
|
15
|
+
|
|
16
|
+
skip_when: |
|
|
17
|
+
- Revisando/modificando testes existentes → use padrões de teste
|
|
18
|
+
- Código já existe sem testes → adicione testes primeiro, depois TDD para novo código
|
|
19
|
+
- Trabalho exploratório/spike → considere brainstorming primeiro
|
|
20
|
+
|
|
21
|
+
sequence:
|
|
22
|
+
after: [writing_plans]
|
|
23
|
+
before: [verification_before_completion]
|
|
24
|
+
|
|
25
|
+
related:
|
|
26
|
+
similar: [verification]
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
# 🧪 Test-Driven Development (TDD)
|
|
30
|
+
|
|
31
|
+
## Visão Geral
|
|
32
|
+
|
|
33
|
+
Escreva o teste primeiro. Veja-o falhar. Escreva o código mínimo para passar.
|
|
34
|
+
|
|
35
|
+
**Princípio Core:** Se você não viu o teste falhar, você não sabe se ele está testando a coisa certa.
|
|
36
|
+
|
|
37
|
+
## O Ciclo Red-Green-Refactor
|
|
38
|
+
|
|
39
|
+
1. **RED**: Escreva um teste minimalista para a nova funcionalidade. Execute o teste e **veja-o falhar**.
|
|
40
|
+
2. **GREEN**: Escreva apenas o código necessário para fazer o teste passar. Não adicione lógica extra.
|
|
41
|
+
3. **REFACTOR**: Limpe o código, remova duplicidade e melhore nomes, mantendo os testes em verde.
|
|
42
|
+
|
|
43
|
+
## Regra de Ouro Zenith
|
|
44
|
+
|
|
45
|
+
```
|
|
46
|
+
NENHUM CÓDIGO DE PRODUÇÃO SEM UM TESTE QUE FALHA PRIMEIRO.
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
## Padrões Mandatórios
|
|
50
|
+
|
|
51
|
+
Esta skill utiliza estes padrões universais:
|
|
52
|
+
- **State Tracking:** Veja [skills/patterns/state_tracking/SKILL.md](file:///.context/pt-br/skills/patterns/state_tracking/SKILL.md)
|
|
53
|
+
- **Failure Recovery:** Veja [skills/patterns/failure_recovery/SKILL.md](file:///.context/pt-br/skills/patterns/failure_recovery/SKILL.md)
|
|
54
|
+
- **Exit Criteria:** Veja [skills/patterns/exit_criteria/SKILL.md](file:///.context/pt-br/skills/patterns/exit_criteria/SKILL.md)
|
|
55
|
+
|
|
56
|
+
Aplique TODOS os padrões ao usar esta skill.
|
|
57
|
+
|
|
58
|
+
---
|
|
59
|
+
*Genesis Grid - Qualidade através do Rigor Técnico.*
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: zenith-using_git_worktrees
|
|
3
|
+
description: Criação e gestão de workspaces isolados via git worktree. Use ao iniciar novas funcionalidades ou mudanças paralelas.
|
|
4
|
+
---
|
|
5
|
+
# 🌲 Skill: Uso de Git Worktrees (v1.1.0)
|
|
6
|
+
|
|
7
|
+
## 🎯 Objetivo
|
|
8
|
+
Criar e gerenciar ambientes de trabalho isolados utilizando `git worktree` para garantir que o desenvolvimento de novas funcionalidades não polua o workspace principal e permita builds limpos.
|
|
9
|
+
|
|
10
|
+
## 🛠 Sequência Operacional
|
|
11
|
+
|
|
12
|
+
### 1. Seleção de Diretório
|
|
13
|
+
A prioridade de diretório para worktrees segue a ordem:
|
|
14
|
+
1. Pasta existente `.worktrees/` ou `worktrees/` na raiz do projeto.
|
|
15
|
+
2. Preferência definida no `PROJECT_MAP.md` ou `GEMINI.md`.
|
|
16
|
+
3. Perguntar ao usuário: `.worktrees/` (local) ou `~/.config/genesis/worktrees/<projeto>/` (global).
|
|
17
|
+
|
|
18
|
+
### 2. Verificação de Segurança (Mandatório)
|
|
19
|
+
Se o diretório for local (dentro do projeto):
|
|
20
|
+
- **Verificar .gitignore:** `grep -q "^\.worktrees/$\|^worktrees/$" .gitignore`.
|
|
21
|
+
- **Ação Corretiva:** Se não estiver no `.gitignore`, adicione imediatamente, commite e prossiga. *Nunca crie um worktree local sem proteção no git.*
|
|
22
|
+
|
|
23
|
+
### 3. Criação e Setup
|
|
24
|
+
```bash
|
|
25
|
+
# 1. Criar o worktree
|
|
26
|
+
git worktree add .worktrees/<nome-branch> -b <nome-branch>
|
|
27
|
+
|
|
28
|
+
# 2. Entrar no ambiente
|
|
29
|
+
cd .worktrees/<nome-branch>
|
|
30
|
+
|
|
31
|
+
# 3. Setup Automático
|
|
32
|
+
npm install # Detectar via package.json
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
### 4. Validação de Baseline
|
|
36
|
+
- Antes de começar a codar, rode os testes: `npm test`.
|
|
37
|
+
- Se os testes falharem no baseline, reporte ao usuário antes de prosseguir.
|
|
38
|
+
|
|
39
|
+
## 🚫 Red Flags
|
|
40
|
+
- **NUNCA** crie um worktree local sem verificar o `.gitignore`.
|
|
41
|
+
- **NUNCA** pule a instalação de dependências ou o teste de baseline no novo worktree.
|
|
42
|
+
- **EVITE** manter worktrees antigos ativos; use a skill de "Cleanup" ao finalizar.
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
**Protocolo:** v1.1.0 | **Soberania:** Genesis Grid AI Labs
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: vulnerability_scanner
|
|
3
|
+
description: Princípios avançados de análise de vulnerabilidades. OWASP 2025, Segurança da Cadeia de Suprimentos (Supply Chain), mapeamento de superfície de ataque e priorização de risco.
|
|
4
|
+
allowed-tools: Read, Glob, Grep, Bash
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# 🛡️ Vulnerability Scanner (Soberania Zenit)
|
|
8
|
+
|
|
9
|
+
> Pense como um atacante, defenda como um mestre. Foco no cenário de ameaças de 2025.
|
|
10
|
+
|
|
11
|
+
## 📋 Arquivos de Referência
|
|
12
|
+
|
|
13
|
+
| Arquivo | Propósito |
|
|
14
|
+
|------|---------|
|
|
15
|
+
| `checklists.md` | OWASP Top 10, Auth, API, e Proteção de Dados. |
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## 1. Mentalidade de Especialista em Segurança
|
|
20
|
+
|
|
21
|
+
### Princípios Core
|
|
22
|
+
|
|
23
|
+
| Princípio | Aplicação |
|
|
24
|
+
|-----------|-------------|
|
|
25
|
+
| **Assume Breach** | Desenvolva como se o atacante já estivesse dentro da rede. |
|
|
26
|
+
| **Zero Trust** | Nunca confie, sempre verifique cada requisição. |
|
|
27
|
+
| **Defense in Depth** | Múltiplas camadas de segurança, sem ponto único de falha. |
|
|
28
|
+
| **Least Privilege** | Acesso mínimo necessário para cada função/agente. |
|
|
29
|
+
| **Fail Secure** | Em caso de erro, bloqueie o acesso por padrão. |
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
## 2. OWASP Top 10: 2025 (Foco Zenith)
|
|
34
|
+
|
|
35
|
+
### Categorias de Risco
|
|
36
|
+
|
|
37
|
+
| Rank | Categoria | O que auditar? |
|
|
38
|
+
|------|----------|-------------|
|
|
39
|
+
| **A01** | Broken Access Control | Quem acessa o quê? IDOR, SSRF. |
|
|
40
|
+
| **A02** | Security Misconfiguration | Configurações padrão, headers, serviços expostos. |
|
|
41
|
+
| **A03** | Software Supply Chain 🆕 | Dependências, CI/CD, integridade do build. |
|
|
42
|
+
| **A04** | Cryptographic Failures | Cripto fraca, segredos expostos no código. |
|
|
43
|
+
| **A05** | Injection | Input de usuário alimentando comandos do sistema ou DB. |
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
## 3. Segurança da Cadeia de Suprimentos (A03)
|
|
48
|
+
|
|
49
|
+
### Vetores de Ataque em 2025
|
|
50
|
+
|
|
51
|
+
- **Dependências Maliciosas**: Audite pacotes novos (`npm audit`).
|
|
52
|
+
- **Arquivos de Lock**: Garanta a integridade dos arquivos de lock nos commits.
|
|
53
|
+
- **Pipeline de Build**: Quem pode modificar seus scripts de CI/CD?
|
|
54
|
+
- **Typosquatting**: Verifique se o nome do pacote está correto.
|
|
55
|
+
|
|
56
|
+
---
|
|
57
|
+
|
|
58
|
+
## 4. Metodologia de Escaneamento Zenith
|
|
59
|
+
|
|
60
|
+
1. **RECONHECIMENTO**: Entender a stack tecnológica e pontos de entrada.
|
|
61
|
+
2. **DESCOBERTA**: Identificar padrões de código inseguros.
|
|
62
|
+
3. **ANÁLISE**: Eliminar falsos positivos e mapear a cadeia de ataque.
|
|
63
|
+
4. **RELATÓRIO**: Gerar recomendações acionáveis (Pilar VII).
|
|
64
|
+
|
|
65
|
+
---
|
|
66
|
+
|
|
67
|
+
## 5. Padrões de Código de Alto Risco
|
|
68
|
+
|
|
69
|
+
| Padrão | Risco | O que procurar |
|
|
70
|
+
|---------|------|----------|
|
|
71
|
+
| **Concatatação em Queries** | Injeção SQL | `"SELECT * FROM " + input` |
|
|
72
|
+
| **Execução Dinâmica** | RCE | `eval()`, `exec()`, `Function()` |
|
|
73
|
+
| **Deserialização Insegura**| RCE | `pickle.loads()`, `unserialize()` |
|
|
74
|
+
| **Manipulação de Path** | Traversal | Input de usuário em caminhos de arquivo |
|
|
75
|
+
|
|
76
|
+
---
|
|
77
|
+
|
|
78
|
+
> **Lembre-se:** Escaneamento automatizado encontra bugs. Pensamento de especialista prioriza o que importa. Sempre pergunte: "O que um atacante faria com isso?".
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: zenith:writing_plans
|
|
3
|
+
description: Criação de planos de implementação técnica (Design Docs). Use para detalhar mudanças antes de codar.
|
|
4
|
+
---
|
|
5
|
+
---
|
|
6
|
+
name: zenith:writing_plans
|
|
7
|
+
description: |
|
|
8
|
+
Cria planos de implementação abrangentes com caminhos de arquivo exatos, exemplos de código
|
|
9
|
+
completos e etapas de verificação para engenheiros com zero contexto de base de código.
|
|
10
|
+
|
|
11
|
+
trigger: |
|
|
12
|
+
- Fase de design concluída (brainstorming/PRD/TRD validado)
|
|
13
|
+
- Necessidade de criar um detalhamento de tarefas executáveis
|
|
14
|
+
- Criando trabalho para outros engenheiros ou agentes de IA
|
|
15
|
+
|
|
16
|
+
skip_when: |
|
|
17
|
+
- Design não validado → use brainstorming primeiro
|
|
18
|
+
- Requisitos ainda incertos → use previce primeiro
|
|
19
|
+
- Já possui um plano → use execução planejada
|
|
20
|
+
|
|
21
|
+
sequence:
|
|
22
|
+
after: [brainstorming, previce]
|
|
23
|
+
before: [executing_plans, subagent_driven_development]
|
|
24
|
+
|
|
25
|
+
related:
|
|
26
|
+
similar: [brainstorming]
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
# 📝 Planejamento de Escrita (Writing Plans)
|
|
30
|
+
|
|
31
|
+
## Visão Geral
|
|
32
|
+
|
|
33
|
+
Esta skill despacha um agente especializado para escrever planos de implementação abrangentes para engenheiros com zero contexto da base de código.
|
|
34
|
+
|
|
35
|
+
**Anuncie no início:** "Estou usando a skill zenith:writing_plans para criar o plano de implementação."
|
|
36
|
+
|
|
37
|
+
**Contexto:** Isso deve ser executado em uma worktree dedicada (criada pela skill de brainstorming).
|
|
38
|
+
|
|
39
|
+
## O Processo
|
|
40
|
+
|
|
41
|
+
**Passo 1: Despachar Agente de Escrita de Plano**
|
|
42
|
+
|
|
43
|
+
Despache via `Task(subagent_type: "orchestrator", model: "opus")` com:
|
|
44
|
+
- Instruções para criar tarefas atômicas (2-5 min cada)
|
|
45
|
+
- Incluir caminhos de arquivo exatos, código completo, etapas de verificação
|
|
46
|
+
- Salvar em `docs/plans/YYYY-MM-DD-<nome-da-feature>.md`
|
|
47
|
+
|
|
48
|
+
**Passo 2: Validar Plano**
|
|
49
|
+
|
|
50
|
+
Após o plano ser salvo, valide-o conforme os 7 Pilares da Metodologia GG.
|
|
51
|
+
|
|
52
|
+
**Passo 3: Perguntar ao Usuário Sobre a Execução**
|
|
53
|
+
|
|
54
|
+
Pergunte via `notify_user`: "Executar agora?" Opções:
|
|
55
|
+
1. Executar agora → Despachar especialistas.
|
|
56
|
+
2. Sessão paralela → Usuário abre nova sessão em worktree.
|
|
57
|
+
3. Salvar para depois → Reportar local e encerrar.
|
|
58
|
+
|
|
59
|
+
## Por Que Usar um Agente?
|
|
60
|
+
|
|
61
|
+
**Preservação de Contexto** (ler muitos arquivos mantém o supervisor limpo) | **Poder do Modelo** (Capacidade de planejamento abrangente) | **Separação de Preocupações** (supervisor orquestra, agente planeja)
|
|
62
|
+
|
|
63
|
+
## Seleção de Agentes por Tarefa
|
|
64
|
+
|
|
65
|
+
| Tipo de Tarefa | Agente Zenith |
|
|
66
|
+
|-----------|-------|
|
|
67
|
+
| API/Serviços Backend | `backend_typescript` |
|
|
68
|
+
| Frontend/UI | `frontend_specialist` |
|
|
69
|
+
| Infra/CI/CD/SRE | `devops_specialist` |
|
|
70
|
+
| Testes e QA | `qa_specialist` |
|
|
71
|
+
| Segurança | `security_reviewer` |
|
|
72
|
+
| Arqueologia/Legado | `code_archaeologist` |
|
|
73
|
+
| Fallback | `architect` |
|
|
74
|
+
|
|
75
|
+
## Padrões Mandatórios
|
|
76
|
+
|
|
77
|
+
Esta skill utiliza estes padrões universais (Zenith Patterns):
|
|
78
|
+
- **State Tracking:** Veja [skills/patterns/state_tracking/SKILL.md](file:///.context/pt-br/skills/patterns/state_tracking/SKILL.md)
|
|
79
|
+
- **Failure Recovery:** Veja [skills/patterns/failure_recovery/SKILL.md](file:///.context/pt-br/skills/patterns/failure_recovery/SKILL.md)
|
|
80
|
+
- **Exit Criteria:** Veja [skills/patterns/exit_criteria/SKILL.md](file:///.context/pt-br/skills/patterns/exit_criteria/SKILL.md)
|
|
81
|
+
|
|
82
|
+
Aplique TODOS os padrões ao usar esta skill.
|
|
83
|
+
|
|
84
|
+
---
|
|
85
|
+
*Genesis Grid - Excelência em Planejamento Agentico.*
|
|
File without changes
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
import chalk from 'chalk';
|
|
3
|
+
import inquirer from 'inquirer';
|
|
4
|
+
import ora from 'ora';
|
|
5
|
+
import fs from 'fs-extra';
|
|
6
|
+
import path from 'path';
|
|
7
|
+
import { Scaffolder } from '../services/scaffolder.js';
|
|
8
|
+
export function createInitCommand() {
|
|
9
|
+
return new Command('init')
|
|
10
|
+
.description('Inicializa o contexto Genesis Grid em um projeto')
|
|
11
|
+
.option('-y, --yes', 'Pular perguntas e usar valores padrão')
|
|
12
|
+
.option('-d, --discovery', 'Ativar modo Discovery (para projetos existentes)')
|
|
13
|
+
.option('-u, --ui <mode>', 'Nível de Design System (full, mix, core)', 'full')
|
|
14
|
+
.option('-l, --lang <language>', 'Idioma do contexto (pt-br, eng)', 'pt-br')
|
|
15
|
+
.option('-o, --output <path>', 'Diretório de saída para o contexto', '.context')
|
|
16
|
+
.action(async (options) => {
|
|
17
|
+
const logo = `
|
|
18
|
+
${chalk.white(' ██████╗ ██████╗ █████╗ ██╗ ██╗ █████╗ ██████╗ ███████╗')}
|
|
19
|
+
${chalk.gray('██╔════╝ ██╔════╝ ██╔══██╗██║ ██║ ██╔══██╗██╔══██╗██╔════╝')}
|
|
20
|
+
${chalk.white('██║ ███╗██║ ███╗ ███████║██║ ██║ ███████║██████╔╝███████╗')}
|
|
21
|
+
${chalk.gray('██║ ██║██║ ██║ ██╔══██║██║ ██║ ██╔══██║██╔══██╗╚════██║')}
|
|
22
|
+
${chalk.white('╚██████╔╝╚██████╔╝██╗██║ ██║██║ ███████╗██║ ██║██████╔╝███████║')}
|
|
23
|
+
${chalk.gray(' ╚═════╝ ╚═════╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚══════╝╚═╝ ╚═╝╚═════╝ ╚══════╝')}
|
|
24
|
+
`;
|
|
25
|
+
console.log(logo);
|
|
26
|
+
console.log(` ${chalk.magenta('Protocol')} ${chalk.white.bold('v1.1.0')} ${chalk.gray('Ready to synchronize...')}\n`);
|
|
27
|
+
let config = {
|
|
28
|
+
output: options.output,
|
|
29
|
+
projectName: 'Genesis Project',
|
|
30
|
+
framework: 'React',
|
|
31
|
+
mode: options.discovery ? 'discovery' : 'bootstrap',
|
|
32
|
+
uiMode: options.ui,
|
|
33
|
+
language: options.lang
|
|
34
|
+
};
|
|
35
|
+
if (!options.yes) {
|
|
36
|
+
const answers = await inquirer.prompt([
|
|
37
|
+
{
|
|
38
|
+
type: 'list',
|
|
39
|
+
name: 'language',
|
|
40
|
+
message: 'Qual o idioma principal do projeto?',
|
|
41
|
+
choices: [
|
|
42
|
+
{ name: '🇧🇷 Português (PT-BR)', value: 'pt-br' },
|
|
43
|
+
{ name: '🇺🇸 English (ENG)', value: 'eng' }
|
|
44
|
+
],
|
|
45
|
+
default: 'pt-br',
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
type: 'list',
|
|
49
|
+
name: 'mode',
|
|
50
|
+
message: 'O que deseja fazer?',
|
|
51
|
+
choices: [
|
|
52
|
+
{ name: '✨ Bootstrap (Criar novo contexto do zero)', value: 'bootstrap' },
|
|
53
|
+
{ name: '🔍 Discovery (Mapear evolução de projeto existente)', value: 'discovery' }
|
|
54
|
+
],
|
|
55
|
+
default: 'bootstrap',
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
type: 'input',
|
|
59
|
+
name: 'projectName',
|
|
60
|
+
message: 'Qual o nome deste projeto?',
|
|
61
|
+
default: 'Genesis Project',
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
type: 'list',
|
|
65
|
+
name: 'framework',
|
|
66
|
+
message: 'Qual a Stack/Tecnologia base?',
|
|
67
|
+
choices: ['React', 'Next.js', 'Vite/Vanilla', 'NodeJS', 'Outra'],
|
|
68
|
+
default: 'React',
|
|
69
|
+
}
|
|
70
|
+
]);
|
|
71
|
+
config = { ...config, ...answers };
|
|
72
|
+
// Zenith Tech Stack Orchestration
|
|
73
|
+
const engineAnswers = await inquirer.prompt([
|
|
74
|
+
{
|
|
75
|
+
type: 'checkbox',
|
|
76
|
+
name: 'targetEngines',
|
|
77
|
+
message: 'Quais Engines de IA você utilizará? (Orquestração de Sincronia)',
|
|
78
|
+
choices: [
|
|
79
|
+
{ name: 'Cursor (Composer/Rules)', value: 'cursor', checked: true },
|
|
80
|
+
{ name: 'Gemini (Antigravity/Vertex)', value: 'antigravity', checked: true },
|
|
81
|
+
{ name: 'Windsurf (Cascade/Codeium)', value: 'windsurf' },
|
|
82
|
+
{ name: 'OpenAI (Codex/GPTs)', value: 'codex' },
|
|
83
|
+
{ name: 'Claude Code (Anthropic CLI)', value: 'claude' }
|
|
84
|
+
]
|
|
85
|
+
}
|
|
86
|
+
]);
|
|
87
|
+
config = { ...config, ...engineAnswers };
|
|
88
|
+
// Zenith Interactive Orchestration (Deep Feed)
|
|
89
|
+
if (config.mode === 'discovery') {
|
|
90
|
+
console.log(chalk.yellow('\n🧠 Iniciando Orquestração Interativa (Deep Feed)...'));
|
|
91
|
+
const feedAnswers = await inquirer.prompt([
|
|
92
|
+
{
|
|
93
|
+
type: 'input',
|
|
94
|
+
name: 'modules',
|
|
95
|
+
message: 'Quais os principais Módulos/Domains? (ex: auth, components, api)',
|
|
96
|
+
default: 'core, ui, auth',
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
type: 'input',
|
|
100
|
+
name: 'objective',
|
|
101
|
+
message: 'Qual o foco da IA agora? (Milestone Objective)',
|
|
102
|
+
default: 'Estabilização de arquitetura e novas funcionalidades.',
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
type: 'input',
|
|
106
|
+
name: 'techDebt',
|
|
107
|
+
message: 'Existem Dívidas Técnicas (Tech Debt) críticas a reportar?',
|
|
108
|
+
default: 'Nenhum reportada.',
|
|
109
|
+
}
|
|
110
|
+
]);
|
|
111
|
+
config.feed = feedAnswers;
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
const spinner = ora('Garantindo Soberania do Contexto...').start();
|
|
115
|
+
try {
|
|
116
|
+
const scaffolder = new Scaffolder(config);
|
|
117
|
+
await scaffolder.init();
|
|
118
|
+
// Se houver feed, injetar no log e no mapa
|
|
119
|
+
if (config.feed) {
|
|
120
|
+
const contextDir = path.resolve(process.cwd(), config.output);
|
|
121
|
+
const logPath = path.join(contextDir, 'docs/OPERATIONS_LOG.md');
|
|
122
|
+
const mapPath = path.join(contextDir, 'docs/PROJECT_MAP.md');
|
|
123
|
+
const feed = config.feed;
|
|
124
|
+
// Injetar no Log
|
|
125
|
+
const logContent = await fs.readFile(logPath, 'utf-8');
|
|
126
|
+
const updatedLog = logContent.replace('[Log inicializado via Discovery Mode]', `Objetivo: ${feed.objective}\nDívida Técnica: ${feed.techDebt}`).replace('[Log initialized via Discovery Mode]', `Objective: ${feed.objective}\nTech Debt: ${feed.techDebt}`);
|
|
127
|
+
await fs.writeFile(logPath, updatedLog);
|
|
128
|
+
// Atualizar PROJECT_MAP se possível (simplificado para este POC)
|
|
129
|
+
const mapContent = await fs.readFile(mapPath, 'utf-8');
|
|
130
|
+
let modulesSection = `\n## 🏛 Domain Architecture (Custom Feed)\n`;
|
|
131
|
+
feed.modules.split(',').forEach((m) => {
|
|
132
|
+
modulesSection += `- \`src/modules/${m.trim()}\`: Módulo identificado via Discovery.\n`;
|
|
133
|
+
});
|
|
134
|
+
await fs.writeFile(mapPath, mapContent + modulesSection);
|
|
135
|
+
}
|
|
136
|
+
spinner.succeed(chalk.green('Protocolo v1.1.0 ativado em ' + chalk.bold(config.output)));
|
|
137
|
+
// Exibir Sincronização Agmóstica (Filtrada)
|
|
138
|
+
const engines = config.targetEngines || ['antigravity', 'cursor', 'windsurf', 'codex', 'claude'];
|
|
139
|
+
const syncStatus = [
|
|
140
|
+
{ id: 'cursor', name: 'Cursor', color: chalk.blue },
|
|
141
|
+
{ id: 'antigravity', name: 'Gemini', color: chalk.cyan },
|
|
142
|
+
{ id: 'windsurf', name: 'Windsurf', color: chalk.white },
|
|
143
|
+
{ id: 'codex', name: 'Codex', color: chalk.gray },
|
|
144
|
+
{ id: 'claude', name: 'Claude', color: chalk.yellow }
|
|
145
|
+
];
|
|
146
|
+
console.log(chalk.gray('\n📡 Sincronização Agmóstica (Zenith-Sync):'));
|
|
147
|
+
syncStatus.forEach(s => {
|
|
148
|
+
const status = engines.includes(s.id) ? chalk.green('Sincronizado ✅') : chalk.gray('Ignorado ⚊');
|
|
149
|
+
console.log(` ${s.color('◈')} ${chalk.white(s.name.padEnd(8))} ${status}`);
|
|
150
|
+
});
|
|
151
|
+
console.log(chalk.gray('\n✨ Contexto alimentado e pronto para orquestração.'));
|
|
152
|
+
console.log(chalk.cyan('1. Leia o ') + chalk.white.bold('.context/docs/AGENT_HANDOFF_PROMPT.md') + chalk.cyan(' para o próximo agente.'));
|
|
153
|
+
console.log(chalk.cyan('2. Rode ') + chalk.white.bold('ggai monitor') + chalk.cyan(' para verificar a saúde do contexto.\n'));
|
|
154
|
+
}
|
|
155
|
+
catch (error) {
|
|
156
|
+
spinner.fail(chalk.red('Falha ao ativar Zenith Protocol: ' + error.message));
|
|
157
|
+
}
|
|
158
|
+
});
|
|
159
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
import fs from 'fs-extra';
|
|
3
|
+
import path from 'path';
|
|
4
|
+
import chalk from 'chalk';
|
|
5
|
+
import { MonitorService } from '../services/monitor-service.js';
|
|
6
|
+
export function createMonitorCommand() {
|
|
7
|
+
return new Command('monitor')
|
|
8
|
+
.description('Inicia o Hub de Contexto & Saúde Zenith (v1.1.0)')
|
|
9
|
+
.option('-c, --context <path>', 'Caminho para a pasta de contexto', '.context')
|
|
10
|
+
.option('-l, --lang <language>', 'Idioma do dashboard (pt-br, eng)', 'pt-br')
|
|
11
|
+
.action(async (options) => {
|
|
12
|
+
let contextPath = options.context;
|
|
13
|
+
// Auto-discovery: se o default não existe, tenta .context-dist ou outros padrões
|
|
14
|
+
if (contextPath === '.context' && !(await fs.pathExists(path.join(process.cwd(), contextPath)))) {
|
|
15
|
+
const alternates = ['.context-dist', '.context-clean', 'context'];
|
|
16
|
+
for (const alt of alternates) {
|
|
17
|
+
if (await fs.pathExists(path.join(process.cwd(), alt))) {
|
|
18
|
+
contextPath = alt;
|
|
19
|
+
break;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
const monitor = new MonitorService(contextPath, options.lang);
|
|
24
|
+
try {
|
|
25
|
+
await monitor.start();
|
|
26
|
+
}
|
|
27
|
+
catch (error) {
|
|
28
|
+
console.error(chalk.red(`\n[Genesis Error] Contexto não encontrado.`));
|
|
29
|
+
console.log(chalk.gray(`Certifique-se de que o diretório de contexto existe ou especifique via:`));
|
|
30
|
+
console.log(chalk.cyan(`ggai monitor --context <path>\n`));
|
|
31
|
+
process.exit(1);
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
}
|