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
@@ -7,7 +7,6 @@
7
7
  # installer:
8
8
  # target_dir: Directory where skill directories are installed (project/workspace)
9
9
  # global_target_dir: (optional) User-home directory for global install
10
- # ancestor_conflict_check: (optional) Refuse install when ancestor dir has WIZZ files
11
10
  # agents_target_dir: (optional) Directory for native WIZZ-authored subagents
12
11
  # (src/modules/wizz/subagents/). Currently declared by claude-code, codex,
13
12
  # opencode, and gemini.
@@ -17,6 +16,29 @@
17
16
  # straight from the subagents/ root (its native format is *.md with a
18
17
  # `model:` frontmatter field).
19
18
  #
19
+ # DEFAULTS — most platforms share the same shape, so a top-level `defaults:`
20
+ # block (below) carries what the majority repeat: `preferred: false` and
21
+ # `installer.target_dir` / `installer.global_target_dir` pointing at the
22
+ # `.agents/skills` / `~/.agents/skills` cross-tool standard. Each platform
23
+ # entry only needs to declare what differs from that default:
24
+ # - `name` is always explicit (never defaulted).
25
+ # - `preferred` is omitted unless it is `true`.
26
+ # - `installer.target_dir` / `installer.global_target_dir` are omitted when
27
+ # they match the default; any other `installer.*` field (agents_*,
28
+ # commands_*, ...) is always explicit, defaults never touch those.
29
+ # - A platform that has no `global_target_dir` at all (no global/user-home
30
+ # install path exists for that tool, e.g. ona, replit, trae) declares
31
+ # `installer.global_target_dir: null` explicitly. `loadPlatformCodes()`
32
+ # merges defaults into each entry and then drops any key whose merged
33
+ # value is `null`, so the resulting shape has no `global_target_dir` key
34
+ # at all, matching a platform that never had one.
35
+ # - A platform with nothing left to say beyond its name still declares
36
+ # `installer: {}` so it is recognized as installable; the merge fills in
37
+ # both directories from `defaults.installer`.
38
+ # - A platform with no `installer:` block at all (not installable) is left
39
+ # untouched by the merge — defaults only ever apply to a declared
40
+ # `installer:` section.
41
+ #
20
42
  # INSTALL SCOPE — LOCAL PER PROJECT IS THE ENFORCED DEFAULT.
21
43
  # The installer only ever writes skills to the project-relative `target_dir`
22
44
  # (path.join(projectDir, target_dir) in ide/_config-driven.js). `global_target_dir`
@@ -30,45 +52,41 @@
30
52
  # read from the shared `.agents/skills/` and `~/.agents/skills/` cross-tool standard.
31
53
  # Paths verified against each tool's primary docs as of 2026-04-25.
32
54
 
55
+ defaults:
56
+ preferred: false
57
+ installer:
58
+ target_dir: .agents/skills
59
+ global_target_dir: ~/.agents/skills
60
+
33
61
  platforms:
34
62
  adal:
35
63
  name: "AdaL"
36
- preferred: false
37
64
  installer:
38
65
  target_dir: .adal/skills
39
66
  global_target_dir: ~/.adal/skills
40
67
 
41
68
  amp:
42
69
  name: "Sourcegraph Amp"
43
- preferred: false
44
70
  installer:
45
- target_dir: .agents/skills
46
71
  global_target_dir: ~/.config/agents/skills
47
72
 
48
73
  antigravity:
49
74
  name: "Google Antigravity"
50
- preferred: false
51
75
  installer:
52
76
  target_dir: .agent/skills
53
77
  global_target_dir: ~/.gemini/antigravity/skills
54
78
 
55
79
  antigravity-cli:
56
80
  name: "Antigravity CLI (AGY)"
57
- preferred: false
58
81
  installer:
59
- target_dir: .agents/skills
60
82
  global_target_dir: ~/.gemini/antigravity-cli/skills
61
83
 
62
84
  auggie:
63
85
  name: "Auggie"
64
- preferred: false
65
- installer:
66
- target_dir: .agents/skills
67
- global_target_dir: ~/.agents/skills
86
+ installer: {}
68
87
 
