wizz-method 2.13.0 → 2.15.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 (108) hide show
  1. package/THIRD-PARTY-NOTICES.md +2 -0
  2. package/package.json +10 -3
  3. package/skills-registry.yaml +30 -25
  4. package/src/bmm-skills/1-analysis/research/wizz-domain-research/customize.toml +4 -3
  5. package/src/bmm-skills/1-analysis/research/wizz-market-research/customize.toml +4 -3
  6. package/src/bmm-skills/1-analysis/research/wizz-technical-research/customize.toml +3 -1
  7. package/src/bmm-skills/1-analysis/wizz-agent-analyst/customize.toml +3 -1
  8. package/src/bmm-skills/1-analysis/wizz-agent-tech-writer/customize.toml +4 -3
  9. package/src/bmm-skills/1-analysis/wizz-document-project/customize.toml +4 -3
  10. package/src/bmm-skills/1-analysis/wizz-prfaq/customize.toml +4 -3
  11. package/src/bmm-skills/1-analysis/wizz-product-brief/customize.toml +5 -6
  12. package/src/bmm-skills/2-plan-workflows/wizz-agent-pm/customize.toml +3 -1
  13. package/src/bmm-skills/2-plan-workflows/wizz-agent-ux-designer/customize.toml +3 -1
  14. package/src/bmm-skills/2-plan-workflows/wizz-create-prd/customize.toml +4 -3
  15. package/src/bmm-skills/2-plan-workflows/wizz-edit-prd/customize.toml +4 -3
  16. package/src/bmm-skills/2-plan-workflows/wizz-prd/customize.toml +5 -6
  17. package/src/bmm-skills/2-plan-workflows/wizz-ux/customize.toml +4 -3
  18. package/src/bmm-skills/2-plan-workflows/wizz-validate-prd/customize.toml +4 -3
  19. package/src/bmm-skills/3-solutioning/wizz-agent-architect/customize.toml +3 -1
  20. package/src/bmm-skills/3-solutioning/wizz-architecture/customize.toml +5 -6
  21. package/src/bmm-skills/3-solutioning/wizz-check-implementation-readiness/customize.toml +4 -3
  22. package/src/bmm-skills/3-solutioning/wizz-create-architecture/customize.toml +4 -3
  23. package/src/bmm-skills/3-solutioning/wizz-create-epics-and-stories/customize.toml +4 -3
  24. package/src/bmm-skills/3-solutioning/wizz-generate-project-context/steps/step-03-complete.md +7 -0
  25. package/src/bmm-skills/4-implementation/wizz-agent-dev/customize.toml +3 -1
  26. package/src/bmm-skills/4-implementation/wizz-checkpoint-preview/customize.toml +4 -3
  27. package/src/bmm-skills/4-implementation/wizz-code-review/customize.toml +4 -3
  28. package/src/bmm-skills/4-implementation/wizz-code-review/steps/step-03-triage.md +23 -14
  29. package/src/bmm-skills/4-implementation/wizz-code-review/steps/step-04-present.md +2 -2
  30. package/src/bmm-skills/4-implementation/wizz-correct-course/customize.toml +4 -3
  31. package/src/bmm-skills/4-implementation/wizz-create-story/customize.toml +4 -3
  32. package/src/bmm-skills/4-implementation/wizz-dev-story/customize.toml +4 -3
  33. package/src/bmm-skills/4-implementation/wizz-investigate/customize.toml +4 -3
  34. package/src/bmm-skills/4-implementation/wizz-qa-generate-e2e-tests/customize.toml +4 -3
  35. package/src/bmm-skills/4-implementation/wizz-quick-dev/SKILL.md +1 -1
  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/core-skills/wizz-brainstorming/customize.toml +5 -6
  44. package/src/core-skills/wizz-brainstorming/scripts/brain.py +19 -0
  45. package/src/core-skills/wizz-brainstorming/scripts/tests/test_brain.py +33 -0
  46. package/src/core-skills/wizz-forge-idea/scripts/resolve_personas.py +3 -1
  47. package/src/core-skills/wizz-forge-idea/scripts/tests/test_resolve_personas.py +21 -0
  48. package/src/core-skills/wizz-help/SKILL.md +5 -3
  49. package/src/core-skills/wizz-party-mode/customize.toml +5 -4
  50. package/src/core-skills/wizz-party-mode/scripts/resolve_party.py +3 -1
  51. package/src/core-skills/wizz-party-mode/scripts/tests/test_resolve_party.py +21 -0
  52. package/src/core-skills/wizz-spec/customize.toml +4 -5
  53. package/src/modules/wizz/_shared/model-ladder.md +4 -4
  54. package/src/modules/wizz/agents/wizz-designer/SKILL.md +1 -1
  55. package/src/modules/wizz/agents/wizz-maestro/SKILL.md +1 -1
  56. package/src/modules/wizz/subagents/opencode/wizz-exec-review.md +2 -2
  57. package/src/modules/wizz/subagents/opencode/wizz-exec-standard.md +2 -2
  58. package/src/modules/wizz/subagents/opencode/wizz-exec-strong.md +2 -2
  59. package/src/modules/wizz/subagents/spec.yaml +3 -3
  60. package/src/scripts/resolve_config.py +8 -0
  61. package/src/scripts/resolve_customization.py +24 -3
  62. package/src/scripts/tests/test_resolve_config.py +42 -0
  63. package/src/scripts/tests/test_resolve_customization.py +45 -0
  64. package/src/skills-lib/_shared/complexity-signal.md +1 -1
  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-design-needs/SKILL.md +1 -1
  68. package/src/skills-lib/wizz-huashu-design/scripts/html2pptx.js +902 -1061
  69. package/src/skills-lib/wizz-humanizer/README.md +134 -71
  70. package/src/skills-lib/wizz-humanizer/SKILL.md +51 -37
  71. package/src/skills-lib/wizz-humanizer/references/ai-writing-patterns.md +208 -190
  72. package/src/skills-lib/wizz-premium-landing-ui-researcher/SKILL.md +1 -1
  73. package/src/skills-lib/wizz-router/SKILL.md +1 -1
  74. package/src/skills-lib/wizz-ui-component-curator/SKILL.md +22 -2
  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/src/bmm-skills/3-solutioning/wizz-architecture/scripts/__pycache__/lint_spine.cpython-313.pyc +0 -0
  79. package/src/bmm-skills/3-solutioning/wizz-architecture/scripts/tests/__pycache__/test_lint_spine.cpython-313-pytest-9.1.1.pyc +0 -0
  80. package/src/bmm-skills/4-implementation/wizz-retrospective/scripts/__pycache__/sprint_status.cpython-313.pyc +0 -0
  81. package/src/bmm-skills/4-implementation/wizz-retrospective/scripts/tests/__pycache__/test_git_evidence.cpython-313-pytest-9.1.1.pyc +0 -0
  82. package/src/bmm-skills/4-implementation/wizz-retrospective/scripts/tests/__pycache__/test_sprint_status.cpython-313-pytest-9.1.1.pyc +0 -0
  83. package/src/bmm-skills/4-implementation/wizz-sprint-planning/scripts/__pycache__/sprint_plan.cpython-313.pyc +0 -0
  84. package/src/bmm-skills/4-implementation/wizz-sprint-planning/scripts/tests/__pycache__/test_sprint_plan.cpython-313-pytest-9.1.1.pyc +0 -0
  85. package/src/core-skills/wizz-advanced-elicitation/scripts/__pycache__/pick_methods.cpython-313.pyc +0 -0
  86. package/src/core-skills/wizz-advanced-elicitation/scripts/tests/__pycache__/test_pick_methods.cpython-313-pytest-9.1.1.pyc +0 -0
  87. package/src/core-skills/wizz-brainstorming/scripts/__pycache__/brain.cpython-313.pyc +0 -0
  88. package/src/core-skills/wizz-brainstorming/scripts/tests/__pycache__/test_brain.cpython-313-pytest-9.1.1.pyc +0 -0
  89. package/src/core-skills/wizz-brainstorming/scripts/tests/__pycache__/test_brain.cpython-314.pyc +0 -0
  90. package/src/core-skills/wizz-customize/scripts/__pycache__/list_customizable_skills.cpython-313.pyc +0 -0
  91. package/src/core-skills/wizz-customize/scripts/tests/__pycache__/test_list_customizable_skills.cpython-313-pytest-9.1.1.pyc +0 -0
  92. package/src/core-skills/wizz-forge-idea/scripts/__pycache__/resolve_personas.cpython-313.pyc +0 -0
  93. package/src/core-skills/wizz-forge-idea/scripts/__pycache__/resolve_personas.cpython-314.pyc +0 -0
  94. package/src/core-skills/wizz-forge-idea/scripts/tests/__pycache__/test_resolve_personas.cpython-313-pytest-9.1.1.pyc +0 -0
  95. package/src/core-skills/wizz-forge-idea/scripts/tests/__pycache__/test_resolve_personas.cpython-314.pyc +0 -0
  96. package/src/core-skills/wizz-party-mode/scripts/__pycache__/resolve_party.cpython-313.pyc +0 -0
  97. package/src/core-skills/wizz-party-mode/scripts/__pycache__/resolve_party.cpython-314.pyc +0 -0
  98. package/src/core-skills/wizz-party-mode/scripts/tests/__pycache__/test_resolve_party.cpython-313-pytest-9.1.1.pyc +0 -0
  99. package/src/core-skills/wizz-party-mode/scripts/tests/__pycache__/test_resolve_party.cpython-314.pyc +0 -0
  100. package/src/scripts/__pycache__/resolve_customization.cpython-314.pyc +0 -0
  101. package/src/skills-lib/wizz-huashu-design/package-lock.json +0 -846
  102. package/src/skills-lib/wizz-humanizer/WARP.md +0 -53
  103. package/src/skills-lib/wizz-humanizer/references/full-example.md +0 -72
  104. package/src/skills-lib/wizz-humanizer/references/personality-and-soul.md +0 -36
  105. package/src/skills-lib/wizz-react-components/package-lock.json +0 -231
  106. package/src/skills-lib/wizz-supabase-postgres-best-practices/CLAUDE.md +0 -68
  107. package/src/skills-lib/wizz-ui-ux-pro-max/scripts/__pycache__/core.cpython-314.pyc +0 -0
  108. package/src/skills-lib/wizz-ui-ux-pro-max/scripts/__pycache__/design_system.cpython-314.pyc +0 -0
