context-first-cli 1.3.1 → 1.4.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 CHANGED
@@ -53,6 +53,7 @@ npm install -g context-first-cli
53
53
  | `context-cli create:orchestrator` | Create a new orchestrator repository from a template with all necessary structure. |
54
54
  | `context-cli add:repo` | Add a new code repository to `context-manifest.json` interactively. |
55
55
  | `context-cli add:repo-metaspec` | Add or update the MetaSpecs repository in `context-manifest.json`. |
56
+ | `context-cli config:setup` | Interactively configure `ai.properties.md` for local development. |
56
57
 
57
58
  ### Workspace Commands
58
59
 
@@ -115,23 +116,22 @@ npx context-first-cli@latest add:repo
115
116
 
116
117
  Each repository will be added to `context-manifest.json` with its configuration.
117
118
 
118
- ### Step 3: Configure Local Paths
119
+ ### Step 3: Configure Local Environment
119
120
 
120
- Edit `ai.properties.md` in your orchestrator to set up local paths and credentials:
121
+ Run `config:setup` to interactively configure your local `ai.properties.md` file.
121
122
 
122
- ```markdown
123
- # Paths dos Projetos
124
- base_path=/path/to/your/workspace
125
- meta_specs_path=/path/to/your/meta-specs
126
- backend_path=/path/to/your/backend
127
- frontend_path=/path/to/your/frontend
128
-
129
- # Task Manager Configuration
130
- task_management_system=jira
131
- jira_site=https://your-org.atlassian.net
132
- ...
123
+ ```bash
124
+ cd my-project-orchestrator/
125
+ npx context-first-cli@latest config:setup
133
126
  ```
134
127
 
128
+ This will ask for:
129
+ 1. **Base workspace path** (where repositories will be cloned, e.g., `~/workspace`)
130
+ 2. **Auto-clone** (whether to clone missing repositories automatically)
131
+ 3. **Task manager** settings (Jira, Linear, etc.)
132
+
133
+ This generates an `ai.properties.md` file tailored to your machine, following the convention-over-configuration principle.
134
+
135
135
  **Note**: This file is gitignored because it contains local paths specific to each developer.
136
136
 
137
137
  ### Step 4: Initialize Your Application Repositories
@@ -241,9 +241,11 @@ npx context-first-cli@latest add:repo
241
241
  npx context-first-cli@latest add:repo
242
242
  # ID: admin, URL: git@github.com:myorg/my-saas-admin.git
243
243
 
244
- # 3. Configure local paths
245
- nano ai.properties.md
246
- # Edit paths to match your local setup
244
+ # 3. Configure local environment
245
+ npx context-first-cli@latest config:setup
246
+ # Base path: ~/workspace
247
+ # Auto-clone: Yes
248
+ # Task manager: Jira
247
249
 
248
250
  # 4. Push orchestrator to Git
249
251
  git remote add origin git@github.com:myorg/my-saas-orchestrator.git
@@ -0,0 +1,2 @@
1
+ export declare function updateCommands(): Promise<void>;
2
+ //# sourceMappingURL=update-commands.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-commands.d.ts","sourceRoot":"","sources":["../../src/commands/update-commands.ts"],"names":[],"mappings":"AAKA,wBAAsB,cAAc,kBAoHnC"}
@@ -0,0 +1,160 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.updateCommands = updateCommands;
40
+ const fs = __importStar(require("fs"));
41
+ const path = __importStar(require("path"));
42
+ const chalk_1 = __importDefault(require("chalk"));
43
+ const inquirer_1 = __importDefault(require("inquirer"));
44
+ async function updateCommands() {
45
+ console.log(chalk_1.default.blue('\n🔄 Update Commands\n'));
46
+ // 1. Verificar se está em um orchestrator
47
+ const manifestPath = path.join(process.cwd(), 'context-manifest.json');
48
+ if (!fs.existsSync(manifestPath)) {
49
+ console.log(chalk_1.default.red('❌ Error: context-manifest.json not found'));
50
+ console.log(chalk_1.default.yellow('This command must be run from an orchestrator directory'));
51
+ process.exit(1);
52
+ }
53
+ console.log(chalk_1.default.green('✓ Found orchestrator directory'));
54
+ // 2. Detectar qual pasta de comandos existe
55
+ const claudeCommandsPath = path.join(process.cwd(), '.claude', 'commands');
56
+ const cursorCommandsPath = path.join(process.cwd(), '.cursor', 'commands');
57
+ let commandsPath;
58
+ let aiProvider;
59
+ if (fs.existsSync(claudeCommandsPath)) {
60
+ commandsPath = claudeCommandsPath;
61
+ aiProvider = 'claude';
62
+ }
63
+ else if (fs.existsSync(cursorCommandsPath)) {
64
+ commandsPath = cursorCommandsPath;
65
+ aiProvider = 'cursor';
66
+ }
67
+ else {
68
+ console.log(chalk_1.default.red('❌ Error: No commands directory found'));
69
+ console.log(chalk_1.default.yellow('Expected .claude/commands or .cursor/commands'));
70
+ process.exit(1);
71
+ }
72
+ console.log(chalk_1.default.green(`✓ Found ${aiProvider} commands directory`));
73
+ // 3. Fazer backup dos comandos atuais
74
+ const backupPath = path.join(process.cwd(), `.${aiProvider}-commands-backup-${Date.now()}`);
75
+ const { shouldBackup } = await inquirer_1.default.prompt([
76
+ {
77
+ type: 'confirm',
78
+ name: 'shouldBackup',
79
+ message: 'Create backup of current commands before updating?',
80
+ default: true,
81
+ },
82
+ ]);
83
+ if (shouldBackup) {
84
+ fs.cpSync(commandsPath, backupPath, { recursive: true });
85
+ console.log(chalk_1.default.green(`✓ Backup created at: ${backupPath}`));
86
+ }
87
+ // 4. Perguntar quais comandos atualizar
88
+ const { updateMode } = await inquirer_1.default.prompt([
89
+ {
90
+ type: 'list',
91
+ name: 'updateMode',
92
+ message: 'Which commands do you want to update?',
93
+ choices: [
94
+ { name: 'All commands (recommended)', value: 'all' },
95
+ { name: 'Select specific commands', value: 'selective' },
96
+ ],
97
+ },
98
+ ]);
99
+ // 5. Copiar templates atualizados
100
+ const templatesPath = path.join(__dirname, '..', 'templates', 'commands');
101
+ if (!fs.existsSync(templatesPath)) {
102
+ console.log(chalk_1.default.red('❌ Error: Templates not found'));
103
+ console.log(chalk_1.default.yellow('Please reinstall context-first-cli'));
104
+ process.exit(1);
105
+ }
106
+ if (updateMode === 'all') {
107
+ // Atualizar todos os comandos
108
+ fs.cpSync(templatesPath, commandsPath, { recursive: true });
109
+ console.log(chalk_1.default.green('✓ All commands updated successfully'));
110
+ }
111
+ else {
112
+ // Modo seletivo
113
+ const availableCommands = getAllCommandFiles(templatesPath);
114
+ const { selectedCommands } = await inquirer_1.default.prompt([
115
+ {
116
+ type: 'checkbox',
117
+ name: 'selectedCommands',
118
+ message: 'Select commands to update:',
119
+ choices: availableCommands.map(cmd => ({
120
+ name: cmd.replace(/\//g, ' / '),
121
+ value: cmd,
122
+ })),
123
+ },
124
+ ]);
125
+ // Copiar apenas os comandos selecionados
126
+ for (const command of selectedCommands) {
127
+ const sourcePath = path.join(templatesPath, command);
128
+ const destPath = path.join(commandsPath, command);
129
+ // Criar diretório se não existir
130
+ const destDir = path.dirname(destPath);
131
+ if (!fs.existsSync(destDir)) {
132
+ fs.mkdirSync(destDir, { recursive: true });
133
+ }
134
+ fs.copyFileSync(sourcePath, destPath);
135
+ console.log(chalk_1.default.green(`✓ Updated: ${command}`));
136
+ }
137
+ }
138
+ console.log(chalk_1.default.blue('\n✨ Commands updated successfully!\n'));
139
+ if (shouldBackup) {
140
+ console.log(chalk_1.default.yellow(`💡 Backup location: ${backupPath}`));
141
+ console.log(chalk_1.default.yellow(' You can restore from backup if needed\n'));
142
+ }
143
+ }
144
+ function getAllCommandFiles(dir, baseDir = dir) {
145
+ const files = [];
146
+ const items = fs.readdirSync(dir);
147
+ for (const item of items) {
148
+ const fullPath = path.join(dir, item);
149
+ const stat = fs.statSync(fullPath);
150
+ if (stat.isDirectory()) {
151
+ files.push(...getAllCommandFiles(fullPath, baseDir));
152
+ }
153
+ else if (item.endsWith('.md')) {
154
+ const relativePath = path.relative(baseDir, fullPath);
155
+ files.push(relativePath);
156
+ }
157
+ }
158
+ return files.sort();
159
+ }
160
+ //# sourceMappingURL=update-commands.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-commands.js","sourceRoot":"","sources":["../../src/commands/update-commands.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -7,6 +7,7 @@ const create_orchestrator_1 = require("./commands/create-orchestrator");
7
7
  const add_repo_1 = require("./commands/add-repo");
8
8
  const add_repo_metaspec_1 = require("./commands/add-repo-metaspec");
9
9
  const config_setup_1 = require("./commands/config-setup");
10
+ const update_commands_1 = require("./commands/update-commands");
10
11
  const feature_1 = require("./commands/feature");
11
12
  const doctor_1 = require("./commands/doctor");
12
13
  const status_1 = require("./commands/status");
@@ -36,6 +37,10 @@ program
36
37
  .command('config:setup')
37
38
  .description('Interactively configure ai.properties.md for local development')
38
39
  .action(config_setup_1.configSetupCommand);
40
+ program
41
+ .command('update:commands')
42
+ .description('Update command templates in an existing orchestrator')
43
+ .action(update_commands_1.updateCommands);
39
44
  // Feature management commands
40
45
  const feature = program.command('feature').description('Manage feature workspaces');
41
46
  feature
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAEA,yCAAoC;AAEpC,0CAA8C;AAC9C,wEAA2E;AAC3E,kDAAqD;AACrD,oEAAsE;AACtE,0DAA6D;AAC7D,gDAAqD;AACrD,8CAAkD;AAClD,8CAAkD;AAElD,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,aAAa,CAAC;KACnB,WAAW,CAAC,8EAA8E,CAAC;KAC3F,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,iBAAiB;AACjB,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,iDAAiD,CAAC;KAC9D,MAAM,CAAC,kBAAW,CAAC,CAAC;AAEvB,OAAO;KACJ,OAAO,CAAC,qBAAqB,CAAC;KAC9B,WAAW,CAAC,sDAAsD,CAAC;KACnE,MAAM,CAAC,+CAAyB,CAAC,CAAC;AAErC,OAAO;KACJ,OAAO,CAAC,UAAU,CAAC;KACnB,WAAW,CAAC,oDAAoD,CAAC;KACjE,MAAM,CAAC,yBAAc,CAAC,CAAC;AAE1B,OAAO;KACJ,OAAO,CAAC,mBAAmB,CAAC;KAC5B,WAAW,CAAC,iEAAiE,CAAC;KAC9E,MAAM,CAAC,0CAAsB,CAAC,CAAC;AAElC,OAAO;KACJ,OAAO,CAAC,cAAc,CAAC;KACvB,WAAW,CAAC,gEAAgE,CAAC;KAC7E,MAAM,CAAC,iCAAkB,CAAC,CAAC;AAE9B,8BAA8B;AAC9B,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,2BAA2B,CAAC,CAAC;AAEpF,OAAO;KACJ,OAAO,CAAC,kBAAkB,CAAC;KAC3B,WAAW,CAAC,gCAAgC,CAAC;KAC7C,MAAM,CAAC,qBAAqB,EAAE,iDAAiD,CAAC;KAChF,MAAM,CAAC,yBAAe,CAAC,KAAK,CAAC,CAAC;AAEjC,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,oCAAoC,CAAC;KACjD,MAAM,CAAC,yBAAe,CAAC,IAAI,CAAC,CAAC;AAEhC,OAAO;KACJ,OAAO,CAAC,mBAAmB,CAAC;KAC5B,WAAW,CAAC,yCAAyC,CAAC;KACtD,MAAM,CAAC,yBAAe,CAAC,MAAM,CAAC,CAAC;AAElC,OAAO;KACJ,OAAO,CAAC,gBAAgB,CAAC;KACzB,WAAW,CAAC,oDAAoD,CAAC;KACjE,MAAM,CAAC,aAAa,EAAE,oCAAoC,CAAC;KAC3D,MAAM,CAAC,yBAAe,CAAC,GAAG,CAAC,CAAC;AAE/B,sBAAsB;AACtB,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,qCAAqC,CAAC;KAClD,MAAM,CAAC,sBAAa,CAAC,CAAC;AAEzB,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,+CAA+C,CAAC;KAC5D,MAAM,CAAC,sBAAa,CAAC,CAAC;AAEzB,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAEA,yCAAoC;AAEpC,0CAA8C;AAC9C,wEAA2E;AAC3E,kDAAqD;AACrD,oEAAsE;AACtE,0DAA6D;AAC7D,gEAA4D;AAC5D,gDAAqD;AACrD,8CAAkD;AAClD,8CAAkD;AAElD,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,aAAa,CAAC;KACnB,WAAW,CAAC,8EAA8E,CAAC;KAC3F,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,iBAAiB;AACjB,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,iDAAiD,CAAC;KAC9D,MAAM,CAAC,kBAAW,CAAC,CAAC;AAEvB,OAAO;KACJ,OAAO,CAAC,qBAAqB,CAAC;KAC9B,WAAW,CAAC,sDAAsD,CAAC;KACnE,MAAM,CAAC,+CAAyB,CAAC,CAAC;AAErC,OAAO;KACJ,OAAO,CAAC,UAAU,CAAC;KACnB,WAAW,CAAC,oDAAoD,CAAC;KACjE,MAAM,CAAC,yBAAc,CAAC,CAAC;AAE1B,OAAO;KACJ,OAAO,CAAC,mBAAmB,CAAC;KAC5B,WAAW,CAAC,iEAAiE,CAAC;KAC9E,MAAM,CAAC,0CAAsB,CAAC,CAAC;AAElC,OAAO;KACJ,OAAO,CAAC,cAAc,CAAC;KACvB,WAAW,CAAC,gEAAgE,CAAC;KAC7E,MAAM,CAAC,iCAAkB,CAAC,CAAC;AAE9B,OAAO;KACJ,OAAO,CAAC,iBAAiB,CAAC;KAC1B,WAAW,CAAC,sDAAsD,CAAC;KACnE,MAAM,CAAC,gCAAc,CAAC,CAAC;AAE1B,8BAA8B;AAC9B,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,2BAA2B,CAAC,CAAC;AAEpF,OAAO;KACJ,OAAO,CAAC,kBAAkB,CAAC;KAC3B,WAAW,CAAC,gCAAgC,CAAC;KAC7C,MAAM,CAAC,qBAAqB,EAAE,iDAAiD,CAAC;KAChF,MAAM,CAAC,yBAAe,CAAC,KAAK,CAAC,CAAC;AAEjC,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,oCAAoC,CAAC;KACjD,MAAM,CAAC,yBAAe,CAAC,IAAI,CAAC,CAAC;AAEhC,OAAO;KACJ,OAAO,CAAC,mBAAmB,CAAC;KAC5B,WAAW,CAAC,yCAAyC,CAAC;KACtD,MAAM,CAAC,yBAAe,CAAC,MAAM,CAAC,CAAC;AAElC,OAAO;KACJ,OAAO,CAAC,gBAAgB,CAAC;KACzB,WAAW,CAAC,oDAAoD,CAAC;KACjE,MAAM,CAAC,aAAa,EAAE,oCAAoC,CAAC;KAC3D,MAAM,CAAC,yBAAe,CAAC,GAAG,CAAC,CAAC;AAE/B,sBAAsB;AACtB,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,qCAAqC,CAAC;KAClD,MAAM,CAAC,sBAAa,CAAC,CAAC;AAEzB,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,+CAA+C,CAAC;KAC5D,MAAM,CAAC,sBAAa,CAAC,CAAC;AAEzB,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC"}
@@ -6,14 +6,14 @@ Este comando inicia o desenvolvimento de uma funcionalidade no workspace atual.
6
6
 
7
7
  Antes de iniciar, carregue o contexto consultando:
8
8
  - `context-manifest.json` - Estrutura de repositórios
9
- - `specs/business/index.md` - Contexto de negócio
10
- - `specs/technical/index.md` - Stack, arquitetura e padrões técnicos
11
- - `.workspace.json` - Informações do workspace atual
9
+ - `repositório de MetaSpecs (seção de negócio)index.md` - Contexto de negócio
10
+ - `repositório de MetaSpecs (seção técnica)index.md` - Stack, arquitetura e padrões técnicos
11
+ - `diretório do workspace` - Informações do workspace atual
12
12
 
13
13
  ## ⚙️ Configuração Inicial
14
14
 
15
15
  1. **Verificar Workspace**:
16
- - Confirme que está no workspace correto (verifique `.workspace.json`)
16
+ - Confirme que está no workspace correto (verifique `diretório do workspace`)
17
17
  - Liste os repositórios disponíveis no workspace
18
18
 
19
19
  2. **Verificar Branches**:
@@ -7,7 +7,7 @@ Este comando executa uma unidade de trabalho no workspace atual, implementando p
7
7
  Antes de executar, certifique-se de que:
8
8
  - Executou `/warm-up` para carregar o contexto
9
9
  - Executou `/start` e `/plan` para ter o planejamento técnico
10
- - Está no workspace correto (verifique `.workspace.json`)
10
+ - Está no workspace correto (verifique `diretório do workspace`)
11
11
  - Tem o arquivo `./.sessions/<ISSUE-ID>/plan.md` disponível
12
12
 
13
13
  ## 🎯 Objetivo
@@ -25,30 +25,30 @@ Execute este comando:
25
25
  Navegue até o diretório do orchestrator e identifique quais metaspecs existem:
26
26
 
27
27
  ```bash
