wizz-method 1.4.0 → 1.5.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.
- package/README.md +7 -5
- package/package.json +48 -4
- package/skills-registry.yaml +166 -34
- package/src/bmm-skills/4-implementation/wizz-code-review/SKILL.md +2 -0
- package/src/bmm-skills/4-implementation/wizz-quick-dev/SKILL.md +5 -2
- package/src/core-skills/_shared/handoff-protocol.md +61 -0
- package/src/core-skills/wizz-customize/SKILL.md +2 -2
- package/src/core-skills/wizz-party-mode/references/mode-agent-team.md +1 -1
- package/src/core-skills/wizz-party-mode/references/mode-subagent.md +1 -1
- package/src/core-skills/wizz-review-adversarial-general/SKILL.md +2 -0
- package/src/modules/wizz/README.md +3 -3
- package/src/modules/wizz/_shared/communication-rules.md +13 -0
- package/src/modules/wizz/_shared/encerramento.md +2 -2
- package/src/modules/wizz/agents/wizz-ads/SKILL.md +1 -1
- package/src/modules/wizz/agents/wizz-ads/customize.toml +5 -3
- package/src/modules/wizz/agents/wizz-copy/SKILL.md +1 -1
- package/src/modules/wizz/agents/wizz-copy/customize.toml +5 -3
- package/src/modules/wizz/agents/wizz-designer/SKILL.md +7 -9
- package/src/modules/wizz/agents/wizz-designer/customize.toml +6 -4
- package/src/modules/wizz/agents/wizz-growth/SKILL.md +1 -1
- package/src/modules/wizz/agents/wizz-growth/customize.toml +11 -3
- package/src/modules/wizz/agents/wizz-maestro/SKILL.md +15 -10
- package/src/modules/wizz/agents/wizz-maestro/customize.toml +5 -7
- package/src/modules/wizz/agents/wizz-memoria/SKILL.md +1 -1
- package/src/modules/wizz/agents/wizz-memoria/customize.toml +2 -4
- package/src/modules/wizz/agents/wizz-qa/SKILL.md +6 -6
- package/src/modules/wizz/agents/wizz-qa/customize.toml +9 -7
- package/src/modules/wizz/agents/wizz-seo/SKILL.md +1 -1
- package/src/modules/wizz/agents/wizz-seo/customize.toml +5 -3
- package/src/modules/wizz/agents/wizz-social/SKILL.md +1 -1
- package/src/modules/wizz/agents/wizz-social/customize.toml +9 -8
- package/src/modules/wizz/module.yaml +1 -1
- package/src/modules/wizz/overrides/wizz-agent-analyst.toml +4 -5
- package/src/modules/wizz/overrides/wizz-agent-architect.toml +11 -3
- package/src/modules/wizz/overrides/wizz-agent-dev.toml +6 -4
- package/src/modules/wizz/overrides/wizz-agent-pm.toml +4 -2
- package/src/modules/wizz/overrides/wizz-agent-tech-writer.toml +3 -5
- package/src/modules/wizz/overrides/wizz-agent-ux-designer.toml +4 -2
- package/src/modules/wizz/scripts/wizz-init.mjs +3 -1
- package/src/scripts/__pycache__/resolve_customization.cpython-314.pyc +0 -0
- package/src/scripts/memlog.py +9 -0
- package/src/scripts/resolve_customization.py +93 -3
- package/src/skills-lib/adversarial-reviewer/SKILL.md +2 -0
- package/src/skills-lib/algorithmic-art/SKILL.md +29 -369
- package/src/skills-lib/algorithmic-art/references/interactive-artifact.md +139 -0
- package/src/skills-lib/algorithmic-art/references/p5js-implementation.md +121 -0
- package/src/skills-lib/algorithmic-art/references/philosophy-creation.md +88 -0
- package/src/skills-lib/auth-and-secrets/SKILL.md +29 -11
- package/src/skills-lib/canvas-design/SKILL.md +9 -38
- package/src/skills-lib/canvas-design/references/canvas-execution.md +21 -0
- package/src/skills-lib/canvas-design/references/philosophy-examples.md +25 -0
- package/src/skills-lib/cerebro/SKILL.md +8 -273
- package/src/skills-lib/cerebro/references/comandos-pesquisa-e-sync.md +44 -0
- package/src/skills-lib/cerebro/references/comandos-rotina-e-captura.md +94 -0
- package/src/skills-lib/cerebro/references/comandos-sessao.md +122 -0
- package/src/skills-lib/content-strategy/SKILL.md +12 -316
- package/src/skills-lib/content-strategy/references/content-types.md +52 -0
- package/src/skills-lib/content-strategy/references/ideation-sources.md +78 -0
- package/src/skills-lib/content-strategy/references/pillars-and-keywords.md +78 -0
- package/src/skills-lib/content-strategy/references/prioritization-and-output.md +57 -0
- package/src/skills-lib/decision-maker/SKILL.md +13 -466
- package/src/skills-lib/decision-maker/references/commands-and-edge-cases.md +40 -0
- package/src/skills-lib/decision-maker/references/output-format.md +161 -0
- package/src/skills-lib/decision-maker/references/references-and-extraction.md +129 -0
- package/src/skills-lib/decision-maker/references/six-decisions.md +122 -0
- package/src/skills-lib/decision-maker/references/wizz-method-handoff.md +22 -0
- package/src/skills-lib/desktop-security/SKILL.md +35 -4
- package/src/skills-lib/find-skills/SKILL.md +9 -6
- package/src/skills-lib/form-cro/SKILL.md +12 -390
- package/src/skills-lib/form-cro/references/experiments.md +73 -0
- package/src/skills-lib/form-cro/references/field-optimization.md +92 -0
- package/src/skills-lib/form-cro/references/flow-and-errors.md +71 -0
- package/src/skills-lib/form-cro/references/measurement-output.md +41 -0
- package/src/skills-lib/form-cro/references/trust-and-form-types.md +54 -0
- package/src/skills-lib/graphify/SKILL.md +2 -20
- package/src/skills-lib/huashu-design/SKILL.md +42 -596
- package/src/skills-lib/huashu-design/references/anti-slop-principles.md +62 -0
- package/src/skills-lib/huashu-design/references/audio-design-rules.md +1 -1
- package/src/skills-lib/huashu-design/references/cross-agent-adaptation.md +14 -0
- package/src/skills-lib/huashu-design/references/design-direction-fallback.md +113 -0
- package/src/skills-lib/huashu-design/references/exception-handling.md +18 -0
- package/src/skills-lib/huashu-design/references/fact-verification.md +36 -0
- package/src/skills-lib/huashu-design/references/ios-prototype.md +146 -0
- package/src/skills-lib/huashu-design/references/sfx-library.md +7 -0
- package/src/skills-lib/huashu-design/references/starter-components.md +24 -0
- package/src/skills-lib/huashu-design/references/video-export.md +1 -1
- package/src/skills-lib/huashu-design/references/watermark-policy.md +23 -0
- package/src/skills-lib/huashu-design/scripts/add-music.sh +12 -1
- package/src/skills-lib/huashu-design/scripts/mix-voiceover.sh +11 -0
- package/src/skills-lib/humanizer/SKILL.md +23 -431
- package/src/skills-lib/humanizer/references/ai-writing-patterns.md +314 -0
- package/src/skills-lib/humanizer/references/full-example.md +72 -0
- package/src/skills-lib/humanizer/references/personality-and-soul.md +36 -0
- package/src/skills-lib/impeccable/SKILL.md +37 -153
- package/src/skills-lib/impeccable/references/design-rules.md +95 -0
- package/src/skills-lib/impeccable/references/pin-unpin-and-hooks.md +17 -0
- package/src/skills-lib/impeccable/references/routing-rules.md +28 -0
- package/src/skills-lib/implementation-planner/SKILL.md +22 -529
- package/src/skills-lib/implementation-planner/references/folder-structure-and-dependencies.md +132 -0
- package/src/skills-lib/implementation-planner/references/handoff-template.md +34 -0
- package/src/skills-lib/implementation-planner/references/implementation-phases.md +54 -0
- package/src/skills-lib/implementation-planner/references/implementation-types.md +28 -0
- package/src/skills-lib/implementation-planner/references/motion-path-implementation.md +57 -0
- package/src/skills-lib/implementation-planner/references/output-templates.md +92 -0
- package/src/skills-lib/implementation-planner/references/performance-plan.md +52 -0
- package/src/skills-lib/inicio-de-projeto/SKILL.md +4 -224
- package/src/skills-lib/inicio-de-projeto/references/implementacao-api-forms.md +112 -0
- package/src/skills-lib/inicio-de-projeto/references/padroes-arquiteturais-e-pastas.md +71 -0
- package/src/skills-lib/inicio-de-projeto/references/seguranca-e-regras-codigo.md +26 -0
- package/src/skills-lib/launch-strategy/SKILL.md +9 -311
- package/src/skills-lib/launch-strategy/references/five-phase-approach.md +76 -0
- package/src/skills-lib/launch-strategy/references/launch-checklist.md +34 -0
- package/src/skills-lib/launch-strategy/references/orb-framework.md +76 -0
- package/src/skills-lib/launch-strategy/references/post-launch-and-ongoing.md +64 -0
- package/src/skills-lib/launch-strategy/references/product-hunt-strategy.md +52 -0
- package/src/skills-lib/marketing-psychology/SKILL.md +18 -401
- package/src/skills-lib/marketing-psychology/references/design-and-delivery-models.md +56 -0
- package/src/skills-lib/marketing-psychology/references/foundational-thinking-models.md +76 -0
- package/src/skills-lib/marketing-psychology/references/growth-and-scaling-models.md +46 -0
- package/src/skills-lib/marketing-psychology/references/influencing-behavior.md +71 -0
- package/src/skills-lib/marketing-psychology/references/pricing-psychology.md +31 -0
- package/src/skills-lib/marketing-psychology/references/understanding-buyers.md +116 -0
- package/src/skills-lib/motion-3d-director/SKILL.md +23 -370
- package/src/skills-lib/motion-3d-director/references/image-to-video-workflow.md +166 -0
- package/src/skills-lib/motion-3d-director/references/motion-paths.md +119 -0
- package/src/skills-lib/motion-3d-director/references/performance-and-handoff.md +51 -0
- package/src/skills-lib/popup-cro/SKILL.md +11 -414
- package/src/skills-lib/popup-cro/references/design-copy-compliance.md +81 -0
- package/src/skills-lib/popup-cro/references/experiments.md +82 -0
- package/src/skills-lib/popup-cro/references/rules-measurement-output.md +87 -0
- package/src/skills-lib/popup-cro/references/triggers-and-popup-types.md +108 -0
- package/src/skills-lib/premium-landing-ui-researcher/SKILL.md +52 -2083
- package/src/skills-lib/premium-landing-ui-researcher/references/audit-protocol.md +124 -0
- package/src/skills-lib/premium-landing-ui-researcher/references/component-sources.md +336 -0
- package/src/skills-lib/premium-landing-ui-researcher/references/core-goal.md +62 -0
- package/src/skills-lib/premium-landing-ui-researcher/references/dashboard-and-portfolio-modes.md +92 -0
- package/src/skills-lib/premium-landing-ui-researcher/references/handoffs.md +55 -0
- package/src/skills-lib/premium-landing-ui-researcher/references/landing-page-strategy.md +227 -0
- package/src/skills-lib/premium-landing-ui-researcher/references/mandatory-process.md +36 -0
- package/src/skills-lib/premium-landing-ui-researcher/references/output-format-and-quality.md +129 -0
- package/src/skills-lib/premium-landing-ui-researcher/references/prompt-templates.md +206 -0
- package/src/skills-lib/premium-landing-ui-researcher/references/site-levels.md +515 -0
- package/src/skills-lib/premium-landing-ui-researcher/references/source-first-protocol.md +144 -0
- package/src/skills-lib/premium-landing-ui-researcher/references/source-links.md +39 -0
- package/src/skills-lib/premium-landing-ui-researcher/references/stack-and-visual-direction.md +118 -0
- package/src/skills-lib/signup-flow-cro/SKILL.md +13 -321
- package/src/skills-lib/signup-flow-cro/references/experiments.md +72 -0
- package/src/skills-lib/signup-flow-cro/references/field-optimization.md +49 -0
- package/src/skills-lib/signup-flow-cro/references/flow-structure.md +38 -0
- package/src/skills-lib/signup-flow-cro/references/measurement-output-patterns.md +62 -0
- package/src/skills-lib/signup-flow-cro/references/trust-and-post-submit.md +40 -0
- package/src/skills-lib/taste-redesign/SKILL.md +10 -146
- package/src/skills-lib/taste-redesign/references/design-audit.md +120 -0
- package/src/skills-lib/taste-redesign/references/upgrade-techniques.md +31 -0
- package/src/skills-lib/taste-skill/SKILL.md +33 -1177
- package/src/skills-lib/taste-skill/references/anti-slop-tells.md +110 -0
- package/src/skills-lib/taste-skill/references/architecture-conventions.md +39 -0
- package/src/skills-lib/taste-skill/references/block-library.md +61 -0
- package/src/skills-lib/taste-skill/references/brief-and-dials.md +89 -0
- package/src/skills-lib/taste-skill/references/dark-mode.md +23 -0
- package/src/skills-lib/taste-skill/references/design-directives.md +191 -0
- package/src/skills-lib/taste-skill/references/design-systems.md +267 -0
- package/src/skills-lib/taste-skill/references/motion-patterns.md +167 -0
- package/src/skills-lib/taste-skill/references/pattern-vocabulary.md +78 -0
- package/src/skills-lib/taste-skill/references/performance-a11y.md +33 -0
- package/src/skills-lib/taste-skill/references/preflight-checklist.md +73 -0
- package/src/skills-lib/taste-skill/references/redesign-protocol.md +52 -0
- package/src/skills-lib/ui-ux-pro-max/SKILL.md +9 -353
- package/src/skills-lib/ui-ux-pro-max/references/common-rules-checklist.md +76 -0
- package/src/skills-lib/ui-ux-pro-max/references/rules-quick-reference.md +70 -0
- package/src/skills-lib/ui-ux-pro-max/references/search-reference.md +45 -0
- package/src/skills-lib/ui-ux-pro-max/references/workflow-guide.md +157 -0
- package/src/skills-lib/web-security/SKILL.md +13 -162
- package/src/skills-lib/web-security/references/checklist-deploy.md +52 -0
- package/src/skills-lib/web-security/references/headers-rate-limit-cors.md +78 -0
- package/src/skills-lib/web-security/references/owasp-top5-detalhado.md +51 -0
- package/src/skills-lib/wizz-router/SKILL.md +30 -244
- package/src/skills-lib/wizz-router/references/auditoria-360.md +21 -0
- package/src/skills-lib/wizz-router/references/routing-table-flat.md +95 -0
- package/tools/fetch-assets.mjs +277 -0
- package/tools/installer/commands/fetch-assets.js +71 -0
- package/tools/installer/commands/install.js +35 -3
- package/tools/installer/commands/trace-report.js +131 -0
- package/tools/installer/core/config.js +9 -0
- package/tools/installer/core/help-catalog.js +181 -0
- package/tools/installer/core/install-paths.js +48 -3
- package/tools/installer/core/installer.js +253 -618
- package/tools/installer/core/manifest-generator.js +8 -1
- package/tools/installer/core/manifest.js +67 -22
- package/tools/installer/core/module-config-writer.js +110 -0
- package/tools/installer/core/preflight-tools-check.js +82 -0
- package/tools/installer/core/quick-update.js +209 -0
- package/tools/installer/core/user-file-preservation.js +250 -0
- package/tools/installer/modules/channel-resolver.js +34 -2
- package/tools/installer/modules/cli-config.js +127 -34
- package/tools/installer/modules/deps-cache.js +28 -1
- package/tools/installer/modules/env-vars.js +446 -0
- package/tools/installer/modules/external-manager.js +40 -6
- package/tools/installer/modules/mcp-config.js +180 -37
- package/tools/installer/modules/module-help-schema.js +2 -1
- package/tools/installer/modules/official-modules.js +1 -1
- package/tools/installer/modules/registry-resolve.js +74 -0
- package/tools/installer/modules/skills-lib.js +81 -16
- package/tools/installer/ui.js +71 -5
- package/wizz-modules.yaml +15 -5
- package/.claude/settings.local.json +0 -8
- package/.claude-plugin/marketplace.json +0 -80
- package/AGENTS.md +0 -12
- package/build/artifacts/llms-full.txt +0 -4049
- package/build/artifacts/llms.txt +0 -28
- package/build/site/404.html +0 -55
- package/build/site/_astro/MobileTableOfContents.astro_astro_type_script_index_0_lang.hwBsy0Mo.js +0 -1
- package/build/site/_astro/Search.astro_astro_type_script_index_0_lang.cjYDvRdi.js +0 -1
- package/build/site/_astro/TableOfContents.astro_astro_type_script_index_0_lang.FuRcXuRY.js +0 -1
- package/build/site/_astro/ec.0vx5m.js +0 -3
- package/build/site/_astro/ec.v4551.css +0 -1
- package/build/site/_astro/index.DdjI3lF_.css +0 -1
- package/build/site/_astro/page.B1D-nYk3.js +0 -1
- package/build/site/_astro/print.DNXP8c50.css +0 -1
- package/build/site/_astro/ui-core.D_Lfcn_I.js +0 -2
- package/build/site/diagrams/checkpoint-preview-diagram-fr.webp +0 -0
- package/build/site/diagrams/checkpoint-preview-diagram.png +0 -0
- package/build/site/diagrams/quick-dev-diagram-fr.webp +0 -0
- package/build/site/diagrams/quick-dev-diagram.png +0 -0
- package/build/site/explanation/advanced-elicitation/index.html +0 -105
- package/build/site/explanation/adversarial-review/index.html +0 -109
- package/build/site/explanation/analysis-phase/index.html +0 -129
- package/build/site/explanation/brainstorming/index.html +0 -92
- package/build/site/explanation/checkpoint-preview/index.html +0 -121
- package/build/site/explanation/established-projects-faq/index.html +0 -107
- package/build/site/explanation/forensic-investigation/index.html +0 -167
- package/build/site/explanation/named-agents/index.html +0 -187
- package/build/site/explanation/party-mode/index.html +0 -256
- package/build/site/explanation/preventing-agent-conflicts/index.html +0 -185
- package/build/site/explanation/project-context/index.html +0 -198
- package/build/site/explanation/quick-dev/index.html +0 -113
- package/build/site/explanation/web-bundles/index.html +0 -178
- package/build/site/explanation/why-solutioning-matters/index.html +0 -168
- package/build/site/how-to/customize-wizz/index.html +0 -277
- package/build/site/how-to/established-projects/index.html +0 -165
- package/build/site/how-to/expand-wizz-for-your-org/index.html +0 -245
- package/build/site/how-to/get-answers-about-wizz/index.html +0 -129
- package/build/site/how-to/install-custom-modules/index.html +0 -197
- package/build/site/how-to/install-wizz/index.html +0 -330
- package/build/site/how-to/non-interactive-installation/index.html +0 -73
- package/build/site/how-to/project-context/index.html +0 -141
- package/build/site/how-to/quick-fixes/index.html +0 -122
- package/build/site/how-to/shard-large-documents/index.html +0 -103
- package/build/site/how-to/upgrade-to-v6/index.html +0 -185
- package/build/site/how-to/use-web-bundles/index.html +0 -99
- package/build/site/img/wizz-dark.png +0 -0
- package/build/site/img/wizz-light.png +0 -0
- package/build/site/index.html +0 -128
- package/build/site/llms-full.txt +0 -4049
- package/build/site/llms.txt +0 -28
- package/build/site/pagefind/fragment/en_175de32.pf_fragment +0 -0
- package/build/site/pagefind/fragment/en_24258fb.pf_fragment +0 -0
- package/build/site/pagefind/fragment/en_24f53a6.pf_fragment +0 -0
- package/build/site/pagefind/fragment/en_27ba8f9.pf_fragment +0 -0
- package/build/site/pagefind/fragment/en_296ddb9.pf_fragment +0 -0
- package/build/site/pagefind/fragment/en_2b5aa5c.pf_fragment +0 -0
- package/build/site/pagefind/fragment/en_49047e0.pf_fragment +0 -0
- package/build/site/pagefind/fragment/en_4a187d2.pf_fragment +0 -0
- package/build/site/pagefind/fragment/en_514725b.pf_fragment +0 -0
- package/build/site/pagefind/fragment/en_583316f.pf_fragment +0 -0
- package/build/site/pagefind/fragment/en_6465dfb.pf_fragment +0 -0
- package/build/site/pagefind/fragment/en_67825a4.pf_fragment +0 -0
- package/build/site/pagefind/fragment/en_82aec61.pf_fragment +0 -0
- package/build/site/pagefind/fragment/en_85dcebf.pf_fragment +0 -0
- package/build/site/pagefind/fragment/en_887ce56.pf_fragment +0 -0
- package/build/site/pagefind/fragment/en_89a1a7a.pf_fragment +0 -0
- package/build/site/pagefind/fragment/en_8ade291.pf_fragment +0 -0
- package/build/site/pagefind/fragment/en_8c11f8a.pf_fragment +0 -0
- package/build/site/pagefind/fragment/en_8c1bde3.pf_fragment +0 -0
- package/build/site/pagefind/fragment/en_92d7cc7.pf_fragment +0 -0
- package/build/site/pagefind/fragment/en_94bfc21.pf_fragment +0 -0
- package/build/site/pagefind/fragment/en_9b57d7d.pf_fragment +0 -0
- package/build/site/pagefind/fragment/en_ab62b53.pf_fragment +0 -0
- package/build/site/pagefind/fragment/en_b0d23ee.pf_fragment +0 -0
- package/build/site/pagefind/fragment/en_ba9fb37.pf_fragment +0 -0
- package/build/site/pagefind/fragment/en_bb113eb.pf_fragment +0 -0
- package/build/site/pagefind/fragment/en_bfc56b6.pf_fragment +0 -0
- package/build/site/pagefind/fragment/en_c6d9e48.pf_fragment +0 -0
- package/build/site/pagefind/fragment/en_cdd772f.pf_fragment +0 -0
- package/build/site/pagefind/fragment/en_cdd885c.pf_fragment +0 -0
- package/build/site/pagefind/fragment/en_cefed6a.pf_fragment +0 -0
- package/build/site/pagefind/fragment/en_d890205.pf_fragment +0 -0
- package/build/site/pagefind/fragment/en_da351b7.pf_fragment +0 -0
- package/build/site/pagefind/fragment/en_ea289f9.pf_fragment +0 -0
- package/build/site/pagefind/fragment/en_f1c3711.pf_fragment +0 -0
- package/build/site/pagefind/index/en_5b9d8c6.pf_index +0 -0
- package/build/site/pagefind/index/en_868614c.pf_index +0 -0
- package/build/site/pagefind/index/en_e4f9bff.pf_index +0 -0
- package/build/site/pagefind/pagefind-entry.json +0 -1
- package/build/site/pagefind/pagefind-highlight.js +0 -1064
- package/build/site/pagefind/pagefind-modular-ui.css +0 -214
- package/build/site/pagefind/pagefind-modular-ui.js +0 -8
- package/build/site/pagefind/pagefind-ui.css +0 -1
- package/build/site/pagefind/pagefind-ui.js +0 -2
- package/build/site/pagefind/pagefind.en_4e69d7f053.pf_meta +0 -0
- package/build/site/pagefind/pagefind.js +0 -6
- package/build/site/pagefind/wasm.en.pagefind +0 -0
- package/build/site/pagefind/wasm.unknown.pagefind +0 -0
- package/build/site/reference/agents/index.html +0 -168
- package/build/site/reference/commands/index.html +0 -254
- package/build/site/reference/core-tools/index.html +0 -384
- package/build/site/reference/modules/index.html +0 -132
- package/build/site/reference/testing/index.html +0 -218
- package/build/site/reference/workflow-map/index.html +0 -266
- package/build/site/roadmap/index.html +0 -77
- package/build/site/robots.txt +0 -37
- package/build/site/sitemap-0.xml +0 -1
- package/build/site/sitemap-index.xml +0 -1
- package/build/site/tutorials/getting-started/index.html +0 -386
- package/build/site/wizz-icon-orange.svg +0 -7
- package/build/site/workflow-map-diagram-fr.html +0 -375
- package/build/site/workflow-map-diagram.html +0 -375
- package/evals/bmm-skills/wizz-product-brief/evals.json +0 -237
- package/evals/bmm-skills/wizz-product-brief/files/branfield-memo.md +0 -46
- package/evals/bmm-skills/wizz-product-brief/files/forkbird-brief/addendum.md +0 -40
- package/evals/bmm-skills/wizz-product-brief/files/forkbird-brief/brief.md +0 -56
- package/evals/bmm-skills/wizz-product-brief/files/forkbird-brief/decision-log.md +0 -27
- package/evals/bmm-skills/wizz-product-brief/files/meridian-mobility-report.md +0 -116
- package/evals/bmm-skills/wizz-product-brief/files/mossridge-brief/addendum.md +0 -41
- package/evals/bmm-skills/wizz-product-brief/files/mossridge-brief/brief.md +0 -57
- package/evals/bmm-skills/wizz-product-brief/files/mossridge-brief/decision-log.md +0 -29
- package/evals/bmm-skills/wizz-product-brief/files/pantry-bridge-interviews.md +0 -90
- package/evals/bmm-skills/wizz-product-brief/files/q2-brainstorm.md +0 -101
- package/evals/bmm-skills/wizz-product-brief/triggers.json +0 -18
- package/src/core-skills/wizz-party-mode/scripts/__pycache__/resolve_party.cpython-314.pyc +0 -0
- package/src/skills-lib/canvas-design/canvas-fonts/ArsenalSC-Regular.ttf +0 -0
- package/src/skills-lib/canvas-design/canvas-fonts/BigShoulders-Bold.ttf +0 -0
- package/src/skills-lib/canvas-design/canvas-fonts/BigShoulders-Regular.ttf +0 -0
- package/src/skills-lib/canvas-design/canvas-fonts/Boldonse-Regular.ttf +0 -0
- package/src/skills-lib/canvas-design/canvas-fonts/BricolageGrotesque-Bold.ttf +0 -0
- package/src/skills-lib/canvas-design/canvas-fonts/BricolageGrotesque-Regular.ttf +0 -0
- package/src/skills-lib/canvas-design/canvas-fonts/CrimsonPro-Bold.ttf +0 -0
- package/src/skills-lib/canvas-design/canvas-fonts/CrimsonPro-Italic.ttf +0 -0
- package/src/skills-lib/canvas-design/canvas-fonts/CrimsonPro-Regular.ttf +0 -0
- package/src/skills-lib/canvas-design/canvas-fonts/DMMono-Regular.ttf +0 -0
- package/src/skills-lib/canvas-design/canvas-fonts/EricaOne-Regular.ttf +0 -0
- package/src/skills-lib/canvas-design/canvas-fonts/GeistMono-Bold.ttf +0 -0
- package/src/skills-lib/canvas-design/canvas-fonts/GeistMono-Regular.ttf +0 -0
- package/src/skills-lib/canvas-design/canvas-fonts/Gloock-Regular.ttf +0 -0
- package/src/skills-lib/canvas-design/canvas-fonts/IBMPlexMono-Bold.ttf +0 -0
- package/src/skills-lib/canvas-design/canvas-fonts/IBMPlexMono-Regular.ttf +0 -0
- package/src/skills-lib/canvas-design/canvas-fonts/IBMPlexSerif-Bold.ttf +0 -0
- package/src/skills-lib/canvas-design/canvas-fonts/IBMPlexSerif-BoldItalic.ttf +0 -0
- package/src/skills-lib/canvas-design/canvas-fonts/IBMPlexSerif-Italic.ttf +0 -0
- package/src/skills-lib/canvas-design/canvas-fonts/IBMPlexSerif-Regular.ttf +0 -0
- package/src/skills-lib/canvas-design/canvas-fonts/InstrumentSans-Bold.ttf +0 -0
- package/src/skills-lib/canvas-design/canvas-fonts/InstrumentSans-BoldItalic.ttf +0 -0
- package/src/skills-lib/canvas-design/canvas-fonts/InstrumentSans-Italic.ttf +0 -0
- package/src/skills-lib/canvas-design/canvas-fonts/InstrumentSans-Regular.ttf +0 -0
- package/src/skills-lib/canvas-design/canvas-fonts/InstrumentSerif-Italic.ttf +0 -0
- package/src/skills-lib/canvas-design/canvas-fonts/InstrumentSerif-Regular.ttf +0 -0
- package/src/skills-lib/canvas-design/canvas-fonts/Italiana-Regular.ttf +0 -0
- package/src/skills-lib/canvas-design/canvas-fonts/JetBrainsMono-Bold.ttf +0 -0
- package/src/skills-lib/canvas-design/canvas-fonts/JetBrainsMono-Regular.ttf +0 -0
- package/src/skills-lib/canvas-design/canvas-fonts/Jura-Light.ttf +0 -0
- package/src/skills-lib/canvas-design/canvas-fonts/Jura-Medium.ttf +0 -0
- package/src/skills-lib/canvas-design/canvas-fonts/LibreBaskerville-Regular.ttf +0 -0
- package/src/skills-lib/canvas-design/canvas-fonts/Lora-Bold.ttf +0 -0
- package/src/skills-lib/canvas-design/canvas-fonts/Lora-BoldItalic.ttf +0 -0
- package/src/skills-lib/canvas-design/canvas-fonts/Lora-Italic.ttf +0 -0
- package/src/skills-lib/canvas-design/canvas-fonts/Lora-Regular.ttf +0 -0
- package/src/skills-lib/canvas-design/canvas-fonts/NationalPark-Bold.ttf +0 -0
- package/src/skills-lib/canvas-design/canvas-fonts/NationalPark-Regular.ttf +0 -0
- package/src/skills-lib/canvas-design/canvas-fonts/NothingYouCouldDo-Regular.ttf +0 -0
- package/src/skills-lib/canvas-design/canvas-fonts/Outfit-Bold.ttf +0 -0
- package/src/skills-lib/canvas-design/canvas-fonts/Outfit-Regular.ttf +0 -0
- package/src/skills-lib/canvas-design/canvas-fonts/PixelifySans-Medium.ttf +0 -0
- package/src/skills-lib/canvas-design/canvas-fonts/PoiretOne-Regular.ttf +0 -0
- package/src/skills-lib/canvas-design/canvas-fonts/RedHatMono-Bold.ttf +0 -0
- package/src/skills-lib/canvas-design/canvas-fonts/RedHatMono-Regular.ttf +0 -0
- package/src/skills-lib/canvas-design/canvas-fonts/Silkscreen-Regular.ttf +0 -0
- package/src/skills-lib/canvas-design/canvas-fonts/SmoochSans-Medium.ttf +0 -0
- package/src/skills-lib/canvas-design/canvas-fonts/Tektur-Medium.ttf +0 -0
- package/src/skills-lib/canvas-design/canvas-fonts/Tektur-Regular.ttf +0 -0
- package/src/skills-lib/canvas-design/canvas-fonts/WorkSans-Bold.ttf +0 -0
- package/src/skills-lib/canvas-design/canvas-fonts/WorkSans-BoldItalic.ttf +0 -0
- package/src/skills-lib/canvas-design/canvas-fonts/WorkSans-Italic.ttf +0 -0
- package/src/skills-lib/canvas-design/canvas-fonts/WorkSans-Regular.ttf +0 -0
- package/src/skills-lib/canvas-design/canvas-fonts/YoungSerif-Regular.ttf +0 -0
- package/src/skills-lib/huashu-design/assets/bgm-ad.mp3 +0 -0
- package/src/skills-lib/huashu-design/assets/bgm-educational-alt.mp3 +0 -0
- package/src/skills-lib/huashu-design/assets/bgm-educational.mp3 +0 -0
- package/src/skills-lib/huashu-design/assets/bgm-tech.mp3 +0 -0
- package/src/skills-lib/huashu-design/assets/bgm-tutorial-alt.mp3 +0 -0
- package/src/skills-lib/huashu-design/assets/bgm-tutorial.mp3 +0 -0
- package/src/skills-lib/huashu-design/assets/sfx/container/card-flip.mp3 +0 -0
- package/src/skills-lib/huashu-design/assets/sfx/container/card-snap.mp3 +0 -0
- package/src/skills-lib/huashu-design/assets/sfx/container/modal-open.mp3 +0 -0
- package/src/skills-lib/huashu-design/assets/sfx/container/stack-collapse.mp3 +0 -0
- package/src/skills-lib/huashu-design/assets/sfx/feedback/achievement.mp3 +0 -0
- package/src/skills-lib/huashu-design/assets/sfx/feedback/error-tone.mp3 +0 -0
- package/src/skills-lib/huashu-design/assets/sfx/feedback/notification-pop.mp3 +0 -0
- package/src/skills-lib/huashu-design/assets/sfx/feedback/success-chime.mp3 +0 -0
- package/src/skills-lib/huashu-design/assets/sfx/impact/brand-stamp.mp3 +0 -0
- package/src/skills-lib/huashu-design/assets/sfx/impact/drop-thud.mp3 +0 -0
- package/src/skills-lib/huashu-design/assets/sfx/impact/logo-reveal-v2.mp3 +0 -0
- package/src/skills-lib/huashu-design/assets/sfx/impact/logo-reveal.mp3 +0 -0
- package/src/skills-lib/huashu-design/assets/sfx/keyboard/delete-key.mp3 +0 -0
- package/src/skills-lib/huashu-design/assets/sfx/keyboard/enter.mp3 +0 -0
- package/src/skills-lib/huashu-design/assets/sfx/keyboard/space-tap.mp3 +0 -0
- package/src/skills-lib/huashu-design/assets/sfx/keyboard/type-fast.mp3 +0 -0
- package/src/skills-lib/huashu-design/assets/sfx/keyboard/type.mp3 +0 -0
- package/src/skills-lib/huashu-design/assets/sfx/magic/ai-process.mp3 +0 -0
- package/src/skills-lib/huashu-design/assets/sfx/magic/sparkle.mp3 +0 -0
- package/src/skills-lib/huashu-design/assets/sfx/magic/transform.mp3 +0 -0
- package/src/skills-lib/huashu-design/assets/sfx/progress/complete-done.mp3 +0 -0
- package/src/skills-lib/huashu-design/assets/sfx/progress/generate-start.mp3 +0 -0
- package/src/skills-lib/huashu-design/assets/sfx/progress/loading-tick.mp3 +0 -0
- package/src/skills-lib/huashu-design/assets/sfx/terminal/command-execute.mp3 +0 -0
- package/src/skills-lib/huashu-design/assets/sfx/terminal/cursor-blink.mp3 +0 -0
- package/src/skills-lib/huashu-design/assets/sfx/terminal/output-appear.mp3 +0 -0
- package/src/skills-lib/huashu-design/assets/sfx/transition/dissolve.mp3 +0 -0
- package/src/skills-lib/huashu-design/assets/sfx/transition/slide-in.mp3 +0 -0
- package/src/skills-lib/huashu-design/assets/sfx/transition/swipe-horizontal.mp3 +0 -0
- package/src/skills-lib/huashu-design/assets/sfx/transition/whoosh-fast.mp3 +0 -0
- package/src/skills-lib/huashu-design/assets/sfx/transition/whoosh.mp3 +0 -0
- package/src/skills-lib/huashu-design/assets/sfx/ui/click-soft.mp3 +0 -0
- package/src/skills-lib/huashu-design/assets/sfx/ui/click.mp3 +0 -0
- package/src/skills-lib/huashu-design/assets/sfx/ui/focus.mp3 +0 -0
- package/src/skills-lib/huashu-design/assets/sfx/ui/hover-subtle.mp3 +0 -0
- package/src/skills-lib/huashu-design/assets/sfx/ui/tap-finger.mp3 +0 -0
- package/src/skills-lib/huashu-design/assets/sfx/ui/toggle-on.mp3 +0 -0
- package/src/skills-lib/ui-ux-pro-max/scripts/__pycache__/core.cpython-314.pyc +0 -0
- package/src/skills-lib/ui-ux-pro-max/scripts/__pycache__/design_system.cpython-314.pyc +0 -0
- package/src/skills-lib/ui-ux-pro-max/scripts/__pycache__/search.cpython-314.pyc +0 -0
- package/src/skills-lib/ui-ux-pro-max/scripts/graphify-out/cache/0964cef300f753b5cee0cc49777ca97035c85d45c212099405d9ee4da36e523f.json +0 -1
- package/src/skills-lib/ui-ux-pro-max/scripts/graphify-out/cache/21a40f6810c3a6f17acc3580f106171daf78c7b41bbd066bc80448a821ea0adf.json +0 -1
- package/src/skills-lib/ui-ux-pro-max/scripts/graphify-out/cache/69ea15a020ac81b8459e37ef63654398a50c1035fc01c43d8069df217389f7f3.json +0 -1
- package/src/squads/README.md +0 -39
- package/src/squads/advisory-board/README.md +0 -34
- package/src/squads/advisory-board/agents/board-chair.md +0 -161
- package/src/squads/advisory-board/agents/brene-brown.md +0 -296
- package/src/squads/advisory-board/agents/charlie-munger.md +0 -590
- package/src/squads/advisory-board/agents/derek-sivers.md +0 -268
- package/src/squads/advisory-board/agents/naval-ravikant.md +0 -251
- package/src/squads/advisory-board/agents/patrick-lencioni.md +0 -394
- package/src/squads/advisory-board/agents/peter-thiel.md +0 -269
- package/src/squads/advisory-board/agents/ray-dalio.md +0 -587
- package/src/squads/advisory-board/agents/reid-hoffman.md +0 -278
- package/src/squads/advisory-board/agents/simon-sinek.md +0 -291
- package/src/squads/advisory-board/agents/yvon-chouinard.md +0 -275
- package/src/squads/advisory-board/squad.yaml +0 -50
- package/src/squads/brand-squad/README.md +0 -60
- package/src/squads/brand-squad/agents/al-ries.md +0 -175
- package/src/squads/brand-squad/agents/alina-wheeler.md +0 -184
- package/src/squads/brand-squad/agents/archetype-consultant.md +0 -215
- package/src/squads/brand-squad/agents/brand-chief.md +0 -158
- package/src/squads/brand-squad/agents/byron-sharp.md +0 -169
- package/src/squads/brand-squad/agents/david-aaker.md +0 -166
- package/src/squads/brand-squad/agents/denise-yohn.md +0 -172
- package/src/squads/brand-squad/agents/domain-scout.md +0 -135
- package/src/squads/brand-squad/agents/donald-miller.md +0 -179
- package/src/squads/brand-squad/agents/emily-heyward.md +0 -147
- package/src/squads/brand-squad/agents/jean-noel-kapferer.md +0 -189
- package/src/squads/brand-squad/agents/kevin-keller.md +0 -199
- package/src/squads/brand-squad/agents/marty-neumeier.md +0 -170
- package/src/squads/brand-squad/agents/miller-sticky-brand.md +0 -180
- package/src/squads/brand-squad/agents/naming-strategist.md +0 -171
- package/src/squads/brand-squad/squad.yaml +0 -117
- package/src/squads/c-level-squad/README.md +0 -29
- package/src/squads/c-level-squad/agents/caio-architect.md +0 -235
- package/src/squads/c-level-squad/agents/cio-engineer.md +0 -209
- package/src/squads/c-level-squad/agents/cmo-architect.md +0 -208
- package/src/squads/c-level-squad/agents/coo-orchestrator.md +0 -193
- package/src/squads/c-level-squad/agents/cto-architect.md +0 -194
- package/src/squads/c-level-squad/agents/vision-chief.md +0 -201
- package/src/squads/c-level-squad/squad.yaml +0 -45
- package/src/squads/claude-code-mastery/README.md +0 -146
- package/src/squads/claude-code-mastery/agents/claude-mastery-chief.md +0 -554
- package/src/squads/claude-code-mastery/agents/config-engineer.md +0 -865
- package/src/squads/claude-code-mastery/agents/hooks-architect.md +0 -1013
- package/src/squads/claude-code-mastery/agents/mcp-integrator.md +0 -791
- package/src/squads/claude-code-mastery/agents/project-integrator.md +0 -1196
- package/src/squads/claude-code-mastery/agents/roadmap-sentinel.md +0 -931
- package/src/squads/claude-code-mastery/agents/skill-craftsman.md +0 -1250
- package/src/squads/claude-code-mastery/agents/swarm-orchestrator.md +0 -1008
- package/src/squads/copy-squad/README.md +0 -65
- package/src/squads/copy-squad/agents/andre-chaperon.md +0 -206
- package/src/squads/copy-squad/agents/ben-settle.md +0 -194
- package/src/squads/copy-squad/agents/claude-hopkins.md +0 -182
- package/src/squads/copy-squad/agents/clayton-makepeace.md +0 -225
- package/src/squads/copy-squad/agents/copy-chief.md +0 -166
- package/src/squads/copy-squad/agents/dan-kennedy.md +0 -202
- package/src/squads/copy-squad/agents/dan-koe.md +0 -223
- package/src/squads/copy-squad/agents/david-deutsch.md +0 -197
- package/src/squads/copy-squad/agents/david-ogilvy.md +0 -198
- package/src/squads/copy-squad/agents/eugene-schwartz.md +0 -238
- package/src/squads/copy-squad/agents/frank-kern.md +0 -195
- package/src/squads/copy-squad/agents/gary-bencivenga.md +0 -197
- package/src/squads/copy-squad/agents/gary-halbert.md +0 -219
- package/src/squads/copy-squad/agents/jim-rutz.md +0 -193
- package/src/squads/copy-squad/agents/joe-sugarman.md +0 -234
- package/src/squads/copy-squad/agents/john-carlton.md +0 -203
- package/src/squads/copy-squad/agents/jon-benson.md +0 -196
- package/src/squads/copy-squad/agents/parris-lampropoulos.md +0 -188
- package/src/squads/copy-squad/agents/robert-collier.md +0 -183
- package/src/squads/copy-squad/agents/russell-brunson.md +0 -229
- package/src/squads/copy-squad/agents/ry-schwartz.md +0 -185
- package/src/squads/copy-squad/agents/stefan-georgi.md +0 -188
- package/src/squads/copy-squad/agents/todd-brown.md +0 -171
- package/src/squads/copy-squad/squad.yaml +0 -87
- package/src/squads/cybersecurity/README.md +0 -38
- package/src/squads/cybersecurity/agents/busterer.md +0 -108
- package/src/squads/cybersecurity/agents/cartographer.md +0 -114
- package/src/squads/cybersecurity/agents/chris-sanders.md +0 -205
- package/src/squads/cybersecurity/agents/command-generator.md +0 -121
- package/src/squads/cybersecurity/agents/cyber-chief.md +0 -120
- package/src/squads/cybersecurity/agents/dirber.md +0 -111
- package/src/squads/cybersecurity/agents/fuzzer.md +0 -121
- package/src/squads/cybersecurity/agents/georgia-weidman.md +0 -178
- package/src/squads/cybersecurity/agents/jim-manico.md +0 -182
- package/src/squads/cybersecurity/agents/marcus-carey.md +0 -200
- package/src/squads/cybersecurity/agents/omar-santos.md +0 -206
- package/src/squads/cybersecurity/agents/peter-kim.md +0 -179
- package/src/squads/cybersecurity/agents/ripper.md +0 -121
- package/src/squads/cybersecurity/agents/rogue.md +0 -116
- package/src/squads/cybersecurity/agents/shannon-runner.md +0 -108
- package/src/squads/cybersecurity/squad.yaml +0 -56
- package/src/squads/data-squad/README.md +0 -30
- package/src/squads/data-squad/agents/avinash-kaushik.md +0 -268
- package/src/squads/data-squad/agents/data-chief.md +0 -167
- package/src/squads/data-squad/agents/david-spinks.md +0 -277
- package/src/squads/data-squad/agents/nick-mehta.md +0 -294
- package/src/squads/data-squad/agents/peter-fader.md +0 -246
- package/src/squads/data-squad/agents/sean-ellis.md +0 -303
- package/src/squads/data-squad/agents/wes-kao.md +0 -268
- package/src/squads/data-squad/squad.yaml +0 -46
- package/src/squads/design-squad/README.md +0 -31
- package/src/squads/design-squad/agents/brad-frost.md +0 -185
- package/src/squads/design-squad/agents/dan-mall.md +0 -178
- package/src/squads/design-squad/agents/dave-malouf.md +0 -198
- package/src/squads/design-squad/agents/design-chief.md +0 -109
- package/src/squads/design-squad/agents/design-system-architect.md +0 -109
- package/src/squads/design-squad/agents/ui-engineer.md +0 -102
- package/src/squads/design-squad/agents/ux-designer.md +0 -105
- package/src/squads/design-squad/agents/visual-generator.md +0 -108
- package/src/squads/design-squad/squad.yaml +0 -48
- package/src/squads/hormozi-squad/README.md +0 -39
- package/src/squads/hormozi-squad/agents/hormozi-ads.md +0 -159
- package/src/squads/hormozi-squad/agents/hormozi-advisor.md +0 -178
- package/src/squads/hormozi-squad/agents/hormozi-audit.md +0 -178
- package/src/squads/hormozi-squad/agents/hormozi-chief.md +0 -111
- package/src/squads/hormozi-squad/agents/hormozi-closer.md +0 -179
- package/src/squads/hormozi-squad/agents/hormozi-content.md +0 -166
- package/src/squads/hormozi-squad/agents/hormozi-copy.md +0 -152
- package/src/squads/hormozi-squad/agents/hormozi-hooks.md +0 -177
- package/src/squads/hormozi-squad/agents/hormozi-launch.md +0 -160
- package/src/squads/hormozi-squad/agents/hormozi-leads.md +0 -198
- package/src/squads/hormozi-squad/agents/hormozi-models.md +0 -191
- package/src/squads/hormozi-squad/agents/hormozi-offers.md +0 -197
- package/src/squads/hormozi-squad/agents/hormozi-pricing.md +0 -151
- package/src/squads/hormozi-squad/agents/hormozi-retention.md +0 -166
- package/src/squads/hormozi-squad/agents/hormozi-scale.md +0 -175
- package/src/squads/hormozi-squad/agents/hormozi-workshop.md +0 -160
- package/src/squads/hormozi-squad/squad.yaml +0 -60
- package/src/squads/movement/README.md +0 -29
- package/src/squads/movement/agents/analista-de-impacto.md +0 -350
- package/src/squads/movement/agents/estrategista-de-ciclo.md +0 -301
- package/src/squads/movement/agents/fenomenologo.md +0 -169
- package/src/squads/movement/agents/identitario.md +0 -265
- package/src/squads/movement/agents/manifestador.md +0 -279
- package/src/squads/movement/agents/movement-architect.md +0 -210
- package/src/squads/movement/agents/movement-chief.md +0 -135
- package/src/squads/movement/squad.yaml +0 -45
- package/src/squads/storytelling/README.md +0 -35
- package/src/squads/storytelling/agents/blake-snyder.md +0 -225
- package/src/squads/storytelling/agents/dan-harmon.md +0 -167
- package/src/squads/storytelling/agents/joseph-campbell.md +0 -184
- package/src/squads/storytelling/agents/keith-johnstone.md +0 -157
- package/src/squads/storytelling/agents/kindra-hall.md +0 -162
- package/src/squads/storytelling/agents/marshall-ganz.md +0 -167
- package/src/squads/storytelling/agents/matthew-dicks.md +0 -152
- package/src/squads/storytelling/agents/nancy-duarte.md +0 -154
- package/src/squads/storytelling/agents/oren-klaff.md +0 -166
- package/src/squads/storytelling/agents/park-howell.md +0 -152
- package/src/squads/storytelling/agents/shawn-coyne.md +0 -208
- package/src/squads/storytelling/agents/story-chief.md +0 -155
- package/src/squads/storytelling/squad.yaml +0 -52
- package/src/squads/traffic-masters/README.md +0 -39
- package/src/squads/traffic-masters/agents/ad-midas.md +0 -149
- package/src/squads/traffic-masters/agents/ads-analyst.md +0 -135
- package/src/squads/traffic-masters/agents/creative-analyst.md +0 -142
- package/src/squads/traffic-masters/agents/depesh-mandalia.md +0 -174
- package/src/squads/traffic-masters/agents/fiscal.md +0 -144
- package/src/squads/traffic-masters/agents/kasim-aslam.md +0 -158
- package/src/squads/traffic-masters/agents/media-buyer.md +0 -159
- package/src/squads/traffic-masters/agents/molly-pittman.md +0 -185
- package/src/squads/traffic-masters/agents/nicholas-kusmich.md +0 -157
- package/src/squads/traffic-masters/agents/pedro-sobral.md +0 -158
- package/src/squads/traffic-masters/agents/performance-analyst.md +0 -135
- package/src/squads/traffic-masters/agents/pixel-specialist.md +0 -144
- package/src/squads/traffic-masters/agents/ralph-burns.md +0 -163
- package/src/squads/traffic-masters/agents/scale-optimizer.md +0 -144
- package/src/squads/traffic-masters/agents/tom-breeze.md +0 -175
- package/src/squads/traffic-masters/agents/traffic-chief.md +0 -97
- package/src/squads/traffic-masters/squad.yaml +0 -59
- package/tools/bundle-web-bundles.js +0 -117
- package/tools/format-workflow-md.js +0 -263
- package/tools/javascript-conventions.md +0 -5
- package/tools/migrate-custom-module-paths.js +0 -124
- package/tools/skill-validator.md +0 -368
- package/tools/validate-sidebar-order.js +0 -388
- package/tools/validate-skills.js +0 -708
- package/tools/validate-svg-changes.sh +0 -356
- /package/tools/installer/{cli-utils.js → banner.js} +0 -0
|
@@ -1,97 +0,0 @@
|
|
|
1
|
-
# Traffic Chief
|
|
2
|
-
|
|
3
|
-
> ACTIVATION-NOTICE: You are the Traffic Chief — orchestrator of the Traffic Masters Squad. You do NOT buy media or write ads. You DIAGNOSE traffic problems, ROUTE them to the correct specialist, and REVIEW their output. You think in platforms, funnels, metrics, and creative. Every traffic problem maps to a platform expert or functional specialist.
|
|
4
|
-
|
|
5
|
-
## COMPLETE AGENT DEFINITION
|
|
6
|
-
|
|
7
|
-
```yaml
|
|
8
|
-
agent:
|
|
9
|
-
name: "Traffic Chief"
|
|
10
|
-
id: traffic-chief
|
|
11
|
-
title: "Traffic Masters Orchestrator"
|
|
12
|
-
icon: "🎯"
|
|
13
|
-
tier: 0
|
|
14
|
-
squad: traffic-masters
|
|
15
|
-
role: orchestrator
|
|
16
|
-
|
|
17
|
-
persona:
|
|
18
|
-
role: "Traffic Problem Diagnostician & Squad Router"
|
|
19
|
-
identity: "The central nervous system of the Traffic Masters Squad. Fluent in all major ad platforms and traffic strategies. Diagnoses whether a traffic problem is platform-specific, creative-related, targeting-based, budget-driven, or funnel-connected. Routes to the right expert or specialist."
|
|
20
|
-
style: "Analytical, metric-driven, diagnostic. Gets to the root cause fast. Speaks in ROAS, CPA, CTR, and funnel stages."
|
|
21
|
-
|
|
22
|
-
core_diagnostic:
|
|
23
|
-
step_1: "What's the ACTUAL problem? (Not enough traffic? Wrong traffic? Traffic that doesn't convert?)"
|
|
24
|
-
step_2: "Which platform(s)? (Facebook, Google, YouTube, TikTok, LinkedIn, multi-platform)"
|
|
25
|
-
step_3: "Where in the funnel? (Top = awareness/reach, Middle = consideration/clicks, Bottom = conversion)"
|
|
26
|
-
step_4: "What's the budget level? (<$1K/mo, $1K-$10K, $10K-$100K, $100K+)"
|
|
27
|
-
step_5: "Route to the right specialist."
|
|
28
|
-
|
|
29
|
-
routing_logic:
|
|
30
|
-
platform_specific:
|
|
31
|
-
facebook_meta:
|
|
32
|
-
signals: ["Facebook ads", "Meta ads", "Instagram ads", "Reels ads"]
|
|
33
|
-
route_to: [molly-pittman, depesh-mandalia, ralph-burns]
|
|
34
|
-
youtube:
|
|
35
|
-
signals: ["YouTube ads", "pre-roll", "TrueView", "video ads on YouTube"]
|
|
36
|
-
route_to: tom-breeze
|
|
37
|
-
google:
|
|
38
|
-
signals: ["Google Ads", "Search ads", "Performance Max", "Shopping ads"]
|
|
39
|
-
route_to: kasim-aslam
|
|
40
|
-
brazil_latam:
|
|
41
|
-
signals: ["Brazilian market", "LATAM", "Portuguese-speaking", "gestor de trafego"]
|
|
42
|
-
route_to: pedro-sobral
|
|
43
|
-
|
|
44
|
-
function_specific:
|
|
45
|
-
creative_problem:
|
|
46
|
-
signals: ["ads not getting clicks", "creative fatigue", "need better ad creative", "low CTR"]
|
|
47
|
-
route_to: [ad-midas, creative-analyst]
|
|
48
|
-
scaling_problem:
|
|
49
|
-
signals: ["can't scale spend", "CPA increases with budget", "diminishing returns"]
|
|
50
|
-
route_to: [scale-optimizer, depesh-mandalia]
|
|
51
|
-
tracking_problem:
|
|
52
|
-
signals: ["attribution issues", "pixel not firing", "iOS tracking", "conversion tracking broken"]
|
|
53
|
-
route_to: pixel-specialist
|
|
54
|
-
analysis_problem:
|
|
55
|
-
signals: ["don't know what's working", "need audit", "can't read the data"]
|
|
56
|
-
route_to: [performance-analyst, ads-analyst]
|
|
57
|
-
budget_problem:
|
|
58
|
-
signals: ["budget allocation", "cashflow for ads", "ROAS targets", "profitability"]
|
|
59
|
-
route_to: fiscal
|
|
60
|
-
execution_problem:
|
|
61
|
-
signals: ["need someone to set up campaigns", "campaign structure", "media buying"]
|
|
62
|
-
route_to: media-buyer
|
|
63
|
-
|
|
64
|
-
quality_review:
|
|
65
|
-
checks:
|
|
66
|
-
- "Is the offer validated before spending on ads?"
|
|
67
|
-
- "Is tracking properly set up?"
|
|
68
|
-
- "Are we testing creatives systematically?"
|
|
69
|
-
- "Is the CPA sustainable relative to LTV?"
|
|
70
|
-
- "Are we scaling profitably, not just spending more?"
|
|
71
|
-
- "Is there a clear funnel from click to conversion?"
|
|
72
|
-
|
|
73
|
-
commands:
|
|
74
|
-
- name: diagnose
|
|
75
|
-
description: "Diagnose the traffic problem and recommend the right specialist"
|
|
76
|
-
- name: route
|
|
77
|
-
description: "Route a specific request to the correct traffic agent"
|
|
78
|
-
- name: review
|
|
79
|
-
description: "Review any traffic strategy for completeness"
|
|
80
|
-
- name: roster
|
|
81
|
-
description: "Show all 16 Traffic Masters agents and their specialties"
|
|
82
|
-
- name: metrics
|
|
83
|
-
description: "Quick metrics health check on any campaign"
|
|
84
|
-
```
|
|
85
|
-
|
|
86
|
-
---
|
|
87
|
-
|
|
88
|
-
## How the Traffic Chief Routes
|
|
89
|
-
|
|
90
|
-
1. **Listen to the problem.** What's actually happening with their traffic/ads?
|
|
91
|
-
2. **Identify the platform.** Facebook? Google? YouTube? Multi-platform?
|
|
92
|
-
3. **Identify the function.** Creative? Targeting? Scaling? Tracking? Budget?
|
|
93
|
-
4. **Check the budget level.** Strategy differs at $1K/mo vs. $100K/mo.
|
|
94
|
-
5. **Route to specialist.** Platform expert for strategy, functional agent for execution.
|
|
95
|
-
6. **Review output.** Does it meet ROAS targets? Is it scalable?
|
|
96
|
-
|
|
97
|
-
The Chief NEVER writes ads, buys media, or sets up campaigns. The Chief DIAGNOSES and ROUTES.
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
name: traffic-masters
|
|
2
|
-
version: "1.0.0"
|
|
3
|
-
short-title: "Traffic Masters"
|
|
4
|
-
description: "Squad de 16 agentes especialistas em trafego pago. Facebook, YouTube, Google Ads, media buying, creative analysis, scaling, tracking."
|
|
5
|
-
author: "Synkra AIOS"
|
|
6
|
-
license: MIT
|
|
7
|
-
slashPrefix: "traffic-masters"
|
|
8
|
-
|
|
9
|
-
aios:
|
|
10
|
-
minVersion: "4.0.0"
|
|
11
|
-
type: squad
|
|
12
|
-
|
|
13
|
-
tags:
|
|
14
|
-
- traffic
|
|
15
|
-
- ads
|
|
16
|
-
- facebook
|
|
17
|
-
- google
|
|
18
|
-
- youtube
|
|
19
|
-
- media-buying
|
|
20
|
-
- creative
|
|
21
|
-
- scaling
|
|
22
|
-
- tracking
|
|
23
|
-
|
|
24
|
-
components:
|
|
25
|
-
agents:
|
|
26
|
-
- traffic-chief.md
|
|
27
|
-
- molly-pittman.md
|
|
28
|
-
- ralph-burns.md
|
|
29
|
-
- depesh-mandalia.md
|
|
30
|
-
- nicholas-kusmich.md
|
|
31
|
-
- tom-breeze.md
|
|
32
|
-
- kasim-aslam.md
|
|
33
|
-
- pedro-sobral.md
|
|
34
|
-
- ad-midas.md
|
|
35
|
-
- media-buyer.md
|
|
36
|
-
- performance-analyst.md
|
|
37
|
-
- creative-analyst.md
|
|
38
|
-
- scale-optimizer.md
|
|
39
|
-
- pixel-specialist.md
|
|
40
|
-
- ads-analyst.md
|
|
41
|
-
- fiscal.md
|
|
42
|
-
tasks:
|
|
43
|
-
- analyze-performance.md
|
|
44
|
-
- audit-ad-account.md
|
|
45
|
-
- create-ad-creative.md
|
|
46
|
-
- create-ad-strategy.md
|
|
47
|
-
- diagnose.md
|
|
48
|
-
- manage-budget.md
|
|
49
|
-
- review.md
|
|
50
|
-
- scale-campaign.md
|
|
51
|
-
- setup-tracking.md
|
|
52
|
-
workflows:
|
|
53
|
-
- wf-account-audit.yaml
|
|
54
|
-
- wf-campaign-launch.yaml
|
|
55
|
-
checklists:
|
|
56
|
-
- output-quality.md
|
|
57
|
-
|
|
58
|
-
config:
|
|
59
|
-
extends: extend
|
|
@@ -1,117 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Web Bundle Release Packager
|
|
3
|
-
*
|
|
4
|
-
* Zips each bundle under web-bundles/ into dist/web-bundles/{slug}.zip
|
|
5
|
-
* for attachment to a GitHub Release.
|
|
6
|
-
*
|
|
7
|
-
* Usage:
|
|
8
|
-
* node tools/bundle-web-bundles.js
|
|
9
|
-
*
|
|
10
|
-
* After running, the script prints the exact `gh release create` command
|
|
11
|
-
* (with the correct tag from bundles.json) for you to copy.
|
|
12
|
-
*/
|
|
13
|
-
|
|
14
|
-
const fs = require('node:fs');
|
|
15
|
-
const path = require('node:path');
|
|
16
|
-
const { execSync, execFileSync } = require('node:child_process');
|
|
17
|
-
|
|
18
|
-
const REPO_ROOT = path.resolve(__dirname, '..');
|
|
19
|
-
const BUNDLES_DIR = path.join(REPO_ROOT, 'web-bundles');
|
|
20
|
-
const DIST_DIR = path.join(REPO_ROOT, 'dist', 'web-bundles');
|
|
21
|
-
const MANIFEST = path.join(BUNDLES_DIR, 'bundles.json');
|
|
22
|
-
const SLUG_RE = /^[a-z0-9][a-z0-9-]*$/;
|
|
23
|
-
|
|
24
|
-
function fail(msg) {
|
|
25
|
-
console.error(`[ERROR] ${msg}`);
|
|
26
|
-
process.exit(1);
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
function requireZipCli() {
|
|
30
|
-
try {
|
|
31
|
-
execSync('zip -v', { stdio: 'ignore' });
|
|
32
|
-
} catch {
|
|
33
|
-
fail("'zip' CLI not found on PATH. Install zip (macOS: preinstalled; Debian/Ubuntu: apt install zip; Alpine: apk add zip) and re-run.");
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
function loadManifest() {
|
|
38
|
-
if (!fs.existsSync(MANIFEST)) {
|
|
39
|
-
fail(`bundles.json not found at ${MANIFEST}`);
|
|
40
|
-
}
|
|
41
|
-
let manifest;
|
|
42
|
-
try {
|
|
43
|
-
manifest = JSON.parse(fs.readFileSync(MANIFEST, 'utf-8'));
|
|
44
|
-
} catch (error) {
|
|
45
|
-
fail(`bundles.json is not valid JSON: ${error.message}`);
|
|
46
|
-
}
|
|
47
|
-
if (!Array.isArray(manifest.bundles) || manifest.bundles.length === 0) {
|
|
48
|
-
fail('bundles.json is missing a non-empty "bundles" array.');
|
|
49
|
-
}
|
|
50
|
-
if (typeof manifest.releaseTag !== 'string' || !manifest.releaseTag) {
|
|
51
|
-
fail('bundles.json is missing "releaseTag".');
|
|
52
|
-
}
|
|
53
|
-
return manifest;
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
function main() {
|
|
57
|
-
requireZipCli();
|
|
58
|
-
const manifest = loadManifest();
|
|
59
|
-
const releaseTag = manifest.releaseTag;
|
|
60
|
-
|
|
61
|
-
fs.mkdirSync(DIST_DIR, { recursive: true });
|
|
62
|
-
|
|
63
|
-
console.log(`Packaging ${manifest.bundles.length} bundles for release ${releaseTag}\n`);
|
|
64
|
-
|
|
65
|
-
const zipped = [];
|
|
66
|
-
const missing = [];
|
|
67
|
-
const invalid = [];
|
|
68
|
-
for (const bundle of manifest.bundles) {
|
|
69
|
-
if (!bundle.slug || !SLUG_RE.test(bundle.slug)) {
|
|
70
|
-
invalid.push(bundle.slug || '(no slug)');
|
|
71
|
-
console.error(` [INVALID] slug must match ${SLUG_RE} — got: ${bundle.slug}`);
|
|
72
|
-
continue;
|
|
73
|
-
}
|
|
74
|
-
const src = path.join(BUNDLES_DIR, bundle.slug);
|
|
75
|
-
if (!fs.existsSync(src)) {
|
|
76
|
-
missing.push(bundle.slug);
|
|
77
|
-
console.error(` [MISSING] ${bundle.slug} — directory not found`);
|
|
78
|
-
continue;
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
const out = path.join(DIST_DIR, `${bundle.slug}.zip`);
|
|
82
|
-
if (fs.existsSync(out)) fs.unlinkSync(out);
|
|
83
|
-
|
|
84
|
-
try {
|
|
85
|
-
execFileSync('zip', ['-r', '-X', '-q', out, bundle.slug, '-x', '*.DS_Store'], {
|
|
86
|
-
cwd: BUNDLES_DIR,
|
|
87
|
-
stdio: 'inherit',
|
|
88
|
-
});
|
|
89
|
-
} catch (error) {
|
|
90
|
-
fail(`zip failed for ${bundle.slug}: ${error.message}`);
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
const size = (fs.statSync(out).size / 1024).toFixed(1);
|
|
94
|
-
console.log(` [OK] ${bundle.slug}.zip (${size} KB)`);
|
|
95
|
-
zipped.push(bundle.slug);
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
if (invalid.length > 0) {
|
|
99
|
-
fail(`Refusing to publish: ${invalid.length} bundle(s) have invalid slugs: ${invalid.join(', ')}`);
|
|
100
|
-
}
|
|
101
|
-
if (missing.length > 0) {
|
|
102
|
-
fail(`Refusing to publish an incomplete release: missing directories for ${missing.join(', ')}`);
|
|
103
|
-
}
|
|
104
|
-
if (zipped.length === 0) {
|
|
105
|
-
fail('No bundles were packaged. Check bundles.json against web-bundles/ subdirectories.');
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
console.log(`\nWrote ${zipped.length} bundles to ${path.relative(REPO_ROOT, DIST_DIR)}/`);
|
|
109
|
-
console.log('\nNext step — create or update the GitHub Release:\n');
|
|
110
|
-
console.log(` gh release create ${releaseTag} dist/web-bundles/*.zip \\`);
|
|
111
|
-
console.log(` --title "${releaseTag}" \\`);
|
|
112
|
-
console.log(` --notes "Wizz web bundles for Gemini Gems and ChatGPT Custom GPTs. See https://bmadcode.com/web-bundles/"\n`);
|
|
113
|
-
console.log('Or, to refresh an existing release:\n');
|
|
114
|
-
console.log(` gh release upload ${releaseTag} dist/web-bundles/*.zip --clobber\n`);
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
main();
|
|
@@ -1,263 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* WIZZ Workflow Markdown Formatter
|
|
3
|
-
*
|
|
4
|
-
* Formats mixed markdown + XML workflow instruction files with:
|
|
5
|
-
* - 2-space XML indentation
|
|
6
|
-
* - Preserved markdown content
|
|
7
|
-
* - Proper tag nesting
|
|
8
|
-
* - Consistent formatting
|
|
9
|
-
*/
|
|
10
|
-
|
|
11
|
-
const fs = require('node:fs');
|
|
12
|
-
const path = require('node:path');
|
|
13
|
-
|
|
14
|
-
class WorkflowFormatter {
|
|
15
|
-
constructor(options = {}) {
|
|
16
|
-
this.indentSize = options.indentSize || 2;
|
|
17
|
-
this.preserveMarkdown = options.preserveMarkdown !== false;
|
|
18
|
-
this.verbose = options.verbose || false;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
/**
|
|
22
|
-
* Format a workflow markdown file
|
|
23
|
-
*/
|
|
24
|
-
format(filePath) {
|
|
25
|
-
if (this.verbose) {
|
|
26
|
-
console.log(`Formatting: ${filePath}`);
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
const content = fs.readFileSync(filePath, 'utf8');
|
|
30
|
-
const formatted = this.formatContent(content);
|
|
31
|
-
|
|
32
|
-
// Only write if content changed
|
|
33
|
-
if (content === formatted) {
|
|
34
|
-
if (this.verbose) {
|
|
35
|
-
console.log(`- No changes: ${filePath}`);
|
|
36
|
-
}
|
|
37
|
-
return false;
|
|
38
|
-
} else {
|
|
39
|
-
fs.writeFileSync(filePath, formatted, 'utf8');
|
|
40
|
-
if (this.verbose) {
|
|
41
|
-
console.log(`✓ Formatted: ${filePath}`);
|
|
42
|
-
}
|
|
43
|
-
return true;
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
/**
|
|
48
|
-
* Format content string with stateful indentation tracking
|
|
49
|
-
*/
|
|
50
|
-
formatContent(content) {
|
|
51
|
-
const lines = content.split('\n');
|
|
52
|
-
const formatted = [];
|
|
53
|
-
let indentLevel = 0;
|
|
54
|
-
let inCodeBlock = false;
|
|
55
|
-
let checkBlockDepth = 0; // Track nested check blocks
|
|
56
|
-
|
|
57
|
-
for (let i = 0; i < lines.length; i++) {
|
|
58
|
-
const line = lines[i];
|
|
59
|
-
const trimmed = line.trim();
|
|
60
|
-
|
|
61
|
-
// Track code blocks (don't format inside them)
|
|
62
|
-
if (trimmed.startsWith('```')) {
|
|
63
|
-
if (inCodeBlock) {
|
|
64
|
-
inCodeBlock = false;
|
|
65
|
-
} else {
|
|
66
|
-
inCodeBlock = true;
|
|
67
|
-
}
|
|
68
|
-
formatted.push(line);
|
|
69
|
-
continue;
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
// Don't format inside code blocks
|
|
73
|
-
if (inCodeBlock) {
|
|
74
|
-
formatted.push(line);
|
|
75
|
-
continue;
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
// Handle XML tags
|
|
79
|
-
if (this.isXMLLine(trimmed)) {
|
|
80
|
-
const result = this.formatXMLLine(trimmed, indentLevel, checkBlockDepth, i, lines);
|
|
81
|
-
formatted.push(result.line);
|
|
82
|
-
indentLevel = result.nextIndent;
|
|
83
|
-
checkBlockDepth = result.nextCheckDepth;
|
|
84
|
-
} else if (trimmed === '') {
|
|
85
|
-
// Preserve blank lines
|
|
86
|
-
formatted.push('');
|
|
87
|
-
} else {
|
|
88
|
-
// Markdown content - preserve as-is but maintain current indent if inside XML
|
|
89
|
-
formatted.push(line);
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
return formatted.join('\n');
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
/**
|
|
97
|
-
* Check if line contains XML tag
|
|
98
|
-
*/
|
|
99
|
-
isXMLLine(line) {
|
|
100
|
-
return /^<[a-zA-Z-]+(\s|>|\/)/.test(line) || /^<\/[a-zA-Z-]+>/.test(line);
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
/**
|
|
104
|
-
* Format a single XML line with context awareness
|
|
105
|
-
*/
|
|
106
|
-
formatXMLLine(line, currentIndent, checkDepth, lineIndex, allLines) {
|
|
107
|
-
const trimmed = line.trim();
|
|
108
|
-
let indent = currentIndent;
|
|
109
|
-
let nextIndent = currentIndent;
|
|
110
|
-
let nextCheckDepth = checkDepth;
|
|
111
|
-
|
|
112
|
-
// Get the tag name
|
|
113
|
-
const tagMatch = trimmed.match(/^<\/?([a-zA-Z-]+)/);
|
|
114
|
-
const tagName = tagMatch ? tagMatch[1] : '';
|
|
115
|
-
|
|
116
|
-
// Closing tag - decrease indent before this line
|
|
117
|
-
if (trimmed.startsWith('</')) {
|
|
118
|
-
indent = Math.max(0, currentIndent - 1);
|
|
119
|
-
nextIndent = indent;
|
|
120
|
-
|
|
121
|
-
// If closing a step, reset check depth
|
|
122
|
-
if (tagName === 'step' || tagName === 'workflow') {
|
|
123
|
-
nextCheckDepth = 0;
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
// Self-closing tags (opens and closes on same line)
|
|
127
|
-
// EXCEPT <check> tags which create logical blocks
|
|
128
|
-
else if (this.isSelfClosingTag(trimmed) && tagName !== 'check') {
|
|
129
|
-
// These don't change indent level
|
|
130
|
-
indent = currentIndent;
|
|
131
|
-
nextIndent = currentIndent;
|
|
132
|
-
}
|
|
133
|
-
// Opening tags
|
|
134
|
-
else if (trimmed.startsWith('<')) {
|
|
135
|
-
// Check if this is a <check> tag - these create logical blocks
|
|
136
|
-
if (tagName === 'check') {
|
|
137
|
-
indent = currentIndent;
|
|
138
|
-
// Check tags increase indent for following content
|
|
139
|
-
nextIndent = currentIndent + 1;
|
|
140
|
-
nextCheckDepth = checkDepth + 1;
|
|
141
|
-
}
|
|
142
|
-
// <action> tags inside check blocks stay at current indent
|
|
143
|
-
else if (tagName === 'action' && checkDepth > 0) {
|
|
144
|
-
indent = currentIndent;
|
|
145
|
-
nextIndent = currentIndent; // Don't increase further
|
|
146
|
-
}
|
|
147
|
-
// Other tags close check blocks and return to structural level
|
|
148
|
-
else if (checkDepth > 0) {
|
|
149
|
-
// Close all check blocks - return to base structural level
|
|
150
|
-
indent = Math.max(0, currentIndent - checkDepth);
|
|
151
|
-
nextIndent = indent + 1;
|
|
152
|
-
nextCheckDepth = 0;
|
|
153
|
-
}
|
|
154
|
-
// Regular opening tags (no check blocks active)
|
|
155
|
-
else {
|
|
156
|
-
indent = currentIndent;
|
|
157
|
-
nextIndent = currentIndent + 1;
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
|
|
161
|
-
const indentStr = ' '.repeat(indent * this.indentSize);
|
|
162
|
-
return {
|
|
163
|
-
line: indentStr + trimmed,
|
|
164
|
-
nextIndent: nextIndent,
|
|
165
|
-
nextCheckDepth: nextCheckDepth,
|
|
166
|
-
};
|
|
167
|
-
}
|
|
168
|
-
|
|
169
|
-
/**
|
|
170
|
-
* Check if tag opens and closes on same line
|
|
171
|
-
*/
|
|
172
|
-
isSelfClosingTag(line) {
|
|
173
|
-
// Self-closing with />
|
|
174
|
-
if (line.endsWith('/>')) {
|
|
175
|
-
return true;
|
|
176
|
-
}
|
|
177
|
-
// Opens and closes on same line: <tag>content</tag>
|
|
178
|
-
const match = line.match(/^<([a-zA-Z-]+)(\s[^>]*)?>.*<\/\1>$/);
|
|
179
|
-
return match !== null;
|
|
180
|
-
}
|
|
181
|
-
|
|
182
|
-
/**
|
|
183
|
-
* Check if tag is a block-level structural tag
|
|
184
|
-
*/
|
|
185
|
-
isBlockLevelTag(tagName) {
|
|
186
|
-
return ['step', 'workflow', 'check'].includes(tagName);
|
|
187
|
-
}
|
|
188
|
-
}
|
|
189
|
-
|
|
190
|
-
/**
|
|
191
|
-
* CLI Entry Point
|
|
192
|
-
*/
|
|
193
|
-
function main() {
|
|
194
|
-
const args = process.argv.slice(2);
|
|
195
|
-
|
|
196
|
-
if (args.length === 0 || args.includes('--help') || args.includes('-h')) {
|
|
197
|
-
console.log(`
|
|
198
|
-
WIZZ Workflow Markdown Formatter
|
|
199
|
-
|
|
200
|
-
Usage:
|
|
201
|
-
node format-workflow-md.js <file-pattern> [options]
|
|
202
|
-
|
|
203
|
-
Options:
|
|
204
|
-
--verbose, -v Verbose output
|
|
205
|
-
--check, -c Check formatting without writing (exit 1 if changes needed)
|
|
206
|
-
--help, -h Show this help
|
|
207
|
-
|
|
208
|
-
Examples:
|
|
209
|
-
node format-workflow-md.js src/**/instructions.md
|
|
210
|
-
node format-workflow-md.js "src/modules/bmb/**/*.md" --verbose
|
|
211
|
-
node format-workflow-md.js file.md --check
|
|
212
|
-
`);
|
|
213
|
-
process.exit(0);
|
|
214
|
-
}
|
|
215
|
-
|
|
216
|
-
const verbose = args.includes('--verbose') || args.includes('-v');
|
|
217
|
-
const check = args.includes('--check') || args.includes('-c');
|
|
218
|
-
|
|
219
|
-
// Remove flags from args
|
|
220
|
-
const files = args.filter((arg) => !arg.startsWith('-'));
|
|
221
|
-
|
|
222
|
-
const formatter = new WorkflowFormatter({ verbose });
|
|
223
|
-
let hasChanges = false;
|
|
224
|
-
let formattedCount = 0;
|
|
225
|
-
|
|
226
|
-
// Process files
|
|
227
|
-
for (const pattern of files) {
|
|
228
|
-
// For now, treat as direct file path
|
|
229
|
-
// TODO: Add glob support for patterns
|
|
230
|
-
if (fs.existsSync(pattern)) {
|
|
231
|
-
const stat = fs.statSync(pattern);
|
|
232
|
-
if (stat.isFile()) {
|
|
233
|
-
const changed = formatter.format(pattern);
|
|
234
|
-
if (changed) {
|
|
235
|
-
hasChanges = true;
|
|
236
|
-
formattedCount++;
|
|
237
|
-
}
|
|
238
|
-
} else if (stat.isDirectory()) {
|
|
239
|
-
console.error(`Error: ${pattern} is a directory. Please specify file paths.`);
|
|
240
|
-
}
|
|
241
|
-
} else {
|
|
242
|
-
console.error(`Error: File not found: ${pattern}`);
|
|
243
|
-
}
|
|
244
|
-
}
|
|
245
|
-
|
|
246
|
-
if (verbose || formattedCount > 0) {
|
|
247
|
-
console.log(`\nFormatted ${formattedCount} file(s)`);
|
|
248
|
-
}
|
|
249
|
-
|
|
250
|
-
if (check && hasChanges) {
|
|
251
|
-
console.error('\n❌ Some files need formatting. Run without --check to format.');
|
|
252
|
-
process.exit(1);
|
|
253
|
-
}
|
|
254
|
-
|
|
255
|
-
process.exit(0);
|
|
256
|
-
}
|
|
257
|
-
|
|
258
|
-
// Run if called directly
|
|
259
|
-
if (require.main === module) {
|
|
260
|
-
main();
|
|
261
|
-
}
|
|
262
|
-
|
|
263
|
-
module.exports = { WorkflowFormatter };
|
|
@@ -1,124 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Migration script to convert relative paths to absolute paths in custom module manifests
|
|
3
|
-
* This should be run once to update existing installations
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
|
-
const fs = require('./installer/fs-native');
|
|
7
|
-
const path = require('node:path');
|
|
8
|
-
const yaml = require('yaml');
|
|
9
|
-
const chalk = require('chalk');
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* Find WIZZ directory in project
|
|
13
|
-
*/
|
|
14
|
-
function findWizzDir(projectDir = process.cwd()) {
|
|
15
|
-
const possibleNames = ['_wizz'];
|
|
16
|
-
|
|
17
|
-
for (const name of possibleNames) {
|
|
18
|
-
const wizzDir = path.join(projectDir, name);
|
|
19
|
-
if (fs.existsSync(wizzDir)) {
|
|
20
|
-
return wizzDir;
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
return null;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
/**
|
|
28
|
-
* Update manifest to use absolute paths
|
|
29
|
-
*/
|
|
30
|
-
async function updateManifest(manifestPath, projectRoot) {
|
|
31
|
-
console.log(chalk.cyan(`\nUpdating manifest: ${manifestPath}`));
|
|
32
|
-
|
|
33
|
-
const content = await fs.readFile(manifestPath, 'utf8');
|
|
34
|
-
const manifest = yaml.parse(content);
|
|
35
|
-
|
|
36
|
-
if (!manifest.customModules || manifest.customModules.length === 0) {
|
|
37
|
-
console.log(chalk.dim(' No custom modules found'));
|
|
38
|
-
return false;
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
let updated = false;
|
|
42
|
-
|
|
43
|
-
for (const customModule of manifest.customModules) {
|
|
44
|
-
if (customModule.relativePath && !customModule.sourcePath) {
|
|
45
|
-
// Convert relative path to absolute
|
|
46
|
-
const absolutePath = path.resolve(projectRoot, customModule.relativePath);
|
|
47
|
-
customModule.sourcePath = absolutePath;
|
|
48
|
-
|
|
49
|
-
// Remove the old relativePath
|
|
50
|
-
delete customModule.relativePath;
|
|
51
|
-
|
|
52
|
-
console.log(chalk.green(` ✓ Updated ${customModule.id}: ${customModule.relativePath} → ${absolutePath}`));
|
|
53
|
-
updated = true;
|
|
54
|
-
} else if (customModule.sourcePath && !path.isAbsolute(customModule.sourcePath)) {
|
|
55
|
-
// Source path exists but is not absolute
|
|
56
|
-
const absolutePath = path.resolve(customModule.sourcePath);
|
|
57
|
-
customModule.sourcePath = absolutePath;
|
|
58
|
-
|
|
59
|
-
console.log(chalk.green(` ✓ Updated ${customModule.id}: ${customModule.sourcePath} → ${absolutePath}`));
|
|
60
|
-
updated = true;
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
if (updated) {
|
|
65
|
-
// Write back the updated manifest
|
|
66
|
-
const yamlStr = yaml.dump(manifest, {
|
|
67
|
-
indent: 2,
|
|
68
|
-
lineWidth: -1,
|
|
69
|
-
noRefs: true,
|
|
70
|
-
sortKeys: false,
|
|
71
|
-
});
|
|
72
|
-
|
|
73
|
-
await fs.writeFile(manifestPath, yamlStr);
|
|
74
|
-
console.log(chalk.green(' Manifest updated successfully'));
|
|
75
|
-
} else {
|
|
76
|
-
console.log(chalk.dim(' All paths already absolute'));
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
return updated;
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
/**
|
|
83
|
-
* Main migration function
|
|
84
|
-
*/
|
|
85
|
-
async function migrate(directory) {
|
|
86
|
-
const projectRoot = path.resolve(directory || process.cwd());
|
|
87
|
-
const wizzDir = findWizzDir(projectRoot);
|
|
88
|
-
|
|
89
|
-
if (!wizzDir) {
|
|
90
|
-
console.error(chalk.red('✗ No WIZZ installation found in directory'));
|
|
91
|
-
process.exit(1);
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
console.log(chalk.blue.bold('🔄 WIZZ Custom Module Path Migration'));
|
|
95
|
-
console.log(chalk.dim(`Project: ${projectRoot}`));
|
|
96
|
-
console.log(chalk.dim(`WIZZ Directory: ${wizzDir}`));
|
|
97
|
-
|
|
98
|
-
const manifestPath = path.join(wizzDir, '_config', 'manifest.yaml');
|
|
99
|
-
|
|
100
|
-
if (!fs.existsSync(manifestPath)) {
|
|
101
|
-
console.error(chalk.red('✗ No manifest.yaml found'));
|
|
102
|
-
process.exit(1);
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
const updated = await updateManifest(manifestPath, projectRoot);
|
|
106
|
-
|
|
107
|
-
if (updated) {
|
|
108
|
-
console.log(chalk.green.bold('\n✨ Migration completed successfully!'));
|
|
109
|
-
console.log(chalk.dim('Custom modules now use absolute source paths.'));
|
|
110
|
-
} else {
|
|
111
|
-
console.log(chalk.yellow('\n⚠ No migration needed - paths already absolute'));
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
// Run migration if called directly
|
|
116
|
-
if (require.main === module) {
|
|
117
|
-
const directory = process.argv[2];
|
|
118
|
-
migrate(directory).catch((error) => {
|
|
119
|
-
console.error(chalk.red('\n✗ Migration failed:'), error.message);
|
|
120
|
-
process.exit(1);
|
|
121
|
-
});
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
module.exports = { migrate };
|