@@ -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.13.0",
4
+ "version": "2.15.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",
@@ -127,14 +127,14 @@ areas:
127
127
  # dentro do `when:` deixa a entrada gulosa e mexe no roteamento).
128
128
  - id: wizz-premium-landing-ui-researcher
129
129
  door: construcao
130
- when: "Projeto NOVO (greenfield): cria landing premium do zero, hero, 3D high-end. Estratégia source-first."
130
+ when: "Projeto NOVO (greenfield) ou tela inteira refeita: landing premium, hero, 3D high-end, dashboard SaaS ou painel operacional. Estratégia source-first."
131
131
  rel:
132
132
  after: [wizz-design-needs]
133
133
  pairs_with: [wizz-ui-ux-pro-max]
134
134
  # Idem: a relação com o mapa vive na aresta `after`, não no `when:`.
135
135
  - id: wizz-ui-component-curator
136
136
  door: construcao
137
- when: "Projeto EXISTENTE: qual componente/efeito adicionar que combina com o estilo atual."
137
+ when: "Projeto EXISTENTE (site ou painel): qual componente, efeito, hover ou animação de carregamento adicionar que combina com o estilo atual."
138
138
  rel:
139
139
  after: [wizz-design-needs]
140
140
  pairs_with: [wizz-ui-ux-pro-max]