28
- ls -la ../.context-orchestrator/specs/
28
+ ls -la repositório de MetaSpecs
29
29
  ```
30
30
 
31
31
  ### 2. Validação de Negócio
32
32
 
33
- Se existirem metaspecs de negócio (`specs/business/`):
33
+ Se existirem metaspecs de negócio (`repositório de MetaSpecs (seção de negócio)`):
34
34
 
35
35
  ```markdown
36
36
  ## Validação de Negócio
37
37
 
38
38
  ### Estratégia de Produto
39
- - **Arquivo**: `specs/business/PRODUCT_STRATEGY.md`
39
+ - **Arquivo**: `repositório de MetaSpecs (seção de negócio)PRODUCT_STRATEGY.md`
40
40
  - **Validação**: [Esta feature está alinhada com a estratégia?]
41
41
  - **Status**: ✅ Alinhado / ⚠️ Parcialmente / ❌ Desalinhado
42
42
  - **Notas**: [Observações]
43
43
 
44
44
  ### Personas
45
- - **Arquivo**: `specs/business/CUSTOMER_PERSONAS.md`
45
+ - **Arquivo**: `repositório de MetaSpecs (seção de negócio)CUSTOMER_PERSONAS.md`
46
46
  - **Validação**: [Atende a persona correta?]
