wizz-method 2.18.0 → 2.19.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.
Files changed (154) hide show
  1. package/package.json +5 -3
  2. package/removals.txt +10 -0
  3. package/skills-registry.yaml +50 -38
  4. package/src/bmm-skills/1-analysis/wizz-set-feature/SKILL.md +9 -9
  5. package/src/bmm-skills/4-implementation/wizz-create-story/SKILL.md +1 -1
  6. package/src/bmm-skills/4-implementation/wizz-dev-story/SKILL.md +1 -1
  7. package/src/bmm-skills/4-implementation/wizz-qa-generate-e2e-tests/SKILL.md +1 -1
  8. package/src/bmm-skills/4-implementation/wizz-qa-generate-e2e-tests/checklist.md +1 -1
  9. package/src/bmm-skills/4-implementation/wizz-quick-dev/SKILL.md +1 -1
  10. package/src/bmm-skills/4-implementation/wizz-sprint-status/SKILL.md +5 -5
  11. package/src/bmm-skills/module-help.csv +1 -1
  12. package/src/bmm-skills/module.yaml +1 -1
  13. package/src/core-skills/_shared/handoff-protocol.md +2 -2
  14. package/src/modules/lowticket/skills/wizz-lowticket-funil/SKILL.md +1 -1
  15. package/src/modules/lowticket/skills/wizz-lowticket-guia/SKILL.md +1 -1
  16. package/src/modules/lowticket/skills/wizz-lowticket-metodologia/SKILL.md +1 -1
  17. package/src/modules/lowticket/skills/wizz-lowticket-minerador/SKILL.md +1 -1
  18. package/src/modules/lowticket/skills/wizz-lowticket-pagina/SKILL.md +1 -1
  19. package/src/modules/lowticket/skills/wizz-lowticket-trafego/SKILL.md +1 -1
  20. package/src/modules/wizz/_shared/cerebro.md +7 -7
  21. package/src/modules/wizz/_shared/communication-rules.md +1 -1
  22. package/src/modules/wizz/_shared/encerramento.md +4 -3
  23. package/src/modules/wizz/_shared/organizacao.md +8 -4
  24. package/src/modules/wizz/_shared/token-economy.md +1 -1
  25. package/src/modules/wizz/_shared/video-pipeline.md +4 -4
  26. package/src/modules/wizz/agents/wizz-ads/SKILL.md +4 -1
  27. package/src/modules/wizz/agents/wizz-ads/customize.toml +12 -3
  28. package/src/modules/wizz/agents/wizz-ads/knowledge/playbook.md +36 -0
  29. package/src/modules/wizz/agents/wizz-copy/SKILL.md +4 -1
  30. package/src/modules/wizz/agents/wizz-copy/customize.toml +2 -3
  31. package/src/modules/wizz/agents/wizz-copy/knowledge/playbook.md +34 -0
  32. package/src/modules/wizz/agents/wizz-designer/SKILL.md +2 -2
  33. package/src/modules/wizz/agents/wizz-designer/customize.toml +2 -3
  34. package/src/modules/wizz/agents/wizz-growth/SKILL.md +4 -1
  35. package/src/modules/wizz/agents/wizz-growth/customize.toml +33 -4
  36. package/src/modules/wizz/agents/wizz-growth/knowledge/playbook.md +39 -0
  37. package/src/modules/wizz/agents/wizz-maestro/SKILL.md +6 -8
  38. package/src/modules/wizz/agents/wizz-maestro/customize.toml +2 -3
  39. package/src/modules/wizz/agents/wizz-memoria/SKILL.md +7 -7
  40. package/src/modules/wizz/agents/wizz-memoria/customize.toml +5 -6
  41. package/src/modules/wizz/agents/wizz-qa/SKILL.md +5 -6
  42. package/src/modules/wizz/agents/wizz-qa/customize.toml +3 -4
  43. package/src/modules/wizz/agents/wizz-seo/SKILL.md +4 -1
  44. package/src/modules/wizz/agents/wizz-seo/customize.toml +2 -3
  45. package/src/modules/wizz/agents/wizz-seo/knowledge/playbook.md +31 -0
  46. package/src/modules/wizz/agents/wizz-social/SKILL.md +3 -3
  47. package/src/modules/wizz/agents/wizz-social/customize.toml +2 -3
  48. package/src/modules/wizz/overrides/wizz-agent-analyst.toml +2 -2
  49. package/src/modules/wizz/overrides/wizz-agent-architect.toml +3 -3
  50. package/src/modules/wizz/overrides/wizz-agent-dev.toml +3 -3
  51. package/src/modules/wizz/overrides/wizz-agent-pm.toml +2 -2
  52. package/src/modules/wizz/overrides/wizz-agent-tech-writer.toml +2 -2
  53. package/src/modules/wizz/overrides/wizz-agent-ux-designer.toml +2 -2
  54. package/src/skills-lib/_shared/complexity-signal.md +8 -9
  55. package/src/skills-lib/_shared/dispatch-rule.yaml +21 -0
  56. package/src/skills-lib/{cerebro → wizz-cerebro}/SKILL.md +1 -1
  57. package/src/skills-lib/{ctc-align → wizz-ctc-align}/SKILL.md +1 -1
  58. package/src/skills-lib/{enhance-prompt → wizz-enhance-prompt}/SKILL.md +1 -1
  59. package/src/skills-lib/{find-skills → wizz-find-skills}/SKILL.md +1 -1
  60. package/src/skills-lib/wizz-huashu-design/references/sfx-library.md +1 -1
  61. package/src/skills-lib/wizz-huashu-design/scripts/add-music.sh +1 -1
  62. package/src/skills-lib/wizz-huashu-design/scripts/html2pptx.js +45 -37
  63. package/src/skills-lib/wizz-huashu-design/scripts/mix-voiceover.sh +1 -1
  64. package/src/skills-lib/wizz-huashu-design/scripts/narrate-pipeline.mjs +11 -5
  65. package/src/skills-lib/wizz-huashu-design/scripts/test_scripts.py +209 -0
  66. package/src/skills-lib/wizz-huashu-design/scripts/tts-doubao.mjs +42 -28
  67. package/src/skills-lib/wizz-ig-profile-optimizer/SKILL.md +1 -1
  68. package/src/skills-lib/wizz-inicio-de-projeto/SKILL.md +1 -1
  69. package/src/skills-lib/wizz-launch-readiness/SKILL.md +7 -7
  70. package/src/skills-lib/wizz-launch-readiness/references/02-seguranca.md +3 -3
  71. package/src/skills-lib/wizz-launch-readiness/references/03-seo-descoberta.md +5 -5
  72. package/src/skills-lib/wizz-launch-readiness/references/04-analytics-medicao.md +1 -1
  73. package/src/skills-lib/wizz-launch-readiness/references/05-conteudo-prova-social.md +6 -6
  74. package/src/skills-lib/wizz-launch-readiness/references/06-legal-lgpd.md +1 -1
  75. package/src/skills-lib/wizz-launch-readiness/references/08-fusao-priorizacao.md +1 -1
  76. package/src/skills-lib/wizz-offer-forge/SKILL.md +3 -3
  77. package/src/skills-lib/{pesquisa-de-publico-do-piva → wizz-pesquisa-de-publico-do-piva}/README.md +1 -1
  78. package/src/skills-lib/{pesquisa-de-publico-do-piva → wizz-pesquisa-de-publico-do-piva}/SKILL.md +1 -1
  79. package/src/skills-lib/wizz-router/SKILL.md +3 -3
  80. package/src/skills-lib/wizz-router/references/routing-table-flat.md +9 -9
  81. package/src/skills-lib/{security-audit-pentest → wizz-security-audit-pentest}/SKILL.md +1 -1
  82. package/src/skills-lib/{site-launch-kit → wizz-site-launch-kit}/SKILL.md +1 -1
  83. package/src/skills-lib/wizz-video-effects/SKILL.md +3 -3
  84. package/src/skills-lib/wizz-video-effects/references/data-contract.md +3 -3
  85. package/src/skills-lib/wizz-video-effects/scripts/fill_breaths.py +15 -1
  86. package/src/skills-lib/wizz-video-effects/scripts/test_fill_breaths.py +20 -0
  87. package/src/skills-lib/wizz-video-styles/SKILL.md +2 -2
  88. package/src/skills-lib/wizz-video-styles/data/recipes.json +32 -1
  89. package/src/skills-lib/wizz-video-styles/data/references.json +211 -1
  90. package/src/skills-lib/wizz-video-styles/data/styles.json +54 -0
  91. package/src/skills-lib/wizz-video-styles/references/generated-prompts.md +13 -3
  92. package/src/skills-lib/wizz-video-styles/references/style-picker.md +4 -2
  93. package/src/skills-lib/wizz-video-styles/references/styles/ui-morph.md +68 -0
  94. package/src/skills-lib/wizz-video-styles/scripts/analyze.sh +21 -9
  95. package/src/skills-lib/wizz-video-styles/scripts/references.mjs +1 -0
  96. package/src/skills-lib/wizz-web-security/SKILL.md +1 -1
  97. package/tools/fetch-assets.mjs +1 -1
  98. package/tools/hooks/README.md +18 -14
  99. package/tools/hooks/rtk-rewrite.js +95 -0
  100. package/tools/hooks/security-defensive-context.js +17 -1
  101. package/tools/hooks/session-rules.js +25 -5
  102. package/tools/hooks/wizz-arrumar.js +126 -12
  103. package/tools/hooks/wizz-artifact-guard.js +41 -7
  104. package/tools/hooks/wizz-cerebro-lib.js +239 -0
  105. package/tools/hooks/wizz-close-reminder.js +124 -0
  106. package/tools/hooks/wizz-debug-lib.js +55 -0
  107. package/tools/hooks/wizz-decision-trace.js +19 -2
  108. package/tools/hooks/wizz-feature.js +20 -4
  109. package/tools/hooks/wizz-router-enforce.js +30 -13
  110. package/tools/installer/command-text.js +243 -0
  111. package/tools/installer/commands/catalog.js +2 -0
  112. package/tools/installer/commands/doctor.js +10 -12
  113. package/tools/installer/commands/fetch-assets.js +5 -5
  114. package/tools/installer/commands/install.js +6 -7
  115. package/tools/installer/commands/resolve.js +17 -17
  116. package/tools/installer/commands/trace-report.js +40 -37
  117. package/tools/installer/core/doctor.js +60 -55
  118. package/tools/installer/core/hooks-settings.js +88 -14
  119. package/tools/installer/core/hooks-smoke.js +134 -0
  120. package/tools/installer/core/installer.js +61 -52
  121. package/tools/installer/core/quick-update.js +2 -3
  122. package/tools/installer/install-text.js +201 -0
  123. package/tools/installer/modules/channel-plan.js +2 -2
  124. package/tools/installer/modules/env-vars.js +5 -6
  125. package/tools/installer/modules/skills-lib.js +1 -1
  126. package/tools/installer/ui.js +17 -9
  127. /package/src/skills-lib/{cerebro → wizz-cerebro}/references/comandos-pesquisa-e-memoria.md +0 -0
  128. /package/src/skills-lib/{cerebro → wizz-cerebro}/references/comandos-rotina-e-captura.md +0 -0
  129. /package/src/skills-lib/{cerebro → wizz-cerebro}/references/comandos-sessao.md +0 -0
  130. /package/src/skills-lib/{ctc-align → wizz-ctc-align}/scripts/align.py +0 -0
  131. /package/src/skills-lib/{enhance-prompt → wizz-enhance-prompt}/README.md +0 -0
  132. /package/src/skills-lib/{enhance-prompt → wizz-enhance-prompt}/references/KEYWORDS.md +0 -0
  133. /package/src/skills-lib/{pesquisa-de-publico-do-piva → wizz-pesquisa-de-publico-do-piva}/assets/template.html +0 -0
  134. /package/src/skills-lib/{pesquisa-de-publico-do-piva → wizz-pesquisa-de-publico-do-piva}/prompts.md +0 -0
  135. /package/src/skills-lib/{security-audit-pentest → wizz-security-audit-pentest}/references/stage-1-validacao-entrada.md +0 -0
  136. /package/src/skills-lib/{security-audit-pentest → wizz-security-audit-pentest}/references/stage-2-autorizacao.md +0 -0
  137. /package/src/skills-lib/{security-audit-pentest → wizz-security-audit-pentest}/references/stage-3-abuso-volume.md +0 -0
  138. /package/src/skills-lib/{security-audit-pentest → wizz-security-audit-pentest}/references/stage-4-vazamento-resposta.md +0 -0
  139. /package/src/skills-lib/{security-audit-pentest → wizz-security-audit-pentest}/references/stage-5-fusao-plano.md +0 -0
  140. /package/src/skills-lib/{site-launch-kit → wizz-site-launch-kit}/references/01-cta-principal.md +0 -0
  141. /package/src/skills-lib/{site-launch-kit → wizz-site-launch-kit}/references/02-barra-fixa-mobile.md +0 -0
  142. /package/src/skills-lib/{site-launch-kit → wizz-site-launch-kit}/references/03-tempo-de-resposta.md +0 -0
  143. /package/src/skills-lib/{site-launch-kit → wizz-site-launch-kit}/references/04-prova-social.md +0 -0
  144. /package/src/skills-lib/{site-launch-kit → wizz-site-launch-kit}/references/05-faq-decisao.md +0 -0
  145. /package/src/skills-lib/{site-launch-kit → wizz-site-launch-kit}/references/06-imagens-reais.md +0 -0
  146. /package/src/skills-lib/{site-launch-kit → wizz-site-launch-kit}/references/07-endereco-como-chegar.md +0 -0
  147. /package/src/skills-lib/{site-launch-kit → wizz-site-launch-kit}/references/08-titles.md +0 -0
  148. /package/src/skills-lib/{site-launch-kit → wizz-site-launch-kit}/references/09-open-graph.md +0 -0
  149. /package/src/skills-lib/{site-launch-kit → wizz-site-launch-kit}/references/10-breadcrumbs.md +0 -0
  150. /package/src/skills-lib/{site-launch-kit → wizz-site-launch-kit}/references/11-alt-text.md +0 -0
  151. /package/src/skills-lib/{site-launch-kit → wizz-site-launch-kit}/references/12-schema-local.md +0 -0
  152. /package/src/skills-lib/{site-launch-kit → wizz-site-launch-kit}/references/13-robots-sitemap.md +0 -0
  153. /package/src/skills-lib/{site-launch-kit → wizz-site-launch-kit}/references/14-privacidade-termos.md +0 -0
  154. /package/src/skills-lib/{site-launch-kit → wizz-site-launch-kit}/references/15-medicao.md +0 -0
