wizz-method 1.0.2 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/marketplace.json +9 -9
- package/README.md +4 -4
- package/build/artifacts/llms-full.txt +218 -218
- package/build/artifacts/llms.txt +4 -4
- package/build/site/explanation/advanced-elicitation/index.html +2 -2
- package/build/site/explanation/adversarial-review/index.html +2 -2
- package/build/site/explanation/analysis-phase/index.html +2 -2
- package/build/site/explanation/brainstorming/index.html +2 -2
- package/build/site/explanation/checkpoint-preview/index.html +2 -2
- package/build/site/explanation/established-projects-faq/index.html +2 -2
- package/build/site/explanation/forensic-investigation/index.html +2 -2
- package/build/site/explanation/named-agents/index.html +6 -6
- package/build/site/explanation/party-mode/index.html +3 -3
- package/build/site/explanation/preventing-agent-conflicts/index.html +2 -2
- package/build/site/explanation/project-context/index.html +2 -2
- package/build/site/explanation/quick-dev/index.html +2 -2
- package/build/site/explanation/web-bundles/index.html +2 -2
- package/build/site/explanation/why-solutioning-matters/index.html +2 -2
- package/build/site/how-to/{customize-bmad → customize-wizz}/index.html +6 -6
- package/build/site/how-to/established-projects/index.html +2 -2
- package/build/site/how-to/{expand-bmad-for-your-org → expand-wizz-for-your-org}/index.html +7 -7
- package/build/site/how-to/{get-answers-about-bmad → get-answers-about-wizz}/index.html +3 -3
- package/build/site/how-to/install-custom-modules/index.html +3 -3
- package/build/site/how-to/{install-bmad → install-wizz}/index.html +6 -6
- package/build/site/how-to/non-interactive-installation/index.html +3 -3
- package/build/site/how-to/project-context/index.html +2 -2
- package/build/site/how-to/quick-fixes/index.html +2 -2
- package/build/site/how-to/shard-large-documents/index.html +2 -2
- package/build/site/how-to/upgrade-to-v6/index.html +8 -8
- package/build/site/how-to/use-web-bundles/index.html +2 -2
- package/build/site/index.html +3 -3
- package/build/site/llms-full.txt +218 -218
- package/build/site/llms.txt +4 -4
- package/build/site/pagefind/fragment/en_296ddb9.pf_fragment +0 -0
- package/build/site/pagefind/fragment/en_583316f.pf_fragment +0 -0
- package/build/site/pagefind/fragment/en_67825a4.pf_fragment +0 -0
- package/build/site/pagefind/fragment/{en_41cab15.pf_fragment → en_887ce56.pf_fragment} +0 -0
- package/build/site/pagefind/fragment/en_92d7cc7.pf_fragment +0 -0
- package/build/site/pagefind/fragment/{en_56b1635.pf_fragment → en_9b57d7d.pf_fragment} +0 -0
- package/build/site/pagefind/fragment/en_ba9fb37.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_cdd885c.pf_fragment +0 -0
- package/build/site/pagefind/fragment/en_d890205.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 +1 -1
- package/build/site/pagefind/pagefind.en_4e69d7f053.pf_meta +0 -0
- package/build/site/reference/agents/index.html +2 -2
- package/build/site/reference/commands/index.html +3 -3
- package/build/site/reference/core-tools/index.html +3 -3
- package/build/site/reference/modules/index.html +4 -4
- package/build/site/reference/testing/index.html +2 -2
- package/build/site/reference/workflow-map/index.html +2 -2
- package/build/site/roadmap/index.html +2 -2
- package/build/site/sitemap-0.xml +1 -1
- package/build/site/tutorials/getting-started/index.html +4 -4
- package/build/site/workflow-map-diagram-fr.html +2 -2
- package/package.json +11 -9
- package/removals.txt +46 -46
- package/skills-registry.yaml +318 -0
- package/src/bmm-skills/1-analysis/research/wizz-domain-research/customize.toml +1 -1
- package/src/bmm-skills/1-analysis/research/wizz-market-research/customize.toml +1 -1
- package/src/bmm-skills/1-analysis/research/wizz-technical-research/customize.toml +2 -1
- package/src/bmm-skills/1-analysis/wizz-agent-analyst/customize.toml +2 -2
- package/src/bmm-skills/1-analysis/wizz-agent-tech-writer/customize.toml +2 -2
- package/src/bmm-skills/1-analysis/wizz-document-project/customize.toml +1 -1
- package/src/bmm-skills/1-analysis/wizz-document-project/templates/index-template.md +1 -1
- package/src/bmm-skills/1-analysis/wizz-document-project/templates/project-overview-template.md +1 -1
- package/src/bmm-skills/1-analysis/wizz-document-project/templates/source-tree-template.md +1 -1
- package/src/bmm-skills/1-analysis/wizz-prfaq/customize.toml +1 -1
- package/src/bmm-skills/1-analysis/wizz-product-brief/SKILL.md +1 -1
- package/src/bmm-skills/1-analysis/wizz-product-brief/customize.toml +1 -1
- package/src/bmm-skills/2-plan-workflows/wizz-agent-pm/customize.toml +2 -2
- package/src/bmm-skills/2-plan-workflows/wizz-agent-ux-designer/customize.toml +2 -2
- package/src/bmm-skills/2-plan-workflows/wizz-create-prd/SKILL.md +1 -1
- package/src/bmm-skills/2-plan-workflows/wizz-create-prd/customize.toml +1 -1
- package/src/bmm-skills/2-plan-workflows/wizz-edit-prd/SKILL.md +1 -1
- package/src/bmm-skills/2-plan-workflows/wizz-edit-prd/customize.toml +1 -1
- package/src/bmm-skills/2-plan-workflows/wizz-prd/SKILL.md +3 -3
- package/src/bmm-skills/2-plan-workflows/wizz-prd/customize.toml +2 -2
- package/src/bmm-skills/2-plan-workflows/wizz-ux/SKILL.md +2 -2
- package/src/bmm-skills/2-plan-workflows/wizz-validate-prd/SKILL.md +1 -1
- package/src/bmm-skills/2-plan-workflows/wizz-validate-prd/customize.toml +1 -1
- package/src/bmm-skills/3-solutioning/wizz-agent-architect/customize.toml +2 -2
- package/src/bmm-skills/3-solutioning/wizz-architecture/SKILL.md +2 -2
- package/src/bmm-skills/3-solutioning/wizz-architecture/customize.toml +4 -2
- package/src/bmm-skills/3-solutioning/wizz-check-implementation-readiness/customize.toml +1 -1
- package/src/bmm-skills/3-solutioning/wizz-create-architecture/SKILL.md +1 -1
- package/src/bmm-skills/3-solutioning/wizz-create-architecture/customize.toml +1 -1
- package/src/bmm-skills/3-solutioning/wizz-create-epics-and-stories/customize.toml +1 -1
- package/src/bmm-skills/3-solutioning/wizz-generate-project-context/customize.toml +1 -1
- package/src/bmm-skills/4-implementation/wizz-agent-dev/customize.toml +3 -2
- package/src/bmm-skills/4-implementation/wizz-checkpoint-preview/customize.toml +1 -1
- package/src/bmm-skills/4-implementation/wizz-code-review/customize.toml +1 -1
- package/src/bmm-skills/4-implementation/wizz-correct-course/customize.toml +1 -1
- package/src/bmm-skills/4-implementation/wizz-create-story/SKILL.md +2 -2
- package/src/bmm-skills/4-implementation/wizz-create-story/customize.toml +1 -1
- package/src/bmm-skills/4-implementation/wizz-dev-story/SKILL.md +1 -1
- package/src/bmm-skills/4-implementation/wizz-dev-story/customize.toml +1 -1
- package/src/bmm-skills/4-implementation/wizz-investigate/customize.toml +1 -1
- package/src/bmm-skills/4-implementation/wizz-qa-generate-e2e-tests/customize.toml +1 -1
- package/src/bmm-skills/4-implementation/wizz-quick-dev/SKILL.md +7 -0
- package/src/bmm-skills/4-implementation/wizz-quick-dev/customize.toml +1 -1
- package/src/bmm-skills/4-implementation/wizz-quick-dev/step-01-clarify-and-route.md +1 -1
- package/src/bmm-skills/4-implementation/wizz-retrospective/customize.toml +1 -1
- package/src/bmm-skills/4-implementation/wizz-sprint-planning/customize.toml +1 -1
- package/src/bmm-skills/4-implementation/wizz-sprint-status/SKILL.md +5 -5
- package/src/bmm-skills/4-implementation/wizz-sprint-status/customize.toml +1 -1
- package/src/bmm-skills/module-help.csv +32 -32
- package/src/bmm-skills/module.yaml +1 -1
- package/src/core-skills/module-help.csv +3 -3
- package/src/core-skills/module.yaml +4 -4
- package/src/core-skills/wizz-brainstorming/SKILL.md +1 -1
- package/src/core-skills/wizz-brainstorming/analysis/catalog-analysis.md +4 -4
- package/src/core-skills/wizz-brainstorming/assets/brain-selector.html +5 -5
- package/src/core-skills/wizz-brainstorming/customize.toml +1 -1
- package/src/core-skills/wizz-brainstorming/references/finalize.md +1 -1
- package/src/core-skills/wizz-brainstorming/scripts/brain.py +5 -5
- package/src/core-skills/wizz-brainstorming/scripts/tests/test_brain.py +1 -1
- package/src/core-skills/wizz-brainstorming/scripts/tests/test_memlog.py +3 -3
- package/src/core-skills/wizz-customize/SKILL.md +6 -6
- package/src/core-skills/wizz-customize/scripts/list_customizable_skills.py +3 -3
- package/src/core-skills/wizz-customize/scripts/tests/test_list_customizable_skills.py +13 -13
- package/src/core-skills/wizz-editorial-review-prose/SKILL.md +20 -45
- package/src/core-skills/wizz-editorial-review-structure/SKILL.md +1 -1
- package/src/core-skills/wizz-help/SKILL.md +3 -3
- package/src/core-skills/wizz-party-mode/SKILL.md +5 -3
- package/src/core-skills/wizz-party-mode/customize.toml +896 -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 +2 -2
- package/src/core-skills/wizz-party-mode/scripts/tests/test-resolve_party.py +1 -1
- package/src/core-skills/wizz-review-adversarial-general/SKILL.md +23 -12
- package/src/core-skills/wizz-spec/SKILL.md +3 -3
- package/src/core-skills/wizz-spec/customize.toml +2 -2
- package/src/modules/wizz/README.md +5 -5
- package/src/modules/wizz/agents/wizz-ads/SKILL.md +1 -1
- package/src/modules/wizz/agents/wizz-copy/SKILL.md +1 -1
- package/src/modules/wizz/agents/wizz-designer/SKILL.md +1 -1
- package/src/modules/wizz/agents/wizz-growth/SKILL.md +1 -1
- package/src/modules/wizz/agents/wizz-maestro/SKILL.md +48 -24
- package/src/modules/wizz/agents/wizz-memoria/SKILL.md +1 -1
- package/src/modules/wizz/agents/wizz-qa/SKILL.md +1 -1
- package/src/modules/wizz/agents/wizz-seo/SKILL.md +1 -1
- package/src/modules/wizz/overrides/{bmad-agent-analyst.toml → wizz-agent-analyst.toml} +1 -1
- package/src/modules/wizz/overrides/{bmad-agent-architect.toml → wizz-agent-architect.toml} +1 -1
- package/src/modules/wizz/overrides/{bmad-agent-dev.toml → wizz-agent-dev.toml} +1 -1
- package/src/modules/wizz/overrides/{bmad-agent-pm.toml → wizz-agent-pm.toml} +1 -1
- package/src/modules/wizz/overrides/{bmad-agent-tech-writer.toml → wizz-agent-tech-writer.toml} +1 -1
- package/src/modules/wizz/overrides/{bmad-agent-ux-designer.toml → wizz-agent-ux-designer.toml} +1 -1
- package/src/modules/wizz/scripts/wizz-init.mjs +7 -7
- package/src/scripts/resolve_config.py +7 -7
- package/src/scripts/resolve_customization.py +2 -2
- package/src/scripts/tests/test_memlog.py +1 -1
- package/src/skills-lib/ab-test-setup/SKILL.md +266 -0
- package/src/skills-lib/ab-test-setup/evals/evals.json +105 -0
- package/src/skills-lib/ab-test-setup/references/sample-size-guide.md +263 -0
- package/src/skills-lib/ab-test-setup/references/test-templates.md +277 -0
- package/src/skills-lib/ad-creative/SKILL.md +362 -0
- package/src/skills-lib/ad-creative/evals/evals.json +90 -0
- package/src/skills-lib/ad-creative/references/generative-tools.md +637 -0
- package/src/skills-lib/ad-creative/references/platform-specs.md +213 -0
- package/src/skills-lib/adversarial-reviewer/SKILL.md +122 -0
- package/src/skills-lib/agent-browser/SKILL.md +139 -0
- package/src/skills-lib/ai-seo/SKILL.md +398 -0
- package/src/skills-lib/ai-seo/evals/evals.json +90 -0
- package/src/skills-lib/ai-seo/references/content-patterns.md +285 -0
- package/src/skills-lib/ai-seo/references/platform-ranking-factors.md +152 -0
- package/src/skills-lib/analytics-tracking/SKILL.md +309 -0
- package/src/skills-lib/analytics-tracking/evals/evals.json +90 -0
- package/src/skills-lib/analytics-tracking/references/event-library.md +260 -0
- package/src/skills-lib/analytics-tracking/references/ga4-implementation.md +300 -0
- package/src/skills-lib/analytics-tracking/references/gtm-implementation.md +390 -0
- package/src/skills-lib/auth-and-secrets/SKILL.md +82 -0
- package/src/skills-lib/caching-and-queues/SKILL.md +58 -0
- package/src/skills-lib/cerebro/SKILL.md +368 -0
- package/src/skills-lib/churn-prevention/SKILL.md +424 -0
- package/src/skills-lib/churn-prevention/evals/evals.json +93 -0
- package/src/skills-lib/churn-prevention/references/cancel-flow-patterns.md +316 -0
- package/src/skills-lib/churn-prevention/references/dunning-playbook.md +408 -0
- package/src/skills-lib/cloud-and-infra/SKILL.md +36 -0
- package/src/skills-lib/cold-email/SKILL.md +158 -0
- package/src/skills-lib/cold-email/evals/evals.json +94 -0
- package/src/skills-lib/cold-email/references/benchmarks.md +83 -0
- package/src/skills-lib/cold-email/references/follow-up-sequences.md +81 -0
- package/src/skills-lib/cold-email/references/frameworks.md +90 -0
- package/src/skills-lib/cold-email/references/personalization.md +79 -0
- package/src/skills-lib/cold-email/references/subject-lines.md +53 -0
- package/src/skills-lib/competitor-alternatives/SKILL.md +256 -0
- package/src/skills-lib/competitor-alternatives/evals/evals.json +93 -0
- package/src/skills-lib/competitor-alternatives/references/content-architecture.md +271 -0
- package/src/skills-lib/competitor-alternatives/references/templates.md +223 -0
- package/src/skills-lib/content-strategy/SKILL.md +359 -0
- package/src/skills-lib/content-strategy/evals/evals.json +90 -0
- package/src/skills-lib/copy-editing/SKILL.md +447 -0
- package/src/skills-lib/copy-editing/evals/evals.json +89 -0
- package/src/skills-lib/copy-editing/references/plain-english-alternatives.md +394 -0
- package/src/skills-lib/copywriting/SKILL.md +252 -0
- package/src/skills-lib/copywriting/evals/evals.json +111 -0
- package/src/skills-lib/copywriting/references/copy-frameworks.md +344 -0
- package/src/skills-lib/copywriting/references/natural-transitions.md +272 -0
- package/src/skills-lib/database-and-deps/SKILL.md +80 -0
- package/src/skills-lib/database-scaling/SKILL.md +44 -0
- package/src/skills-lib/decision-maker/SKILL.md +534 -0
- package/src/skills-lib/desktop-security/SKILL.md +43 -0
- package/src/skills-lib/email-sequence/SKILL.md +309 -0
- package/src/skills-lib/email-sequence/evals/evals.json +93 -0
- package/src/skills-lib/email-sequence/references/copy-guidelines.md +113 -0
- package/src/skills-lib/email-sequence/references/email-types.md +515 -0
- package/src/skills-lib/email-sequence/references/sequence-templates.md +168 -0
- package/src/skills-lib/enhance-prompt/README.md +34 -0
- package/src/skills-lib/enhance-prompt/SKILL.md +204 -0
- package/src/skills-lib/enhance-prompt/references/KEYWORDS.md +114 -0
- package/src/skills-lib/find-skills/SKILL.md +181 -0
- package/src/skills-lib/form-cro/SKILL.md +429 -0
- package/src/skills-lib/form-cro/evals/evals.json +90 -0
- package/src/skills-lib/free-tool-strategy/SKILL.md +178 -0
- package/src/skills-lib/free-tool-strategy/evals/evals.json +90 -0
- package/src/skills-lib/free-tool-strategy/references/tool-types.md +217 -0
- package/src/skills-lib/graphify/.graphify_version +1 -0
- package/src/skills-lib/graphify/SKILL.md +1217 -0
- package/src/skills-lib/huashu-design/LICENSE +21 -0
- package/src/skills-lib/huashu-design/README.en.md +309 -0
- package/src/skills-lib/huashu-design/README.md +348 -0
- package/src/skills-lib/huashu-design/SKILL.md +631 -0
- package/src/skills-lib/huashu-design/assets/android_frame.jsx +175 -0
- package/src/skills-lib/huashu-design/assets/animations.jsx +348 -0
- package/src/skills-lib/huashu-design/assets/banner.svg +198 -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/browser_window.jsx +166 -0
- package/src/skills-lib/huashu-design/assets/deck_index.html +348 -0
- package/src/skills-lib/huashu-design/assets/deck_stage.js +420 -0
- package/src/skills-lib/huashu-design/assets/design_canvas.jsx +205 -0
- package/src/skills-lib/huashu-design/assets/director-notes-samples/launch-film-30s-sample.md +1713 -0
- package/src/skills-lib/huashu-design/assets/ios_frame.jsx +192 -0
- package/src/skills-lib/huashu-design/assets/macos_window.jsx +96 -0
- package/src/skills-lib/huashu-design/assets/narration_stage.jsx +476 -0
- package/src/skills-lib/huashu-design/assets/personal-asset-index.example.json +71 -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/huashu-design/assets/showcases/INDEX.md +115 -0
- package/src/skills-lib/huashu-design/assets/showcases/cover/cover-build.html +235 -0
- package/src/skills-lib/huashu-design/assets/showcases/cover/cover-build.png +0 -0
- package/src/skills-lib/huashu-design/assets/showcases/cover/cover-pentagram.html +229 -0
- package/src/skills-lib/huashu-design/assets/showcases/cover/cover-pentagram.png +0 -0
- package/src/skills-lib/huashu-design/assets/showcases/cover/cover-takram.html +288 -0
- package/src/skills-lib/huashu-design/assets/showcases/cover/cover-takram.png +0 -0
- package/src/skills-lib/huashu-design/assets/showcases/infographic/infographic-build.html +503 -0
- package/src/skills-lib/huashu-design/assets/showcases/infographic/infographic-build.png +0 -0
- package/src/skills-lib/huashu-design/assets/showcases/infographic/infographic-pentagram.html +600 -0
- package/src/skills-lib/huashu-design/assets/showcases/infographic/infographic-pentagram.png +0 -0
- package/src/skills-lib/huashu-design/assets/showcases/infographic/infographic-takram.html +670 -0
- package/src/skills-lib/huashu-design/assets/showcases/infographic/infographic-takram.png +0 -0
- package/src/skills-lib/huashu-design/assets/showcases/ppt/ppt-build.html +382 -0
- package/src/skills-lib/huashu-design/assets/showcases/ppt/ppt-build.png +0 -0
- package/src/skills-lib/huashu-design/assets/showcases/ppt/ppt-pentagram.html +536 -0
- package/src/skills-lib/huashu-design/assets/showcases/ppt/ppt-pentagram.png +0 -0
- package/src/skills-lib/huashu-design/assets/showcases/ppt/ppt-takram.html +497 -0
- package/src/skills-lib/huashu-design/assets/showcases/ppt/ppt-takram.png +0 -0
- package/src/skills-lib/huashu-design/assets/showcases/website-ai-nav/ainav-build.html +385 -0
- package/src/skills-lib/huashu-design/assets/showcases/website-ai-nav/ainav-build.png +0 -0
- package/src/skills-lib/huashu-design/assets/showcases/website-ai-nav/ainav-pentagram.html +422 -0
- package/src/skills-lib/huashu-design/assets/showcases/website-ai-nav/ainav-pentagram.png +0 -0
- package/src/skills-lib/huashu-design/assets/showcases/website-ai-nav/ainav-takram.html +499 -0
- package/src/skills-lib/huashu-design/assets/showcases/website-ai-nav/ainav-takram.png +0 -0
- package/src/skills-lib/huashu-design/assets/showcases/website-ai-writing/aiwriting-build.html +562 -0
- package/src/skills-lib/huashu-design/assets/showcases/website-ai-writing/aiwriting-build.png +0 -0
- package/src/skills-lib/huashu-design/assets/showcases/website-ai-writing/aiwriting-pentagram.html +548 -0
- package/src/skills-lib/huashu-design/assets/showcases/website-ai-writing/aiwriting-pentagram.png +0 -0
- package/src/skills-lib/huashu-design/assets/showcases/website-ai-writing/aiwriting-takram.html +696 -0
- package/src/skills-lib/huashu-design/assets/showcases/website-ai-writing/aiwriting-takram.png +0 -0
- package/src/skills-lib/huashu-design/assets/showcases/website-devdocs/devdocs-build.html +372 -0
- package/src/skills-lib/huashu-design/assets/showcases/website-devdocs/devdocs-build.png +0 -0
- package/src/skills-lib/huashu-design/assets/showcases/website-devdocs/devdocs-pentagram.html +460 -0
- package/src/skills-lib/huashu-design/assets/showcases/website-devdocs/devdocs-pentagram.png +0 -0
- package/src/skills-lib/huashu-design/assets/showcases/website-devdocs/devdocs-takram.html +494 -0
- package/src/skills-lib/huashu-design/assets/showcases/website-devdocs/devdocs-takram.png +0 -0
- package/src/skills-lib/huashu-design/assets/showcases/website-homepage/homepage-build.html +367 -0
- package/src/skills-lib/huashu-design/assets/showcases/website-homepage/homepage-build.png +0 -0
- package/src/skills-lib/huashu-design/assets/showcases/website-homepage/homepage-pentagram.html +368 -0
- package/src/skills-lib/huashu-design/assets/showcases/website-homepage/homepage-pentagram.png +0 -0
- package/src/skills-lib/huashu-design/assets/showcases/website-homepage/homepage-takram.html +459 -0
- package/src/skills-lib/huashu-design/assets/showcases/website-homepage/homepage-takram.png +0 -0
- package/src/skills-lib/huashu-design/assets/showcases/website-saas/saas-build.html +493 -0
- package/src/skills-lib/huashu-design/assets/showcases/website-saas/saas-build.png +0 -0
- package/src/skills-lib/huashu-design/assets/showcases/website-saas/saas-pentagram.html +556 -0
- package/src/skills-lib/huashu-design/assets/showcases/website-saas/saas-pentagram.png +0 -0
- package/src/skills-lib/huashu-design/assets/showcases/website-saas/saas-takram.html +604 -0
- package/src/skills-lib/huashu-design/assets/showcases/website-saas/saas-takram.png +0 -0
- package/src/skills-lib/huashu-design/demos/c1-ios-prototype-en.html +1145 -0
- package/src/skills-lib/huashu-design/demos/c1-ios-prototype.html +1142 -0
- package/src/skills-lib/huashu-design/demos/c2-slides-pptx-en.html +1055 -0
- package/src/skills-lib/huashu-design/demos/c2-slides-pptx.html +1055 -0
- package/src/skills-lib/huashu-design/demos/c3-motion-design-en.html +1134 -0
- package/src/skills-lib/huashu-design/demos/c3-motion-design.html +1134 -0
- package/src/skills-lib/huashu-design/demos/c4-tweaks-en.html +989 -0
- package/src/skills-lib/huashu-design/demos/c4-tweaks.html +989 -0
- package/src/skills-lib/huashu-design/demos/c5-infographic-en.html +816 -0
- package/src/skills-lib/huashu-design/demos/c5-infographic.html +813 -0
- package/src/skills-lib/huashu-design/demos/c6-expert-review-en.html +885 -0
- package/src/skills-lib/huashu-design/demos/c6-expert-review.html +894 -0
- package/src/skills-lib/huashu-design/demos/hero-animation-v10-en.html +1498 -0
- package/src/skills-lib/huashu-design/demos/md-html-narration/md-html-demo.html +615 -0
- package/src/skills-lib/huashu-design/demos/md-html-narration/script.md +69 -0
- package/src/skills-lib/huashu-design/demos/voiceover-demo/script.md +17 -0
- package/src/skills-lib/huashu-design/demos/voiceover-demo//344/273/200/344/271/210/346/230/257token.html +201 -0
- package/src/skills-lib/huashu-design/demos/w1-brand-protocol-en.html +684 -0
- package/src/skills-lib/huashu-design/demos/w1-brand-protocol.html +696 -0
- package/src/skills-lib/huashu-design/demos/w2-junior-designer-en.html +983 -0
- package/src/skills-lib/huashu-design/demos/w2-junior-designer.html +994 -0
- package/src/skills-lib/huashu-design/demos/w3-fallback-advisor-en.html +647 -0
- package/src/skills-lib/huashu-design/demos/w3-fallback-advisor.html +704 -0
- package/src/skills-lib/huashu-design/package-lock.json +846 -0
- package/src/skills-lib/huashu-design/package.json +8 -0
- package/src/skills-lib/huashu-design/references/animation-best-practices.md +506 -0
- package/src/skills-lib/huashu-design/references/animation-pitfalls.md +402 -0
- package/src/skills-lib/huashu-design/references/animations.md +249 -0
- package/src/skills-lib/huashu-design/references/apple-gallery-showcase.md +338 -0
- package/src/skills-lib/huashu-design/references/audio-design-rules.md +260 -0
- package/src/skills-lib/huashu-design/references/brand-asset-protocol.md +250 -0
- package/src/skills-lib/huashu-design/references/cinematic-patterns.md +264 -0
- package/src/skills-lib/huashu-design/references/content-guidelines.md +260 -0
- package/src/skills-lib/huashu-design/references/critique-guide.md +199 -0
- package/src/skills-lib/huashu-design/references/design-context.md +213 -0
- package/src/skills-lib/huashu-design/references/design-styles.md +370 -0
- package/src/skills-lib/huashu-design/references/editable-pptx.md +334 -0
- package/src/skills-lib/huashu-design/references/hero-animation-case-study.md +250 -0
- package/src/skills-lib/huashu-design/references/launch-film-director-notes.md +293 -0
- package/src/skills-lib/huashu-design/references/multi-perspective-parallel-case-study.md +267 -0
- package/src/skills-lib/huashu-design/references/react-setup.md +276 -0
- package/src/skills-lib/huashu-design/references/scene-templates.md +262 -0
- package/src/skills-lib/huashu-design/references/sfx-library.md +226 -0
- package/src/skills-lib/huashu-design/references/slide-decks.md +745 -0
- package/src/skills-lib/huashu-design/references/tweaks-system.md +313 -0
- package/src/skills-lib/huashu-design/references/verification.md +183 -0
- package/src/skills-lib/huashu-design/references/video-export.md +232 -0
- package/src/skills-lib/huashu-design/references/voiceover-pipeline.md +397 -0
- package/src/skills-lib/huashu-design/references/workflow.md +216 -0
- package/src/skills-lib/huashu-design/scripts/add-music.sh +108 -0
- package/src/skills-lib/huashu-design/scripts/convert-formats.sh +83 -0
- package/src/skills-lib/huashu-design/scripts/export_deck_pdf.mjs +98 -0
- package/src/skills-lib/huashu-design/scripts/export_deck_pptx.mjs +107 -0
- package/src/skills-lib/huashu-design/scripts/export_deck_stage_pdf.mjs +130 -0
- package/src/skills-lib/huashu-design/scripts/fetch_images.py +94 -0
- package/src/skills-lib/huashu-design/scripts/gen_deck_thumbs.mjs +55 -0
- package/src/skills-lib/huashu-design/scripts/html2pptx.js +1178 -0
- package/src/skills-lib/huashu-design/scripts/mix-voiceover.sh +127 -0
- package/src/skills-lib/huashu-design/scripts/narrate-pipeline.mjs +315 -0
- package/src/skills-lib/huashu-design/scripts/render-narration.sh +151 -0
- package/src/skills-lib/huashu-design/scripts/render-video-seek.js +238 -0
- package/src/skills-lib/huashu-design/scripts/render-video.js +289 -0
- package/src/skills-lib/huashu-design/scripts/tts-doubao.mjs +184 -0
- package/src/skills-lib/huashu-design/scripts/verify.py +154 -0
- package/src/skills-lib/huashu-design/test-prompts.json +38 -0
- package/src/skills-lib/humanizer/LICENSE +21 -0
- package/src/skills-lib/humanizer/README.md +145 -0
- package/src/skills-lib/humanizer/SKILL.md +474 -0
- package/src/skills-lib/humanizer/WARP.md +53 -0
- package/src/skills-lib/impeccable/SKILL.md +186 -0
- package/src/skills-lib/implementation-planner/SKILL.md +630 -0
- package/src/skills-lib/infrastructure/SKILL.md +34 -0
- package/src/skills-lib/inicio-de-projeto/SKILL.md +313 -0
- package/src/skills-lib/launch-strategy/SKILL.md +353 -0
- package/src/skills-lib/launch-strategy/evals/evals.json +91 -0
- package/src/skills-lib/marketing-ideas/SKILL.md +167 -0
- package/src/skills-lib/marketing-ideas/evals/evals.json +90 -0
- package/src/skills-lib/marketing-ideas/references/ideas-by-category.md +366 -0
- package/src/skills-lib/marketing-psychology/SKILL.md +455 -0
- package/src/skills-lib/marketing-psychology/evals/evals.json +88 -0
- package/src/skills-lib/motion-3d-director/SKILL.md +485 -0
- package/src/skills-lib/onboarding-cro/SKILL.md +220 -0
- package/src/skills-lib/onboarding-cro/evals/evals.json +92 -0
- package/src/skills-lib/onboarding-cro/references/experiments.md +258 -0
- package/src/skills-lib/page-cro/SKILL.md +182 -0
- package/src/skills-lib/page-cro/evals/evals.json +111 -0
- package/src/skills-lib/page-cro/references/experiments.md +248 -0
- package/src/skills-lib/paid-ads/SKILL.md +315 -0
- package/src/skills-lib/paid-ads/evals/evals.json +90 -0
- package/src/skills-lib/paid-ads/references/ad-copy-templates.md +207 -0
- package/src/skills-lib/paid-ads/references/audience-targeting.md +243 -0
- package/src/skills-lib/paid-ads/references/platform-setup-checklists.md +277 -0
- package/src/skills-lib/paywall-upgrade-cro/SKILL.md +227 -0
- package/src/skills-lib/paywall-upgrade-cro/evals/evals.json +93 -0
- package/src/skills-lib/paywall-upgrade-cro/references/experiments.md +164 -0
- package/src/skills-lib/popup-cro/SKILL.md +453 -0
- package/src/skills-lib/popup-cro/evals/evals.json +94 -0
- package/src/skills-lib/premium-landing-ui-researcher/SKILL.md +2090 -0
- package/src/skills-lib/pricing-strategy/SKILL.md +231 -0
- package/src/skills-lib/pricing-strategy/evals/evals.json +90 -0
- package/src/skills-lib/pricing-strategy/references/research-methods.md +152 -0
- package/src/skills-lib/pricing-strategy/references/tier-structure.md +232 -0
- package/src/skills-lib/product-marketing-context/SKILL.md +241 -0
- package/src/skills-lib/product-marketing-context/evals/evals.json +85 -0
- package/src/skills-lib/programmatic-seo/SKILL.md +238 -0
- package/src/skills-lib/programmatic-seo/evals/evals.json +94 -0
- package/src/skills-lib/programmatic-seo/references/playbooks.md +308 -0
- package/src/skills-lib/react-components/README.md +36 -0
- package/src/skills-lib/react-components/SKILL.md +51 -0
- package/src/skills-lib/react-components/examples/gold-standard-card.tsx +80 -0
- package/src/skills-lib/react-components/package-lock.json +231 -0
- package/src/skills-lib/react-components/package.json +16 -0
- package/src/skills-lib/react-components/resources/architecture-checklist.md +15 -0
- package/src/skills-lib/react-components/resources/component-template.tsx +37 -0
- package/src/skills-lib/react-components/resources/stitch-api-reference.md +14 -0
- package/src/skills-lib/react-components/resources/style-guide.json +27 -0
- package/src/skills-lib/react-components/scripts/fetch-stitch.sh +30 -0
- package/src/skills-lib/react-components/scripts/validate.js +70 -0
- package/src/skills-lib/references/premium-agency-rules.md +79 -0
- package/src/skills-lib/referral-program/SKILL.md +255 -0
- package/src/skills-lib/referral-program/evals/evals.json +89 -0
- package/src/skills-lib/referral-program/references/affiliate-programs.md +164 -0
- package/src/skills-lib/referral-program/references/program-examples.md +143 -0
- package/src/skills-lib/remotion-best-practices/SKILL.md +61 -0
- package/src/skills-lib/remotion-best-practices/rules/3d.md +86 -0
- package/src/skills-lib/remotion-best-practices/rules/animations.md +27 -0
- package/src/skills-lib/remotion-best-practices/rules/assets/charts-bar-chart.tsx +173 -0
- package/src/skills-lib/remotion-best-practices/rules/assets/text-animations-typewriter.tsx +100 -0
- package/src/skills-lib/remotion-best-practices/rules/assets/text-animations-word-highlight.tsx +103 -0
- package/src/skills-lib/remotion-best-practices/rules/assets.md +78 -0
- package/src/skills-lib/remotion-best-practices/rules/audio-visualization.md +198 -0
- package/src/skills-lib/remotion-best-practices/rules/audio.md +169 -0
- package/src/skills-lib/remotion-best-practices/rules/calculate-metadata.md +134 -0
- package/src/skills-lib/remotion-best-practices/rules/can-decode.md +75 -0
- package/src/skills-lib/remotion-best-practices/rules/charts.md +120 -0
- package/src/skills-lib/remotion-best-practices/rules/compositions.md +154 -0
- package/src/skills-lib/remotion-best-practices/rules/display-captions.md +184 -0
- package/src/skills-lib/remotion-best-practices/rules/extract-frames.md +229 -0
- package/src/skills-lib/remotion-best-practices/rules/ffmpeg.md +38 -0
- package/src/skills-lib/remotion-best-practices/rules/fonts.md +152 -0
- package/src/skills-lib/remotion-best-practices/rules/get-audio-duration.md +58 -0
- package/src/skills-lib/remotion-best-practices/rules/get-video-dimensions.md +68 -0
- package/src/skills-lib/remotion-best-practices/rules/get-video-duration.md +60 -0
- package/src/skills-lib/remotion-best-practices/rules/gifs.md +141 -0
- package/src/skills-lib/remotion-best-practices/rules/images.md +134 -0
- package/src/skills-lib/remotion-best-practices/rules/import-srt-captions.md +69 -0
- package/src/skills-lib/remotion-best-practices/rules/light-leaks.md +73 -0
- package/src/skills-lib/remotion-best-practices/rules/lottie.md +70 -0
- package/src/skills-lib/remotion-best-practices/rules/maps.md +412 -0
- package/src/skills-lib/remotion-best-practices/rules/measuring-dom-nodes.md +34 -0
- package/src/skills-lib/remotion-best-practices/rules/measuring-text.md +140 -0
- package/src/skills-lib/remotion-best-practices/rules/parameters.md +109 -0
- package/src/skills-lib/remotion-best-practices/rules/sequencing.md +118 -0
- package/src/skills-lib/remotion-best-practices/rules/sfx.md +26 -0
- package/src/skills-lib/remotion-best-practices/rules/subtitles.md +36 -0
- package/src/skills-lib/remotion-best-practices/rules/tailwind.md +11 -0
- package/src/skills-lib/remotion-best-practices/rules/text-animations.md +20 -0
- package/src/skills-lib/remotion-best-practices/rules/timing.md +179 -0
- package/src/skills-lib/remotion-best-practices/rules/transcribe-captions.md +70 -0
- package/src/skills-lib/remotion-best-practices/rules/transitions.md +197 -0
- package/src/skills-lib/remotion-best-practices/rules/transparent-videos.md +106 -0
- package/src/skills-lib/remotion-best-practices/rules/trimming.md +51 -0
- package/src/skills-lib/remotion-best-practices/rules/videos.md +171 -0
- package/src/skills-lib/remotion-best-practices/rules/voiceover.md +99 -0
- package/src/skills-lib/revops/SKILL.md +343 -0
- package/src/skills-lib/revops/evals/evals.json +91 -0
- package/src/skills-lib/revops/references/automation-playbooks.md +290 -0
- package/src/skills-lib/revops/references/lifecycle-definitions.md +278 -0
- package/src/skills-lib/revops/references/routing-rules.md +203 -0
- package/src/skills-lib/revops/references/scoring-models.md +247 -0
- package/src/skills-lib/sales-enablement/SKILL.md +349 -0
- package/src/skills-lib/sales-enablement/evals/evals.json +91 -0
- package/src/skills-lib/sales-enablement/references/deck-frameworks.md +263 -0
- package/src/skills-lib/sales-enablement/references/demo-scripts.md +355 -0
- package/src/skills-lib/sales-enablement/references/objection-library.md +270 -0
- package/src/skills-lib/sales-enablement/references/one-pager-templates.md +208 -0
- package/src/skills-lib/schema-markup/SKILL.md +179 -0
- package/src/skills-lib/schema-markup/evals/evals.json +87 -0
- package/src/skills-lib/schema-markup/references/schema-examples.md +398 -0
- package/src/skills-lib/seo-audit/SKILL.md +412 -0
- package/src/skills-lib/seo-audit/evals/evals.json +136 -0
- package/src/skills-lib/seo-audit/references/ai-writing-detection.md +200 -0
- package/src/skills-lib/signup-flow-cro/SKILL.md +359 -0
- package/src/skills-lib/signup-flow-cro/evals/evals.json +88 -0
- package/src/skills-lib/site-architecture/SKILL.md +357 -0
- package/src/skills-lib/site-architecture/evals/evals.json +88 -0
- package/src/skills-lib/site-architecture/references/mermaid-templates.md +216 -0
- package/src/skills-lib/site-architecture/references/navigation-patterns.md +305 -0
- package/src/skills-lib/site-architecture/references/site-type-templates.md +293 -0
- package/src/skills-lib/social-content/SKILL.md +278 -0
- package/src/skills-lib/social-content/evals/evals.json +92 -0
- package/src/skills-lib/social-content/references/platforms.md +170 -0
- package/src/skills-lib/social-content/references/post-templates.md +177 -0
- package/src/skills-lib/social-content/references/reverse-engineering.md +195 -0
- package/src/skills-lib/supabase-postgres-best-practices/AGENTS.md +68 -0
- package/src/skills-lib/supabase-postgres-best-practices/CLAUDE.md +68 -0
- package/src/skills-lib/supabase-postgres-best-practices/README.md +116 -0
- package/src/skills-lib/supabase-postgres-best-practices/SKILL.md +64 -0
- package/src/skills-lib/supabase-postgres-best-practices/references/_contributing.md +171 -0
- package/src/skills-lib/supabase-postgres-best-practices/references/_sections.md +39 -0
- package/src/skills-lib/supabase-postgres-best-practices/references/_template.md +34 -0
- package/src/skills-lib/supabase-postgres-best-practices/references/advanced-full-text-search.md +55 -0
- package/src/skills-lib/supabase-postgres-best-practices/references/advanced-jsonb-indexing.md +49 -0
- package/src/skills-lib/supabase-postgres-best-practices/references/conn-idle-timeout.md +46 -0
- package/src/skills-lib/supabase-postgres-best-practices/references/conn-limits.md +44 -0
- package/src/skills-lib/supabase-postgres-best-practices/references/conn-pooling.md +41 -0
- package/src/skills-lib/supabase-postgres-best-practices/references/conn-prepared-statements.md +46 -0
- package/src/skills-lib/supabase-postgres-best-practices/references/data-batch-inserts.md +54 -0
- package/src/skills-lib/supabase-postgres-best-practices/references/data-n-plus-one.md +53 -0
- package/src/skills-lib/supabase-postgres-best-practices/references/data-pagination.md +50 -0
- package/src/skills-lib/supabase-postgres-best-practices/references/data-upsert.md +50 -0
- package/src/skills-lib/supabase-postgres-best-practices/references/lock-advisory.md +56 -0
- package/src/skills-lib/supabase-postgres-best-practices/references/lock-deadlock-prevention.md +68 -0
- package/src/skills-lib/supabase-postgres-best-practices/references/lock-short-transactions.md +50 -0
- package/src/skills-lib/supabase-postgres-best-practices/references/lock-skip-locked.md +54 -0
- package/src/skills-lib/supabase-postgres-best-practices/references/monitor-explain-analyze.md +45 -0
- package/src/skills-lib/supabase-postgres-best-practices/references/monitor-pg-stat-statements.md +55 -0
- package/src/skills-lib/supabase-postgres-best-practices/references/monitor-vacuum-analyze.md +55 -0
- package/src/skills-lib/supabase-postgres-best-practices/references/query-composite-indexes.md +44 -0
- package/src/skills-lib/supabase-postgres-best-practices/references/query-covering-indexes.md +40 -0
- package/src/skills-lib/supabase-postgres-best-practices/references/query-index-types.md +48 -0
- package/src/skills-lib/supabase-postgres-best-practices/references/query-missing-indexes.md +43 -0
- package/src/skills-lib/supabase-postgres-best-practices/references/query-partial-indexes.md +45 -0
- package/src/skills-lib/supabase-postgres-best-practices/references/schema-constraints.md +80 -0
- package/src/skills-lib/supabase-postgres-best-practices/references/schema-data-types.md +46 -0
- package/src/skills-lib/supabase-postgres-best-practices/references/schema-foreign-key-indexes.md +59 -0
- package/src/skills-lib/supabase-postgres-best-practices/references/schema-lowercase-identifiers.md +55 -0
- package/src/skills-lib/supabase-postgres-best-practices/references/schema-partitioning.md +55 -0
- package/src/skills-lib/supabase-postgres-best-practices/references/schema-primary-keys.md +61 -0
- package/src/skills-lib/supabase-postgres-best-practices/references/security-privileges.md +54 -0
- package/src/skills-lib/supabase-postgres-best-practices/references/security-rls-basics.md +50 -0
- package/src/skills-lib/supabase-postgres-best-practices/references/security-rls-performance.md +57 -0
- package/src/skills-lib/taste-redesign/SKILL.md +178 -0
- package/src/skills-lib/taste-skill/SKILL.md +1206 -0
- package/src/skills-lib/ui-component-curator/SKILL.md +102 -0
- package/src/skills-lib/ui-ux-pro-max/SKILL.md +377 -0
- package/src/skills-lib/ui-ux-pro-max/data/charts.csv +26 -0
- package/src/skills-lib/ui-ux-pro-max/data/colors.csv +97 -0
- package/src/skills-lib/ui-ux-pro-max/data/icons.csv +101 -0
- package/src/skills-lib/ui-ux-pro-max/data/landing.csv +31 -0
- package/src/skills-lib/ui-ux-pro-max/data/products.csv +97 -0
- package/src/skills-lib/ui-ux-pro-max/data/react-performance.csv +45 -0
- package/src/skills-lib/ui-ux-pro-max/data/stacks/astro.csv +54 -0
- package/src/skills-lib/ui-ux-pro-max/data/stacks/flutter.csv +53 -0
- package/src/skills-lib/ui-ux-pro-max/data/stacks/html-tailwind.csv +56 -0
- package/src/skills-lib/ui-ux-pro-max/data/stacks/jetpack-compose.csv +53 -0
- package/src/skills-lib/ui-ux-pro-max/data/stacks/nextjs.csv +53 -0
- package/src/skills-lib/ui-ux-pro-max/data/stacks/nuxt-ui.csv +51 -0
- package/src/skills-lib/ui-ux-pro-max/data/stacks/nuxtjs.csv +59 -0
- package/src/skills-lib/ui-ux-pro-max/data/stacks/react-native.csv +52 -0
- package/src/skills-lib/ui-ux-pro-max/data/stacks/react.csv +54 -0
- package/src/skills-lib/ui-ux-pro-max/data/stacks/shadcn.csv +61 -0
- package/src/skills-lib/ui-ux-pro-max/data/stacks/svelte.csv +54 -0
- package/src/skills-lib/ui-ux-pro-max/data/stacks/swiftui.csv +51 -0
- package/src/skills-lib/ui-ux-pro-max/data/stacks/vue.csv +50 -0
- package/src/skills-lib/ui-ux-pro-max/data/styles.csv +68 -0
- package/src/skills-lib/ui-ux-pro-max/data/typography.csv +58 -0
- package/src/skills-lib/ui-ux-pro-max/data/ui-reasoning.csv +101 -0
- package/src/skills-lib/ui-ux-pro-max/data/ux-guidelines.csv +100 -0
- package/src/skills-lib/ui-ux-pro-max/data/web-interface.csv +31 -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/core.py +253 -0
- package/src/skills-lib/ui-ux-pro-max/scripts/design_system.py +1067 -0
- package/src/skills-lib/ui-ux-pro-max/scripts/graphify-out/cache/0964cef300f753b5cee0cc49777ca97035c85d45c212099405d9ee4da36e523f.json +1 -0
- package/src/skills-lib/ui-ux-pro-max/scripts/graphify-out/cache/21a40f6810c3a6f17acc3580f106171daf78c7b41bbd066bc80448a821ea0adf.json +1 -0
- package/src/skills-lib/ui-ux-pro-max/scripts/graphify-out/cache/69ea15a020ac81b8459e37ef63654398a50c1035fc01c43d8069df217389f7f3.json +1 -0
- package/src/skills-lib/ui-ux-pro-max/scripts/search.py +114 -0
- package/src/skills-lib/web-security/SKILL.md +147 -0
- package/src/skills-lib/wizz-router/SKILL.md +257 -0
- package/src/squads/README.md +39 -0
- package/src/squads/advisory-board/README.md +34 -0
- package/src/squads/advisory-board/agents/board-chair.md +161 -0
- package/src/squads/advisory-board/agents/brene-brown.md +296 -0
- package/src/squads/advisory-board/agents/charlie-munger.md +590 -0
- package/src/squads/advisory-board/agents/derek-sivers.md +268 -0
- package/src/squads/advisory-board/agents/naval-ravikant.md +251 -0
- package/src/squads/advisory-board/agents/patrick-lencioni.md +394 -0
- package/src/squads/advisory-board/agents/peter-thiel.md +269 -0
- package/src/squads/advisory-board/agents/ray-dalio.md +587 -0
- package/src/squads/advisory-board/agents/reid-hoffman.md +278 -0
- package/src/squads/advisory-board/agents/simon-sinek.md +291 -0
- package/src/squads/advisory-board/agents/yvon-chouinard.md +275 -0
- package/src/squads/advisory-board/squad.yaml +50 -0
- package/src/squads/brand-squad/README.md +60 -0
- package/src/squads/brand-squad/agents/al-ries.md +175 -0
- package/src/squads/brand-squad/agents/alina-wheeler.md +184 -0
- package/src/squads/brand-squad/agents/archetype-consultant.md +215 -0
- package/src/squads/brand-squad/agents/brand-chief.md +158 -0
- package/src/squads/brand-squad/agents/byron-sharp.md +169 -0
- package/src/squads/brand-squad/agents/david-aaker.md +166 -0
- package/src/squads/brand-squad/agents/denise-yohn.md +172 -0
- package/src/squads/brand-squad/agents/domain-scout.md +135 -0
- package/src/squads/brand-squad/agents/donald-miller.md +179 -0
- package/src/squads/brand-squad/agents/emily-heyward.md +147 -0
- package/src/squads/brand-squad/agents/jean-noel-kapferer.md +189 -0
- package/src/squads/brand-squad/agents/kevin-keller.md +199 -0
- package/src/squads/brand-squad/agents/marty-neumeier.md +170 -0
- package/src/squads/brand-squad/agents/miller-sticky-brand.md +180 -0
- package/src/squads/brand-squad/agents/naming-strategist.md +171 -0
- package/src/squads/brand-squad/squad.yaml +117 -0
- package/src/squads/c-level-squad/README.md +29 -0
- package/src/squads/c-level-squad/agents/caio-architect.md +235 -0
- package/src/squads/c-level-squad/agents/cio-engineer.md +209 -0
- package/src/squads/c-level-squad/agents/cmo-architect.md +208 -0
- package/src/squads/c-level-squad/agents/coo-orchestrator.md +193 -0
- package/src/squads/c-level-squad/agents/cto-architect.md +194 -0
- package/src/squads/c-level-squad/agents/vision-chief.md +201 -0
- package/src/squads/c-level-squad/squad.yaml +45 -0
- package/src/squads/claude-code-mastery/README.md +146 -0
- package/src/squads/claude-code-mastery/agents/claude-mastery-chief.md +554 -0
- package/src/squads/claude-code-mastery/agents/config-engineer.md +865 -0
- package/src/squads/claude-code-mastery/agents/hooks-architect.md +1013 -0
- package/src/squads/claude-code-mastery/agents/mcp-integrator.md +791 -0
- package/src/squads/claude-code-mastery/agents/project-integrator.md +1196 -0
- package/src/squads/claude-code-mastery/agents/roadmap-sentinel.md +931 -0
- package/src/squads/claude-code-mastery/agents/skill-craftsman.md +1250 -0
- package/src/squads/claude-code-mastery/agents/swarm-orchestrator.md +1008 -0
- package/src/squads/copy-squad/README.md +65 -0
- package/src/squads/copy-squad/agents/andre-chaperon.md +206 -0
- package/src/squads/copy-squad/agents/ben-settle.md +194 -0
- package/src/squads/copy-squad/agents/claude-hopkins.md +182 -0
- package/src/squads/copy-squad/agents/clayton-makepeace.md +225 -0
- package/src/squads/copy-squad/agents/copy-chief.md +166 -0
- package/src/squads/copy-squad/agents/dan-kennedy.md +202 -0
- package/src/squads/copy-squad/agents/dan-koe.md +223 -0
- package/src/squads/copy-squad/agents/david-deutsch.md +197 -0
- package/src/squads/copy-squad/agents/david-ogilvy.md +198 -0
- package/src/squads/copy-squad/agents/eugene-schwartz.md +238 -0
- package/src/squads/copy-squad/agents/frank-kern.md +195 -0
- package/src/squads/copy-squad/agents/gary-bencivenga.md +197 -0
- package/src/squads/copy-squad/agents/gary-halbert.md +219 -0
- package/src/squads/copy-squad/agents/jim-rutz.md +193 -0
- package/src/squads/copy-squad/agents/joe-sugarman.md +234 -0
- package/src/squads/copy-squad/agents/john-carlton.md +203 -0
- package/src/squads/copy-squad/agents/jon-benson.md +196 -0
- package/src/squads/copy-squad/agents/parris-lampropoulos.md +188 -0
- package/src/squads/copy-squad/agents/robert-collier.md +183 -0
- package/src/squads/copy-squad/agents/russell-brunson.md +229 -0
- package/src/squads/copy-squad/agents/ry-schwartz.md +185 -0
- package/src/squads/copy-squad/agents/stefan-georgi.md +188 -0
- package/src/squads/copy-squad/agents/todd-brown.md +171 -0
- package/src/squads/copy-squad/squad.yaml +87 -0
- package/src/squads/cybersecurity/README.md +38 -0
- package/src/squads/cybersecurity/agents/busterer.md +108 -0
- package/src/squads/cybersecurity/agents/cartographer.md +114 -0
- package/src/squads/cybersecurity/agents/chris-sanders.md +205 -0
- package/src/squads/cybersecurity/agents/command-generator.md +121 -0
- package/src/squads/cybersecurity/agents/cyber-chief.md +120 -0
- package/src/squads/cybersecurity/agents/dirber.md +111 -0
- package/src/squads/cybersecurity/agents/fuzzer.md +121 -0
- package/src/squads/cybersecurity/agents/georgia-weidman.md +178 -0
- package/src/squads/cybersecurity/agents/jim-manico.md +182 -0
- package/src/squads/cybersecurity/agents/marcus-carey.md +200 -0
- package/src/squads/cybersecurity/agents/omar-santos.md +206 -0
- package/src/squads/cybersecurity/agents/peter-kim.md +179 -0
- package/src/squads/cybersecurity/agents/ripper.md +121 -0
- package/src/squads/cybersecurity/agents/rogue.md +116 -0
- package/src/squads/cybersecurity/agents/shannon-runner.md +108 -0
- package/src/squads/cybersecurity/squad.yaml +56 -0
- package/src/squads/data-squad/README.md +30 -0
- package/src/squads/data-squad/agents/avinash-kaushik.md +268 -0
- package/src/squads/data-squad/agents/data-chief.md +167 -0
- package/src/squads/data-squad/agents/david-spinks.md +277 -0
- package/src/squads/data-squad/agents/nick-mehta.md +294 -0
- package/src/squads/data-squad/agents/peter-fader.md +246 -0
- package/src/squads/data-squad/agents/sean-ellis.md +303 -0
- package/src/squads/data-squad/agents/wes-kao.md +268 -0
- package/src/squads/data-squad/squad.yaml +46 -0
- package/src/squads/design-squad/README.md +31 -0
- package/src/squads/design-squad/agents/brad-frost.md +185 -0
- package/src/squads/design-squad/agents/dan-mall.md +178 -0
- package/src/squads/design-squad/agents/dave-malouf.md +198 -0
- package/src/squads/design-squad/agents/design-chief.md +109 -0
- package/src/squads/design-squad/agents/design-system-architect.md +109 -0
- package/src/squads/design-squad/agents/ui-engineer.md +102 -0
- package/src/squads/design-squad/agents/ux-designer.md +105 -0
- package/src/squads/design-squad/agents/visual-generator.md +108 -0
- package/src/squads/design-squad/squad.yaml +48 -0
- package/src/squads/hormozi-squad/README.md +39 -0
- package/src/squads/hormozi-squad/agents/hormozi-ads.md +159 -0
- package/src/squads/hormozi-squad/agents/hormozi-advisor.md +178 -0
- package/src/squads/hormozi-squad/agents/hormozi-audit.md +178 -0
- package/src/squads/hormozi-squad/agents/hormozi-chief.md +111 -0
- package/src/squads/hormozi-squad/agents/hormozi-closer.md +179 -0
- package/src/squads/hormozi-squad/agents/hormozi-content.md +166 -0
- package/src/squads/hormozi-squad/agents/hormozi-copy.md +152 -0
- package/src/squads/hormozi-squad/agents/hormozi-hooks.md +177 -0
- package/src/squads/hormozi-squad/agents/hormozi-launch.md +160 -0
- package/src/squads/hormozi-squad/agents/hormozi-leads.md +198 -0
- package/src/squads/hormozi-squad/agents/hormozi-models.md +191 -0
- package/src/squads/hormozi-squad/agents/hormozi-offers.md +197 -0
- package/src/squads/hormozi-squad/agents/hormozi-pricing.md +151 -0
- package/src/squads/hormozi-squad/agents/hormozi-retention.md +166 -0
- package/src/squads/hormozi-squad/agents/hormozi-scale.md +175 -0
- package/src/squads/hormozi-squad/agents/hormozi-workshop.md +160 -0
- package/src/squads/hormozi-squad/squad.yaml +60 -0
- package/src/squads/movement/README.md +29 -0
- package/src/squads/movement/agents/analista-de-impacto.md +350 -0
- package/src/squads/movement/agents/estrategista-de-ciclo.md +301 -0
- package/src/squads/movement/agents/fenomenologo.md +169 -0
- package/src/squads/movement/agents/identitario.md +265 -0
- package/src/squads/movement/agents/manifestador.md +279 -0
- package/src/squads/movement/agents/movement-architect.md +210 -0
- package/src/squads/movement/agents/movement-chief.md +135 -0
- package/src/squads/movement/squad.yaml +45 -0
- package/src/squads/storytelling/README.md +35 -0
- package/src/squads/storytelling/agents/blake-snyder.md +225 -0
- package/src/squads/storytelling/agents/dan-harmon.md +167 -0
- package/src/squads/storytelling/agents/joseph-campbell.md +184 -0
- package/src/squads/storytelling/agents/keith-johnstone.md +157 -0
- package/src/squads/storytelling/agents/kindra-hall.md +162 -0
- package/src/squads/storytelling/agents/marshall-ganz.md +167 -0
- package/src/squads/storytelling/agents/matthew-dicks.md +152 -0
- package/src/squads/storytelling/agents/nancy-duarte.md +154 -0
- package/src/squads/storytelling/agents/oren-klaff.md +166 -0
- package/src/squads/storytelling/agents/park-howell.md +152 -0
- package/src/squads/storytelling/agents/shawn-coyne.md +208 -0
- package/src/squads/storytelling/agents/story-chief.md +155 -0
- package/src/squads/storytelling/squad.yaml +52 -0
- package/src/squads/traffic-masters/README.md +39 -0
- package/src/squads/traffic-masters/agents/ad-midas.md +149 -0
- package/src/squads/traffic-masters/agents/ads-analyst.md +135 -0
- package/src/squads/traffic-masters/agents/creative-analyst.md +142 -0
- package/src/squads/traffic-masters/agents/depesh-mandalia.md +174 -0
- package/src/squads/traffic-masters/agents/fiscal.md +144 -0
- package/src/squads/traffic-masters/agents/kasim-aslam.md +158 -0
- package/src/squads/traffic-masters/agents/media-buyer.md +159 -0
- package/src/squads/traffic-masters/agents/molly-pittman.md +185 -0
- package/src/squads/traffic-masters/agents/nicholas-kusmich.md +157 -0
- package/src/squads/traffic-masters/agents/pedro-sobral.md +158 -0
- package/src/squads/traffic-masters/agents/performance-analyst.md +135 -0
- package/src/squads/traffic-masters/agents/pixel-specialist.md +144 -0
- package/src/squads/traffic-masters/agents/ralph-burns.md +163 -0
- package/src/squads/traffic-masters/agents/scale-optimizer.md +144 -0
- package/src/squads/traffic-masters/agents/tom-breeze.md +175 -0
- package/src/squads/traffic-masters/agents/traffic-chief.md +97 -0
- package/src/squads/traffic-masters/squad.yaml +59 -0
- package/tools/bundle-web-bundles.js +1 -1
- package/tools/format-workflow-md.js +2 -2
- package/tools/installer/commands/install.js +13 -1
- package/tools/installer/commands/status.js +9 -9
- package/tools/installer/commands/uninstall.js +5 -5
- package/tools/installer/core/config.js +20 -0
- package/tools/installer/core/existing-install.js +8 -8
- package/tools/installer/core/install-paths.js +13 -13
- package/tools/installer/core/installer.js +202 -102
- package/tools/installer/core/legacy-warnings.js +16 -16
- package/tools/installer/core/manifest-generator.js +44 -33
- package/tools/installer/core/manifest.js +30 -30
- package/tools/installer/core/python-check.js +7 -7
- package/tools/installer/ide/_config-driven.js +97 -97
- package/tools/installer/ide/manager.js +17 -17
- package/tools/installer/ide/platform-codes.yaml +5 -5
- package/tools/installer/ide/shared/installed-skills.js +13 -13
- package/tools/installer/ide/shared/path-utils.js +46 -46
- package/tools/installer/ide/shared/skill-manifest.js +4 -4
- package/tools/installer/install-messages.yaml +1 -1
- package/tools/installer/list-options.js +3 -3
- package/tools/installer/modules/channel-plan.js +1 -1
- package/tools/installer/modules/channel-resolver.js +1 -1
- package/tools/installer/modules/cli-config.js +145 -0
- package/tools/installer/modules/custom-module-manager.js +16 -16
- package/tools/installer/modules/external-manager.js +6 -6
- package/tools/installer/modules/mcp-config.js +137 -0
- package/tools/installer/modules/official-modules.js +42 -42
- package/tools/installer/modules/plugin-resolver.js +3 -3
- package/tools/installer/modules/skills-lib.js +135 -0
- package/tools/installer/project-root.js +13 -13
- package/tools/installer/prompts.js +1 -1
- package/tools/installer/set-overrides.js +6 -6
- package/tools/installer/ui.js +239 -29
- package/tools/installer/yaml-format.js +1 -1
- package/tools/migrate-custom-module-paths.js +11 -11
- package/tools/skill-validator.md +6 -6
- package/tools/validate-skills.js +10 -5
- package/web-bundles/README.md +4 -4
- package/web-bundles/brainstorming-coach/INSTRUCTIONS.md +1 -1
- package/web-bundles/bundles.json +6 -6
- package/web-bundles/market-and-industry-research/INSTRUCTIONS.md +1 -1
- package/web-bundles/prd-coach/INSTRUCTIONS.md +3 -3
- package/web-bundles/prfaq-coach/INSTRUCTIONS.md +3 -3
- package/web-bundles/product-brief-coach/INSTRUCTIONS.md +3 -3
- package/web-bundles/ux-coach/INSTRUCTIONS.md +1 -1
- package/{bmad-modules.yaml → wizz-modules.yaml} +15 -15
- package/build/site/pagefind/fragment/en_5ad92a9.pf_fragment +0 -0
- package/build/site/pagefind/fragment/en_7aea5bc.pf_fragment +0 -0
- package/build/site/pagefind/fragment/en_81bcd7f.pf_fragment +0 -0
- package/build/site/pagefind/fragment/en_938e9c4.pf_fragment +0 -0
- package/build/site/pagefind/fragment/en_b51d75b.pf_fragment +0 -0
- package/build/site/pagefind/fragment/en_c9fea21.pf_fragment +0 -0
- package/build/site/pagefind/fragment/en_e07e982.pf_fragment +0 -0
- package/build/site/pagefind/fragment/en_f4389af.pf_fragment +0 -0
- package/build/site/pagefind/fragment/en_f52c9f9.pf_fragment +0 -0
- package/build/site/pagefind/index/en_82c64dc.pf_index +0 -0
- package/build/site/pagefind/index/en_d0dd3c7.pf_index +0 -0
- package/build/site/pagefind/index/en_e890f88.pf_index +0 -0
- package/build/site/pagefind/pagefind.en_ee1b8a17c8.pf_meta +0 -0
- /package/build/site/img/{bmad-dark.png → wizz-dark.png} +0 -0
- /package/build/site/img/{bmad-light.png → wizz-light.png} +0 -0
- /package/src/bmm-skills/1-analysis/wizz-prfaq/{bmad-manifest.json → wizz-manifest.json} +0 -0
- /package/tools/installer/{bmad-cli.js → wizz-cli.js} +0 -0
|
@@ -0,0 +1,250 @@
|
|
|
1
|
+
# 核心资产协议(完整版)
|
|
2
|
+
|
|
3
|
+
> 从 SKILL.md「核心哲学 #1.a」下沉的完整协议(2026-06 瘦身)。SKILL.md 留了触发条件 + 5 步标题 + 自检;这里是 5 步详细操作、下载命令、brand-spec 模板、全流程失败兜底、反例与代价对比。
|
|
4
|
+
> 触发:任务涉及具体品牌/产品时强制执行。回 SKILL.md 看精简版与上下文。
|
|
5
|
+
|
|
6
|
+
#### 1.a 核心资产协议(涉及具体品牌时强制执行)
|
|
7
|
+
|
|
8
|
+
> **这是 v1 最核心的约束,也是稳定性的生命线。** Agent 是否走通这个协议,直接决定输出质量是 40 分还是 90 分。不要跳过任何一步。
|
|
9
|
+
>
|
|
10
|
+
> **v1.1 重构(2026-04-20)**:从「品牌资产协议」升级为「核心资产协议」。之前的版本过度聚焦色值和字体,漏掉了设计中最基础的 logo / 产品图 / UI 截图。花叔的原话:「除了所谓的品牌色,显然我们应该找到并且用上大疆的 logo,用上 pocket4 的产品图。如果是网站或者 app 等非实体产品的话,logo 至少该是必须的。这可能是比所谓的品牌设计的 spec 更重要的基本逻辑。否则,我们在表达什么呢?」
|
|
11
|
+
|
|
12
|
+
**触发条件**:任务涉及具体品牌——用户提了产品名/公司名/明确客户(Stripe、Linear、Anthropic、Notion、Lovart、DJI、自家公司等),不论用户是否主动提供了品牌资料。
|
|
13
|
+
|
|
14
|
+
**前置硬条件**:走协议前必须已通过「#0 事实验证先于假设」确认品牌/产品存在且状态已知。如果你还不确定产品是否已发布/规格/版本,先回去搜。
|
|
15
|
+
|
|
16
|
+
##### 核心理念:资产 > 规范
|
|
17
|
+
|
|
18
|
+
**品牌的本质是「它被认出来」**。认出来靠什么?按识别度排序:
|
|
19
|
+
|
|
20
|
+
| 资产类型 | 识别度贡献 | 必需性 |
|
|
21
|
+
|---|---|---|
|
|
22
|
+
| **Logo** | 最高 · 任何品牌出现 logo 就一眼识别 | **任何品牌都必须有** |
|
|
23
|
+
| **产品图/产品渲染图** | 极高 · 实体产品的"主角"就是产品本身 | **实体产品(硬件/包装/消费品)必须有** |
|
|
24
|
+
| **UI 截图/界面素材** | 极高 · 数字产品的"主角"是它的界面 | **数字产品(App/网站/SaaS)必须有** |
|
|
25
|
+
| **色值** | 中 · 辅助识别,脱离前三项时经常撞衫 | 辅助 |
|
|
26
|
+
| **字体** | 低 · 需配合前述才能建立识别 | 辅助 |
|
|
27
|
+
| **气质关键词** | 低 · agent 自检用 | 辅助 |
|
|
28
|
+
|
|
29
|
+
**翻译成执行规则**:
|
|
30
|
+
- 只抽色值 + 字体、不找 logo / 产品图 / UI → **违反本协议**
|
|
31
|
+
- 用 CSS 剪影/SVG 手画替代真实产品图 → **违反本协议**(生成的就是「通用科技动画」,任何品牌都长一样)
|
|
32
|
+
- 找不到资产不告诉用户、也不 AI 生成,硬做 → **违反本协议**
|
|
33
|
+
- 宁可停下问用户要素材,也不要用 generic 填充
|
|
34
|
+
|
|
35
|
+
##### 5 步硬流程(每步有 fallback,绝不静默跳过)
|
|
36
|
+
|
|
37
|
+
##### Step 1 · 问(资产清单一次问全)
|
|
38
|
+
|
|
39
|
+
不要只问「有 brand guidelines 吗?」——太宽泛,用户不知道该给什么。按清单逐项问:
|
|
40
|
+
|
|
41
|
+
```
|
|
42
|
+
关于 <brand/product>,你手上有以下哪些资料?我按优先级列:
|
|
43
|
+
1. Logo(SVG / 高清 PNG)—— 任何品牌必备
|
|
44
|
+
2. 产品图 / 官方渲染图 —— 实体产品必备(如 DJI Pocket 4 的产品照)
|
|
45
|
+
3. UI 截图 / 界面素材 —— 数字产品必备(如 App 主要页面截图)
|
|
46
|
+
4. 色值清单(HEX / RGB / 品牌色盘)
|
|
47
|
+
5. 字体清单(Display / Body)
|
|
48
|
+
6. Brand guidelines PDF / Figma design system / 品牌官网链接
|
|
49
|
+
|
|
50
|
+
有的直接发我,没有的我去搜/抓/生成。
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
##### Step 2 · 搜官方渠道(按资产类型)
|
|
54
|
+
|
|
55
|
+
| 资产 | 搜索路径 |
|
|
56
|
+
|---|---|
|
|
57
|
+
| **Logo** | `<brand>.com/brand` · `<brand>.com/press` · `<brand>.com/press-kit` · `brand.<brand>.com` · 官网 header 的 inline SVG |
|
|
58
|
+
| **产品图/渲染图** | `<brand>.com/<product>` 产品详情页 hero image + gallery · 官方 YouTube launch film 截帧 · 官方新闻稿附图 |
|
|
59
|
+
| **UI 截图** | App Store / Google Play 产品页截图 · 官网 screenshots section · 产品官方演示视频截帧 |
|
|
60
|
+
| **色值** | 官网 inline CSS / Tailwind config / brand guidelines PDF |
|
|
61
|
+
| **字体** | 官网 `<link rel="stylesheet">` 引用 · Google Fonts 追踪 · brand guidelines |
|
|
62
|
+
|
|
63
|
+
`WebSearch` 兜底关键词:
|
|
64
|
+
- Logo 找不到 → `<brand> logo download SVG`、`<brand> press kit`
|
|
65
|
+
- 产品图找不到 → `<brand> <product> official renders`、`<brand> <product> product photography`
|
|
66
|
+
- UI 找不到 → `<brand> app screenshots`、`<brand> dashboard UI`
|
|
67
|
+
|
|
68
|
+
##### Step 3 · 下载资产 · 按类型三条兜底路径
|
|
69
|
+
|
|
70
|
+
**3.1 Logo(任何品牌必需)**
|
|
71
|
+
|
|
72
|
+
> ⚠️ **别只试 `curl <brand>.com/logo.svg` 就放弃**——现在的官网大多是 SPA,直连静态路径基本返回空壳 HTML(2026-06-06 实测 Trae 官网 5 条直连路径全是空壳)。**数字产品 / SaaS / AI 工具优先用图标聚合源**,命中率最高、直出干净 SVG。
|
|
73
|
+
|
|
74
|
+
按成功率递减:
|
|
75
|
+
0. **图标聚合源(知名数字产品/SaaS/AI 工具首选,命中率最高)**:
|
|
76
|
+
```bash
|
|
77
|
+
unset ALL_PROXY HTTP_PROXY HTTPS_PROXY all_proxy http_proxy https_proxy # 清代理,否则 TLS 易炸
|
|
78
|
+
# svgl —— AI/开发者品牌覆盖最全(Claude/Cursor/OpenAI/Copilot/Anthropic/Vercel…),含 light/dark + wordmark
|
|
79
|
+
curl -s "https://api.svgl.app?search=<brand>" # 返回 JSON,取 route(.light/.dark) 的 svg URL 再下载
|
|
80
|
+
# simpleicons —— 单色 glyph,可直接按品牌色上色
|
|
81
|
+
curl -o logo.svg "https://cdn.simpleicons.org/<slug>/<hexcolor>"
|
|
82
|
+
```
|
|
83
|
+
1. 独立 SVG/PNG 文件 / 官方 brand 页(如 `<brand>.com/brand`、`/press`):
|
|
84
|
+
```bash
|
|
85
|
+
curl -A "Mozilla/5.0" -L -o assets/<brand>-brand/logo.svg "<official-logo-url>"
|
|
86
|
+
```
|
|
87
|
+
2. 官网 HTML 全文提取 inline SVG:
|
|
88
|
+
```bash
|
|
89
|
+
curl -A "Mozilla/5.0" -L https://<brand>.com -o assets/<brand>-brand/homepage.html
|
|
90
|
+
# 然后 grep <svg>...</svg> 提取 logo 节点
|
|
91
|
+
```
|
|
92
|
+
3. **Google favicon 服务(站点真实 mark 兜底,几乎不失败)**:
|
|
93
|
+
```bash
|
|
94
|
+
curl -o logo.png "https://www.google.com/s2/favicons?domain=<brand-domain>&sz=256" # 256px 官方站点图标
|
|
95
|
+
```
|
|
96
|
+
4. 官方社交媒体 avatar(最后手段):GitHub/Twitter/LinkedIn 的公司头像通常是 400×400 或 800×800 透明底 PNG
|
|
97
|
+
|
|
98
|
+
下载后**逐个核对**:`file <logo>` 确认是真 SVG/PNG(不是 106 字节占位或 HTML 空壳),`head -c 90 <logo.svg>` 看是否 `<svg`。
|
|
99
|
+
|
|
100
|
+
**3.2 产品图/渲染图(实体产品必需)**
|
|
101
|
+
|
|
102
|
+
按优先级:
|
|
103
|
+
1. **官方产品页 hero image**(最高优先级):右键查看图片地址 / curl 获取。分辨率通常 2000px+
|
|
104
|
+
2. **官方 press kit**:`<brand>.com/press` 常有高清产品图下载
|
|
105
|
+
3. **官方 launch video 截帧**:用 `yt-dlp` 下载 YouTube 视频,ffmpeg 抽几帧高清图
|
|
106
|
+
4. **Wikimedia Commons**:公共领域常有
|
|
107
|
+
5. **AI 生成兜底**(nano-banana-pro):把真实产品图作为参考发给 AI,让它生成符合动画场景的变体。**不要用 CSS/SVG 手画代替**
|
|
108
|
+
|
|
109
|
+
```bash
|
|
110
|
+
# 示例:下载 DJI 官网产品 hero image
|
|
111
|
+
curl -A "Mozilla/5.0" -L "<hero-image-url>" -o assets/<brand>-brand/product-hero.png
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
**3.3 UI 截图(数字产品必需)**
|
|
115
|
+
|
|
116
|
+
- App Store / Google Play 的产品截图(注意:可能是 mockup 而非真实 UI,要对比)
|
|
117
|
+
- 官网 screenshots section
|
|
118
|
+
- 产品演示视频截帧
|
|
119
|
+
- 产品官方 Twitter/X 的发布截图(常是最新版本)
|
|
120
|
+
- 用户有账号时,直接截屏真实产品界面
|
|
121
|
+
|
|
122
|
+
**3.4 · 素材质量门槛「5-10-2-8」原则(铁律)**
|
|
123
|
+
|
|
124
|
+
> **Logo 的规则不同于其他素材**。Logo 有就必须用(没有就停下问用户);其他素材(产品图/UI/参考图/配图)遵循「5-10-2-8」质量门槛。
|
|
125
|
+
>
|
|
126
|
+
> 2026-04-20 花叔原话:「我们的原则是搜索 5 轮,找到 10 个素材,选择 2 个好的。每个需要评分 8/10 以上,宁可少一些,也不为了完成任务滥竽充数。」
|
|
127
|
+
|
|
128
|
+
| 维度 | 标准 | 反模式 |
|
|
129
|
+
|---|---|---|
|
|
130
|
+
| **5 轮搜索** | 多渠道交叉搜(官网 / press kit / 官方社媒 / YouTube 截帧 / Wikimedia / 用户账号截屏),不是一轮抓前 2 个就停 | 第一页结果直接用 |
|
|
131
|
+
| **10 个候选** | 至少凑 10 个备选才开始筛 | 只抓 2 个,没得选 |
|
|
132
|
+
| **选 2 个好的** | 从 10 个里精选 2 个作为最终素材 | 全都用 = 视觉过载 + 品位稀释 |
|
|
133
|
+
| **每个 8/10 分以上** | 不够 8 分**宁可不用**,用诚实 placeholder(灰块+文字标签)或 AI 生成(nano-banana-pro 以官方参考为基底)| 凑数 7 分素材进 brand-spec.md |
|
|
134
|
+
|
|
135
|
+
**8/10 评分维度**(打分时记录在 `brand-spec.md`):
|
|
136
|
+
|
|
137
|
+
1. **分辨率** · ≥2000px(印刷/大屏场景 ≥3000px)
|
|
138
|
+
2. **版权清晰度** · 官方来源 > 公共领域 > 免费素材 > 疑似盗图(疑似盗图直接 0 分)
|
|
139
|
+
3. **与品牌气质契合度** · 和 brand-spec.md 里的「气质关键词」一致
|
|
140
|
+
4. **光线/构图/风格一致性** · 2 个素材放一起不打架
|
|
141
|
+
5. **独立叙事能力** · 能单独表达一个叙事角色(不是装饰)
|
|
142
|
+
|
|
143
|
+
**为什么这个门槛是铁律**:
|
|
144
|
+
- 花叔的哲学:**宁缺毋滥**。滥竽充数的素材比没有更糟——污染视觉品味、传递「不专业」信号
|
|
145
|
+
- **「一个细节做到 120%,其他做到 80%」的量化版**:8 分是"其他 80%" 的底线,真正 hero 素材要 9-10 分
|
|
146
|
+
- 消费者看作品时,每一个视觉元素都在**积分或扣分**。7 分素材 = 扣分项,不如留空
|
|
147
|
+
|
|
148
|
+
**Logo 例外**(重申):有就必须用,不适用「5-10-2-8」。因为 logo 不是「多选一」问题,而是「识别度根基」问题——就算 logo 本身只有 6 分,也比没有 logo 强 10 倍。
|
|
149
|
+
|
|
150
|
+
##### Step 4 · 验证 + 提取(不只是 grep 色值)
|
|
151
|
+
|
|
152
|
+
| 资产 | 验证动作 |
|
|
153
|
+
|---|---|
|
|
154
|
+
| **Logo** | 文件存在 + SVG/PNG 可打开 + 至少两个版本(深底/浅底用)+ 透明背景 |
|
|
155
|
+
| **产品图** | 至少一张 2000px+ 分辨率 + 去背或干净背景 + 多个角度(主视角、细节、场景) |
|
|
156
|
+
| **UI 截图** | 分辨率真实(1x / 2x)+ 是最新版本(不是旧版)+ 无用户数据污染 |
|
|
157
|
+
| **色值** | `grep -hoE '#[0-9A-Fa-f]{6}' assets/<brand>-brand/*.{svg,html,css} \| sort \| uniq -c \| sort -rn \| head -20`,过滤黑白灰 |
|
|
158
|
+
|
|
159
|
+
**警惕示范品牌污染**:产品截图里常有用户 demo 的品牌色(如某工具截图演示喜茶红),那不是该工具的色。**同时出现两种强色时必须区分**。
|
|
160
|
+
|
|
161
|
+
**品牌多切面**:同一品牌的官网营销色和产品 UI 色经常不同(Lovart 官网暖米+橙,产品 UI 是 Charcoal + Lime)。**两套都是真的**——根据交付场景选合适的切面。
|
|
162
|
+
|
|
163
|
+
##### Step 5 · 固化为 `brand-spec.md` 文件(模板必须覆盖所有资产)
|
|
164
|
+
|
|
165
|
+
```markdown
|
|
166
|
+
# <Brand> · Brand Spec
|
|
167
|
+
> 采集日期:YYYY-MM-DD
|
|
168
|
+
> 资产来源:<列出下载来源>
|
|
169
|
+
> 资产完整度:<完整 / 部分 / 推断>
|
|
170
|
+
|
|
171
|
+
## 🎯 核心资产(一等公民)
|
|
172
|
+
|
|
173
|
+
### Logo
|
|
174
|
+
- 主版本:`assets/<brand>-brand/logo.svg`
|
|
175
|
+
- 浅底反色版:`assets/<brand>-brand/logo-white.svg`
|
|
176
|
+
- 使用场景:<片头/片尾/角落水印/全局>
|
|
177
|
+
- 禁用变形:<不能拉伸/改色/加描边>
|
|
178
|
+
|
|
179
|
+
### 产品图(实体产品必填)
|
|
180
|
+
- 主视角:`assets/<brand>-brand/product-hero.png`(2000×1500)
|
|
181
|
+
- 细节图:`assets/<brand>-brand/product-detail-1.png` / `product-detail-2.png`
|
|
182
|
+
- 场景图:`assets/<brand>-brand/product-scene.png`
|
|
183
|
+
- 使用场景:<特写/旋转/对比>
|
|
184
|
+
|
|
185
|
+
### UI 截图(数字产品必填)
|
|
186
|
+
- 主页:`assets/<brand>-brand/ui-home.png`
|
|
187
|
+
- 核心功能:`assets/<brand>-brand/ui-feature-<name>.png`
|
|
188
|
+
- 使用场景:<产品展示/Dashboard 渐现/对比演示>
|
|
189
|
+
|
|
190
|
+
## 🎨 辅助资产
|
|
191
|
+
|
|
192
|
+
### 色板
|
|
193
|
+
- Primary: #XXXXXX <来源标注>
|
|
194
|
+
- Background: #XXXXXX
|
|
195
|
+
- Ink: #XXXXXX
|
|
196
|
+
- Accent: #XXXXXX
|
|
197
|
+
- 禁用色: <品牌明确不用的色系>
|
|
198
|
+
|
|
199
|
+
### 字型
|
|
200
|
+
- Display: <font stack>
|
|
201
|
+
- Body: <font stack>
|
|
202
|
+
- Mono(数据 HUD 用): <font stack>
|
|
203
|
+
|
|
204
|
+
### 签名细节
|
|
205
|
+
- <哪些细节是「120% 做到」的>
|
|
206
|
+
|
|
207
|
+
### 禁区
|
|
208
|
+
- <明确不能做的:比如 Lovart 不用蓝色、Stripe 不用低饱和暖色>
|
|
209
|
+
|
|
210
|
+
### 气质关键词
|
|
211
|
+
- <3-5 个形容词>
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
**写完 spec 后的执行纪律(硬要求)**:
|
|
215
|
+
- 所有 HTML 必须**引用** `brand-spec.md` 里的资产文件路径,不允许用 CSS 剪影/SVG 手画代替
|
|
216
|
+
- Logo 作为 `<img>` 引用真实文件,不重画
|
|
217
|
+
- 产品图作为 `<img>` 引用真实文件,不用 CSS 剪影代替
|
|
218
|
+
- CSS 变量从 spec 注入:`:root { --brand-primary: ...; }`,HTML 只用 `var(--brand-*)`
|
|
219
|
+
- 这让品牌一致性从「靠自觉」变成「靠结构」——想临时加色要先改 spec
|
|
220
|
+
|
|
221
|
+
##### 全流程失败的兜底
|
|
222
|
+
|
|
223
|
+
按资产类型分别处理:
|
|
224
|
+
|
|
225
|
+
| 缺失 | 处理 |
|
|
226
|
+
|---|---|
|
|
227
|
+
| **Logo 完全找不到** | **停下问用户**,不要硬做(logo 是品牌识别度的根基) |
|
|
228
|
+
| **产品图(实体产品)找不到** | 优先 nano-banana-pro AI 生成(以官方参考图为基底)→ 次选向用户索取 → 最后才是诚实 placeholder(灰块+文字标签,明确标注"产品图待补") |
|
|
229
|
+
| **UI 截图(数字产品)找不到** | 向用户索取自己账号的截屏 → 官方演示视频截帧。不用 mockup 生成器凑 |
|
|
230
|
+
| **色值完全找不到** | 按「设计方向顾问模式」走,向用户推荐 3 个方向并标注 assumption |
|
|
231
|
+
|
|
232
|
+
**禁止**:找不到资产就静默用 CSS 剪影/通用渐变硬做——这是协议最大的反 pattern。**宁可停下问,也不要凑**。
|
|
233
|
+
|
|
234
|
+
##### 反例(真实踩过的坑)
|
|
235
|
+
|
|
236
|
+
- **Kimi 动画**:凭记忆猜「应该是橙色」,实际 Kimi 是 `#1783FF` 蓝色——返工一遍
|
|
237
|
+
- **Lovart 设计**:把产品截图里演示品牌的喜茶红当成 Lovart 自己的色——差点毁整个设计
|
|
238
|
+
- **DJI Pocket 4 发布动画(2026-04-20,触发本协议升级的真实案例)**:走了旧版只抽色值的协议,没下载 DJI logo、没找 Pocket 4 产品图,用 CSS 剪影代替产品——做出来是「通用黑底+橙 accent 的科技动画」,没有大疆识别度。花叔原话:「否则,我们在表达什么呢?」→ 协议升级。
|
|
239
|
+
- 抽完色没写进 brand-spec.md,第三页就忘了主色数值,临场加了个「接近但不是」的 hex——品牌一致性崩溃
|
|
240
|
+
- **五大 Coding Agent 对比 PPT(2026-06-06,触发触发条件扩展的真实案例)**:agent 把任务判成「PPT + 没风格参考」走 Fallback 设计方向顾问,只抽了五家品牌色就 spawn 三套设计逻辑,**五个产品 logo(Claude Code / Cursor / Codex / Copilot / Trae)一个没取**——被花叔抓现行「我们为什么没去取这些产品的 logo」。根因:把「对比 / 榜单 deck」误判为不触发 §1.a(以为 §1.a 只管「为单一客户做物料」),且 Fallback 路径里没有任何 logo 检查点。→ 修复:①触发条件扩成两类(含「设计里点名/并列真实产品」)②Fallback 不豁免取 logo ③Phase 3.5 加「具名产品 logo 子门」spawn 前必过 ④Step 3.1 补 svgl/simpleicons/Google favicon 可靠取图链。
|
|
241
|
+
|
|
242
|
+
##### 协议代价 vs 不做代价
|
|
243
|
+
|
|
244
|
+
| 场景 | 时间 |
|
|
245
|
+
|---|---|
|
|
246
|
+
| 正确走完协议 | 下载 logo 5 min + 下载 3-5 张产品图/UI 10 min + grep 色值 5 min + 写 spec 10 min = **30 分钟** |
|
|
247
|
+
| 不做协议的代价 | 做出没识别度的通用动画 → 用户返工 1-2 小时,甚至重做 |
|
|
248
|
+
|
|
249
|
+
**这是稳定性最便宜的投资**。尤其对商单/发布会/重要客户项目,30 分钟的资产协议是保命钱。
|
|
250
|
+
|
|
@@ -0,0 +1,264 @@
|
|
|
1
|
+
# Cinematic Patterns · Workflow Demo 的 Best Practice
|
|
2
|
+
|
|
3
|
+
> 从「PPT 动画」升级到「发布会级 cinematic」的 5 个关键 pattern。
|
|
4
|
+
> 蒸馏自 2026-04 「聊聊 skill」 deck 的两个 cinematic demo(Nuwa workflow + Darwin workflow),实测可复现。
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## 0 · 这份文档解决什么问题
|
|
9
|
+
|
|
10
|
+
当你需要做「演示一个工作流的 demo 动画」时(典型场景:skill 工作流、产品 onboarding、API 调用流程、agent 任务执行),有两种常见做法:
|
|
11
|
+
|
|
12
|
+
| 范式 | 长什么样 | 后果 |
|
|
13
|
+
|---|---|---|
|
|
14
|
+
| **PPT 动画**(差) | step 1 fade in → step 2 fade in → step 3 fade in,4 个 box 同屏排列 | 观众感觉「就是一个 PPT 加了 fade 效果」,没有 wow moment |
|
|
15
|
+
| **Cinematic**(好) | scene-based,一次只 focus 一件事,scene 之间是 dissolve / focus pull / morph | 观众感觉「这是一个产品发布会片段」,会想截图分享 |
|
|
16
|
+
|
|
17
|
+
差异的根源**不是动画技术**,是**叙事范式**。本文档讲怎么从前者升级到后者。
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## 1 · 五个核心 pattern
|
|
22
|
+
|
|
23
|
+
### Pattern A · Dashboard + Cinematic Overlay 双层结构
|
|
24
|
+
|
|
25
|
+
**问题**:单纯的 cinematic 默认是黑屏 + 一个 ▶ 按钮,用户翻到这页如果没点,什么都看不到。
|
|
26
|
+
|
|
27
|
+
**解决**:
|
|
28
|
+
```
|
|
29
|
+
DEFAULT 状态 (永远显示):完整静态 workflow dashboard
|
|
30
|
+
└── 观众一眼看清这个 skill / 工作流怎么跑
|
|
31
|
+
|
|
32
|
+
POINT ▶ 触发 (overlay 浮上来):22 秒 cinematic
|
|
33
|
+
└── 跑完自动 fade 回 DEFAULT
|
|
34
|
+
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
**实现要点**:
|
|
38
|
+
- `.dash` 默认 visible,`.cinema` 默认 `opacity: 0; pointer-events: none`
|
|
39
|
+
- `.play-cta` 是右下角金色小按钮(不是中央大覆盖)
|
|
40
|
+
- 点击 → `cinema.classList.add('show')` + `dash.classList.add('hide')`
|
|
41
|
+
- 用 `requestAnimationFrame` 跑一次(不是循环),结束后 `endCinematic()` reverse 状态
|
|
42
|
+
|
|
43
|
+
**反 pattern**:默认 = 中央大 ▶ overlay 覆盖一切,没点之前页面是空白的。
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
### Pattern B · Scene-based, NOT Step-based
|
|
48
|
+
|
|
49
|
+
**问题**:把动画拆成「step 1 显示 → step 2 显示 → ...」就是 PPT 思维。
|
|
50
|
+
|
|
51
|
+
**解决**:拆成 5 个 scene,每个 scene 是**独立的镜头**,全屏只 focus 一件事:
|
|
52
|
+
|
|
53
|
+
| Scene 类型 | 职责 | 时长 |
|
|
54
|
+
|---|---|---|
|
|
55
|
+
| 1 · Invoke | 用户输入触发(终端 typewriter)| 3-4s |
|
|
56
|
+
| 2 · Process | 核心工作流的可视化(独特视觉语言)| 5-6s |
|
|
57
|
+
| 3 · Result/Insight | 提炼出的关键产物(可视化)| 4-5s |
|
|
58
|
+
| 4 · Output | 实际产物展示(文件 / diff / 数字)| 3-4s |
|
|
59
|
+
| 5 · Hero Reveal | 收尾 hero moment(大字 + 价值主张)| 4-5s |
|
|
60
|
+
|
|
61
|
+
**总时长 ≈ 22 秒**——这是经过测试的黄金长度:
|
|
62
|
+
- 短于 18 秒:PM 还没进入状态就结束了
|
|
63
|
+
- 长于 25 秒:失去耐心
|
|
64
|
+
- 22 秒刚好够「钩住 → 展开 → 收束 → 留下印象」
|
|
65
|
+
|
|
66
|
+
**实现要点**:
|
|
67
|
+
- `T = { DURATION: 22.0, s1_in: [0, 0.7], s2_in: [3.8, 4.6], ... }` 全局时间轴
|
|
68
|
+
- 单个 `requestAnimationFrame(render)` 跑所有 scene 的 opacity / transform 计算
|
|
69
|
+
- 不要用 setTimeout 链(容易断掉、难调试)
|
|
70
|
+
- Easing 必用 `expoOut` / `easeOut` / cubic-bezier,**禁止 linear**
|
|
71
|
+
|
|
72
|
+
---
|
|
73
|
+
|
|
74
|
+
### Pattern C · 每个 demo 的视觉语言必须独立
|
|
75
|
+
|
|
76
|
+
**问题**:做完第一个 cinematic 后,做第二个时偷懒复用同一个模板(同样的 orbit + pentagon + typewriter + hero 大字),只换了文案。
|
|
77
|
+
|
|
78
|
+
**后果**:观众发现两个 skill「长得一模一样」,等于在说「这两个 skill 没区别」。
|
|
79
|
+
|
|
80
|
+
**解决**:每个工作流的核心隐喻不同,视觉语言就必须不同。
|
|
81
|
+
|
|
82
|
+
**对照案例**:
|
|
83
|
+
|
|
84
|
+
| 维度 | Nuwa(蒸馏人)| Darwin(优化 skill)|
|
|
85
|
+
|---|---|---|
|
|
86
|
+
| 核心隐喻 | 收集 → 提炼 → 写 | 循环 → 评估 → 棘轮 |
|
|
87
|
+
| 视觉运动 | 漂浮 / 辐射 / pentagon | 循环 / 上升 / 对比 |
|
|
88
|
+
| Scene 2 | 3D Orbit · 8 张档案在透视椭圆漂浮 | Spin Loop · token 沿 6 节点圆环跑 5 圈 |
|
|
89
|
+
| Scene 3 | Pentagon · 5 token 从中央辐射 | v1 vs v5 · 并列 diff(红版 vs 金版) |
|
|
90
|
+
| Scene 4 | SKILL.md typewriter | Hill-Climb · 全屏曲线绘制 |
|
|
91
|
+
| Scene 5 hero | 「21 分钟」serif italic 大字 | 旋转齿轮 ⚙ + 「KEPT +1.1」金色 tag |
|
|
92
|
+
|
|
93
|
+
**判断标准**:盖住文案,只看视觉,能不能区分这是哪个 demo?区分不了就是偷懒。
|
|
94
|
+
|
|
95
|
+
---
|
|
96
|
+
|
|
97
|
+
### Pattern D · 用 AI 生成的真实素材,不要 emoji 或 SVG 手画
|
|
98
|
+
|
|
99
|
+
**问题**:3D orbit / gallery 里需要素材碎片漂浮,emoji(📚🎤)丑且无品牌、SVG 手画书脊永远不像真书。
|
|
100
|
+
|
|
101
|
+
**解决**:用 `huashu-gpt-image` 跑一张 4×2 grid 大图(8 件主题相关物品 · 白底 · 60px breathing space · unified style),用 `extract_grid.py --mode bbox` 抠成 8 张独立透明 PNG。
|
|
102
|
+
|
|
103
|
+
**Prompt 要点**(详细 prompt patterns 见 `huashu-gpt-image` skill):
|
|
104
|
+
- IP 锚定("1960s Caltech archive aesthetic" / "Hearthstone-style consistent treatment")
|
|
105
|
+
- 白底(便于抠图,灰底氛围好但抠透明背景困难)
|
|
106
|
+
- 4×2 不要 5×5(避免末行压缩 bug)
|
|
107
|
+
- Persona finishing("You are a Wired magazine curator preparing an exhibition photo")
|
|
108
|
+
|
|
109
|
+
**反 pattern**:用 emoji 当 icon、用 CSS 剪影代替产品图。
|
|
110
|
+
|
|
111
|
+
---
|
|
112
|
+
|
|
113
|
+
### Pattern E · BGM + SFX 双轨制
|
|
114
|
+
|
|
115
|
+
**问题**:只有动画没有声音,观众潜意识感觉「这玩意像个穷酸 demo」。
|
|
116
|
+
|
|
117
|
+
**解决**:BGM 长音 + 11 个 SFX cues。
|
|
118
|
+
|
|
119
|
+
**通用 SFX cue 配方**(适用于工作流 demo):
|
|
120
|
+
|
|
121
|
+
| 时点 | SFX | 触发场景 |
|
|
122
|
+
|---|---|---|
|
|
123
|
+
| 0.10s | whoosh | 终端从下方升起 |
|
|
124
|
+
| 3.0s | enter | typewriter 完成、按 enter |
|
|
125
|
+
| 4.0s | slide-in | scene 2 元素入场 |
|
|
126
|
+
| 5-9s × 5 次 | sparkle | 关键过程节点(每代 / 每个 token / 每个数据点)|
|
|
127
|
+
| 14s | click | 切换到 output scene |
|
|
128
|
+
| 17.8s | logo-reveal | hero reveal 时刻 |
|
|
129
|
+
| typewriter | type | 每 2 字符触发一次(密度别太高)|
|
|
130
|
+
|
|
131
|
+
**频段隔离**:BGM volume 0.32(低频底噪),SFX volume 0.55(中高频 punch),sparkle 0.7(要醒目),logo-reveal 0.85(最强 hero moment)。
|
|
132
|
+
|
|
133
|
+
**用户控制**:
|
|
134
|
+
- 必须有 ▶ 启动覆盖(浏览器 autoplay 限制)
|
|
135
|
+
- 右上角小 mute 按钮(用户随时切静音)
|
|
136
|
+
- 不要做成「翻到这页就强制响」
|
|
137
|
+
|
|
138
|
+
---
|
|
139
|
+
|
|
140
|
+
## 2 · 静态 Dashboard 设计要点
|
|
141
|
+
|
|
142
|
+
Dashboard 是双层结构的 Layer 1,PM 不点 ▶ 也能看懂这个 skill。
|
|
143
|
+
|
|
144
|
+
**布局**:3 列 grid(或 1 大 + 2 小),每个 panel 解决一个问题:
|
|
145
|
+
|
|
146
|
+
| Panel 类型 | 解决什么问题 | 案例 |
|
|
147
|
+
|---|---|---|
|
|
148
|
+
| **Pipeline / Flow Diagram** | 「这个 skill 的工作流程是什么?」| Nuwa 4 阶段 pipeline · Darwin autoresearch loop |
|
|
149
|
+
| **Snapshot / State** | 「跑出来的真实数据长什么样?」| Darwin 8 维 rubric snapshot |
|
|
150
|
+
| **Trajectory / Evolution** | 「多次运行后怎么变化?」| Darwin 5 代 hill-climb 曲线 |
|
|
151
|
+
| **Examples / Gallery** | 「已经产出过哪些东西?」| Nuwa 21 personas gallery |
|
|
152
|
+
| **Strip · Example I/O** | 「输入什么 → 输出什么」| Nuwa example strip:`› nuwa 蒸馏 费曼 → feynman.skill (21 min)` |
|
|
153
|
+
|
|
154
|
+
**关键约束**:
|
|
155
|
+
- 信息密度要够(每个 panel 都要承载差异化信息)
|
|
156
|
+
- 但不能塞数据 slop(每个数字都要有意义)
|
|
157
|
+
- 配色与 cinematic 一致(同色系,方便切换不突兀)
|
|
158
|
+
|
|
159
|
+
---
|
|
160
|
+
|
|
161
|
+
## 3 · 调试与开发工具
|
|
162
|
+
|
|
163
|
+
任何长动画必须配三个 dev 工具,否则调试会爆炸。
|
|
164
|
+
|
|
165
|
+
### 工具 1 · `?seek=N` 冻结到第 N 秒
|
|
166
|
+
|
|
167
|
+
```js
|
|
168
|
+
const seek = parseFloat(params.get('seek'));
|
|
169
|
+
if (!isNaN(seek)) {
|
|
170
|
+
started = true; muted = true;
|
|
171
|
+
frozenT = seek; // render() 用这个 t 而不是 elapsed
|
|
172
|
+
cinema.classList.add('show'); dash.classList.add('hide');
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
// render() 里:
|
|
176
|
+
let t = frozenT !== null ? frozenT : (elapsed % T.DURATION);
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
用法:`http://.../slide.html?seek=12` 直接看第 12 秒画面,不用等播放。
|
|
180
|
+
|
|
181
|
+
### 工具 2 · `?autoplay=1` 跳过 ▶ overlay
|
|
182
|
+
|
|
183
|
+
方便 playwright 自动截图测试,也方便嵌入 iframe 时 force 启动。
|
|
184
|
+
|
|
185
|
+
### 工具 3 · 手动 REPLAY 按钮
|
|
186
|
+
|
|
187
|
+
右上角小按钮,用户/调试时可以重播任意次。CSS:
|
|
188
|
+
|
|
189
|
+
```css
|
|
190
|
+
.replay{position:absolute;top:18px;right:18px;background:rgba(212,165,116,0.1);
|
|
191
|
+
border:1px solid rgba(212,165,116,0.3);color:#D4A574;
|
|
192
|
+
font-family:monospace;font-size:10px;letter-spacing:.28em;text-transform:uppercase;
|
|
193
|
+
padding:6px 12px;border-radius:1px;cursor:pointer;backdrop-filter:blur(6px);z-index:6}
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
---
|
|
197
|
+
|
|
198
|
+
## 4 · iframe 嵌入坑(如果 cinematic 嵌在 deck 里)
|
|
199
|
+
|
|
200
|
+
### 坑 1 · 父窗口的 click zone 拦截 iframe 内按钮
|
|
201
|
+
|
|
202
|
+
如果 deck index.html 加了「左右 22vw 透明 click zone 翻页」,会**覆盖到 iframe 内的 ▶ play 按钮**——用户点按钮被吞成「下一页」。
|
|
203
|
+
|
|
204
|
+
**修复**:click zone 加 `top: 12vh; bottom: 25vh`,给顶部和底部 25% 不拦截,让 iframe 内的中央 ▶ 和右下角 ▶ 都能点。
|
|
205
|
+
|
|
206
|
+
### 坑 2 · iframe 抢焦点后键盘事件丢失
|
|
207
|
+
|
|
208
|
+
用户点过 iframe 后,焦点在 iframe 里,父窗口的 ←/→ 键盘事件收不到。
|
|
209
|
+
|
|
210
|
+
**修复**:
|
|
211
|
+
```js
|
|
212
|
+
iframe.addEventListener('load', () => {
|
|
213
|
+
// 注入键盘转发器
|
|
214
|
+
const doc = iframe.contentDocument;
|
|
215
|
+
doc.addEventListener('keydown', (e) => {
|
|
216
|
+
window.dispatchEvent(new KeyboardEvent('keydown', { key: e.key, ... }));
|
|
217
|
+
});
|
|
218
|
+
// 点击后焦点拽回父窗口
|
|
219
|
+
doc.addEventListener('click', () => setTimeout(() => window.focus(), 0));
|
|
220
|
+
});
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
### 坑 3 · file:// vs https:// 行为差异
|
|
224
|
+
|
|
225
|
+
本地 file:// 测好的 cinematic 部署后可能崩,因为:
|
|
226
|
+
- file:// 下 iframe contentDocument 同源
|
|
227
|
+
- https:// 下也同源(如果同 host),但 audio autoplay 限制更严格
|
|
228
|
+
|
|
229
|
+
**修复**:
|
|
230
|
+
- 部署前用 `python3 -m http.server` 起本地 HTTP 测试一遍
|
|
231
|
+
- BGM 必须等用户点击 ▶ 后再 `bgm.play()`,不要 page-load 立刻播
|
|
232
|
+
|
|
233
|
+
---
|
|
234
|
+
|
|
235
|
+
## 5 · 反 pattern 速查表
|
|
236
|
+
|
|
237
|
+
| ❌ 反 pattern | ✅ 正 pattern |
|
|
238
|
+
|---|---|
|
|
239
|
+
| 默认 = 黑屏 ▶ overlay | 默认 = 静态 dashboard,▶ 是辅助 |
|
|
240
|
+
| 4 个 step 横排同屏 fade in | 5 个 scene 全屏切换,每场只 focus 一件事 |
|
|
241
|
+
| 复用模板换文案做不同 demo | 每个 demo 独立视觉语言(盖文案能区分) |
|
|
242
|
+
| emoji / SVG 手画当素材 | gpt-image-2 大图 + extract_grid 抠图 |
|
|
243
|
+
| 无 BGM 无 SFX | BGM + 11 SFX cues 双轨制 |
|
|
244
|
+
| 用 setTimeout 链 schedule | requestAnimationFrame + 全局时间轴 T 对象 |
|
|
245
|
+
| linear 动画 | Expo / cubic-bezier easing |
|
|
246
|
+
| 没有 dev 工具 | `?seek=N` + `?autoplay=1` + REPLAY 按钮 |
|
|
247
|
+
| iframe 内的按钮被父 click zone 吞 | click zone 加 top/bottom margin 给按钮让位 |
|
|
248
|
+
|
|
249
|
+
---
|
|
250
|
+
|
|
251
|
+
## 6 · 时间预算
|
|
252
|
+
|
|
253
|
+
按这套 pattern,一个完整 cinematic demo(含 dashboard):
|
|
254
|
+
|
|
255
|
+
| 任务 | 时间 |
|
|
256
|
+
|---|---|
|
|
257
|
+
| 设计 5-scene narrative + 视觉语言 | 30 分钟(要慎重,决定独立性)|
|
|
258
|
+
| Dashboard 静态布局 + 内容 | 1 小时 |
|
|
259
|
+
| Cinematic 5 scenes 实现 | 1.5 小时 |
|
|
260
|
+
| Audio cues 调时序 + replay 按钮 | 30 分钟 |
|
|
261
|
+
| Playwright 截图验证 5 个关键时刻 | 15 分钟 |
|
|
262
|
+
| **单个 demo 总计** | **3-4 小时** |
|
|
263
|
+
|
|
264
|
+
第二个 demo 复用框架但**视觉语言必须独立**,时间约 2-3 小时。
|