wizz-method 2.12.0 → 2.14.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 (119) hide show
  1. package/README.md +2 -1
  2. package/THIRD-PARTY-NOTICES.md +2 -0
  3. package/package.json +10 -3
  4. package/skills-registry.yaml +48 -48
  5. package/src/bmm-skills/1-analysis/research/wizz-domain-research/customize.toml +4 -3
  6. package/src/bmm-skills/1-analysis/research/wizz-market-research/customize.toml +4 -3
  7. package/src/bmm-skills/1-analysis/research/wizz-technical-research/customize.toml +3 -1
  8. package/src/bmm-skills/1-analysis/wizz-agent-analyst/customize.toml +3 -1
  9. package/src/bmm-skills/1-analysis/wizz-agent-tech-writer/customize.toml +4 -3
  10. package/src/bmm-skills/1-analysis/wizz-document-project/customize.toml +4 -3
  11. package/src/bmm-skills/1-analysis/wizz-prfaq/customize.toml +4 -3
  12. package/src/bmm-skills/1-analysis/wizz-product-brief/customize.toml +5 -6
  13. package/src/bmm-skills/2-plan-workflows/wizz-agent-pm/customize.toml +3 -1
  14. package/src/bmm-skills/2-plan-workflows/wizz-agent-ux-designer/customize.toml +3 -1
  15. package/src/bmm-skills/2-plan-workflows/wizz-create-prd/customize.toml +4 -3
  16. package/src/bmm-skills/2-plan-workflows/wizz-edit-prd/customize.toml +4 -3
  17. package/src/bmm-skills/2-plan-workflows/wizz-prd/customize.toml +5 -6
  18. package/src/bmm-skills/2-plan-workflows/wizz-ux/customize.toml +4 -3
  19. package/src/bmm-skills/2-plan-workflows/wizz-validate-prd/customize.toml +4 -3
  20. package/src/bmm-skills/3-solutioning/wizz-agent-architect/customize.toml +3 -1
  21. package/src/bmm-skills/3-solutioning/wizz-architecture/customize.toml +5 -6
  22. package/src/bmm-skills/3-solutioning/wizz-check-implementation-readiness/customize.toml +4 -3
  23. package/src/bmm-skills/3-solutioning/wizz-create-architecture/customize.toml +4 -3
  24. package/src/bmm-skills/3-solutioning/wizz-create-epics-and-stories/customize.toml +4 -3
  25. package/src/bmm-skills/3-solutioning/wizz-generate-project-context/steps/step-03-complete.md +7 -0
  26. package/src/bmm-skills/4-implementation/wizz-agent-dev/customize.toml +3 -1
  27. package/src/bmm-skills/4-implementation/wizz-checkpoint-preview/customize.toml +4 -3
  28. package/src/bmm-skills/4-implementation/wizz-code-review/customize.toml +4 -3
  29. package/src/bmm-skills/4-implementation/wizz-code-review/steps/step-03-triage.md +23 -14
  30. package/src/bmm-skills/4-implementation/wizz-code-review/steps/step-04-present.md +2 -2
  31. package/src/bmm-skills/4-implementation/wizz-correct-course/customize.toml +4 -3
  32. package/src/bmm-skills/4-implementation/wizz-create-story/customize.toml +4 -3
  33. package/src/bmm-skills/4-implementation/wizz-dev-story/customize.toml +4 -3
  34. package/src/bmm-skills/4-implementation/wizz-investigate/customize.toml +4 -3
  35. package/src/bmm-skills/4-implementation/wizz-qa-generate-e2e-tests/customize.toml +4 -3
  36. package/src/bmm-skills/4-implementation/wizz-quick-dev/customize.toml +4 -3
  37. package/src/bmm-skills/4-implementation/wizz-quick-dev/spec-template.md +6 -0
  38. package/src/bmm-skills/4-implementation/wizz-quick-dev/step-04-review.md +27 -16
  39. package/src/bmm-skills/4-implementation/wizz-quick-dev/step-oneshot.md +27 -6
  40. package/src/bmm-skills/4-implementation/wizz-retrospective/customize.toml +4 -3
  41. package/src/bmm-skills/4-implementation/wizz-sprint-planning/customize.toml +4 -3
  42. package/src/bmm-skills/4-implementation/wizz-sprint-status/customize.toml +4 -3
  43. package/src/bmm-skills/module.yaml +1 -1
  44. package/src/core-skills/wizz-brainstorming/customize.toml +5 -6
  45. package/src/core-skills/wizz-brainstorming/scripts/brain.py +19 -0
  46. package/src/core-skills/wizz-brainstorming/scripts/tests/test_brain.py +33 -0
  47. package/src/core-skills/wizz-forge-idea/scripts/resolve_personas.py +3 -1
  48. package/src/core-skills/wizz-forge-idea/scripts/tests/test_resolve_personas.py +21 -0
  49. package/src/core-skills/wizz-help/SKILL.md +5 -3
  50. package/src/core-skills/wizz-party-mode/customize.toml +5 -4
  51. package/src/core-skills/wizz-party-mode/scripts/resolve_party.py +3 -1
  52. package/src/core-skills/wizz-party-mode/scripts/tests/test_resolve_party.py +21 -0
  53. package/src/core-skills/wizz-spec/customize.toml +4 -5
  54. package/src/modules/wizz/_shared/model-ladder.md +4 -4
  55. package/src/modules/wizz/_shared/video-pipeline.md +1 -1
  56. package/src/modules/wizz/agents/wizz-maestro/SKILL.md +1 -1
  57. package/src/modules/wizz/subagents/opencode/wizz-exec-review.md +2 -2
  58. package/src/modules/wizz/subagents/opencode/wizz-exec-standard.md +2 -2
  59. package/src/modules/wizz/subagents/opencode/wizz-exec-strong.md +2 -2
  60. package/src/modules/wizz/subagents/spec.yaml +3 -3
  61. package/src/scripts/resolve_config.py +8 -0
  62. package/src/scripts/resolve_customization.py +24 -3
  63. package/src/scripts/tests/test_resolve_config.py +42 -0
  64. package/src/scripts/tests/test_resolve_customization.py +45 -0
  65. package/src/skills-lib/ctc-align/SKILL.md +1 -1
  66. package/src/skills-lib/wizz-agent-browser/SKILL.md +5 -0
  67. package/src/skills-lib/wizz-huashu-design/scripts/html2pptx.js +902 -1061
  68. package/src/skills-lib/wizz-humanizer/README.md +134 -71
  69. package/src/skills-lib/wizz-humanizer/SKILL.md +51 -37
  70. package/src/skills-lib/wizz-humanizer/references/ai-writing-patterns.md +208 -190
  71. package/src/skills-lib/wizz-router/references/routing-table-flat.md +2 -2
  72. package/tools/installer/banner.js +80 -29
  73. package/tools/installer/commands/catalog.js +87 -0
  74. package/tools/installer/commands/install.js +9 -0
  75. package/tools/installer/core/doctor.js +31 -1
  76. package/tools/installer/core/installer.js +32 -0
  77. package/tools/installer/core/project-instructions.js +199 -0
  78. package/tools/installer/guided/detect-tools.js +53 -0
  79. package/tools/installer/guided/flow.js +203 -0
  80. package/tools/installer/guided/labels.js +185 -0
  81. package/tools/installer/guided/messages.js +132 -0
  82. package/tools/installer/guided/outro.js +32 -0
  83. package/tools/installer/guided/profiles.js +95 -0
  84. package/tools/installer/guided/steps.js +154 -0
  85. package/tools/installer/install-messages.yaml +3 -3
  86. package/tools/installer/modules/external-manager.js +4 -0
  87. package/tools/installer/ui.js +57 -22
  88. package/wizz-modules.yaml +1 -0
  89. package/src/bmm-skills/3-solutioning/wizz-architecture/scripts/__pycache__/lint_spine.cpython-313.pyc +0 -0
  90. package/src/bmm-skills/3-solutioning/wizz-architecture/scripts/tests/__pycache__/test_lint_spine.cpython-313-pytest-9.1.1.pyc +0 -0
  91. package/src/bmm-skills/4-implementation/wizz-retrospective/scripts/__pycache__/sprint_status.cpython-313.pyc +0 -0
  92. package/src/bmm-skills/4-implementation/wizz-retrospective/scripts/tests/__pycache__/test_git_evidence.cpython-313-pytest-9.1.1.pyc +0 -0
  93. package/src/bmm-skills/4-implementation/wizz-retrospective/scripts/tests/__pycache__/test_sprint_status.cpython-313-pytest-9.1.1.pyc +0 -0
  94. package/src/bmm-skills/4-implementation/wizz-sprint-planning/scripts/__pycache__/sprint_plan.cpython-313.pyc +0 -0
  95. package/src/bmm-skills/4-implementation/wizz-sprint-planning/scripts/tests/__pycache__/test_sprint_plan.cpython-313-pytest-9.1.1.pyc +0 -0
  96. package/src/core-skills/wizz-advanced-elicitation/scripts/__pycache__/pick_methods.cpython-313.pyc +0 -0
  97. package/src/core-skills/wizz-advanced-elicitation/scripts/tests/__pycache__/test_pick_methods.cpython-313-pytest-9.1.1.pyc +0 -0
  98. package/src/core-skills/wizz-brainstorming/scripts/__pycache__/brain.cpython-313.pyc +0 -0
  99. package/src/core-skills/wizz-brainstorming/scripts/tests/__pycache__/test_brain.cpython-313-pytest-9.1.1.pyc +0 -0
  100. package/src/core-skills/wizz-brainstorming/scripts/tests/__pycache__/test_brain.cpython-314.pyc +0 -0
  101. package/src/core-skills/wizz-customize/scripts/__pycache__/list_customizable_skills.cpython-313.pyc +0 -0
  102. package/src/core-skills/wizz-customize/scripts/tests/__pycache__/test_list_customizable_skills.cpython-313-pytest-9.1.1.pyc +0 -0
  103. package/src/core-skills/wizz-forge-idea/scripts/__pycache__/resolve_personas.cpython-313.pyc +0 -0
  104. package/src/core-skills/wizz-forge-idea/scripts/__pycache__/resolve_personas.cpython-314.pyc +0 -0
  105. package/src/core-skills/wizz-forge-idea/scripts/tests/__pycache__/test_resolve_personas.cpython-313-pytest-9.1.1.pyc +0 -0
  106. package/src/core-skills/wizz-forge-idea/scripts/tests/__pycache__/test_resolve_personas.cpython-314.pyc +0 -0
  107. package/src/core-skills/wizz-party-mode/scripts/__pycache__/resolve_party.cpython-313.pyc +0 -0
  108. package/src/core-skills/wizz-party-mode/scripts/__pycache__/resolve_party.cpython-314.pyc +0 -0
  109. package/src/core-skills/wizz-party-mode/scripts/tests/__pycache__/test_resolve_party.cpython-313-pytest-9.1.1.pyc +0 -0
  110. package/src/core-skills/wizz-party-mode/scripts/tests/__pycache__/test_resolve_party.cpython-314.pyc +0 -0
  111. package/src/scripts/__pycache__/resolve_customization.cpython-314.pyc +0 -0
  112. package/src/skills-lib/wizz-huashu-design/package-lock.json +0 -846
  113. package/src/skills-lib/wizz-humanizer/WARP.md +0 -53
  114. package/src/skills-lib/wizz-humanizer/references/full-example.md +0 -72
  115. package/src/skills-lib/wizz-humanizer/references/personality-and-soul.md +0 -36
  116. package/src/skills-lib/wizz-react-components/package-lock.json +0 -231
  117. package/src/skills-lib/wizz-supabase-postgres-best-practices/CLAUDE.md +0 -68
  118. package/src/skills-lib/wizz-ui-ux-pro-max/scripts/__pycache__/core.cpython-314.pyc +0 -0
  119. package/src/skills-lib/wizz-ui-ux-pro-max/scripts/__pycache__/design_system.cpython-314.pyc +0 -0