47
47
  - **Status**: ✅ Alinhado / ⚠️ Parcialmente / ❌ Desalinhado
48
48
  - **Notas**: [Observações]
49
49
 
50
50
  ### Métricas
51
- - **Arquivo**: `specs/business/PRODUCT_METRICS.md`
51
+ - **Arquivo**: `repositório de MetaSpecs (seção de negócio)PRODUCT_METRICS.md`
52
52
  - **Validação**: [Métrica de sucesso está documentada?]
53
53
  - **Status**: ✅ Alinhado / ⚠️ Parcialmente / ❌ Desalinhado
54
54
  - **Notas**: [Observações]
@@ -56,32 +56,32 @@ Se existirem metaspecs de negócio (`specs/business/`):
56
56
 
57
57
  ### 3. Validação Técnica
58
58
 
59
- Se existirem metaspecs técnicas (`specs/technical/`):
59
+ Se existirem metaspecs técnicas (`repositório de MetaSpecs (seção técnica)`):
60
60
 
61
61
  ```markdown
62
62
  ## Validação Técnica
63
63
 
64
64
  ### Stack Tecnológica
65
- - **Arquivo**: `specs/technical/meta/stack.md`
65
+ - **Arquivo**: `repositório de MetaSpecs (seção técnica)meta/stack.md`
66
66
  - **Validação**: [Usa apenas tecnologias aprovadas?]
67
67
  - **Status**: ✅ Conforme / ⚠️ Exceção justificada / ❌ Não conforme
68
68
  - **Notas**: [Tecnologias usadas e justificativas]
69
69
 
70
70
  ### Arquitetura
71
- - **Arquivo**: `specs/technical/ARCHITECTURE.md`
71
+ - **Arquivo**: `repositório de MetaSpecs (seção técnica)ARCHITECTURE.md`
72
72
  - **Validação**: [Segue padrões arquiteturais?]
73
73
  - **Status**: ✅ Conforme / ⚠️ Parcialmente / ❌ Não conforme
74
74
  - **Notas**: [Observações]
75
75
 
76
76
  ### ADRs (Architecture Decision Records)
77
- - **Diretório**: `specs/technical/adr/`
77
+ - **Diretório**: `repositório de MetaSpecs (seção técnica)adr/`
78
78
  - **Validação**: [Respeita decisões arquiteturais documentadas?]
79
79
  - **ADRs Relevantes**: [Lista de ADRs verificados]
80
80
  - **Status**: ✅ Conforme / ⚠️ Conflito menor / ❌ Conflito crítico
81
81
  - **Notas**: [Observações]
82
82
 
83
83
  ### Regras de Negócio
84
- - **Arquivo**: `specs/technical/BUSINESS_LOGIC.md`
84
+ - **Arquivo**: `repositório de MetaSpecs (seção técnica)BUSINESS_LOGIC.md`
85
85
  - **Validação**: [Implementa regras de negócio corretamente?]
86
86
  - **Status**: ✅ Conforme / ⚠️ Parcialmente / ❌ Não conforme
87
87
  - **Notas**: [Observações]
@@ -93,17 +93,17 @@ Se existirem metaspecs técnicas (`specs/technical/`):
93
93
  ## Validação de Padrões
94
94
 
95
95
  ### Código
96
- - **Arquivo**: `specs/technical/CODE_STANDARDS.md`
96
+ - **Arquivo**: `repositório de MetaSpecs (seção técnica)CODE_STANDARDS.md`
97
97
  - **Validação**: [Segue padrões de código?]
98
98
  - **Status**: ✅ Conforme / ⚠️ Pequenos desvios / ❌ Não conforme
99
99
 
100
100
  ### Testes
101
- - **Arquivo**: `specs/technical/TEST_STANDARDS.md`
101
+ - **Arquivo**: `repositório de MetaSpecs (seção técnica)TEST_STANDARDS.md`
102
102
  - **Validação**: [Estratégia de testes adequada?]
103
103
  - **Status**: ✅ Conforme / ⚠️ Parcialmente / ❌ Não conforme
104
104
 
105
105
  ### Documentação
106
- - **Arquivo**: `specs/technical/DOC_STANDARDS.md`
106
+ - **Arquivo**: `repositório de MetaSpecs (seção técnica)DOC_STANDARDS.md`
107
107
  - **Validação**: [Documentação adequada?]
108
108
  - **Status**: ✅ Conforme / ⚠️ Parcialmente / ❌ Não conforme
109
109
  ```