69
88
  bob:
70
89
  name: "IBM Bob"
71
- preferred: false
72
90
  installer:
73
91
  target_dir: .bob/skills
74
92
  global_target_dir: ~/.bob/skills
@@ -83,7 +101,6 @@ platforms:
83
101
 
84
102
  cline:
85
103
  name: "Cline"
86
- preferred: false
87
104
  installer:
88
105
  target_dir: .cline/skills
89
106
  global_target_dir: ~/.cline/skills
@@ -92,73 +109,56 @@ platforms:
92
109
  name: "Codex"
93
110
  preferred: true
94
111
  installer:
95
- target_dir: .agents/skills
96
112
  global_target_dir: ~/.codex/skills
97
113
  agents_target_dir: .codex/agents
98
114
  agents_source_subdir: codex
99
115
 
100
116
  codewhale:
101
117
  name: "CodeWhale"
102
- preferred: false
103
118
  installer:
104
119
  target_dir: .codewhale/skills
105
120
  global_target_dir: ~/.codewhale/skills
106
121
 
107
122
  codebuddy:
108
123
  name: "CodeBuddy"
109
- preferred: false
110
124
  installer:
111
125
  target_dir: .codebuddy/skills
112
126
  global_target_dir: ~/.codebuddy/skills
113
127
 
114
128
  command-code:
115
129
  name: "Command Code"
116
- preferred: false
117
- installer:
118
- target_dir: .agents/skills
119
- global_target_dir: ~/.agents/skills
130
+ installer: {}
120
131
 
121
132
  cortex:
122
133
  name: "Snowflake Cortex Code"
123
- preferred: false
124
134
  installer:
125
135
  target_dir: .cortex/skills
126
136
  global_target_dir: ~/.snowflake/cortex/skills
127
137
 
128
138
  crush:
129
139
  name: "Crush"
130
- preferred: false
131
140
  installer:
132
- target_dir: .agents/skills
133
141
  global_target_dir: ~/.config/agents/skills
134
142
 
135
143
  cursor:
136
144
  name: "Cursor"
137
145
  preferred: true
138
- installer:
139
- target_dir: .agents/skills
140
- global_target_dir: ~/.agents/skills
146
+ installer: {}
141
147
 
142
148
  droid:
143
149
  name: "Factory Droid"
144
- preferred: false
145
150
  installer:
146
151
  target_dir: .factory/skills
147
152
  global_target_dir: ~/.factory/skills
148
153
 
149
154
  firebender:
150
155
  name: "Firebender"
151
- preferred: false
152
156
  installer:
153
157
  target_dir: .firebender/skills
154
- global_target_dir: ~/.agents/skills
155
158
 
156
159
  gemini:
157
160
  name: "Gemini CLI"
158
- preferred: false
159
161
  installer:
160
- target_dir: .agents/skills
161
- global_target_dir: ~/.agents/skills
162
162
  agents_target_dir: .gemini/agents
163
163
  agents_source_subdir: gemini
164
164
 
@@ -166,8 +166,6 @@ platforms:
166
166
  name: "GitHub Copilot"
167
167
  preferred: true
168
168
  installer:
169
- target_dir: .agents/skills
170
- global_target_dir: ~/.agents/skills
171
169
  commands_target_dir: .github/agents
172
170
  commands_extension: .agent.md
173
171
  commands_body_template: "LOAD the FULL {project-root}/{target_dir}/{canonicalId}/SKILL.md, READ its entire contents and follow its directions exactly!"
@@ -186,196 +184,143 @@ platforms:
186
184
 
187
185
  goose:
188
186
  name: "Block Goose"
189
- preferred: false
190
187
  installer:
191
- target_dir: .agents/skills
192
188
  global_target_dir: ~/.config/agents/skills
193
189
 
194
190
  grok:
195
191
  name: "Grok"
196
- preferred: false
197
192
  installer:
198
- target_dir: .agents/skills
199
193
  global_target_dir: ~/.grok/skills
200
194
 
201
195
  hermes:
202
196
  name: "Hermes Agent"
203
- preferred: false
204
197
  installer:
205
- target_dir: .agents/skills
206
198
  global_target_dir: ~/.hermes/skills
207
199
 
208
200
  iflow:
209
201
  name: "iFlow"
210
- preferred: false
211
202
  installer:
212
203
  target_dir: .iflow/skills
213
204
  global_target_dir: ~/.iflow/skills
214
205
 
215
206
  junie:
216
207
  name: "Junie"
217
- preferred: false
218
208
  installer:
219
209
  target_dir: .junie/skills
220
210
  global_target_dir: ~/.junie/skills
221
211
 
222
212
  kilo:
223
213
  name: "KiloCoder"
224
- preferred: false
225
214
  installer:
226
- target_dir: .agents/skills
227
215
  global_target_dir: ~/.kilocode/skills
228
216
 
229
217
  kimi-code:
230
218
  name: "Kimi Code"
231
- preferred: false
232
- installer:
233
- target_dir: .agents/skills
234
- global_target_dir: ~/.agents/skills
219
+ installer: {}
235
220
 
236
221
  kiro:
237
222
  name: "Kiro"
238
- preferred: false
239
223
  installer:
240
224
  target_dir: .kiro/skills
241
225
  global_target_dir: ~/.kiro/skills
242
226
 
243
227
  kode:
244
228
  name: "Kode"
245
- preferred: false
246
229
  installer:
247
230
  target_dir: .kode/skills
248
231
  global_target_dir: ~/.kode/skills
249
232
 
250
233
  mistral-vibe:
251
234
  name: "Mistral Vibe"
252
- preferred: false
253
235
  installer:
254
- target_dir: .agents/skills
255
236
  global_target_dir: ~/.vibe/skills
256
237
 
257
238
  mux:
258
239
  name: "Mux"
259
- preferred: false
260
- installer:
261
- target_dir: .agents/skills
262
- global_target_dir: ~/.agents/skills
240
+ installer: {}
263
241
 
264
242
  neovate:
265
243
  name: "Neovate"
266
- preferred: false
267
244
  installer:
268
245
  target_dir: .neovate/skills
269
246
  global_target_dir: ~/.neovate/skills
270
247
 
271
248
  ona:
272
249
  name: "Ona"
273
- preferred: false
274
250
  installer:
275
251
  target_dir: .ona/skills
252
+ global_target_dir: null
276
253
 
277
254
  openclaw:
278
255
  name: "OpenClaw"
279
- preferred: false
280
- installer:
281
- target_dir: .agents/skills
282
- global_target_dir: ~/.agents/skills
256
+ installer: {}
283
257
 
284
258
  opencode:
285
259
  name: "OpenCode"
286
- preferred: false
287
260
  installer:
288
- target_dir: .agents/skills
289
- global_target_dir: ~/.agents/skills
290
261
  commands_target_dir: .opencode/commands
291
262
  agents_target_dir: .opencode/agents
292
263
  agents_source_subdir: opencode
293
264
 
294
265
  openhands:
295
266
  name: "OpenHands"
296
- preferred: false
297
- installer:
298
- target_dir: .agents/skills
299
- global_target_dir: ~/.agents/skills
267
+ installer: {}
300
268
 
301
269
  pi:
302
270
  name: "Pi"
303
- preferred: false
304
- installer:
305
- target_dir: .agents/skills
306
- global_target_dir: ~/.agents/skills
271
+ installer: {}
307
272
 
308
273
  pochi:
309
274
  name: "Pochi"
310
- preferred: false
311
- installer:
312
- target_dir: .agents/skills
313
- global_target_dir: ~/.agents/skills
275
+ installer: {}
314
276
 
315
277
  qoder:
316
278
  name: "Qoder"
317
- preferred: false
318
279
  installer:
319
280
  target_dir: .qoder/skills
320
281
  global_target_dir: ~/.qoder/skills
321
282
 
322
283
  qwen:
323
284
  name: "QwenCoder"
324
- preferred: false
325
285
  installer:
326
286
  target_dir: .qwen/skills
