wizz-method 2.0.0 → 2.1.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 (311) hide show
  1. package/LICENSE +60 -30
  2. package/README.md +80 -31
  3. package/SECURITY.md +24 -0
  4. package/THIRD-PARTY-NOTICES.md +136 -0
  5. package/package.json +31 -17
  6. package/skills-registry.yaml +128 -7
  7. package/src/bmm-skills/1-analysis/research/wizz-domain-research/SKILL.md +3 -4
  8. package/src/bmm-skills/1-analysis/research/wizz-domain-research/domain-steps/step-06-research-synthesis.md +1 -1
  9. package/src/bmm-skills/1-analysis/research/wizz-market-research/SKILL.md +3 -4
  10. package/src/bmm-skills/1-analysis/research/wizz-market-research/steps/step-06-research-completion.md +1 -1
  11. package/src/bmm-skills/1-analysis/research/wizz-technical-research/SKILL.md +3 -4
  12. package/src/bmm-skills/1-analysis/research/wizz-technical-research/technical-steps/step-06-research-synthesis.md +1 -1
  13. package/src/bmm-skills/1-analysis/wizz-agent-analyst/SKILL.md +3 -4
  14. package/src/bmm-skills/1-analysis/wizz-agent-tech-writer/SKILL.md +3 -4
  15. package/src/bmm-skills/1-analysis/wizz-document-project/SKILL.md +3 -4
  16. package/src/bmm-skills/1-analysis/wizz-document-project/workflows/deep-dive-instructions.md +1 -1
  17. package/src/bmm-skills/1-analysis/wizz-document-project/workflows/full-scan-instructions.md +1 -1
  18. package/src/bmm-skills/1-analysis/wizz-prfaq/SKILL.md +3 -4
  19. package/src/bmm-skills/1-analysis/wizz-prfaq/references/verdict.md +1 -1
  20. package/src/bmm-skills/1-analysis/wizz-product-brief/SKILL.md +1 -1
  21. package/src/bmm-skills/2-plan-workflows/wizz-agent-pm/SKILL.md +3 -4
  22. package/src/bmm-skills/2-plan-workflows/wizz-agent-ux-designer/SKILL.md +3 -4
  23. package/src/bmm-skills/2-plan-workflows/wizz-create-prd/SKILL.md +1 -1
  24. package/src/bmm-skills/2-plan-workflows/wizz-edit-prd/SKILL.md +1 -1
  25. package/src/bmm-skills/2-plan-workflows/wizz-prd/SKILL.md +1 -1
  26. package/src/bmm-skills/2-plan-workflows/wizz-ux/SKILL.md +1 -1
  27. package/src/bmm-skills/2-plan-workflows/wizz-validate-prd/SKILL.md +1 -1
  28. package/src/bmm-skills/3-solutioning/wizz-agent-architect/SKILL.md +3 -4
  29. package/src/bmm-skills/3-solutioning/wizz-architecture/SKILL.md +9 -9
  30. package/src/bmm-skills/3-solutioning/wizz-architecture/references/headless.md +1 -1
  31. package/src/bmm-skills/3-solutioning/wizz-check-implementation-readiness/SKILL.md +3 -4
  32. package/src/bmm-skills/3-solutioning/wizz-check-implementation-readiness/steps/step-06-final-assessment.md +1 -1
  33. package/src/bmm-skills/3-solutioning/wizz-create-architecture/SKILL.md +1 -1
  34. package/src/bmm-skills/3-solutioning/wizz-create-epics-and-stories/SKILL.md +3 -4
  35. package/src/bmm-skills/3-solutioning/wizz-create-epics-and-stories/steps/step-04-final-validation.md +1 -1
  36. package/src/bmm-skills/3-solutioning/wizz-generate-project-context/SKILL.md +3 -4
  37. package/src/bmm-skills/3-solutioning/wizz-generate-project-context/steps/step-03-complete.md +1 -1
  38. package/src/bmm-skills/4-implementation/wizz-agent-dev/SKILL.md +3 -4
  39. package/src/bmm-skills/4-implementation/wizz-checkpoint-preview/SKILL.md +3 -4
  40. package/src/bmm-skills/4-implementation/wizz-checkpoint-preview/step-05-wrapup.md +1 -1
  41. package/src/bmm-skills/4-implementation/wizz-code-review/SKILL.md +3 -4
  42. package/src/bmm-skills/4-implementation/wizz-code-review/customize.toml +3 -8
  43. package/src/bmm-skills/4-implementation/wizz-code-review/review-prompts/blind-hunter.md +20 -0
  44. package/src/bmm-skills/4-implementation/wizz-code-review/steps/step-04-present.md +1 -1
  45. package/src/bmm-skills/4-implementation/wizz-correct-course/SKILL.md +4 -5
  46. package/src/bmm-skills/4-implementation/wizz-create-story/SKILL.md +4 -5
  47. package/src/bmm-skills/4-implementation/wizz-dev-story/SKILL.md +4 -5
  48. package/src/bmm-skills/4-implementation/wizz-investigate/SKILL.md +1 -1
  49. package/src/bmm-skills/4-implementation/wizz-qa-generate-e2e-tests/SKILL.md +4 -5
  50. package/src/bmm-skills/4-implementation/wizz-quick-dev/SKILL.md +4 -5
  51. package/src/bmm-skills/4-implementation/wizz-quick-dev/customize.toml +10 -22
  52. package/src/bmm-skills/4-implementation/wizz-quick-dev/review-prompts/blind-hunter.md +20 -0
  53. package/src/bmm-skills/4-implementation/wizz-quick-dev/step-05-present.md +1 -1
  54. package/src/bmm-skills/4-implementation/wizz-quick-dev/step-oneshot.md +1 -1
  55. package/src/bmm-skills/4-implementation/wizz-retrospective/SKILL.md +1 -2
  56. package/src/bmm-skills/4-implementation/wizz-sprint-planning/SKILL.md +1 -1
  57. package/src/bmm-skills/4-implementation/wizz-sprint-status/SKILL.md +5 -6
  58. package/src/core-skills/_shared/handoff-protocol.md +9 -0
  59. package/src/core-skills/wizz-advanced-elicitation/SKILL.md +2 -2
  60. package/src/core-skills/wizz-brainstorming/SKILL.md +6 -6
  61. package/src/core-skills/wizz-brainstorming/references/converge.md +1 -1
  62. package/src/core-skills/wizz-brainstorming/references/finalize.md +1 -1
  63. package/src/core-skills/wizz-brainstorming/references/headless.md +3 -3
  64. package/src/core-skills/wizz-brainstorming/references/mode-autonomous.md +1 -1
  65. package/src/core-skills/wizz-customize/SKILL.md +13 -10
  66. package/src/core-skills/wizz-forge-idea/SKILL.md +6 -6
  67. package/src/core-skills/wizz-forge-idea/scripts/__pycache__/resolve_personas.cpython-314.pyc +0 -0
  68. package/src/core-skills/wizz-forge-idea/scripts/resolve_personas.py +17 -1
  69. package/src/core-skills/wizz-party-mode/SKILL.md +3 -3
  70. package/src/core-skills/wizz-party-mode/references/create-party.md +1 -1
  71. package/src/core-skills/wizz-party-mode/references/party-memory.md +2 -2
  72. package/src/core-skills/wizz-party-mode/scripts/__pycache__/resolve_party.cpython-314.pyc +0 -0
  73. package/src/core-skills/wizz-party-mode/scripts/resolve_party.py +17 -1
  74. package/src/core-skills/wizz-review-adversarial-general/SKILL.md +1 -1
  75. package/src/core-skills/wizz-spec/SKILL.md +5 -5
  76. package/src/modules/lowticket/README.md +6 -6
  77. package/src/modules/lowticket/module.yaml +4 -1
  78. package/src/modules/lowticket/skills/{lowticket-funil → wizz-lowticket-funil}/SKILL.md +4 -4
  79. package/src/modules/lowticket/skills/{lowticket-funil → wizz-lowticket-funil}/references/copy-das-paginas.md +1 -1
  80. package/src/modules/lowticket/skills/{lowticket-metodologia → wizz-lowticket-metodologia}/SKILL.md +1 -1
  81. package/src/modules/lowticket/skills/{lowticket-minerador → wizz-lowticket-minerador}/SKILL.md +3 -3
  82. package/src/modules/lowticket/skills/{lowticket-minerador → wizz-lowticket-minerador}/references/rubrica.md +1 -1
  83. package/src/modules/lowticket/skills/{lowticket-pagina → wizz-lowticket-pagina}/SKILL.md +4 -4
  84. package/src/modules/lowticket/skills/{lowticket-trafego → wizz-lowticket-trafego}/SKILL.md +3 -3
  85. package/src/modules/lowticket/skills/{lowticket-trafego → wizz-lowticket-trafego}/references/reguas.md +1 -1
  86. package/src/modules/wizz/_shared/communication-rules.md +1 -1
  87. package/src/modules/wizz/_shared/despacho-barato.md +9 -0
  88. package/src/modules/wizz/_shared/token-economy.md +7 -0
  89. package/src/modules/wizz/agents/wizz-ads/SKILL.md +1 -1
  90. package/src/modules/wizz/agents/wizz-ads/customize.toml +1 -2
  91. package/src/modules/wizz/agents/wizz-copy/SKILL.md +1 -1
  92. package/src/modules/wizz/agents/wizz-copy/customize.toml +1 -2
  93. package/src/modules/wizz/agents/wizz-designer/SKILL.md +1 -1
  94. package/src/modules/wizz/agents/wizz-designer/customize.toml +1 -2
  95. package/src/modules/wizz/agents/wizz-growth/SKILL.md +1 -1
  96. package/src/modules/wizz/agents/wizz-growth/customize.toml +1 -2
  97. package/src/modules/wizz/agents/wizz-maestro/SKILL.md +5 -5
  98. package/src/modules/wizz/agents/wizz-maestro/customize.toml +4 -8
  99. package/src/modules/wizz/agents/wizz-memoria/SKILL.md +1 -1
  100. package/src/modules/wizz/agents/wizz-memoria/customize.toml +1 -2
  101. package/src/modules/wizz/agents/wizz-qa/SKILL.md +1 -1
  102. package/src/modules/wizz/agents/wizz-qa/customize.toml +1 -2
  103. package/src/modules/wizz/agents/wizz-seo/SKILL.md +1 -1
  104. package/src/modules/wizz/agents/wizz-seo/customize.toml +1 -2
  105. package/src/modules/wizz/agents/wizz-social/SKILL.md +1 -1
  106. package/src/modules/wizz/agents/wizz-social/customize.toml +1 -2
  107. package/src/modules/wizz/module.yaml +3 -0
  108. package/src/modules/wizz/overrides/wizz-agent-analyst.toml +1 -2
  109. package/src/modules/wizz/overrides/wizz-agent-architect.toml +1 -2
  110. package/src/modules/wizz/overrides/wizz-agent-dev.toml +1 -2
  111. package/src/modules/wizz/overrides/wizz-agent-pm.toml +1 -2
  112. package/src/modules/wizz/overrides/wizz-agent-tech-writer.toml +1 -2
  113. package/src/modules/wizz/overrides/wizz-agent-ux-designer.toml +1 -2
  114. package/src/modules/wizz/subagents/codex/wizz-exec-haiku.toml +2 -0
  115. package/src/modules/wizz/subagents/codex/wizz-exec-opus.toml +2 -0
  116. package/src/modules/wizz/subagents/codex/wizz-exec-review.toml +2 -0
  117. package/src/modules/wizz/subagents/codex/wizz-exec-sonnet.toml +2 -0
  118. package/src/modules/wizz/subagents/gemini/wizz-exec-haiku.md +4 -1
  119. package/src/modules/wizz/subagents/gemini/wizz-exec-opus.md +4 -1
  120. package/src/modules/wizz/subagents/gemini/wizz-exec-review.md +4 -1
  121. package/src/modules/wizz/subagents/gemini/wizz-exec-sonnet.md +4 -1
  122. package/src/modules/wizz/subagents/opencode/wizz-exec-haiku.md +4 -1
  123. package/src/modules/wizz/subagents/opencode/wizz-exec-opus.md +4 -1
  124. package/src/modules/wizz/subagents/opencode/wizz-exec-review.md +4 -1
  125. package/src/modules/wizz/subagents/opencode/wizz-exec-sonnet.md +4 -1
  126. package/src/modules/wizz/subagents/spec.yaml +148 -0
  127. package/src/modules/wizz/subagents/wizz-exec-haiku.md +4 -1
  128. package/src/modules/wizz/subagents/wizz-exec-opus.md +4 -1
  129. package/src/modules/wizz/subagents/wizz-exec-review.md +4 -1
  130. package/src/modules/wizz/subagents/wizz-exec-sonnet.md +4 -1
  131. package/src/scripts/__pycache__/resolve_customization.cpython-314.pyc +0 -0
  132. package/src/scripts/memlog.js +368 -0
  133. package/src/scripts/resolve_customization.py +124 -15
  134. package/src/skills-lib/_shared/complexity-signal.md +14 -0
  135. package/src/skills-lib/wizz-canvas-design/canvas-fonts/InstrumentSerif-OFL.txt +93 -0
  136. package/src/skills-lib/wizz-huashu-design/references/sfx-library.md +1 -1
  137. package/src/skills-lib/wizz-huashu-design/scripts/add-music.sh +1 -1
  138. package/src/skills-lib/wizz-huashu-design/scripts/mix-voiceover.sh +1 -1
  139. package/src/skills-lib/wizz-impeccable/LICENSE.txt +202 -0
  140. package/src/skills-lib/wizz-offer-forge/SKILL.md +1 -1
  141. package/src/skills-lib/wizz-react-components/LICENSE.txt +202 -0
  142. package/src/skills-lib/wizz-router/SKILL.md +2 -2
  143. package/src/skills-lib/wizz-supabase-postgres-best-practices/LICENSE +21 -0
  144. package/src/skills-lib/wizz-taste-skill/SKILL.md +1 -1
  145. package/src/skills-lib/wizz-tracking-audit/SKILL.md +1 -1
  146. package/tools/fetch-assets.mjs +70 -38
  147. package/tools/hooks/README.md +22 -0
  148. package/tools/hooks/rtk-rewrite.sh +280 -0
  149. package/tools/hooks/security-defensive-context.js +70 -0
  150. package/tools/hooks/session-rules.js +368 -0
  151. package/tools/hooks/wizz-decision-trace.js +389 -0
  152. package/tools/hooks/wizz-router-enforce.js +258 -0
  153. package/tools/installer/banner.js +1 -1
  154. package/tools/installer/commands/doctor.js +124 -0
  155. package/tools/installer/commands/fetch-assets.js +7 -8
  156. package/tools/installer/commands/install.js +1 -1
  157. package/tools/installer/commands/resolve.js +95 -0
  158. package/tools/installer/core/doctor.js +648 -0
  159. package/tools/installer/core/hash-cache.js +156 -0
  160. package/tools/installer/core/help-catalog.js +4 -1
  161. package/tools/installer/core/hooks-settings.js +178 -0
  162. package/tools/installer/core/installer.js +297 -15
  163. package/tools/installer/core/legacy-warnings.js +0 -4
  164. package/tools/installer/core/manifest-generator.js +121 -43
  165. package/tools/installer/core/manifest.js +36 -32
  166. package/tools/installer/core/module-config-writer.js +4 -1
  167. package/tools/installer/core/python-check.js +60 -63
  168. package/tools/installer/core/quick-update.js +76 -43
  169. package/tools/installer/core/resolved-config.js +168 -0
  170. package/tools/installer/core/resolved-customizations.js +736 -0
  171. package/tools/installer/core/resolved-includes.js +262 -0
  172. package/tools/installer/core/resolved-schema.js +148 -0
  173. package/tools/installer/core/user-file-preservation.js +40 -8
  174. package/tools/installer/core/wizz-dir.js +117 -0
  175. package/tools/installer/core/yaml-cache.js +105 -0
  176. package/tools/installer/fs-native.js +97 -6
  177. package/tools/installer/ide/_config-driven.js +12 -75
  178. package/tools/installer/ide/platform-codes.js +111 -16
  179. package/tools/installer/ide/platform-codes.yaml +45 -100
  180. package/tools/installer/ide/shared/path-utils.js +6 -208
  181. package/tools/installer/install-messages.yaml +4 -14
  182. package/tools/installer/modules/channel-plan.js +15 -2
  183. package/tools/installer/modules/config-collector.js +762 -0
  184. package/tools/installer/modules/config-values.js +352 -0
  185. package/tools/installer/modules/custom-module-manager.js +161 -28
  186. package/tools/installer/modules/env-vars.js +119 -0
  187. package/tools/installer/modules/external-manager.js +133 -60
  188. package/tools/installer/modules/git-cache-utils.js +125 -0
  189. package/tools/installer/modules/module-catalog.js +565 -0
  190. package/tools/installer/modules/module-installer.js +618 -0
  191. package/tools/installer/modules/module-interface.js +86 -0
  192. package/tools/installer/modules/official-modules.js +98 -2172
  193. package/tools/installer/modules/pin-spec.js +125 -0
  194. package/tools/installer/modules/plugin-resolver.js +4 -0
  195. package/tools/installer/modules/skills-lib.js +3 -6
  196. package/tools/installer/prompts.js +0 -3
  197. package/tools/installer/ui.js +89 -54
  198. package/tools/installer/wizz-cli.js +1 -1
  199. package/tools/lib/frontmatter.js +139 -0
  200. package/tools/lib/sync-targets.mjs +49 -0
  201. package/tools/lib/walk.js +93 -0
  202. package/wizz-modules.yaml +9 -0
  203. package/src/scripts/__pycache__/memlog.cpython-313.pyc +0 -0
  204. package/src/scripts/memlog.py +0 -233
  205. package/src/scripts/tests/__pycache__/test_memlog.cpython-313-pytest-9.1.1.pyc +0 -0
  206. package/src/scripts/tests/__pycache__/test_resolve_customization.cpython-313-pytest-9.1.1.pyc +0 -0
  207. package/src/scripts/tests/test_memlog.py +0 -306
  208. package/src/skills-lib/wizz-huashu-design/assets/showcases/INDEX.md +0 -115
  209. package/src/skills-lib/wizz-huashu-design/assets/showcases/cover/cover-build.html +0 -235
  210. package/src/skills-lib/wizz-huashu-design/assets/showcases/cover/cover-build.png +0 -0
  211. package/src/skills-lib/wizz-huashu-design/assets/showcases/cover/cover-pentagram.html +0 -229
  212. package/src/skills-lib/wizz-huashu-design/assets/showcases/cover/cover-pentagram.png +0 -0
  213. package/src/skills-lib/wizz-huashu-design/assets/showcases/cover/cover-takram.html +0 -288
  214. package/src/skills-lib/wizz-huashu-design/assets/showcases/cover/cover-takram.png +0 -0
  215. package/src/skills-lib/wizz-huashu-design/assets/showcases/infographic/infographic-build.html +0 -503
  216. package/src/skills-lib/wizz-huashu-design/assets/showcases/infographic/infographic-build.png +0 -0
  217. package/src/skills-lib/wizz-huashu-design/assets/showcases/infographic/infographic-pentagram.html +0 -600
  218. package/src/skills-lib/wizz-huashu-design/assets/showcases/infographic/infographic-pentagram.png +0 -0
  219. package/src/skills-lib/wizz-huashu-design/assets/showcases/infographic/infographic-takram.html +0 -670
  220. package/src/skills-lib/wizz-huashu-design/assets/showcases/infographic/infographic-takram.png +0 -0
  221. package/src/skills-lib/wizz-huashu-design/assets/showcases/ppt/ppt-build.html +0 -382
  222. package/src/skills-lib/wizz-huashu-design/assets/showcases/ppt/ppt-build.png +0 -0
  223. package/src/skills-lib/wizz-huashu-design/assets/showcases/ppt/ppt-pentagram.html +0 -536
  224. package/src/skills-lib/wizz-huashu-design/assets/showcases/ppt/ppt-pentagram.png +0 -0
  225. package/src/skills-lib/wizz-huashu-design/assets/showcases/ppt/ppt-takram.html +0 -497
  226. package/src/skills-lib/wizz-huashu-design/assets/showcases/ppt/ppt-takram.png +0 -0
  227. package/src/skills-lib/wizz-huashu-design/assets/showcases/website-ai-nav/ainav-build.html +0 -385
  228. package/src/skills-lib/wizz-huashu-design/assets/showcases/website-ai-nav/ainav-build.png +0 -0
  229. package/src/skills-lib/wizz-huashu-design/assets/showcases/website-ai-nav/ainav-pentagram.html +0 -422
  230. package/src/skills-lib/wizz-huashu-design/assets/showcases/website-ai-nav/ainav-pentagram.png +0 -0
  231. package/src/skills-lib/wizz-huashu-design/assets/showcases/website-ai-nav/ainav-takram.html +0 -499
  232. package/src/skills-lib/wizz-huashu-design/assets/showcases/website-ai-nav/ainav-takram.png +0 -0
  233. package/src/skills-lib/wizz-huashu-design/assets/showcases/website-ai-writing/aiwriting-build.html +0 -562
  234. package/src/skills-lib/wizz-huashu-design/assets/showcases/website-ai-writing/aiwriting-build.png +0 -0
  235. package/src/skills-lib/wizz-huashu-design/assets/showcases/website-ai-writing/aiwriting-pentagram.html +0 -548
  236. package/src/skills-lib/wizz-huashu-design/assets/showcases/website-ai-writing/aiwriting-pentagram.png +0 -0
  237. package/src/skills-lib/wizz-huashu-design/assets/showcases/website-ai-writing/aiwriting-takram.html +0 -696
  238. package/src/skills-lib/wizz-huashu-design/assets/showcases/website-ai-writing/aiwriting-takram.png +0 -0
  239. package/src/skills-lib/wizz-huashu-design/assets/showcases/website-devdocs/devdocs-build.html +0 -372
  240. package/src/skills-lib/wizz-huashu-design/assets/showcases/website-devdocs/devdocs-build.png +0 -0
  241. package/src/skills-lib/wizz-huashu-design/assets/showcases/website-devdocs/devdocs-pentagram.html +0 -460
  242. package/src/skills-lib/wizz-huashu-design/assets/showcases/website-devdocs/devdocs-pentagram.png +0 -0
  243. package/src/skills-lib/wizz-huashu-design/assets/showcases/website-devdocs/devdocs-takram.html +0 -494
  244. package/src/skills-lib/wizz-huashu-design/assets/showcases/website-devdocs/devdocs-takram.png +0 -0
  245. package/src/skills-lib/wizz-huashu-design/assets/showcases/website-homepage/homepage-build.html +0 -367
  246. package/src/skills-lib/wizz-huashu-design/assets/showcases/website-homepage/homepage-build.png +0 -0
  247. package/src/skills-lib/wizz-huashu-design/assets/showcases/website-homepage/homepage-pentagram.html +0 -368
  248. package/src/skills-lib/wizz-huashu-design/assets/showcases/website-homepage/homepage-pentagram.png +0 -0
  249. package/src/skills-lib/wizz-huashu-design/assets/showcases/website-homepage/homepage-takram.html +0 -459
  250. package/src/skills-lib/wizz-huashu-design/assets/showcases/website-homepage/homepage-takram.png +0 -0
  251. package/src/skills-lib/wizz-huashu-design/assets/showcases/website-saas/saas-build.html +0 -493
  252. package/src/skills-lib/wizz-huashu-design/assets/showcases/website-saas/saas-build.png +0 -0
  253. package/src/skills-lib/wizz-huashu-design/assets/showcases/website-saas/saas-pentagram.html +0 -556
  254. package/src/skills-lib/wizz-huashu-design/assets/showcases/website-saas/saas-pentagram.png +0 -0
  255. package/src/skills-lib/wizz-huashu-design/assets/showcases/website-saas/saas-takram.html +0 -604
  256. package/src/skills-lib/wizz-huashu-design/assets/showcases/website-saas/saas-takram.png +0 -0
  257. package/tools/installer/file-ops.js +0 -204
  258. package/tools/installer/ide/shared/skill-manifest.js +0 -57
  259. package/tools/installer/yaml-format.js +0 -245
  260. package/web-bundles/README.md +0 -46
  261. package/web-bundles/brainstorming-coach/INSTRUCTIONS.md +0 -86
  262. package/web-bundles/brainstorming-coach/SKILL.md +0 -83
  263. package/web-bundles/brainstorming-coach/brain-methods.csv +0 -62
  264. package/web-bundles/bundles.json +0 -139
  265. package/web-bundles/market-and-industry-research/INSTRUCTIONS.md +0 -88
  266. package/web-bundles/market-and-industry-research/SKILL.md +0 -59
  267. package/web-bundles/prd-coach/INSTRUCTIONS.md +0 -86
  268. package/web-bundles/prd-coach/SKILL.md +0 -101
  269. package/web-bundles/prd-coach/prd-template.md +0 -165
  270. package/web-bundles/prd-coach/prd-validation-checklist.md +0 -135
  271. package/web-bundles/prfaq-coach/INSTRUCTIONS.md +0 -86
  272. package/web-bundles/prfaq-coach/SKILL.md +0 -139
  273. package/web-bundles/product-brief-coach/INSTRUCTIONS.md +0 -86
  274. package/web-bundles/product-brief-coach/SKILL.md +0 -113
  275. package/web-bundles/ux-coach/INSTRUCTIONS.md +0 -92
  276. package/web-bundles/ux-coach/SKILL.md +0 -187
  277. package/web-bundles/ux-coach/ux-validation.md +0 -100
  278. /package/src/modules/lowticket/skills/{lowticket-funil → wizz-lowticket-funil}/references/mapa-do-funil.md +0 -0
  279. /package/src/modules/lowticket/skills/{lowticket-metodologia → wizz-lowticket-metodologia}/CATALOGO.md +0 -0
  280. /package/src/modules/lowticket/skills/{lowticket-metodologia → wizz-lowticket-metodologia}/knowledge/01-principios.md +0 -0
  281. /package/src/modules/lowticket/skills/{lowticket-metodologia → wizz-lowticket-metodologia}/knowledge/02-diagnostico-funil.md +0 -0
  282. /package/src/modules/lowticket/skills/{lowticket-metodologia → wizz-lowticket-metodologia}/knowledge/03-campanha-bidcap.md +0 -0
  283. /package/src/modules/lowticket/skills/{lowticket-metodologia → wizz-lowticket-metodologia}/knowledge/04-criativos.md +0 -0
  284. /package/src/modules/lowticket/skills/{lowticket-metodologia → wizz-lowticket-metodologia}/knowledge/04a-criativos-ia.md +0 -0
  285. /package/src/modules/lowticket/skills/{lowticket-metodologia → wizz-lowticket-metodologia}/knowledge/04b-criativos-formatos.md +0 -0
  286. /package/src/modules/lowticket/skills/{lowticket-metodologia → wizz-lowticket-metodologia}/knowledge/05-oferta.md +0 -0
  287. /package/src/modules/lowticket/skills/{lowticket-metodologia → wizz-lowticket-metodologia}/knowledge/06-pagina-vendas.md +0 -0
  288. /package/src/modules/lowticket/skills/{lowticket-metodologia → wizz-lowticket-metodologia}/knowledge/06a-instagram.md +0 -0
  289. /package/src/modules/lowticket/skills/{lowticket-metodologia → wizz-lowticket-metodologia}/knowledge/06b-player-vsl.md +0 -0
  290. /package/src/modules/lowticket/skills/{lowticket-metodologia → wizz-lowticket-metodologia}/knowledge/07-funil-upsell.md +0 -0
  291. /package/src/modules/lowticket/skills/{lowticket-metodologia → wizz-lowticket-metodologia}/knowledge/07a-copy-humanizacao.md +0 -0
  292. /package/src/modules/lowticket/skills/{lowticket-metodologia → wizz-lowticket-metodologia}/knowledge/08-pesquisa-publico.md +0 -0
  293. /package/src/modules/lowticket/skills/{lowticket-metodologia → wizz-lowticket-metodologia}/knowledge/09-especialista-coproducao.md +0 -0
  294. /package/src/modules/lowticket/skills/{lowticket-metodologia → wizz-lowticket-metodologia}/knowledge/10-levantar-caixa.md +0 -0
  295. /package/src/modules/lowticket/skills/{lowticket-metodologia → wizz-lowticket-metodologia}/knowledge/11-checklist-roi.md +0 -0
  296. /package/src/modules/lowticket/skills/{lowticket-metodologia → wizz-lowticket-metodologia}/knowledge/12-mineracao-ofertas.md +0 -0
  297. /package/src/modules/lowticket/skills/{lowticket-metodologia → wizz-lowticket-metodologia}/knowledge/12a-mineracao-veredito.md +0 -0
  298. /package/src/modules/lowticket/skills/{lowticket-metodologia → wizz-lowticket-metodologia}/knowledge/12b-fabrica-de-ofertas.md +0 -0
  299. /package/src/modules/lowticket/skills/{lowticket-metodologia → wizz-lowticket-metodologia}/knowledge/12c-anatomia-low-ticket.md +0 -0
  300. /package/src/modules/lowticket/skills/{lowticket-metodologia → wizz-lowticket-metodologia}/knowledge/13-benchmarks-vsl.md +0 -0
  301. /package/src/modules/lowticket/skills/{lowticket-metodologia → wizz-lowticket-metodologia}/knowledge/14-vocabulario.md +0 -0
  302. /package/src/modules/lowticket/skills/{lowticket-metodologia → wizz-lowticket-metodologia}/knowledge/15-como-estender.md +0 -0
  303. /package/src/modules/lowticket/skills/{lowticket-metodologia → wizz-lowticket-metodologia}/knowledge/17-rastreamento.md +0 -0
  304. /package/src/modules/lowticket/skills/{lowticket-metodologia → wizz-lowticket-metodologia}/knowledge/18-copy-desejo-oferta.md +0 -0
  305. /package/src/modules/lowticket/skills/{lowticket-metodologia → wizz-lowticket-metodologia}/knowledge/INDEX.md +0 -0
  306. /package/src/modules/lowticket/skills/{lowticket-metodologia → wizz-lowticket-metodologia}/knowledge/guardrails.md +0 -0
  307. /package/src/modules/lowticket/skills/{lowticket-metodologia → wizz-lowticket-metodologia}/knowledge/pontos-em-aberto.md +0 -0
  308. /package/src/modules/lowticket/skills/{lowticket-metodologia → wizz-lowticket-metodologia}/references/swipe-file.md +0 -0
  309. /package/src/modules/lowticket/skills/{lowticket-pagina → wizz-lowticket-pagina}/references/metas-e-medicao.md +0 -0
  310. /package/src/modules/lowticket/skills/{lowticket-pagina → wizz-lowticket-pagina}/references/padroes-de-codigo.md +0 -0
  311. /package/src/modules/lowticket/skills/{lowticket-trafego → wizz-lowticket-trafego}/references/formato-do-diagnostico.md +0 -0