@@ -229,15 +229,15 @@ 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."
@@ -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,8 +299,10 @@ 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
307
  - id: apple-design
306
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')."
@@ -709,7 +711,7 @@ areas:
709
711
  pairs_with: [wizz-infrastructure]
710
712
  check: "sentry-cli --version"
711
713
  # Pin de supply chain (2026-08-25): versão fixa; atualizar conscientemente.
712
- install: "npm install -g @sentry/cli@3.6.2"
714
+ install: "npm install -g @sentry/cli@3.8.0"
713
715
  - id: archify
714
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)."
715
717
  not_when:
@@ -766,7 +768,7 @@ areas:
766
768
  pairs_with: [wizz-agent-browser]
767
769
  check: "agent-browser --version"
768
770
  # Pin de supply chain (2026-08-23): versão fixa; atualizar conscientemente.
769
- install: "npm install -g agent-browser@0.34.0"
771
+ install: "npm install -g agent-browser@0.38.1"
770
772
  - id: strix
771
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."
772
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."
@@ -777,7 +779,7 @@ areas:
777
779
  # Pin de supply chain (2026-08-25): versão fixa do pacote pip; o sandbox
778
780
  # é a imagem pinada ghcr.io/usestrix/strix-sandbox:1.3.0, puxada no 1º run