327
287
  global_target_dir: ~/.qwen/skills
328
288
 
329
289
  replit:
330
290
  name: "Replit Agent"
331
- preferred: false
332
291
  installer:
333
- target_dir: .agents/skills
292
+ global_target_dir: null
334
293
 
335
294
  roo:
336
295
  name: "Roo Code"
337
- preferred: false
338
- installer:
339
- target_dir: .agents/skills
340
- global_target_dir: ~/.agents/skills
296
+ installer: {}
341
297
 
342
298
  rovo-dev:
343
299
  name: "Rovo Dev"
344
- preferred: false
345
- installer:
346
- target_dir: .agents/skills
347
- global_target_dir: ~/.agents/skills
300
+ installer: {}
348
301
 
349
302
  trae:
350
303
  name: "Trae"
351
- preferred: false
352
304
  installer:
353
305
  target_dir: .trae/skills
306
+ global_target_dir: null
354
307
 
355
308
  warp:
356
309
  name: "Warp"
357
- preferred: false
358
- installer:
359
- target_dir: .agents/skills
360
- global_target_dir: ~/.agents/skills
310
+ installer: {}
361
311
 
362
312
  windsurf:
363
313
  name: "Windsurf"
364
- preferred: false
365
- installer:
366
- target_dir: .agents/skills
367
- global_target_dir: ~/.agents/skills
314
+ installer: {}
368
315
 
369
316
  zcode:
370
317
  name: "ZCode"
371
- preferred: false
372
318
  installer:
373
319
  target_dir: .zcode/skills
374
320
  global_target_dir: ~/.zcode/skills
375
321
 
376
322
  zencoder:
377
323
  name: "Zencoder"
378
- preferred: false
379
324
  installer:
380
325
  target_dir: .zencoder/skills
381
326
  global_target_dir: ~/.zencoder/skills
@@ -1,219 +1,17 @@
1
1
  /**
2
2
  * Path transformation utilities for IDE installer standardization
3
3
  *
4
- * Provides utilities to convert hierarchical paths to flat naming conventions.
5
- *
6
- * DASH-BASED NAMING (new standard):
7
- * - Agents: wizz-agent-module-name.md (with wizz-agent- prefix)
8
- * - Workflows/Tasks/Tools: wizz-module-name.md
9
- *
10
- * Example outputs:
11
- * - cis/agents/storymaster.md → wizz-agent-cis-storymaster.md
12
- * - bmm/workflows/plan-project.md → wizz-bmm-plan-project.md
13
- * - bmm/tasks/create-story.md → wizz-bmm-create-story.md
14
- * - core/agents/brainstorming.md → wizz-agent-brainstorming.md (core agents skip module name)
15
- * - standalone/agents/fred.md → wizz-agent-standalone-fred.md
4
+ * The only surviving export is WIZZ_FOLDER_NAME, the centralized constant for
5
+ * the `_wizz` installation folder name used across all installers. The
6
+ * dash-naming helpers that used to live here (toDashName, toDashPath,
7
+ * resolveSkillName, customAgentDashName, isDashFormat, parseDashName,
8
+ * AGENT_SEGMENT) had zero importers anywhere in the repo and were removed as
9
+ * dead code (audit 2026-09-11, Fase 2 item 13).
16
10
  */
17
11
 
18
- const AGENT_SEGMENT = 'agents';
19
-
20
12
  // WIZZ installation folder name - centralized constant for all installers
21
13
  const WIZZ_FOLDER_NAME = '_wizz';
22
14
 
