agents.dev 1.0.5 → 1.0.6

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 CHANGED
@@ -1,132 +1,44 @@
1
- # 🤖 Agents.dev
2
-
3
- **The "Package Manager" for AI Agents.**
4
- Agents.dev is a CLI tool that defines a standard Squad of AI Developers and installs them directly into your favorite AI Coding Assistant contexts (Gemini, Roo Code, Kilo Code, OpenCode).
5
-
6
- Stop prompting from scratch. Install a proven workflow.
7
-
8
- ## 🚀 Quick Start
9
-
10
- ### Prerequisites
11
- - Node.js 18+
12
- - An AI Coding Assistant (e.g., Google IDX with Gemini, VSCode with Roo Code)
13
-
14
- ### Installation & Usage
15
-
16
- **Option 1: Direct Install (Recommended)**
17
- Install globally or in your project:
18
- ```bash
19
- npx agents.dev
20
- # OR
21
- npm install agents.dev
22
- agents-install
23
- ```
24
-
25
- **Option 2: From Source**
26
- 1. Clone the repo:
27
- ```bash
28
- git clone https://github.com/your-username/agents.dev.git
29
- cd agents.dev
30
- ```
31
- 2. Install & Run:
32
- ```bash
33
- npm install
34
- npm start
35
- ```
36
-
37
- ### First Run
38
- Run the **init** command to start the configuration Wizard:
39
- ```bash
40
- agents.dev init
41
- # OR with npx
42
- npx agents.dev init
43
- ```
44
-
45
- The Wizard will guide you through:
46
- 1. **Select OS**: Windows or Unix.
47
- 2. **Select Targets**: Choose formats to build (Gemini, Roo, etc.).
48
- 3. **Docs Auto-Gen**: It automatically creates `docs/` and a workflow guide.
49
-
50
- ---
51
-
52
- ## 👥 The Squad (Agent Functions)
53
-
54
- The system works best when you follow this pipeline. Each agent saves their "Brain" in the `docs/` folder, which serves as context for the next agent.
55
-
56
- ### 🏗️ 1. Project Architect
57
- **"The Visionary"**
58
- Transforms your raw idea into a professional specification. It acts as an interviewer to discover hidden requirements.
59
- - **Trigger:** `/dev.project "I want a Uber clone for dog walking"`
60
- - **Action:** Asks clarifying questions about features, target audience, and constraints.
61
- - **Output:** `docs/project.md` (Scope, User Stories, Core Principles).
62
-
63
- ### 🧱 2. Requirements Engineer
64
- **"The Tech Lead"**
65
- Decides *how* to build it. Defines the stack, database schema, and technical boundaries based on the Spec.
66
- - **Trigger:** `/dev.requirements`
67
- - **Action:** Selects libraries (e.g., "Prisma vs TypeORM"), defines API contracts, and security rules.
68
- - **Output:** `docs/requirements.md` (The "Technical Contract" that the Coder must obey).
69
-
70
- ### 🗺️ 3. Milestone Manager
71
- **"The Strategist"**
72
- Prevents you from trying to build everything at once. Slices the project into logical "MVPs" (Phases).
73
- - **Trigger:** `/dev.milestone`
74
- - **Output:** `docs/milestones.md` (e.g., Phase 1: Auth, Phase 2: Payment, Phase 3: GPS).
75
-
76
- ### 📋 4. Task Planner
77
- **"The Project Manager"**
78
- Takes **ONE Milestone** and breaks it down into atomic, bite-sized tasks for the AI Coder.
79
- - **Reasoning:** AI Coders hallucinate less when the context is small.
80
- - **Trigger:** `/dev.tasks 1` (Plan Milestone 1)
81
- - **Output:** `docs/task.md` (A checklist of 5-10 specific file operations).
82
-
83
- ### 🕵️ 5. Auditor
84
- **"The Gatekeeper"**
85
- A safety check before you start coding. It reads the **Requirements** and the **Task Plan** to ensure nothing was lost in translation.
86
- - **Trigger:** `/dev.auditor`
87
- - **Action:** "Hey, you planned the Login UI but forgot the 'Forgot Password' flow mentioned in Requirements."
88
- - **Output:** `audit_report.md` (Pass/Fail).
89
-
90
- ### 💻 6. Coder
91
- **"The Senior Developer"**
92
- The workhorse. It executes ONE task from the checklist at a time.
93
- - **Features:**
94
- - **Context Aware:** Reads `project.md` to know "Project Principles" (e.g., "Use Functional Components").
95
- - **Safety:** Checks `.gitignore` before creating files.
96
- - **TDD:** Can write tests before code if requested.
97
- - **Trigger:** `/dev.coder 1.1` (Implement Task 1.1)
98
- - **Output:** Writes code to `src/` and logs to `work_log.md`.
99
-
100
- ### ⚖️ 7. QA Engineer
101
- **"The Reviewer"**
102
- Simulates a Pull Request review. It checks if the code matches the Requirements contracts.
103
- - **Trigger:** `/dev.review 1.1`
104
- - **Action:** Reads the code and the `requirements.md`. If variables are named poorly or logic is insecure, it REJECTS the task.
105
-
106
- ### 📦 8. Release Manager
107
- **"The Historian"**
108
- Consolidates the messy daily `work_log.md` into a clean `CHANGELOG`.
109
- - **Trigger:** `/dev.log`
110
-
111
- ---
112
-
113
- ## 🛠️ On-Demand Toolkit
114
-
115
- ### 🏗️ DevOps Engineer (`/dev.ops`)
116
- **"The Config Specialist"**
117
- Don't waste token context on config files during feature dev. Call this agent specifically for:
118
- - "Create a Dockerfile for this Node structure"
119
- - "Setup Github Actions for tests"
120
- - "Configure ESLint and Prettier"
121
-
122
- ---
123
-
124
- ## 🎯 Supported Targets
125
-
126
- - **Gemini CLI** (`.gemini/commands/*.toml`)
127
- - **Roo Code** (`.roo/commands/*.md`)
128
- - **Kilo Code** (`.kilocode/workflows/*.md`)
129
- - **OpenCode** (`.opencode/command/*.md`)
130
-
131
- ## 📄 Documentation
132
- During installation, the CLI automatically generates a `docs/README.md` guide inside your project, explaining exactly how to chain these commands for the perfect workflow.
1
+ # agents-dev (Universal Spec CLI)
2
+
3
+ Ferramenta CLI para configurar automaticamente o ambiente de desenvolvimento e instalar agentes de IA (Auditor, Coder, etc.) para diversas ferramentas como Gemini CLI, Roo Code, Cline e Kilo Code.
4
+
5
+ ## Funcionalidades
6
+
7
+ ### 1. Instalação de Agentes de IA
8
+ definições agnósticas (YAML) e converte para formatos específicos:
9
+ * **Gemini CLI:** Gera arquivos de configuração `.toml`.
10
+ * **Roo Code / Cline:** Gera modos customizados (`_custom_modes.json`).
11
+ * **Kilo Code:** Gera prompts em Markdown (`.kilo/prompts/*.md`).
12
+
13
+ ### 2. Configuração
14
+ Automatiza a criação de arquivos de configuração necessários para integrar agentes de IA ao seu fluxo de trabalho.
15
+
16
+ ## Instalação e Uso
17
+
18
+ Você pode executar a ferramenta diretamente via `npx` sem instalação prévia:
19
+
20
+ ```bash
21
+ npx agents-dev
22
+ ```
23
+
24
+ Ou instalar globalmente:
25
+
26
+ ```bash
27
+ npm install -g agents-dev
28
+ agents-dev
29
+ ```
30
+
31
+ ## Como funciona
32
+
33
+ 1. Execute `npx agents-dev` na raiz do seu projeto.
34
+ 2. A interface interativa perguntará quais configurações você deseja aplicar.
35
+ 3. Os arquivos de configuração dos agentes serão gerados na pasta do seu projeto.
36
+
37
+ ## Estrutura do Projeto
38
+
39
+ * `src/`: Código fonte da CLI.
40
+ * `definitions/`: Definições YAML dos agentes (agnósticas).
41
+
42
+ ## Licença
43
+
44
+ MIT
@@ -1,60 +1,60 @@
1
- name: Coder
2
- role: Senior Software Engineer (Implementation)
3
- emoji: 💻
4
- systemPrompt: |
5
- # SYSTEM ROLE & IDENTITY
6
- You are the **Senior Software Engineer**.
7
- You do not just "write code". You **architect solutions** at the file level.
8
- You follow **SOLID** principles and **Clean Code** standards.
9
- Your goal is to implement the task from `task.md` with **Zero Regression**.
10
-
11
- # INPUT CONTEXT
12
- 1. **Mandatory:** Read `docs/task.md` (The Task).
13
- 2. **Mandatory:** Read `docs/requirements.md` (The Stack & Rules).
14
- 3. **Mandatory:** Read `docs/project.md` (The Principles).
15
-
16
- # EXECUTION WORKFLOW
17
-
18
- ## PHASE 1: ANALYSIS & SAFETY
19
- 1. **Scope Verification:** asking yourself "What files do I need to touch?".
20
- - *Constraint:* Do NOT touch unrelated files.
21
- 2. **Environment Check:**
22
- - Check if `.gitignore` exists. If not, create it.
23
- - Check if tests exists.
24
-
25
- ## PHASE 2: IMPLEMENTATION
26
- 1. **Code:** Implement the feature following the "Project Principles" from `project.md`.
27
- 2. **Test (Conditional):**
28
- - **IF** `requirements.md` mandates tests: Create/Update tests to verify your changes.
29
- - **IF** strict TDD is requested in principles: Write tests *before* code.
30
-
31
- ## PHASE 3: SELF-CORRECTION
32
- 1. **Build/Lint:** Run the compiler/linter.
33
- - *If Error:* Fix it immediately. Do not ask user.
34
- 2. **Test:** Run the tests.
35
- - *If Fail:* Fix the code.
36
-
37
- ## PHASE 4: REPORTING
38
- 1. **Update task.md:** Mark the task as `[x]`.
39
- 2. **Log Work:** Append to `work_log.md`.
40
-
41
- # OUTPUT STRUCTURE (work_log.md - Append)
42
- ---
43
- **[DATE] Task:** [ID] | **Status:** [Completed]
44
- **Changes:**
45
- - Created `src/components/Button.tsx`
46
- - Updated `src/utils/helpers.ts`
47
- **Self-Check:**
48
- - [x] Linter Passed
49
- - [x] Tests Passed (if applicable)
50
- ---
51
-
52
- # INSTRUCTION
53
- Read the context. Execute the task using the Workflow. Report in `work_log.md`.
54
- rules:
55
- - "**SINGLE FILE:** Never create files like `report_task_1.md`. Everything goes to `work_log.md`."
56
- - "**CLEANUP:** Keep `work_log.md` concise."
57
- - "**ENV SAFETY:** Before writing code in a new folder, check if `.gitignore` exists."
58
- - "**NO BROKEN WINDOWS:** Leave the code better than you found it. Fix linter errors you caused."
59
- - "**STRICT SCOPE:** Only edit files related to the specific Task ID."
60
- - "Language Adaptability: Respond in English by default. If the user speaks in another language, mirror their language."
1
+ name: Coder
2
+ role: Senior Software Engineer (Implementation)
3
+ emoji: 💻
4
+ systemPrompt: |
5
+ # SYSTEM ROLE & IDENTITY
6
+ You are the **Senior Software Engineer**.
7
+ You do not just "write code". You **architect solutions** at the file level.
8
+ You follow **SOLID** principles and **Clean Code** standards.
9
+ Your goal is to implement the task from `task.md` with **Zero Regression**.
10
+
11
+ # INPUT CONTEXT
12
+ 1. **Mandatory:** Read `docs/task.md` (The Task).
13
+ 2. **Mandatory:** Read `docs/requirements.md` (The Stack & Rules).
14
+ 3. **Mandatory:** Read `docs/project.md` (The Principles).
15
+
16
+ # EXECUTION WORKFLOW
17
+
18
+ ## PHASE 1: ANALYSIS & SAFETY
19
+ 1. **Scope Verification:** asking yourself "What files do I need to touch?".
20
+ - *Constraint:* Do NOT touch unrelated files.
21
+ 2. **Environment Check:**
22
+ - Check if `.gitignore` exists. If not, create it.
23
+ - Check if tests exists.
24
+
25
+ ## PHASE 2: IMPLEMENTATION
26
+ 1. **Code:** Implement the feature following the "Project Principles" from `project.md`.
27
+ 2. **Test (Conditional):**
28
+ - **IF** `requirements.md` mandates tests: Create/Update tests to verify your changes.
29
+ - **IF** strict TDD is requested in principles: Write tests *before* code.
30
+
31
+ ## PHASE 3: SELF-CORRECTION
32
+ 1. **Build/Lint:** Run the compiler/linter.
33
+ - *If Error:* Fix it immediately. Do not ask user.
34
+ 2. **Test:** Run the tests.
35
+ - *If Fail:* Fix the code.
36
+
37
+ ## PHASE 4: REPORTING
38
+ 1. **Update task.md:** Mark the task as `[x]`.
39
+ 2. **Log Work:** Append to `work_log.md`.
40
+
41
+ # OUTPUT STRUCTURE (work_log.md - Append)
42
+ ---
43
+ **[DATE] Task:** [ID] | **Status:** [Completed]
44
+ **Changes:**
45
+ - Created `src/components/Button.tsx`
46
+ - Updated `src/utils/helpers.ts`
47
+ **Self-Check:**
48
+ - [x] Linter Passed
49
+ - [x] Tests Passed (if applicable)
50
+ ---
51
+
52
+ # INSTRUCTION
53
+ Read the context. Execute the task using the Workflow. Report in `work_log.md`.
54
+ rules:
55
+ - "**SINGLE FILE:** Never create files like `report_task_1.md`. Everything goes to `work_log.md`."
56
+ - "**CLEANUP:** Keep `work_log.md` concise."
57
+ - "**ENV SAFETY:** Before writing code in a new folder, check if `.gitignore` exists."
58
+ - "**NO BROKEN WINDOWS:** Leave the code better than you found it. Fix linter errors you caused."
59
+ - "**STRICT SCOPE:** Only edit files related to the specific Task ID."
60
+ - "Language Adaptability: Respond in English by default. If the user speaks in another language, mirror their language."
package/package.json CHANGED
@@ -1,46 +1,40 @@
1
1
  {
2
- "name": "agents.dev",
3
- "version": "1.0.5",
4
- "description": "",
5
- "main": "dist/index.js",
6
- "bin": {
7
- "agents.dev": "./dist/index.js",
8
- "agents-install": "./dist/index.js"
9
- },
10
- "files": [
11
- "dist",
12
- "definitions"
13
- ],
14
- "scripts": {
15
- "test": "echo \"Error: no test specified\" && exit 1",
16
- "start": "npx ts-node src/index.ts",
17
- "build": "tsc",
18
- "prepack": "npm run build",
19
- "prepublishOnly": "npm run build"
20
- },
21
- "keywords": [
22
- "agents",
23
- "ai",
24
- "cli",
25
- "workflow"
26
- ],
27
- "author": "",
28
- "license": "ISC",
29
- "type": "commonjs",
30
- "dependencies": {
31
- "@types/inquirer": "^9.0.9",
32
- "chalk": "^5.6.2",
33
- "commander": "^14.0.2",
34
- "fs-extra": "^11.3.2",
35
- "inquirer": "^8.2.7",
36
- "user": "^0.0.0",
37
- "yaml": "^2.8.2",
38
- "zod": "^4.1.13"
39
- },
40
- "devDependencies": {
41
- "@types/fs-extra": "^11.0.4",
42
- "@types/node": "^25.0.1",
43
- "ts-node": "^10.9.2",
44
- "typescript": "^5.9.3"
45
- }
2
+ "name": "agents.dev",
3
+ "version": "1.0.6",
4
+ "description": "Instalador automático dos agentes de desenvolvimento",
5
+ "main": "src/index.js",
6
+ "bin": {
7
+ "agents.dev": "./src/index.js"
8
+ },
9
+ "scripts": {
10
+ "start": "node src/index.js",
11
+ "test": "echo \"Error: no test specified\" && exit 1"
12
+ },
13
+ "dependencies": {
14
+ "@clack/prompts": "^0.7.0",
15
+ "js-yaml": "^4.1.0",
16
+ "picocolors": "^1.0.0",
17
+ "zod": "^4.2.1"
18
+ },
19
+ "author": "",
20
+ "license": "MIT",
21
+ "files": [
22
+ "src",
23
+ "definitions",
24
+ "README.md"
25
+ ],
26
+ "keywords": [
27
+ "ai",
28
+ "agents",
29
+ "cli",
30
+ "dev-tools",
31
+ "llm",
32
+ "gemini",
33
+ "roo-code",
34
+ "cline"
35
+ ],
36
+ "repository": {
37
+ "type": "git",
38
+ "url": "https://github.com/filipeoliveira93/agents.dev"
39
+ }
46
40
  }
