wizz-method 2.0.0 → 2.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +60 -30
- package/README.md +80 -31
- package/SECURITY.md +24 -0
- package/THIRD-PARTY-NOTICES.md +136 -0
- package/package.json +31 -17
- package/skills-registry.yaml +128 -7
- package/src/bmm-skills/1-analysis/research/wizz-domain-research/SKILL.md +3 -4
- package/src/bmm-skills/1-analysis/research/wizz-domain-research/domain-steps/step-06-research-synthesis.md +1 -1
- package/src/bmm-skills/1-analysis/research/wizz-market-research/SKILL.md +3 -4
- package/src/bmm-skills/1-analysis/research/wizz-market-research/steps/step-06-research-completion.md +1 -1
- package/src/bmm-skills/1-analysis/research/wizz-technical-research/SKILL.md +3 -4
- package/src/bmm-skills/1-analysis/research/wizz-technical-research/technical-steps/step-06-research-synthesis.md +1 -1
- package/src/bmm-skills/1-analysis/wizz-agent-analyst/SKILL.md +3 -4
- package/src/bmm-skills/1-analysis/wizz-agent-tech-writer/SKILL.md +3 -4
- package/src/bmm-skills/1-analysis/wizz-document-project/SKILL.md +3 -4
- package/src/bmm-skills/1-analysis/wizz-document-project/workflows/deep-dive-instructions.md +1 -1
- package/src/bmm-skills/1-analysis/wizz-document-project/workflows/full-scan-instructions.md +1 -1
- package/src/bmm-skills/1-analysis/wizz-prfaq/SKILL.md +3 -4
- package/src/bmm-skills/1-analysis/wizz-prfaq/references/verdict.md +1 -1
- package/src/bmm-skills/1-analysis/wizz-product-brief/SKILL.md +1 -1
- package/src/bmm-skills/2-plan-workflows/wizz-agent-pm/SKILL.md +3 -4
- package/src/bmm-skills/2-plan-workflows/wizz-agent-ux-designer/SKILL.md +3 -4
- package/src/bmm-skills/2-plan-workflows/wizz-create-prd/SKILL.md +1 -1
- package/src/bmm-skills/2-plan-workflows/wizz-edit-prd/SKILL.md +1 -1
- package/src/bmm-skills/2-plan-workflows/wizz-prd/SKILL.md +1 -1
- package/src/bmm-skills/2-plan-workflows/wizz-ux/SKILL.md +1 -1
- package/src/bmm-skills/2-plan-workflows/wizz-validate-prd/SKILL.md +1 -1
- package/src/bmm-skills/3-solutioning/wizz-agent-architect/SKILL.md +3 -4
- package/src/bmm-skills/3-solutioning/wizz-architecture/SKILL.md +9 -9
- package/src/bmm-skills/3-solutioning/wizz-architecture/references/headless.md +1 -1
- package/src/bmm-skills/3-solutioning/wizz-check-implementation-readiness/SKILL.md +3 -4
- package/src/bmm-skills/3-solutioning/wizz-check-implementation-readiness/steps/step-06-final-assessment.md +1 -1
- package/src/bmm-skills/3-solutioning/wizz-create-architecture/SKILL.md +1 -1
- package/src/bmm-skills/3-solutioning/wizz-create-epics-and-stories/SKILL.md +3 -4
- package/src/bmm-skills/3-solutioning/wizz-create-epics-and-stories/steps/step-04-final-validation.md +1 -1
- package/src/bmm-skills/3-solutioning/wizz-generate-project-context/SKILL.md +3 -4
- package/src/bmm-skills/3-solutioning/wizz-generate-project-context/steps/step-03-complete.md +1 -1
- package/src/bmm-skills/4-implementation/wizz-agent-dev/SKILL.md +3 -4
- package/src/bmm-skills/4-implementation/wizz-checkpoint-preview/SKILL.md +3 -4
- package/src/bmm-skills/4-implementation/wizz-checkpoint-preview/step-05-wrapup.md +1 -1
- package/src/bmm-skills/4-implementation/wizz-code-review/SKILL.md +3 -4
- package/src/bmm-skills/4-implementation/wizz-code-review/customize.toml +3 -8
- package/src/bmm-skills/4-implementation/wizz-code-review/review-prompts/blind-hunter.md +20 -0
- package/src/bmm-skills/4-implementation/wizz-code-review/steps/step-04-present.md +1 -1
- package/src/bmm-skills/4-implementation/wizz-correct-course/SKILL.md +4 -5
- package/src/bmm-skills/4-implementation/wizz-create-story/SKILL.md +4 -5
- package/src/bmm-skills/4-implementation/wizz-dev-story/SKILL.md +4 -5
- package/src/bmm-skills/4-implementation/wizz-investigate/SKILL.md +1 -1
- package/src/bmm-skills/4-implementation/wizz-qa-generate-e2e-tests/SKILL.md +4 -5
- package/src/bmm-skills/4-implementation/wizz-quick-dev/SKILL.md +4 -5
- package/src/bmm-skills/4-implementation/wizz-quick-dev/customize.toml +10 -22
- package/src/bmm-skills/4-implementation/wizz-quick-dev/review-prompts/blind-hunter.md +20 -0
- package/src/bmm-skills/4-implementation/wizz-quick-dev/step-05-present.md +1 -1
- package/src/bmm-skills/4-implementation/wizz-quick-dev/step-oneshot.md +1 -1
- package/src/bmm-skills/4-implementation/wizz-retrospective/SKILL.md +1 -2
- package/src/bmm-skills/4-implementation/wizz-sprint-planning/SKILL.md +1 -1
- package/src/bmm-skills/4-implementation/wizz-sprint-status/SKILL.md +5 -6
- package/src/core-skills/_shared/handoff-protocol.md +9 -0
- package/src/core-skills/wizz-advanced-elicitation/SKILL.md +2 -2
- package/src/core-skills/wizz-brainstorming/SKILL.md +6 -6
- package/src/core-skills/wizz-brainstorming/references/converge.md +1 -1
- package/src/core-skills/wizz-brainstorming/references/finalize.md +1 -1
- package/src/core-skills/wizz-brainstorming/references/headless.md +3 -3
- package/src/core-skills/wizz-brainstorming/references/mode-autonomous.md +1 -1
- package/src/core-skills/wizz-customize/SKILL.md +13 -10
- package/src/core-skills/wizz-forge-idea/SKILL.md +6 -6
- package/src/core-skills/wizz-forge-idea/scripts/__pycache__/resolve_personas.cpython-314.pyc +0 -0
- package/src/core-skills/wizz-forge-idea/scripts/resolve_personas.py +17 -1
- package/src/core-skills/wizz-party-mode/SKILL.md +3 -3
- package/src/core-skills/wizz-party-mode/references/create-party.md +1 -1
- package/src/core-skills/wizz-party-mode/references/party-memory.md +2 -2
- package/src/core-skills/wizz-party-mode/scripts/__pycache__/resolve_party.cpython-314.pyc +0 -0
- package/src/core-skills/wizz-party-mode/scripts/resolve_party.py +17 -1
- package/src/core-skills/wizz-review-adversarial-general/SKILL.md +1 -1
- package/src/core-skills/wizz-spec/SKILL.md +5 -5
- package/src/modules/lowticket/README.md +6 -6
- package/src/modules/lowticket/module.yaml +4 -1
- package/src/modules/lowticket/skills/{lowticket-funil → wizz-lowticket-funil}/SKILL.md +4 -4
- package/src/modules/lowticket/skills/{lowticket-funil → wizz-lowticket-funil}/references/copy-das-paginas.md +1 -1
- package/src/modules/lowticket/skills/{lowticket-metodologia → wizz-lowticket-metodologia}/SKILL.md +1 -1
- package/src/modules/lowticket/skills/{lowticket-minerador → wizz-lowticket-minerador}/SKILL.md +3 -3
- package/src/modules/lowticket/skills/{lowticket-minerador → wizz-lowticket-minerador}/references/rubrica.md +1 -1
- package/src/modules/lowticket/skills/{lowticket-pagina → wizz-lowticket-pagina}/SKILL.md +4 -4
- package/src/modules/lowticket/skills/{lowticket-trafego → wizz-lowticket-trafego}/SKILL.md +3 -3
- package/src/modules/lowticket/skills/{lowticket-trafego → wizz-lowticket-trafego}/references/reguas.md +1 -1
- package/src/modules/wizz/_shared/communication-rules.md +1 -1
- package/src/modules/wizz/_shared/despacho-barato.md +9 -0
- package/src/modules/wizz/_shared/token-economy.md +7 -0
- package/src/modules/wizz/agents/wizz-ads/SKILL.md +1 -1
- package/src/modules/wizz/agents/wizz-ads/customize.toml +1 -2
- package/src/modules/wizz/agents/wizz-copy/SKILL.md +1 -1
- package/src/modules/wizz/agents/wizz-copy/customize.toml +1 -2
- package/src/modules/wizz/agents/wizz-designer/SKILL.md +1 -1
- package/src/modules/wizz/agents/wizz-designer/customize.toml +1 -2
- package/src/modules/wizz/agents/wizz-growth/SKILL.md +1 -1
- package/src/modules/wizz/agents/wizz-growth/customize.toml +1 -2
- package/src/modules/wizz/agents/wizz-maestro/SKILL.md +5 -5
- package/src/modules/wizz/agents/wizz-maestro/customize.toml +4 -8
- package/src/modules/wizz/agents/wizz-memoria/SKILL.md +1 -1
- package/src/modules/wizz/agents/wizz-memoria/customize.toml +1 -2
- package/src/modules/wizz/agents/wizz-qa/SKILL.md +1 -1
- package/src/modules/wizz/agents/wizz-qa/customize.toml +1 -2
- package/src/modules/wizz/agents/wizz-seo/SKILL.md +1 -1
- package/src/modules/wizz/agents/wizz-seo/customize.toml +1 -2
- package/src/modules/wizz/agents/wizz-social/SKILL.md +1 -1
- package/src/modules/wizz/agents/wizz-social/customize.toml +1 -2
- package/src/modules/wizz/module.yaml +3 -0
- package/src/modules/wizz/overrides/wizz-agent-analyst.toml +1 -2
- package/src/modules/wizz/overrides/wizz-agent-architect.toml +1 -2
- package/src/modules/wizz/overrides/wizz-agent-dev.toml +1 -2
- package/src/modules/wizz/overrides/wizz-agent-pm.toml +1 -2
- package/src/modules/wizz/overrides/wizz-agent-tech-writer.toml +1 -2
- package/src/modules/wizz/overrides/wizz-agent-ux-designer.toml +1 -2
- package/src/modules/wizz/subagents/codex/wizz-exec-haiku.toml +2 -0
- package/src/modules/wizz/subagents/codex/wizz-exec-opus.toml +2 -0
- package/src/modules/wizz/subagents/codex/wizz-exec-review.toml +2 -0
- package/src/modules/wizz/subagents/codex/wizz-exec-sonnet.toml +2 -0
- package/src/modules/wizz/subagents/gemini/wizz-exec-haiku.md +4 -1
- package/src/modules/wizz/subagents/gemini/wizz-exec-opus.md +4 -1
- package/src/modules/wizz/subagents/gemini/wizz-exec-review.md +4 -1
- package/src/modules/wizz/subagents/gemini/wizz-exec-sonnet.md +4 -1
- package/src/modules/wizz/subagents/opencode/wizz-exec-haiku.md +4 -1
- package/src/modules/wizz/subagents/opencode/wizz-exec-opus.md +4 -1
- package/src/modules/wizz/subagents/opencode/wizz-exec-review.md +4 -1
- package/src/modules/wizz/subagents/opencode/wizz-exec-sonnet.md +4 -1
- package/src/modules/wizz/subagents/spec.yaml +148 -0
- package/src/modules/wizz/subagents/wizz-exec-haiku.md +4 -1
- package/src/modules/wizz/subagents/wizz-exec-opus.md +4 -1
- package/src/modules/wizz/subagents/wizz-exec-review.md +4 -1
- package/src/modules/wizz/subagents/wizz-exec-sonnet.md +4 -1
- package/src/scripts/__pycache__/resolve_customization.cpython-314.pyc +0 -0
- package/src/scripts/memlog.js +368 -0
- package/src/scripts/resolve_customization.py +124 -15
- package/src/skills-lib/_shared/complexity-signal.md +14 -0
- package/src/skills-lib/wizz-canvas-design/canvas-fonts/InstrumentSerif-OFL.txt +93 -0
- package/src/skills-lib/wizz-huashu-design/references/sfx-library.md +1 -1
- package/src/skills-lib/wizz-huashu-design/scripts/add-music.sh +1 -1
- package/src/skills-lib/wizz-huashu-design/scripts/mix-voiceover.sh +1 -1
- package/src/skills-lib/wizz-impeccable/LICENSE.txt +202 -0
- package/src/skills-lib/wizz-offer-forge/SKILL.md +1 -1
- package/src/skills-lib/wizz-react-components/LICENSE.txt +202 -0
- package/src/skills-lib/wizz-router/SKILL.md +2 -2
- package/src/skills-lib/wizz-supabase-postgres-best-practices/LICENSE +21 -0
- package/src/skills-lib/wizz-taste-skill/SKILL.md +1 -1
- package/src/skills-lib/wizz-tracking-audit/SKILL.md +1 -1
- package/tools/fetch-assets.mjs +70 -38
- package/tools/hooks/README.md +22 -0
- package/tools/hooks/rtk-rewrite.sh +280 -0
- package/tools/hooks/security-defensive-context.js +70 -0
- package/tools/hooks/session-rules.js +368 -0
- package/tools/hooks/wizz-decision-trace.js +389 -0
- package/tools/hooks/wizz-router-enforce.js +258 -0
- package/tools/installer/banner.js +1 -1
- package/tools/installer/commands/doctor.js +124 -0
- package/tools/installer/commands/fetch-assets.js +7 -8
- package/tools/installer/commands/install.js +1 -1
- package/tools/installer/commands/resolve.js +95 -0
- package/tools/installer/core/doctor.js +648 -0
- package/tools/installer/core/hash-cache.js +156 -0
- package/tools/installer/core/help-catalog.js +4 -1
- package/tools/installer/core/hooks-settings.js +178 -0
- package/tools/installer/core/installer.js +297 -15
- package/tools/installer/core/legacy-warnings.js +0 -4
- package/tools/installer/core/manifest-generator.js +121 -43
- package/tools/installer/core/manifest.js +36 -32
- package/tools/installer/core/module-config-writer.js +4 -1
- package/tools/installer/core/python-check.js +60 -63
- package/tools/installer/core/quick-update.js +76 -43
- package/tools/installer/core/resolved-config.js +168 -0
- package/tools/installer/core/resolved-customizations.js +736 -0
- package/tools/installer/core/resolved-includes.js +262 -0
- package/tools/installer/core/resolved-schema.js +148 -0
- package/tools/installer/core/user-file-preservation.js +40 -8
- package/tools/installer/core/wizz-dir.js +117 -0
- package/tools/installer/core/yaml-cache.js +105 -0
- package/tools/installer/fs-native.js +97 -6
- package/tools/installer/ide/_config-driven.js +12 -75
- package/tools/installer/ide/platform-codes.js +111 -16
- package/tools/installer/ide/platform-codes.yaml +45 -100
- package/tools/installer/ide/shared/path-utils.js +6 -208
- package/tools/installer/install-messages.yaml +4 -14
- package/tools/installer/modules/channel-plan.js +15 -2
- package/tools/installer/modules/config-collector.js +762 -0
- package/tools/installer/modules/config-values.js +352 -0
- package/tools/installer/modules/custom-module-manager.js +161 -28
- package/tools/installer/modules/env-vars.js +119 -0
- package/tools/installer/modules/external-manager.js +133 -60
- package/tools/installer/modules/git-cache-utils.js +125 -0
- package/tools/installer/modules/module-catalog.js +565 -0
- package/tools/installer/modules/module-installer.js +618 -0
- package/tools/installer/modules/module-interface.js +86 -0
- package/tools/installer/modules/official-modules.js +98 -2172
- package/tools/installer/modules/pin-spec.js +125 -0
- package/tools/installer/modules/plugin-resolver.js +4 -0
- package/tools/installer/modules/skills-lib.js +3 -6
- package/tools/installer/prompts.js +0 -3
- package/tools/installer/ui.js +89 -54
- package/tools/installer/wizz-cli.js +1 -1
- package/tools/lib/frontmatter.js +139 -0
- package/tools/lib/sync-targets.mjs +49 -0
- package/tools/lib/walk.js +93 -0
- package/wizz-modules.yaml +9 -0
- package/src/scripts/__pycache__/memlog.cpython-313.pyc +0 -0
- package/src/scripts/memlog.py +0 -233
- package/src/scripts/tests/__pycache__/test_memlog.cpython-313-pytest-9.1.1.pyc +0 -0
- package/src/scripts/tests/__pycache__/test_resolve_customization.cpython-313-pytest-9.1.1.pyc +0 -0
- package/src/scripts/tests/test_memlog.py +0 -306
- package/src/skills-lib/wizz-huashu-design/assets/showcases/INDEX.md +0 -115
- package/src/skills-lib/wizz-huashu-design/assets/showcases/cover/cover-build.html +0 -235
- package/src/skills-lib/wizz-huashu-design/assets/showcases/cover/cover-build.png +0 -0
- package/src/skills-lib/wizz-huashu-design/assets/showcases/cover/cover-pentagram.html +0 -229
- package/src/skills-lib/wizz-huashu-design/assets/showcases/cover/cover-pentagram.png +0 -0
- package/src/skills-lib/wizz-huashu-design/assets/showcases/cover/cover-takram.html +0 -288
- package/src/skills-lib/wizz-huashu-design/assets/showcases/cover/cover-takram.png +0 -0
- package/src/skills-lib/wizz-huashu-design/assets/showcases/infographic/infographic-build.html +0 -503
- package/src/skills-lib/wizz-huashu-design/assets/showcases/infographic/infographic-build.png +0 -0
- package/src/skills-lib/wizz-huashu-design/assets/showcases/infographic/infographic-pentagram.html +0 -600
- package/src/skills-lib/wizz-huashu-design/assets/showcases/infographic/infographic-pentagram.png +0 -0
- package/src/skills-lib/wizz-huashu-design/assets/showcases/infographic/infographic-takram.html +0 -670
- package/src/skills-lib/wizz-huashu-design/assets/showcases/infographic/infographic-takram.png +0 -0
- package/src/skills-lib/wizz-huashu-design/assets/showcases/ppt/ppt-build.html +0 -382
- package/src/skills-lib/wizz-huashu-design/assets/showcases/ppt/ppt-build.png +0 -0
- package/src/skills-lib/wizz-huashu-design/assets/showcases/ppt/ppt-pentagram.html +0 -536
- package/src/skills-lib/wizz-huashu-design/assets/showcases/ppt/ppt-pentagram.png +0 -0
- package/src/skills-lib/wizz-huashu-design/assets/showcases/ppt/ppt-takram.html +0 -497
- package/src/skills-lib/wizz-huashu-design/assets/showcases/ppt/ppt-takram.png +0 -0
- package/src/skills-lib/wizz-huashu-design/assets/showcases/website-ai-nav/ainav-build.html +0 -385
- package/src/skills-lib/wizz-huashu-design/assets/showcases/website-ai-nav/ainav-build.png +0 -0
- package/src/skills-lib/wizz-huashu-design/assets/showcases/website-ai-nav/ainav-pentagram.html +0 -422
- package/src/skills-lib/wizz-huashu-design/assets/showcases/website-ai-nav/ainav-pentagram.png +0 -0
- package/src/skills-lib/wizz-huashu-design/assets/showcases/website-ai-nav/ainav-takram.html +0 -499
- package/src/skills-lib/wizz-huashu-design/assets/showcases/website-ai-nav/ainav-takram.png +0 -0
- package/src/skills-lib/wizz-huashu-design/assets/showcases/website-ai-writing/aiwriting-build.html +0 -562
- package/src/skills-lib/wizz-huashu-design/assets/showcases/website-ai-writing/aiwriting-build.png +0 -0
- package/src/skills-lib/wizz-huashu-design/assets/showcases/website-ai-writing/aiwriting-pentagram.html +0 -548
- package/src/skills-lib/wizz-huashu-design/assets/showcases/website-ai-writing/aiwriting-pentagram.png +0 -0
- package/src/skills-lib/wizz-huashu-design/assets/showcases/website-ai-writing/aiwriting-takram.html +0 -696
- package/src/skills-lib/wizz-huashu-design/assets/showcases/website-ai-writing/aiwriting-takram.png +0 -0
- package/src/skills-lib/wizz-huashu-design/assets/showcases/website-devdocs/devdocs-build.html +0 -372
- package/src/skills-lib/wizz-huashu-design/assets/showcases/website-devdocs/devdocs-build.png +0 -0
- package/src/skills-lib/wizz-huashu-design/assets/showcases/website-devdocs/devdocs-pentagram.html +0 -460
- package/src/skills-lib/wizz-huashu-design/assets/showcases/website-devdocs/devdocs-pentagram.png +0 -0
- package/src/skills-lib/wizz-huashu-design/assets/showcases/website-devdocs/devdocs-takram.html +0 -494
- package/src/skills-lib/wizz-huashu-design/assets/showcases/website-devdocs/devdocs-takram.png +0 -0
- package/src/skills-lib/wizz-huashu-design/assets/showcases/website-homepage/homepage-build.html +0 -367
- package/src/skills-lib/wizz-huashu-design/assets/showcases/website-homepage/homepage-build.png +0 -0
- package/src/skills-lib/wizz-huashu-design/assets/showcases/website-homepage/homepage-pentagram.html +0 -368
- package/src/skills-lib/wizz-huashu-design/assets/showcases/website-homepage/homepage-pentagram.png +0 -0
- package/src/skills-lib/wizz-huashu-design/assets/showcases/website-homepage/homepage-takram.html +0 -459
- package/src/skills-lib/wizz-huashu-design/assets/showcases/website-homepage/homepage-takram.png +0 -0
- package/src/skills-lib/wizz-huashu-design/assets/showcases/website-saas/saas-build.html +0 -493
- package/src/skills-lib/wizz-huashu-design/assets/showcases/website-saas/saas-build.png +0 -0
- package/src/skills-lib/wizz-huashu-design/assets/showcases/website-saas/saas-pentagram.html +0 -556
- package/src/skills-lib/wizz-huashu-design/assets/showcases/website-saas/saas-pentagram.png +0 -0
- package/src/skills-lib/wizz-huashu-design/assets/showcases/website-saas/saas-takram.html +0 -604
- package/src/skills-lib/wizz-huashu-design/assets/showcases/website-saas/saas-takram.png +0 -0
- package/tools/installer/file-ops.js +0 -204
- package/tools/installer/ide/shared/skill-manifest.js +0 -57
- package/tools/installer/yaml-format.js +0 -245
- package/web-bundles/README.md +0 -46
- package/web-bundles/brainstorming-coach/INSTRUCTIONS.md +0 -86
- package/web-bundles/brainstorming-coach/SKILL.md +0 -83
- package/web-bundles/brainstorming-coach/brain-methods.csv +0 -62
- package/web-bundles/bundles.json +0 -139
- package/web-bundles/market-and-industry-research/INSTRUCTIONS.md +0 -88
- package/web-bundles/market-and-industry-research/SKILL.md +0 -59
- package/web-bundles/prd-coach/INSTRUCTIONS.md +0 -86
- package/web-bundles/prd-coach/SKILL.md +0 -101
- package/web-bundles/prd-coach/prd-template.md +0 -165
- package/web-bundles/prd-coach/prd-validation-checklist.md +0 -135
- package/web-bundles/prfaq-coach/INSTRUCTIONS.md +0 -86
- package/web-bundles/prfaq-coach/SKILL.md +0 -139
- package/web-bundles/product-brief-coach/INSTRUCTIONS.md +0 -86
- package/web-bundles/product-brief-coach/SKILL.md +0 -113
- package/web-bundles/ux-coach/INSTRUCTIONS.md +0 -92
- package/web-bundles/ux-coach/SKILL.md +0 -187
- package/web-bundles/ux-coach/ux-validation.md +0 -100
- /package/src/modules/lowticket/skills/{lowticket-funil → wizz-lowticket-funil}/references/mapa-do-funil.md +0 -0
- /package/src/modules/lowticket/skills/{lowticket-metodologia → wizz-lowticket-metodologia}/CATALOGO.md +0 -0
- /package/src/modules/lowticket/skills/{lowticket-metodologia → wizz-lowticket-metodologia}/knowledge/01-principios.md +0 -0
- /package/src/modules/lowticket/skills/{lowticket-metodologia → wizz-lowticket-metodologia}/knowledge/02-diagnostico-funil.md +0 -0
- /package/src/modules/lowticket/skills/{lowticket-metodologia → wizz-lowticket-metodologia}/knowledge/03-campanha-bidcap.md +0 -0
- /package/src/modules/lowticket/skills/{lowticket-metodologia → wizz-lowticket-metodologia}/knowledge/04-criativos.md +0 -0
- /package/src/modules/lowticket/skills/{lowticket-metodologia → wizz-lowticket-metodologia}/knowledge/04a-criativos-ia.md +0 -0
- /package/src/modules/lowticket/skills/{lowticket-metodologia → wizz-lowticket-metodologia}/knowledge/04b-criativos-formatos.md +0 -0
- /package/src/modules/lowticket/skills/{lowticket-metodologia → wizz-lowticket-metodologia}/knowledge/05-oferta.md +0 -0
- /package/src/modules/lowticket/skills/{lowticket-metodologia → wizz-lowticket-metodologia}/knowledge/06-pagina-vendas.md +0 -0
- /package/src/modules/lowticket/skills/{lowticket-metodologia → wizz-lowticket-metodologia}/knowledge/06a-instagram.md +0 -0
- /package/src/modules/lowticket/skills/{lowticket-metodologia → wizz-lowticket-metodologia}/knowledge/06b-player-vsl.md +0 -0
- /package/src/modules/lowticket/skills/{lowticket-metodologia → wizz-lowticket-metodologia}/knowledge/07-funil-upsell.md +0 -0
- /package/src/modules/lowticket/skills/{lowticket-metodologia → wizz-lowticket-metodologia}/knowledge/07a-copy-humanizacao.md +0 -0
- /package/src/modules/lowticket/skills/{lowticket-metodologia → wizz-lowticket-metodologia}/knowledge/08-pesquisa-publico.md +0 -0
- /package/src/modules/lowticket/skills/{lowticket-metodologia → wizz-lowticket-metodologia}/knowledge/09-especialista-coproducao.md +0 -0
- /package/src/modules/lowticket/skills/{lowticket-metodologia → wizz-lowticket-metodologia}/knowledge/10-levantar-caixa.md +0 -0
- /package/src/modules/lowticket/skills/{lowticket-metodologia → wizz-lowticket-metodologia}/knowledge/11-checklist-roi.md +0 -0
- /package/src/modules/lowticket/skills/{lowticket-metodologia → wizz-lowticket-metodologia}/knowledge/12-mineracao-ofertas.md +0 -0
- /package/src/modules/lowticket/skills/{lowticket-metodologia → wizz-lowticket-metodologia}/knowledge/12a-mineracao-veredito.md +0 -0
- /package/src/modules/lowticket/skills/{lowticket-metodologia → wizz-lowticket-metodologia}/knowledge/12b-fabrica-de-ofertas.md +0 -0
- /package/src/modules/lowticket/skills/{lowticket-metodologia → wizz-lowticket-metodologia}/knowledge/12c-anatomia-low-ticket.md +0 -0
- /package/src/modules/lowticket/skills/{lowticket-metodologia → wizz-lowticket-metodologia}/knowledge/13-benchmarks-vsl.md +0 -0
- /package/src/modules/lowticket/skills/{lowticket-metodologia → wizz-lowticket-metodologia}/knowledge/14-vocabulario.md +0 -0
- /package/src/modules/lowticket/skills/{lowticket-metodologia → wizz-lowticket-metodologia}/knowledge/15-como-estender.md +0 -0
- /package/src/modules/lowticket/skills/{lowticket-metodologia → wizz-lowticket-metodologia}/knowledge/17-rastreamento.md +0 -0
- /package/src/modules/lowticket/skills/{lowticket-metodologia → wizz-lowticket-metodologia}/knowledge/18-copy-desejo-oferta.md +0 -0
- /package/src/modules/lowticket/skills/{lowticket-metodologia → wizz-lowticket-metodologia}/knowledge/INDEX.md +0 -0
- /package/src/modules/lowticket/skills/{lowticket-metodologia → wizz-lowticket-metodologia}/knowledge/guardrails.md +0 -0
- /package/src/modules/lowticket/skills/{lowticket-metodologia → wizz-lowticket-metodologia}/knowledge/pontos-em-aberto.md +0 -0
- /package/src/modules/lowticket/skills/{lowticket-metodologia → wizz-lowticket-metodologia}/references/swipe-file.md +0 -0
- /package/src/modules/lowticket/skills/{lowticket-pagina → wizz-lowticket-pagina}/references/metas-e-medicao.md +0 -0
- /package/src/modules/lowticket/skills/{lowticket-pagina → wizz-lowticket-pagina}/references/padroes-de-codigo.md +0 -0
- /package/src/modules/lowticket/skills/{lowticket-trafego → wizz-lowticket-trafego}/references/formato-do-diagnostico.md +0 -0
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# Blind Hunter Review
|
|
2
|
+
|
|
3
|
+
**Goal:** Conduct a blind review of CONTENT — no project context, no spec, no triage. Hunt for what's missing, not only what's wrong.
|
|
4
|
+
|
|
5
|
+
**Your method:**
|
|
6
|
+
|
|
7
|
+
- Conduct a review of CONTENT.
|
|
8
|
+
- Look for what's missing, not only what's wrong.
|
|
9
|
+
- Find at least ten issues to fix or improve.
|
|
10
|
+
- Output a Markdown list of findings only — no severity, priority, or ranking.
|
|
11
|
+
- If the content is empty, stop and say so.
|
|
12
|
+
- If you have zero findings, re-check and keep thinking; do not stop with an empty list.
|
|
13
|
+
|
|
14
|
+
## OUTPUT FORMAT
|
|
15
|
+
|
|
16
|
+
A Markdown list of findings only. One bullet per issue, description only — no severity, priority, or ranking.
|
|
17
|
+
|
|
18
|
+
## CONTENT SOURCE
|
|
19
|
+
|
|
20
|
+
"Review content:" in the message that launched you gives the content itself or a path to read it from. Read the file when it is a path; either way that is the content under review, and this instruction file never is. If no content is supplied, or it is empty or unreadable, stop and say so — never report a clean review for content you could not read.
|
|
@@ -73,6 +73,6 @@ Workflow complete.
|
|
|
73
73
|
|
|
74
74
|
## On Complete
|
|
75
75
|
|
|
76
|
-
Run: `
|
|
76
|
+
Run: read `workflow.on_complete` from the `{project-root}/_wizz/_resolved/wizz-quick-dev.json` snapshot loaded in step 1
|
|
77
77
|
|
|
78
78
|
If the resolved `workflow.on_complete` is non-empty, follow it as the final terminal instruction before exiting.
|
|
@@ -77,6 +77,6 @@ Workflow complete.
|
|
|
77
77
|
|
|
78
78
|
## On Complete
|
|
79
79
|
|
|
80
|
-
Run: `
|
|
80
|
+
Run: read `workflow.on_complete` from the `{project-root}/_wizz/_resolved/wizz-quick-dev.json` snapshot loaded in step 1
|
|
81
81
|
|
|
82
82
|
If the resolved `workflow.on_complete` is non-empty, follow it as the final terminal instruction before exiting.
|
|
@@ -13,7 +13,6 @@ Every finding you report carries a source reference (file, line, commit, or log)
|
|
|
13
13
|
|
|
14
14
|
- Bare paths and `{skill-root}` (e.g. `references/aggregate-views.md`, `scripts/sprint_status.py`) resolve from this skill's installed directory.
|
|
15
15
|
- `{project-root}` → the project working directory.
|
|
16
|
-
- `{skill-name}` → the skill directory's basename.
|
|
17
16
|
- **Scripts:** `git_evidence.py` is stdlib-only and runs under `python3`, the Wizz default. `sprint_status.py` needs `ruamel.yaml` to round-trip the YAML without destroying its comments, so it runs under `uv run --no-cache`, which provisions the dependency from the script's own header. Do not rewrite it to `python3`: without `ruamel.yaml` installed globally it fails with `ModuleNotFoundError`.
|
|
18
17
|
|
|
19
18
|
## Modes
|
|
@@ -26,7 +25,7 @@ For automation, `-H <epic>` — an explicit epic in headless mode — is the sta
|
|
|
26
25
|
|
|
27
26
|
Run these in order before the retrospective begins:
|
|
28
27
|
|
|
29
|
-
1. **Resolve the workflow block.**
|
|
28
|
+
1. **Resolve the workflow block.** Read `{project-root}/_wizz/_resolved/wizz-retrospective.json` (subtree `workflow`). If the file is missing, empty or not valid JSON, run `npx wizz-method resolve --skill wizz-retrospective` from the project root and read the snapshot again. If it fails, resolve `{workflow.*}` yourself by reading `{skill-root}/customize.toml`, then `{project-root}/_wizz/custom/wizz-retrospective.toml`, then `.user.toml` in that order, merging base → team → user (scalars override, keyed arrays-of-tables merge by `code`/`id`, other arrays append).
|
|
30
29
|
2. **Run prepend steps** — execute each entry in `{workflow.activation_steps_prepend}` in order.
|
|
31
30
|
3. **Load persistent facts** — treat every `{workflow.persistent_facts}` entry as standing context. `file:` entries are paths/globs under `{project-root}` whose contents load as facts; all others are literal facts.
|
|
32
31
|
4. **Load config** from `{project-root}/_wizz/bmm/config.yaml`: `project_name`, `user_name`, `communication_language`, `document_output_language`, `user_skill_level`, `planning_artifacts`, `implementation_artifacts`, and `date` (system datetime), plus `output_folder` from `{project-root}/_wizz/core/config.yaml`. Speak all output in `{communication_language}`; write all documents in `{document_output_language}`. Never state time estimates — AI has changed development speed, so hour/day/week predictions are noise.
|
|
@@ -9,7 +9,7 @@ You are a senior developer about to commit to this plan. Two moves, in order: fi
|
|
|
9
9
|
|
|
10
10
|
## On Activation
|
|
11
11
|
|
|
12
|
-
1. Resolve customization: `
|
|
12
|
+
1. Resolve customization: Read `{project-root}/_wizz/_resolved/wizz-sprint-planning.json` (subtree `workflow`). If the file is missing, empty or not valid JSON, run `npx wizz-method resolve --skill wizz-sprint-planning` from the project root and read the snapshot again. On failure, read `{skill-root}/customize.toml` directly and use defaults.
|
|
13
13
|
2. Execute each entry in `{workflow.activation_steps_prepend}` in order.
|
|
14
14
|
3. Treat every entry in `{workflow.persistent_facts}` as foundational context for the rest of the run. Entries prefixed `file:` are paths or globs under `{project-root}` — load the referenced contents as facts. All other entries are facts verbatim.
|
|
15
15
|
4. Load `{project-root}/_wizz/bmm/config.yaml` (and `config.user.yaml` if present). Resolve `{user_name}`, `{communication_language}`, `{document_output_language}`, `{project_name}`, `{planning_artifacts}`, `{implementation_artifacts}`, `{project_knowledge}` (skip gracefully if unset), `{date}`. Stay in `{communication_language}` for every turn, not just the greeting.
|
|
@@ -14,19 +14,18 @@ description: 'Summarize sprint status and surface risks. Use when the user says
|
|
|
14
14
|
- Bare paths (e.g. `checklist.md`) resolve from the skill root.
|
|
15
15
|
- `{skill-root}` resolves to this skill's installed directory (where `customize.toml` lives).
|
|
16
16
|
- `{project-root}`-prefixed paths resolve from the project working directory.
|
|
17
|
-
- `{skill-name}` resolves to the skill directory's basename.
|
|
18
17
|
|
|
19
18
|
## On Activation
|
|
20
19
|
|
|
21
20
|
### Step 1: Resolve the Workflow Block
|
|
22
21
|
|
|
23
|
-
Run: `
|
|
22
|
+
Run: read `{project-root}/_wizz/_resolved/wizz-sprint-status.json` (subtree `workflow`). If the file is missing, empty or not valid JSON, run `npx wizz-method resolve --skill wizz-sprint-status` from the project root and read the snapshot again
|
|
24
23
|
|
|
25
24
|
**If the script fails**, resolve the `workflow` block yourself by reading these three files in base → team → user order and applying the same structural merge rules as the resolver:
|
|
26
25
|
|
|
27
26
|
1. `{skill-root}/customize.toml` — defaults
|
|
28
|
-
2. `{project-root}/_wizz/custom/
|
|
29
|
-
3. `{project-root}/_wizz/custom/
|
|
27
|
+
2. `{project-root}/_wizz/custom/wizz-sprint-status.toml` — team overrides
|
|
28
|
+
3. `{project-root}/_wizz/custom/wizz-sprint-status.user.toml` — personal overrides
|
|
30
29
|
|
|
31
30
|
Any missing file is skipped. Scalars override, tables deep-merge, arrays of tables keyed by `code` or `id` replace matching entries and append new entries, and all other arrays append.
|
|
32
31
|
|
|
@@ -232,7 +231,7 @@ If the command targets a story, set `story_key={{next_story_id}}` when prompted.
|
|
|
232
231
|
</check>
|
|
233
232
|
|
|
234
233
|
<check if="choice == 4">
|
|
235
|
-
<action>Run: `
|
|
234
|
+
<action>Run: read `{project-root}/_wizz/_resolved/wizz-sprint-status.json` (subtree `workflow.on_complete`). If the file is missing, empty or not valid JSON, run `npx wizz-method resolve --skill wizz-sprint-status` from the project root and read it again — if the resolved value is non-empty, follow it as the final terminal instruction before exiting.</action>
|
|
236
235
|
<action>Exit workflow</action>
|
|
237
236
|
</check>
|
|
238
237
|
</step>
|
|
@@ -305,7 +304,7 @@ If the command targets a story, set `story_key={{next_story_id}}` when prompted.
|
|
|
305
304
|
|
|
306
305
|
<template-output>is_valid = true</template-output>
|
|
307
306
|
<template-output>message = "sprint-status.yaml valid: metadata complete, all statuses recognized"</template-output>
|
|
308
|
-
<action>Run: `
|
|
307
|
+
<action>Run: read `{project-root}/_wizz/_resolved/wizz-sprint-status.json` (subtree `workflow.on_complete`). If the file is missing, empty or not valid JSON, run `npx wizz-method resolve --skill wizz-sprint-status` from the project root and read it again — if the resolved value is non-empty, follow it as the final terminal instruction before exiting.</action>
|
|
309
308
|
</step>
|
|
310
309
|
|
|
311
310
|
</workflow>
|
|
@@ -30,6 +30,14 @@ o entrypoint da skill e apenas as referências necessárias (progressive disclos
|
|
|
30
30
|
acima de Opus (Fable); em sessão Opus quem recebe pula para `review`
|
|
31
31
|
(detalhe completo em `_shared/model-ladder.md`, no módulo wizz).
|
|
32
32
|
Campo opcional: sem ele o handoff funciona normal.
|
|
33
|
+
- max_calls (opcional): teto de chamadas de ferramenta (tool calls) que o
|
|
34
|
+
executor pode gastar neste brief, como inteiro. Quem recebe despacha o
|
|
35
|
+
`wizz-exec-<hint>` com esse teto declarado no brief. Ao atingir o teto,
|
|
36
|
+
o executor PARA, entrega o parcial com pendências explícitas e não
|
|
37
|
+
escala sozinho: quem delega decide o próximo passo (reemitir com teto
|
|
38
|
+
maior, escalar 1 degrau, ou absorver o resto). Regra instrucional, igual
|
|
39
|
+
à anti-loop: nada programático conta as chamadas. Sem `max_calls` o
|
|
40
|
+
handoff funciona normal.
|
|
33
41
|
- precisa planejar (opcional): veredito sim/não do fator de planejamento
|
|
34
42
|
do sinal de complexidade, avaliado por quem delega. Evita que quem
|
|
35
43
|
recebe re-derive o sinal para aplicar o Gate de Planejamento
|
|
@@ -47,6 +55,7 @@ o entrypoint da skill e apenas as referências necessárias (progressive disclos
|
|
|
47
55
|
decisões já tomadas na cadeia: escopo é só mobile-first.
|
|
48
56
|
seção relevante da skill: page-cro/references/checkout-flow.md
|
|
49
57
|
model_hint: sonnet
|
|
58
|
+
max_calls: 40
|
|
50
59
|
|
|
51
60
|
## Regra anti-loop
|
|
52
61
|
|
|
@@ -14,7 +14,7 @@ You are Wizz's shared refinement checkpoint: other skills invoke you at natural
|
|
|
14
14
|
|
|
15
15
|
## On Activation
|
|
16
16
|
|
|
17
|
-
1. Resolve customization: `
|
|
17
|
+
1. Resolve customization: Read `{project-root}/_wizz/_resolved/wizz-advanced-elicitation.json` (subtree `workflow`). If the file is missing, empty or not valid JSON, run `npx wizz-method resolve --skill wizz-advanced-elicitation` from the project root and read the snapshot again. On failure, read `{skill-root}/customize.toml` directly and use defaults.
|
|
18
18
|
2. Hold every `{workflow.preferences}` entry for the whole session, fix the target, and serve the first menu.
|
|
19
19
|
|
|
20
20
|
## Serving the Catalog
|
|
@@ -61,4 +61,4 @@ Use the method's description as its intent and its output_pattern as a flexible
|
|
|
61
61
|
|
|
62
62
|
Never change the work unless the user accepts the proposal. If they reject it, drop the proposal entirely. Any other reply is instruction to follow.
|
|
63
63
|
|
|
64
|
-
When a method casts personas (round tables, panels, debates), reuse party members already in the session if party mode is active; otherwise resolve installed agents on demand
|
|
64
|
+
When a method casts personas (round tables, panels, debates), reuse party members already in the session if party mode is active; otherwise resolve installed agents on demand by reading the `agents` key of `{project-root}/_wizz/_resolved/_config.json` (the same four-layer merge, resolved at install time, of `_wizz/config.toml`, `config.user.toml`, and the two `_wizz/custom/` overrides; each entry keyed by agent code carries name, title, icon, description). If neither yields a fit, invent named viewpoints suited to the content.
|
|
@@ -18,7 +18,7 @@ The session runs in one of three stances, chosen by the user — set explicitly
|
|
|
18
18
|
|
|
19
19
|
## On Activation
|
|
20
20
|
|
|
21
|
-
1. Resolve customization: `
|
|
21
|
+
1. Resolve customization: Read `{project-root}/_wizz/_resolved/wizz-brainstorming.json` (subtree `workflow`). If the file is missing, empty or not valid JSON, run `npx wizz-method resolve --skill wizz-brainstorming` from the project root and read the snapshot again. On failure, use a subagent to read `{skill-root}/customize.toml` directly with defaults.
|
|
22
22
|
2. Run each `{workflow.activation_steps_prepend}` entry. Treat each `{workflow.persistent_facts}` entry as foundational context (`file:`-prefixed entries are paths/globs under `{project-root}` — load their contents; others are facts verbatim).
|
|
23
23
|
3. Load `{project-root}/_wizz/core/config.yaml` (and `config.user.yaml` if present); resolve `{user_name}`, `{communication_language}`, `{document_output_language}`, `{output_folder}`, `{project_name}`, `{date}`. Missing → neutral defaults; never block.
|
|
24
24
|
4. **If launched headless** (a machine signal, not a human asking for output — `references/headless.md` lists them): load `references/headless.md` and follow it for the whole run. It is the *only* context where you generate ideas yourself; never load it otherwise.
|
|
@@ -34,13 +34,13 @@ These fight your defaults, in every mode; hold them deliberately. The stance you
|
|
|
34
34
|
- **Keep shifting the creative domain** — every 5–10 turns (or ~10 ideas when you're generating), usually by moving to the next technique.
|
|
35
35
|
- **One prompt per message while in dialogue (Facilitator, Creative Partner); no multiple-choice menus.** Don't stack questions into a wall or hand a menu that invites lazy picking — both pull the user out of generating. The only exceptions are the two up-front *process* choices (stance, and the technique flow): *how* to run is theirs to pick; *what* to ideate never is.
|
|
36
36
|
|
|
37
|
-
**The memlog** is the session's memory: the single source every output builds from, and the file a resume reloads. Whatever isn't in it is gone. Log every idea, decision, question, and bit of user direction — anything you'd regret losing if the window closed — one line each, the gist in the user's meaning, in time order; never edit or reorder. Skip your prompts and small talk. All writes go through the shared `{project-root}/_wizz/scripts/memlog.
|
|
37
|
+
**The memlog** is the session's memory: the single source every output builds from, and the file a resume reloads. Whatever isn't in it is gone. Log every idea, decision, question, and bit of user direction — anything you'd regret losing if the window closed — one line each, the gist in the user's meaning, in time order; never edit or reorder. Skip your prompts and small talk. All writes go through the shared `{project-root}/_wizz/scripts/memlog.js` (atomic; don't read it back mid-session — resume is the one exception):
|
|
38
38
|
|
|
39
|
-
- `memlog.
|
|
40
|
-
- `memlog.
|
|
41
|
-
- `memlog.
|
|
39
|
+
- `memlog.js init --workspace {doc_workspace} --field topic="<topic>" --field goal="<goal>" --field mode="<facilitator|partner|autonomous>"` — create it once topic, goal, and stance are known.
|
|
40
|
+
- `memlog.js append --workspace {doc_workspace} --type <kind> --text "<one-line gist>"` — log one entry. `--type` ∈ `idea`/`insight`/`question`/`decision`/`direction`/`technique` (a switch: `--text "started <name>"`); omit for a plain note. Add `--by user`/`--by coach` to mark authorship — **required in Creative Partner mode** (renders `(idea by user)`); skip it otherwise.
|
|
41
|
+
- `memlog.js set --workspace {doc_workspace} --key status --value complete` — flip status at wrap-up.
|
|
42
42
|
|
|
43
|
-
(Each is `
|
|
43
|
+
(Each is `node {project-root}/_wizz/scripts/memlog.js …`.)
|
|
44
44
|
|
|
45
45
|
## Run a Session
|
|
46
46
|
|
|
@@ -17,7 +17,7 @@ Pick by what the decision needs:
|
|
|
17
17
|
- **PMI (Plus / Minus / Interesting)** — when one strong candidate needs pressure-testing before commitment: list its pluses, minuses, and the merely-interesting, then judge.
|
|
18
18
|
- **MoSCoW** — when scoping a build: sort into Must / Should / Could / Won't-this-time.
|
|
19
19
|
|
|
20
|
-
Log the surviving directions and the reasoning with `
|
|
20
|
+
Log the surviving directions and the reasoning with `node {project-root}/_wizz/scripts/memlog.js append --type decision --text "<one-line gist>"` (use `--by` in Creative Partner mode). Two or three convergence moves chained is fine (e.g. cluster → score the clusters); more than that is usually over-processing.
|
|
21
21
|
|
|
22
22
|
## Then finalize
|
|
23
23
|
|
|
@@ -9,7 +9,7 @@ In Facilitator mode this is the one place your own creative contribution is welc
|
|
|
9
9
|
1. **Hand them the mirror first.** Reflect a vivid sampling of *their* ideas back — deliberately include the odd, random, or buried ones from earlier, not just the recent obvious ones (in Creative Partner mode the `(... by user)` tags tell you which were theirs). Ask what they see now: conclusions, synergies, themes, the few that actually matter. Let them connect first; their own pattern-recognition is the point.
|
|
10
10
|
2. **Then add the connections they would miss.** Lean in creatively — not new raw ideas, but the non-obvious links: this idea from technique one quietly solves that tension from technique four; these three are one idea wearing three hats; this wildcard is the real breakthrough.
|
|
11
11
|
|
|
12
|
-
Record the insights and chosen directions with `memlog.
|
|
12
|
+
Record the insights and chosen directions with `memlog.js append --type insight`. **Then run `node {project-root}/_wizz/scripts/memlog.js set --workspace {doc_workspace} --key status --value complete`** — the session is done and must stop being offered for resume. Do this even if the user declines every artifact below.
|
|
13
13
|
|
|
14
14
|
## Artifacts
|
|
15
15
|
|
|
@@ -29,9 +29,9 @@ Free-form structured payload in the first message; provide what applies:
|
|
|
29
29
|
|
|
30
30
|
## Run
|
|
31
31
|
|
|
32
|
-
1. Bind `{doc_workspace}` and create the memlog with `
|
|
33
|
-
2. Run the divergent session per **The inversion**, capturing each idea with `memlog.
|
|
34
|
-
3. Synthesize: surface the conclusions, connections, and the few directions that matter; record them with `memlog.
|
|
32
|
+
1. Bind `{doc_workspace}` and create the memlog with `node {project-root}/_wizz/scripts/memlog.js init --workspace {doc_workspace} --field topic="<topic>" [--field goal="<goal>"]`. It remains the canonical source every artifact derives from.
|
|
33
|
+
2. Run the divergent session per **The inversion**, capturing each idea with `memlog.js append --workspace {doc_workspace} --type idea --text "<idea>"` as it lands, and marking each technique switch with `memlog.js append --type technique --text "started <name>"`.
|
|
34
|
+
3. Synthesize: surface the conclusions, connections, and the few directions that matter; record them with `memlog.js append --type insight`, then run `memlog.js set --workspace {doc_workspace} --key status --value complete`.
|
|
35
35
|
4. Produce the requested artifacts from the log — `brainstorm.html` (the imaginative, self-contained, no-template report) and/or the succinct `brainstorm-intent.md` — the same artifacts `references/finalize.md` describes, delegating each to a subagent that reads the log as its sole source. (Headless produces the `artifacts` payload directly; it does not ask, unlike the interactive opt-in.)
|
|
36
36
|
5. Execute each entry in `{workflow.external_handoffs}` (capture returned URLs/IDs into the JSON `external_handoffs` array; skip and flag unavailable tools — local files always exist). Then run `{workflow.on_complete}` if non-empty.
|
|
37
37
|
|
|
@@ -5,6 +5,6 @@ The user handed you the topic and wants to see what you come up with on your own
|
|
|
5
5
|
- **Run a real divergent session yourself.** Pick and run techniques on your own (use `brain.py` as in `## Choosing Techniques`, but *you* choose — no menu for the user), capturing each idea to the memlog with `--type idea --by coach`, marking each technique switch with a `technique` entry, shifting the creative domain every ~10 ideas, aiming past 100. Push past the obvious.
|
|
6
6
|
- **Don't pepper the user with questions** — this is your run. One quick confirm of topic and goal up front is plenty.
|
|
7
7
|
- **When it's mined out, synthesize and produce the keepsake.** Go to `## Wrap-Up` (`references/finalize.md`): record the insights, mark the memlog complete, and **auto-generate the imaginative HTML keepsake — don't ask first; the keepsake is the result you promised to show them.** Offer the other artifacts (intent doc, etc.) after.
|
|
8
|
-
- **Then, because a human is here, offer to keep going together.** They may want to push an idea further or react to what you found — if so, switch into **Facilitator** or **Creative Partner** (load that frame), **record the switch in the memlog** so a resume restores the new stance — `
|
|
8
|
+
- **Then, because a human is here, offer to keep going together.** They may want to push an idea further or react to what you found — if so, switch into **Facilitator** or **Creative Partner** (load that frame), **record the switch in the memlog** so a resume restores the new stance — `node {project-root}/_wizz/scripts/memlog.js set --workspace {doc_workspace} --key mode --value <facilitator|partner>` — and continue from the same memlog.
|
|
9
9
|
|
|
10
10
|
This is the interactive sibling of headless mode (`references/headless.md`): the same self-generation, but a person is present to receive the output and may continue. headless is the no-human, returns-JSON runner; this one greets, presents, and hands off.
|
|
@@ -14,7 +14,7 @@ When the target's `customize.toml` doesn't expose what the user wants, say so pl
|
|
|
14
14
|
## Preflight
|
|
15
15
|
|
|
16
16
|
- No `{project-root}/_wizz/` → Wizz isn't installed. Say so, stop.
|
|
17
|
-
- `
|
|
17
|
+
- `npx wizz-method resolve` unavailable → continue, but Step 6 verify falls back to manual merge.
|
|
18
18
|
- Both present → proceed.
|
|
19
19
|
|
|
20
20
|
## Activation
|
|
@@ -70,13 +70,13 @@ Merge semantics:
|
|
|
70
70
|
|
|
71
71
|
Overrides are sparse: only the fields being changed. Never copy the whole `customize.toml`.
|
|
72
72
|
|
|
73
|
-
**Template swap** (`*_template` scalar): offer to copy the default template to `{project-root}/_wizz/custom
|
|
73
|
+
**Template swap** (`*_template` scalar): offer to copy the default template to `{project-root}/_wizz/custom/<skill-name>-{purpose}-template.md`, point the override at the new path, offer to help edit it.
|
|
74
74
|
|
|
75
75
|
## Step 5: Team or user placement
|
|
76
76
|
|
|
77
77
|
Under `{project-root}/_wizz/custom/`:
|
|
78
|
-
-
|
|
79
|
-
-
|
|
78
|
+
- `<skill-name>.toml` — team, committed. Policies, org conventions, compliance.
|
|
79
|
+
- `<skill-name>.user.toml` — user, gitignored. Personal tone, private facts, shortcuts.
|
|
80
80
|
|
|
81
81
|
Default by character (policy → team, personal → user), confirm before writing.
|
|
82
82
|
|
|
@@ -85,16 +85,19 @@ Default by character (policy → team, personal → user), confirm before writin
|
|
|
85
85
|
1. Show the full TOML. If the file exists, show a diff. Never silently overwrite.
|
|
86
86
|
2. Wait for explicit yes.
|
|
87
87
|
3. Write. Create `{project-root}/_wizz/custom/` if needed.
|
|
88
|
-
4.
|
|
88
|
+
4. **Regenerate the resolved snapshot** — mandatory after every write: run `npx wizz-method resolve --skill <skill-name>` from `{project-root}` (Node, no Python; it rewrites the snapshot atomically and refreshes `_resolved/.index.json`, so `wizz doctor` never reports it as stale). This is what keeps `_resolved/<skill-name>.json` in sync with the file you just wrote.
|
|
89
|
+
5. Verify — read the snapshot regenerated in the step above:
|
|
89
90
|
```
|
|
90
|
-
|
|
91
|
+
{project-root}/_wizz/_resolved/<skill-name>.json
|
|
91
92
|
```
|
|
92
|
-
Show the merged output, point out the changed fields.
|
|
93
|
+
(subtree `<agent-or-workflow>`). Show the merged output, point out the changed fields.
|
|
93
94
|
|
|
94
|
-
**
|
|
95
|
+
**Snapshot staleness:** snapshots are regenerated at `wizz update`, `wizz resolve`, and by the regenerate-snapshot step above; `wizz doctor` reports any snapshot that has gone stale. Editing a custom TOML by hand outside this skill, without running `wizz resolve` afterward, leaves the old `_resolved/<skill-name>.json` in force until the next regeneration.
|
|
95
96
|
|
|
96
|
-
**
|
|
97
|
-
|
|
97
|
+
**Resolver missing or fails:** read whichever layers exist — `<install-path>/customize.toml` (base), `{project-root}/_wizz/custom/<skill-name>.toml` (team), `{project-root}/_wizz/custom/<skill-name>.user.toml` (user) — apply base → team → user with the same merge rules (scalars override, tables deep-merge, `code`/`id`-keyed arrays merge by key, all other arrays append), describe how the changed fields resolve.
|
|
98
|
+
|
|
99
|
+
**Verify shows override didn't land** (field unchanged, merge conflict, file not picked up): re-enter **Step 4: Compose the override** with the verify output as context. Usually wrong field name, wrong merge mode (scalar vs array), or wrong scope.
|
|
100
|
+
6. Summarize what changed, where the file lives, how to iterate. Remind the user to commit team overrides.
|
|
98
101
|
|
|
99
102
|
## Complete when
|
|
100
103
|
|
|
@@ -17,14 +17,14 @@ Lead by questioning, not lecturing. Ask one question at a time, press on weak po
|
|
|
17
17
|
|
|
18
18
|
## Conventions
|
|
19
19
|
|
|
20
|
-
- Scripts live in two places — run each from the exact path written, never assume co-location: the shared core scripts (`memlog.
|
|
20
|
+
- Scripts live in two places — run each from the exact path written, never assume co-location: the shared core scripts (`memlog.js`, `resolve_customization.py`, `resolve_config.py`) are installed by Wizz core at `{project-root}/_wizz/scripts/` and are never bundled here; this skill's own `resolve_personas.py` is at `{skill-root}/scripts/`.
|
|
21
21
|
- `{workflow.<name>}` resolves to fields in the merged `customize.toml` `[workflow]` table.
|
|
22
22
|
|
|
23
23
|
## On Activation
|
|
24
24
|
|
|
25
|
-
1. Resolve customization: `
|
|
25
|
+
1. Resolve customization: Read `{project-root}/_wizz/_resolved/wizz-forge-idea.json` (subtree `workflow`). If the file is missing, empty or not valid JSON, run `npx wizz-method resolve --skill wizz-forge-idea` from the project root and read the snapshot again. On failure, read `{skill-root}/customize.toml` directly with defaults. Apply the resolved `{workflow.*}` values throughout.
|
|
26
26
|
2. Run each `{workflow.activation_steps_prepend}` entry; treat each `{workflow.persistent_facts}` entry as foundational context (`file:` entries load their contents, `skill:` names a skill to consult, others are facts verbatim).
|
|
27
|
-
3. Resolve central config: `
|
|
27
|
+
3. Resolve central config: read `{project-root}/_wizz/_resolved/_config.json` (subtree `core`) for `{user_name}`, `{communication_language}`, `{output_folder}`. If the file is missing, run `npx wizz-method resolve` and read it again. On failure use neutral defaults; never block. Greet `{user_name}` in `{communication_language}` and stay in it.
|
|
28
28
|
4. Note whether a Wizz persona is already active in this conversation — the user loaded one (e.g. the analyst, the storyteller) and invoked the forge from within it. If so, that persona leads the session, in voice, throughout.
|
|
29
29
|
5. Resume: glob `{workflow.forge_output_path}/**/.memlog.md` (recursive, so it still finds sessions when `run_folder_pattern` is overridden to nest paths) and read only each match's frontmatter to find any whose `status` is not `complete`. Offer to resume one — then read its full memlog once to rebuild state and continue append-only — or to start fresh.
|
|
30
30
|
6. Run each `{workflow.activation_steps_append}` entry.
|
|
@@ -53,7 +53,7 @@ Tell the user they can say **"attack this"**, **"defend this"**, or **"switch ro
|
|
|
53
53
|
### Set up the session
|
|
54
54
|
|
|
55
55
|
Derive a kebab-case `{slug}` for the idea and bind the session workspace `{workspace} = {workflow.forge_output_path}/{workflow.run_folder_pattern}` (the pattern fills with `{slug}`). Create the memlog once the goal is known:
|
|
56
|
-
`
|
|
56
|
+
`node {project-root}/_wizz/scripts/memlog.js init --workspace {workspace} --field idea="<idea>" --field goal="<goal>"`
|
|
57
57
|
|
|
58
58
|
Tell the user the path; state is on disk now, so the session survives interruption. If init fails, don't abort — run the forge in-conversation and tell the user state won't persist this session.
|
|
59
59
|
|
|
@@ -74,7 +74,7 @@ When a branch resolves, pause before moving on. Give the user a chance to raise
|
|
|
74
74
|
Do not use agreement or praise to make the interaction smoother; they lower pressure and lead to shallower thinking. Agreement is allowed only when it helps the user think better. Praise is noise. Continued engagement and ego-stroking are not objectives. In attack mode, never agree with the idea until the user ends the mode. For each answer, either challenge the weak point or build on the strong point, whichever helps the user think better.
|
|
75
75
|
|
|
76
76
|
Capture as you go — each decision, assumption, crack, kill, and locked idea, one bullet in the user's meaning:
|
|
77
|
-
`
|
|
77
|
+
`node {project-root}/_wizz/scripts/memlog.js append --workspace {workspace} --type <decision|assumption|crack|kill|direction|lock|note> --text "<gist>"`
|
|
78
78
|
A `lock` is an idea the user hardens — settled, not to be reopened; locks are what `forged-idea.md` is distilled from. Don't read the memlog back except on resume. If the user raises a different branch, capture it and stay put — the loop and the stray insight both survive.
|
|
79
79
|
|
|
80
80
|
## The personas
|
|
@@ -103,5 +103,5 @@ The session can end in three valid states:
|
|
|
103
103
|
|
|
104
104
|
Always render `{workspace}/forge-report.html` as a self-contained HTML file the user can open, with inline CSS and an inline-SVG seal or stamp. Summarize the outcome, the locked decisions, what was rejected and why, and the weak points that survived scrutiny, in the user's meaning. Credit the personas and parties that pressure-tested the idea by name, icon, and voice. Render a prominent wax-seal-style or stamped outcome mark, matched to the result: `HARDENED`, an `Idea Death Certificate` stamped `KILLED` with the cause of death, or `CLARIFIED`. Tell the user the path.
|
|
105
105
|
|
|
106
|
-
Flip the status at the end: `
|
|
106
|
+
Flip the status at the end: `node {project-root}/_wizz/scripts/memlog.js set --workspace {workspace} --key status --value complete`.
|
|
107
107
|
If `{workflow.on_complete}` is non-empty, run all instructions in order.
|
package/src/core-skills/wizz-forge-idea/scripts/__pycache__/resolve_personas.cpython-314.pyc
CHANGED
|
Binary file
|
|
@@ -108,7 +108,23 @@ def find_party_skill(project_root: Path, skill_root: Path):
|
|
|
108
108
|
|
|
109
109
|
|
|
110
110
|
def load_party_workflow(project_root: Path, party_skill: Path):
|
|
111
|
-
"""Merged [workflow] table for wizz-party-mode (base + user overrides).
|
|
111
|
+
"""Merged [workflow] table for wizz-party-mode (base + user overrides).
|
|
112
|
+
|
|
113
|
+
Prefers the pre-resolved snapshot at `_wizz/_resolved/<skill-name>.json`
|
|
114
|
+
(written by `wizz update` / `wizz resolve` / wizz-customize) — one Read,
|
|
115
|
+
no spawn. Falls back to shelling out to resolve_customization.py, and
|
|
116
|
+
from there to the skill's base customize.toml, when the snapshot is
|
|
117
|
+
missing.
|
|
118
|
+
"""
|
|
119
|
+
resolved_path = project_root / "_wizz" / "_resolved" / f"{party_skill.name}.json"
|
|
120
|
+
if resolved_path.exists():
|
|
121
|
+
try:
|
|
122
|
+
with resolved_path.open("r", encoding="utf-8") as f:
|
|
123
|
+
snapshot = json.load(f)
|
|
124
|
+
if isinstance(snapshot, dict) and isinstance(snapshot.get("workflow"), dict):
|
|
125
|
+
return snapshot["workflow"]
|
|
126
|
+
except (OSError, json.JSONDecodeError):
|
|
127
|
+
pass
|
|
112
128
|
resolver = project_root / "_wizz" / "scripts" / "resolve_customization.py"
|
|
113
129
|
data = _run_json([sys.executable, str(resolver), "--skill", str(party_skill), "--key", "workflow"])
|
|
114
130
|
if data is not None and isinstance(data.get("workflow"), dict):
|
|
@@ -10,14 +10,14 @@ Run a round-table where these agents talk to each other and to the user like rea
|
|
|
10
10
|
## Conventions
|
|
11
11
|
|
|
12
12
|
- **Paths:** bare paths (e.g. `references/create-party.md`) resolve from `{skill-root}` (where `customize.toml` lives); `{project-root}`-prefixed paths from the project working dir. `{workflow.<name>}` resolves to `customize.toml`'s `[workflow]` table (overrides win).
|
|
13
|
-
- **Scripts
|
|
13
|
+
- **Scripts and snapshots**: `{project-root}/_wizz/_resolved/_config.json` carries the central config already merged across its four layers (no script); `{project-root}/_wizz/_resolved/wizz-party-mode.json` carries `{workflow.*}`; `{skill-root}/scripts/resolve_party.py` (run via `python3`) resolves the roster, `party_mode`, `memory_enabled`, and scene/`open_cast`; `node {project-root}/_wizz/scripts/memlog.js` reads/writes per-party memory.
|
|
14
14
|
- **File roles:** a party's memory is the per-party memlog at `{workflow.memory_dir}/<party>/.memlog.md`; custom members and groups live in the user's `customize.toml` overrides. Mechanics in `references/party-memory.md` (memory) and `references/create-party.md` (authoring).
|
|
15
15
|
- **Search:** Web-search, don't guess — anything past your cutoff or unfamiliar; subagents too.
|
|
16
16
|
|
|
17
17
|
## On Activation
|
|
18
18
|
|
|
19
|
-
1. **Resolve customization:** `
|
|
20
|
-
2. **Resolve core config:** `
|
|
19
|
+
1. **Resolve customization:** Read `{project-root}/_wizz/_resolved/wizz-party-mode.json` (subtree `workflow`). If the file is missing, empty or not valid JSON, run `npx wizz-method resolve --skill wizz-party-mode` from the project root and read the snapshot again. On failure, read `{skill-root}/customize.toml` directly and use defaults. Then run each `{workflow.activation_steps_prepend}` entry, and hold each `{workflow.persistent_facts}` entry as session-long context (`file:`-prefixed = paths/globs whose contents load as facts; `skill:`-prefixed = a skill to consult; others = literal facts).
|
|
20
|
+
2. **Resolve core config:** read `{project-root}/_wizz/_resolved/_config.json` (if it is missing, run `npx wizz-method resolve` from the project root and read it again; if that also fails, use neutral defaults and never block). From its `core` table: greet with `{user_name}`, speak in `{communication_language}`, and resolve `{output_folder}`; `{date}` is today's date.
|
|
21
21
|
3. **Detect intent and route.** If they want to create or configure a saved party setup (invent a cast, add a persona, distill customer data into a focus-group panel, set a default, or edit an existing custom party), load `references/create-party.md` and follow it. Otherwise run a party — continue below.
|
|
22
22
|
4. **Resolve the roster:** `python3 {skill-root}/scripts/resolve_party.py --project-root {project-root} --skill {skill-root}`. It returns the active roster (`{workflow.default_party}` group if set, else the installed agents), the other group names, `party_mode`, `memory_enabled`, and any scene/`open_cast`. Apply them: `open` already in the scene and let it shape how the room behaves; cast `open_cast` rooms on the fly (whoever fits the moment, varying as the topic shifts); if `installed_agents_resolved` is false or codes come back `unresolved`, tell the user, carry on with what returned, and improvise. Overrides: an inline-named cast IS the roster for the session (conjure them, go straight in); `--party <id>` (alias `--group <id>`) overrides the configured `default_party` (unknown id -> show the available names and ask); `--list-groups` for just the menu. Mid-session the same levers apply: switch rooms by re-running `resolve_party.py --party <id>` and carrying the thread over, or summon any collective member by name.
|
|
23
23
|
5. **Memory.** If `memory_enabled` (from `resolve_party.py`), follow `references/party-memory.md` for the whole run.
|
|
@@ -30,7 +30,7 @@ Ask which they're after if it isn't obvious, then proceed.
|
|
|
30
30
|
|
|
31
31
|
## Editing an existing party
|
|
32
32
|
|
|
33
|
-
When the user wants to change a party that already exists (retune a member's persona, add someone to a group, swap the default), read the current state first so you change rather than clobber: `
|
|
33
|
+
When the user wants to change a party that already exists (retune a member's persona, add someone to a group, swap the default), read the current state first so you change rather than clobber: `{project-root}/_wizz/_resolved/wizz-party-mode.json` (subtree `workflow`) holds the merged `party_members`, `party_groups`, and `default_party`; if the file is missing, run `npx wizz-method resolve --skill wizz-party-mode` from the project root and read it again. Show the member or group being touched, capture only the delta with the user, and hand that sparse change to `wizz-customize` — it replaces a `party_members`/`party_groups` entry whose `code`/`id` matches and appends the rest, so an edit is just the changed entry, never a full rewrite.
|
|
34
34
|
|
|
35
35
|
## Keeping new faces from a session
|
|
36
36
|
|
|
@@ -34,7 +34,7 @@ When a character shows up who isn't in the party's roster — cast from an open-
|
|
|
34
34
|
## Write it
|
|
35
35
|
|
|
36
36
|
```
|
|
37
|
-
|
|
37
|
+
node {project-root}/_wizz/scripts/memlog.js append \
|
|
38
38
|
--workspace {workflow.memory_dir}/{active} \
|
|
39
39
|
--type <dynamic|moment|callback|outcome> \
|
|
40
40
|
--text "<one succinct line, in the room's own read of it>"
|
|
@@ -42,7 +42,7 @@ python3 {project-root}/_wizz/scripts/memlog.py append \
|
|
|
42
42
|
|
|
43
43
|
Add `--by <persona-code>` when a memory belongs to one character. Choose `init` vs `append` from the existence fact you already hold: the entry-read (and, on a mid-session room switch, that room's read) told you whether the memlog exists — `init --workspace {workflow.memory_dir}/{active}` once before the first append when it doesn't, plain `append` when it does. (`init` errors if the file already exists, so don't call it blind.)
|
|
44
44
|
|
|
45
|
-
If `memlog.
|
|
45
|
+
If `memlog.js` is unavailable or a write errors, skip it silently and never stall the party on a failed write.
|
|
46
46
|
|
|
47
47
|
## Forget
|
|
48
48
|
|
|
Binary file
|
|
@@ -69,7 +69,23 @@ def load_agents(project_root: Path):
|
|
|
69
69
|
|
|
70
70
|
|
|
71
71
|
def load_workflow(project_root: Path, skill_root: Path):
|
|
72
|
-
"""Merged [workflow] table.
|
|
72
|
+
"""Merged [workflow] table.
|
|
73
|
+
|
|
74
|
+
Prefers the pre-resolved snapshot at `_wizz/_resolved/<skill-name>.json`
|
|
75
|
+
(written by `wizz update` / `wizz resolve` / wizz-customize) — one Read,
|
|
76
|
+
no spawn. Falls back to shelling out to resolve_customization.py, and
|
|
77
|
+
from there to the skill's base customize.toml, when the snapshot is
|
|
78
|
+
missing.
|
|
79
|
+
"""
|
|
80
|
+
resolved_path = project_root / "_wizz" / "_resolved" / f"{skill_root.name}.json"
|
|
81
|
+
if resolved_path.exists():
|
|
82
|
+
try:
|
|
83
|
+
with resolved_path.open("r", encoding="utf-8") as f:
|
|
84
|
+
snapshot = json.load(f)
|
|
85
|
+
if isinstance(snapshot, dict) and "workflow" in snapshot:
|
|
86
|
+
return snapshot["workflow"]
|
|
87
|
+
except (OSError, json.JSONDecodeError):
|
|
88
|
+
pass
|
|
73
89
|
script = project_root / "_wizz" / "scripts" / "resolve_customization.py"
|
|
74
90
|
data = _run_json([sys.executable, str(script), "--skill", str(skill_root), "--key", "workflow"])
|
|
75
91
|
if data is not None and "workflow" in data:
|
|
@@ -7,7 +7,7 @@ description: 'Perform a Cynical Review and produce a findings report. Use when t
|
|
|
7
7
|
|
|
8
8
|
> **Cross-reference:** this is the "Blind Hunter" review lens (diff only, no project context, no triage). It is not meant to be invoked standalone by a user. For an ad hoc adversarial pass outside a bmm workflow, use the `wizz-adversarial-reviewer` skill directly; for the full triaged multi-layer review of a real diff, run `wizz-code-review`.
|
|
9
9
|
>
|
|
10
|
-
> **
|
|
10
|
+
> **Fonte única do prompt (2026-09-11, item 22 da auditoria):** o texto operacional do Blind Hunter mora em `src/bmm-skills/4-implementation/wizz-code-review/review-prompts/blind-hunter.md` (cópia idêntica em `wizz-quick-dev/review-prompts/`, paridade travada por `test/test-blind-hunter-parity.js`). Este SKILL.md guarda a persona e o mindset cínico que o revisor assume; os workflows não invocam esta skill — leem o review-prompts direto.
|
|
11
11
|
|
|
12
12
|
**Goal:** Cynically review content and produce findings.
|
|
13
13
|
|
|
@@ -18,7 +18,7 @@ Multiple skills may call to update the same spec over time.
|
|
|
18
18
|
|
|
19
19
|
## On Activation
|
|
20
20
|
|
|
21
|
-
1. Resolve customization: `
|
|
21
|
+
1. Resolve customization: Read `{project-root}/_wizz/_resolved/wizz-spec.json` (subtree `workflow`). If the file is missing, empty or not valid JSON, run `npx wizz-method resolve --skill wizz-spec` from the project root and read the snapshot again. On failure, read `{skill-root}/customize.toml` directly.
|
|
22
22
|
2. Run `{workflow.activation_steps_prepend}`. Treat `{workflow.persistent_facts}` as foundational context (`file:` entries are loaded).
|
|
23
23
|
3. Load `{project-root}/_wizz/core/config.yaml` (and `config.user.yaml` if present), root level and `bmm` section. Resolve `{user_name}`, `{communication_language}`, `{document_output_language}`, `{planning_artifacts}`, `{project_name}`, `{date}`.
|
|
24
24
|
4. Detect mode. **Headless** when any of: no TTY, programmatic caller (another skill or non-interactive runner), or the first message pre-supplies all inputs and asks for an artifact path back. **Interactive** otherwise. In interactive mode, greet by `{user_name}` in `{communication_language}`, stay in that language, and mention that `wizz-party-mode` and `wizz-advanced-elicitation` are available for deeper exploration on any field.
|
|
@@ -55,15 +55,15 @@ Inside the spec folder:
|
|
|
55
55
|
|
|
56
56
|
Deriving the contract from a living log instead of editing the contract in place is what lets the steps around the spec (PRD, UX, architecture, epics) run in any order and feed the same spec without merge drift: the log only accumulates, the artifact is re-rendered. So the spec is updated *only* by re-deriving it here — wizz-spec is its single writer; a hand-edit to `SPEC.md` from outside is unsupported and is overwritten on the next derive.
|
|
57
57
|
|
|
58
|
-
Writes go through the shared script — `{project-root}/_wizz/scripts/memlog.
|
|
58
|
+
Writes go through the shared script — `{project-root}/_wizz/scripts/memlog.js` (atomic; never read it back except to resume):
|
|
59
59
|
|
|
60
|
-
- `
|
|
61
|
-
- `
|
|
60
|
+
- `node {project-root}/_wizz/scripts/memlog.js init --workspace {spec-folder} --field topic="<what is being specced>"` — once, at create.
|
|
61
|
+
- `node {project-root}/_wizz/scripts/memlog.js append --workspace {spec-folder} --type <decision|constraint|capability|assumption|question|direction|note|event> --text "<one-line gist, reason included>"` — as each lands.
|
|
62
62
|
- Terminal moments (a validation verdict, "spec finalized") are `--type event` entries; the memlog carries no status field.
|
|
63
63
|
|
|
64
64
|
## The Operation
|
|
65
65
|
|
|
66
|
-
Read the input and its ancillary linked materials. If there is no input, follow the no-input branch in **Workspace** (ask or block). If a prior `.memlog.md` exists at the target folder, read it — the operation becomes an update, and the memlog (not the rendered `SPEC.md`) is the authority on what was decided and on capability IDs. Preserve those IDs; new capabilities get the next unused `CAP-N`; never reuse retired IDs. Otherwise this is a create, and the first move is `memlog.
|
|
66
|
+
Read the input and its ancillary linked materials. If there is no input, follow the no-input branch in **Workspace** (ask or block). If a prior `.memlog.md` exists at the target folder, read it — the operation becomes an update, and the memlog (not the rendered `SPEC.md`) is the authority on what was decided and on capability IDs. Preserve those IDs; new capabilities get the next unused `CAP-N`; never reuse retired IDs. Otherwise this is a create, and the first move is `memlog.js init`.
|
|
67
67
|
|
|
68
68
|
When the input is structured and pre-sorted (a PRD with an addendum, a GDD, a brief produced by an upstream Wizz skill), trust the authored separation: lift kernel-fitting content into SPEC.md, lift overflow into appropriately-named companions. When the input is mixed (a brain dump, a transcript, an RFC, a customer email), do the sorting yourself: walk each claim, apply the three-lens load-bearing test (Spec Law rule 7), and route to the kernel field or a companion.
|
|
69
69
|
|
|
@@ -8,11 +8,11 @@ Install it and a fresh machine has the methodology and the four agents working,
|
|
|
8
8
|
|
|
9
9
|
| Skill | Does | Use when | Do not use when |
|
|
10
10
|
|---|---|---|---|
|
|
11
|
-
| `lowticket-metodologia` | routes a request to the one knowledge shard that answers it, loads the guardrails alongside | any low ticket work: offer, creative, page, campaign, funnel | SaaS, B2B, client site, high ticket |
|
|
12
|
-
| `lowticket-trafego` | campaign diagnosis and ruler: structure, bid cap, when to cut, how to scale | reading, cutting or scaling a Meta campaign | Google Ads, brand campaigns, writing ads |
|
|
13
|
-
| `lowticket-funil` | the post-checkout ladder: upsell, downsell, final offer, price rules | after the front-end converts, to raise average order value | before a front-end that converts exists |
|
|
14
|
-
| `lowticket-minerador` | mining and judging a competitor offer, with a cut-off rubric | hunting a new offer to model | the offer is already defined (use `wizz-offer-forge`) |
|
|
15
|
-
| `lowticket-pagina` | page performance: connect rate, LCP, pixel order, acceptance targets | optimizing or building a low ticket sales page | institutional sites or apps |
|
|
11
|
+
| `wizz-lowticket-metodologia` | routes a request to the one knowledge shard that answers it, loads the guardrails alongside | any low ticket work: offer, creative, page, campaign, funnel | SaaS, B2B, client site, high ticket |
|
|
12
|
+
| `wizz-lowticket-trafego` | campaign diagnosis and ruler: structure, bid cap, when to cut, how to scale | reading, cutting or scaling a Meta campaign | Google Ads, brand campaigns, writing ads |
|
|
13
|
+
| `wizz-lowticket-funil` | the post-checkout ladder: upsell, downsell, final offer, price rules | after the front-end converts, to raise average order value | before a front-end that converts exists |
|
|
14
|
+
| `wizz-lowticket-minerador` | mining and judging a competitor offer, with a cut-off rubric | hunting a new offer to model | the offer is already defined (use `wizz-offer-forge`) |
|
|
15
|
+
| `wizz-lowticket-pagina` | page performance: connect rate, LCP, pixel order, acceptance targets | optimizing or building a low ticket sales page | institutional sites or apps |
|
|
16
16
|
|
|
17
17
|
All five read the Cérebro on activation and **none of them keeps its own memory**, the same contract as `wizz-offer-forge`. What is decided lives in the Cérebro; what is known lives in the shards.
|
|
18
18
|
|
|
@@ -52,4 +52,4 @@ To let the agent open a specific piece, point at the folder during install, or p
|
|
|
52
52
|
swipe_file_path = "/absolute/path/to/the/swipe/file"
|
|
53
53
|
```
|
|
54
54
|
|
|
55
|
-
Resolution order and the exact wording to use when the folder is absent: `skills/lowticket-metodologia/references/swipe-file.md`.
|
|
55
|
+
Resolution order and the exact wording to use when the folder is absent: `skills/wizz-lowticket-metodologia/references/swipe-file.md`.
|
|
@@ -2,10 +2,13 @@ code: lowticket
|
|
|
2
2
|
name: "Wizz Low Ticket"
|
|
3
3
|
description: "Low ticket direct-response playbook for Meta Ads (BR/PT): funnel diagnosis, bid-cap campaigns, creatives, offers, sales pages, VSL players, upsell ladders, copy diagnosis, tracking setup and offer mining. Knowledge base in Portuguese, loaded one shard at a time."
|
|
4
4
|
default_selected: false
|
|
5
|
+
# Versão do contrato module.yaml <-> installer (auditoria 2026-09-11, item 25).
|
|
6
|
+
# Ver tools/installer/modules/module-interface.js. Ausente = 1.
|
|
7
|
+
interface_version: 1
|
|
5
8
|
|
|
6
9
|
# --- Origin note (read this before editing the knowledge base) ---
|
|
7
10
|
#
|
|
8
|
-
# The knowledge under skills/lowticket-metodologia/knowledge/ is a distillation
|
|
11
|
+
# The knowledge under skills/wizz-lowticket-metodologia/knowledge/ is a distillation
|
|
9
12
|
# written from scratch: facts, benchmarks, checklists and critical analysis.
|
|
10
13
|
# No third-party lesson text, transcript, PDF or prompt ships in this package.
|
|
11
14
|
# The raw sources stay on the author's machine, outside npm and outside git.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: lowticket-funil
|
|
2
|
+
name: wizz-lowticket-funil
|
|
3
3
|
description: Designs the post-checkout ladder for a low ticket offer - upsell 1, upsell 2, downsell and a final offer - deciding what each step sells, which pain it answers, what it costs and why it sits in that position, then writes the pages. Use when a front-end offer already converts and the goal is to raise average order value, or when an existing upsell sequence is not converting. Do NOT use before a front-end that converts exists, and do NOT use for traffic, campaigns or the front-end offer itself.
|
|
4
4
|
---
|
|
5
5
|
|
|
@@ -13,11 +13,11 @@ Every offer in the ladder exists because it answers that question for the step b
|
|
|
13
13
|
|
|
14
14
|
## Prerequisite
|
|
15
15
|
|
|
16
|
-
**There has to be a front-end that converts.** Extending a funnel above a front that does not sell multiplies zero. If the front is not validated, say so and point to `wizz-offer-forge` (build the offer) or `lowticket-trafego` (find out why it is not selling).
|
|
16
|
+
**There has to be a front-end that converts.** Extending a funnel above a front that does not sell multiplies zero. If the front is not validated, say so and point to `wizz-offer-forge` (build the offer) or `wizz-lowticket-trafego` (find out why it is not selling).
|
|
17
17
|
|
|
18
18
|
## Source of truth
|
|
19
19
|
|
|
20
|
-
Read the Cérebro state first (via the `cerebro` skill). Then, if `lowticket-metodologia` is installed, read `knowledge/INDEX.md` + `knowledge/guardrails.md` and the shard `07-funil-upsell.md`, especially §7.4 (the conversion and ticket cascade) and §7.5-7.9 (pain per step, tone per page, copy rules, the technical block for post-checkout pages and the pre-build checklist). Its sibling shard `07a-copy-humanizacao.md` carries the humanization checklist used before delivering any page. Where a generic skill contradicts that shard, the shard wins and you say so.
|
|
20
|
+
Read the Cérebro state first (via the `cerebro` skill). Then, if `wizz-lowticket-metodologia` is installed, read `knowledge/INDEX.md` + `knowledge/guardrails.md` and the shard `07-funil-upsell.md`, especially §7.4 (the conversion and ticket cascade) and §7.5-7.9 (pain per step, tone per page, copy rules, the technical block for post-checkout pages and the pre-build checklist). Its sibling shard `07a-copy-humanizacao.md` carries the humanization checklist used before delivering any page. Where a generic skill contradicts that shard, the shard wins and you say so.
|
|
21
21
|
|
|
22
22
|
This skill has **no memory of its own**. What gets decided goes to the Cérebro; the artifact goes to a file.
|
|
23
23
|
|
|
@@ -109,4 +109,4 @@ The full anti-AI word list and the rhythm rules are in `references/copy-das-pagi
|
|
|
109
109
|
|
|
110
110
|
## Out of scope
|
|
111
111
|
|
|
112
|
-
Traffic, campaigns, hiring, accounting, general operations. Bring it back to product, offer, price, pain, post-checkout sequence and copy, or route: `lowticket-trafego` for campaigns, `wizz-offer-forge` for the front-end offer, `lowticket-pagina` for the sales page itself.
|
|
112
|
+
Traffic, campaigns, hiring, accounting, general operations. Bring it back to product, offer, price, pain, post-checkout sequence and copy, or route: `wizz-lowticket-trafego` for campaigns, `wizz-offer-forge` for the front-end offer, `wizz-lowticket-pagina` for the sales page itself.
|