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.
@@ -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: mcpsSelecionados, projeto };
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 (em breve)
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
- - filesystem leitura e escrita no projeto (nativo)
304
- - github PRs, issues, branches referenciando tasks
305
- - database validar schema e dados em desenvolvimento
306
- - browser testar endpoints e validar fluxos
307
- - puppeteer testes de jornada de UI
308
- - docker gerenciar containers em desenvolvimento
309
- - redis inspecionar cache e filas (quando aplicável)
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. Implemente seguindo os critérios de aceitação da task
343
- 4. Ao concluir: marque como done, mova para \`tasks/done.md\`, atualize \`INDEX.md\`
344
- 5. Se decisão arquitetural tomada: registre em \`architecture.md\`
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. Crie hotfix em \`tasks/active.md\` com tag [H] e prioridade crítica
349
- 2. Identifique e resolva a causa raiz
350
- 3. Registre causa raiz em \`changelog.md\`
351
- 4. Verifique se o bug afeta outras tasks em \`tasks/active.md\`
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vireum-spec-cli",
3
- "version": "0.2.1",
3
+ "version": "0.3.1",
4
4
  "description": "Spec Driven Development framework by Vireum Desenvolvimento",
5
5
  "main": "dist/index.js",
6
6
  "bin": {
@@ -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 decisões técnicas tomadas
8
- 4. Verifique os critérios de aceitação da task antes de começar
9
- 5. Implemente seguindo a camada definida (Backend / Frontend / Integração)
10
- 6. Ao concluir:
11
- - Marque o status como [x] em active.md
12
- - Mova a task para tasks/done.md
13
- - Atualize o INDEX.md
14
- - Se tomou decisão arquitetural, registre em architecture.md
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