@@ -18,9 +18,9 @@ Você é um especialista em produto responsável por coletar e documentar novas
18
18
  ## Contexto do Projeto
19
19
 
20
20
  Antes de iniciar, carregue o contexto consultando:
21
- - `context-manifest.json` - Estrutura do projeto
22
- - `specs/business/` - Contexto de negócio (se disponível)
23
- - `specs/technical/` - Contexto técnico (se disponível)
21
+ - `context-manifest.json` do orchestrator - Estrutura do projeto
22
+ - Repositório de MetaSpecs (definido no manifest) - Leia os arquivos `index.md` como referência
23
+ - `README.md` dos repositórios envolvidos
24
24
 
25
25
  ## Seu Objetivo
26
26
 
@@ -7,51 +7,64 @@ Este comando prepara o ambiente carregando o contexto completo do projeto e do w
7
7
  Verifique se você está dentro de um workspace criado pelo `context-cli`:
8
8
 
9
9
  ```bash
10
- # Procurar pelo arquivo .workspace.json no diretório atual ou pais
10
+ # Verificar se está em um diretório de workspace
11
11
  pwd
12
- ls -la .workspace.json 2>/dev/null || echo "Não está em um workspace"
12
+ # O workspace geralmente está em ~/workspaces/<ISSUE-ID>/
13
13
  ```