@@ -0,0 +1,368 @@
1
+ // session-rules.js — SessionStart hook
2
+ //
3
+ // Fonte de verdade: wizz-method/tools/hooks/. Instalar via `npm run sync:global`.
4
+ //
5
+ // Três responsabilidades, um processo só (SessionStart roda 1x por sessão):
6
+ //
7
+ // 1. Regras de comunicação, injetadas UMA vez por sessão (antes:
8
+ // no-narration-enforce repetia ~80 tokens em TODO prompt via
9
+ // UserPromptSubmit). Mesmo conteúdo, custo fixo por sessão.
10
+ //
11
+ // 2. Feature ativa: resolve o `active_feature` SOZINHO, sem o usuário
12
+ // precisar invocar `wizz-set-feature` e responder duas perguntas. Ordem:
13
+ // branch git (mais fresco que o config) > `_wizz/bmm/config.yaml` > nada.
14
+ // Custo zero quando não há `_wizz/` nem branch de feature: a linha
15
+ // simplesmente não é emitida.
16
+ //
17
+ // 3. Teto da auto-memória: o teto de 40 memórias e 8 KB de índice está
18
+ // escrito no CLAUDE.md global desde 2026-08-28, mas nada disparava a
19
+ // checagem — quem estoura só descobre quando o índice já custa caro em
20
+ // toda sessão. Aqui a checagem acontece sozinha, 1x por sessão, e só
21
+ // fala quando há o que dizer. Abaixo de 90% do teto: silêncio, zero token.
22
+ //
23
+ // Nunca bloqueia: qualquer erro vira "sem feature ativa" e a sessão segue.
24
+
25
+ const fs = require('node:fs');
26
+ const os = require('node:os');
27
+ const path = require('node:path');
28
+
29
+ // Cópia comprimida e INTENCIONAL da regra de comunicação. A fonte é
30
+ // src/modules/wizz/_shared/communication-rules.md; este hook precisa ser
31
+ // autocontido porque roda de ~/.claude/hooks, longe do repo. Editou lá,
32
+ // edite aqui: test/test-feature-context.js falha se as duas divergirem.
33
+ const RULES =
34
+ 'REGRA DE COMUNICAÇÃO (permanente, não-negociável): não narrar o passo a passo ' +
35
+ 'enquanto trabalha; pausar e perguntar SÓ em decisão do usuário ou risco ' +
36
+ 'irreversível; fechar SEMPRE com resumo curto em tópicos, linguagem simples, ' +
37
+ 'sem jargão; sem em-dashes; comunicação enxuta por default, expandir só sob demanda.';
38
+
39
+ // Branches que NUNCA viram feature: são linha principal, não trabalho nomeado.
40
+ const TRUNK = new Set(['main', 'master', 'develop', 'dev', 'staging', 'stage', 'prod', 'production', 'trunk', 'default', 'release']);
41
+
42
+ // Branch de release/versão não é feature: nomeia um corte do produto, não um trabalho.
43
+ const RELEASE_PREFIX = /^(release|rc|v)[/-]/i;
44
+
45
+ // Prefixos de convenção que descrevem o TIPO do trabalho, não a feature.
46
+ const TYPE_PREFIX = /^(feat|feature|fix|bugfix|hotfix|chore|refactor|docs|test|perf|ci|build|style)[/-]/i;
47
+
48
+ /**
49
+ * Normaliza um texto livre para o mesmo slug kebab-case que a skill
50
+ * `wizz-set-feature` grava, para branch e config nunca divergirem por formato.
51
+ * @param {string} raw
52
+ * @returns {string} slug kebab-case, ou '' se não sobrar nada utilizável
53
+ */
54
+ function toSlug(raw) {
55
+ if (typeof raw !== 'string') return '';
56
+ return raw
57
+ .normalize('NFD')
58
+ .replaceAll(/[\u0300-\u036F]/g, '')
59
+ .toLowerCase()
60
+ .replaceAll(/[^a-z0-9]+/g, '-')
61
+ .replaceAll(/^-+|-+$/g, '')
62
+ .slice(0, 60);
63
+ }
64
+
65
+ /**
66
+ * Lê o branch atual sem subprocesso: `.git/HEAD` já traz o ref, e um read de
67
+ * arquivo é mais barato e mais seguro que um `git` no PATH (que pode nem existir).
68
+ * Sobe até 6 níveis para achar o `.git` de um subdiretório do repo.
69
+ * @param {string} cwd
70
+ * @returns {string} nome do branch, ou '' (detached HEAD, sem repo, erro)
71
+ */
72
+ function readGitBranch(cwd) {
73
+ let dir = cwd;
74
+ for (let i = 0; i < 6; i++) {
75
+ const gitPath = path.join(dir, '.git');
76
+ try {
77
+ const stat = fs.statSync(gitPath);
78
+ let headFile = path.join(gitPath, 'HEAD');
79
+ if (stat.isFile()) {
80
+ // worktree/submódulo: `.git` é um arquivo `gitdir: <caminho>`
81
+ const m = /^gitdir:\s*(.+)$/m.exec(fs.readFileSync(gitPath, 'utf8'));
82
+ if (!m) return '';
83
+ const resolved = path.resolve(dir, m[1].trim());
84
+ headFile = path.join(resolved, 'HEAD');
85
+ }
86
+ const head = fs.readFileSync(headFile, 'utf8').trim();
87
+ const ref = /^ref:\s*refs\/heads\/(.+)$/.exec(head);
88
+ return ref ? ref[1] : ''; // detached HEAD => sem branch => sem feature
89
+ } catch {
90
+ // segue subindo
91
+ }
92
+ const parent = path.dirname(dir);
93
+ if (parent === dir) break;
94
+ dir = parent;
95
+ }
96
+ return '';
97
+ }
98
+
99
+ /**
100
+ * Deriva um slug de feature do nome do branch. Branch de tronco e branch sem
101
+ * nome útil devolvem '' (nenhuma feature), nunca um slug inventado.
102
+ * @param {string} branch
103
+ * @returns {string}
104
+ */
105
+ function featureFromBranch(branch) {
106
+ if (!branch) return '';
107
+ if (TRUNK.has(branch.toLowerCase())) return '';
108
+ if (RELEASE_PREFIX.test(branch)) return '';
109
+ const stripped = branch.replace(TYPE_PREFIX, '');
110
+ const slug = toSlug(stripped);
111
+ if (!slug || TRUNK.has(slug)) return '';
112
+ // Branch que é só um número de issue não descreve feature nenhuma.
113
+ if (/^\d+$/.test(slug)) return '';
114
+ return slug;
115
+ }
116
+
117
+ /**
118
+ * Lê `active_feature` do config do módulo bmm. Parser de 1 chave de propósito:
119
+ * o hook não pode depender de uma lib de YAML (roda fora do node_modules do repo).
120
+ * @param {string} cwd
121
+ * @returns {{slug: string, configPath: string}} slug '' quando ausente/vazio
122
+ */
123
+ function readConfigFeature(cwd) {
124
+ const configPath = path.join(cwd, '_wizz', 'bmm', 'config.yaml');
125
+ try {
126
+ const text = fs.readFileSync(configPath, 'utf8');
127
+ const m = /^active_feature:\s*(.*)$/m.exec(text);
128
+ if (!m) return { slug: '', configPath };
129
+ const value = m[1]
130
+ .replace(/#.*$/, '')
131
+ .trim()
132
+ .replaceAll(/^["']|["']$/g, '');
133
+ return { slug: toSlug(value), configPath };
134
+ } catch {
135
+ return { slug: '', configPath };
136
+ }
137
+ }
138
+
139
+ /**
140
+ * Acha a raiz do projeto Wizz (a pasta que contém `_wizz/`) subindo do cwd.
141
+ * O agente costuma rodar de uma subpasta, então checar só o cwd erraria.
142
+ * @param {string} cwd
143
+ * @returns {string} caminho da raiz, ou '' se não for projeto Wizz
144
+ */
145
+ function findWizzRoot(cwd) {
146
+ let dir = cwd;
147
+ for (let i = 0; i < 6; i++) {
148
+ try {
149
+ if (fs.existsSync(path.join(dir, '_wizz'))) return dir;
150
+ } catch {
151
+ // ignora e segue subindo
152
+ }
153
+ const parent = path.dirname(dir);
154
+ if (parent === dir) break;
155
+ dir = parent;
156
+ }
157
+ return '';
158
+ }
159
+
160
+ /**
161
+ * Monta a linha de contexto da feature. Devolve '' quando não há feature
162
+ * nenhuma. Silêncio custa zero token e é o caso comum fora de projeto Wizz.
163
+ * @param {string} cwd
164
+ * @returns {string}
165
+ */
166
+ function buildFeatureContext(cwd) {
167
+ const wizzRoot = findWizzRoot(cwd);
168
+ const isWizzProject = Boolean(wizzRoot);
169
+ const fromConfig = isWizzProject ? readConfigFeature(wizzRoot) : { slug: '', configPath: '' };
170
+ const fromBranch = featureFromBranch(readGitBranch(cwd));
171
+
172
+ // O branch ganha do config: é o que descreve o trabalho de AGORA. O config
173
+ // pode ter ficado numa feature antiga que ninguém lembrou de trocar.
174
+ const active = fromBranch || fromConfig.slug;
175
+ if (!active) return '';
176
+
177
+ const parts = [
178
+ `FEATURE ATIVA: ${active}` + (fromBranch ? ' (derivada do branch git).' : ' (do config).'),
179
+ 'Use como contexto sem perguntar nada:',
180
+ isWizzProject
181
+ ? `artefatos de planejamento e implementação vão para as subpastas ${active}/;`
182
+ : 'não é projeto Wizz, então não há subpasta de artefato;',
183
+ `memória gravada nesta sessão leva tema/feature "${active}".`,
184
+ ];
185
+
186
+ if (fromBranch && isWizzProject && fromConfig.slug !== fromBranch) {
187
+ parts.push(
188
+ `O config (_wizz/bmm/config.yaml) ainda diz "${fromConfig.slug || 'vazio'}": grave "${active}" nele na primeira vez que escrever um artefato, e avise em UMA linha.`,
189
+ );
190
+ }
191
+
192
+ parts.push(
193
+ 'NÃO peça confirmação de feature. Só invoque a skill wizz-set-feature se o usuário pedir explicitamente para trocar, ou se houver ambiguidade real entre duas features abertas.',
194
+ );
195
+
196
+ return parts.join(' ');
197
+ }
198
+
199
+ // ── Teto da auto-memória ────────────────────────────────────────────────
200
+ // Fonte do teto: ~/.claude/CLAUDE.md ("Teto da auto-memória", 2026-08-28).
201
+ // Mudou lá, mude aqui: test/test-feature-context.js falha se divergirem.
202
+ const MEMORY_MAX_FILES = 40;
203
+ const MEMORY_MAX_INDEX_BYTES = 8 * 1024;
204
+ // Avisa ANTES de estourar. Estourar já significa sessões caras rodando faz
205
+ // tempo; o valor do aviso está em chegar enquanto a poda ainda é barata.
206
+ const MEMORY_WARN_RATIO = 0.9;
207
+
208
+ /**
209
+ * Resolve o diretório de auto-memória do projeto. O slug histórico do Claude
210
+ * Code troca `/` e `.` por `-`, mas nem sempre normalizou espaço do mesmo
211
+ * jeito, então há um fallback por basename. O fallback só vale quando há UM
212
+ * candidato: aviso apontando para o projeto errado é pior que aviso nenhum.
213
+ * @param {string} cwd
214
+ * @returns {string} caminho do diretório, ou '' quando não há memória
215
+ */
216
+ function resolveMemoryDir(cwd) {
217
+ try {
218
+ const base = path.join(os.homedir(), '.claude', 'projects');
219
+ const direct = path.join(base, cwd.replaceAll(/[/.]/g, '-'), 'memory');
220
+ if (fs.existsSync(direct)) return direct;
221
+
222
+ const name = path.basename(cwd);
223
+ if (!name) return '';
224
+ const matches = fs
225
+ .readdirSync(base)
226
+ .filter((entry) => entry.endsWith(`-${name}`) || entry.endsWith(`-${name.replaceAll(/[ .]/g, '-')}`))
227
+ .map((entry) => path.join(base, entry, 'memory'))
228
+ .filter((dir) => fs.existsSync(dir));
229
+ return matches.length === 1 ? matches[0] : '';
230
+ } catch {
231
+ return '';
232
+ }
233
+ }
234
+
235
+ /**
236
+ * Conta as memórias e mede o índice. `_archive/` fica de fora de propósito:
237
+ * é exatamente para onde a poda move os originais, então contá-lo faria o
238
+ * aviso nunca sumir depois de resolvido.
239
+ * @param {string} memoryDir
240
+ * @returns {{files: number, indexBytes: number}}
241
+ */
242
+ function measureMemory(memoryDir) {
243
+ let files = 0;
244
+ let indexBytes = 0;
245
+ try {
246
+ for (const entry of fs.readdirSync(memoryDir, { withFileTypes: true })) {
247
+ if (!entry.isFile() || !entry.name.endsWith('.md')) continue;
248
+ if (entry.name === 'MEMORY.md') {
249
+ indexBytes = fs.statSync(path.join(memoryDir, entry.name)).size;
250
+ continue;
251
+ }
252
+ files++;
253
+ }
254
+ } catch {
255
+ return { files: 0, indexBytes: 0 };
256
+ }
257
+ return { files, indexBytes };
258
+ }
259
+
260
+ /**
261
+ * Monta o aviso a partir da medida. Parte pura de propósito: é o que decide o
262
+ * silêncio, então precisa ser testável sem montar um ~/.claude falso.
263
+ * Devolve '' abaixo de 90% dos dois tetos — o caso comum, e o silêncio é o
264
+ * que mantém o custo em zero.
265
+ * @param {number} files
266
+ * @param {number} indexBytes
267
+ * @returns {string}
268
+ */
269
+ function formatMemoryCeiling(files, indexBytes) {
270
+ if (files === 0 && indexBytes === 0) return '';
271
+
272
+ const over = files > MEMORY_MAX_FILES || indexBytes > MEMORY_MAX_INDEX_BYTES;
273
+ const near =
274
+ files >= Math.floor(MEMORY_MAX_FILES * MEMORY_WARN_RATIO) || indexBytes >= Math.floor(MEMORY_MAX_INDEX_BYTES * MEMORY_WARN_RATIO);
275
+ if (!over && !near) return '';
276
+
277
+ const kb = (indexBytes / 1024).toFixed(1);
278
+ const estado = `${files}/${MEMORY_MAX_FILES} memórias e índice de ${kb}/8 KB`;
279
+
280
+ return over
281
+ ? `TETO DA AUTO-MEMÓRIA ESTOURADO neste projeto: ${estado}. Acima do teto o índice custa mais token por sessão do que economiza. Antes de gravar qualquer memória nova, pode: funda por subsistema (N memórias do mesmo tema viram 1 arquivo com seções) e mova os originais para \`_archive/\`, que não entra no índice. Nunca apague. Método em project_poda_automemoria_plano.`
282
+ : `AUTO-MEMÓRIA PERTO DO TETO neste projeto: ${estado}. Ainda cabe, mas ao gravar memória nova prefira ATUALIZAR um registro existente a criar um segundo, e verifique se o fato não pertence a outra camada (decisão e estado de projeto são do Cérebro, não daqui).`;
283
+ }
284
+
285
+ /**
286
+ * Resolve, mede e formata. É o que o hook chama; a decisão de falar ou calar
287
+ * mora em formatMemoryCeiling.
288
+ * @param {string} cwd
289
+ * @returns {string}
290
+ */
291
+ function buildMemoryCeilingContext(cwd) {
292
+ const memoryDir = resolveMemoryDir(cwd);
293
+ if (!memoryDir) return '';
294
+ const { files, indexBytes } = measureMemory(memoryDir);
295
+ return formatMemoryCeiling(files, indexBytes);
296
+ }
297
+
298
+ // Só lê stdin quando o hook é invocado direto pelo Claude Code. Sob `require`
299
+ // (os testes), o módulo expõe as funções puras sem consumir stdin nem sair.
300
+ if (require.main === module) {
301
+ let input = '';
302
+ const stdinTimeout = setTimeout(() => finish(''), 3000);
303
+ process.stdin.setEncoding('utf8');
304
+ process.stdin.on('data', (chunk) => (input += chunk));
305
+ process.stdin.on('end', () => {
306
+ clearTimeout(stdinTimeout);
307
+ finish(input);
308
+ });
309
+ }
310
+
311
+ function finish(raw) {
312
+ let context = RULES;
313
+
314
+ // Um cwd só para as duas resoluções: o do payload manda, porque o
315
+ // process.cwd() do hook pode não ser o projeto da sessão. Feature e teto
316
+ // de memória olhando projetos diferentes seria pior que não avisar.
317
+ let cwd = process.cwd();
318
+ try {
319
+ const payload = JSON.parse(raw || '{}');
320
+ if (payload && typeof payload.cwd === 'string' && payload.cwd) cwd = payload.cwd;
321
+ } catch {
322
+ // payload ausente ou inválido: cai no cwd do processo
323
+ }
324
+
325
+ try {
326
+ const feature = buildFeatureContext(cwd);
327
+ if (feature) context += `\n\n${feature}`;
328
+ } catch {
329
+ // resolução de feature NUNCA derruba as regras de comunicação
330
+ }
331
+
332
+ try {
333
+ const ceiling = buildMemoryCeilingContext(cwd);
334
+ if (ceiling) context += `\n\n${ceiling}`;
335
+ } catch {
336
+ // teto da memória é aviso, não gate: erro aqui não afeta o resto
337
+ }
338
+
339
+ try {
340
+ process.stdout.write(
341
+ JSON.stringify({
342
+ hookSpecificOutput: {
343
+ hookEventName: 'SessionStart',
344
+ additionalContext: context,
345
+ },
346
+ }),
347
+ );
348
+ } catch {
349
+ // nunca bloquear
350
+ }
351
+ process.exit(0);
352
+ }
353
+
354
+ module.exports = {
355
+ MEMORY_MAX_FILES,
356
+ MEMORY_MAX_INDEX_BYTES,
357
+ MEMORY_WARN_RATIO,
358
+ resolveMemoryDir,
359
+ measureMemory,
360
+ formatMemoryCeiling,
361
+ buildMemoryCeilingContext,
362
+ toSlug,
363
+ featureFromBranch,
364
+ readConfigFeature,
365
+ findWizzRoot,
366
+ buildFeatureContext,
367
+ readGitBranch,
368
+ };