wizz-method 1.3.2 → 1.4.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.
Files changed (225) hide show
  1. package/.claude-plugin/marketplace.json +4 -4
  2. package/README.md +1 -1
  3. package/evals/routing/dataset.json +290 -0
  4. package/evals/routing/run-routing-eval.mjs +89 -0
  5. package/package.json +11 -3
  6. package/skills-registry.yaml +72 -25
  7. package/src/modules/wizz/agents/wizz-ads/SKILL.md +1 -1
  8. package/src/modules/wizz/agents/wizz-copy/SKILL.md +1 -1
  9. package/src/modules/wizz/agents/wizz-designer/SKILL.md +6 -8
  10. package/src/modules/wizz/agents/wizz-growth/SKILL.md +1 -1
  11. package/src/modules/wizz/agents/wizz-maestro/SKILL.md +6 -5
  12. package/src/modules/wizz/agents/wizz-memoria/SKILL.md +1 -1
  13. package/src/modules/wizz/agents/wizz-qa/SKILL.md +1 -1
  14. package/src/modules/wizz/agents/wizz-seo/SKILL.md +1 -1
  15. package/src/modules/wizz/agents/wizz-social/SKILL.md +1 -1
  16. package/src/skills-lib/ai-product-design/SKILL.md +85 -0
  17. package/src/skills-lib/ai-product-design/references/LICENSE +21 -0
  18. package/src/skills-lib/ai-product-design/references/ai-alignment-reasoning/bias-detection-design/SKILL.md +37 -0
  19. package/src/skills-lib/ai-product-design/references/ai-alignment-reasoning/consent-and-agency/SKILL.md +37 -0
  20. package/src/skills-lib/ai-product-design/references/ai-alignment-reasoning/escalation-design/SKILL.md +40 -0
  21. package/src/skills-lib/ai-product-design/references/ai-alignment-reasoning/guardrail-design/SKILL.md +36 -0
  22. package/src/skills-lib/ai-product-design/references/ai-alignment-reasoning/harm-anticipation/SKILL.md +108 -0
  23. package/src/skills-lib/ai-product-design/references/ai-alignment-reasoning/transparency-patterns/SKILL.md +36 -0
  24. package/src/skills-lib/ai-product-design/references/ai-alignment-reasoning/trust-calibration/SKILL.md +102 -0
  25. package/src/skills-lib/ai-product-design/references/ai-alignment-reasoning/value-specification/SKILL.md +39 -0
  26. package/src/skills-lib/ai-product-design/references/design-agent-orchestration/agent-role-design/SKILL.md +37 -0
  27. package/src/skills-lib/ai-product-design/references/design-agent-orchestration/failure-recovery/SKILL.md +37 -0
  28. package/src/skills-lib/ai-product-design/references/design-agent-orchestration/handoff-protocols/SKILL.md +45 -0
  29. package/src/skills-lib/ai-product-design/references/design-agent-orchestration/human-in-the-loop/SKILL.md +39 -0
  30. package/src/skills-lib/ai-product-design/references/design-agent-orchestration/observability-design/SKILL.md +48 -0
  31. package/src/skills-lib/ai-product-design/references/design-agent-orchestration/state-management/SKILL.md +95 -0
  32. package/src/skills-lib/ai-product-design/references/design-agent-orchestration/task-decomposition/SKILL.md +36 -0
  33. package/src/skills-lib/ai-product-design/references/evaluation/comparative-evaluation/SKILL.md +39 -0
  34. package/src/skills-lib/ai-product-design/references/evaluation/failure-taxonomy/SKILL.md +47 -0
  35. package/src/skills-lib/ai-product-design/references/evaluation/heuristic-evaluation-ai/SKILL.md +46 -0
  36. package/src/skills-lib/ai-product-design/references/evaluation/longitudinal-measurement/SKILL.md +38 -0
  37. package/src/skills-lib/ai-product-design/references/evaluation/output-quality-rubrics/SKILL.md +41 -0
  38. package/src/skills-lib/ai-product-design/references/evaluation/task-success-metrics/SKILL.md +35 -0
  39. package/src/skills-lib/ai-product-design/references/evaluation/user-satisfaction-signals/SKILL.md +50 -0
  40. package/src/skills-lib/ai-product-design/references/model-interaction-design/context-window-design/SKILL.md +28 -0
  41. package/src/skills-lib/ai-product-design/references/model-interaction-design/conversation-patterns/SKILL.md +37 -0
  42. package/src/skills-lib/ai-product-design/references/model-interaction-design/feedback-loops/SKILL.md +35 -0
  43. package/src/skills-lib/ai-product-design/references/model-interaction-design/frustration-detection/SKILL.md +91 -0
  44. package/src/skills-lib/ai-product-design/references/model-interaction-design/generative-ui/SKILL.md +34 -0
  45. package/src/skills-lib/ai-product-design/references/model-interaction-design/mixed-initiative-flow/SKILL.md +39 -0
  46. package/src/skills-lib/ai-product-design/references/model-interaction-design/multimodal-orchestration/SKILL.md +94 -0
  47. package/src/skills-lib/ai-product-design/references/model-interaction-design/progressive-disclosure/SKILL.md +33 -0
  48. package/src/skills-lib/ai-product-design/references/prompt-architecture/chain-of-thought-design/SKILL.md +45 -0
  49. package/src/skills-lib/ai-product-design/references/prompt-architecture/constraint-specification/SKILL.md +50 -0
  50. package/src/skills-lib/ai-product-design/references/prompt-architecture/context-engineering/SKILL.md +45 -0
  51. package/src/skills-lib/ai-product-design/references/prompt-architecture/few-shot-patterns/SKILL.md +47 -0
  52. package/src/skills-lib/ai-product-design/references/prompt-architecture/prompt-versioning/SKILL.md +42 -0
  53. package/src/skills-lib/ai-product-design/references/prompt-architecture/system-prompt-structure/SKILL.md +50 -0
  54. package/src/skills-lib/ai-product-design/references/prompt-architecture/template-design/SKILL.md +42 -0
  55. package/src/skills-lib/ai-product-design/references/system-behavior-shaping/behavioral-consistency/SKILL.md +36 -0
  56. package/src/skills-lib/ai-product-design/references/system-behavior-shaping/cultural-adaptation/SKILL.md +38 -0
  57. package/src/skills-lib/ai-product-design/references/system-behavior-shaping/domain-voice/SKILL.md +51 -0
  58. package/src/skills-lib/ai-product-design/references/system-behavior-shaping/emotional-design/SKILL.md +51 -0
  59. package/src/skills-lib/ai-product-design/references/system-behavior-shaping/error-personality/SKILL.md +45 -0
  60. package/src/skills-lib/ai-product-design/references/system-behavior-shaping/persona-architecture/SKILL.md +38 -0
  61. package/src/skills-lib/ai-product-design/references/system-behavior-shaping/tone-calibration/SKILL.md +39 -0
  62. package/src/skills-lib/algorithmic-art/LICENSE.txt +202 -0
  63. package/src/skills-lib/algorithmic-art/SKILL.md +405 -0
  64. package/src/skills-lib/algorithmic-art/templates/generator_template.js +223 -0
  65. package/src/skills-lib/algorithmic-art/templates/viewer.html +599 -0
  66. package/src/skills-lib/animate/README.md +41 -0
  67. package/src/skills-lib/animate/SKILL.md +179 -0
  68. package/src/skills-lib/animate/examples/animate-height.tsx +75 -0
  69. package/src/skills-lib/animate/examples/app-store-card.tsx +164 -0
  70. package/src/skills-lib/animate/examples/card-hover.tsx +79 -0
  71. package/src/skills-lib/animate/examples/feedback-popover.tsx +119 -0
  72. package/src/skills-lib/animate/examples/multi-step-flow.tsx +128 -0
  73. package/src/skills-lib/animate/examples/shared-layout.tsx +64 -0
  74. package/src/skills-lib/animate/examples/text-reveal.tsx +70 -0
  75. package/src/skills-lib/animate/examples/toast-stacking.tsx +95 -0
  76. package/src/skills-lib/animate/references/css-animations.md +232 -0
  77. package/src/skills-lib/animate/references/easing-and-timing.md +105 -0
  78. package/src/skills-lib/animate/references/framer-motion.md +356 -0
  79. package/src/skills-lib/animate/references/performance-accessibility.md +185 -0
  80. package/src/skills-lib/auth-and-secrets/SKILL.md +38 -10
  81. package/src/skills-lib/canvas-design/LICENSE.txt +202 -0
  82. package/src/skills-lib/canvas-design/SKILL.md +130 -0
  83. package/src/skills-lib/canvas-design/canvas-fonts/ArsenalSC-OFL.txt +93 -0
  84. package/src/skills-lib/canvas-design/canvas-fonts/ArsenalSC-Regular.ttf +0 -0
  85. package/src/skills-lib/canvas-design/canvas-fonts/BigShoulders-Bold.ttf +0 -0
  86. package/src/skills-lib/canvas-design/canvas-fonts/BigShoulders-OFL.txt +93 -0
  87. package/src/skills-lib/canvas-design/canvas-fonts/BigShoulders-Regular.ttf +0 -0
  88. package/src/skills-lib/canvas-design/canvas-fonts/Boldonse-OFL.txt +93 -0
  89. package/src/skills-lib/canvas-design/canvas-fonts/Boldonse-Regular.ttf +0 -0
  90. package/src/skills-lib/canvas-design/canvas-fonts/BricolageGrotesque-Bold.ttf +0 -0
  91. package/src/skills-lib/canvas-design/canvas-fonts/BricolageGrotesque-OFL.txt +93 -0
  92. package/src/skills-lib/canvas-design/canvas-fonts/BricolageGrotesque-Regular.ttf +0 -0
  93. package/src/skills-lib/canvas-design/canvas-fonts/CrimsonPro-Bold.ttf +0 -0
  94. package/src/skills-lib/canvas-design/canvas-fonts/CrimsonPro-Italic.ttf +0 -0
  95. package/src/skills-lib/canvas-design/canvas-fonts/CrimsonPro-OFL.txt +93 -0
  96. package/src/skills-lib/canvas-design/canvas-fonts/CrimsonPro-Regular.ttf +0 -0
  97. package/src/skills-lib/canvas-design/canvas-fonts/DMMono-OFL.txt +93 -0
  98. package/src/skills-lib/canvas-design/canvas-fonts/DMMono-Regular.ttf +0 -0
  99. package/src/skills-lib/canvas-design/canvas-fonts/EricaOne-OFL.txt +94 -0
  100. package/src/skills-lib/canvas-design/canvas-fonts/EricaOne-Regular.ttf +0 -0
  101. package/src/skills-lib/canvas-design/canvas-fonts/GeistMono-Bold.ttf +0 -0
  102. package/src/skills-lib/canvas-design/canvas-fonts/GeistMono-OFL.txt +93 -0
  103. package/src/skills-lib/canvas-design/canvas-fonts/GeistMono-Regular.ttf +0 -0
  104. package/src/skills-lib/canvas-design/canvas-fonts/Gloock-OFL.txt +93 -0
  105. package/src/skills-lib/canvas-design/canvas-fonts/Gloock-Regular.ttf +0 -0
  106. package/src/skills-lib/canvas-design/canvas-fonts/IBMPlexMono-Bold.ttf +0 -0
  107. package/src/skills-lib/canvas-design/canvas-fonts/IBMPlexMono-OFL.txt +93 -0
  108. package/src/skills-lib/canvas-design/canvas-fonts/IBMPlexMono-Regular.ttf +0 -0
  109. package/src/skills-lib/canvas-design/canvas-fonts/IBMPlexSerif-Bold.ttf +0 -0
  110. package/src/skills-lib/canvas-design/canvas-fonts/IBMPlexSerif-BoldItalic.ttf +0 -0
  111. package/src/skills-lib/canvas-design/canvas-fonts/IBMPlexSerif-Italic.ttf +0 -0
  112. package/src/skills-lib/canvas-design/canvas-fonts/IBMPlexSerif-Regular.ttf +0 -0
  113. package/src/skills-lib/canvas-design/canvas-fonts/InstrumentSans-Bold.ttf +0 -0
  114. package/src/skills-lib/canvas-design/canvas-fonts/InstrumentSans-BoldItalic.ttf +0 -0
  115. package/src/skills-lib/canvas-design/canvas-fonts/InstrumentSans-Italic.ttf +0 -0
  116. package/src/skills-lib/canvas-design/canvas-fonts/InstrumentSans-OFL.txt +93 -0
  117. package/src/skills-lib/canvas-design/canvas-fonts/InstrumentSans-Regular.ttf +0 -0
  118. package/src/skills-lib/canvas-design/canvas-fonts/InstrumentSerif-Italic.ttf +0 -0
  119. package/src/skills-lib/canvas-design/canvas-fonts/InstrumentSerif-Regular.ttf +0 -0
  120. package/src/skills-lib/canvas-design/canvas-fonts/Italiana-OFL.txt +93 -0
  121. package/src/skills-lib/canvas-design/canvas-fonts/Italiana-Regular.ttf +0 -0
  122. package/src/skills-lib/canvas-design/canvas-fonts/JetBrainsMono-Bold.ttf +0 -0
  123. package/src/skills-lib/canvas-design/canvas-fonts/JetBrainsMono-OFL.txt +93 -0
  124. package/src/skills-lib/canvas-design/canvas-fonts/JetBrainsMono-Regular.ttf +0 -0
  125. package/src/skills-lib/canvas-design/canvas-fonts/Jura-Light.ttf +0 -0
  126. package/src/skills-lib/canvas-design/canvas-fonts/Jura-Medium.ttf +0 -0
  127. package/src/skills-lib/canvas-design/canvas-fonts/Jura-OFL.txt +93 -0
  128. package/src/skills-lib/canvas-design/canvas-fonts/LibreBaskerville-OFL.txt +93 -0
  129. package/src/skills-lib/canvas-design/canvas-fonts/LibreBaskerville-Regular.ttf +0 -0
  130. package/src/skills-lib/canvas-design/canvas-fonts/Lora-Bold.ttf +0 -0
  131. package/src/skills-lib/canvas-design/canvas-fonts/Lora-BoldItalic.ttf +0 -0
  132. package/src/skills-lib/canvas-design/canvas-fonts/Lora-Italic.ttf +0 -0
  133. package/src/skills-lib/canvas-design/canvas-fonts/Lora-OFL.txt +93 -0
  134. package/src/skills-lib/canvas-design/canvas-fonts/Lora-Regular.ttf +0 -0
  135. package/src/skills-lib/canvas-design/canvas-fonts/NationalPark-Bold.ttf +0 -0
  136. package/src/skills-lib/canvas-design/canvas-fonts/NationalPark-OFL.txt +93 -0
  137. package/src/skills-lib/canvas-design/canvas-fonts/NationalPark-Regular.ttf +0 -0
  138. package/src/skills-lib/canvas-design/canvas-fonts/NothingYouCouldDo-OFL.txt +93 -0
  139. package/src/skills-lib/canvas-design/canvas-fonts/NothingYouCouldDo-Regular.ttf +0 -0
  140. package/src/skills-lib/canvas-design/canvas-fonts/Outfit-Bold.ttf +0 -0
  141. package/src/skills-lib/canvas-design/canvas-fonts/Outfit-OFL.txt +93 -0
  142. package/src/skills-lib/canvas-design/canvas-fonts/Outfit-Regular.ttf +0 -0
  143. package/src/skills-lib/canvas-design/canvas-fonts/PixelifySans-Medium.ttf +0 -0
  144. package/src/skills-lib/canvas-design/canvas-fonts/PixelifySans-OFL.txt +93 -0
  145. package/src/skills-lib/canvas-design/canvas-fonts/PoiretOne-OFL.txt +93 -0
  146. package/src/skills-lib/canvas-design/canvas-fonts/PoiretOne-Regular.ttf +0 -0
  147. package/src/skills-lib/canvas-design/canvas-fonts/RedHatMono-Bold.ttf +0 -0
  148. package/src/skills-lib/canvas-design/canvas-fonts/RedHatMono-OFL.txt +93 -0
  149. package/src/skills-lib/canvas-design/canvas-fonts/RedHatMono-Regular.ttf +0 -0
  150. package/src/skills-lib/canvas-design/canvas-fonts/Silkscreen-OFL.txt +93 -0
  151. package/src/skills-lib/canvas-design/canvas-fonts/Silkscreen-Regular.ttf +0 -0
  152. package/src/skills-lib/canvas-design/canvas-fonts/SmoochSans-Medium.ttf +0 -0
  153. package/src/skills-lib/canvas-design/canvas-fonts/SmoochSans-OFL.txt +93 -0
  154. package/src/skills-lib/canvas-design/canvas-fonts/Tektur-Medium.ttf +0 -0
  155. package/src/skills-lib/canvas-design/canvas-fonts/Tektur-OFL.txt +93 -0
  156. package/src/skills-lib/canvas-design/canvas-fonts/Tektur-Regular.ttf +0 -0
  157. package/src/skills-lib/canvas-design/canvas-fonts/WorkSans-Bold.ttf +0 -0
  158. package/src/skills-lib/canvas-design/canvas-fonts/WorkSans-BoldItalic.ttf +0 -0
  159. package/src/skills-lib/canvas-design/canvas-fonts/WorkSans-Italic.ttf +0 -0
  160. package/src/skills-lib/canvas-design/canvas-fonts/WorkSans-OFL.txt +93 -0
  161. package/src/skills-lib/canvas-design/canvas-fonts/WorkSans-Regular.ttf +0 -0
  162. package/src/skills-lib/canvas-design/canvas-fonts/YoungSerif-OFL.txt +93 -0
  163. package/src/skills-lib/canvas-design/canvas-fonts/YoungSerif-Regular.ttf +0 -0
  164. package/src/skills-lib/design-motion-principles/SKILL.md +122 -0
  165. package/src/skills-lib/design-motion-principles/references/accessibility.md +52 -0
  166. package/src/skills-lib/design-motion-principles/references/anti-checklist.md +274 -0
  167. package/src/skills-lib/design-motion-principles/references/audit-checklist.md +137 -0
  168. package/src/skills-lib/design-motion-principles/references/creation-gotchas.md +36 -0
  169. package/src/skills-lib/design-motion-principles/references/demo-shell.html +275 -0
  170. package/src/skills-lib/design-motion-principles/references/emil-kowalski.md +121 -0
  171. package/src/skills-lib/design-motion-principles/references/jakub-krehel.md +80 -0
  172. package/src/skills-lib/design-motion-principles/references/jhey-tompkins.md +122 -0
  173. package/src/skills-lib/design-motion-principles/references/motion-cookbook.md +529 -0
  174. package/src/skills-lib/design-motion-principles/references/output-format.md +346 -0
  175. package/src/skills-lib/design-motion-principles/references/performance.md +82 -0
  176. package/src/skills-lib/design-motion-principles/references/report-template.html +1006 -0
  177. package/src/skills-lib/design-motion-principles/workflows/audit.md +203 -0
  178. package/src/skills-lib/design-motion-principles/workflows/create.md +87 -0
  179. package/src/skills-lib/desktop-security/SKILL.md +35 -4
  180. package/src/skills-lib/premium-landing-ui-researcher/SKILL.md +52 -2083
  181. package/src/skills-lib/premium-landing-ui-researcher/references/audit-protocol.md +124 -0
  182. package/src/skills-lib/premium-landing-ui-researcher/references/component-sources.md +336 -0
  183. package/src/skills-lib/premium-landing-ui-researcher/references/core-goal.md +62 -0
  184. package/src/skills-lib/premium-landing-ui-researcher/references/dashboard-and-portfolio-modes.md +92 -0
  185. package/src/skills-lib/premium-landing-ui-researcher/references/handoffs.md +55 -0
  186. package/src/skills-lib/premium-landing-ui-researcher/references/landing-page-strategy.md +227 -0
  187. package/src/skills-lib/premium-landing-ui-researcher/references/mandatory-process.md +36 -0
  188. package/src/skills-lib/premium-landing-ui-researcher/references/output-format-and-quality.md +129 -0
  189. package/src/skills-lib/premium-landing-ui-researcher/references/prompt-templates.md +206 -0
  190. package/src/skills-lib/premium-landing-ui-researcher/references/site-levels.md +515 -0
  191. package/src/skills-lib/premium-landing-ui-researcher/references/source-first-protocol.md +144 -0
  192. package/src/skills-lib/premium-landing-ui-researcher/references/source-links.md +39 -0
  193. package/src/skills-lib/premium-landing-ui-researcher/references/stack-and-visual-direction.md +118 -0
  194. package/src/skills-lib/taste-skill/SKILL.md +33 -1177
  195. package/src/skills-lib/taste-skill/references/anti-slop-tells.md +110 -0
  196. package/src/skills-lib/taste-skill/references/architecture-conventions.md +39 -0
  197. package/src/skills-lib/taste-skill/references/block-library.md +61 -0
  198. package/src/skills-lib/taste-skill/references/brief-and-dials.md +89 -0
  199. package/src/skills-lib/taste-skill/references/dark-mode.md +23 -0
  200. package/src/skills-lib/taste-skill/references/design-directives.md +191 -0
  201. package/src/skills-lib/taste-skill/references/design-systems.md +267 -0
  202. package/src/skills-lib/taste-skill/references/motion-patterns.md +167 -0
  203. package/src/skills-lib/taste-skill/references/pattern-vocabulary.md +78 -0
  204. package/src/skills-lib/taste-skill/references/performance-a11y.md +33 -0
  205. package/src/skills-lib/taste-skill/references/preflight-checklist.md +73 -0
  206. package/src/skills-lib/taste-skill/references/redesign-protocol.md +52 -0
  207. package/src/skills-lib/web-security/SKILL.md +74 -6
  208. package/src/skills-lib/wizz-router/SKILL.md +21 -243
  209. package/src/skills-lib/wizz-router/references/auditoria-360.md +21 -0
  210. package/src/skills-lib/wizz-router/references/routing-table-flat.md +95 -0
  211. package/src/squads/advisory-board/agents/ray-dalio.md +0 -20
  212. package/tools/hooks/README.md +17 -0
  213. package/tools/hooks/security-defensive-context.js +70 -0
  214. package/tools/hooks/session-rules.js +38 -0
  215. package/tools/hooks/wizz-router-enforce.js +188 -0
  216. package/tools/installer/modules/skills-lib.js +70 -1
  217. package/tools/sync-global.mjs +84 -0
  218. package/.claude/settings.local.json +0 -8
  219. package/src/core-skills/wizz-party-mode/scripts/__pycache__/resolve_party.cpython-314.pyc +0 -0
  220. package/src/skills-lib/ui-ux-pro-max/scripts/__pycache__/core.cpython-314.pyc +0 -0
  221. package/src/skills-lib/ui-ux-pro-max/scripts/__pycache__/design_system.cpython-314.pyc +0 -0
  222. package/src/skills-lib/ui-ux-pro-max/scripts/__pycache__/search.cpython-314.pyc +0 -0
  223. package/src/skills-lib/ui-ux-pro-max/scripts/graphify-out/cache/0964cef300f753b5cee0cc49777ca97035c85d45c212099405d9ee4da36e523f.json +0 -1
  224. package/src/skills-lib/ui-ux-pro-max/scripts/graphify-out/cache/21a40f6810c3a6f17acc3580f106171daf78c7b41bbd066bc80448a821ea0adf.json +0 -1
  225. package/src/skills-lib/ui-ux-pro-max/scripts/graphify-out/cache/69ea15a020ac81b8459e37ef63654398a50c1035fc01c43d8069df217389f7f3.json +0 -1
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "wizz-method",
3
3
  "owner": {
4
- "name": "Brian (Wizz) Madison"
4
+ "name": "Wizz! comms."
5
5
  },