779
781
  # dentro do Docker isolado. Atualizar conscientemente.
780
- install: "pipx install strix-agent==1.5.3"
782
+ install: "pipx install strix-agent==1.6.2"
781
783
  verify: "command -v docker >/dev/null 2>&1 && docker info >/dev/null 2>&1"
782
784
 
783
785
  analyst:
@@ -931,7 +933,7 @@ mcp_utility:
931
933
  server:
932
934
  command: npx
933
935
  # Pin de supply chain (2026-08-23): versão fixa; atualizar conscientemente.
934
- args: ["-y", "@upstash/context7-mcp@4.0.3"]
936
+ args: ["-y", "@upstash/context7-mcp@4.1.1"]
935
937
 
936
938
  # ─────────────────────────────────────────────────────────────────────────────
937
939
  # CLIs — ferramentas de linha de comando que os agentes chamam direto (não são
@@ -969,17 +971,20 @@ cli_utility:
969
971
  # --version` só testava que rodava). Agora `check` volta a ser só
970
972
  # presença/versão (roda e imprime o número); a COMPARAÇÃO semver contra
971
973
  # min_version é feita pelo installer (detectClis), não em shell.
972
- min_version: 0.45.0
974
+ min_version: 0.50.0
973
975
  check: "rtk --version"
974
- # Pin de supply chain (2026-08-23): tag v0.45.0 (antes: v0.43.0)
975
- # 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
976
978
  # d6eb73a772903e13ff34ee1be8a8b24e896ba9a978f20d2279a08b4083ea6f77
977
- # (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.
978
983
  # (RT1: tag git pode ser movida à força; o checksum trava o conteúdo real
979
984
  # que será executado, não só o nome da tag. Verificado com `shasum -c`
980
985
  # antes do `sh`; se a tag mudar de conteúdo, o install aborta em vez de
981
986
  # rodar script desconhecido.)
982
- 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"
983
988
 
984
989
  # ─────────────────────────────────────────────────────────────────────────────
985
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.
@@ -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 4 (Final Validation) and the
38
39
  # user confirms [C] Complete — after the epics.md is saved and wizz-help is invoked.
@@ -207,6 +207,13 @@ stage: '{{project_stage}}' # prototype|mvp|production|maintenance
207
207
  **Add Usage Section:**
208
208
  Append the usage guidelines from step 3 to complete the document.
209
209
 
210
+ **Wire it into the Wizz block:** agents no longer load this file on every skill activation; the Wizz block in `CLAUDE.md` / `AGENTS.md` loads it once per session. For each of those files at `{project-root}` that has the `<!-- wizz:begin -->` block and does not yet mention this file, add a line right before `<!-- wizz:end -->`, using the path relative to `{project-root}`:
211
+
212
+ - `CLAUDE.md`: `@<relative path>` on its own line (Claude Code imports it).
213
+ - `AGENTS.md`: ``- Contexto do projeto: leia `<relative path>` antes de implementar (regras de stack e padrões).``
214
+
215
+ The next `wizz install` rewrites the block with the same line, so the edit is stable. If neither file has the block, tell the user to run `npx wizz-method install` to add it.
216
+
210
217
  ### 6. Completion Validation
211
218
 
212
219
  Final checks before completion:
@@ -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
  "When implementing against a library or framework, consult Context7 for current docs, APIs, and version-specific syntax before relying on training data or 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, tell the user once that they can enable it with `npx ctx7 setup`, then fall back to web research.",
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 its final step,
38
39
  # after the review decision (approve/rework/discuss) is made. 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 its final step,
38
39
  # after review findings are presented and sprint status is synced. Override wins.