wizz-method 1.4.0 → 1.5.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 (610) hide show
  1. package/README.md +7 -5
  2. package/package.json +48 -4
  3. package/skills-registry.yaml +166 -34
  4. package/src/bmm-skills/4-implementation/wizz-code-review/SKILL.md +2 -0
  5. package/src/bmm-skills/4-implementation/wizz-quick-dev/SKILL.md +5 -2
  6. package/src/core-skills/_shared/handoff-protocol.md +61 -0
  7. package/src/core-skills/wizz-customize/SKILL.md +2 -2
  8. package/src/core-skills/wizz-party-mode/references/mode-agent-team.md +1 -1
  9. package/src/core-skills/wizz-party-mode/references/mode-subagent.md +1 -1
  10. package/src/core-skills/wizz-review-adversarial-general/SKILL.md +2 -0
  11. package/src/modules/wizz/README.md +3 -3
  12. package/src/modules/wizz/_shared/communication-rules.md +13 -0
  13. package/src/modules/wizz/_shared/encerramento.md +2 -2
  14. package/src/modules/wizz/agents/wizz-ads/SKILL.md +1 -1
  15. package/src/modules/wizz/agents/wizz-ads/customize.toml +5 -3
  16. package/src/modules/wizz/agents/wizz-copy/SKILL.md +1 -1
  17. package/src/modules/wizz/agents/wizz-copy/customize.toml +5 -3
  18. package/src/modules/wizz/agents/wizz-designer/SKILL.md +7 -9
  19. package/src/modules/wizz/agents/wizz-designer/customize.toml +6 -4
  20. package/src/modules/wizz/agents/wizz-growth/SKILL.md +1 -1
  21. package/src/modules/wizz/agents/wizz-growth/customize.toml +11 -3
  22. package/src/modules/wizz/agents/wizz-maestro/SKILL.md +15 -10
  23. package/src/modules/wizz/agents/wizz-maestro/customize.toml +5 -7
  24. package/src/modules/wizz/agents/wizz-memoria/SKILL.md +1 -1
  25. package/src/modules/wizz/agents/wizz-memoria/customize.toml +2 -4
  26. package/src/modules/wizz/agents/wizz-qa/SKILL.md +6 -6
  27. package/src/modules/wizz/agents/wizz-qa/customize.toml +9 -7
  28. package/src/modules/wizz/agents/wizz-seo/SKILL.md +1 -1
  29. package/src/modules/wizz/agents/wizz-seo/customize.toml +5 -3
  30. package/src/modules/wizz/agents/wizz-social/SKILL.md +1 -1
  31. package/src/modules/wizz/agents/wizz-social/customize.toml +9 -8
  32. package/src/modules/wizz/module.yaml +1 -1
  33. package/src/modules/wizz/overrides/wizz-agent-analyst.toml +4 -5
  34. package/src/modules/wizz/overrides/wizz-agent-architect.toml +11 -3
  35. package/src/modules/wizz/overrides/wizz-agent-dev.toml +6 -4
  36. package/src/modules/wizz/overrides/wizz-agent-pm.toml +4 -2
  37. package/src/modules/wizz/overrides/wizz-agent-tech-writer.toml +3 -5
  38. package/src/modules/wizz/overrides/wizz-agent-ux-designer.toml +4 -2
  39. package/src/modules/wizz/scripts/wizz-init.mjs +3 -1
  40. package/src/scripts/__pycache__/resolve_customization.cpython-314.pyc +0 -0
  41. package/src/scripts/memlog.py +9 -0
  42. package/src/scripts/resolve_customization.py +93 -3
  43. package/src/skills-lib/adversarial-reviewer/SKILL.md +2 -0
  44. package/src/skills-lib/algorithmic-art/SKILL.md +29 -369
  45. package/src/skills-lib/algorithmic-art/references/interactive-artifact.md +139 -0
  46. package/src/skills-lib/algorithmic-art/references/p5js-implementation.md +121 -0
  47. package/src/skills-lib/algorithmic-art/references/philosophy-creation.md +88 -0
  48. package/src/skills-lib/auth-and-secrets/SKILL.md +29 -11
  49. package/src/skills-lib/canvas-design/SKILL.md +9 -38
  50. package/src/skills-lib/canvas-design/references/canvas-execution.md +21 -0
  51. package/src/skills-lib/canvas-design/references/philosophy-examples.md +25 -0
  52. package/src/skills-lib/cerebro/SKILL.md +8 -273
  53. package/src/skills-lib/cerebro/references/comandos-pesquisa-e-sync.md +44 -0
  54. package/src/skills-lib/cerebro/references/comandos-rotina-e-captura.md +94 -0
  55. package/src/skills-lib/cerebro/references/comandos-sessao.md +122 -0
  56. package/src/skills-lib/content-strategy/SKILL.md +12 -316
  57. package/src/skills-lib/content-strategy/references/content-types.md +52 -0
  58. package/src/skills-lib/content-strategy/references/ideation-sources.md +78 -0
  59. package/src/skills-lib/content-strategy/references/pillars-and-keywords.md +78 -0
  60. package/src/skills-lib/content-strategy/references/prioritization-and-output.md +57 -0
  61. package/src/skills-lib/decision-maker/SKILL.md +13 -466
  62. package/src/skills-lib/decision-maker/references/commands-and-edge-cases.md +40 -0
  63. package/src/skills-lib/decision-maker/references/output-format.md +161 -0
  64. package/src/skills-lib/decision-maker/references/references-and-extraction.md +129 -0
  65. package/src/skills-lib/decision-maker/references/six-decisions.md +122 -0
  66. package/src/skills-lib/decision-maker/references/wizz-method-handoff.md +22 -0
  67. package/src/skills-lib/desktop-security/SKILL.md +35 -4
  68. package/src/skills-lib/find-skills/SKILL.md +9 -6
  69. package/src/skills-lib/form-cro/SKILL.md +12 -390
  70. package/src/skills-lib/form-cro/references/experiments.md +73 -0
  71. package/src/skills-lib/form-cro/references/field-optimization.md +92 -0
  72. package/src/skills-lib/form-cro/references/flow-and-errors.md +71 -0
  73. package/src/skills-lib/form-cro/references/measurement-output.md +41 -0
  74. package/src/skills-lib/form-cro/references/trust-and-form-types.md +54 -0
  75. package/src/skills-lib/graphify/SKILL.md +2 -20
  76. package/src/skills-lib/huashu-design/SKILL.md +42 -596
  77. package/src/skills-lib/huashu-design/references/anti-slop-principles.md +62 -0
  78. package/src/skills-lib/huashu-design/references/audio-design-rules.md +1 -1
  79. package/src/skills-lib/huashu-design/references/cross-agent-adaptation.md +14 -0
  80. package/src/skills-lib/huashu-design/references/design-direction-fallback.md +113 -0
  81. package/src/skills-lib/huashu-design/references/exception-handling.md +18 -0
  82. package/src/skills-lib/huashu-design/references/fact-verification.md +36 -0
  83. package/src/skills-lib/huashu-design/references/ios-prototype.md +146 -0
  84. package/src/skills-lib/huashu-design/references/sfx-library.md +7 -0
  85. package/src/skills-lib/huashu-design/references/starter-components.md +24 -0
  86. package/src/skills-lib/huashu-design/references/video-export.md +1 -1
  87. package/src/skills-lib/huashu-design/references/watermark-policy.md +23 -0
  88. package/src/skills-lib/huashu-design/scripts/add-music.sh +12 -1
  89. package/src/skills-lib/huashu-design/scripts/mix-voiceover.sh +11 -0
  90. package/src/skills-lib/humanizer/SKILL.md +23 -431
  91. package/src/skills-lib/humanizer/references/ai-writing-patterns.md +314 -0
  92. package/src/skills-lib/humanizer/references/full-example.md +72 -0
  93. package/src/skills-lib/humanizer/references/personality-and-soul.md +36 -0
  94. package/src/skills-lib/impeccable/SKILL.md +37 -153
  95. package/src/skills-lib/impeccable/references/design-rules.md +95 -0
  96. package/src/skills-lib/impeccable/references/pin-unpin-and-hooks.md +17 -0
  97. package/src/skills-lib/impeccable/references/routing-rules.md +28 -0
  98. package/src/skills-lib/implementation-planner/SKILL.md +22 -529
  99. package/src/skills-lib/implementation-planner/references/folder-structure-and-dependencies.md +132 -0
  100. package/src/skills-lib/implementation-planner/references/handoff-template.md +34 -0
  101. package/src/skills-lib/implementation-planner/references/implementation-phases.md +54 -0
  102. package/src/skills-lib/implementation-planner/references/implementation-types.md +28 -0
  103. package/src/skills-lib/implementation-planner/references/motion-path-implementation.md +57 -0
  104. package/src/skills-lib/implementation-planner/references/output-templates.md +92 -0
  105. package/src/skills-lib/implementation-planner/references/performance-plan.md +52 -0
  106. package/src/skills-lib/inicio-de-projeto/SKILL.md +4 -224
  107. package/src/skills-lib/inicio-de-projeto/references/implementacao-api-forms.md +112 -0
  108. package/src/skills-lib/inicio-de-projeto/references/padroes-arquiteturais-e-pastas.md +71 -0
  109. package/src/skills-lib/inicio-de-projeto/references/seguranca-e-regras-codigo.md +26 -0
  110. package/src/skills-lib/launch-strategy/SKILL.md +9 -311
  111. package/src/skills-lib/launch-strategy/references/five-phase-approach.md +76 -0
  112. package/src/skills-lib/launch-strategy/references/launch-checklist.md +34 -0
  113. package/src/skills-lib/launch-strategy/references/orb-framework.md +76 -0
  114. package/src/skills-lib/launch-strategy/references/post-launch-and-ongoing.md +64 -0
  115. package/src/skills-lib/launch-strategy/references/product-hunt-strategy.md +52 -0
  116. package/src/skills-lib/marketing-psychology/SKILL.md +18 -401
  117. package/src/skills-lib/marketing-psychology/references/design-and-delivery-models.md +56 -0
  118. package/src/skills-lib/marketing-psychology/references/foundational-thinking-models.md +76 -0
  119. package/src/skills-lib/marketing-psychology/references/growth-and-scaling-models.md +46 -0
  120. package/src/skills-lib/marketing-psychology/references/influencing-behavior.md +71 -0
  121. package/src/skills-lib/marketing-psychology/references/pricing-psychology.md +31 -0
  122. package/src/skills-lib/marketing-psychology/references/understanding-buyers.md +116 -0
  123. package/src/skills-lib/motion-3d-director/SKILL.md +23 -370
  124. package/src/skills-lib/motion-3d-director/references/image-to-video-workflow.md +166 -0
  125. package/src/skills-lib/motion-3d-director/references/motion-paths.md +119 -0
  126. package/src/skills-lib/motion-3d-director/references/performance-and-handoff.md +51 -0
  127. package/src/skills-lib/popup-cro/SKILL.md +11 -414
  128. package/src/skills-lib/popup-cro/references/design-copy-compliance.md +81 -0
  129. package/src/skills-lib/popup-cro/references/experiments.md +82 -0
  130. package/src/skills-lib/popup-cro/references/rules-measurement-output.md +87 -0
  131. package/src/skills-lib/popup-cro/references/triggers-and-popup-types.md +108 -0
  132. package/src/skills-lib/premium-landing-ui-researcher/SKILL.md +52 -2083
  133. package/src/skills-lib/premium-landing-ui-researcher/references/audit-protocol.md +124 -0
  134. package/src/skills-lib/premium-landing-ui-researcher/references/component-sources.md +336 -0
  135. package/src/skills-lib/premium-landing-ui-researcher/references/core-goal.md +62 -0
  136. package/src/skills-lib/premium-landing-ui-researcher/references/dashboard-and-portfolio-modes.md +92 -0
  137. package/src/skills-lib/premium-landing-ui-researcher/references/handoffs.md +55 -0
  138. package/src/skills-lib/premium-landing-ui-researcher/references/landing-page-strategy.md +227 -0
  139. package/src/skills-lib/premium-landing-ui-researcher/references/mandatory-process.md +36 -0
  140. package/src/skills-lib/premium-landing-ui-researcher/references/output-format-and-quality.md +129 -0
  141. package/src/skills-lib/premium-landing-ui-researcher/references/prompt-templates.md +206 -0
  142. package/src/skills-lib/premium-landing-ui-researcher/references/site-levels.md +515 -0
  143. package/src/skills-lib/premium-landing-ui-researcher/references/source-first-protocol.md +144 -0
  144. package/src/skills-lib/premium-landing-ui-researcher/references/source-links.md +39 -0
  145. package/src/skills-lib/premium-landing-ui-researcher/references/stack-and-visual-direction.md +118 -0
  146. package/src/skills-lib/signup-flow-cro/SKILL.md +13 -321
  147. package/src/skills-lib/signup-flow-cro/references/experiments.md +72 -0
  148. package/src/skills-lib/signup-flow-cro/references/field-optimization.md +49 -0
  149. package/src/skills-lib/signup-flow-cro/references/flow-structure.md +38 -0
  150. package/src/skills-lib/signup-flow-cro/references/measurement-output-patterns.md +62 -0
  151. package/src/skills-lib/signup-flow-cro/references/trust-and-post-submit.md +40 -0
  152. package/src/skills-lib/taste-redesign/SKILL.md +10 -146
  153. package/src/skills-lib/taste-redesign/references/design-audit.md +120 -0
  154. package/src/skills-lib/taste-redesign/references/upgrade-techniques.md +31 -0
  155. package/src/skills-lib/taste-skill/SKILL.md +33 -1177
  156. package/src/skills-lib/taste-skill/references/anti-slop-tells.md +110 -0
  157. package/src/skills-lib/taste-skill/references/architecture-conventions.md +39 -0
  158. package/src/skills-lib/taste-skill/references/block-library.md +61 -0
  159. package/src/skills-lib/taste-skill/references/brief-and-dials.md +89 -0
  160. package/src/skills-lib/taste-skill/references/dark-mode.md +23 -0
  161. package/src/skills-lib/taste-skill/references/design-directives.md +191 -0
  162. package/src/skills-lib/taste-skill/references/design-systems.md +267 -0
  163. package/src/skills-lib/taste-skill/references/motion-patterns.md +167 -0
  164. package/src/skills-lib/taste-skill/references/pattern-vocabulary.md +78 -0
  165. package/src/skills-lib/taste-skill/references/performance-a11y.md +33 -0
  166. package/src/skills-lib/taste-skill/references/preflight-checklist.md +73 -0
  167. package/src/skills-lib/taste-skill/references/redesign-protocol.md +52 -0
  168. package/src/skills-lib/ui-ux-pro-max/SKILL.md +9 -353
  169. package/src/skills-lib/ui-ux-pro-max/references/common-rules-checklist.md +76 -0
  170. package/src/skills-lib/ui-ux-pro-max/references/rules-quick-reference.md +70 -0
  171. package/src/skills-lib/ui-ux-pro-max/references/search-reference.md +45 -0
  172. package/src/skills-lib/ui-ux-pro-max/references/workflow-guide.md +157 -0
  173. package/src/skills-lib/web-security/SKILL.md +13 -162
  174. package/src/skills-lib/web-security/references/checklist-deploy.md +52 -0
  175. package/src/skills-lib/web-security/references/headers-rate-limit-cors.md +78 -0
  176. package/src/skills-lib/web-security/references/owasp-top5-detalhado.md +51 -0
  177. package/src/skills-lib/wizz-router/SKILL.md +30 -244
  178. package/src/skills-lib/wizz-router/references/auditoria-360.md +21 -0
  179. package/src/skills-lib/wizz-router/references/routing-table-flat.md +95 -0
  180. package/tools/fetch-assets.mjs +277 -0
  181. package/tools/installer/commands/fetch-assets.js +71 -0
  182. package/tools/installer/commands/install.js +35 -3
  183. package/tools/installer/commands/trace-report.js +131 -0
  184. package/tools/installer/core/config.js +9 -0
  185. package/tools/installer/core/help-catalog.js +181 -0
  186. package/tools/installer/core/install-paths.js +48 -3
  187. package/tools/installer/core/installer.js +253 -618
  188. package/tools/installer/core/manifest-generator.js +8 -1
  189. package/tools/installer/core/manifest.js +67 -22
  190. package/tools/installer/core/module-config-writer.js +110 -0
  191. package/tools/installer/core/preflight-tools-check.js +82 -0
  192. package/tools/installer/core/quick-update.js +209 -0
  193. package/tools/installer/core/user-file-preservation.js +250 -0
  194. package/tools/installer/modules/channel-resolver.js +34 -2
  195. package/tools/installer/modules/cli-config.js +127 -34
  196. package/tools/installer/modules/deps-cache.js +28 -1
  197. package/tools/installer/modules/env-vars.js +446 -0
  198. package/tools/installer/modules/external-manager.js +40 -6
  199. package/tools/installer/modules/mcp-config.js +180 -37
  200. package/tools/installer/modules/module-help-schema.js +2 -1
  201. package/tools/installer/modules/official-modules.js +1 -1
  202. package/tools/installer/modules/registry-resolve.js +74 -0
  203. package/tools/installer/modules/skills-lib.js +81 -16
  204. package/tools/installer/ui.js +71 -5
  205. package/wizz-modules.yaml +15 -5
  206. package/.claude/settings.local.json +0 -8
  207. package/.claude-plugin/marketplace.json +0 -80
  208. package/AGENTS.md +0 -12
  209. package/build/artifacts/llms-full.txt +0 -4049
  210. package/build/artifacts/llms.txt +0 -28
  211. package/build/site/404.html +0 -55
  212. package/build/site/_astro/MobileTableOfContents.astro_astro_type_script_index_0_lang.hwBsy0Mo.js +0 -1
  213. package/build/site/_astro/Search.astro_astro_type_script_index_0_lang.cjYDvRdi.js +0 -1
  214. package/build/site/_astro/TableOfContents.astro_astro_type_script_index_0_lang.FuRcXuRY.js +0 -1
  215. package/build/site/_astro/ec.0vx5m.js +0 -3
  216. package/build/site/_astro/ec.v4551.css +0 -1
  217. package/build/site/_astro/index.DdjI3lF_.css +0 -1
  218. package/build/site/_astro/page.B1D-nYk3.js +0 -1
  219. package/build/site/_astro/print.DNXP8c50.css +0 -1
  220. package/build/site/_astro/ui-core.D_Lfcn_I.js +0 -2
  221. package/build/site/diagrams/checkpoint-preview-diagram-fr.webp +0 -0
  222. package/build/site/diagrams/checkpoint-preview-diagram.png +0 -0
  223. package/build/site/diagrams/quick-dev-diagram-fr.webp +0 -0
  224. package/build/site/diagrams/quick-dev-diagram.png +0 -0
  225. package/build/site/explanation/advanced-elicitation/index.html +0 -105
  226. package/build/site/explanation/adversarial-review/index.html +0 -109
  227. package/build/site/explanation/analysis-phase/index.html +0 -129
  228. package/build/site/explanation/brainstorming/index.html +0 -92
  229. package/build/site/explanation/checkpoint-preview/index.html +0 -121
  230. package/build/site/explanation/established-projects-faq/index.html +0 -107
  231. package/build/site/explanation/forensic-investigation/index.html +0 -167
  232. package/build/site/explanation/named-agents/index.html +0 -187
  233. package/build/site/explanation/party-mode/index.html +0 -256
  234. package/build/site/explanation/preventing-agent-conflicts/index.html +0 -185
  235. package/build/site/explanation/project-context/index.html +0 -198
  236. package/build/site/explanation/quick-dev/index.html +0 -113
  237. package/build/site/explanation/web-bundles/index.html +0 -178
  238. package/build/site/explanation/why-solutioning-matters/index.html +0 -168
  239. package/build/site/how-to/customize-wizz/index.html +0 -277
  240. package/build/site/how-to/established-projects/index.html +0 -165
  241. package/build/site/how-to/expand-wizz-for-your-org/index.html +0 -245
  242. package/build/site/how-to/get-answers-about-wizz/index.html +0 -129
  243. package/build/site/how-to/install-custom-modules/index.html +0 -197
  244. package/build/site/how-to/install-wizz/index.html +0 -330
  245. package/build/site/how-to/non-interactive-installation/index.html +0 -73
  246. package/build/site/how-to/project-context/index.html +0 -141
  247. package/build/site/how-to/quick-fixes/index.html +0 -122
  248. package/build/site/how-to/shard-large-documents/index.html +0 -103
  249. package/build/site/how-to/upgrade-to-v6/index.html +0 -185
  250. package/build/site/how-to/use-web-bundles/index.html +0 -99
  251. package/build/site/img/wizz-dark.png +0 -0
  252. package/build/site/img/wizz-light.png +0 -0
  253. package/build/site/index.html +0 -128
  254. package/build/site/llms-full.txt +0 -4049
  255. package/build/site/llms.txt +0 -28
  256. package/build/site/pagefind/fragment/en_175de32.pf_fragment +0 -0
  257. package/build/site/pagefind/fragment/en_24258fb.pf_fragment +0 -0
  258. package/build/site/pagefind/fragment/en_24f53a6.pf_fragment +0 -0
  259. package/build/site/pagefind/fragment/en_27ba8f9.pf_fragment +0 -0
  260. package/build/site/pagefind/fragment/en_296ddb9.pf_fragment +0 -0
  261. package/build/site/pagefind/fragment/en_2b5aa5c.pf_fragment +0 -0
  262. package/build/site/pagefind/fragment/en_49047e0.pf_fragment +0 -0
  263. package/build/site/pagefind/fragment/en_4a187d2.pf_fragment +0 -0
  264. package/build/site/pagefind/fragment/en_514725b.pf_fragment +0 -0
  265. package/build/site/pagefind/fragment/en_583316f.pf_fragment +0 -0
  266. package/build/site/pagefind/fragment/en_6465dfb.pf_fragment +0 -0
  267. package/build/site/pagefind/fragment/en_67825a4.pf_fragment +0 -0
  268. package/build/site/pagefind/fragment/en_82aec61.pf_fragment +0 -0
  269. package/build/site/pagefind/fragment/en_85dcebf.pf_fragment +0 -0
  270. package/build/site/pagefind/fragment/en_887ce56.pf_fragment +0 -0
  271. package/build/site/pagefind/fragment/en_89a1a7a.pf_fragment +0 -0
  272. package/build/site/pagefind/fragment/en_8ade291.pf_fragment +0 -0
  273. package/build/site/pagefind/fragment/en_8c11f8a.pf_fragment +0 -0
  274. package/build/site/pagefind/fragment/en_8c1bde3.pf_fragment +0 -0
  275. package/build/site/pagefind/fragment/en_92d7cc7.pf_fragment +0 -0
  276. package/build/site/pagefind/fragment/en_94bfc21.pf_fragment +0 -0
  277. package/build/site/pagefind/fragment/en_9b57d7d.pf_fragment +0 -0
  278. package/build/site/pagefind/fragment/en_ab62b53.pf_fragment +0 -0
  279. package/build/site/pagefind/fragment/en_b0d23ee.pf_fragment +0 -0
  280. package/build/site/pagefind/fragment/en_ba9fb37.pf_fragment +0 -0
  281. package/build/site/pagefind/fragment/en_bb113eb.pf_fragment +0 -0
  282. package/build/site/pagefind/fragment/en_bfc56b6.pf_fragment +0 -0
  283. package/build/site/pagefind/fragment/en_c6d9e48.pf_fragment +0 -0
  284. package/build/site/pagefind/fragment/en_cdd772f.pf_fragment +0 -0
  285. package/build/site/pagefind/fragment/en_cdd885c.pf_fragment +0 -0
  286. package/build/site/pagefind/fragment/en_cefed6a.pf_fragment +0 -0
  287. package/build/site/pagefind/fragment/en_d890205.pf_fragment +0 -0
  288. package/build/site/pagefind/fragment/en_da351b7.pf_fragment +0 -0
  289. package/build/site/pagefind/fragment/en_ea289f9.pf_fragment +0 -0
  290. package/build/site/pagefind/fragment/en_f1c3711.pf_fragment +0 -0
  291. package/build/site/pagefind/index/en_5b9d8c6.pf_index +0 -0
  292. package/build/site/pagefind/index/en_868614c.pf_index +0 -0
  293. package/build/site/pagefind/index/en_e4f9bff.pf_index +0 -0
  294. package/build/site/pagefind/pagefind-entry.json +0 -1
  295. package/build/site/pagefind/pagefind-highlight.js +0 -1064
  296. package/build/site/pagefind/pagefind-modular-ui.css +0 -214
  297. package/build/site/pagefind/pagefind-modular-ui.js +0 -8
  298. package/build/site/pagefind/pagefind-ui.css +0 -1
  299. package/build/site/pagefind/pagefind-ui.js +0 -2
  300. package/build/site/pagefind/pagefind.en_4e69d7f053.pf_meta +0 -0
  301. package/build/site/pagefind/pagefind.js +0 -6
  302. package/build/site/pagefind/wasm.en.pagefind +0 -0
  303. package/build/site/pagefind/wasm.unknown.pagefind +0 -0
  304. package/build/site/reference/agents/index.html +0 -168
  305. package/build/site/reference/commands/index.html +0 -254
  306. package/build/site/reference/core-tools/index.html +0 -384
  307. package/build/site/reference/modules/index.html +0 -132
  308. package/build/site/reference/testing/index.html +0 -218
  309. package/build/site/reference/workflow-map/index.html +0 -266
  310. package/build/site/roadmap/index.html +0 -77
  311. package/build/site/robots.txt +0 -37
  312. package/build/site/sitemap-0.xml +0 -1
  313. package/build/site/sitemap-index.xml +0 -1
  314. package/build/site/tutorials/getting-started/index.html +0 -386
  315. package/build/site/wizz-icon-orange.svg +0 -7
  316. package/build/site/workflow-map-diagram-fr.html +0 -375
  317. package/build/site/workflow-map-diagram.html +0 -375
  318. package/evals/bmm-skills/wizz-product-brief/evals.json +0 -237
  319. package/evals/bmm-skills/wizz-product-brief/files/branfield-memo.md +0 -46
  320. package/evals/bmm-skills/wizz-product-brief/files/forkbird-brief/addendum.md +0 -40
  321. package/evals/bmm-skills/wizz-product-brief/files/forkbird-brief/brief.md +0 -56
  322. package/evals/bmm-skills/wizz-product-brief/files/forkbird-brief/decision-log.md +0 -27
  323. package/evals/bmm-skills/wizz-product-brief/files/meridian-mobility-report.md +0 -116
  324. package/evals/bmm-skills/wizz-product-brief/files/mossridge-brief/addendum.md +0 -41
  325. package/evals/bmm-skills/wizz-product-brief/files/mossridge-brief/brief.md +0 -57
  326. package/evals/bmm-skills/wizz-product-brief/files/mossridge-brief/decision-log.md +0 -29
  327. package/evals/bmm-skills/wizz-product-brief/files/pantry-bridge-interviews.md +0 -90
  328. package/evals/bmm-skills/wizz-product-brief/files/q2-brainstorm.md +0 -101
  329. package/evals/bmm-skills/wizz-product-brief/triggers.json +0 -18
  330. package/src/core-skills/wizz-party-mode/scripts/__pycache__/resolve_party.cpython-314.pyc +0 -0
  331. package/src/skills-lib/canvas-design/canvas-fonts/ArsenalSC-Regular.ttf +0 -0
  332. package/src/skills-lib/canvas-design/canvas-fonts/BigShoulders-Bold.ttf +0 -0
  333. package/src/skills-lib/canvas-design/canvas-fonts/BigShoulders-Regular.ttf +0 -0
  334. package/src/skills-lib/canvas-design/canvas-fonts/Boldonse-Regular.ttf +0 -0
  335. package/src/skills-lib/canvas-design/canvas-fonts/BricolageGrotesque-Bold.ttf +0 -0
  336. package/src/skills-lib/canvas-design/canvas-fonts/BricolageGrotesque-Regular.ttf +0 -0
  337. package/src/skills-lib/canvas-design/canvas-fonts/CrimsonPro-Bold.ttf +0 -0
  338. package/src/skills-lib/canvas-design/canvas-fonts/CrimsonPro-Italic.ttf +0 -0
  339. package/src/skills-lib/canvas-design/canvas-fonts/CrimsonPro-Regular.ttf +0 -0
  340. package/src/skills-lib/canvas-design/canvas-fonts/DMMono-Regular.ttf +0 -0
  341. package/src/skills-lib/canvas-design/canvas-fonts/EricaOne-Regular.ttf +0 -0
  342. package/src/skills-lib/canvas-design/canvas-fonts/GeistMono-Bold.ttf +0 -0
  343. package/src/skills-lib/canvas-design/canvas-fonts/GeistMono-Regular.ttf +0 -0
  344. package/src/skills-lib/canvas-design/canvas-fonts/Gloock-Regular.ttf +0 -0
  345. package/src/skills-lib/canvas-design/canvas-fonts/IBMPlexMono-Bold.ttf +0 -0
  346. package/src/skills-lib/canvas-design/canvas-fonts/IBMPlexMono-Regular.ttf +0 -0
  347. package/src/skills-lib/canvas-design/canvas-fonts/IBMPlexSerif-Bold.ttf +0 -0
  348. package/src/skills-lib/canvas-design/canvas-fonts/IBMPlexSerif-BoldItalic.ttf +0 -0
  349. package/src/skills-lib/canvas-design/canvas-fonts/IBMPlexSerif-Italic.ttf +0 -0
  350. package/src/skills-lib/canvas-design/canvas-fonts/IBMPlexSerif-Regular.ttf +0 -0
  351. package/src/skills-lib/canvas-design/canvas-fonts/InstrumentSans-Bold.ttf +0 -0
  352. package/src/skills-lib/canvas-design/canvas-fonts/InstrumentSans-BoldItalic.ttf +0 -0
  353. package/src/skills-lib/canvas-design/canvas-fonts/InstrumentSans-Italic.ttf +0 -0
  354. package/src/skills-lib/canvas-design/canvas-fonts/InstrumentSans-Regular.ttf +0 -0
  355. package/src/skills-lib/canvas-design/canvas-fonts/InstrumentSerif-Italic.ttf +0 -0
  356. package/src/skills-lib/canvas-design/canvas-fonts/InstrumentSerif-Regular.ttf +0 -0
  357. package/src/skills-lib/canvas-design/canvas-fonts/Italiana-Regular.ttf +0 -0
  358. package/src/skills-lib/canvas-design/canvas-fonts/JetBrainsMono-Bold.ttf +0 -0
  359. package/src/skills-lib/canvas-design/canvas-fonts/JetBrainsMono-Regular.ttf +0 -0
  360. package/src/skills-lib/canvas-design/canvas-fonts/Jura-Light.ttf +0 -0
  361. package/src/skills-lib/canvas-design/canvas-fonts/Jura-Medium.ttf +0 -0
  362. package/src/skills-lib/canvas-design/canvas-fonts/LibreBaskerville-Regular.ttf +0 -0
  363. package/src/skills-lib/canvas-design/canvas-fonts/Lora-Bold.ttf +0 -0
  364. package/src/skills-lib/canvas-design/canvas-fonts/Lora-BoldItalic.ttf +0 -0
  365. package/src/skills-lib/canvas-design/canvas-fonts/Lora-Italic.ttf +0 -0
  366. package/src/skills-lib/canvas-design/canvas-fonts/Lora-Regular.ttf +0 -0
  367. package/src/skills-lib/canvas-design/canvas-fonts/NationalPark-Bold.ttf +0 -0
  368. package/src/skills-lib/canvas-design/canvas-fonts/NationalPark-Regular.ttf +0 -0
  369. package/src/skills-lib/canvas-design/canvas-fonts/NothingYouCouldDo-Regular.ttf +0 -0
  370. package/src/skills-lib/canvas-design/canvas-fonts/Outfit-Bold.ttf +0 -0
  371. package/src/skills-lib/canvas-design/canvas-fonts/Outfit-Regular.ttf +0 -0
  372. package/src/skills-lib/canvas-design/canvas-fonts/PixelifySans-Medium.ttf +0 -0
  373. package/src/skills-lib/canvas-design/canvas-fonts/PoiretOne-Regular.ttf +0 -0
  374. package/src/skills-lib/canvas-design/canvas-fonts/RedHatMono-Bold.ttf +0 -0
  375. package/src/skills-lib/canvas-design/canvas-fonts/RedHatMono-Regular.ttf +0 -0
  376. package/src/skills-lib/canvas-design/canvas-fonts/Silkscreen-Regular.ttf +0 -0
  377. package/src/skills-lib/canvas-design/canvas-fonts/SmoochSans-Medium.ttf +0 -0
  378. package/src/skills-lib/canvas-design/canvas-fonts/Tektur-Medium.ttf +0 -0
  379. package/src/skills-lib/canvas-design/canvas-fonts/Tektur-Regular.ttf +0 -0
  380. package/src/skills-lib/canvas-design/canvas-fonts/WorkSans-Bold.ttf +0 -0
  381. package/src/skills-lib/canvas-design/canvas-fonts/WorkSans-BoldItalic.ttf +0 -0
  382. package/src/skills-lib/canvas-design/canvas-fonts/WorkSans-Italic.ttf +0 -0
  383. package/src/skills-lib/canvas-design/canvas-fonts/WorkSans-Regular.ttf +0 -0
  384. package/src/skills-lib/canvas-design/canvas-fonts/YoungSerif-Regular.ttf +0 -0
  385. package/src/skills-lib/huashu-design/assets/bgm-ad.mp3 +0 -0
  386. package/src/skills-lib/huashu-design/assets/bgm-educational-alt.mp3 +0 -0
  387. package/src/skills-lib/huashu-design/assets/bgm-educational.mp3 +0 -0
  388. package/src/skills-lib/huashu-design/assets/bgm-tech.mp3 +0 -0
  389. package/src/skills-lib/huashu-design/assets/bgm-tutorial-alt.mp3 +0 -0
  390. package/src/skills-lib/huashu-design/assets/bgm-tutorial.mp3 +0 -0
  391. package/src/skills-lib/huashu-design/assets/sfx/container/card-flip.mp3 +0 -0
  392. package/src/skills-lib/huashu-design/assets/sfx/container/card-snap.mp3 +0 -0
  393. package/src/skills-lib/huashu-design/assets/sfx/container/modal-open.mp3 +0 -0
  394. package/src/skills-lib/huashu-design/assets/sfx/container/stack-collapse.mp3 +0 -0
  395. package/src/skills-lib/huashu-design/assets/sfx/feedback/achievement.mp3 +0 -0
  396. package/src/skills-lib/huashu-design/assets/sfx/feedback/error-tone.mp3 +0 -0
  397. package/src/skills-lib/huashu-design/assets/sfx/feedback/notification-pop.mp3 +0 -0
  398. package/src/skills-lib/huashu-design/assets/sfx/feedback/success-chime.mp3 +0 -0
  399. package/src/skills-lib/huashu-design/assets/sfx/impact/brand-stamp.mp3 +0 -0
  400. package/src/skills-lib/huashu-design/assets/sfx/impact/drop-thud.mp3 +0 -0
  401. package/src/skills-lib/huashu-design/assets/sfx/impact/logo-reveal-v2.mp3 +0 -0
  402. package/src/skills-lib/huashu-design/assets/sfx/impact/logo-reveal.mp3 +0 -0
  403. package/src/skills-lib/huashu-design/assets/sfx/keyboard/delete-key.mp3 +0 -0
  404. package/src/skills-lib/huashu-design/assets/sfx/keyboard/enter.mp3 +0 -0
  405. package/src/skills-lib/huashu-design/assets/sfx/keyboard/space-tap.mp3 +0 -0
  406. package/src/skills-lib/huashu-design/assets/sfx/keyboard/type-fast.mp3 +0 -0
  407. package/src/skills-lib/huashu-design/assets/sfx/keyboard/type.mp3 +0 -0
  408. package/src/skills-lib/huashu-design/assets/sfx/magic/ai-process.mp3 +0 -0
  409. package/src/skills-lib/huashu-design/assets/sfx/magic/sparkle.mp3 +0 -0
  410. package/src/skills-lib/huashu-design/assets/sfx/magic/transform.mp3 +0 -0
  411. package/src/skills-lib/huashu-design/assets/sfx/progress/complete-done.mp3 +0 -0
  412. package/src/skills-lib/huashu-design/assets/sfx/progress/generate-start.mp3 +0 -0
  413. package/src/skills-lib/huashu-design/assets/sfx/progress/loading-tick.mp3 +0 -0
  414. package/src/skills-lib/huashu-design/assets/sfx/terminal/command-execute.mp3 +0 -0
  415. package/src/skills-lib/huashu-design/assets/sfx/terminal/cursor-blink.mp3 +0 -0
  416. package/src/skills-lib/huashu-design/assets/sfx/terminal/output-appear.mp3 +0 -0
  417. package/src/skills-lib/huashu-design/assets/sfx/transition/dissolve.mp3 +0 -0
  418. package/src/skills-lib/huashu-design/assets/sfx/transition/slide-in.mp3 +0 -0
  419. package/src/skills-lib/huashu-design/assets/sfx/transition/swipe-horizontal.mp3 +0 -0
  420. package/src/skills-lib/huashu-design/assets/sfx/transition/whoosh-fast.mp3 +0 -0
  421. package/src/skills-lib/huashu-design/assets/sfx/transition/whoosh.mp3 +0 -0
  422. package/src/skills-lib/huashu-design/assets/sfx/ui/click-soft.mp3 +0 -0
  423. package/src/skills-lib/huashu-design/assets/sfx/ui/click.mp3 +0 -0
  424. package/src/skills-lib/huashu-design/assets/sfx/ui/focus.mp3 +0 -0
  425. package/src/skills-lib/huashu-design/assets/sfx/ui/hover-subtle.mp3 +0 -0
  426. package/src/skills-lib/huashu-design/assets/sfx/ui/tap-finger.mp3 +0 -0
  427. package/src/skills-lib/huashu-design/assets/sfx/ui/toggle-on.mp3 +0 -0
  428. package/src/skills-lib/ui-ux-pro-max/scripts/__pycache__/core.cpython-314.pyc +0 -0
  429. package/src/skills-lib/ui-ux-pro-max/scripts/__pycache__/design_system.cpython-314.pyc +0 -0
  430. package/src/skills-lib/ui-ux-pro-max/scripts/__pycache__/search.cpython-314.pyc +0 -0
  431. package/src/skills-lib/ui-ux-pro-max/scripts/graphify-out/cache/0964cef300f753b5cee0cc49777ca97035c85d45c212099405d9ee4da36e523f.json +0 -1
  432. package/src/skills-lib/ui-ux-pro-max/scripts/graphify-out/cache/21a40f6810c3a6f17acc3580f106171daf78c7b41bbd066bc80448a821ea0adf.json +0 -1
  433. package/src/skills-lib/ui-ux-pro-max/scripts/graphify-out/cache/69ea15a020ac81b8459e37ef63654398a50c1035fc01c43d8069df217389f7f3.json +0 -1
  434. package/src/squads/README.md +0 -39
  435. package/src/squads/advisory-board/README.md +0 -34
  436. package/src/squads/advisory-board/agents/board-chair.md +0 -161
  437. package/src/squads/advisory-board/agents/brene-brown.md +0 -296
  438. package/src/squads/advisory-board/agents/charlie-munger.md +0 -590
  439. package/src/squads/advisory-board/agents/derek-sivers.md +0 -268
  440. package/src/squads/advisory-board/agents/naval-ravikant.md +0 -251
  441. package/src/squads/advisory-board/agents/patrick-lencioni.md +0 -394
  442. package/src/squads/advisory-board/agents/peter-thiel.md +0 -269
  443. package/src/squads/advisory-board/agents/ray-dalio.md +0 -587
  444. package/src/squads/advisory-board/agents/reid-hoffman.md +0 -278
  445. package/src/squads/advisory-board/agents/simon-sinek.md +0 -291
  446. package/src/squads/advisory-board/agents/yvon-chouinard.md +0 -275
  447. package/src/squads/advisory-board/squad.yaml +0 -50
  448. package/src/squads/brand-squad/README.md +0 -60
  449. package/src/squads/brand-squad/agents/al-ries.md +0 -175
  450. package/src/squads/brand-squad/agents/alina-wheeler.md +0 -184
  451. package/src/squads/brand-squad/agents/archetype-consultant.md +0 -215
  452. package/src/squads/brand-squad/agents/brand-chief.md +0 -158
  453. package/src/squads/brand-squad/agents/byron-sharp.md +0 -169
  454. package/src/squads/brand-squad/agents/david-aaker.md +0 -166
  455. package/src/squads/brand-squad/agents/denise-yohn.md +0 -172
  456. package/src/squads/brand-squad/agents/domain-scout.md +0 -135
  457. package/src/squads/brand-squad/agents/donald-miller.md +0 -179
  458. package/src/squads/brand-squad/agents/emily-heyward.md +0 -147
  459. package/src/squads/brand-squad/agents/jean-noel-kapferer.md +0 -189
  460. package/src/squads/brand-squad/agents/kevin-keller.md +0 -199
  461. package/src/squads/brand-squad/agents/marty-neumeier.md +0 -170
  462. package/src/squads/brand-squad/agents/miller-sticky-brand.md +0 -180
  463. package/src/squads/brand-squad/agents/naming-strategist.md +0 -171
  464. package/src/squads/brand-squad/squad.yaml +0 -117
  465. package/src/squads/c-level-squad/README.md +0 -29
  466. package/src/squads/c-level-squad/agents/caio-architect.md +0 -235
  467. package/src/squads/c-level-squad/agents/cio-engineer.md +0 -209
  468. package/src/squads/c-level-squad/agents/cmo-architect.md +0 -208
  469. package/src/squads/c-level-squad/agents/coo-orchestrator.md +0 -193
  470. package/src/squads/c-level-squad/agents/cto-architect.md +0 -194
  471. package/src/squads/c-level-squad/agents/vision-chief.md +0 -201
  472. package/src/squads/c-level-squad/squad.yaml +0 -45
  473. package/src/squads/claude-code-mastery/README.md +0 -146
  474. package/src/squads/claude-code-mastery/agents/claude-mastery-chief.md +0 -554
  475. package/src/squads/claude-code-mastery/agents/config-engineer.md +0 -865
  476. package/src/squads/claude-code-mastery/agents/hooks-architect.md +0 -1013
  477. package/src/squads/claude-code-mastery/agents/mcp-integrator.md +0 -791
  478. package/src/squads/claude-code-mastery/agents/project-integrator.md +0 -1196
  479. package/src/squads/claude-code-mastery/agents/roadmap-sentinel.md +0 -931
  480. package/src/squads/claude-code-mastery/agents/skill-craftsman.md +0 -1250
  481. package/src/squads/claude-code-mastery/agents/swarm-orchestrator.md +0 -1008
  482. package/src/squads/copy-squad/README.md +0 -65
  483. package/src/squads/copy-squad/agents/andre-chaperon.md +0 -206
  484. package/src/squads/copy-squad/agents/ben-settle.md +0 -194
  485. package/src/squads/copy-squad/agents/claude-hopkins.md +0 -182
  486. package/src/squads/copy-squad/agents/clayton-makepeace.md +0 -225
  487. package/src/squads/copy-squad/agents/copy-chief.md +0 -166
  488. package/src/squads/copy-squad/agents/dan-kennedy.md +0 -202
  489. package/src/squads/copy-squad/agents/dan-koe.md +0 -223
  490. package/src/squads/copy-squad/agents/david-deutsch.md +0 -197
  491. package/src/squads/copy-squad/agents/david-ogilvy.md +0 -198
  492. package/src/squads/copy-squad/agents/eugene-schwartz.md +0 -238
  493. package/src/squads/copy-squad/agents/frank-kern.md +0 -195
  494. package/src/squads/copy-squad/agents/gary-bencivenga.md +0 -197
  495. package/src/squads/copy-squad/agents/gary-halbert.md +0 -219
  496. package/src/squads/copy-squad/agents/jim-rutz.md +0 -193
  497. package/src/squads/copy-squad/agents/joe-sugarman.md +0 -234
  498. package/src/squads/copy-squad/agents/john-carlton.md +0 -203
  499. package/src/squads/copy-squad/agents/jon-benson.md +0 -196
  500. package/src/squads/copy-squad/agents/parris-lampropoulos.md +0 -188
  501. package/src/squads/copy-squad/agents/robert-collier.md +0 -183
  502. package/src/squads/copy-squad/agents/russell-brunson.md +0 -229
  503. package/src/squads/copy-squad/agents/ry-schwartz.md +0 -185
  504. package/src/squads/copy-squad/agents/stefan-georgi.md +0 -188
  505. package/src/squads/copy-squad/agents/todd-brown.md +0 -171
  506. package/src/squads/copy-squad/squad.yaml +0 -87
  507. package/src/squads/cybersecurity/README.md +0 -38
  508. package/src/squads/cybersecurity/agents/busterer.md +0 -108
  509. package/src/squads/cybersecurity/agents/cartographer.md +0 -114
  510. package/src/squads/cybersecurity/agents/chris-sanders.md +0 -205
  511. package/src/squads/cybersecurity/agents/command-generator.md +0 -121
  512. package/src/squads/cybersecurity/agents/cyber-chief.md +0 -120
  513. package/src/squads/cybersecurity/agents/dirber.md +0 -111
  514. package/src/squads/cybersecurity/agents/fuzzer.md +0 -121
  515. package/src/squads/cybersecurity/agents/georgia-weidman.md +0 -178
  516. package/src/squads/cybersecurity/agents/jim-manico.md +0 -182
  517. package/src/squads/cybersecurity/agents/marcus-carey.md +0 -200
  518. package/src/squads/cybersecurity/agents/omar-santos.md +0 -206
  519. package/src/squads/cybersecurity/agents/peter-kim.md +0 -179
  520. package/src/squads/cybersecurity/agents/ripper.md +0 -121
  521. package/src/squads/cybersecurity/agents/rogue.md +0 -116
  522. package/src/squads/cybersecurity/agents/shannon-runner.md +0 -108
  523. package/src/squads/cybersecurity/squad.yaml +0 -56
  524. package/src/squads/data-squad/README.md +0 -30
  525. package/src/squads/data-squad/agents/avinash-kaushik.md +0 -268
  526. package/src/squads/data-squad/agents/data-chief.md +0 -167
  527. package/src/squads/data-squad/agents/david-spinks.md +0 -277
  528. package/src/squads/data-squad/agents/nick-mehta.md +0 -294
  529. package/src/squads/data-squad/agents/peter-fader.md +0 -246
  530. package/src/squads/data-squad/agents/sean-ellis.md +0 -303
  531. package/src/squads/data-squad/agents/wes-kao.md +0 -268
  532. package/src/squads/data-squad/squad.yaml +0 -46
  533. package/src/squads/design-squad/README.md +0 -31
  534. package/src/squads/design-squad/agents/brad-frost.md +0 -185
  535. package/src/squads/design-squad/agents/dan-mall.md +0 -178
  536. package/src/squads/design-squad/agents/dave-malouf.md +0 -198
  537. package/src/squads/design-squad/agents/design-chief.md +0 -109
  538. package/src/squads/design-squad/agents/design-system-architect.md +0 -109
  539. package/src/squads/design-squad/agents/ui-engineer.md +0 -102
  540. package/src/squads/design-squad/agents/ux-designer.md +0 -105
  541. package/src/squads/design-squad/agents/visual-generator.md +0 -108
  542. package/src/squads/design-squad/squad.yaml +0 -48
  543. package/src/squads/hormozi-squad/README.md +0 -39
  544. package/src/squads/hormozi-squad/agents/hormozi-ads.md +0 -159
  545. package/src/squads/hormozi-squad/agents/hormozi-advisor.md +0 -178
  546. package/src/squads/hormozi-squad/agents/hormozi-audit.md +0 -178
  547. package/src/squads/hormozi-squad/agents/hormozi-chief.md +0 -111
  548. package/src/squads/hormozi-squad/agents/hormozi-closer.md +0 -179
  549. package/src/squads/hormozi-squad/agents/hormozi-content.md +0 -166
  550. package/src/squads/hormozi-squad/agents/hormozi-copy.md +0 -152
  551. package/src/squads/hormozi-squad/agents/hormozi-hooks.md +0 -177
  552. package/src/squads/hormozi-squad/agents/hormozi-launch.md +0 -160
  553. package/src/squads/hormozi-squad/agents/hormozi-leads.md +0 -198
  554. package/src/squads/hormozi-squad/agents/hormozi-models.md +0 -191
  555. package/src/squads/hormozi-squad/agents/hormozi-offers.md +0 -197
  556. package/src/squads/hormozi-squad/agents/hormozi-pricing.md +0 -151
  557. package/src/squads/hormozi-squad/agents/hormozi-retention.md +0 -166
  558. package/src/squads/hormozi-squad/agents/hormozi-scale.md +0 -175
  559. package/src/squads/hormozi-squad/agents/hormozi-workshop.md +0 -160
  560. package/src/squads/hormozi-squad/squad.yaml +0 -60
  561. package/src/squads/movement/README.md +0 -29
  562. package/src/squads/movement/agents/analista-de-impacto.md +0 -350
  563. package/src/squads/movement/agents/estrategista-de-ciclo.md +0 -301
  564. package/src/squads/movement/agents/fenomenologo.md +0 -169
  565. package/src/squads/movement/agents/identitario.md +0 -265
  566. package/src/squads/movement/agents/manifestador.md +0 -279
  567. package/src/squads/movement/agents/movement-architect.md +0 -210
  568. package/src/squads/movement/agents/movement-chief.md +0 -135
  569. package/src/squads/movement/squad.yaml +0 -45
  570. package/src/squads/storytelling/README.md +0 -35
  571. package/src/squads/storytelling/agents/blake-snyder.md +0 -225
  572. package/src/squads/storytelling/agents/dan-harmon.md +0 -167
  573. package/src/squads/storytelling/agents/joseph-campbell.md +0 -184
  574. package/src/squads/storytelling/agents/keith-johnstone.md +0 -157
  575. package/src/squads/storytelling/agents/kindra-hall.md +0 -162
  576. package/src/squads/storytelling/agents/marshall-ganz.md +0 -167
  577. package/src/squads/storytelling/agents/matthew-dicks.md +0 -152
  578. package/src/squads/storytelling/agents/nancy-duarte.md +0 -154
  579. package/src/squads/storytelling/agents/oren-klaff.md +0 -166
  580. package/src/squads/storytelling/agents/park-howell.md +0 -152
  581. package/src/squads/storytelling/agents/shawn-coyne.md +0 -208
  582. package/src/squads/storytelling/agents/story-chief.md +0 -155
  583. package/src/squads/storytelling/squad.yaml +0 -52
  584. package/src/squads/traffic-masters/README.md +0 -39
  585. package/src/squads/traffic-masters/agents/ad-midas.md +0 -149
  586. package/src/squads/traffic-masters/agents/ads-analyst.md +0 -135
  587. package/src/squads/traffic-masters/agents/creative-analyst.md +0 -142
  588. package/src/squads/traffic-masters/agents/depesh-mandalia.md +0 -174
  589. package/src/squads/traffic-masters/agents/fiscal.md +0 -144
  590. package/src/squads/traffic-masters/agents/kasim-aslam.md +0 -158
  591. package/src/squads/traffic-masters/agents/media-buyer.md +0 -159
  592. package/src/squads/traffic-masters/agents/molly-pittman.md +0 -185
  593. package/src/squads/traffic-masters/agents/nicholas-kusmich.md +0 -157
  594. package/src/squads/traffic-masters/agents/pedro-sobral.md +0 -158
  595. package/src/squads/traffic-masters/agents/performance-analyst.md +0 -135
  596. package/src/squads/traffic-masters/agents/pixel-specialist.md +0 -144
  597. package/src/squads/traffic-masters/agents/ralph-burns.md +0 -163
  598. package/src/squads/traffic-masters/agents/scale-optimizer.md +0 -144
  599. package/src/squads/traffic-masters/agents/tom-breeze.md +0 -175
  600. package/src/squads/traffic-masters/agents/traffic-chief.md +0 -97
  601. package/src/squads/traffic-masters/squad.yaml +0 -59
  602. package/tools/bundle-web-bundles.js +0 -117
  603. package/tools/format-workflow-md.js +0 -263
  604. package/tools/javascript-conventions.md +0 -5
  605. package/tools/migrate-custom-module-paths.js +0 -124
  606. package/tools/skill-validator.md +0 -368
  607. package/tools/validate-sidebar-order.js +0 -388
  608. package/tools/validate-skills.js +0 -708
  609. package/tools/validate-svg-changes.sh +0 -356
  610. /package/tools/installer/{cli-utils.js → banner.js} +0 -0