6
- "description": "Breakthrough Method of Agile AI-driven Development — a full-lifecycle framework with agents and workflows for analysis, planning, architecture, and implementation.",
6
+ "description": "Wizz Method — a full-lifecycle AI development framework with agents and workflows for analysis, planning, architecture, and implementation. Independent fork of BMAD Method.",
7
7
  "license": "MIT",
8
- "homepage": "https://github.com/bmad-code-org/WIZZ-METHOD",
9
- "repository": "https://github.com/bmad-code-org/WIZZ-METHOD",
8
+ "homepage": "https://method.wizzcomms.com",
9
+ "repository": "https://github.com/wizzcomms/wizz-method",
10
10
  "keywords": ["wizz", "agile", "ai", "orchestrator", "development", "methodology", "agents"],
11
11
  "plugins": [
12
12
  {
package/README.md CHANGED
@@ -59,7 +59,7 @@ Sem TTY, o idioma padrão é "Português (BR)". Use `--lang` ou a variável `WIZ
59
59
 
60
60
  ## Origem
61
61
 
62
- O Wizz Method é um fork independente do [Wizz Method](https://github.com/bmad-code-org/WIZZ-METHOD), mantido pela Wizz! comms. O motor continua o WIZZ: workflows, agentes de dev e produto e a arquitetura de skills. A camada Wizz adiciona marca, idioma, roteamento e os 7 agentes de agência por cima desse motor. Crédito e agradecimento ao projeto original.
62
+ O Wizz Method é um fork independente do [BMAD Method](https://github.com/bmad-code-org/BMAD-METHOD), mantido pela Wizz! comms. O motor continua o BMAD: workflows, agentes de dev e produto e a arquitetura de skills. A camada Wizz adiciona marca, idioma, roteamento e os 7 agentes de agência por cima desse motor. Crédito e agradecimento ao projeto original.
63
63
 
64
64
  ## Documentação
65
65
 
@@ -0,0 +1,290 @@
1
+ [
2
+ {
3
+ "id": "t01",
4
+ "prompt": "oi",
5
+ "expected": "trivial",
6
+ "note": "saudação simples, sem ação"
7
+ },
8
+ {
9
+ "id": "t02",
10
+ "prompt": "obrigado",
11
+ "expected": "trivial",
12
+ "note": "agradecimento puro"
13
+ },
14
+ {
15
+ "id": "t03",
16
+ "prompt": "sim",
17
+ "expected": "trivial",
18
+ "note": "resposta curta (sim/não/ok)"
19
+ },
20
+ {
21
+ "id": "t04",
22
+ "prompt": "não",
23
+ "expected": "trivial",
24
+ "note": "resposta curta (sim/não/ok)"
25
+ },
26
+ {
27
+ "id": "t05",
28
+ "prompt": "ok",
29
+ "expected": "trivial",
30
+ "note": "resposta curta (sim/não/ok)"
31
+ },
32
+ {
33
+ "id": "t06",
34
+ "prompt": "o que foi feito?",
35
+ "expected": "trivial",
36
+ "note": "pergunta de status, sem ação técnica"
37
+ },
38
+ {
39
+ "id": "t07",
40
+ "prompt": "trocar 'envie' por 'enviar' na linha 42",
41
+ "expected": "trivial",
42
+ "note": "typo/rename de 1 linha"
43
+ },
44
+ {
45
+ "id": "t08",
46
+ "prompt": "rebatiza Home para Landing",
47
+ "expected": "trivial",
48
+ "note": "rename simples, 1 arquivo"
49
+ },
50
+ {
51
+ "id": "t09",
52
+ "prompt": "/help",
53
+ "expected": "trivial",
54
+ "note": "slash command"
55
+ },
56
+ {
57
+ "id": "t10",
58
+ "prompt": "/config",
59
+ "expected": "trivial",
60
+ "note": "slash command"
61
+ },
62
+ {
63
+ "id": "t11",
64
+ "prompt": "como tá o deploy?",
65
+ "expected": "trivial",
66
+ "note": "pergunta conversacional, sem ação"
67
+ },
68
+ {
69
+ "id": "t12",
70
+ "prompt": "tudo bem?",
71
+ "expected": "trivial",
72
+ "note": "conversação pura"
73
+ },
74
+ {
75
+ "id": "t13",
76
+ "prompt": "link?",
77
+ "expected": "trivial",
78
+ "note": "pergunta muito curta, sem verbo de ação"
79
+ },
80
+ {
81
+ "id": "t14",
82
+ "prompt": "esqueci a senha",
83
+ "expected": "trivial",
84
+ "note": "frase curta sem ação técnica (info only)"
85
+ },
86
+ {
87
+ "id": "a01",
88
+ "prompt": "redesenha o hero da landing com a nova brand",
89
+ "expected": "agent:designer",
90
+ "note": "UI update, 1 area, pontual"
91
+ },
92
+ {
93
+ "id": "a02",
94
+ "prompt": "cria um card component pra portfolio",
95
+ "expected": "agent:designer",
96
+ "note": "componente isolado, designer"
97
+ },
98
+ {
99
+ "id": "a03",
100
+ "prompt": "anima o scroll de entrada da página",
101
+ "expected": "agent:designer",
102
+ "note": "motion/animation, 1 area"
103
+ },
104
+ {
105
+ "id": "a04",
106
+ "prompt": "escreve uma headline pra vender este plano",
107
+ "expected": "agent:copy",
108
+ "note": "copy de venda, 1 area, focado"
109
+ },
110
+ {
111
+ "id": "a05",
112
+ "prompt": "melhora o email de onboarding",
113
+ "expected": "agent:copy",
114
+ "note": "email copy, 1 area"
115
+ },
116
+ {
117
+ "id": "a06",
118
+ "prompt": "cria 3 variações de CTA pra testar",
119
+ "expected": "agent:copy",
120
+ "note": "copy de botão, A/B ready, 1 area"
121
+ },
122
+ {
123
+ "id": "a07",
124
+ "prompt": "faz auditoria SEO do site",
125
+ "expected": "agent:seo",
126
+ "note": "auditoria, 1 area"
127
+ },
128
+ {
129
+ "id": "a08",
130
+ "prompt": "adiciona schema markup no produto",
131
+ "expected": "agent:seo",
132
+ "note": "schema SEO, 1 area, técnico"
133
+ },
134
+ {
135
+ "id": "a09",
136
+ "prompt": "otimiza as meta descriptions",
137
+ "expected": "agent:seo",
138
+ "note": "SEO on-page, 1 area"
139
+ },
140
+ {
141
+ "id": "a10",
142
+ "prompt": "como melhorar a taxa de conversão do signup?",
143
+ "expected": "agent:growth",
144
+ "note": "CRO question, 1 area, lightweight"
145
+ },
146
+ {
147
+ "id": "a11",
148
+ "prompt": "qual o melhor preço pra este feature?",
149
+ "expected": "agent:growth",
150
+ "note": "pricing, 1 area"
151
+ },
152
+ {
153
+ "id": "a12",
154
+ "prompt": "plano pra reduzir churn",
155
+ "expected": "agent:growth",
156
+ "note": "churn analysis, 1 area, mas esperaria maestro por depth — porém 'plano' é leve: just brainstorm; se fosse 'executa o plano' seria maestro"
157
+ },
158
+ {
159
+ "id": "a13",
160
+ "prompt": "cria post pra LinkedIn sobre o lançamento",
161
+ "expected": "agent:social",
162
+ "note": "social copy, 1 area"
163
+ },
164
+ {
165
+ "id": "a14",
166
+ "prompt": "escreve copy pra Instagram story",
167
+ "expected": "agent:social",
168
+ "note": "social content, 1 area"
169
+ },
170
+ {
171
+ "id": "a15",
172
+ "prompt": "cria variações de ad criativo pra Meta",
173
+ "expected": "agent:ads",
174
+ "note": "paid ads, 1 area, copywriting"
175
+ },
176
+ {
177
+ "id": "a16",
178
+ "prompt": "setup de tracking no Google Ads",
179
+ "expected": "agent:ads",
180
+ "note": "ads technical, 1 area"
181
+ },
182
+ {
183
+ "id": "a17",
184
+ "prompt": "roda teste E2E do fluxo de checkout",
185
+ "expected": "agent:qa",
186
+ "note": "QA, 1 area, pontual"
187
+ },
188
+ {
189
+ "id": "a18",
190
+ "prompt": "verifica visualmente a responsividade do site",
191
+ "expected": "agent:qa",
192
+ "note": "visual QA, 1 area"
193
+ },
194
+ {
195
+ "id": "a19",
196
+ "prompt": "anota que definimos não fazer autenticação social por hora",
197
+ "expected": "agent:memoria",
198
+ "note": "memory, decisão registrada"
199
+ },
200
+ {
201
+ "id": "a20",
202
+ "prompt": "salva a decisão sobre pricing em tiers",
203
+ "expected": "agent:memoria",
204
+ "note": "memory, arquitetura de preço"
205
+ },
206
+ {
207
+ "id": "a21",
208
+ "prompt": "corrige o bug de logout no mobile",
209
+ "expected": "agent:dev",
210
+ "note": "bug fix, 1 arquivo, pontual"
211
+ },
212
+ {
213
+ "id": "a22",
214
+ "prompt": "ajusta a cor do botão secundário",
215
+ "expected": "agent:dev",
216
+ "note": "CSS fix, 1 arquivo"
217
+ },
218
+ {
219
+ "id": "m01",
220
+ "prompt": "cria a landing completa, escreve a copy de venda e configura o tracking",
221
+ "expected": "maestro",
222
+ "note": "3 áreas (designer, copy, growth/ads), artefato alto"
223
+ },
224
+ {
225
+ "id": "m02",
226
+ "prompt": "novo produto do zero: UI, docs, schema SEO, post de lançamento",
227
+ "expected": "maestro",
228
+ "note": "4 áreas (designer, dev, seo, social), multi-passo alto"
229
+ },
230
+ {
231
+ "id": "m03",
232
+ "prompt": "auditoria completa do site: performance, SEO, segurança, acessibilidade",
233
+ "expected": "maestro",
234
+ "note": "2+ áreas, complexidade alta, relatório merecedor de memória"
235
+ },
236
+ {
237
+ "id": "m04",
238
+ "prompt": "redesenha o onboarding, reescreve os emails, testa tudo E2E",
239
+ "expected": "maestro",
240
+ "note": "3 áreas (designer, copy, qa), integrado"
241
+ },
242
+ {
243
+ "id": "m05",
244
+ "prompt": "plano de crescimento: pricing, copy, anúncios, CRO do signup",
245
+ "expected": "maestro",
246
+ "note": "3-4 áreas (growth, copy, ads), estratégico"
247
+ },
248
+ {
249
+ "id": "m06",
250
+ "prompt": "refactor de infra: banco de dados, APIs, deploy, monitoria",
251
+ "expected": "maestro",
252
+ "note": "1 área (dev) mas multi-passo pesado, arquitetura alta"
253
+ },
254
+ {
255
+ "id": "m07",
256
+ "prompt": "integra pagamento: back, front, testes, comunicação com cliente",
257
+ "expected": "maestro",
258
+ "note": "1 area (dev) mas multi-passo pesado, requer planning"
259
+ },
260
+ {
261
+ "id": "m08",
262
+ "prompt": "melhora de churn: análise, copy de reativação, anúncios, UI de upgrade",
263
+ "expected": "maestro",
264
+ "note": "3-4 áreas (growth, copy, ads, designer), integrado"
265
+ },
266
+ {
267
+ "id": "m09",
268
+ "prompt": "lançamento beta: site, emails, social, ads, suporte inicial",
269
+ "expected": "maestro",
270
+ "note": "4+ áreas (designer, copy, social, ads), event-driven"
271
+ },
272
+ {
273
+ "id": "m10",
274
+ "prompt": "internacionalização: tradução completa, schema por locale, testes",
275
+ "expected": "maestro",
276
+ "note": "2+ áreas (dev, seo, qa), multi-passo pesado"
277
+ },
278
+ {
279
+ "id": "m11",
280
+ "prompt": "migração de plataforma: arquitetura, testes, rollout, suporte",
281
+ "expected": "maestro",
282
+ "note": "1 área (dev) mas crítico, multi-passo, requer planning e memória"
283
+ },
284
+ {
285
+ "id": "m12",
286
+ "prompt": "estratégia de referral: programa, UI, emails, tracking, análise",
287
+ "expected": "maestro",
288
+ "note": "4+ áreas (growth, designer, copy, ads), artefato alto"
289
+ }
290
+ ]
@@ -0,0 +1,89 @@
1
+ // run-routing-eval.mjs — avalia o roteamento do Wizz Method contra
2
+ // evals/routing/dataset.json.
3
+ //
4
+ // Dois níveis:
5
+ // 1. DETERMINÍSTICO (default, rápido, roda em CI): valida o gate isTrivial()
6
+ // do hook wizz-router-enforce contra os rótulos do dataset.
7
+ // - expected "trivial" → isTrivial deve ser true
8
+ // - expected "agent:*"/"maestro" → isTrivial deve ser false
9
+ // 2. LLM (--llm, requer `claude` CLI logado, custa tokens): para os casos
10
+ // não-triviais, pergunta ao modelo qual a rota (agent:<area> | maestro)
11
+ // usando a mesma regra de dispatch do Diretor/maestro e compara.
12
+ //
13
+ // Uso:
14
+ // node evals/routing/run-routing-eval.mjs # só determinístico
15
+ // node evals/routing/run-routing-eval.mjs --llm # inclui rota via LLM
16
+ // node evals/routing/run-routing-eval.mjs --llm --model haiku
17
+
18
+ import fs from 'node:fs';
19
+ import path from 'node:path';
20
+ import { execFileSync } from 'node:child_process';
21
+ import { createRequire } from 'node:module';
22
+ import { fileURLToPath } from 'node:url';
23
+
24
+ const here = path.dirname(fileURLToPath(import.meta.url));
25
+ const repoRoot = path.resolve(here, '..', '..');
26
+ const require = createRequire(import.meta.url);
27
+ const { isTrivial } = require(path.join(repoRoot, 'tools', 'hooks', 'wizz-router-enforce.js'));
28
+
29
+ const dataset = JSON.parse(fs.readFileSync(path.join(here, 'dataset.json'), 'utf8'));
30
+ const useLlm = process.argv.includes('--llm');
31
+ const modelIdx = process.argv.indexOf('--model');
32
+ const model = modelIdx === -1 ? 'haiku' : process.argv[modelIdx + 1];
33
+
34
+ const DISPATCH_RULE =
35
+ 'Você é o Diretor do Wizz Method. Classifique o pedido do usuário em UMA rota:\n' +
36
+ '- "maestro": toca 2+ áreas OU 2+ fatores altos (multi-passo, precisa planejar, gera artefato pra memória).\n' +
37
+ '- "agent:<area>": 1 área só e leve. Áreas: designer, copy, seo, growth, social, ads, qa, memoria, dev.\n' +
38
+ 'Responda SÓ com JSON: {"route":"maestro"} ou {"route":"agent:<area>"}.';
39
+
40
+ let passTrivial = 0;
41
+ let failTrivial = 0;
42
+ let passRoute = 0;
43
+ let failRoute = 0;
44
+ const failures = [];
45
+
46
+ for (const item of dataset) {
47
+ const expectTrivial = item.expected === 'trivial';
48
+ const got = isTrivial(item.prompt);
49
+ if (got === expectTrivial) {
50
+ passTrivial++;
51
+ } else {
52
+ failTrivial++;
53
+ failures.push(`[isTrivial] ${item.id}: esperado ${expectTrivial}, veio ${got} — "${item.prompt}"`);
54
+ }
55
+
56
+ if (useLlm && !expectTrivial) {
57
+ try {
58
+ const raw = execFileSync(
59
+ 'claude',
60
+ ['-p', '--model', model, '--output-format', 'text', `${DISPATCH_RULE}\n\nPedido: ${item.prompt}`],
61
+ { encoding: 'utf8', timeout: 120_000 },
62
+ );
63
+ const match = raw.match(/\{[^}]*"route"[^}]*\}/);
64
+ const route = match ? JSON.parse(match[0]).route : null;
65
+ if (route === item.expected) {
66
+ passRoute++;
67
+ } else {
68
+ failRoute++;
69
+ failures.push(`[route] ${item.id}: esperado ${item.expected}, veio ${route} — "${item.prompt}"`);
70
+ }
71
+ } catch (error) {
72
+ failRoute++;
73
+ failures.push(`[route] ${item.id}: erro ao rodar claude -p (${error.message.split('\n')[0]})`);
74
+ }
75
+ }
76
+ }
77
+
78
+ console.log(`isTrivial: ${passTrivial}/${passTrivial + failTrivial} corretos`);
79
+ if (useLlm) {
80
+ const total = passRoute + failRoute;
81
+ console.log(`rota LLM (${model}): ${passRoute}/${total} corretos (${total ? Math.round((100 * passRoute) / total) : 0}%)`);
82
+ }
83
+ if (failures.length > 0) {
84
+ console.log('\nFalhas:');
85
+ for (const f of failures) console.log(` ✗ ${f}`);
86
+ }
87
+
88
+ // Gate: o determinístico é obrigatório; a rota LLM é informativa (meta ≥ 90%).
89
+ process.exitCode = failTrivial > 0 ? 1 : 0;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json.schemastore.org/package.json",
3
3
  "name": "wizz-method",
4
- "version": "1.3.2",
4
+ "version": "1.4.1",
5
5
  "description": "Wizz Method — método de agência orientado por IA em PT-BR (fork independente do BMad Method)",
6
6
  "keywords": [
7
7
  "agile",
@@ -42,10 +42,12 @@
42
42
  "prepare": "command -v husky >/dev/null 2>&1 && husky || exit 0",
43
43
  "quality": "npm run format:check && npm run lint && npm run lint:md && npm run docs:build && npm run test:install && npm run test:urls && npm run validate:refs && npm run validate:skills && npm run docs:validate-sidebar",
44
44
  "rebundle": "node tools/installer/bundlers/bundle-web.js rebundle",
45
- "test": "npm run test:refs && npm run test:install && npm run test:urls && npm run test:channels && npm run test:mcp && npm run test:cli && npm run test:deps && npm run lint && npm run lint:md && npm run format:check",
45
+ "sync:global": "node tools/sync-global.mjs",
46
+ "test": "npm run test:refs && npm run test:install && npm run test:urls && npm run test:channels && npm run test:mcp && npm run test:cli && npm run test:deps && npm run test:hooks && npm run lint && npm run lint:md && npm run format:check",
46
47
  "test:channels": "node test/test-installer-channels.js",
47
48
  "test:cli": "node test/test-cli-config.js",
48
49
  "test:deps": "node test/test-deps-cache.js",
50
+ "test:hooks": "node test/test-router-hook.js",
49
51
  "test:install": "node test/test-installation-components.js",
50
52
  "test:mcp": "node test/test-mcp-config.js",
51
53
  "test:refs": "node test/test-file-refs-csv.js",
@@ -71,6 +73,12 @@
71
73
  "markdownlint-cli2"
72
74
  ]
73
75
  },
76
+ "overrides": {
77
+ "markdownlint-cli2": {
78
+ "js-yaml": "^4.3.0",
79
+ "markdown-it": "^14.2.0"
80
+ }
81
+ },
74
82
  "dependencies": {
75
83
  "@clack/core": "^1.3.1",
76
84
  "@clack/prompts": "^1.4.0",
@@ -80,7 +88,7 @@
80
88
  "csv-parse": "^6.1.0",
81
89
  "glob": "^11.0.3",
82
90
  "ignore": "^7.0.5",
83
- "js-yaml": "^4.1.0",
91
+ "js-yaml": "^4.3.0",
84
92
  "picocolors": "^1.1.1",
85
93
  "semver": "^7.6.3",
86
94
  "xml2js": "^0.6.2",
@@ -61,35 +61,71 @@ areas:
61
61
  designer:
62
62
  agent: wizz-designer
63
63
  summary: "Design de produto e UI: interfaces, landing pages, design systems, motion, 3D."
64
+ # 3 PORTAS DE ENTRADA (2026-07, consolidação leve): o agente OFERECE/INVOCA
65
+ # apenas as skills com `entry: true`. As demais são puxadas PELA porta da sua
66
+ # camada (campo `door`) ou por pedido explícito do usuário — nunca oferecidas
67
+ # soltas. Nada foi fundido: todos os arquivos e references continuam intactos.
64
68
  skills:
69
+ # ── Porta 1: DIREÇÃO (decidir antes de construir) ──
70
+ - id: decision-maker
71
+ entry: true
72
+ door: direcao
73
+ when: "PORTA de direção: todo trabalho de decidir ANTES de construir. Brief visual inicial (6 decisões de estética + 3 lógicas) no kickoff. Puxa: taste-skill (direção anti-slop de brief novo) e motion-3d-director (decidir caminho motion/3D/vídeo)."
74
+ - id: taste-skill
75
+ door: direcao
76
+ when: "Anti-slop em briefs NOVOS: lê o brief, define a direção e audita contra defaults de AI."
77
+ - id: motion-3d-director
78
+ door: direcao
79
+ when: "Direção de motion/animação, 3D, WebGL, scroll cinematográfico, image-to-video. Decide o caminho ANTES de implementar."
80
+
81
+ # ── Porta 2: CONSTRUÇÃO E POLISH DE UI ──
65
82
  - id: ui-ux-pro-max
66
- when: "Design system, paleta, tipografia, componente; pedido de UI amplo. Principal de busca de padrões/estilos."
67
- - id: impeccable
68
- when: "Gate de polish/qualidade de frontend: hardening de UI, acessibilidade, anti-padrões. Refina o que existe."
69
- - id: huashu-design
70
- when: "Direção visual + protótipo HTML hi-fi, exploração de variantes, review 5-dim, export MP4/GIF."
83
+ entry: true
84
+ door: construcao
85
+ when: "PORTA de construção: criar/melhorar UI (design system, paleta, tipografia, componente, página). Puxa: premium-landing-ui-researcher (landing premium greenfield), ui-component-curator (1 componente em projeto existente), impeccable (gate de polish/acessibilidade), taste-redesign (anti-slop em código existente), huashu-design (protótipo HTML hi-fi/variantes/review) e react-components (Stitch→React)."
71
86
  - id: premium-landing-ui-researcher
87
+ door: construcao
72
88
  when: "Projeto NOVO (greenfield): cria landing premium do zero, hero, 3D high-end. Estratégia source-first."
73
89
  - id: ui-component-curator
90
+ door: construcao
74
91
  when: "Projeto EXISTENTE: qual componente/efeito adicionar que combina com o estilo atual."
75
- - id: motion-3d-director
76
- when: "Direção de motion/animação, 3D, WebGL, scroll cinematográfico, image-to-video."
77
- - id: remotion-best-practices
78
- when: "Vídeo programático em React (Remotion) especificamente."
79
- - id: taste-skill
80
- when: "Anti-slop em briefs NOVOS: lê o brief, define a direção e audita contra defaults de AI."
92
+ - id: impeccable
93
+ door: construcao
94
+ when: "Gate de polish/qualidade de frontend: hardening de UI, acessibilidade, anti-padrões. Refina o que já existe."
81
95
  - id: taste-redesign
96
+ door: construcao
82
97
  when: "Anti-slop em projeto EXISTENTE: audita o código atual, lista problemas, prioriza fixes."
98
+ - id: huashu-design
99
+ door: construcao
100
+ when: "Direção visual + protótipo HTML hi-fi, exploração de variantes, review 5-dim, export MP4/GIF."
83
101
  - id: react-components
102
+ door: construcao
84
103
  when: "Converter design (Stitch MCP) em componentes React/Vite."
85
- - id: decision-maker
86
- when: "Brief visual inicial: força 6 decisões de estética + 3 lógicas. Entra no kickoff, antes de construir."
104
+
105
+ # ── Porta 3: MOTION E ASSETS (executar animação e gerar mídia) ──
106
+ - id: animate
107
+ entry: true
108
+ door: motion
109
+ when: "PORTA de motion/assets: executar animação e gerar mídia. Craft de micro-interação (regras do Emil Kowalski: saída > entrada, só transform/opacity, reduced-motion). Puxa: design-motion-principles (auditar animação existente), remotion-best-practices (vídeo em React), canvas-design (PNG/PDF por código) e algorithmic-art (visual generativo)."
110
+ - id: design-motion-principles
111
+ door: motion
112
+ when: "Auditor de movimento: revisa animação existente e aponta scale(0) no início, easing cru, reduced-motion faltando; pesa contenção/polimento/diversão pelo contexto."
113
+ - id: remotion-best-practices
114
+ door: motion
115
+ when: "Vídeo programático em React (Remotion) especificamente."
116
+ - id: canvas-design
117
+ door: motion
118
+ when: "Gerar PNG/PDF editável por código (carrossel, quote card, infográfico) com fonte/cor/logo sempre certos. Traz canvas-fonts."
119
+ - id: algorithmic-art
120
+ door: motion
121
+ when: "Visual generativo por código (flow fields, ruído, partículas) para fundo/textura de hero, único a cada render, sem cara de banco de imagem."
87
122
  mcps:
88
123
  - id: magic
89
124
  when: "Gerar/refinar componentes prontos via 21st.dev (UI builder, inspiration, refiner)."
90
125
  server:
91
126
  command: npx
92
- args: ["-y", "@21st-dev/magic"]
127
+ # Pin de supply chain (2026-07-06): versão fixa; atualizar conscientemente.
128
+ args: ["-y", "@21st-dev/magic@0.1.0"]
93
129
  env:
94
130
  API_KEY: "${MAGIC_API_KEY}"
95
131
  clis:
@@ -105,11 +141,13 @@ areas:
105
141
  when: "EDITAR vídeo por IA: cortes, selects, cenas, roughcut via XML/FFmpeg. Sugerir quando o pedido for editar/cortar vídeo. Clone-and-run no PROJETO (não é skill add), pesado: Ruby + Python + FFmpeg + WhisperX. AVISOS: ~GB de modelos (WhisperX), build demorado, só Apple Silicon."
106
142
  platform: darwin-arm64
107
143
  check: "test -d ./buttercut"
108
- install: "git clone https://github.com/barefootford/buttercut.git"
144
+ # Pin de supply chain (2026-07-06): checkout de SHA fixo; atualizar conscientemente.
145
+ install: "git clone https://github.com/barefootford/buttercut.git buttercut && git -C buttercut checkout 1383f964ebc8b43c4af17f70b3ec6f611b18b3ce"
109
146
  - id: voicebox
110
147
  when: "Voz/TTS/clonagem de voz local para narração/VO de vídeo (7 engines TTS + Whisper STT). App desktop que expõe endpoint MCP local em runtime. Clone-and-run no projeto."
111
148
  check: "test -d ./voicebox"
112
- install: "git clone https://github.com/jamiepine/voicebox.git"
149
+ # Pin de supply chain (2026-07-06): checkout de SHA fixo; atualizar conscientemente.
150
+ install: "git clone https://github.com/jamiepine/voicebox.git voicebox && git -C voicebox checkout f2cf2a729d733acd7c759d85c6ace2d602f50d6e"
113
151
  references:
114
152
  - "references/premium-agency-rules.md (regras $150k-tier, importadas por impeccable/huashu no modo high-end)"
115
153
 
@@ -204,7 +242,8 @@ areas:
204
242
  # before writing; if verify fails the server is skipped, not written.
205
243
  setup:
206
244
  bin: scrapling
207
- install: 'uv tool install "scrapling[ai]" || pipx install "scrapling[ai]" || pip install --user "scrapling[ai]"'
245
+ # Pin de supply chain (2026-07-06): versão fixa; atualizar conscientemente.
246
+ install: 'uv tool install "scrapling[ai]==0.4.10" || pipx install "scrapling[ai]==0.4.10" || pip install --user "scrapling[ai]==0.4.10"'
208
247
  post_install: "{bin} install"
209
248
  verify: "{bin} --version"
210
249
 
@@ -245,23 +284,25 @@ areas:
245
284
  when: "Gestão real de campanha Meta/Facebook/Instagram via API (criar/editar/medir ads)."
246
285
  server:
247
286
  command: npx
248
- args: ["-y", "mcp-meta-ads"]
287
+ # Pin de supply chain (2026-07-06): versão fixa; atualizar conscientemente.
288
+ args: ["-y", "mcp-meta-ads@1.0.0"]
249
289
  env:
250
290
  META_ACCESS_TOKEN: "${META_ACCESS_TOKEN}"
251
291
  clis:
252
292
  - id: arcads
253
293
  when: "GERAR vídeo-ad e imagem por IA (Seedance/Sora/Veo/Kling/OmniHuman + Nano Banana) e publicar como Meta ad. Clone-and-run no projeto: git clone + ./scripts/setup.sh; precisa Python 3.10+ e ARCADS API key em .env (META_ACCESS_TOKEN opcional p/ publicar)."
254
294
  check: "test -d ./arcads-claude-code"
255
- install: "git clone https://github.com/krusemediallc/arcads-claude-code.git"
295
+ # Pin de supply chain (2026-07-06): checkout de SHA fixo; atualizar conscientemente.
296
+ install: "git clone https://github.com/krusemediallc/arcads-claude-code.git arcads-claude-code && git -C arcads-claude-code checkout 0b0d3610bbdcfcc2607c77a748d6abb341adda46"
256
297
 
257
298
  architect:
258
299
  agent: wizz-agent-architect
259
300
  summary: "Arquitetura, banco, segurança, infra, decisões técnicas."
260
301
  skills:
261
302
  - id: web-security
262
- when: "Auditar segurança web, OWASP, XSS/CSRF/injeção, headers, rate limit, antes de deploy/PR."
303
+ when: "Auditar segurança web, OWASP, XSS/CSRF/injeção/SQLi, IDOR, headers, rate limit (IP+conta), CORS, clickjacking, vazamento de PII na resposta, antes de deploy/PR."
263
304
  - id: auth-and-secrets
264
- when: "Auth (JWT/OAuth/SSO/Clerk), gestão de secrets, rotação de credenciais."
305
+ when: "Auth (JWT/OAuth/SSO/Clerk), token no header vs URL, revogar no logout, enumeração de usuário, gestão de secrets, rotação de credenciais."
265
306
  - id: desktop-security
266
307
  when: "Segurança desktop/Electron (contextIsolation, code signing)."
267
308
  - id: database-scaling
@@ -276,12 +317,15 @@ areas:
276
317
  when: "Dependências/packages, vulnerabilidades, npm audit."
277
318
  - id: supabase-postgres-best-practices
278
319
  when: "Performance e boas práticas de Postgres/Supabase (queries, schema, RLS)."
320
+ - id: ai-product-design
321
+ when: "Construir/melhorar um agente ou produto de IA: escrever/revisar system prompt, definir persona/tom, guardrails e recusas, few-shot, chain-of-thought, orquestração multi-agente, handoff, detecção de frustração, generative UI, avaliar qualidade de saída. Base para desenhar os próprios agentes do método. 44 padrões (Owl-Listener, MIT)."
279
322
  mcps:
280
323
  - id: supabase
281
324
  when: "Operar Supabase de verdade: rodar SQL, migrations, inspecionar schema/RLS, logs."
282
325
  server:
283
326
  command: npx
284
- args: ["-y", "@supabase/mcp-server-supabase@latest"]
327
+ # Pin de supply chain (2026-07-06): versão fixa (era @latest); atualizar conscientemente.
328
+ args: ["-y", "@supabase/mcp-server-supabase@0.8.2"]
285
329
  env:
286
330
  SUPABASE_ACCESS_TOKEN: "${SUPABASE_ACCESS_TOKEN}"
287
331
 
@@ -299,7 +343,8 @@ areas:
299
343
  - id: agent-browser
300
344
  when: "Dirigir um browser real pra E2E/verificação: navegar, clicar, preencher form, screenshot, console. É CLI, não MCP."
301
345
  check: "agent-browser --version"
302
- install: "npm install -g agent-browser"
346
+ # Pin de supply chain (2026-07-06): versão fixa; atualizar conscientemente.
347
+ install: "npm install -g agent-browser@0.27.0"
303
348
 
304
349
  analyst:
305
350
  agent: wizz-agent-analyst
@@ -314,7 +359,8 @@ areas:
314
359
  when: "Pesquisa web/prior-art durante planejamento (web search, descoberta de fontes)."
315
360
  server:
316
361
  command: npx
317
- args: ["-y", "exa-mcp-server"]
362
+ # Pin de supply chain (2026-07-06): versão fixa; atualizar conscientemente.
363
+ args: ["-y", "exa-mcp-server@3.2.1"]
318
364
  env:
319
365
  EXA_API_KEY: "${EXA_API_KEY}"
320
366
 
@@ -346,7 +392,8 @@ mcp_utility:
346
392
  when: "Docs atualizadas de qualquer lib/framework/SDK (React, Next, Prisma, Tailwind...). Útil em todo dev."
347
393
  server:
348
394
  command: npx
349
- args: ["-y", "@upstash/context7-mcp"]
395
+ # Pin de supply chain (2026-07-06): versão fixa; atualizar conscientemente.
396
+ args: ["-y", "@upstash/context7-mcp@3.2.2"]
350
397
 
351
398
  # ─────────────────────────────────────────────────────────────────────────────
352
399
  # CLIs — ferramentas de linha de comando que os agentes chamam direto (não são
@@ -20,7 +20,7 @@ Você é o Ads do Wizz. Planeja campanhas, gera variações de criativo e acompa
20
20
 
21
21
  ## Como trabalho (ponte global)
22
22
 
23
- > **Fonte única (registry) — leia SEMPRE antes dos exemplos abaixo:** a lista real da sua área (`ads`) vive no `skills-registry.yaml` (resolva em `{project-root}/_wizz/_config/skills-registry.yaml` → `{project-root}/_wizz/skills-registry.yaml` → `{project-root}/skills-registry.yaml`). Ache o bloco `areas.ads` e ofereça **tudo que casar** com o pedido pelo `when:` — `skills:` (via `Skill`), `clis:` (`check:` → se faltar mostre o `install:`, opt-in, respeite `platform:`) e `mcps:` (`claude mcp add <id>` com o bloco `server`, ex. `meta-ads`). Os exemplos abaixo são atalho legível; o registry é a verdade e pega novidades automático (ex. `arcads` p/ gerar vídeo-ad).
23
+ > **Fonte única (registry) — leia SEMPRE antes dos exemplos abaixo:** a lista real da sua área (`ads`) vive no `skills-registry.yaml`. Resolva primeiro a **fatia leve da sua área**, `{project-root}/_wizz/_config/registry/ads.yaml` ( vem como o bloco `areas.ads` completo); se faltar (install antigo), caia pro monólito na ordem `{project-root}/_wizz/_config/skills-registry.yaml` → `{project-root}/_wizz/skills-registry.yaml` → `{project-root}/skills-registry.yaml` e ache o bloco `areas.ads` dentro. Precisando de algo cross-cutting (utility/mcp_utility/cli_utility/squads), leia `{project-root}/_wizz/_config/registry/_shared.yaml`. Ofereça **tudo que casar** com o pedido pelo `when:` — `skills:` (via `Skill`), `clis:` (`check:` → se faltar mostre o `install:`, opt-in, respeite `platform:`) e `mcps:` (`claude mcp add <id>` com o bloco `server`, ex. `meta-ads`). Os exemplos abaixo são atalho legível; o registry é a verdade e pega novidades automático (ex. `arcads` p/ gerar vídeo-ad).
24
24
  - Estratégia de campanha, segmentação, lances, ROAS → `paid-ads`
25
25
  - Variações de criativo, headlines, copy de anúncio → `ad-creative`
26
26
  - Tracking, conversões, UTMs, pixel → `analytics-tracking`