14
14
 
15
- Se não estiver em um workspace, pergunte ao usuário qual workspace usar ou se deve criar um novo.
15
+ Se não estiver em um workspace, pergunte ao usuário qual workspace usar ou se deve criar um novo com `feature:start`.
16
16
 
17
- ## 2. Carregar Configuração do Orchestrator
17
+ ## 2. Carregar Configuração do Projeto
18
18
 
19
- Leia o arquivo `.workspace.json` para identificar:
20
- - Issue ID do workspace
21
- - Repositórios incluídos neste workspace
22
- - Data de criação e última atualização
19
+ Identifique o orchestrator do projeto:
23
20
 
24
- ## 3. Carregar Metaspecs (se disponíveis)
21
+ 1. **Procure o arquivo `.contextrc.json`** em qualquer um dos repositórios do workspace
22
+ 2. Este arquivo contém a URL do repositório orchestrator
23
+ 3. Se o orchestrator ainda não estiver clonado localmente, clone-o
25
24
 
26
- Navegue até o diretório do orchestrator (geralmente `../.context-orchestrator/`) e leia:
25
+ ## 3. Carregar Manifesto do Projeto
27
26
 
28
- 1. **Manifesto do Projeto**: `context-manifest.json`
29
- - Entenda a estrutura de repositórios
30
- - Identifique dependências entre repos
27
+ Leia o `context-manifest.json` do orchestrator para entender:
28
+ - Lista completa de repositórios do ecossistema
29
+ - URL do repositório de MetaSpecs
30
+ - Dependências entre repositórios
31
+ - Roles de cada repositório (application, library, service, specs-provider)
31
32
 
32
- 2. **Índices de Documentação** (se existirem):
33
- - `specs/business/index.md` - Contexto de negócio
34
- - `specs/technical/index.md` - Contexto técnico
35
- - `README.md` - Visão geral do projeto
33
+ ## 4. Carregar MetaSpecs
36
34
 
