context-first-cli 1.3.2 → 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/dist/commands/update-commands.d.ts +2 -0
- package/dist/commands/update-commands.d.ts.map +1 -0
- package/dist/commands/update-commands.js +160 -0
- package/dist/commands/update-commands.js.map +1 -0
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -1
- package/dist/templates/commands/engineer/start.md +4 -4
- package/dist/templates/commands/engineer/work.md +1 -1
- package/dist/templates/commands/products/check.md +13 -13
- package/dist/templates/commands/products/collect.md +3 -3
- package/dist/templates/commands/warm-up.md +41 -28
- package/package.json +1 -1
- package/templates/commands/engineer/start.md +4 -4
- package/templates/commands/engineer/work.md +1 -1
- package/templates/commands/products/check.md +13 -13
- package/templates/commands/products/collect.md +3 -3
- package/templates/commands/warm-up.md +41 -28
|
@@ -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
|
-
- `
|
|
10
|
-
- `
|
|
11
|
-
-
|
|
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
|
|
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
|
|
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
|
|
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 (`
|
|
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**: `
|
|
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**: `
|
|
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**: `
|
|
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 (`
|
|
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**: `
|
|
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**: `
|
|
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**: `
|
|
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**: `
|
|
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**: `
|
|
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**: `
|
|
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**: `
|
|
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
|
-
-
|
|
23
|
-
- `
|
|
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
|
-
#
|
|
10
|
+
# Verificar se está em um diretório de workspace
|
|
11
11
|
pwd
|
|
12
|
-
|
|
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
|
|
17
|
+
## 2. Carregar Configuração do Projeto
|
|
18
18
|
|
|
19
|
-
|
|
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
|
-
|
|
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
|
-
|
|
25
|
+
## 3. Carregar Manifesto do Projeto
|
|
27
26
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
37
|
+
**Leia sempre os arquivos de índice primeiro:**
|
|
43
38
|
|
|
44
|
-
|
|
45
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
##
|
|
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
|
@@ -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
|
-
- `
|
|
10
|
-
- `
|
|
11
|
-
-
|
|
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
|
|
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
|
|
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
|
|
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 (`
|
|
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**: `
|
|
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**: `
|
|
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**: `
|
|
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 (`
|
|
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**: `
|
|
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**: `
|
|
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**: `
|
|
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**: `
|
|
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**: `
|
|
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**: `
|
|
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**: `
|
|
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
|
-
-
|
|
23
|
-
- `
|
|
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
|
-
#
|
|
10
|
+
# Verificar se está em um diretório de workspace
|
|
11
11
|
pwd
|
|
12
|
-
|
|
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
|
|
17
|
+
## 2. Carregar Configuração do Projeto
|
|
18
18
|
|
|
19
|
-
|
|
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
|
-
|
|
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
|
-
|
|
25
|
+
## 3. Carregar Manifesto do Projeto
|
|
27
26
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
37
|
+
**Leia sempre os arquivos de índice primeiro:**
|
|
43
38
|
|
|
44
|
-
|
|
45
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
##
|
|
67
|
+
## 8. Princípio Jidoka (Parar ao Detectar Problemas)
|
|
55
68
|
|
|
56
69
|
Se detectar desalinhamento, conflitos ou problemas:
|
|
57
70
|
1. 🛑 **PARE** imediatamente
|