@@ -43,6 +43,7 @@
43
43
  // persistGlobalEnv(storePath, envRecord) — writer do store global
44
44
  // promptMissingEnvVars(mcps, opts) — thin orchestrator of the above
45
45
 
46
+ const { it } = require('../install-text');
46
47
  const path = require('node:path');
47
48
  const os = require('node:os');
48
49
  const fs = require('../fs-native');
@@ -363,9 +364,9 @@ async function findInProviders(name, providers) {
363
364
  */
364
365
  function createDefaultPrompter() {
365
366
  return async (entry) => {
366
- const usedBy = entry.mcpIds && entry.mcpIds.length > 0 ? ` (usada por: ${entry.mcpIds.join(', ')})` : '';
367
+ const usedBy = entry.mcpIds && entry.mcpIds.length > 0 ? it('envUsedBy', { list: entry.mcpIds.join(', ') }) : '';
367
368
  const value = await prompts.password({
368
- message: `Valor para ${entry.name}${usedBy} — Enter para pular:`,
369
+ message: it('envValue', { name: entry.name, usedBy }),
369
370
  // @clack/prompts requires synchronous validate (prompts.js:763-765);
370
371
  // format is unknown per-var, so we only guard against literal
371
372
  // whitespace-only input slipping through as a "value".
@@ -473,11 +474,9 @@ async function persistProjectEnv(projectDir, envRecord) {
473
474
  // Ensure .claude/settings.local.json is in .gitignore before writing secrets
474
475
  const gitignoreCheck = await ensureSettingsLocalIgnored(projectDir);
475
476
  if (gitignoreCheck.added) {
476
- await prompts.log.info('.claude/settings.local.json foi adicionado ao .gitignore do projeto (guarda API keys, não deve ir pro git).');
477
+ await prompts.log.info(it('gitignoreAdded'));
477
478
  } else if (gitignoreCheck.reason === 'não é um repositório git') {
478
- await prompts.log.warn(
479
- 'Este diretório não é um repositório git: garanta que .claude/settings.local.json (API keys) nunca seja versionado.',
480
- );
479
+ await prompts.log.warn(it('notGitRepo'));
481
480
  }
482
481
 
483
482
  let settings = {};
@@ -30,7 +30,7 @@ const { resolveAreaEntries } = require('./registry-resolve');
30
30
  /**
31
31
  * Resolve which skill ids to install from the registry for the chosen areas.
32
32
  * Empty / undefined / containing 'all' means every area. Utility skills
33
- * (find-skills, wizz-router, ...) are cross-cutting and always included.
33
+ * (wizz-find-skills, wizz-router, ...) are cross-cutting and always included.
34
34
  *
35
35
  * Wrapper fino sobre `resolveAreaEntries` (A16): a resolução por área vive em
36
36
  * `registry-resolve.js`; aqui só sobra reduzir as entradas resolvidas ao
@@ -1,3 +1,4 @@
1
+ const { it, setInstallLang, langOfInstall } = require('./install-text');
1
2
  const path = require('node:path');
2
3
  const os = require('node:os');
3
4
  const semver = require('semver');
@@ -240,10 +241,12 @@ class UI {
240
241
  // language comes first; everything else keeps the legacy flow.
241
242
  const guided = isGuidedEligible(options);
242
243
  let lang = normalizeLang(options.lang) || 'en';
244
+ setInstallLang(lang);
243
245
  await CLIUtils.displayLogo({ steps: guided, lang, version: installerPackageJson.version });
244
246
 
245
247
  if (guided) {
246
248
  if (!normalizeLang(options.lang)) lang = await guidedSteps.askLanguage();
249
+ setInstallLang(lang);
247
250
  } else {
248
251
  // Display version-specific start message from install-messages.yaml
249
252
  const { MessageLoader } = require('./message-loader');
@@ -268,7 +271,7 @@ class UI {
268
271
  await prompts.log.warn(warning);
269
272
  }
270
273
 
271
- // When the user launched the installer from a prerelease (npx bmad-method@next),
274
+ // When the user launched the installer from a prerelease (npx wizz-method@next),
272
275
  // mirror that intent for external modules: seed the global channel to 'next' so
273
276
  // the module picker's version labels resolve from main HEAD (matching what
274
277
  // actually gets installed) and the interactive channel gate skips — the user
@@ -309,6 +312,11 @@ class UI {
309
312
  // Check if there's an existing WIZZ installation
310
313
  const hasExistingInstall = await fs.pathExists(wizzDir);
311
314
 
315
+ // Update without --lang keeps the language chosen at install time.
316
+ if (hasExistingInstall && !normalizeLang(options.lang) && !guided) {
317
+ setInstallLang(langOfInstall(wizzDir) || lang);
318
+ }
319
+
312
320
  // Track action type (only set if there's an existing installation)
313
321
  let actionType;
314
322
 
@@ -638,7 +646,7 @@ class UI {
638
646
  if (raw.includes('all')) return [];
639
647
  const unknown = raw.filter((a) => !areaKeys.includes(a));
640
648
  if (unknown.length > 0) {
641
- await prompts.log.warn(`Áreas desconhecidas ignoradas: ${unknown.join(', ')}`);
649
+ await prompts.log.warn(it('unknownAreas', { list: unknown.join(', ') }));
642
650
  }
643
651
  return raw.filter((a) => areaKeys.includes(a));
644
652
  }
@@ -652,7 +660,7 @@ class UI {
652
660
  });
653
661
 
654
662
  const selected = await prompts.autocompleteMultiselect({
655
- message: 'Quais áreas de skills globais instalar? (vazio = todas)',
663
+ message: it('areasQuestion'),
656
664
  options: areaOptions,
657
665
  initialValues: areaKeys,
658
666
  required: false,
@@ -691,10 +699,10 @@ class UI {
691
699
  // so nothing disappears silently.
692
700
  const { toInstall, globallyConfigured, pluginCovered } = await partitionGloballyConfigured({ mcps: resolved });
693
701
  if (globallyConfigured.length > 0) {
694
- await prompts.log.info(`MCPs já configurados no seu Claude global (~/.claude.json), pulados: ${globallyConfigured.join(', ')}`);
702
+ await prompts.log.info(it('mcpGlobalSkipped', { list: globallyConfigured.join(', ') }));
695
703
  }
696
704
  if (pluginCovered.length > 0) {
697
- await prompts.log.info(`MCPs já cobertos por plugin do Claude Code (user scope), pulados: ${pluginCovered.join(', ')}`);
705
+ await prompts.log.info(it('mcpPluginSkipped', { list: pluginCovered.join(', ') }));
698
706
  }
699
707
  if (globallyConfigured.length > 0 || pluginCovered.length > 0) {
700
708
  resolved = toInstall;
@@ -729,7 +737,7 @@ class UI {
729
737
  if (options.yes) return { toWrite: [], toRecommend: resolved };
730
738
 
731
739
  const selected = await prompts.multiselect({
732
- message: options.mcpMessage || 'Quais MCPs configurar no .mcp.json? (não marcados viram comando pra rodar depois)',
740
+ message: options.mcpMessage || it('mcpQuestion'),
733
741
  options: resolved.map((m) => ({
734
742
  label: m.id,
735
743
  value: m.id,
@@ -792,7 +800,7 @@ class UI {
792
800
  if (raw.includes('all')) return split(missing.map((c) => c.id));
793
801
  const unknown = raw.filter((id) => !byId.has(id));
794
802
  if (unknown.length > 0) {
795
- await prompts.log.warn(`CLIs desconhecidos/já instalados ignorados: ${unknown.join(', ')}`);
803
+ await prompts.log.warn(it('unknownClis', { list: unknown.join(', ') }));
796
804
  }
797
805
  return split(raw.filter((id) => byId.has(id)));
798
806
  }
@@ -822,7 +830,7 @@ class UI {
822
830
  }
823
831
  : defaultOption;
824
832
  const selected = await prompts.multiselect({
825
- message: options.cliMessage || 'Quais CLIs instalar agora? (não marcados viram comando pra rodar depois)',
833
+ message: options.cliMessage || it('cliQuestion'),
826
834
  options: missing.map((c) => buildOption(c)),
827
835
  initialValues: missing.filter((c) => c.recommended).map((c) => c.id),
828
836
  required: false,
@@ -866,7 +874,7 @@ class UI {
866
874
  if (!interactive) return false;
867
875
 
868
876
  const enable = await prompts.confirm({
869
- message: 'Quer ligar o medidor de roteamento? (local, grava só em ~/.claude/wizz-trace.jsonl na sua máquina, nunca sai daqui)',
877
+ message: it('traceQuestion'),
870
878
  default: false,
871
879
  });
872
880
  if (!enable) return false;