37
- 3. **Especificações Core** (se existirem):
38
- - `specs/business/PRODUCT_STRATEGY.md` - Estratégia do produto
39
- - `specs/technical/meta/intent.md` - Objetivos e constraints
40
- - `specs/technical/meta/stack.md` - Stack tecnológica e ADRs
35
+ O repositório de MetaSpecs está definido no `context-manifest.json` (geralmente com `role: "specs-provider"`).
41
36
 
42
- ## 4. Contexto dos Repositórios
37
+ **Leia sempre os arquivos de índice primeiro:**
43
38
 
44
- Para cada repositório no workspace, leia:
45
- - `README.md` - Entenda o propósito do repositório
46
- - `package.json` ou arquivo equivalente - Identifique dependências e scripts
39
+ 1. **`README.md`** - Visão geral do projeto e estrutura de documentação
40
+ 2. **`index.md`** (na raiz ou em subpastas) - Índice de especificações disponíveis
47
41
 
48
- ## 5. Navegação Inteligente
42
+ **Use os índices como referência** para navegar até as especificações específicas que você precisa. Não assuma que arquivos específicos existem - sempre consulte os índices primeiro.
43
+
44
+ ## 5. Carregar Sessão Atual (se existir)
45
+
46
+ Verifique se existe uma sessão salva para este workspace:
47
+
48
+ ```bash
49
+ # Procurar por sessão no orchestrator
50
+ ls -la .sessions/<ISSUE-ID>/ 2>/dev/null
51
+ ```
52
+
53
+ Se existir, leia os arquivos de sessão para recuperar o contexto da última execução.
54
+
55
+ ## 6. Contexto dos Repositórios
56
+
57
+ Para cada repositório presente no workspace, leia:
58
+ - `README.md` - Propósito e visão geral do repositório
59
+ - Arquivo de configuração principal (`package.json`, `pom.xml`, `requirements.txt`, etc.)
60
+
61
+ ## 7. Navegação Inteligente
49
62
 
50
63
  - **Código**: Use ferramentas de busca (glob, grep) para localizar arquivos relevantes
51
- - **Documentação**: Use os índices carregados para encontrar especificações
64
+ - **Documentação**: Use os índices dos MetaSpecs como referência
52
65
  - **Aguarde Instruções**: NÃO leia outros arquivos agora. Aguarde o próximo comando.
53
66
 
54
- ## 6. Princípio Jidoka (Parar ao Detectar Problemas)
67
+ ## 8. Princípio Jidoka (Parar ao Detectar Problemas)
55
68
 
56
69
  Se detectar desalinhamento, conflitos ou problemas:
57
70
  1. 🛑 **PARE** imediatamente
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "context-first-cli",
3
- "version": "1.3.1",
3
+ "version": "1.4.0",
4
4
  "description": "A generic CLI to manage the Context-First development methodology across any project.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -6,14 +6,14 @@ Este comando inicia o desenvolvimento de uma funcionalidade no workspace atual.
6
6
 
7
7
  Antes de iniciar, carregue o contexto consultando:
8
8
  - `context-manifest.json` - Estrutura de repositórios
9
- - `specs/business/index.md` - Contexto de negócio
10
- - `specs/technical/index.md` - Stack, arquitetura e padrões técnicos
11
- - `.workspace.json` - Informações do workspace atual
9
+ - `repositório de MetaSpecs (seção de negócio)index.md` - Contexto de negócio
10
+ - `repositório de MetaSpecs (seção técnica)index.md` - Stack, arquitetura e padrões técnicos
11
+ - `diretório do workspace` - Informações do workspace atual
12
12
 
13
13
  ## ⚙️ Configuração Inicial
14
14
 
15
15
  1. **Verificar Workspace**:
16
- - Confirme que está no workspace correto (verifique `.workspace.json`)
16
+ - Confirme que está no workspace correto (verifique `diretório do workspace`)
17
17
  - Liste os repositórios disponíveis no workspace
18
18
 
19
19
  2. **Verificar Branches**:
@@ -7,7 +7,7 @@ Este comando executa uma unidade de trabalho no workspace atual, implementando p
7
7
  Antes de executar, certifique-se de que:
8
8
  - Executou `/warm-up` para carregar o contexto
9
9
  - Executou `/start` e `/plan` para ter o planejamento técnico
10
- - Está no workspace correto (verifique `.workspace.json`)
10
+ - Está no workspace correto (verifique `diretório do workspace`)
11
11
  - Tem o arquivo `./.sessions/<ISSUE-ID>/plan.md` disponível
12
12
 
13
13
  ## 🎯 Objetivo
@@ -25,30 +25,30 @@ Execute este comando:
25
25
  Navegue até o diretório do orchestrator e identifique quais metaspecs existem:
26
26
 
27
27
  ```bash
28
- ls -la ../.context-orchestrator/specs/
28
+ ls -la repositório de MetaSpecs
29
29
  ```
30
30
 
31
31
  ### 2. Validação de Negócio
32
32
 
33
- Se existirem metaspecs de negócio (`specs/business/`):
33
+ Se existirem metaspecs de negócio (`repositório de MetaSpecs (seção de negócio)`):
34
34
 