package/src/index.js ADDED
@@ -0,0 +1,139 @@
1
+ #!/usr/bin/env node
2
+
3
+ const fs = require('fs');
4
+ const path = require('path');
5
+ const yaml = require('js-yaml');
6
+ const { intro, outro, multiselect, select, spinner, note } = require('@clack/prompts');
7
+ const pc = require('picocolors');
8
+
9
+ // Módulos Internos
10
+ const { AgentSchema } = require('./lib/schema');
11
+ const { toGeminiTOML, toRooConfig, toKiloMarkdown } = require('./lib/transformers');
12
+ const { generateWorkflowGuide } = require('./lib/docs');
13
+
14
+ async function main() {
15
+ console.clear();
16
+ intro(pc.bgMagenta(pc.white(' UNIVERSAL SPEC CLI ')));
17
+
18
+ // 1. Seleção de Componentes
19
+ const components = await multiselect({
20
+ message: 'O que você deseja configurar?',
21
+ options: [
22
+ { value: 'docs', label: 'Gerar Documentação de Workflow (docs/README.md)', hint: 'Essencial' },
23
+ { value: 'agents', label: 'Instalar Agentes de IA', hint: 'Recomendado' },
24
+ { value: 'vscode', label: 'Configurar VS Code', hint: '(Simulado)' },
25
+ ],
26
+ required: true,
27
+ });
28
+
29
+ if (!components) {
30
+ outro('Operação cancelada.');
31
+ process.exit(0);
32
+ }
33
+
34
+ // 2. Instalação de Documentação
35
+ if (components.includes('docs')) {
36
+ const created = generateWorkflowGuide(process.cwd());
37
+ if (created) {
38
+ note('Documentação criada em docs/README.md', 'Docs');
39
+ } else {
40
+ console.log(pc.gray('ℹ️ Pasta docs/ já existe. Ignorando criação.'));
41
+ }
42
+ }
43
+
44
+ // 3. Instalação de Agentes
45
+ if (components.includes('agents')) {
46
+ const tool = await select({
47
+ message: 'Onde você deseja instalar os Agentes?',
48
+ options: [
49
+ { value: 'gemini', label: 'Gemini CLI', hint: '.gemini/commands/dev' },
50
+ { value: 'roo', label: 'Roo Code', hint: 'Gera roo_custom_modes.json' },
51
+ { value: 'cline', label: 'Cline', hint: 'Gera cline_custom_modes.json' },
52
+ { value: 'kilo', label: 'Kilo Code', hint: '.kilo/prompts/*.md' },
53
+ ],
54
+ });
55
+
56
+ if (!tool) process.exit(0);
57
+
58
+ await processAgentsInstallation(tool);
59
+ }
60
+
61
+ outro(pc.green('Configuração concluída com sucesso! 🚀'));
62
+ }
63
+
64
+ async function processAgentsInstallation(tool) {
65
+ const s = spinner();
66
+ s.start('Carregando definições...');
67
+
68
+ const definitionsDir = path.join(__dirname, '..', 'definitions');
69
+ if (!fs.existsSync(definitionsDir)) {
70
+ s.stop('Falha');
71
+ note(`Pasta de definições não encontrada: ${definitionsDir}`, 'Erro Fatal');
72
+ return;
73
+ }
74
+
75
+ const files = fs.readdirSync(definitionsDir).filter(f => f.endsWith('.yaml') || f.endsWith('.yml'));
76
+ const validAgents = [];
77
+
78
+ // Validação e Carregamento
79
+ for (const file of files) {
80
+ try {
81
+ const content = fs.readFileSync(path.join(definitionsDir, file), 'utf8');
82
+ const raw = yaml.load(content);
83
+
84
+ // Validação com Zod
85
+ const parsed = AgentSchema.safeParse(raw);
86
+ if (!parsed.success) {
87
+ console.warn(pc.yellow(`⚠️ Ignorando ${file}: Inválido`));
88
+ continue;
89
+ }
90
+
91
+ const agent = parsed.data;
92
+ agent.slug = file.replace(/\.ya?ml$/, '').replace(/\./g, '-'); // dev.coder -> dev-coder
93
+ validAgents.push(agent);
94
+
95
+ } catch (e) {
96
+ console.error(pc.red(`Erro ao ler ${file}: ${e.message}`));
97
+ }
98
+ }
99
+
100
+ s.message(`Instalando ${validAgents.length} agentes para ${tool}...`);
101
+
102
+ // Instalação Específica por Ferramenta
103
+ try {
104
+ if (tool === 'gemini') {
105
+ const targetDir = path.join(process.cwd(), '.gemini', 'commands', 'dev');
106
+ if (!fs.existsSync(targetDir)) fs.mkdirSync(targetDir, { recursive: true });
107
+
108
+ for (const agent of validAgents) {
109
+ const toml = toGeminiTOML(agent);
110
+ // Nome original com pontos (dev.coder.toml) é preferível para Gemini CLI
111
+ const fileName = `${agent.slug.replace(/-/g, '.')}.toml`;
112
+ fs.writeFileSync(path.join(targetDir, fileName), toml);
113
+ }
114
+ }
115
+ else if (tool === 'roo' || tool === 'cline') {
116
+ const modes = validAgents.map(agent => toRooConfig(agent, agent.slug));
117
+ const jsonContent = JSON.stringify({ customModes: modes }, null, 2);
118
+ const fileName = `${tool}_custom_modes.json`;
119
+ fs.writeFileSync(path.join(process.cwd(), fileName), jsonContent);
120
+ note(`Copie o conteúdo de '${fileName}' para as configurações da extensão.`, 'Ação Manual');
121
+ }
122
+ else if (tool === 'kilo') {
123
+ const targetDir = path.join(process.cwd(), '.kilo', 'prompts');
124
+ if (!fs.existsSync(targetDir)) fs.mkdirSync(targetDir, { recursive: true });
125
+
126
+ for (const agent of validAgents) {
127
+ const md = toKiloMarkdown(agent);
128
+ fs.writeFileSync(path.join(targetDir, `${agent.slug}.md`), md);
129
+ }
130
+ }
131
+ s.stop('Instalação finalizada!');
132
+
133
+ } catch (e) {
134
+ s.stop('Falha');
135
+ console.error(pc.red(e.message));
136
+ }
137
+ }
138
+
139
+ main().catch(console.error);
@@ -0,0 +1,97 @@
1
+ const fs = require('fs');
2
+ const path = require('path');
3
+ const pc = require('picocolors');
4
+
5
+ /**
6
+ * Gera o guia de workflow do projeto
7
+ */
8
+ function generateWorkflowGuide(baseDir) {
9
+ const docsDir = path.join(baseDir, 'docs');
10
+
11
+ // Conteúdo baseado no exemplo provided
12
+ const content = `# 🤖 Agent Workflow Guide
13
+
14
+ Este documento descreve o fluxo de desenvolvimento padrão usando os Agentes instalados.
15
+ O sistema segue um processo **Waterfall** para planejamento (precisão) e **Iterativo** para execução.
16
+
17
+ ---
18
+
19
+ ## 1. 🏗️ Project Spec (@Project Architect)
20
+ **Role:** O Visionário.
21
+ **Goal:** Traduzir sua ideia vaga em uma Especificação concreta com "Project Principles" definidos.
22
+ - **Comando:** \
23
+ /dev:project "Eu quero um App de Todo que..."
24
+ - **Saída:**
25
+ `docs/project.md`
26
+
27
+ ## 2. 🧱 Requirements Engineering (@Requirements Engineer)
28
+ **Role:** O Tech Lead.
29
+ **Goal:** Fechar decisões técnicas (Stack, Banco de Dados, Libs).
30
+ - **Why?** Evita que o Coder "invente" arquitetura. Cria o "Contrato".
31
+ - **Comando:**
32
+ /dev:requirements
33
+ - **Saída:**
34
+ `docs/requirements.md`
35
+
36
+ ## 3. 🗺️ Roadmap Strategy (@Milestone Manager)
37
+ **Role:** O Estrategista.
38
+ **Goal:** Fatiar o projeto em fases de entrega (MVPs).
39
+ - **Comando:**
40
+ /dev:milestone
41
+ - **Saída:**
42
+ `docs/milestones.md`
43
+
44
+ ## 4. 📋 Task Planning (@Task Planner)
45
+ **Role:** O Gerente.
46
+ **Goal:** Quebrar um Milestone específico em tarefas atômicas para desenvolvedores.
47
+ - **Why?** IAs falham com contextos gigantes. Tarefas pequenas = Código perfeito.
48
+ - **Comando:**
49
+ /dev:tasks <Milestone_ID>
50
+ - **Saída:**
51
+ `docs/task.md`
52
+
53
+ ## 5. 🕵️ Blueprint Audit (@Auditor)
54
+ **Role:** O Guardião.
55
+ **Goal:** Validar consistência entre **Requirements** e **Tasks**.
56
+ - **Comando:**
57
+ /dev:auditor
58
+ - **Saída:**
59
+ `audit_report.md`
60
+
61
+ ## 6. 💻 Implementation (@Coder)
62
+ **Role:** O Construtor.
63
+ **Goal:** Executar *uma tarefa por vez* do arquivo
64
+ `task.md`.
65
+ - **Comando:**
66
+ /dev:coder <Task_ID>
67
+ - **Buffer:**
68
+ `work_log.md`
69
+
70
+ ## 7. ⚖️ Quality Assurance (@QA Engineer)
71
+ **Role:** O Inspetor.
72
+ **Goal:** Verificar se a implementação bate com os Requisitos.
73
+ - **Comando:**
74
+ /dev:review <Task_ID>
75
+ - **Saída:**
76
+ `docs/logs/review_log.md`
77
+
78
+ ## 8. 📦 Release Management (@Release Manager)
79
+ **Role:** O Historiador.
80
+ **Goal:** Consolidar o
81
+ `work_log.md` em um
82
+ `changelog.md` permanente.
83
+ - **Comando:**
84
+ /dev:log
85
+ - **Saída:**
86
+ `changelog.md`
87
+ `;
88
+
89
+ if (!fs.existsSync(docsDir)) {
90
+ fs.mkdirSync(docsDir, { recursive: true });
91
+ fs.writeFileSync(path.join(docsDir, 'README.md'), content);
92
+ return true;
93
+ }
94
+ return false;
95
+ }
96
+
97
+ module.exports = { generateWorkflowGuide };
@@ -0,0 +1,13 @@
1
+ const { z } = require('zod');
2
+
3
+ const AgentSchema = z.object({
4
+ name: z.string().min(1, "Nome é obrigatório"),
5
+ role: z.string().min(1, "Papel (Role) é obrigatório"),
6
+ emoji: z.string().optional().default('🤖'),
7
+ systemPrompt: z.string().min(10, "System Prompt deve ter pelo menos 10 caracteres"),
8
+ rules: z.array(z.string()).optional().default([]),
9
+ tools: z.array(z.string()).optional().default([]),
10
+ description: z.string().optional()
11
+ });
12
+
13
+ module.exports = { AgentSchema };