package/README.md CHANGED
@@ -72,7 +72,7 @@ The Wizz layer applies to everyone: standard closing (✅/➡️/🎯), token ec
72
72
  npx wizz-method install
73
73
  ```
74
74
 
75
- Follow the prompts, then open your AI IDE (Claude Code, Cursor, Codex and others) in the project folder.
75
+ The guided install takes four steps (folder, what you'll use it for, your AI tool, your name) and shows what will be installed before it starts. Choose Português on the first screen or pass `--lang pt`; `--advanced` asks the complete question list. Then open your AI tool (Claude Code, Cursor, Codex and others) in the project folder.
76
76
 
77
77
  ### 2. Customize the Wizz layer
78
78
 
@@ -106,6 +106,7 @@ Without a TTY, the default language is "Português (BR)". Use `--lang` or the `W
106
106
  | Command | Does |
107
107
  |---|---|
108
108
  | `npx wizz-method install` | Installs modules, hooks, skills and MCPs into the project |
109
+ | `npx wizz-method catalog [--area <area>]` | Lists every area, skill and tool, marking what's installed |
109
110
  | `npx wizz-method status` | Shows what's installed and each module's version |
110
111
  | `npx wizz-method doctor` | Diagnostics: hooks, rtk, jq, optional Python and `_wizz/` drift |
111
112
  | `npx wizz-method resolve [--skill <name>]` | Regenerates the customization snapshots in `_wizz/_resolved/` |
@@ -106,12 +106,14 @@ the `<Font>-OFL.txt` file in the same folder.
106
106
  - Path: `src/skills-lib/wizz-humanizer/`
