wizz-method 2.0.0 → 2.1.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 (310) 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 +62 -37
  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/install.js +1 -1
  156. package/tools/installer/commands/resolve.js +95 -0
  157. package/tools/installer/core/doctor.js +648 -0
  158. package/tools/installer/core/hash-cache.js +156 -0
  159. package/tools/installer/core/help-catalog.js +4 -1
  160. package/tools/installer/core/hooks-settings.js +178 -0
  161. package/tools/installer/core/installer.js +297 -15
  162. package/tools/installer/core/legacy-warnings.js +0 -4
  163. package/tools/installer/core/manifest-generator.js +121 -43
  164. package/tools/installer/core/manifest.js +36 -32
  165. package/tools/installer/core/module-config-writer.js +4 -1
  166. package/tools/installer/core/python-check.js +60 -63
  167. package/tools/installer/core/quick-update.js +76 -43
  168. package/tools/installer/core/resolved-config.js +168 -0
  169. package/tools/installer/core/resolved-customizations.js +736 -0
  170. package/tools/installer/core/resolved-includes.js +262 -0
  171. package/tools/installer/core/resolved-schema.js +148 -0
  172. package/tools/installer/core/user-file-preservation.js +40 -8
  173. package/tools/installer/core/wizz-dir.js +117 -0
  174. package/tools/installer/core/yaml-cache.js +105 -0
  175. package/tools/installer/fs-native.js +97 -6
  176. package/tools/installer/ide/_config-driven.js +12 -75
  177. package/tools/installer/ide/platform-codes.js +111 -16
  178. package/tools/installer/ide/platform-codes.yaml +45 -100
  179. package/tools/installer/ide/shared/path-utils.js +6 -208
  180. package/tools/installer/install-messages.yaml +4 -14
  181. package/tools/installer/modules/channel-plan.js +15 -2
  182. package/tools/installer/modules/config-collector.js +762 -0
  183. package/tools/installer/modules/config-values.js +352 -0
  184. package/tools/installer/modules/custom-module-manager.js +161 -28
  185. package/tools/installer/modules/env-vars.js +119 -0
  186. package/tools/installer/modules/external-manager.js +133 -60
  187. package/tools/installer/modules/git-cache-utils.js +125 -0
  188. package/tools/installer/modules/module-catalog.js +565 -0
  189. package/tools/installer/modules/module-installer.js +618 -0
  190. package/tools/installer/modules/module-interface.js +86 -0
  191. package/tools/installer/modules/official-modules.js +98 -2172
  192. package/tools/installer/modules/pin-spec.js +125 -0
  193. package/tools/installer/modules/plugin-resolver.js +4 -0
  194. package/tools/installer/modules/skills-lib.js +3 -6
  195. package/tools/installer/prompts.js +0 -3
  196. package/tools/installer/ui.js +89 -54
  197. package/tools/installer/wizz-cli.js +1 -1
  198. package/tools/lib/frontmatter.js +139 -0
  199. package/tools/lib/sync-targets.mjs +49 -0
  200. package/tools/lib/walk.js +93 -0
  201. package/wizz-modules.yaml +9 -0
  202. package/src/scripts/__pycache__/memlog.cpython-313.pyc +0 -0
  203. package/src/scripts/memlog.py +0 -233
  204. package/src/scripts/tests/__pycache__/test_memlog.cpython-313-pytest-9.1.1.pyc +0 -0
  205. package/src/scripts/tests/__pycache__/test_resolve_customization.cpython-313-pytest-9.1.1.pyc +0 -0
  206. package/src/scripts/tests/test_memlog.py +0 -306
  207. package/src/skills-lib/wizz-huashu-design/assets/showcases/INDEX.md +0 -115
  208. package/src/skills-lib/wizz-huashu-design/assets/showcases/cover/cover-build.html +0 -235
  209. package/src/skills-lib/wizz-huashu-design/assets/showcases/cover/cover-build.png +0 -0
  210. package/src/skills-lib/wizz-huashu-design/assets/showcases/cover/cover-pentagram.html +0 -229
  211. package/src/skills-lib/wizz-huashu-design/assets/showcases/cover/cover-pentagram.png +0 -0
  212. package/src/skills-lib/wizz-huashu-design/assets/showcases/cover/cover-takram.html +0 -288
  213. package/src/skills-lib/wizz-huashu-design/assets/showcases/cover/cover-takram.png +0 -0
  214. package/src/skills-lib/wizz-huashu-design/assets/showcases/infographic/infographic-build.html +0 -503
  215. package/src/skills-lib/wizz-huashu-design/assets/showcases/infographic/infographic-build.png +0 -0
  216. package/src/skills-lib/wizz-huashu-design/assets/showcases/infographic/infographic-pentagram.html +0 -600
  217. package/src/skills-lib/wizz-huashu-design/assets/showcases/infographic/infographic-pentagram.png +0 -0
  218. package/src/skills-lib/wizz-huashu-design/assets/showcases/infographic/infographic-takram.html +0 -670
  219. package/src/skills-lib/wizz-huashu-design/assets/showcases/infographic/infographic-takram.png +0 -0
  220. package/src/skills-lib/wizz-huashu-design/assets/showcases/ppt/ppt-build.html +0 -382
  221. package/src/skills-lib/wizz-huashu-design/assets/showcases/ppt/ppt-build.png +0 -0
  222. package/src/skills-lib/wizz-huashu-design/assets/showcases/ppt/ppt-pentagram.html +0 -536
  223. package/src/skills-lib/wizz-huashu-design/assets/showcases/ppt/ppt-pentagram.png +0 -0
  224. package/src/skills-lib/wizz-huashu-design/assets/showcases/ppt/ppt-takram.html +0 -497
  225. package/src/skills-lib/wizz-huashu-design/assets/showcases/ppt/ppt-takram.png +0 -0
  226. package/src/skills-lib/wizz-huashu-design/assets/showcases/website-ai-nav/ainav-build.html +0 -385
  227. package/src/skills-lib/wizz-huashu-design/assets/showcases/website-ai-nav/ainav-build.png +0 -0
  228. package/src/skills-lib/wizz-huashu-design/assets/showcases/website-ai-nav/ainav-pentagram.html +0 -422
  229. package/src/skills-lib/wizz-huashu-design/assets/showcases/website-ai-nav/ainav-pentagram.png +0 -0
  230. package/src/skills-lib/wizz-huashu-design/assets/showcases/website-ai-nav/ainav-takram.html +0 -499
  231. package/src/skills-lib/wizz-huashu-design/assets/showcases/website-ai-nav/ainav-takram.png +0 -0
  232. package/src/skills-lib/wizz-huashu-design/assets/showcases/website-ai-writing/aiwriting-build.html +0 -562
  233. package/src/skills-lib/wizz-huashu-design/assets/showcases/website-ai-writing/aiwriting-build.png +0 -0
  234. package/src/skills-lib/wizz-huashu-design/assets/showcases/website-ai-writing/aiwriting-pentagram.html +0 -548
  235. package/src/skills-lib/wizz-huashu-design/assets/showcases/website-ai-writing/aiwriting-pentagram.png +0 -0
  236. package/src/skills-lib/wizz-huashu-design/assets/showcases/website-ai-writing/aiwriting-takram.html +0 -696
  237. package/src/skills-lib/wizz-huashu-design/assets/showcases/website-ai-writing/aiwriting-takram.png +0 -0
  238. package/src/skills-lib/wizz-huashu-design/assets/showcases/website-devdocs/devdocs-build.html +0 -372
  239. package/src/skills-lib/wizz-huashu-design/assets/showcases/website-devdocs/devdocs-build.png +0 -0
  240. package/src/skills-lib/wizz-huashu-design/assets/showcases/website-devdocs/devdocs-pentagram.html +0 -460
  241. package/src/skills-lib/wizz-huashu-design/assets/showcases/website-devdocs/devdocs-pentagram.png +0 -0
  242. package/src/skills-lib/wizz-huashu-design/assets/showcases/website-devdocs/devdocs-takram.html +0 -494
  243. package/src/skills-lib/wizz-huashu-design/assets/showcases/website-devdocs/devdocs-takram.png +0 -0
  244. package/src/skills-lib/wizz-huashu-design/assets/showcases/website-homepage/homepage-build.html +0 -367
  245. package/src/skills-lib/wizz-huashu-design/assets/showcases/website-homepage/homepage-build.png +0 -0
  246. package/src/skills-lib/wizz-huashu-design/assets/showcases/website-homepage/homepage-pentagram.html +0 -368
  247. package/src/skills-lib/wizz-huashu-design/assets/showcases/website-homepage/homepage-pentagram.png +0 -0
  248. package/src/skills-lib/wizz-huashu-design/assets/showcases/website-homepage/homepage-takram.html +0 -459
  249. package/src/skills-lib/wizz-huashu-design/assets/showcases/website-homepage/homepage-takram.png +0 -0
  250. package/src/skills-lib/wizz-huashu-design/assets/showcases/website-saas/saas-build.html +0 -493
  251. package/src/skills-lib/wizz-huashu-design/assets/showcases/website-saas/saas-build.png +0 -0
  252. package/src/skills-lib/wizz-huashu-design/assets/showcases/website-saas/saas-pentagram.html +0 -556
  253. package/src/skills-lib/wizz-huashu-design/assets/showcases/website-saas/saas-pentagram.png +0 -0
  254. package/src/skills-lib/wizz-huashu-design/assets/showcases/website-saas/saas-takram.html +0 -604
  255. package/src/skills-lib/wizz-huashu-design/assets/showcases/website-saas/saas-takram.png +0 -0
  256. package/tools/installer/file-ops.js +0 -204
  257. package/tools/installer/ide/shared/skill-manifest.js +0 -57
  258. package/tools/installer/yaml-format.js +0 -245
  259. package/web-bundles/README.md +0 -46
  260. package/web-bundles/brainstorming-coach/INSTRUCTIONS.md +0 -86
  261. package/web-bundles/brainstorming-coach/SKILL.md +0 -83
  262. package/web-bundles/brainstorming-coach/brain-methods.csv +0 -62
  263. package/web-bundles/bundles.json +0 -139
  264. package/web-bundles/market-and-industry-research/INSTRUCTIONS.md +0 -88
  265. package/web-bundles/market-and-industry-research/SKILL.md +0 -59
  266. package/web-bundles/prd-coach/INSTRUCTIONS.md +0 -86
  267. package/web-bundles/prd-coach/SKILL.md +0 -101
  268. package/web-bundles/prd-coach/prd-template.md +0 -165
  269. package/web-bundles/prd-coach/prd-validation-checklist.md +0 -135
  270. package/web-bundles/prfaq-coach/INSTRUCTIONS.md +0 -86
  271. package/web-bundles/prfaq-coach/SKILL.md +0 -139
  272. package/web-bundles/product-brief-coach/INSTRUCTIONS.md +0 -86
  273. package/web-bundles/product-brief-coach/SKILL.md +0 -113
  274. package/web-bundles/ux-coach/INSTRUCTIONS.md +0 -92
  275. package/web-bundles/ux-coach/SKILL.md +0 -187
  276. package/web-bundles/ux-coach/ux-validation.md +0 -100
  277. /package/src/modules/lowticket/skills/{lowticket-funil → wizz-lowticket-funil}/references/mapa-do-funil.md +0 -0
  278. /package/src/modules/lowticket/skills/{lowticket-metodologia → wizz-lowticket-metodologia}/CATALOGO.md +0 -0
  279. /package/src/modules/lowticket/skills/{lowticket-metodologia → wizz-lowticket-metodologia}/knowledge/01-principios.md +0 -0
  280. /package/src/modules/lowticket/skills/{lowticket-metodologia → wizz-lowticket-metodologia}/knowledge/02-diagnostico-funil.md +0 -0
  281. /package/src/modules/lowticket/skills/{lowticket-metodologia → wizz-lowticket-metodologia}/knowledge/03-campanha-bidcap.md +0 -0
  282. /package/src/modules/lowticket/skills/{lowticket-metodologia → wizz-lowticket-metodologia}/knowledge/04-criativos.md +0 -0
  283. /package/src/modules/lowticket/skills/{lowticket-metodologia → wizz-lowticket-metodologia}/knowledge/04a-criativos-ia.md +0 -0
  284. /package/src/modules/lowticket/skills/{lowticket-metodologia → wizz-lowticket-metodologia}/knowledge/04b-criativos-formatos.md +0 -0
  285. /package/src/modules/lowticket/skills/{lowticket-metodologia → wizz-lowticket-metodologia}/knowledge/05-oferta.md +0 -0
  286. /package/src/modules/lowticket/skills/{lowticket-metodologia → wizz-lowticket-metodologia}/knowledge/06-pagina-vendas.md +0 -0
  287. /package/src/modules/lowticket/skills/{lowticket-metodologia → wizz-lowticket-metodologia}/knowledge/06a-instagram.md +0 -0
  288. /package/src/modules/lowticket/skills/{lowticket-metodologia → wizz-lowticket-metodologia}/knowledge/06b-player-vsl.md +0 -0
  289. /package/src/modules/lowticket/skills/{lowticket-metodologia → wizz-lowticket-metodologia}/knowledge/07-funil-upsell.md +0 -0
  290. /package/src/modules/lowticket/skills/{lowticket-metodologia → wizz-lowticket-metodologia}/knowledge/07a-copy-humanizacao.md +0 -0
  291. /package/src/modules/lowticket/skills/{lowticket-metodologia → wizz-lowticket-metodologia}/knowledge/08-pesquisa-publico.md +0 -0
  292. /package/src/modules/lowticket/skills/{lowticket-metodologia → wizz-lowticket-metodologia}/knowledge/09-especialista-coproducao.md +0 -0
  293. /package/src/modules/lowticket/skills/{lowticket-metodologia → wizz-lowticket-metodologia}/knowledge/10-levantar-caixa.md +0 -0
  294. /package/src/modules/lowticket/skills/{lowticket-metodologia → wizz-lowticket-metodologia}/knowledge/11-checklist-roi.md +0 -0
  295. /package/src/modules/lowticket/skills/{lowticket-metodologia → wizz-lowticket-metodologia}/knowledge/12-mineracao-ofertas.md +0 -0
  296. /package/src/modules/lowticket/skills/{lowticket-metodologia → wizz-lowticket-metodologia}/knowledge/12a-mineracao-veredito.md +0 -0
  297. /package/src/modules/lowticket/skills/{lowticket-metodologia → wizz-lowticket-metodologia}/knowledge/12b-fabrica-de-ofertas.md +0 -0
  298. /package/src/modules/lowticket/skills/{lowticket-metodologia → wizz-lowticket-metodologia}/knowledge/12c-anatomia-low-ticket.md +0 -0
  299. /package/src/modules/lowticket/skills/{lowticket-metodologia → wizz-lowticket-metodologia}/knowledge/13-benchmarks-vsl.md +0 -0
  300. /package/src/modules/lowticket/skills/{lowticket-metodologia → wizz-lowticket-metodologia}/knowledge/14-vocabulario.md +0 -0
  301. /package/src/modules/lowticket/skills/{lowticket-metodologia → wizz-lowticket-metodologia}/knowledge/15-como-estender.md +0 -0
  302. /package/src/modules/lowticket/skills/{lowticket-metodologia → wizz-lowticket-metodologia}/knowledge/17-rastreamento.md +0 -0
  303. /package/src/modules/lowticket/skills/{lowticket-metodologia → wizz-lowticket-metodologia}/knowledge/18-copy-desejo-oferta.md +0 -0
  304. /package/src/modules/lowticket/skills/{lowticket-metodologia → wizz-lowticket-metodologia}/knowledge/INDEX.md +0 -0
  305. /package/src/modules/lowticket/skills/{lowticket-metodologia → wizz-lowticket-metodologia}/knowledge/guardrails.md +0 -0
  306. /package/src/modules/lowticket/skills/{lowticket-metodologia → wizz-lowticket-metodologia}/knowledge/pontos-em-aberto.md +0 -0
  307. /package/src/modules/lowticket/skills/{lowticket-metodologia → wizz-lowticket-metodologia}/references/swipe-file.md +0 -0
  308. /package/src/modules/lowticket/skills/{lowticket-pagina → wizz-lowticket-pagina}/references/metas-e-medicao.md +0 -0
  309. /package/src/modules/lowticket/skills/{lowticket-pagina → wizz-lowticket-pagina}/references/padroes-de-codigo.md +0 -0
  310. /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
+ };