23
- /**
24
- * Convert hierarchical path to flat dash-separated name (NEW STANDARD)
25
- * Converts: 'bmm', 'agents', 'pm' → 'wizz-agent-bmm-pm.md'
26
- * Converts: 'bmm', 'workflows', 'correct-course' → 'wizz-bmm-correct-course.md'
27
- * Converts: 'core', 'agents', 'brainstorming' → 'wizz-agent-brainstorming.md' (core agents skip module name)
28
- * Converts: 'standalone', 'agents', 'fred' → 'wizz-agent-standalone-fred.md'
29
- *
30
- * @param {string} module - Module name (e.g., 'bmm', 'core', 'standalone')
31
- * @param {string} type - Artifact type ('agents', 'workflows', 'tasks', 'tools')
32
- * @param {string} name - Artifact name (e.g., 'pm', 'brainstorming')
33
- * @returns {string} Flat filename like 'wizz-agent-bmm-pm.md' or 'wizz-bmm-correct-course.md'
34
- */
35
- function toDashName(module, type, name) {
36
- const isAgent = type === AGENT_SEGMENT;
37
-
38
- // For core module, skip the module name: use 'wizz-agent-name.md' instead of 'wizz-agent-core-name.md'
39
- if (module === 'core') {
40
- return isAgent ? `wizz-agent-${name}.md` : `wizz-${name}.md`;
41
- }
42
- // For standalone module, include 'standalone' in the name
43
- if (module === 'standalone') {
44
- return isAgent ? `wizz-agent-standalone-${name}.md` : `wizz-standalone-${name}.md`;
45
- }
46
-
47
- // Module artifacts: wizz-module-name.md or wizz-agent-module-name.md
48
- // eslint-disable-next-line unicorn/prefer-string-replace-all -- regex replace is intentional here
49
- const dashName = name.replace(/\//g, '-'); // Flatten nested paths
50
- return isAgent ? `wizz-agent-${module}-${dashName}.md` : `wizz-${module}-${dashName}.md`;
51
- }
52
-
53
- /**
54
- * Convert relative path to flat dash-separated name
55
- * Converts: 'bmm/agents/pm.md' → 'wizz-agent-bmm-pm.md'
56
- * Converts: 'bmm/agents/tech-writer/tech-writer.md' → 'wizz-agent-bmm-tech-writer.md' (uses folder name)
57
- * Converts: 'bmm/workflows/correct-course.md' → 'wizz-bmm-correct-course.md'
58
- * Converts: 'core/agents/brainstorming.md' → 'wizz-agent-brainstorming.md' (core agents skip module name)
59
- *
60
- * @param {string} relativePath - Path like 'bmm/agents/pm.md'
61
- * @returns {string} Flat filename like 'wizz-agent-bmm-pm.md' or 'wizz-brainstorming.md'
62
- */
63
- function toDashPath(relativePath) {
64
- if (!relativePath || typeof relativePath !== 'string') {
65
- // Return a safe default for invalid input
66
- return 'wizz-unknown.md';
67
- }
68
-
69
- // Strip common file extensions to avoid double extensions in generated filenames
70
- // e.g., 'create-story.xml' → 'create-story', 'workflow.md' → 'workflow'
71
- const withoutExt = relativePath.replace(/\.(md|yaml|yml|json|xml|toml)$/i, '');
72
- const parts = withoutExt.split(/[/\\]/);
73
-
74
- const module = parts[0];
75
- const type = parts[1];
76
- let name;
77
-
78
- // For agents, if nested in a folder (more than 3 parts), use the folder name only
79
- // e.g., 'bmm/agents/tech-writer/tech-writer' → 'tech-writer' (not 'tech-writer-tech-writer')
80
- if (type === 'agents' && parts.length > 3) {
81
- // Use the folder name (parts[2]) as the name, ignore the file name
82
- name = parts[2];
83
- } else {
84
- // For non-nested or non-agents, join all parts after type
85
- name = parts.slice(2).join('-');
86
- }
87
-
88
- return toDashName(module, type, name);
89
- }
90
-
91
- /**
92
- * Create custom agent dash name
93
- * Creates: 'wizz-custom-agent-fred-commit-poet.md'
94
- *
95
- * @param {string} agentName - Custom agent name
96
- * @returns {string} Flat filename like 'wizz-custom-agent-fred-commit-poet.md'
97
- */
98
- function customAgentDashName(agentName) {
99
- return `wizz-custom-agent-${agentName}.md`;
100
- }
101
-
102
- /**
103
- * Check if a filename uses dash format
104
- * @param {string} filename - Filename to check
105
- * @returns {boolean} True if filename uses dash format
106
- */
107
- function isDashFormat(filename) {
108
- return filename.startsWith('wizz-') && filename.includes('-');
109
- }
110
-
111
- /**
112
- * Extract parts from a dash-formatted filename
113
- * Parses: 'wizz-agent-bmm-pm.md' → { prefix: 'wizz', module: 'bmm', type: 'agents', name: 'pm' }
114
- * Parses: 'wizz-bmm-correct-course.md' → { prefix: 'wizz', module: 'bmm', type: 'workflows', name: 'correct-course' }
115
- * Parses: 'wizz-agent-brainstorming.md' → { prefix: 'wizz', module: 'core', type: 'agents', name: 'brainstorming' } (core agents)
116
- * Parses: 'wizz-brainstorming.md' → { prefix: 'wizz', module: 'core', type: 'workflows', name: 'brainstorming' } (core workflows)
117
- * Parses: 'wizz-agent-standalone-fred.md' → { prefix: 'wizz', module: 'standalone', type: 'agents', name: 'fred' }
118
- * Parses: 'wizz-standalone-foo.md' → { prefix: 'wizz', module: 'standalone', type: 'workflows', name: 'foo' }
119
- *
120
- * @param {string} filename - Dash-formatted filename
121
- * @returns {Object|null} Parsed parts or null if invalid format
122
- */
123
- function parseDashName(filename) {
124
- const withoutExt = filename.replace('.md', '');
125
- const parts = withoutExt.split('-');
126
-
127
- if (parts.length < 2 || parts[0] !== 'wizz') {
128
- return null;
129
- }
130
-
131
- // Check if this is an agent file (has 'agent' as second part)
132
- const isAgent = parts[1] === 'agent';
133
-
134
- if (isAgent) {
135
- // This is an agent file
136
- // Format: wizz-agent-name (core) or wizz-agent-standalone-name or wizz-agent-module-name
137
- if (parts.length >= 4 && parts[2] === 'standalone') {
138
- // Standalone agent: wizz-agent-standalone-name
139
- return {
140
- prefix: parts[0],
141
- module: 'standalone',
142
- type: 'agents',
143
- name: parts.slice(3).join('-'),
144
- };
145
- }
146
- if (parts.length === 3) {
147
- // Core agent: wizz-agent-name
148
- return {
149
- prefix: parts[0],
150
- module: 'core',
151
- type: 'agents',
152
- name: parts[2],
153
- };
154
- } else {
155
- // Module agent: wizz-agent-module-name
156
- return {
157
- prefix: parts[0],
158
- module: parts[2],
159
- type: 'agents',
160
- name: parts.slice(3).join('-'),
161
- };
162
- }
163
- }
164
-
165
- // Not an agent file - must be a workflow/tool/task
166
- // If only 2 parts (wizz-name), it's a core workflow/tool/task
167
- if (parts.length === 2) {
168
- return {
169
- prefix: parts[0],
170
- module: 'core',
171
- type: 'workflows', // Default to workflows for non-agent core items
172
- name: parts[1],
173
- };
174
- }
175
-
176
- // Check for standalone non-agent: wizz-standalone-name
177
- if (parts[1] === 'standalone') {
178
- return {
179
- prefix: parts[0],
180
- module: 'standalone',
181
- type: 'workflows', // Default to workflows for non-agent standalone items
182
- name: parts.slice(2).join('-'),
183
- };
184
- }
185
-
186
- // Otherwise, it's a module workflow/tool/task (wizz-module-name)
187
- return {
188
- prefix: parts[0],
189
- module: parts[1],
190
- type: 'workflows', // Default to workflows for non-agent module items
191
- name: parts.slice(2).join('-'),
192
- };
193
- }
194
-
195
- /**
196
- * Resolve the skill name for an artifact.
197
- * Prefers canonicalId from a wizz-skill-manifest.yaml sidecar when available,
198
- * falling back to the path-derived name from toDashPath().
199
- *
200
- * @param {Object} artifact - Artifact object (must have relativePath; may have canonicalId)
201
- * @returns {string} Filename like 'wizz-create-prd.md' or 'wizz-agent-bmm-pm.md'
202
- */
203
- function resolveSkillName(artifact) {
204
- if (artifact.canonicalId) {
205
- return `${artifact.canonicalId}.md`;
206
- }
207
- return toDashPath(artifact.relativePath);
208
- }
209
-
210
15
  module.exports = {
211
- toDashName,
212
- toDashPath,
213
- resolveSkillName,
214
- customAgentDashName,
215
- isDashFormat,
216
- parseDashName,
217
- AGENT_SEGMENT,
218
16
  WIZZ_FOLDER_NAME,
219
17
  };
@@ -6,21 +6,11 @@
6
6
  startMessage: |
7
7
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
8
8
 
9
- Agile AI-Driven Development, the Wizz way. Built on BMAD Core and a growing module ecosystem.
10
- Install official and community modules during setup to customize your experience.
9
+ Método de agência orientado por IA, em PT-BR. Agentes por área, skills curadas e memória de projeto.
10
+ Escolha os módulos durante o setup para montar a instalação do seu jeito.
11
11
 
12
- 🌟 100% free. 100% open source. Always.
13
- No paywalls. No gated content. Knowledge shared, not sold.
14
-
15
- 🌐 CONNECT:
16
- Website: https://method.wizzcomms.com/
17
-
18
- ⭐ SUPPORT THE PROJECT:
19
- Star us: https://github.com/wizzcomms/wizz-method/
20
-
21
- Built on BMAD Core (MIT) by Wizz Code — https://github.com/bmad-code-org/WIZZ-METHOD
22
-
23
- Docs, and latest updates: https://method.wizzcomms.com/
12
+ 📖 Docs: https://method.wizzcomms.com/
13
+ ✉️ Suporte: support@wizzcomms.com
24
14
 
25
15
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
26
16
 
@@ -17,6 +17,11 @@
17
17
 
18
18
  const VALID_CHANNELS = new Set(['stable', 'next']);
19
19
 
20
+ // Item 8b (auditoria 2026-09-11): validate the TAG@SHA pin form at the CLI
21
+ // gate so a malformed pin fails here, before any clone runs. Leaf module —
22
+ // channel-plan is required by external-manager.js, so this cannot pull it back in.
23
+ const { parsePinTagAndSha } = require('./pin-spec');
24
+
20
25
  /**
21
26
  * Parse raw commander options into a structured channel options object.
22
27
  *
@@ -58,14 +63,22 @@ function parseChannelOptions(options = {}) {
58
63
  nextSet.add(trimmed);
59
64
  }
60
65
 
61
- // --pin CODE=TAG (repeatable)
66
+ // --pin CODE=TAG[@40-hex-sha] (repeatable). A pin that carries an @SHA part
67
+ // is validated via parsePinTagAndSha (item 8b): tag-only and TAG@SHA pass,
68
+ // anything else is thrown, not warned-and-skipped — a silent downgrade of
69
+ // TAG@SHA to TAG would install exactly the commit the SHA was supposed to
70
+ // guard against. parsePinSpec itself still splits CODE=<value> with the
71
+ // value opaque; the @SHA split stays the managers' job (see pin-spec.js).
62
72
  const pins = new Map();
63
73
  for (const spec of options.pin || []) {
64
74
  const parsed = parsePinSpec(spec);
65
75
  if (!parsed) {
66
- warnings.push(`Ignoring malformed --pin value '${spec}'. Expected CODE=TAG.`);
76
+ warnings.push(`Ignoring malformed --pin value '${spec}'. Expected CODE=TAG or CODE=TAG@40-hex-sha.`);
67
77
  continue;
68
78
  }
79
+ // Throws loudly on a malformed TAG@SHA — the caller (ui.js) surfaces the
80
+ // error and aborts before any module is resolved or cloned.
81
+ parsePinTagAndSha(parsed.tag);
69
82
  if (pins.has(parsed.code)) {
70
83
  warnings.push(`--pin specified multiple times for '${parsed.code}'. Using last: ${parsed.tag}.`);
71
84
  }