107
107
  - Origin: [blader/humanizer](https://github.com/blader/humanizer)
108
108
  - License: MIT (full text at `src/skills-lib/wizz-humanizer/LICENSE`, copyright (c) 2025 Siqi Chen)
109
+ - Version: 3.1.0, upstream commit `225a6f39` (ported 2026-09-30).
109
110
 
110
111
  ## wizz-huashu-design
111
112
 
112
113
  - Path: `src/skills-lib/wizz-huashu-design/`
113
114
  - Origin: [alchaincyf/huashu-design](https://github.com/alchaincyf/huashu-design)
114
115
  - License: MIT (full text at `src/skills-lib/wizz-huashu-design/LICENSE`, copyright (c) 2026 alchaincyf (花叔))
116
+ - `scripts/html2pptx.js`: clean-room rewrite from upstream commit `0830494e` (2026-09-22). The earlier copy was removed upstream because it derived from proprietary Anthropic code; it was replaced here on 2026-09-30.
115
117
 
116
118
  ## wizz-react-components (Stitch template)
117
119
 
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json.schemastore.org/package.json",
3
3
  "name": "wizz-method",
4
- "version": "2.12.0",
4
+ "version": "2.14.0",
5
5
  "description": "Wizz Method: método de agência orientado por IA em PT-BR",
6
6
  "keywords": [
7
7
  "agile",
@@ -14,6 +14,10 @@
14
14
  "wizzcomms"
15
15
  ],
16
16
  "homepage": "https://method.wizzcomms.com",
17
+ "repository": {
18
+ "type": "git",
19
+ "url": "git+https://github.com/wizzcomms/wizz-method.git"
20
+ },
17
21
  "license": "SEE LICENSE IN LICENSE",
18
22
  "author": "Wizz! comms. (wizzcomms)",
19
23
  "main": "tools/installer/wizz-cli.js",
@@ -38,7 +42,9 @@
38
42
  "removals.txt",
39
43
  "THIRD-PARTY-NOTICES.md",
40
44
  "SECURITY.md",
41
- "tools/fetch-assets.mjs"
45
+ "tools/fetch-assets.mjs",
46
+ "!**/__pycache__/**",
47
+ "!**/*.pyc"
42
48
  ],
43
49
  "scripts": {
44
50
  "docs:build": "node tools/build-docs.mjs",
@@ -60,7 +66,7 @@
60
66
  "lint:md": "markdownlint-cli2 \"**/*.md\"",
61
67
  "prepare": "command -v husky >/dev/null 2>&1 && husky || exit 0",
62
68
  "quality": "npm run format:check && npm run lint && npm run lint:md && npm run docs:build && npm run quality:validate",
63
- "quality:validate": "npm test && npm run validate:refs && npm run validate:registry-schema && npm run validate:method-refs && npm run validate:skills && npm run docs:validate-sidebar && npm run validate:generated && npm run eval:routing && npm run eval:output",
69
+ "quality:validate": "npm test && npm run validate:refs && npm run validate:registry-schema && npm run validate:method-refs && npm run validate:model-ids && npm run validate:skills && npm run docs:validate-sidebar && npm run validate:generated && npm run eval:routing && npm run eval:output",
64
70
  "rebundle": "node tools/bundle-web-bundles.js",
65
71
  "sync:check": "node tools/sync-check.mjs",
66
72
  "sync:global": "node tools/sync-global.mjs",
@@ -115,6 +121,7 @@
115
121
  "test:workflow-path-regex": "node test/test-workflow-path-regex.js",
116
122
  "validate:generated": "npm run test:dispatch-rule && npm run test:routing-table-refs && npm run test:subagents-parity",
117
123
  "validate:method-refs": "node tools/validate-method-refs.js --strict",
124
+ "validate:model-ids": "node tools/validate-model-ids.mjs",
118
125
  "validate:refs": "node tools/validate-file-refs.js --strict",
119
126
  "validate:registry-schema": "node tools/validate-registry-schema.js --strict",
120
127
  "validate:skills": "node tools/validate-skills.js --strict",
@@ -229,20 +229,20 @@ areas:
229
229
  platform: [darwin, linux]
230
230
  # O check confere o SHA fixado, não só a existência da pasta: o bundle é
231
231
  # copiado (não clonado), então o pin é gravado num marcador no install.
232
- check: 'grep -qx 83da59fa78c3eee9e20f515fe75c438bb5166efd "$HOME/.claude/skills/watch/.wizz-pin" 2>/dev/null'
232
+ check: 'grep -qx 03ceb42f7fa2c4439aca01752118044baabffb8f "$HOME/.claude/skills/watch/.wizz-pin" 2>/dev/null'
233
233
  # Pin de supply chain (2026-08-23): clone temporário + checkout do SHA
234
234
  # + `skills add` local. Atualizar conscientemente.
235
- install: 'd="$(mktemp -d)" && git clone https://github.com/bradautomates/claude-video.git "$d" && git -C "$d" checkout 83da59fa78c3eee9e20f515fe75c438bb5166efd && npx skills add "$d" -g -y --copy && printf "%s\\n" 83da59fa78c3eee9e20f515fe75c438bb5166efd > "$HOME/.claude/skills/watch/.wizz-pin" && rm -rf "$d"'
235
+ install: 'd="$(mktemp -d)" && git clone https://github.com/bradautomates/claude-video.git "$d" && git -C "$d" checkout 03ceb42f7fa2c4439aca01752118044baabffb8f && npx skills add "$d" -g -y --copy && printf "%s\\n" 03ceb42f7fa2c4439aca01752118044baabffb8f > "$HOME/.claude/skills/watch/.wizz-pin" && rm -rf "$d"'
236
236
  - id: get-brolls
237
- # Versão que o SKILL.md do upstream declara no SHA pinado abaixo. A
238
- # última tag publicada lá é a v2.3.7; o 2.3.8 só existe como HEAD.
237
+ # Versão que o SKILL.md do upstream declara no SHA pinado abaixo
238
+ # (tag v2.5.0, 2026-09-19).
239
239
  metadata:
240
- version: "2.3.8"
240
+ version: "2.5.0"
241
241
  when: "CAPTAR B-roll/insert — em português: 'imagens de apoio', 'cenas de apoio', 'imagem de corte' para Reel, TikTok ou vídeo: acha a fonte LITERAL do que a narração cita (o fato, a pessoa, o produto, a notícia, a tela) em YouTube (yt-dlp, sem API key), Instagram/TikTok (navegador/Playwright, sessão do usuário), Pexels/Pixabay/Wikimedia Commons/NASA ou arquivo local; gera prévia (poster, contact sheet numerado, GIF), monta um Storyboard HTML para REVISÃO HUMANA e entrega o corte com origem/autor/condições de uso registrados. Etapa de CAPTAÇÃO do pipeline de vídeo: enche a timeline de material real antes do corte fino e da montagem. Stock só quando o usuário pedir stock explicitamente — nunca como preenchimento de um beat sem fonte literal."
242
242
  not_when:
243
243
  - "Analisar/resumir um vídeo que já se tem em mãos: é claude-video."
244
244
  - "Cortar/montar footage já captado: é buttercut (corte fino) ou wizz-remotion-best-practices (montagem final)."
245
- - "Gerar imagem/vídeo por IA: é fal-video. O get-brolls busca material REAL, não sintético."
245
+ - "Gerar imagem/vídeo por IA: é wizz-ad-creative, que escreve o prompt para o usuário colar no Flow ou em outra IA. O get-brolls busca material REAL, não sintético."
246
246
  - "Desenhar uma tela/cena em HTML: é hyperframes."
247
247
  - "Minerar/estudar criativo ou oferta de concorrente (Biblioteca de Anúncios, 'baixa esse anúncio pra eu ver'): é wizz-lowticket-minerador na área ads. O get-brolls capta insert para a SUA edição, com procedência registrada — não é ferramenta de inteligência competitiva, e o fato de saber baixar um Reel não o torna uma."
248
248
  rel:
@@ -255,18 +255,18 @@ areas:
255
255
  platform: [darwin]
256
256
  # O check confere o SHA fixado, não só a existência da pasta: o bundle é
257
257
  # copiado (não clonado), então o pin é gravado num marcador no install.
258
- check: 'grep -qx 3d2313b0b856594617371697875ccfd59861c693 "$HOME/.claude/skills/get-brolls/.wizz-pin" 2>/dev/null'
258
+ check: 'grep -qx d9364053d336ae2c1d71a3c4de796590dece8c53 "$HOME/.claude/skills/get-brolls/.wizz-pin" 2>/dev/null'
259
259
  # Pin de supply chain (2026-09-17): clone temporário + checkout do SHA
260
260
  # + `skills add` global + o `install.sh` do próprio upstream (cria .venv
261
- # e .tools DENTRO da skill: yt-dlp fixado, EJS e Playwright CLI). O
262
- # upstream documenta 2.3.8 mas a última tag publicada é v2.3.7, então o
263
- # pin é o SHA do HEAD de 2026-09-17 (mesmo caso do apple-design).
261
+ # e .tools DENTRO da skill: yt-dlp fixado, EJS e Playwright CLI). Desde
262
+ # 2026-09-30 o pin é o commit da tag oficial v2.5.0 (antes, HEAD de
263
+ # 2026-09-17, quando ainda não havia tag). install.sh sem mudança.
264
264
  # Atualizar conscientemente. O install.sh aborta sozinho se faltar
265
265
  # python3/ffmpeg/node 22+; sem pin gravado, o installer volta a oferecer.
266
266
  # Escopo GLOBAL (-g) de propósito: a skill guarda .venv/.tools/.env na
267
267
  # própria raiz e recebe o projeto por `--project`, então é instalar uma
268
268
  # vez e usar em todos — igual hyperframes e claude-video.
269
- install: 'd="$(mktemp -d)" && git clone https://github.com/engenheirodevideo/get-brolls.git "$d" && git -C "$d" checkout 3d2313b0b856594617371697875ccfd59861c693 && npx skills add "$d" -g -y --copy && bash "$HOME/.claude/skills/get-brolls/scripts/install.sh" && printf "%s\\n" 3d2313b0b856594617371697875ccfd59861c693 > "$HOME/.claude/skills/get-brolls/.wizz-pin" && rm -rf "$d"'
269
+ install: 'd="$(mktemp -d)" && git clone https://github.com/engenheirodevideo/get-brolls.git "$d" && git -C "$d" checkout d9364053d336ae2c1d71a3c4de796590dece8c53 && npx skills add "$d" -g -y --copy && bash "$HOME/.claude/skills/get-brolls/scripts/install.sh" && printf "%s\\n" d9364053d336ae2c1d71a3c4de796590dece8c53 > "$HOME/.claude/skills/get-brolls/.wizz-pin" && rm -rf "$d"'
270
270
  # Sem drawtext (libfreetype) o contact sheet sai sem número e timecode e
271
271
  # o Storyboard degrada EM SILÊNCIO — por isso o probe olha o filtro, não
272
272
  # só o binário do ffmpeg. A venv prova que o install.sh chegou ao fim.
@@ -279,9 +279,9 @@ areas:
279
279
  platform: darwin-arm64
280
280
  # Clone-and-run: o próprio repo responde o SHA, então o check compara com o
281
281
  # pin. O install repara um clone existente em vez de falhar no git clone.
282
- check: 'test "$(git -C ./buttercut rev-parse HEAD 2>/dev/null)" = f71d9537e2c22c3c4c1c659c4bdfb11e90ccd961'
282
+ check: 'test "$(git -C ./buttercut rev-parse HEAD 2>/dev/null)" = 3d4cf6b6b6881c6bc2f964e2d311f7688186f79b'
283
283
  # Pin de supply chain (2026-08-23): checkout de SHA fixo; atualizar conscientemente.
284
- install: "{ [ -d buttercut/.git ] || git clone https://github.com/barefootford/buttercut.git buttercut; } && git -C buttercut fetch --tags origin && git -C buttercut checkout f71d9537e2c22c3c4c1c659c4bdfb11e90ccd961"
284
+ install: "{ [ -d buttercut/.git ] || git clone https://github.com/barefootford/buttercut.git buttercut; } && git -C buttercut fetch --tags origin && git -C buttercut checkout 3d4cf6b6b6881c6bc2f964e2d311f7688186f79b"
285
285
  verify: "command -v ffmpeg >/dev/null 2>&1 && command -v ruby >/dev/null 2>&1 && command -v python3 >/dev/null 2>&1"
286
286
  - id: voicebox
287
287
  when: "Voz/TTS/clonagem de voz local para narração/VO de vídeo (7 engines TTS + Whisper STT). App desktop que expõe endpoint MCP local em runtime. Clone-and-run no projeto."
@@ -299,17 +299,11 @@ areas:
299
299
  after: [voicebox]
300
300
  before: [wizz-remotion-best-practices, wizz-video-effects]
301
301
  platform: [darwin, linux]
302
- check: "test -x ./tools/ctc-align/.venv/bin/ctc-forced-aligner"
303
- install: 'mkdir -p tools/ctc-align && uv venv --python 3.12 tools/ctc-align/.venv && uv pip install --python tools/ctc-align/.venv/bin/python "git+https://github.com/MahmoudAshraf97/ctc-forced-aligner.git"'
302
+ # O pip grava o commit instalado no direct_url.json: o check compara com o pin.
303
+ check: "test -x ./tools/ctc-align/.venv/bin/ctc-forced-aligner && grep -qs 64293cc6d711e57666c4a8b098e9fd93b381fd88 ./tools/ctc-align/.venv/lib/python*/site-packages/ctc_forced_aligner-*.dist-info/direct_url.json"
304
+ # Pin de supply chain (2026-09-30): commit fixo; atualizar conscientemente.
305
+ install: 'mkdir -p tools/ctc-align && uv venv --python 3.12 tools/ctc-align/.venv && uv pip install --python tools/ctc-align/.venv/bin/python "git+https://github.com/MahmoudAshraf97/ctc-forced-aligner.git@64293cc6d711e57666c4a8b098e9fd93b381fd88"'
304
306
  verify: "command -v ffmpeg >/dev/null 2>&1 && command -v uv >/dev/null 2>&1"
305
- - id: fal-video
306
- when: "GERAR vídeo/imagem por IA (Veo/Kling/Wan e outros modelos via API da fal.ai), estilo UGC/ad-ready. Substitui o arcads: mesmo caso de uso (vídeo gerado por IA), custo 50-95% menor por vídeo, sem clone-and-run pesado. Precisa FAL_KEY em .env. Sem CLI binária oficial: usa o client Node oficial @fal-ai/client como dependência do projeto."
307
- rel:
308
- pairs_with: [wizz-ad-creative]
309
- platform: [darwin, linux]
310
- check: "test -f node_modules/@fal-ai/client/package.json"
311
- # Pin de supply chain (2026-08-25): versão fixa (client oficial fal.ai); atualizar conscientemente.
312
- install: "npm install @fal-ai/client@1.10.1"
313
307
  - id: apple-design
314
308
  when: "Revisar/auditar UI NATIVA (iOS/macOS: SwiftUI, Flutter, React Native, Tauri, Electron) contra o Apple HIG e o Liquid Glass — compliance com o HIG, acessibilidade, dark mode, navegação. Cobre o gap que o wizz-taste-skill declara fora de escopo ('native mobile: use Apple HIG directly')."
315
309
  not_when: "UI web: aí é wizz-ui-ux-pro-max / wizz-impeccable."
@@ -573,9 +567,10 @@ areas:
573
567
  # para as CLIs de vídeo quando o roteiro vira vídeo", prometendo um handoff
574
568
  # que a área não pode fazer: as CLIs de vídeo (get-brolls, hyperframes,
575
569
  # buttercut, claude-video) moram em `designer`, e o único cli daqui é o
576
- # postiz. Medido: essa frase puxava pedido de ASSET ("imagens de apoio pro
577
- # meu Reel", "carrossel pro Instagram") para social, que não tem a
578
- # ferramenta. A fronteira ficou no summary; a nota ficou aqui.
570
+ # buffer (era o postiz até 2026-09-25). Medido: essa frase puxava pedido
571
+ # de ASSET ("imagens de apoio pro meu Reel", "carrossel pro Instagram")
572
+ # para social, que não tem a ferramenta. A fronteira ficou no summary;
573
+ # a nota ficou aqui.
579
574
  summary: "Social e roteiros virais: o TEXTO e o ROTEIRO de Reels/Shorts, hooks, legenda, thread, calendário de conteúdo. Persona Rafa, aplica o Blueprint de Roteiro Viral. Captar, desenhar ou montar o asset em si (b-roll, vídeo, carrossel, imagem) não é desta área."
580
575
  skills:
581
576
  - id: wizz-social-content
@@ -584,7 +579,7 @@ areas:
584
579
  - "Editar/revisar texto de social já escrito: aí é wizz-copy-editing."
585
580
  - "Pedir SÓ o asset de um Reel/vídeo — b-roll, 'imagens de apoio', 'cenas de apoio', imagem de corte, footage — sem que o texto ou o roteiro façam parte do pedido: a captação é get-brolls, na área designer. Esta entrada entra quando o TEXTO ou o ROTEIRO é parte do que se pede; se o pedido junta roteiro E captação, são 2 áreas."
586
581
  rel:
587
- before: [get-brolls, postiz]
582
+ before: [buffer, get-brolls]
588
583
  pairs_with: [wizz-canvas-design, wizz-content-strategy, wizz-copy-editing, wizz-launch-strategy]
589
584
  - id: wizz-content-strategy
590
585
  when: "Decidir O QUE produzir de conteúdo (topic clusters, calendário, pilares)."
@@ -596,20 +591,22 @@ areas:
596
591
  after: [wizz-copywriting]
597
592
  pairs_with: [wizz-social-content]
598
593
  clis:
599
- - id: postiz
600
- when: "PUBLICAR/agendar de verdade em redes sociais (30+ integrações) a partir do conteúdo que o wizz-social já gerou. Separa 'gerar' (Wizz) de 'publicar' (Postiz). Precisa autenticar antes (`postiz auth:login` ou env `POSTIZ_API_KEY`); para imagem/vídeo a própria CLI faz o upload."
594
+ - id: buffer
595
+ when: "PUBLICAR/agendar de verdade em redes sociais (Instagram, TikTok, YouTube, LinkedIn, Facebook, Threads, X, Pinterest, Bluesky, Mastodon, Google Business) a partir do conteúdo que o wizz-social já gerou. Separa 'gerar' (Wizz) de 'publicar' (Buffer). Precisa de API key (`buffer init` ou env `BUFFER_API_KEY`). Imagem/vídeo NÃO sobe do disco: a mídia precisa estar numa URL pública HTTPS e direta (Cloudinary, Cloudflare R2), estável até o post publicar."
601
596
  not_when: "Escrever o roteiro ou a legenda: isso é skill da área (wizz-social-content, wizz-copy-editing)."
602
597
  rel:
603
598
  after: [wizz-social-content]
604
- # Item 30 da auditoria (2026-09-11, Parte 3.7). Pin de supply chain
605
- # (2026-09-12): versão publicada fixa no npm, atualizar conscientemente.
599
+ # Substituiu o postiz em 2026-09-25: a nuvem da Postiz não tem plano
600
+ # grátis (a partir de US$ 29/mês) e o self-host exige servidor próprio
601
+ # mais um app de desenvolvedor por rede. O plano grátis do Buffer tem
602
+ # 3 canais, 10 posts na fila por canal e API/CLI/MCP inclusos.
606
603
  # CLI, não MCP: o schema de `mcps:` deste registry só aceita stdio
607
- # ({command,args,env}) e o MCP hospedado da Postiz é HTTP+OAuth
608
- # (https://mcp.postiz.com/mcp-oauth-dynamic) — não encaixa. Existe uma
609
- # skill wrapper (`gitroomhq/postiz-agent`) que só dirige esta mesma CLI;
610
- # opcional, não registrada aqui.
611
- check: "command -v postiz >/dev/null 2>&1"
612
- install: "npm install -g postiz@2.0.16"
604
+ # ({command,args,env}) e o MCP do Buffer é HTTP com bearer
605
+ # (https://mcp.buffer.com/mcp) — não encaixa.
606
+ # Pin de supply chain (2026-09-25): versão publicada fixa no npm,
607
+ # atualizar conscientemente.
608
+ check: "command -v buffer >/dev/null 2>&1"
609
+ install: "npm install -g @bufferapp/cli@1.2.0"
613
610
 
614
611
  ads:
615
612
  agent: wizz-ads
@@ -620,9 +617,9 @@ areas:
620
617
  rel:
621
618
  pairs_with: [wizz-ad-creative, wizz-tracking-audit]
622
619
  - id: wizz-ad-creative
623
- when: "Gerar/iterar criativos e headlines de anúncio em escala (RSA, variações)."
620
+ when: "Gerar/iterar criativos e headlines de anúncio em escala (RSA, variações). Inclui escrever o PROMPT de imagem/vídeo por IA (Veo, Kling, Flow e similares) para o usuário gerar fora do método: nenhuma API de geração está integrada."
624
621
  rel:
625
- pairs_with: [fal-video, wizz-copywriting, wizz-paid-ads, wizz-video-effects]
622
+ pairs_with: [wizz-copywriting, wizz-paid-ads, wizz-video-effects]
626
623
  - id: wizz-analytics-tracking
627
624
  when: "Tracking de conversão pros anúncios (compartilhada com growth)."
628
625
  rel:
@@ -714,7 +711,7 @@ areas:
714
711
  pairs_with: [wizz-infrastructure]
715
712
  check: "sentry-cli --version"
716
713
  # Pin de supply chain (2026-08-25): versão fixa; atualizar conscientemente.
717
- install: "npm install -g @sentry/cli@3.6.2"
714
+ install: "npm install -g @sentry/cli@3.8.0"
718
715
  - id: archify
719
716
  when: "DESENHAR um diagrama VALIDADO de arquitetura/workflow/sequência/dataflow/estado como HTML+SVG navegável (aceita Mermaid) — no passo 'Renderings & polish' do wizz-architecture, ou quando o usuário pedir um diagrama assim. Protocolo obrigatório validate → deliver → visual-check: nunca declarar sucesso sem ler o JSON do comando. Ele DESENHA o que já foi decidido; a decisão e o porquê continuam no wizz-architecture (memlog, AD-n)."
720
717
  not_when:
@@ -771,7 +768,7 @@ areas:
771
768
  pairs_with: [wizz-agent-browser]
772
769
  check: "agent-browser --version"
773
770
  # Pin de supply chain (2026-08-23): versão fixa; atualizar conscientemente.
774
- install: "npm install -g agent-browser@0.34.0"
771
+ install: "npm install -g agent-browser@0.38.1"
775
772
  - id: strix
776
773
  when: "CONDICIONAL, nunca default — executor de pentest AUTÔNOMO e OFENSIVO (agentes de IA que rodam o app, exploram e VALIDAM vulnerabilidades com PoC real). Complementa security-audit-pentest: aquela skill é a metodologia/checklist humana; o Strix é o executor automatizado. Ferramenta dual-use: SÓ contra alvo próprio ou com AUTORIZAÇÃO ESCRITA do dono do sistema e ESCOPO definido — nunca contra alvo de terceiros sem permissão. Roda SEMPRE dentro do sandbox Docker isolado que a própria ferramenta provê (jamais direto no host). Gate condicional: ofereça apenas mediante confirmação explícita do usuário, com escopo e autorização declarados; jamais acione por padrão silencioso. RETORNO DEFENSIVO OBRIGATÓRIO: o executor (subagente) SEMPRE devolve o achado em formato defensivo — falha, severidade, evidência mínima e correção — nunca payload/exploit cru ou arma pronta; assim o revisor recebe conteúdo defensivo pra corrigir, não instrução de ataque. Precisa de Docker rodando e de uma LLM API key configurada."
777
774
  not_when: "Sem alvo próprio ou sem autorização escrita e escopo definido do dono do sistema; nunca acionar por padrão silencioso."
@@ -782,7 +779,7 @@ areas:
782
779
  # Pin de supply chain (2026-08-25): versão fixa do pacote pip; o sandbox
783
780
  # é a imagem pinada ghcr.io/usestrix/strix-sandbox:1.3.0, puxada no 1º run
784
781
  # dentro do Docker isolado. Atualizar conscientemente.
785
- install: "pipx install strix-agent==1.5.3"
782
+ install: "pipx install strix-agent==1.6.2"
786
783
  verify: "command -v docker >/dev/null 2>&1 && docker info >/dev/null 2>&1"
787
784
 
788
785
  analyst:
@@ -936,7 +933,7 @@ mcp_utility:
936
933
  server:
937
934
  command: npx
938
935
  # Pin de supply chain (2026-08-23): versão fixa; atualizar conscientemente.
939
- args: ["-y", "@upstash/context7-mcp@4.0.3"]
936
+ args: ["-y", "@upstash/context7-mcp@4.1.1"]
940
937
 
941
938
  # ─────────────────────────────────────────────────────────────────────────────
942
939
  # CLIs — ferramentas de linha de comando que os agentes chamam direto (não são
@@ -974,17 +971,20 @@ cli_utility:
974
971
  # --version` só testava que rodava). Agora `check` volta a ser só
975
972
  # presença/versão (roda e imprime o número); a COMPARAÇÃO semver contra
976
973
  # min_version é feita pelo installer (detectClis), não em shell.
977
- min_version: 0.45.0
974
+ min_version: 0.50.0
978
975
  check: "rtk --version"
979
- # Pin de supply chain (2026-08-23): tag v0.45.0 (antes: v0.43.0)
980
- # Checksum do install.sh nesta tag (2026-08-23): sha256
976
+ # Pin de supply chain (2026-09-30): tag v0.50.0 (antes: v0.45.0)
977
+ # Checksum do install.sh nesta tag (2026-09-30): sha256
981
978
  # d6eb73a772903e13ff34ee1be8a8b24e896ba9a978f20d2279a08b4083ea6f77
982
- # (install.sh idêntico ao v0.43.0 — mesmo checksum.)
979
+ # (install.sh idêntico ao v0.43.0 e ao v0.45.0 — mesmo checksum.)
980
+ # O install.sh baixa a release MAIS NOVA, não a da tag, a menos que
981
+ # RTK_VERSION esteja setada (achado de 2026-09-30): sem ela o pin da tag
982
+ # só travava o script, não o binário.
983
983
  # (RT1: tag git pode ser movida à força; o checksum trava o conteúdo real
984
984
  # que será executado, não só o nome da tag. Verificado com `shasum -c`
985
985
  # antes do `sh`; se a tag mudar de conteúdo, o install aborta em vez de
986
986
  # rodar script desconhecido.)
987
- install: "curl -fsSL https://raw.githubusercontent.com/rtk-ai/rtk/refs/tags/v0.45.0/install.sh -o /tmp/rtk-install-v0.45.0.sh && echo 'd6eb73a772903e13ff34ee1be8a8b24e896ba9a978f20d2279a08b4083ea6f77 /tmp/rtk-install-v0.45.0.sh' | shasum -a 256 -c - && sh /tmp/rtk-install-v0.45.0.sh"
987
+ install: "curl -fsSL https://raw.githubusercontent.com/rtk-ai/rtk/refs/tags/v0.50.0/install.sh -o /tmp/rtk-install-v0.50.0.sh && echo 'd6eb73a772903e13ff34ee1be8a8b24e896ba9a978f20d2279a08b4083ea6f77 /tmp/rtk-install-v0.50.0.sh' | shasum -a 256 -c - && RTK_VERSION=v0.50.0 sh /tmp/rtk-install-v0.50.0.sh"
988
988
 
989
989
  # ─────────────────────────────────────────────────────────────────────────────
990
990
  # SQUADS — painéis consultivos de personas (rodam via wizz-party-mode).
@@ -30,9 +30,10 @@ activation_steps_append = []
30
30
  # - a file reference prefixed with `file:`, e.g. "file:{project-root}/docs/standards.md"
31
31
  # (glob patterns are supported; the file's contents are loaded and treated as facts).
32
32
 
33
- persistent_facts = [
34
- "file:{project-root}/**/project-context.md",
35
- ]
33
+ # Empty of project-context by default: repo-wide context belongs in CLAUDE.md/AGENTS.md
34
+ # (the Wizz block imports project-context.md there once per session). Add
35
+ # `file:{project-root}/**/project-context.md` here only to load it on every activation.
36
+ persistent_facts = []
36
37
 
37
38
  # Scalar: executed when the workflow reaches its terminal stage (Step 6: Research Synthesis),
38
39
  # after the domain research document has been saved and the user selects [C] Complete.
@@ -30,9 +30,10 @@ activation_steps_append = []
30
30
  # - a file reference prefixed with `file:`, e.g. "file:{project-root}/docs/standards.md"
31
31
  # (glob patterns are supported; the file's contents are loaded and treated as facts).
32
32
 
33
- persistent_facts = [
34
- "file:{project-root}/**/project-context.md",
35
- ]
33
+ # Empty of project-context by default: repo-wide context belongs in CLAUDE.md/AGENTS.md
34
+ # (the Wizz block imports project-context.md there once per session). Add
35
+ # `file:{project-root}/**/project-context.md` here only to load it on every activation.
36
+ persistent_facts = []
36
37
 
37
38
  # Scalar: executed when the workflow reaches its terminal stage (Step 6: Research Completion),
38
39
  # after the market research document has been saved and the user selects [C] Complete.
@@ -30,8 +30,10 @@ activation_steps_append = []
30
30
  # - a file reference prefixed with `file:`, e.g. "file:{project-root}/docs/standards.md"
31
31
  # (glob patterns are supported; the file's contents are loaded and treated as facts).
32
32
 
33
+ # Empty of project-context by default: repo-wide context belongs in CLAUDE.md/AGENTS.md
34
+ # (the Wizz block imports project-context.md there once per session). Add
35
+ # `file:{project-root}/**/project-context.md` here only to load it on every activation.
33
36
  persistent_facts = [
34
- "file:{project-root}/**/project-context.md",
35
37
  "When researching a specific library, framework, or SDK, consult Context7 for current docs and version-specific facts as a preferred source alongside web search: call resolve-library-id with the library name, then query-docs with the returned /org/project id and a specific question. If Context7 is unavailable, note the gap and proceed with web research.",
36
38
  ]
37
39
 
@@ -35,8 +35,10 @@ activation_steps_append = []
35
35
  # - a file reference prefixed with `file:`, e.g. "file:{project-root}/docs/standards.md"
36
36
  # (glob patterns are supported; the file's contents are loaded and treated as facts).
37
37
 
38
+ # Empty of project-context by default: repo-wide context belongs in CLAUDE.md/AGENTS.md
39
+ # (the Wizz block imports project-context.md there once per session). Add
40
+ # `file:{project-root}/**/project-context.md` here only to load it on every activation.
38
41
  persistent_facts = [
39
- "file:{project-root}/**/project-context.md",
40
42
  "FEATURE: the SessionStart hook already resolves the active feature from the git branch and injects 'FEATURE ATIVA: <slug>'. If it exists, save EVERY planning and implementation artifact in the subfolder with that name ({planning_artifacts}/{active_feature}/, {implementation_artifacts}/{active_feature}/) and write the slug to active_feature in {project-root}/_wizz/bmm/config.yaml on first write, announcing it in ONE line. Memory saved in this session carries the same slug as its theme. With no feature resolved, write to the root folders. NEVER ask the user for the feature: invoke wizz-set-feature only if they ask to switch, or if there are two open features and the request does not decide between them.",
41
43
  ]
42
44
 
@@ -36,9 +36,10 @@ activation_steps_append = []
36
36
  # - a file reference prefixed with `file:`, e.g. "file:{project-root}/docs/standards.md"
37
37
  # (glob patterns are supported; the file's contents are loaded and treated as facts).
38
38
 
39
- persistent_facts = [
40
- "file:{project-root}/**/project-context.md",
41
- ]
39
+ # Empty of project-context by default: repo-wide context belongs in CLAUDE.md/AGENTS.md
40
+ # (the Wizz block imports project-context.md there once per session). Add
41
+ # `file:{project-root}/**/project-context.md` here only to load it on every activation.
42
+ persistent_facts = []
42
43
 
43
44
  role = "Capture and curate project knowledge so humans and future LLM agents stay in sync during the Wizz Method analysis phase."
44
45
  identity = "Writes with Julia Evans's accessibility and Edward Tufte's visual precision."
@@ -30,9 +30,10 @@ activation_steps_append = []
30
30
  # - a file reference prefixed with `file:`, e.g. "file:{project-root}/docs/standards.md"
31
31
  # (glob patterns are supported; the file's contents are loaded and treated as facts).
32
32
 
33
- persistent_facts = [
34
- "file:{project-root}/**/project-context.md",
35
- ]
33
+ # Empty of project-context by default: repo-wide context belongs in CLAUDE.md/AGENTS.md
34
+ # (the Wizz block imports project-context.md there once per session). Add
35
+ # `file:{project-root}/**/project-context.md` here only to load it on every activation.
36
+ persistent_facts = []
36
37
 
37
38
  # Scalar: executed when the workflow reaches its terminal stage, after
38
39
  # the main output has been delivered. Override wins. Leave empty for
@@ -30,9 +30,10 @@ activation_steps_append = []
30
30
  # - a file reference prefixed with `file:`, e.g. "file:{project-root}/docs/standards.md"
31
31
  # (glob patterns are supported; the file's contents are loaded and treated as facts).
32
32
 
33
- persistent_facts = [
34
- "file:{project-root}/**/project-context.md",
35
- ]
33
+ # Empty of project-context by default: repo-wide context belongs in CLAUDE.md/AGENTS.md
34
+ # (the Wizz block imports project-context.md there once per session). Add
35
+ # `file:{project-root}/**/project-context.md` here only to load it on every activation.
36
+ persistent_facts = []
36
37
 
37
38
  # Scalar: executed when the workflow reaches its terminal stage (Stage 5: The Verdict),
38
39
  # after the PRFAQ and distillate have been delivered. Override wins. Leave empty for
@@ -24,14 +24,13 @@ activation_steps_append = []
24
24
  # Each entry is either a literal sentence, a skill prefixed with `skill:`, or a `file:`-prefixed path/glob
25
25
  # whose contents are loaded as facts.
26
26
  #
27
- # Default loads project-context.md if wizz-generate-project-context has produced one — this gives
28
- # the facilitator persistent awareness of the project's tech, domain, and constraints without
29
- # re-asking. Common opt-ins (set in team/user override TOML):
27
+ # Common opt-ins (set in team/user override TOML):
30
28
  # "skill:acme-co:terms-and-conditions" # a skill that contains some relevant info
31
29
  # "Elvis has left the building" # generic agent instruction
32
- persistent_facts = [
33
- "file:{project-root}/**/project-context.md",
34
- ]
30
+ # Empty of project-context by default: repo-wide context belongs in CLAUDE.md/AGENTS.md
31
+ # (the Wizz block imports project-context.md there once per session). Add
32
+ # `file:{project-root}/**/project-context.md` here only to load it on every activation.
33
+ persistent_facts = []
35
34
 
36
35
  # Executed when the workflow completes (after the user has been told the
37
36
  # brief is ready). Accepts either a string scalar (single instruction)
@@ -35,8 +35,10 @@ activation_steps_append = []
35
35
  # - a file reference prefixed with `file:`, e.g. "file:{project-root}/docs/standards.md"
36
36
  # (glob patterns are supported; the file's contents are loaded and treated as facts).
37
37
 
38
+ # Empty of project-context by default: repo-wide context belongs in CLAUDE.md/AGENTS.md
39
+ # (the Wizz block imports project-context.md there once per session). Add
40
+ # `file:{project-root}/**/project-context.md` here only to load it on every activation.
38
41
  persistent_facts = [
39
- "file:{project-root}/**/project-context.md",
40
42
  "FEATURE: the SessionStart hook already resolves the active feature from the git branch and injects 'FEATURE ATIVA: <slug>'. If it exists, save EVERY planning and implementation artifact in the subfolder with that name ({planning_artifacts}/{active_feature}/, {implementation_artifacts}/{active_feature}/) and write the slug to active_feature in {project-root}/_wizz/bmm/config.yaml on first write, announcing it in ONE line. Memory saved in this session carries the same slug as its theme. With no feature resolved, write to the root folders. NEVER ask the user for the feature: invoke wizz-set-feature only if they ask to switch, or if there are two open features and the request does not decide between them.",
41
43
  ]
42
44
 
@@ -35,8 +35,10 @@ activation_steps_append = []
35
35
  # - a file reference prefixed with `file:`, e.g. "file:{project-root}/docs/standards.md"
36
36
  # (glob patterns are supported; the file's contents are loaded and treated as facts).
37
37
 
38
+ # Empty of project-context by default: repo-wide context belongs in CLAUDE.md/AGENTS.md
39
+ # (the Wizz block imports project-context.md there once per session). Add
40
+ # `file:{project-root}/**/project-context.md` here only to load it on every activation.
38
41
  persistent_facts = [
39
- "file:{project-root}/**/project-context.md",
40
42
  "FEATURE: the SessionStart hook already resolves the active feature from the git branch and injects 'FEATURE ATIVA: <slug>'. If it exists, save EVERY planning and implementation artifact in the subfolder with that name ({planning_artifacts}/{active_feature}/, {implementation_artifacts}/{active_feature}/) and write the slug to active_feature in {project-root}/_wizz/bmm/config.yaml on first write, announcing it in ONE line. Memory saved in this session carries the same slug as its theme. With no feature resolved, write to the root folders. NEVER ask the user for the feature: invoke wizz-set-feature only if they ask to switch, or if there are two open features and the request does not decide between them.",
41
43
  ]
42
44
 
@@ -30,9 +30,10 @@ activation_steps_append = []
30
30
  # - a file reference prefixed with `file:`, e.g. "file:{project-root}/docs/standards.md"
31
31
  # (glob patterns are supported; the file's contents are loaded and treated as facts).
32
32
 
33
- persistent_facts = [
34
- "file:{project-root}/**/project-context.md",
35
- ]
33
+ # Empty of project-context by default: repo-wide context belongs in CLAUDE.md/AGENTS.md
34
+ # (the Wizz block imports project-context.md there once per session). Add
35
+ # `file:{project-root}/**/project-context.md` here only to load it on every activation.
36
+ persistent_facts = []
36
37
 
37
38
  # Scalar: executed when the workflow reaches Step 12 (Workflow Completion),
38
39
  # after the PRD is finalized and workflow status is updated. Override wins.
@@ -30,9 +30,10 @@ activation_steps_append = []
30
30
  # - a file reference prefixed with `file:`, e.g. "file:{project-root}/docs/standards.md"
31
31
  # (glob patterns are supported; the file's contents are loaded and treated as facts).
32
32
 
33
- persistent_facts = [
34
- "file:{project-root}/**/project-context.md",
35
- ]
33
+ # Empty of project-context by default: repo-wide context belongs in CLAUDE.md/AGENTS.md
34
+ # (the Wizz block imports project-context.md there once per session). Add
35
+ # `file:{project-root}/**/project-context.md` here only to load it on every activation.
36
+ persistent_facts = []
36
37
 
37
38
  # Scalar: executed when the workflow reaches Step E-4 (Complete & Validate) and the
38
39
  # user exits via [S] Summary or [X] Exit — not on [V] Validate (which chains to
@@ -24,14 +24,13 @@ activation_steps_append = []
24
24
  # Each entry is either a literal sentence, a skill prefixed with `skill:`, or a `file:`-prefixed path/glob
25
25
  # whose contents are loaded as facts.
26
26
  #
27
- # Default loads project-context.md if wizz-generate-project-context has produced one — this gives
28
- # the facilitator persistent awareness of the project's tech, domain, and constraints without
29
- # re-asking. Common opt-ins (set in team/user override TOML):
27
+ # Common opt-ins (set in team/user override TOML):
30
28
  # "skill:acme-co:terms-and-conditions" # a skill that contains some relevant info
31
29
  # "Investor PRDs must include a market sizing section." # generic agent instruction
32
- persistent_facts = [
33
- "file:{project-root}/**/project-context.md",
34
- ]
30
+ # Empty of project-context by default: repo-wide context belongs in CLAUDE.md/AGENTS.md
31
+ # (the Wizz block imports project-context.md there once per session). Add
32
+ # `file:{project-root}/**/project-context.md` here only to load it on every activation.
33
+ persistent_facts = []
35
34
 
36
35
  # Executed when the workflow completes (after the user has been told the
37
36
  # PRD is ready). Accepts either a string scalar (single instruction)
@@ -14,9 +14,10 @@ activation_steps_append = []
14
14
 
15
15
  # Persistent facts loaded at activation and kept in mind for the run.
16
16
  # Entries: literal sentence, `skill:NAME`, or `file:PATH` (glob ok).
17
- persistent_facts = [
18
- "file:{project-root}/**/project-context.md",
19
- ]
17
+ # Empty of project-context by default: repo-wide context belongs in CLAUDE.md/AGENTS.md
18
+ # (the Wizz block imports project-context.md there once per session). Add
19
+ # `file:{project-root}/**/project-context.md` here only to load it on every activation.
20
+ persistent_facts = []
20
21
 
21
22
  # Runs at workflow completion. String or array of instructions.
22
23
  on_complete = ""
@@ -30,9 +30,10 @@ activation_steps_append = []
30
30
  # - a file reference prefixed with `file:`, e.g. "file:{project-root}/docs/standards.md"
31
31
  # (glob patterns are supported; the file's contents are loaded and treated as facts).
32
32
 
33
- persistent_facts = [
34
- "file:{project-root}/**/project-context.md",
35
- ]
33
+ # Empty of project-context by default: repo-wide context belongs in CLAUDE.md/AGENTS.md
34
+ # (the Wizz block imports project-context.md there once per session). Add
35
+ # `file:{project-root}/**/project-context.md` here only to load it on every activation.
36
+ persistent_facts = []
36
37
 
37
38
  # Scalar: executed when the workflow reaches Step 13 (Validation Report Complete) and
38
39
  # the user exits via [X] Exit — not on [E] Use Edit Workflow (which chains to
@@ -35,8 +35,10 @@ activation_steps_append = []
35
35
  # - a file reference prefixed with `file:`, e.g. "file:{project-root}/docs/standards.md"
36
36
  # (glob patterns are supported; the file's contents are loaded and treated as facts).
37
37
 
38
+ # Empty of project-context by default: repo-wide context belongs in CLAUDE.md/AGENTS.md
39
+ # (the Wizz block imports project-context.md there once per session). Add
40
+ # `file:{project-root}/**/project-context.md` here only to load it on every activation.
38
41
  persistent_facts = [
39
- "file:{project-root}/**/project-context.md",
40
42
  "FEATURE: the SessionStart hook already resolves the active feature from the git branch and injects 'FEATURE ATIVA: <slug>'. If it exists, save EVERY planning and implementation artifact in the subfolder with that name ({planning_artifacts}/{active_feature}/, {implementation_artifacts}/{active_feature}/) and write the slug to active_feature in {project-root}/_wizz/bmm/config.yaml on first write, announcing it in ONE line. Memory saved in this session carries the same slug as its theme. With no feature resolved, write to the root folders. NEVER ask the user for the feature: invoke wizz-set-feature only if they ask to switch, or if there are two open features and the request does not decide between them.",
41
43
  ]
42
44
 
@@ -24,14 +24,13 @@ activation_steps_append = []
24
24
  # Each entry is either a literal sentence, a skill prefixed with `skill:`, or a `file:`-prefixed
25
25
  # path/glob whose contents are loaded as facts.
26
26
  #
27
- # Default loads project-context.md if wizz-generate-project-context produced one — giving the
28
- # architect persistent awareness of the project's tech, domain, and conventions (load-bearing
29
- # for brownfield). Common opt-ins (set in team/user override TOML):
27
+ # Common opt-ins (set in team/user override TOML):
30
28
  # "Our org is AWS-only -- do not propose GCP or Azure."
31
29
  # "file:{project-root}/docs/engineering-standards.md"
32
- persistent_facts = [
33
- "file:{project-root}/**/project-context.md",
34
- ]
30
+ # Empty of project-context by default: repo-wide context belongs in CLAUDE.md/AGENTS.md
31
+ # (the Wizz block imports project-context.md there once per session). Add
32
+ # `file:{project-root}/**/project-context.md` here only to load it on every activation.
33
+ persistent_facts = []
35
34
 
36
35
  # Executed when the workflow completes (after the spine is final and the user has been told).
37
36
  # String scalar (single instruction) or array of instructions executed in order. Empty for none.
@@ -30,9 +30,10 @@ activation_steps_append = []
30
30
  # - a file reference prefixed with `file:`, e.g. "file:{project-root}/docs/standards.md"
31
31
  # (glob patterns are supported; the file's contents are loaded and treated as facts).
32
32
 
33
- persistent_facts = [
34
- "file:{project-root}/**/project-context.md",
35
- ]
33
+ # Empty of project-context by default: repo-wide context belongs in CLAUDE.md/AGENTS.md
34
+ # (the Wizz block imports project-context.md there once per session). Add
35
+ # `file:{project-root}/**/project-context.md` here only to load it on every activation.
36
+ persistent_facts = []
36
37
 
37
38
  # Scalar: executed when the workflow reaches Step 6 (Final Assessment),
38
39
  # after the readiness report has been saved and presented. Override wins.
@@ -30,9 +30,10 @@ activation_steps_append = []
30
30
  # - a file reference prefixed with `file:`, e.g. "file:{project-root}/docs/standards.md"
31
31
  # (glob patterns are supported; the file's contents are loaded and treated as facts).
32
32
 
33
- persistent_facts = [
34
- "file:{project-root}/**/project-context.md",
35
- ]
33
+ # Empty of project-context by default: repo-wide context belongs in CLAUDE.md/AGENTS.md
34
+ # (the Wizz block imports project-context.md there once per session). Add
35
+ # `file:{project-root}/**/project-context.md` here only to load it on every activation.
36
+ persistent_facts = []
36
37
 
37
38
  # Scalar: executed when the workflow reaches Step 8 (Architecture Completion & Handoff),
38
39
  # after the architecture document frontmatter is updated and next-steps guidance is given.