35
35
  ```markdown
36
36
  ## Validação de Negócio
37
37
 
38
38
  ### Estratégia de Produto
39
- - **Arquivo**: `specs/business/PRODUCT_STRATEGY.md`
39
+ - **Arquivo**: `repositório de MetaSpecs (seção de negócio)PRODUCT_STRATEGY.md`
40
40
  - **Validação**: [Esta feature está alinhada com a estratégia?]
41
41
  - **Status**: ✅ Alinhado / ⚠️ Parcialmente / ❌ Desalinhado
42
42
  - **Notas**: [Observações]
43
43
 
44
44
  ### Personas
45
- - **Arquivo**: `specs/business/CUSTOMER_PERSONAS.md`
45
+ - **Arquivo**: `repositório de MetaSpecs (seção de negócio)CUSTOMER_PERSONAS.md`
46
46
  - **Validação**: [Atende a persona correta?]
47
47
  - **Status**: ✅ Alinhado / ⚠️ Parcialmente / ❌ Desalinhado
48
48
  - **Notas**: [Observações]
49
49
 
50
50
  ### Métricas
51
- - **Arquivo**: `specs/business/PRODUCT_METRICS.md`
51
+ - **Arquivo**: `repositório de MetaSpecs (seção de negócio)PRODUCT_METRICS.md`
52
52
  - **Validação**: [Métrica de sucesso está documentada?]
53
53
  - **Status**: ✅ Alinhado / ⚠️ Parcialmente / ❌ Desalinhado
54
54
  - **Notas**: [Observações]
@@ -56,32 +56,32 @@ Se existirem metaspecs de negócio (`specs/business/`):
56
56
 
57
57
  ### 3. Validação Técnica
58
58
 
59
- Se existirem metaspecs técnicas (`specs/technical/`):
59
+ Se existirem metaspecs técnicas (`repositório de MetaSpecs (seção técnica)`):
60
60
 
61
61
  ```markdown
62
62
  ## Validação Técnica
63
63
 
64
64
  ### Stack Tecnológica
65
- - **Arquivo**: `specs/technical/meta/stack.md`
65
+ - **Arquivo**: `repositório de MetaSpecs (seção técnica)meta/stack.md`
66
66
  - **Validação**: [Usa apenas tecnologias aprovadas?]
67
67
  - **Status**: ✅ Conforme / ⚠️ Exceção justificada / ❌ Não conforme
68
68
  - **Notas**: [Tecnologias usadas e justificativas]
69
69
 
70
70
  ### Arquitetura
71
- - **Arquivo**: `specs/technical/ARCHITECTURE.md`
71
+ - **Arquivo**: `repositório de MetaSpecs (seção técnica)ARCHITECTURE.md`
72
72
  - **Validação**: [Segue padrões arquiteturais?]
73
73
  - **Status**: ✅ Conforme / ⚠️ Parcialmente / ❌ Não conforme
74
74
  - **Notas**: [Observações]
75
75
 
76
76
  ### ADRs (Architecture Decision Records)
77
- - **Diretório**: `specs/technical/adr/`
77
+ - **Diretório**: `repositório de MetaSpecs (seção técnica)adr/`
78
78
  - **Validação**: [Respeita decisões arquiteturais documentadas?]
79
79
  - **ADRs Relevantes**: [Lista de ADRs verificados]
80
80
  - **Status**: ✅ Conforme / ⚠️ Conflito menor / ❌ Conflito crítico
81
81
  - **Notas**: [Observações]
82
82
 
83
83
  ### Regras de Negócio
84
- - **Arquivo**: `specs/technical/BUSINESS_LOGIC.md`
84
+ - **Arquivo**: `repositório de MetaSpecs (seção técnica)BUSINESS_LOGIC.md`
85
85
  - **Validação**: [Implementa regras de negócio corretamente?]
86
86
  - **Status**: ✅ Conforme / ⚠️ Parcialmente / ❌ Não conforme
87
87
  - **Notas**: [Observações]
@@ -93,17 +93,17 @@ Se existirem metaspecs técnicas (`specs/technical/`):
93
93
  ## Validação de Padrões
94
94
 
95
95
  ### Código
96
- - **Arquivo**: `specs/technical/CODE_STANDARDS.md`
96
+ - **Arquivo**: `repositório de MetaSpecs (seção técnica)CODE_STANDARDS.md`
97
97
  - **Validação**: [Segue padrões de código?]
98
98
  - **Status**: ✅ Conforme / ⚠️ Pequenos desvios / ❌ Não conforme
99
99
 
100
100
  ### Testes
101
- - **Arquivo**: `specs/technical/TEST_STANDARDS.md`
101
+ - **Arquivo**: `repositório de MetaSpecs (seção técnica)TEST_STANDARDS.md`
102
102
  - **Validação**: [Estratégia de testes adequada?]
103
103
  - **Status**: ✅ Conforme / ⚠️ Parcialmente / ❌ Não conforme
104
104
 
105
105
  ### Documentação
106
- - **Arquivo**: `specs/technical/DOC_STANDARDS.md`
106
+ - **Arquivo**: `repositório de MetaSpecs (seção técnica)DOC_STANDARDS.md`
107
107
  - **Validação**: [Documentação adequada?]
108
108
  - **Status**: ✅ Conforme / ⚠️ Parcialmente / ❌ Não conforme