@@ -0,0 +1,277 @@
1
+ // fetch-assets.mjs — downloader sob demanda dos assets pesados (MP3/fontes)
2
+ // removidos do pacote npm na Tarefa 2.8 da auditoria (assets lazy).
3
+ //
4
+ // Por que existe: `huashu-design/assets/**/*.mp3` (~30MB) e
5
+ // `canvas-design/canvas-fonts/**/*.ttf` (~5.5MB) inflavam o pacote npm em
6
+ // ~73%, mas só são necessários no primeiro uso real de export de vídeo
7
+ // (BGM/SFX) ou de uma variante de fonte específica. Os arquivos continuam no
8
+ // git (fonte de verdade); só saem do tarball publicado. Este script baixa o
9
+ // bundle certo, no lugar certo, verificando sha256 (mesmo espírito do pin
10
+ // com checksum do rtk — nunca extrai um bundle adulterado).
11
+ //
12
+ // Uso:
13
+ // node tools/fetch-assets.mjs <bundle> [--dest <dir>] [--force]
14
+ // node tools/fetch-assets.mjs --all
15
+ // node tools/fetch-assets.mjs --url <url> --sha256 <hash> --dest <dir> [--marker <file>] [--force]
16
+ //
17
+ // Bundles conhecidos: huashu-audio, canvas-fonts (ver BUNDLES abaixo).
18
+ //
19
+ // Cache: se o arquivo-marcador do bundle já existe no destino, não baixa de
20
+ // novo (a menos que --force). Sem dependência nova: usa `node:https`/
21
+ // `node:http` para o download e o binário `tar` do sistema (macOS/Linux/WSL,
22
+ // mesmo escopo de suporte declarado do resto do framework) para extrair.
23
+
24
+ import fs from 'node:fs';
25
+ import path from 'node:path';
26
+ import crypto from 'node:crypto';
27
+ import http from 'node:http';
28
+ import https from 'node:https';
29
+ import os from 'node:os';
30
+ import { execFileSync } from 'node:child_process';
31
+ import { fileURLToPath } from 'node:url';
32
+
33
+ const __filename = fileURLToPath(import.meta.url);
34
+ const __dirname = path.dirname(__filename);
35
+ const PACKAGE_ROOT = path.resolve(__dirname, '..');
36
+
37
+ const RELEASE_BASE = 'https://github.com/wizzcomms/wizz-method/releases/download/assets-v1';
38
+
39
+ // Fonte única dos bundles conhecidos. `dest` é relativo ao root do pacote
40
+ // (repo em dev, node_modules/wizz-method quando instalado via npm — a mesma
41
+ // árvore src/skills-lib/ existe nos dois casos). `marker` é um arquivo que só
42
+ // existe depois de extraído com sucesso; presença dele = cache hit.
43
+ export const BUNDLES = {
44
+ 'huashu-audio': {
45
+ url: `${RELEASE_BASE}/huashu-audio.tar.gz`,
46
+ sha256: 'd20ddaefb7fd560837dec8d57ae8698ee51ef553d61a1367f0491183c613129f',
47
+ dest: 'src/skills-lib/huashu-design/assets',
48
+ marker: 'bgm-ad.mp3',
49
+ description: '6 trilhas BGM + SFX (huashu-design/assets/**/*.mp3, ~27MB)',
50
+ },
51
+ 'canvas-fonts': {
52
+ url: `${RELEASE_BASE}/canvas-fonts.tar.gz`,
53
+ sha256: '7ac839f1dee2883b8e9a7022f246cfece4e203a2fd6ea23c81a5ffa49b812396',
54
+ dest: 'src/skills-lib/canvas-design/canvas-fonts',
55
+ marker: 'Outfit-Regular.ttf',
56
+ description: '~54 variantes de fonte (canvas-design/canvas-fonts/*.ttf, ~2.5MB)',
57
+ },
58
+ };
59
+
60
+ const NETWORK_ERROR_CODES = new Set(['ECONNREFUSED', 'ECONNRESET', 'ENOTFOUND', 'ETIMEDOUT', 'EAI_AGAIN', 'ENETUNREACH']);
61
+
62
+ function isNetworkError(err) {
63
+ return Boolean(err && (NETWORK_ERROR_CODES.has(err.code) || err.name === 'AbortError'));
64
+ }
65
+
66
+ /** Baixa `url` para `destFile`, seguindo redirects (GitHub release assets fazem 302). */
67
+ function download(url, destFile, { maxRedirects = 5, timeoutMs = 30_000 } = {}) {
68
+ return new Promise((resolve, reject) => {
69
+ const client = url.startsWith('https:') ? https : http;
70
+ const req = client.get(url, { timeout: timeoutMs }, (res) => {
71
+ if (res.statusCode >= 300 && res.statusCode < 400 && res.headers.location) {
72
+ res.resume();
73
+ if (maxRedirects <= 0) {
74
+ reject(new Error(`Muitos redirects ao baixar ${url}`));
75
+ return;
76
+ }
77
+ const nextUrl = new URL(res.headers.location, url).toString();
78
+ download(nextUrl, destFile, { maxRedirects: maxRedirects - 1, timeoutMs }).then(resolve, reject);
79
+ return;
80
+ }
81
+ if (res.statusCode !== 200) {
82
+ res.resume();
83
+ reject(new Error(`HTTP ${res.statusCode} ao baixar ${url}`));
84
+ return;
85
+ }
86
+ const fileStream = fs.createWriteStream(destFile);
87
+ res.pipe(fileStream);
88
+ fileStream.on('finish', () => fileStream.close(() => resolve()));
89
+ fileStream.on('error', reject);
90
+ res.on('error', reject);
91
+ });
92
+ req.on('timeout', () => req.destroy(new Error(`Timeout ao baixar ${url}`)));
93
+ req.on('error', reject);
94
+ });
95
+ }
96
+
97
+ function sha256File(filePath) {
98
+ return new Promise((resolve, reject) => {
99
+ const hash = crypto.createHash('sha256');
100
+ const stream = fs.createReadStream(filePath);
101
+ stream.on('data', (chunk) => hash.update(chunk));
102
+ stream.on('end', () => resolve(hash.digest('hex')));
103
+ stream.on('error', reject);
104
+ });
105
+ }
106
+
107
+ function extractTarGz(tarFile, destDir) {
108
+ fs.mkdirSync(destDir, { recursive: true });
109
+ execFileSync('tar', ['-xzf', tarFile, '-C', destDir], { stdio: 'pipe' });
110
+ }
111
+
112
+ function isCached(destDir, marker) {
113
+ if (!marker) {
114
+ return fs.existsSync(destDir) && fs.readdirSync(destDir).length > 0;
115
+ }
116
+ return fs.existsSync(path.join(destDir, marker));
117
+ }
118
+
119
+ /**
120
+ * Baixa, verifica sha256 e extrai um bundle. Não escreve nada no destino se
121
+ * o sha256 não bater (aborta antes do extract). Cache: pula o download se o
122
+ * marcador já existir em `dest`, a menos que `force`.
123
+ *
124
+ * @returns {Promise<{ cached: boolean }>}
125
+ */
126
+ export async function fetchBundle({ url, sha256, dest, marker, force = false }) {
127
+ const destDir = path.isAbsolute(dest) ? dest : path.join(PACKAGE_ROOT, dest);
128
+
129
+ if (!force && isCached(destDir, marker)) {
130
+ return { cached: true, dest: destDir };
131
+ }
132
+
133
+ const tmpFile = path.join(os.tmpdir(), `wizz-fetch-assets-${crypto.randomBytes(6).toString('hex')}.tar.gz`);
134
+ try {
135
+ await download(url, tmpFile);
136
+ } catch (error) {
137
+ fs.rmSync(tmpFile, { force: true });
138
+ if (isNetworkError(error)) {
139
+ throw new FetchAssetsError(
140
+ `Sem conexão para baixar o asset (${error.code || error.message}).\n` +
141
+ ` Baixe manualmente: ${url}\n` +
142
+ ` E extraia em: ${destDir}`,
143
+ { cause: error },
144
+ );
145
+ }
146
+ throw error;
147
+ }
148
+
149
+ const actualSha256 = await sha256File(tmpFile);
150
+ if (actualSha256 !== sha256) {
151
+ fs.rmSync(tmpFile, { force: true });
152
+ throw new FetchAssetsError(
153
+ `sha256 não confere para ${url}\n esperado: ${sha256}\n obtido: ${actualSha256}\n` +
154
+ `Download abortado, nada foi extraído (bundle pode estar corrompido ou adulterado).`,
155
+ );
156
+ }
157
+
158
+ try {
159
+ extractTarGz(tmpFile, destDir);
160
+ } finally {
161
+ fs.rmSync(tmpFile, { force: true });
162
+ }
163
+
164
+ return { cached: false, dest: destDir };
165
+ }
166
+
167
+ export class FetchAssetsError extends Error {}
168
+
169
+ async function fetchNamedBundle(name, { dest, force } = {}) {
170
+ const bundle = BUNDLES[name];
171
+ if (!bundle) {
172
+ throw new FetchAssetsError(`Bundle desconhecido: "${name}". Disponíveis: ${Object.keys(BUNDLES).join(', ')}`);
173
+ }
174
+ return fetchBundle({
175
+ url: bundle.url,
176
+ sha256: bundle.sha256,
177
+ dest: dest || bundle.dest,
178
+ marker: bundle.marker,
179
+ force,
180
+ });
181
+ }
182
+
183
+ function parseArgs(argv) {
184
+ const opts = { positional: [], force: false, all: false };
185
+ for (let i = 0; i < argv.length; i += 1) {
186
+ const arg = argv[i];
187
+ switch (arg) {
188
+ case '--force': {
189
+ opts.force = true;
190
+ break;
191
+ }
192
+ case '--all': {
193
+ opts.all = true;
194
+ break;
195
+ }
196
+ case '--dest': {
197
+ opts.dest = argv[++i];
198
+ break;
199
+ }
200
+ case '--url': {
201
+ opts.url = argv[++i];
202
+ break;
203
+ }
204
+ case '--sha256': {
205
+ opts.sha256 = argv[++i];
206
+ break;
207
+ }
208
+ case '--marker': {
209
+ opts.marker = argv[++i];
210
+ break;
211
+ }
212
+ default: {
213
+ opts.positional.push(arg);
214
+ }
215
+ }
216
+ }
217
+ return opts;
218
+ }
219
+
220
+ async function main(argv) {
221
+ const opts = parseArgs(argv);
222
+
223
+ if (opts.all) {
224
+ let exitCode = 0;
225
+ for (const name of Object.keys(BUNDLES)) {
226
+ try {
227
+ const result = await fetchNamedBundle(name, { force: opts.force });
228
+ console.log(result.cached ? `✓ ${name}: já em cache (${result.dest})` : `✓ ${name}: baixado em ${result.dest}`);
229
+ } catch (error) {
230
+ exitCode = 1;
231
+ console.error(`✗ ${name}: ${error.message}`);
232
+ }
233
+ }
234
+ process.exitCode = exitCode;
235
+ return;
236
+ }
237
+
238
+ if (opts.url && opts.sha256 && opts.dest) {
239
+ try {
240
+ const result = await fetchBundle({ url: opts.url, sha256: opts.sha256, dest: opts.dest, marker: opts.marker, force: opts.force });
241
+ console.log(result.cached ? `✓ já em cache (${result.dest})` : `✓ baixado em ${result.dest}`);
242
+ } catch (error) {
243
+ console.error(`✗ ${error.message}`);
244
+ process.exitCode = 1;
245
+ }
246
+ return;
247
+ }
248
+
249
+ const bundleName = opts.positional[0];
250
+ if (!bundleName) {
251
+ console.error(
252
+ 'Uso: node tools/fetch-assets.mjs <bundle> [--dest <dir>] [--force]\n' +
253
+ ' node tools/fetch-assets.mjs --all\n' +
254
+ `Bundles: ${Object.entries(BUNDLES)
255
+ .map(([id, b]) => `\n ${id} — ${b.description}`)
256
+ .join('')}`,
257
+ );
258
+ process.exitCode = 1;
259
+ return;
260
+ }
261
+
262
+ try {
263
+ const result = await fetchNamedBundle(bundleName, { dest: opts.dest, force: opts.force });
264
+ console.log(result.cached ? `✓ ${bundleName}: já em cache (${result.dest})` : `✓ ${bundleName}: baixado em ${result.dest}`);
265
+ } catch (error) {
266
+ console.error(`✗ ${error.message}`);
267
+ process.exitCode = 1;
268
+ }
269
+ }
270
+
271
+ const isMain = process.argv[1] && path.resolve(process.argv[1]) === __filename;
272
+ if (isMain) {
273
+ main(process.argv.slice(2)).catch((error) => {
274
+ console.error(`✗ Erro inesperado: ${error.stack || error.message}`);
275
+ process.exitCode = 1;
276
+ });
277
+ }
@@ -0,0 +1,71 @@
1
+ // `wizz fetch-assets` — baixa sob demanda os assets pesados removidos do
2
+ // pacote npm (Tarefa 2.8 da auditoria): MP3 do huashu-design e fontes do
3
+ // canvas-design. Wrapper fino de commander sobre tools/fetch-assets.mjs (ESM
4
+ // puro, sem dependência nova) — o motor real fica lá; este arquivo só expõe
5
+ // o comando pro CLI e traduz flags/erros pro padrão dos outros comandos.
6
+ //
7
+ // `--bundle` (não posicional): o loader genérico em wizz-cli.js registra
8
+ // `program.command(name)` sem placeholder de argumento pros comandos deste
9
+ // diretório (todos os outros — install/status/uninstall — são só opções),
10
+ // então um positional aqui quebraria com "too many arguments". Mantém a
11
+ // mesma convenção do resto do CLI em vez de mexer no loader compartilhado.
12
+ //
13
+ // Por que uma flag --dest é essencial: uma skill instalada globalmente
14
+ // (~/.claude/skills/huashu-design/) ou num projeto (.claude/skills/...) é uma
15
+ // CÓPIA separada do pacote npm de origem — baixar só no pacote de origem não
16
+ // ajuda a cópia já instalada. `npx wizz-method fetch-assets --bundle
17
+ // huashu-audio --dest <pasta-da-skill>/assets`, rodado de dentro da skill
18
+ // instalada, resolve os dois casos (skill local ao repo em dev, ou instalada
19
+ // em qualquer lugar) sem a skill precisar saber onde o pacote wizz-method mora.
20
+
21
+ module.exports = {
22
+ command: 'fetch-assets',
23
+ description: 'Baixa sob demanda os assets pesados (MP3 do huashu-design, fontes do canvas-design)',
24
+ options: [
25
+ ['--bundle <name>', 'Bundle a baixar (huashu-audio | canvas-fonts)'],
26
+ ['--dest <dir>', 'Destino da extração (default: local do bundle dentro do pacote wizz-method)'],
27
+ ['--force', 'Ignora o cache e rebaixa mesmo se os arquivos já existirem'],
28
+ ['--all', 'Baixa todos os bundles conhecidos'],
29
+ ],
30
+ action: async (options) => {
31
+ const { fetchBundle, BUNDLES } = await import('../../fetch-assets.mjs');
32
+
33
+ const targets = options.all ? Object.keys(BUNDLES) : options.bundle ? [options.bundle] : [];
34
+
35
+ if (targets.length === 0) {
36
+ console.error(
37
+ 'Uso: wizz fetch-assets --bundle <nome> [--dest <dir>] [--force]\n' +
38
+ ' wizz fetch-assets --all\n' +
39
+ `Bundles: ${Object.entries(BUNDLES)
40
+ .map(([id, b]) => `\n ${id} — ${b.description}`)
41
+ .join('')}`,
42
+ );
43
+ process.exitCode = 1;
44
+ return;
45
+ }
46
+
47
+ let exitCode = 0;
48
+ for (const name of targets) {
49
+ const meta = BUNDLES[name];
50
+ if (!meta) {
51
+ console.error(`✗ Bundle desconhecido: "${name}". Disponíveis: ${Object.keys(BUNDLES).join(', ')}`);
52
+ exitCode = 1;
53
+ continue;
54
+ }
55
+ try {
56
+ const result = await fetchBundle({
57
+ url: meta.url,
58
+ sha256: meta.sha256,
59
+ dest: options.dest || meta.dest,
60
+ marker: meta.marker,
61
+ force: options.force,
62
+ });
63
+ console.log(result.cached ? `✓ ${name}: já em cache (${result.dest})` : `✓ ${name}: baixado em ${result.dest}`);
64
+ } catch (error) {
65
+ exitCode = 1;
66
+ console.error(`✗ ${name}: ${error.message}`);
67
+ }
68
+ }
69
+ process.exitCode = exitCode;
70
+ },
71
+ };
@@ -90,6 +90,9 @@ module.exports = {
90
90
  const { checkWindowsNodeFromWsl } = require('../core/wsl-node-check');
91
91
  await checkWindowsNodeFromWsl();
92
92
 
93
+ const { checkRequiredTools } = require('../core/preflight-tools-check');
94
+ await checkRequiredTools();
95
+
93
96
  // Set debug flag as environment variable for all components
94
97
  if (options.debug) {
95
98
  process.env.WIZZ_DEBUG_MANIFEST = 'true';
@@ -127,6 +130,20 @@ module.exports = {
127
130
  const result = await installer.quickUpdate(config);
128
131
  await prompts.log.success('Quick update complete!');
129
132
  await prompts.log.info(`Updated ${result.moduleCount} modules with preserved settings (${result.modules.join(', ')})`);
133
+ // Quick Update never provisions global skills/MCPs/CLIs (see the
134
+ // isQuickUpdate() gate in core/installer.js). Say so in the final
135
+ // summary too, not just as a menu hint and an in-run log line, so
136
+ // the "no new skills" outcome is never a silent surprise.
137
+ await prompts.log.info(
138
+ 'Skills/MCPs/CLIs não foram alterados (Quick Update). Para provisioná-los, rode install e escolha "Modify Wizz Installation".',
139
+ );
140
+ if (result.warnings > 0) {
141
+ await prompts.log.warn(`Concluído com ${result.warnings} aviso(s). Veja o resumo acima para detalhes.`);
142
+ }
143
+ if (result.errors > 0) {
144
+ await prompts.log.error(`Concluído com ${result.errors} falha(s) real(is). Veja o resumo acima para detalhes.`);
145
+ process.exit(1);
146
+ }
130
147
  process.exit(0);
131
148
  }
132
149
 
@@ -138,9 +155,24 @@ module.exports = {
138
155
  process.exit(0);
139
156
  }
140
157
 
141
- // Check if installation succeeded
142
- if (result && result.success) {
143
- process.exit(0);
158
+ // Check if installation succeeded. Best-effort steps (IDE setup, global
159
+ // skills/MCP/CLI provisioning) never throw, so a real per-step failure
160
+ // used to leave `result.success` unset and the process to exit 0 by
161
+ // falling off the end of this handler with nothing left pending. Make
162
+ // the signal explicit and structured instead (see M24 in the
163
+ // installer audit): warn count is informational; a nonzero error
164
+ // count means a real failure happened and the exit code must reflect it.
165
+ if (result) {
166
+ if (result.warnings > 0) {
167
+ await prompts.log.warn(`Concluído com ${result.warnings} aviso(s). Veja o resumo acima para detalhes.`);
168
+ }
169
+ if (result.errors > 0) {
170
+ await prompts.log.error(`Concluído com ${result.errors} falha(s) real(is). Veja o resumo acima para detalhes.`);
171
+ process.exit(1);
172
+ }
173
+ if (result.success) {
174
+ process.exit(0);
175
+ }
144
176
  }
145
177
  } catch (error) {
146
178
  try {
@@ -0,0 +1,131 @@
1
+ // `wizz trace-report` — resume o arquivo de trace local do roteamento
2
+ // (Tarefa 3.8-E2 da auditoria 360°, ver `_audit/`). Só leitura: agrega o
3
+ // JSONL escrito pelo hook global `tools/hooks/wizz-router-enforce.js`
4
+ // (função `traceLine`, opt-in via WIZZ_TRACE=1) e imprime um resumo.
5
+ //
6
+ // A fórmula do caminho do arquivo replica `getTraceFile()` de
7
+ // tools/hooks/wizz-router-enforce.js (linha ~170) — os dois arquivos vivem
8
+ // em árvores independentes (tools/hooks/ vs tools/installer/), então
9
+ // duplicar as 2 linhas é aceitável; qualquer mudança na fórmula do hook
10
+ // precisa ser espelhada aqui.
11
+
12
+ const os = require('node:os');
13
+ const path = require('node:path');
14
+ const fs = require('../fs-native');
15
+ const prompts = require('../prompts');
16
+
17
+ function getTraceFile() {
18
+ return process.env.WIZZ_TRACE_FILE || path.join(os.homedir(), '.claude', 'wizz-trace.jsonl');
19
+ }
20
+
21
+ // Faz o parse de 1 linha JSONL. Retorna `null` (em vez de lançar) para
22
+ // linhas corrompidas — fail-open, mesmo espírito do resto do framework: o
23
+ // trace nunca pode quebrar quem o lê.
24
+ function parseLine(line) {
25
+ try {
26
+ return JSON.parse(line);
27
+ } catch {
28
+ return null;
29
+ }
30
+ }
31
+
32
+ // Agrega as entradas já parseadas em contadores/período. Função pura, sem
33
+ // I/O, para ser testável isoladamente do disco.
34
+ function aggregate(entries) {
35
+ const byMode = { wizz: 0, flat: 0, null: 0 };
36
+ let trivialCount = 0;
37
+ let warningsCount = 0;
38
+ let firstTs = null;
39
+ let lastTs = null;
40
+
41
+ for (const entry of entries) {
42
+ if (entry.isTrivial) {
43
+ trivialCount++;
44
+ } else {
45
+ const modeKey = entry.mode === 'wizz' || entry.mode === 'flat' ? entry.mode : 'null';
46
+ byMode[modeKey]++;
47
+ if (Array.isArray(entry.warnings) && entry.warnings.length > 0) warningsCount++;
48
+ }
49
+
50
+ if (typeof entry.ts === 'string') {
51
+ if (firstTs === null || entry.ts < firstTs) firstTs = entry.ts;
52
+ if (lastTs === null || entry.ts > lastTs) lastTs = entry.ts;
53
+ }
54
+ }
55
+
56
+ return {
57
+ total: entries.length,
58
+ trivialCount,
59
+ routedCount: entries.length - trivialCount,
60
+ byMode,
61
+ warningsCount,
62
+ firstTs,
63
+ lastTs,
64
+ };
65
+ }
66
+
67
+ function formatSummary(stats, traceFile) {
68
+ const lines = [
69
+ `Arquivo: ${traceFile}`,
70
+ `Total de linhas: ${stats.total}`,
71
+ `Triviais: ${stats.trivialCount}`,
72
+ `Roteados: ${stats.routedCount}`,
73
+ ` modo wizz: ${stats.byMode.wizz}`,
74
+ ` modo flat: ${stats.byMode.flat}`,
75
+ ` modo nulo: ${stats.byMode.null}`,
76
+ `Com warnings: ${stats.warningsCount}`,
77
+ `Período: ${stats.firstTs || '—'} → ${stats.lastTs || '—'}`,
78
+ ];
79
+ if (stats.corruptedCount > 0) {
80
+ lines.push(`Linhas ignoradas (corrompidas): ${stats.corruptedCount}`);
81
+ }
82
+ return lines.join('\n');
83
+ }
84
+
85
+ module.exports = {
86
+ command: 'trace-report',
87
+ description: 'Resume o arquivo local de trace do roteamento (WIZZ_TRACE)',
88
+ options: [],
89
+ action: async (options) => {
90
+ try {
91
+ const traceFile = getTraceFile();
92
+
93
+ if (!(await fs.pathExists(traceFile))) {
94
+ await prompts.log.warn('Nenhum trace encontrado.');
95
+ await prompts.log.message(`Local esperado: ${traceFile}`);
96
+ await prompts.log.message('Rode o install e ligue o medidor de roteamento, ou exporte WIZZ_TRACE=1.');
97
+ process.exit(0);
98
+ return;
99
+ }
100
+
101
+ const raw = await fs.readFile(traceFile, 'utf8');
102
+ const rawLines = raw.split('\n').filter((line) => line.trim().length > 0);
103
+
104
+ const entries = [];
105
+ let corruptedCount = 0;
106
+ for (const line of rawLines) {
107
+ const parsed = parseLine(line);
108
+ if (parsed === null) {
109
+ corruptedCount++;
110
+ } else {
111
+ entries.push(parsed);
112
+ }
113
+ }
114
+
115
+ const stats = { ...aggregate(entries), corruptedCount };
116
+
117
+ await prompts.box(formatSummary(stats, traceFile), 'Wizz Trace Report');
118
+
119
+ process.exit(0);
120
+ } catch (error) {
121
+ await prompts.log.error(`Trace report failed: ${error.message}`);
122
+ if (process.env.WIZZ_DEBUG) {
123
+ await prompts.log.message(error.stack);
124
+ }
125
+ process.exit(1);
126
+ }
127
+ },
128
+ // Exportado só para teste unitário direto da agregação, sem precisar
129
+ // spawnar o processo pra cada caso de borda.
130
+ _internal: { aggregate, parseLine, formatSummary },
131
+ };
@@ -18,6 +18,7 @@ class Config {
18
18
  quickUpdate,
19
19
  channelOptions,
20
20
  setOverrides,
21
+ traceEnabled,
21
22
  }) {
22
23
  this.directory = directory;
23
24
  this.modules = Object.freeze([...modules]);
@@ -49,6 +50,13 @@ class Config {
49
50
  // Intentionally NOT integrated with the prompt/template/schema flow; see
50
51
  // `tools/installer/set-overrides.js` for the rationale and tradeoffs.
51
52
  this.setOverrides = setOverrides || {};
53
+ // 3.8-E1: whether the user opted into the local routing-trace measurement
54
+ // (WIZZ_TRACE=1, persisted into .claude/settings.local.json by the UI
55
+ // layer BEFORE install() runs — see ui.js#promptTraceOptIn). Tri-state on
56
+ // purpose: `null` means "never asked" (quick-update, update, or a module
57
+ // set that doesn't include bmm) so renderInstallSummary can omit the line
58
+ // entirely instead of misreporting an unasked question as "desligado".
59
+ this.traceEnabled = traceEnabled === undefined ? null : traceEnabled;
52
60
  Object.freeze(this);
53
61
  }
54
62
 
@@ -78,6 +86,7 @@ class Config {
78
86
  quickUpdate: userInput._quickUpdate || false,
79
87
  channelOptions: userInput.channelOptions || null,
80
88
  setOverrides: userInput.setOverrides || {},
89
+ traceEnabled: userInput.traceEnabled === undefined ? null : userInput.traceEnabled,
81
90
  });
82
91
  }
83
92