vireum-spec-cli 0.2.1 → 0.3.1
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/setup.js +65 -19
- package/package.json +1 -1
- package/src/skills/task-implement.md +22 -8
package/dist/commands/setup.js
CHANGED
|
@@ -149,6 +149,7 @@ async function runSetup() {
|
|
|
149
149
|
const mcpsSelecionados = await (0, prompts_1.checkbox)({
|
|
150
150
|
message: 'Selecione os MCPs para este projeto:',
|
|
151
151
|
choices: [
|
|
152
|
+
{ name: 'context7 — docs atualizadas das libs do projeto', value: 'context7', checked: true },
|
|
152
153
|
{ name: 'github — PRs, issues, branches', value: 'github', checked: true },
|
|
153
154
|
{ name: 'database — consultar banco em dev', value: 'database', checked: true },
|
|
154
155
|
{ name: 'browser — testar endpoints e fluxos', value: 'browser', checked: true },
|
|
@@ -157,10 +158,14 @@ async function runSetup() {
|
|
|
157
158
|
{ name: 'redis — inspecionar cache e filas', value: 'redis', checked: false },
|
|
158
159
|
],
|
|
159
160
|
});
|
|
161
|
+
// Context7 sempre presente
|
|
162
|
+
const mcpsFinais = mcpsSelecionados.includes('context7')
|
|
163
|
+
? mcpsSelecionados
|
|
164
|
+
: ['context7', ...mcpsSelecionados];
|
|
160
165
|
// ── Gerar arquivos ─────────────────────────────────────────────────────────
|
|
161
166
|
console.log('');
|
|
162
167
|
const projeto = extrairProjeto(path.join(specDir, 'INDEX.md'));
|
|
163
|
-
const dados = { stack, infra, mcps:
|
|
168
|
+
const dados = { stack, infra, mcps: mcpsFinais, projeto };
|
|
164
169
|
for (const dir of [vireumDir, cursorDir]) {
|
|
165
170
|
if (!fs.existsSync(dir))
|
|
166
171
|
fs.mkdirSync(dir, { recursive: true });
|
|
@@ -236,6 +241,7 @@ ${mcps.map((m) => `- ${m}`).join('\n')}
|
|
|
236
241
|
}
|
|
237
242
|
function gerarMcpSetup(d) {
|
|
238
243
|
const mcpInfo = {
|
|
244
|
+
context7: 'https://github.com/upstash/context7',
|
|
239
245
|
github: 'https://github.com/modelcontextprotocol/servers/tree/main/src/github',
|
|
240
246
|
database: 'https://github.com/modelcontextprotocol/servers/tree/main/src/postgres',
|
|
241
247
|
browser: 'https://github.com/modelcontextprotocol/servers/tree/main/src/puppeteer',
|
|
@@ -256,7 +262,7 @@ ${lista}
|
|
|
256
262
|
1. Acesse o link de cada MCP acima
|
|
257
263
|
2. Siga as instruções de instalação
|
|
258
264
|
3. Configure as credenciais manualmente no seu cliente (Claude Code / Cursor)
|
|
259
|
-
4. Execute: vireum-spec verify-mcps
|
|
265
|
+
4. Execute: vireum-spec verify-mcps
|
|
260
266
|
`;
|
|
261
267
|
}
|
|
262
268
|
function gerarRulesGlobal() {
|
|
@@ -270,6 +276,11 @@ function gerarRulesGlobal() {
|
|
|
270
276
|
- Nunca puxar task do backlog para active sem validação humana explícita
|
|
271
277
|
- Sempre avisar escopo creep antes de implementar — parar e perguntar
|
|
272
278
|
|
|
279
|
+
## Regras de Planejamento
|
|
280
|
+
- Sempre planejar antes de implementar — escrever o que sera feito e quais arquivos serao tocados
|
|
281
|
+
- Confirmar o plano com o dev em tasks complexas antes de executar
|
|
282
|
+
- Nunca comecar a escrever codigo sem ter um plano claro
|
|
283
|
+
|
|
273
284
|
## Regras de Spec
|
|
274
285
|
- Nunca marcar task como done sem validar os critérios de aceitação
|
|
275
286
|
- Nunca tomar decisão de arquitetura sem registrar em architecture.md com justificativa
|
|
@@ -288,6 +299,7 @@ function gerarRulesGlobal() {
|
|
|
288
299
|
|
|
289
300
|
## Nunca
|
|
290
301
|
- Implementar sem ler o spec primeiro
|
|
302
|
+
- Implementar sem planejar primeiro
|
|
291
303
|
- Tomar decisão de lib ou stack sem documentar o porquê
|
|
292
304
|
- Responder dúvida de escopo sem consultar requirements.md
|
|
293
305
|
- Comunicar diretamente com o cliente — isso é papel do dev
|
|
@@ -300,18 +312,20 @@ function gerarMcpsGlobal(d) {
|
|
|
300
312
|
> MCPs ativos por projeto estão em .spec/architecture.md
|
|
301
313
|
|
|
302
314
|
## Stack Padrão
|
|
303
|
-
-
|
|
304
|
-
-
|
|
305
|
-
-
|
|
306
|
-
-
|
|
307
|
-
-
|
|
308
|
-
-
|
|
309
|
-
-
|
|
315
|
+
- context7 — documentação atualizada das libs (sempre ativo)
|
|
316
|
+
- filesystem — leitura e escrita no projeto (nativo)
|
|
317
|
+
- github — PRs, issues, branches referenciando tasks
|
|
318
|
+
- database — validar schema e dados em desenvolvimento
|
|
319
|
+
- browser — testar endpoints e validar fluxos
|
|
320
|
+
- puppeteer — testes de jornada de UI
|
|
321
|
+
- docker — gerenciar containers em desenvolvimento
|
|
322
|
+
- redis — inspecionar cache e filas (quando aplicável)
|
|
310
323
|
|
|
311
324
|
## MCPs Ativos Neste Projeto
|
|
312
325
|
${d.mcps.map((m) => `- ${m}`).join('\n')}
|
|
313
326
|
|
|
314
327
|
## Quando usar cada MCP
|
|
328
|
+
- Antes de usar qualquer lib → context7: buscar docs atualizadas
|
|
315
329
|
- Task concluída → github: criar PR referenciando a task
|
|
316
330
|
- Bug identificado → github: abrir issue com contexto
|
|
317
331
|
- Decisão de schema → database: validar antes de implementar
|
|
@@ -323,6 +337,9 @@ function gerarClaudeMd(d) {
|
|
|
323
337
|
const { projeto, stack, mcps } = d;
|
|
324
338
|
const tenant = stack.multiTenant
|
|
325
339
|
? '\n- NUNCA fazer query sem filtro de tenantId — projeto multi-tenant' : '';
|
|
340
|
+
const libs = [stack.frontend, stack.backend, stack.orm, stack.cache]
|
|
341
|
+
.filter((l) => l && l !== 'Nenhum' && l !== 'Outro')
|
|
342
|
+
.join(', ');
|
|
326
343
|
return `# ${projeto} — Vireum Spec Protocol
|
|
327
344
|
|
|
328
345
|
> Este projeto usa Spec Driven Development pela Vireum Desenvolvimento.
|
|
@@ -339,16 +356,20 @@ function gerarClaudeMd(d) {
|
|
|
339
356
|
Acionado por: "desenvolve", "implementa", "cria", + nome de task
|
|
340
357
|
1. Leia \`.spec/tasks/active.md\`
|
|
341
358
|
2. Leia \`.spec/requirements.md\` para contexto da feature
|
|
342
|
-
3.
|
|
343
|
-
4.
|
|
344
|
-
5.
|
|
359
|
+
3. Consulte o Context7 para docs atualizadas da lib que vai usar
|
|
360
|
+
4. PLANEJAR: escreva o que sera implementado, quais arquivos serao tocados e riscos identificados
|
|
361
|
+
5. Confirme o plano com o dev antes de executar em tasks complexas
|
|
362
|
+
6. Implemente seguindo os critérios de aceitação da task
|
|
363
|
+
7. Ao concluir: marque como done, mova para \`tasks/done.md\`, atualize \`INDEX.md\`
|
|
364
|
+
8. Se decisão arquitetural tomada: registre em \`architecture.md\`
|
|
345
365
|
|
|
346
366
|
### Modo 2 — Bug
|
|
347
367
|
Acionado por: "erro", "bug", "quebrou", "não funciona"
|
|
348
|
-
1.
|
|
349
|
-
2.
|
|
350
|
-
3.
|
|
351
|
-
4.
|
|
368
|
+
1. PLANEJAR: descreva o que sera investigado e quais arquivos serao tocados
|
|
369
|
+
2. Crie hotfix em \`tasks/active.md\` com tag [H] e prioridade crítica
|
|
370
|
+
3. Identifique e resolva a causa raiz
|
|
371
|
+
4. Registre causa raiz em \`changelog.md\`
|
|
372
|
+
5. Verifique se o bug afeta outras tasks em \`tasks/active.md\`
|
|
352
373
|
|
|
353
374
|
### Modo 3 — Nova demanda
|
|
354
375
|
Acionado por: "cliente pediu", "adiciona", "quero incluir" (fora do spec)
|
|
@@ -362,6 +383,11 @@ Acionado por: "como deve funcionar", "o que foi combinado", "qual o comportament
|
|
|
362
383
|
1. Leia \`.spec/requirements.md\`
|
|
363
384
|
2. Responda com base no spec — não invente comportamento
|
|
364
385
|
|
|
386
|
+
## Context7 — Documentação atualizada
|
|
387
|
+
Sempre que for usar uma lib do projeto, consulte a documentação atualizada via Context7 antes de implementar.
|
|
388
|
+
Nunca assuma que você conhece a API mais recente — sempre verifique.
|
|
389
|
+
Libs deste projeto: ${libs}
|
|
390
|
+
|
|
365
391
|
## Regras globais
|
|
366
392
|
Leia \`.vireum/rules.md\` — aplicam-se a todas as sessões.
|
|
367
393
|
|
|
@@ -394,10 +420,19 @@ function gerarAgentsMd(d) {
|
|
|
394
420
|
2. Identifique o modo pela solicitação
|
|
395
421
|
3. Siga o protocolo em CLAUDE.md
|
|
396
422
|
|
|
423
|
+
## Planejamento obrigatorio
|
|
424
|
+
Antes de qualquer implementacao:
|
|
425
|
+
1. Escreva o que sera feito e quais arquivos serao tocados
|
|
426
|
+
2. Identifique riscos e dependencias
|
|
427
|
+
3. Confirme com o dev em tasks complexas antes de executar
|
|
428
|
+
|
|
429
|
+
## Context7
|
|
430
|
+
Sempre consultar docs atualizadas via Context7 antes de usar qualquer lib.
|
|
431
|
+
|
|
397
432
|
## Regras globais
|
|
398
433
|
Ver \`.vireum/rules.md\`
|
|
399
434
|
|
|
400
|
-
## Regras do projeto
|
|
435
|
+
## Regras do projeto
|
|
401
436
|
Ver \`.spec/rules.md\`
|
|
402
437
|
|
|
403
438
|
## Stack
|
|
@@ -421,9 +456,19 @@ Este projeto usa Spec Driven Development pela Vireum Desenvolvimento.
|
|
|
421
456
|
- Sempre leia \`.spec/INDEX.md\` primeiro
|
|
422
457
|
- Carregue outros arquivos de spec apenas quando necessário
|
|
423
458
|
|
|
459
|
+
## Planejamento obrigatorio
|
|
460
|
+
Antes de qualquer implementacao:
|
|
461
|
+
- Escreva o que sera feito e quais arquivos serao tocados
|
|
462
|
+
- Identifique riscos e dependencias
|
|
463
|
+
- Confirme com o dev em tasks complexas antes de executar
|
|
464
|
+
|
|
465
|
+
## Context7
|
|
466
|
+
- Sempre consultar Context7 antes de usar qualquer lib do projeto
|
|
467
|
+
- Nunca assumir que conhece a API mais recente
|
|
468
|
+
|
|
424
469
|
## Modos
|
|
425
|
-
- Implementar → leia tasks/active.md, siga critérios de aceitação
|
|
426
|
-
- Bug → crie hotfix [H] em active.md, registre causa raiz em changelog.md
|
|
470
|
+
- Implementar → PLANEJAR primeiro, consulte Context7, leia tasks/active.md, siga critérios de aceitação
|
|
471
|
+
- Bug → PLANEJAR investigacao, crie hotfix [H] em active.md, registre causa raiz em changelog.md
|
|
427
472
|
- Nova demanda → crie [PENDING] em backlog.md, aguarde aprovação
|
|
428
473
|
- Dúvida de escopo → consulte requirements.md
|
|
429
474
|
|
|
@@ -431,6 +476,7 @@ Este projeto usa Spec Driven Development pela Vireum Desenvolvimento.
|
|
|
431
476
|
- Ver \`.vireum/rules.md\` — regras globais
|
|
432
477
|
- Ver \`.spec/rules.md\` — regras do projeto
|
|
433
478
|
- Nunca implementar fora do spec sem [PENDING] aprovado
|
|
479
|
+
- Nunca implementar sem planejar primeiro
|
|
434
480
|
- Nunca marcar done sem critérios validados
|
|
435
481
|
`;
|
|
436
482
|
}
|
package/package.json
CHANGED
|
@@ -2,13 +2,27 @@
|
|
|
2
2
|
|
|
3
3
|
Quando o dev pedir para implementar uma task:
|
|
4
4
|
|
|
5
|
+
## 1. Antes de implementar — PLANEJAR
|
|
6
|
+
Escreva um plano antes de qualquer codigo:
|
|
7
|
+
- O que sera implementado
|
|
8
|
+
- Quais arquivos serao criados ou modificados
|
|
9
|
+
- Dependencias ou riscos identificados
|
|
10
|
+
- Confirme com o dev se o plano faz sentido antes de continuar
|
|
11
|
+
|
|
12
|
+
## 2. Consultar contexto
|
|
5
13
|
1. Leia `.spec/tasks/active.md` e identifique a task solicitada
|
|
6
14
|
2. Leia `.spec/requirements.md` para contexto da feature
|
|
7
|
-
3. Leia `.spec/architecture.md` para
|
|
8
|
-
4.
|
|
9
|
-
5.
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
+
3. Leia `.spec/architecture.md` para decisoes tecnicas ja tomadas
|
|
16
|
+
4. Consulte Context7 para docs atualizadas da lib que vai usar
|
|
17
|
+
5. Verifique os criterios de aceitacao da task
|
|
18
|
+
|
|
19
|
+
## 3. Implementar
|
|
20
|
+
- Siga a camada definida (Backend / Frontend / Integracao)
|
|
21
|
+
- Siga as decisoes de stack do architecture.md
|
|
22
|
+
- Nao instale libs novas sem registrar em architecture.md
|
|
23
|
+
|
|
24
|
+
## 4. Ao concluir
|
|
25
|
+
- Marque o status como [x] em active.md
|
|
26
|
+
- Mova a task para tasks/done.md
|
|
27
|
+
- Atualize o INDEX.md
|
|
28
|
+
- Se tomou decisao arquitetural, registre em architecture.md com justificativa
|