109
109
  ```
@@ -18,9 +18,9 @@ Você é um especialista em produto responsável por coletar e documentar novas
18
18
  ## Contexto do Projeto
19
19
 
20
20
  Antes de iniciar, carregue o contexto consultando:
21
- - `context-manifest.json` - Estrutura do projeto
22
- - `specs/business/` - Contexto de negócio (se disponível)
23
- - `specs/technical/` - Contexto técnico (se disponível)
21
+ - `context-manifest.json` do orchestrator - Estrutura do projeto
22
+ - Repositório de MetaSpecs (definido no manifest) - Leia os arquivos `index.md` como referência
23
+ - `README.md` dos repositórios envolvidos
24
24
 
25
25
  ## Seu Objetivo
26
26
 
@@ -7,51 +7,64 @@ Este comando prepara o ambiente carregando o contexto completo do projeto e do w
7
7
  Verifique se você está dentro de um workspace criado pelo `context-cli`:
8
8
 
9
9
  ```bash
10
- # Procurar pelo arquivo .workspace.json no diretório atual ou pais
10
+ # Verificar se está em um diretório de workspace
11
11
  pwd
12
- ls -la .workspace.json 2>/dev/null || echo "Não está em um workspace"
12
+ # O workspace geralmente está em ~/workspaces/<ISSUE-ID>/
13
13
  ```
14
14
 
15
- Se não estiver em um workspace, pergunte ao usuário qual workspace usar ou se deve criar um novo.
15
+ Se não estiver em um workspace, pergunte ao usuário qual workspace usar ou se deve criar um novo com `feature:start`.
16
16
 
17
- ## 2. Carregar Configuração do Orchestrator
17
+ ## 2. Carregar Configuração do Projeto
18
18
 
19
- Leia o arquivo `.workspace.json` para identificar:
20
- - Issue ID do workspace
21
- - Repositórios incluídos neste workspace
22
- - Data de criação e última atualização
19
+ Identifique o orchestrator do projeto:
23
20
 
24
- ## 3. Carregar Metaspecs (se disponíveis)
21
+ 1. **Procure o arquivo `.contextrc.json`** em qualquer um dos repositórios do workspace
22
+ 2. Este arquivo contém a URL do repositório orchestrator
23
+ 3. Se o orchestrator ainda não estiver clonado localmente, clone-o
25
24
 
26
- Navegue até o diretório do orchestrator (geralmente `../.context-orchestrator/`) e leia:
25
+ ## 3. Carregar Manifesto do Projeto
27
26
 
28
- 1. **Manifesto do Projeto**: `context-manifest.json`
29
- - Entenda a estrutura de repositórios
30
- - Identifique dependências entre repos
27
+ Leia o `context-manifest.json` do orchestrator para entender:
28
+ - Lista completa de repositórios do ecossistema
29
+ - URL do repositório de MetaSpecs
30
+ - Dependências entre repositórios
31
+ - Roles de cada repositório (application, library, service, specs-provider)
31
32
 
32
- 2. **Índices de Documentação** (se existirem):
33
- - `specs/business/index.md` - Contexto de negócio
34
- - `specs/technical/index.md` - Contexto técnico
35
- - `README.md` - Visão geral do projeto
33
+ ## 4. Carregar MetaSpecs
36
34
 
37
- 3. **Especificações Core** (se existirem):
38
- - `specs/business/PRODUCT_STRATEGY.md` - Estratégia do produto
39
- - `specs/technical/meta/intent.md` - Objetivos e constraints
40
- - `specs/technical/meta/stack.md` - Stack tecnológica e ADRs
35
+ O repositório de MetaSpecs está definido no `context-manifest.json` (geralmente com `role: "specs-provider"`).
41
36
 
42
- ## 4. Contexto dos Repositórios
37
+ **Leia sempre os arquivos de índice primeiro:**
43
38
 
44
- Para cada repositório no workspace, leia:
45
- - `README.md` - Entenda o propósito do repositório
46
- - `package.json` ou arquivo equivalente - Identifique dependências e scripts
39
+ 1. **`README.md`** - Visão geral do projeto e estrutura de documentação
40
+ 2. **`index.md`** (na raiz ou em subpastas) - Índice de especificações disponíveis
47
41
 
48
- ## 5. Navegação Inteligente
42
+ **Use os índices como referência** para navegar até as especificações específicas que você precisa. Não assuma que arquivos específicos existem - sempre consulte os índices primeiro.
43
+
44
+ ## 5. Carregar Sessão Atual (se existir)
45
+
46
+ Verifique se existe uma sessão salva para este workspace:
47
+
48
+ ```bash
49
+ # Procurar por sessão no orchestrator
50
+ ls -la .sessions/<ISSUE-ID>/ 2>/dev/null
51
+ ```
52
+
53
+ Se existir, leia os arquivos de sessão para recuperar o contexto da última execução.
54
+
55
+ ## 6. Contexto dos Repositórios
56
+
57
+ Para cada repositório presente no workspace, leia:
58
+ - `README.md` - Propósito e visão geral do repositório
59
+ - Arquivo de configuração principal (`package.json`, `pom.xml`, `requirements.txt`, etc.)
60
+
61
+ ## 7. Navegação Inteligente
49
62
 
50
63
  - **Código**: Use ferramentas de busca (glob, grep) para localizar arquivos relevantes
51
- - **Documentação**: Use os índices carregados para encontrar especificações
64
+ - **Documentação**: Use os índices dos MetaSpecs como referência
52
65
  - **Aguarde Instruções**: NÃO leia outros arquivos agora. Aguarde o próximo comando.
53
66
 
54
- ## 6. Princípio Jidoka (Parar ao Detectar Problemas)
67
+ ## 8. Princípio Jidoka (Parar ao Detectar Problemas)
55
68
 
56
69
  Se detectar desalinhamento, conflitos ou problemas:
57
70
  1. 🛑 **PARE** imediatamente