@bovinphang/frontend-craft 2.7.0 → 2.8.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 +2 -2
- package/.claude-plugin/plugin.json +1 -1
- package/CHANGELOG.md +34 -0
- package/CHANGELOG.zh-CN.md +34 -0
- package/README.md +1 -1
- package/README.openclaw.md +99 -43
- package/README.openclaw.zh-CN.md +99 -43
- package/README.zh-CN.md +1 -1
- package/agents/fec-architect.md +70 -70
- package/agents/fec-code-reviewer.md +82 -82
- package/agents/fec-debugger.md +20 -20
- package/agents/fec-design-token-mapper.md +36 -36
- package/agents/fec-doc-updater.md +13 -13
- package/agents/fec-e2e-runner.md +45 -45
- package/agents/fec-figma-implementer.md +59 -59
- package/agents/fec-performance-optimizer.md +128 -128
- package/agents/fec-refactor-cleaner.md +14 -14
- package/agents/fec-security-reviewer.md +66 -67
- package/agents/fec-test-planner.md +27 -27
- package/agents/fec-typescript-reviewer.md +87 -87
- package/agents/fec-ui-checker.md +74 -74
- package/commands/fec-debug.md +19 -19
- package/commands/fec-doc-sync.md +11 -11
- package/commands/fec-init.md +37 -38
- package/commands/fec-plan.md +58 -58
- package/commands/fec-refactor-clean.md +11 -11
- package/commands/fec-review.md +41 -41
- package/commands/fec-scaffold.md +41 -41
- package/commands/fec-tdd.md +13 -13
- package/dist/bin/frontend-craft.js +29 -27
- package/docs/example-prompts.md +3 -0
- package/docs/ja-JP/README.md +1 -1
- package/docs/ko-KR/README.md +1 -1
- package/docs/project-structure.md +13 -5
- package/docs/zh-CN/example-prompts.md +3 -0
- package/docs/zh-CN/project-structure.md +6 -1
- package/docs/zh-TW/README.md +1 -1
- package/localized/zh-CN/agents/fec-architect.md +125 -0
- package/localized/zh-CN/agents/fec-code-reviewer.md +152 -0
- package/localized/zh-CN/agents/fec-debugger.md +44 -0
- package/localized/zh-CN/agents/fec-design-token-mapper.md +75 -0
- package/localized/zh-CN/agents/fec-doc-updater.md +30 -0
- package/localized/zh-CN/agents/fec-e2e-runner.md +107 -0
- package/localized/zh-CN/agents/fec-figma-implementer.md +104 -0
- package/localized/zh-CN/agents/fec-performance-optimizer.md +293 -0
- package/localized/zh-CN/agents/fec-refactor-cleaner.md +32 -0
- package/localized/zh-CN/agents/fec-security-reviewer.md +116 -0
- package/localized/zh-CN/agents/fec-test-planner.md +50 -0
- package/localized/zh-CN/agents/fec-typescript-reviewer.md +142 -0
- package/localized/zh-CN/agents/fec-ui-checker.md +120 -0
- package/localized/zh-CN/commands/fec-debug.md +30 -0
- package/localized/zh-CN/commands/fec-doc-sync.md +19 -0
- package/localized/zh-CN/commands/fec-init.md +70 -0
- package/localized/zh-CN/commands/fec-plan.md +94 -0
- package/localized/zh-CN/commands/fec-refactor-clean.md +19 -0
- package/localized/zh-CN/commands/fec-review.md +66 -0
- package/localized/zh-CN/commands/fec-scaffold.md +205 -0
- package/localized/zh-CN/commands/fec-tdd.md +21 -0
- package/localized/zh-CN/skills/TEMPLATE.md +155 -0
- package/localized/zh-CN/skills/eval_queries.json +1013 -0
- package/localized/zh-CN/skills/fec-accessibility-check/SKILL.md +39 -0
- package/localized/zh-CN/skills/fec-accessibility-check/references/report-template.md +23 -0
- package/localized/zh-CN/skills/fec-accessibility-check/references/screen-reader-testing.md +33 -0
- package/localized/zh-CN/skills/fec-alchemy/SKILL.md +74 -0
- package/localized/zh-CN/skills/fec-alchemy/assets/absorption-plan-template.md +47 -0
- package/localized/zh-CN/skills/fec-alchemy/assets/intake-template.md +55 -0
- package/localized/zh-CN/skills/fec-alchemy/assets/review-checklist.md +31 -0
- package/localized/zh-CN/skills/fec-alchemy/references/methodology.md +94 -0
- package/localized/zh-CN/skills/fec-alchemy/references/originality-and-licensing.md +57 -0
- package/localized/zh-CN/skills/fec-api-integration/SKILL.md +78 -0
- package/localized/zh-CN/skills/fec-api-integration/references/integration-patterns.md +80 -0
- package/localized/zh-CN/skills/fec-backend-requirements-handoff/SKILL.md +45 -0
- package/localized/zh-CN/skills/fec-browser-storage/SKILL.md +34 -0
- package/localized/zh-CN/skills/fec-browser-storage/references/storage-patterns.md +65 -0
- package/localized/zh-CN/skills/fec-canvas-threejs/SKILL.md +66 -0
- package/localized/zh-CN/skills/fec-canvas-threejs/references/rendering-patterns.md +67 -0
- package/localized/zh-CN/skills/fec-canvas-threejs/references/shader-webgl-patterns.md +67 -0
- package/localized/zh-CN/skills/fec-code-review/SKILL.md +143 -0
- package/localized/zh-CN/skills/fec-code-review/references/report-template.md +29 -0
- package/localized/zh-CN/skills/fec-component-testing/SKILL.md +119 -0
- package/localized/zh-CN/skills/fec-data-fetching/SKILL.md +62 -0
- package/localized/zh-CN/skills/fec-data-fetching/references/query-patterns.md +103 -0
- package/localized/zh-CN/skills/fec-debug-framework/SKILL.md +157 -0
- package/localized/zh-CN/skills/fec-debug-framework/references/report-template.md +58 -0
- package/localized/zh-CN/skills/fec-dependency-upgrade/SKILL.md +34 -0
- package/localized/zh-CN/skills/fec-dependency-upgrade/references/dependency-upgrade-workflow.md +56 -0
- package/localized/zh-CN/skills/fec-doc-sync/SKILL.md +39 -0
- package/localized/zh-CN/skills/fec-drawio-studio/SKILL.md +73 -0
- package/localized/zh-CN/skills/fec-drawio-studio/data/THIRD_PARTY_NOTICES.md +10 -0
- package/localized/zh-CN/skills/fec-drawio-studio/data/brand-icons.json +878 -0
- package/localized/zh-CN/skills/fec-drawio-studio/data/shape-index.json +83570 -0
- package/localized/zh-CN/skills/fec-drawio-studio/references/data-residency.md +27 -0
- package/localized/zh-CN/skills/fec-drawio-studio/references/diagram-patterns.md +60 -0
- package/localized/zh-CN/skills/fec-drawio-studio/references/flowchart-quality.md +49 -0
- package/localized/zh-CN/skills/fec-drawio-studio/references/layout-and-export.md +72 -0
- package/localized/zh-CN/skills/fec-drawio-studio/references/troubleshooting.md +29 -0
- package/localized/zh-CN/skills/fec-drawio-studio/references/xml-and-mermaid.md +58 -0
- package/localized/zh-CN/skills/fec-drawio-studio/scripts/brand-symbols.mjs +99 -0
- package/localized/zh-CN/skills/fec-drawio-studio/scripts/diagram-lint.mjs +205 -0
- package/localized/zh-CN/skills/fec-drawio-studio/scripts/diagram-url.mjs +102 -0
- package/localized/zh-CN/skills/fec-drawio-studio/scripts/drawio-export.mjs +134 -0
- package/localized/zh-CN/skills/fec-drawio-studio/scripts/layout-graph.mjs +107 -0
- package/localized/zh-CN/skills/fec-drawio-studio/scripts/png-embed-fix.mjs +26 -0
- package/localized/zh-CN/skills/fec-drawio-studio/scripts/scan-go-packages.mjs +36 -0
- package/localized/zh-CN/skills/fec-drawio-studio/scripts/scan-js-modules.mjs +52 -0
- package/localized/zh-CN/skills/fec-drawio-studio/scripts/scan-python-classes.mjs +30 -0
- package/localized/zh-CN/skills/fec-drawio-studio/scripts/scan-python-modules.mjs +55 -0
- package/localized/zh-CN/skills/fec-drawio-studio/scripts/scan-rust-modules.mjs +35 -0
- package/localized/zh-CN/skills/fec-drawio-studio/scripts/scan-ts-modules.mjs +7 -0
- package/localized/zh-CN/skills/fec-drawio-studio/scripts/shape-query.mjs +121 -0
- package/localized/zh-CN/skills/fec-drawio-studio/scripts/studio-core.mjs +139 -0
- package/localized/zh-CN/skills/fec-drawio-studio/styles/built-in/corporate.json +49 -0
- package/localized/zh-CN/skills/fec-drawio-studio/styles/built-in/default.json +49 -0
- package/localized/zh-CN/skills/fec-drawio-studio/styles/built-in/handdrawn.json +49 -0
- package/localized/zh-CN/skills/fec-drawio-studio/styles/schema.json +112 -0
- package/localized/zh-CN/skills/fec-e2e-testing/SKILL.md +42 -0
- package/localized/zh-CN/skills/fec-e2e-testing/references/e2e-ci-reporting.md +62 -0
- package/localized/zh-CN/skills/fec-e2e-testing/references/e2e-special-scenarios.md +52 -0
- package/localized/zh-CN/skills/fec-e2e-testing/references/e2e-visual-regression.md +60 -0
- package/localized/zh-CN/skills/fec-e2e-testing/references/playwright-patterns.md +95 -0
- package/localized/zh-CN/skills/fec-form-handling/SKILL.md +76 -0
- package/localized/zh-CN/skills/fec-form-handling/references/advanced-form-patterns.md +101 -0
- package/localized/zh-CN/skills/fec-image-generation/SKILL.md +80 -0
- package/localized/zh-CN/skills/fec-image-generation/assets/interactive-diagram.html +371 -0
- package/localized/zh-CN/skills/fec-image-generation/references/artifact-routing.md +80 -0
- package/localized/zh-CN/skills/fec-image-generation/references/diagram-workflows.md +74 -0
- package/localized/zh-CN/skills/fec-image-generation/references/html-technical-diagrams.md +236 -0
- package/localized/zh-CN/skills/fec-image-generation/references/png-qa-autofix.md +30 -0
- package/localized/zh-CN/skills/fec-image-generation/scripts/export-diagram.mjs +364 -0
- package/localized/zh-CN/skills/fec-image-generation/scripts/interactive-diagram-server.mjs +654 -0
- package/localized/zh-CN/skills/fec-image-generation/scripts/png-qa.mjs +431 -0
- package/localized/zh-CN/skills/fec-image-generation/scripts/tech-diagram-render.mjs +1397 -0
- package/localized/zh-CN/skills/fec-implement-from-design/SKILL.md +129 -0
- package/localized/zh-CN/skills/fec-implement-from-design/references/design-plan-template.md +36 -0
- package/localized/zh-CN/skills/fec-legacy-to-modern-migration/SKILL.md +46 -0
- package/localized/zh-CN/skills/fec-legacy-to-modern-migration/references/migration-execution-checklist.md +110 -0
- package/localized/zh-CN/skills/fec-legacy-to-modern-migration/references/migration-report-template.md +41 -0
- package/localized/zh-CN/skills/fec-legacy-to-modern-migration/references/migration-strategy-and-mapping.md +48 -0
- package/localized/zh-CN/skills/fec-legacy-web-standard/SKILL.md +35 -0
- package/localized/zh-CN/skills/fec-legacy-web-standard/references/legacy-patterns.md +85 -0
- package/localized/zh-CN/skills/fec-list-virtualization/SKILL.md +34 -0
- package/localized/zh-CN/skills/fec-list-virtualization/references/virtualization-patterns.md +80 -0
- package/localized/zh-CN/skills/fec-monorepo-project-standard/SKILL.md +142 -0
- package/localized/zh-CN/skills/fec-motion-interaction/SKILL.md +73 -0
- package/localized/zh-CN/skills/fec-motion-interaction/references/motion-patterns.md +112 -0
- package/localized/zh-CN/skills/fec-nextjs-project-standard/SKILL.md +123 -0
- package/localized/zh-CN/skills/fec-nuxt-project-standard/SKILL.md +122 -0
- package/localized/zh-CN/skills/fec-performance-optimization/SKILL.md +80 -0
- package/localized/zh-CN/skills/fec-performance-optimization/references/framework-performance-patterns.md +38 -0
- package/localized/zh-CN/skills/fec-performance-optimization/references/report-template.md +59 -0
- package/localized/zh-CN/skills/fec-pwa-implementation/SKILL.md +35 -0
- package/localized/zh-CN/skills/fec-pwa-implementation/references/manifest-and-icons.md +53 -0
- package/localized/zh-CN/skills/fec-pwa-implementation/references/service-worker-workbox.md +68 -0
- package/localized/zh-CN/skills/fec-react-project-standard/SKILL.md +91 -0
- package/localized/zh-CN/skills/fec-react-project-standard/references/react-performance-patterns.md +35 -0
- package/localized/zh-CN/skills/fec-react-project-standard/references/react-project-structure.md +197 -0
- package/localized/zh-CN/skills/fec-react-project-standard/references/react-quality-patterns.md +131 -0
- package/localized/zh-CN/skills/fec-react-project-standard/references/react-runtime-patterns.md +293 -0
- package/localized/zh-CN/skills/fec-refactor-clean/SKILL.md +51 -0
- package/localized/zh-CN/skills/fec-refactor-clean/references/report-template.md +42 -0
- package/localized/zh-CN/skills/fec-responsive-layout/SKILL.md +34 -0
- package/localized/zh-CN/skills/fec-responsive-layout/references/responsive-layout-patterns.md +70 -0
- package/localized/zh-CN/skills/fec-route-protection/SKILL.md +135 -0
- package/localized/zh-CN/skills/fec-security-review/SKILL.md +38 -0
- package/localized/zh-CN/skills/fec-security-review/references/report-template.md +27 -0
- package/localized/zh-CN/skills/fec-security-review/references/security-checklist.md +64 -0
- package/localized/zh-CN/skills/fec-source-driven-development/SKILL.md +87 -0
- package/localized/zh-CN/skills/fec-state-management/SKILL.md +140 -0
- package/localized/zh-CN/skills/fec-state-management/references/state-patterns.md +109 -0
- package/localized/zh-CN/skills/fec-storybook-component-doc/SKILL.md +37 -0
- package/localized/zh-CN/skills/fec-storybook-component-doc/references/story-patterns.md +118 -0
- package/localized/zh-CN/skills/fec-svg-animation/SKILL.md +148 -0
- package/localized/zh-CN/skills/fec-tailwind-design-system/SKILL.md +34 -0
- package/localized/zh-CN/skills/fec-tailwind-design-system/references/tailwind-system-patterns.md +59 -0
- package/localized/zh-CN/skills/fec-tdd-workflow/SKILL.md +52 -0
- package/localized/zh-CN/skills/fec-testing-strategy/SKILL.md +45 -0
- package/localized/zh-CN/skills/fec-typescript-project-standard/SKILL.md +54 -0
- package/localized/zh-CN/skills/fec-typescript-project-standard/references/type-safety-patterns.md +102 -0
- package/localized/zh-CN/skills/fec-typescript-project-standard/references/type-safety.md +148 -0
- package/localized/zh-CN/skills/fec-ui-design/SKILL.md +108 -0
- package/localized/zh-CN/skills/fec-ui-design/data/product-rules.json +231 -0
- package/localized/zh-CN/skills/fec-ui-design/data/stack-ui-rules.json +146 -0
- package/localized/zh-CN/skills/fec-ui-design/data/style-archetypes.json +373 -0
- package/localized/zh-CN/skills/fec-ui-design/data/ux-quality-rules.json +203 -0
- package/localized/zh-CN/skills/fec-ui-design/references/design-intelligence.md +97 -0
- package/localized/zh-CN/skills/fec-ui-design/references/master-page-overrides.md +30 -0
- package/localized/zh-CN/skills/fec-ui-design/references/pre-delivery-checklist.md +39 -0
- package/localized/zh-CN/skills/fec-ui-design/scripts/design-system.mjs +648 -0
- package/localized/zh-CN/skills/fec-validation-fix/SKILL.md +51 -0
- package/localized/zh-CN/skills/fec-validation-fix/references/report-template.md +43 -0
- package/localized/zh-CN/skills/fec-vite-project-standard/SKILL.md +83 -0
- package/localized/zh-CN/skills/fec-vue3-project-standard/SKILL.md +58 -0
- package/localized/zh-CN/skills/fec-vue3-project-standard/references/vue3-composables-routing.md +162 -0
- package/localized/zh-CN/skills/fec-vue3-project-standard/references/vue3-performance-patterns.md +13 -0
- package/localized/zh-CN/skills/fec-vue3-project-standard/references/vue3-project-structure.md +176 -0
- package/localized/zh-CN/skills/fec-vue3-project-standard/references/vue3-state-api-quality.md +216 -0
- package/localized/zh-CN/skills/fec-web-video-presentation/SKILL.md +61 -0
- package/localized/zh-CN/skills/fec-web-video-presentation/data/starter-themes.json +59 -0
- package/localized/zh-CN/skills/fec-web-video-presentation/references/chapter-craft.md +37 -0
- package/localized/zh-CN/skills/fec-web-video-presentation/references/content-plan.md +38 -0
- package/localized/zh-CN/skills/fec-web-video-presentation/references/recording-and-audio.md +33 -0
- package/localized/zh-CN/skills/fec-web-video-presentation/references/theme-system.md +36 -0
- package/localized/zh-CN/skills/fec-web-video-presentation/scripts/create-video-presentation.mjs +430 -0
- package/localized/zh-CN/skills/fec-web-workers/SKILL.md +35 -0
- package/localized/zh-CN/skills/fec-web-workers/references/advanced-workers.md +54 -0
- package/localized/zh-CN/skills/fec-web-workers/references/basic-worker.md +67 -0
- package/localized/zh-CN/skills/metadata.json +1646 -0
- package/localized/zh-CN/skills/relations.json +755 -0
- package/localized/zh-CN/templates/claude/CLAUDE.md +106 -0
- package/localized/zh-CN/templates/claude/settings.json +62 -0
- package/localized/zh-CN/templates/codex/AGENTS.md +105 -0
- package/localized/zh-CN/templates/codex/config.toml +32 -0
- package/localized/zh-CN/templates/openclaw/AGENTS.md +101 -0
- package/localized/zh-CN/templates/openclaw/OPENCLAW-CONFIG.md +12 -0
- package/localized/zh-CN/templates/shared/rules/fec-agent-workflow.md +54 -0
- package/localized/zh-CN/templates/shared/rules/fec-api-layer.md +99 -0
- package/localized/zh-CN/templates/shared/rules/fec-ci-cd.md +40 -0
- package/localized/zh-CN/templates/shared/rules/fec-code-comments.md +33 -0
- package/localized/zh-CN/templates/shared/rules/fec-design-system.md +72 -0
- package/localized/zh-CN/templates/shared/rules/fec-error-handling.md +56 -0
- package/localized/zh-CN/templates/shared/rules/fec-git-conventions.md +73 -0
- package/localized/zh-CN/templates/shared/rules/fec-i18n.md +64 -0
- package/localized/zh-CN/templates/shared/rules/fec-naming-conventions.md +120 -0
- package/localized/zh-CN/templates/shared/rules/fec-performance.md +101 -0
- package/localized/zh-CN/templates/shared/rules/fec-react.md +82 -0
- package/localized/zh-CN/templates/shared/rules/fec-refactoring.md +47 -0
- package/localized/zh-CN/templates/shared/rules/fec-rendering-patterns.md +40 -0
- package/localized/zh-CN/templates/shared/rules/fec-responsive-design.md +50 -0
- package/localized/zh-CN/templates/shared/rules/fec-source-driven-development.md +31 -0
- package/localized/zh-CN/templates/shared/rules/fec-state-management.md +60 -0
- package/localized/zh-CN/templates/shared/rules/fec-testing.md +98 -0
- package/localized/zh-CN/templates/shared/rules/fec-typescript.md +112 -0
- package/localized/zh-CN/templates/shared/rules/fec-vue.md +64 -0
- package/localized/zh-CN/templates/shared/rules/fec-working-modes.md +50 -0
- package/openclaw.plugin.json +1 -1
- package/package.json +3 -2
- package/skills/TEMPLATE.md +74 -74
- package/skills/eval_queries.json +678 -678
- package/skills/fec-accessibility-check/SKILL.md +21 -21
- package/skills/fec-accessibility-check/references/report-template.md +12 -12
- package/skills/fec-accessibility-check/references/screen-reader-testing.md +24 -24
- package/skills/fec-alchemy/SKILL.md +50 -50
- package/skills/fec-alchemy/assets/absorption-plan-template.md +32 -32
- package/skills/fec-alchemy/assets/intake-template.md +55 -55
- package/skills/fec-alchemy/assets/review-checklist.md +23 -23
- package/skills/fec-alchemy/references/methodology.md +66 -66
- package/skills/fec-alchemy/references/originality-and-licensing.md +42 -42
- package/skills/fec-api-integration/SKILL.md +61 -61
- package/skills/fec-api-integration/references/integration-patterns.md +30 -30
- package/skills/fec-backend-requirements-handoff/SKILL.md +25 -25
- package/skills/fec-browser-storage/SKILL.md +16 -16
- package/skills/fec-browser-storage/references/storage-patterns.md +16 -16
- package/skills/fec-canvas-threejs/SKILL.md +21 -21
- package/skills/fec-canvas-threejs/references/rendering-patterns.md +10 -10
- package/skills/fec-canvas-threejs/references/shader-webgl-patterns.md +37 -37
- package/skills/fec-code-review/SKILL.md +94 -94
- package/skills/fec-code-review/references/report-template.md +13 -13
- package/skills/fec-component-testing/SKILL.md +39 -39
- package/skills/fec-data-fetching/SKILL.md +16 -16
- package/skills/fec-data-fetching/references/query-patterns.md +27 -27
- package/skills/fec-debug-framework/SKILL.md +95 -95
- package/skills/fec-debug-framework/references/report-template.md +34 -34
- package/skills/fec-dependency-upgrade/SKILL.md +17 -17
- package/skills/fec-dependency-upgrade/references/dependency-upgrade-workflow.md +31 -31
- package/skills/fec-doc-sync/SKILL.md +23 -23
- package/skills/fec-drawio-studio/SKILL.md +42 -38
- package/skills/fec-drawio-studio/data/THIRD_PARTY_NOTICES.md +1 -1
- package/skills/fec-drawio-studio/data/shape-index.json +83570 -0
- package/skills/fec-drawio-studio/references/diagram-patterns.md +19 -0
- package/skills/fec-drawio-studio/references/flowchart-quality.md +49 -0
- package/skills/fec-drawio-studio/references/layout-and-export.md +18 -3
- package/skills/fec-drawio-studio/references/xml-and-mermaid.md +5 -1
- package/skills/fec-drawio-studio/scripts/diagram-lint.mjs +62 -0
- package/skills/fec-drawio-studio/scripts/drawio-export.mjs +134 -0
- package/skills/fec-drawio-studio/scripts/shape-query.mjs +55 -15
- package/skills/fec-e2e-testing/SKILL.md +24 -24
- package/skills/fec-e2e-testing/references/e2e-ci-reporting.md +20 -20
- package/skills/fec-e2e-testing/references/e2e-special-scenarios.md +10 -10
- package/skills/fec-e2e-testing/references/e2e-visual-regression.md +17 -17
- package/skills/fec-e2e-testing/references/playwright-patterns.md +6 -6
- package/skills/fec-form-handling/SKILL.md +21 -21
- package/skills/fec-form-handling/references/advanced-form-patterns.md +41 -41
- package/skills/fec-image-generation/SKILL.md +54 -29
- package/skills/fec-image-generation/assets/interactive-diagram.html +371 -0
- package/skills/fec-image-generation/references/diagram-workflows.md +33 -2
- package/skills/fec-image-generation/references/html-technical-diagrams.md +236 -0
- package/skills/fec-image-generation/scripts/export-diagram.mjs +364 -0
- package/skills/fec-image-generation/scripts/interactive-diagram-server.mjs +654 -0
- package/skills/fec-image-generation/scripts/tech-diagram-render.mjs +1397 -0
- package/skills/fec-implement-from-design/SKILL.md +81 -81
- package/skills/fec-implement-from-design/references/design-plan-template.md +16 -16
- package/skills/fec-legacy-to-modern-migration/SKILL.md +29 -29
- package/skills/fec-legacy-to-modern-migration/references/migration-execution-checklist.md +81 -81
- package/skills/fec-legacy-to-modern-migration/references/migration-report-template.md +37 -37
- package/skills/fec-legacy-to-modern-migration/references/migration-strategy-and-mapping.md +31 -31
- package/skills/fec-legacy-web-standard/SKILL.md +17 -17
- package/skills/fec-legacy-web-standard/references/legacy-patterns.md +16 -16
- package/skills/fec-list-virtualization/SKILL.md +16 -16
- package/skills/fec-list-virtualization/references/virtualization-patterns.md +31 -31
- package/skills/fec-monorepo-project-standard/SKILL.md +52 -52
- package/skills/fec-motion-interaction/SKILL.md +51 -51
- package/skills/fec-motion-interaction/references/motion-patterns.md +11 -11
- package/skills/fec-nextjs-project-standard/SKILL.md +64 -64
- package/skills/fec-nuxt-project-standard/SKILL.md +57 -57
- package/skills/fec-performance-optimization/SKILL.md +54 -54
- package/skills/fec-performance-optimization/references/framework-performance-patterns.md +23 -23
- package/skills/fec-performance-optimization/references/report-template.md +31 -31
- package/skills/fec-pwa-implementation/SKILL.md +17 -17
- package/skills/fec-pwa-implementation/references/manifest-and-icons.md +12 -12
- package/skills/fec-pwa-implementation/references/service-worker-workbox.md +13 -13
- package/skills/fec-react-project-standard/SKILL.md +72 -72
- package/skills/fec-react-project-standard/references/react-performance-patterns.md +28 -28
- package/skills/fec-react-project-standard/references/react-project-structure.md +112 -112
- package/skills/fec-react-project-standard/references/react-quality-patterns.md +72 -72
- package/skills/fec-react-project-standard/references/react-runtime-patterns.md +94 -94
- package/skills/fec-refactor-clean/SKILL.md +30 -30
- package/skills/fec-refactor-clean/references/report-template.md +23 -23
- package/skills/fec-responsive-layout/SKILL.md +17 -17
- package/skills/fec-responsive-layout/references/responsive-layout-patterns.md +37 -37
- package/skills/fec-route-protection/SKILL.md +26 -26
- package/skills/fec-security-review/SKILL.md +20 -20
- package/skills/fec-security-review/references/report-template.md +12 -12
- package/skills/fec-security-review/references/security-checklist.md +27 -27
- package/skills/fec-source-driven-development/SKILL.md +59 -59
- package/skills/fec-state-management/SKILL.md +34 -34
- package/skills/fec-state-management/references/state-patterns.md +19 -19
- package/skills/fec-storybook-component-doc/SKILL.md +19 -19
- package/skills/fec-storybook-component-doc/references/story-patterns.md +12 -12
- package/skills/fec-svg-animation/SKILL.md +32 -32
- package/skills/fec-tailwind-design-system/SKILL.md +17 -17
- package/skills/fec-tailwind-design-system/references/tailwind-system-patterns.md +36 -36
- package/skills/fec-tdd-workflow/SKILL.md +28 -28
- package/skills/fec-testing-strategy/SKILL.md +29 -29
- package/skills/fec-typescript-project-standard/SKILL.md +38 -38
- package/skills/fec-typescript-project-standard/references/type-safety-patterns.md +20 -20
- package/skills/fec-typescript-project-standard/references/type-safety.md +18 -18
- package/skills/fec-ui-design/SKILL.md +90 -90
- package/skills/fec-ui-design/references/design-intelligence.md +61 -61
- package/skills/fec-ui-design/references/master-page-overrides.md +15 -15
- package/skills/fec-ui-design/references/pre-delivery-checklist.md +38 -38
- package/skills/fec-validation-fix/SKILL.md +26 -26
- package/skills/fec-validation-fix/references/report-template.md +25 -25
- package/skills/fec-vite-project-standard/SKILL.md +39 -39
- package/skills/fec-vue3-project-standard/SKILL.md +38 -38
- package/skills/fec-vue3-project-standard/references/vue3-composables-routing.md +36 -36
- package/skills/fec-vue3-project-standard/references/vue3-performance-patterns.md +8 -8
- package/skills/fec-vue3-project-standard/references/vue3-project-structure.md +112 -112
- package/skills/fec-vue3-project-standard/references/vue3-state-api-quality.md +74 -74
- package/skills/fec-web-video-presentation/SKILL.md +33 -33
- package/skills/fec-web-workers/SKILL.md +16 -16
- package/skills/fec-web-workers/references/advanced-workers.md +13 -13
- package/skills/fec-web-workers/references/basic-worker.md +8 -8
- package/skills/metadata.json +121 -115
- package/skills/relations.json +4 -0
- package/templates/claude/CLAUDE.md +60 -60
- package/templates/codex/AGENTS.md +76 -76
- package/templates/codex/config.toml +4 -4
- package/templates/openclaw/AGENTS.md +68 -68
- package/templates/openclaw/OPENCLAW-CONFIG.md +8 -8
- package/templates/shared/rules/fec-agent-workflow.md +40 -40
- package/templates/shared/rules/fec-api-layer.md +52 -52
- package/templates/shared/rules/fec-ci-cd.md +29 -29
- package/templates/shared/rules/fec-code-comments.md +22 -22
- package/templates/shared/rules/fec-design-system.md +53 -53
- package/templates/shared/rules/fec-error-handling.md +40 -40
- package/templates/shared/rules/fec-git-conventions.md +42 -42
- package/templates/shared/rules/fec-i18n.md +48 -48
- package/templates/shared/rules/fec-naming-conventions.md +91 -91
- package/templates/shared/rules/fec-performance.md +78 -78
- package/templates/shared/rules/fec-react.md +58 -58
- package/templates/shared/rules/fec-refactoring.md +34 -34
- package/templates/shared/rules/fec-rendering-patterns.md +36 -36
- package/templates/shared/rules/fec-responsive-design.md +37 -37
- package/templates/shared/rules/fec-source-driven-development.md +22 -22
- package/templates/shared/rules/fec-state-management.md +56 -56
- package/templates/shared/rules/fec-testing.md +64 -64
- package/templates/shared/rules/fec-typescript.md +75 -75
- package/templates/shared/rules/fec-vue.md +42 -42
- package/templates/shared/rules/fec-working-modes.md +34 -34
- package/skills/fec-drawio-studio/data/shape-index.json.gz +0 -0
|
@@ -1,40 +1,40 @@
|
|
|
1
1
|
# Vue 3 project structure and component standards
|
|
2
2
|
|
|
3
|
-
##
|
|
3
|
+
## Project structure
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
The following is the industry's best practice structure for medium and large Vue 3 projects, tailored according to the actual situation of the project:
|
|
6
6
|
|
|
7
7
|
```
|
|
8
8
|
src/
|
|
9
|
-
├── app/
|
|
10
|
-
│
|
|
11
|
-
│
|
|
12
|
-
│
|
|
9
|
+
├── app/ # Application entry and global configuration
|
|
10
|
+
│ ├── App.vue # Root component
|
|
11
|
+
│ ├── main.ts # Application startup entrance
|
|
12
|
+
│ └── router.ts # Routing instance and configuration
|
|
13
13
|
│
|
|
14
|
-
├── pages/
|
|
14
|
+
├── pages/ # Page components (one-to-one correspondence with routing)
|
|
15
15
|
│ ├── Dashboard/
|
|
16
16
|
│ │ ├── DashboardPage.vue
|
|
17
|
-
│
|
|
18
|
-
│
|
|
17
|
+
│ │ ├── components/ # Page private components
|
|
18
|
+
│ │ └── composables/ # Page private composables
|
|
19
19
|
│ ├── UserList/
|
|
20
20
|
│ └── Settings/
|
|
21
21
|
│
|
|
22
|
-
├── layouts/
|
|
23
|
-
│
|
|
24
|
-
│
|
|
25
|
-
│
|
|
22
|
+
├── layouts/ # Layout component
|
|
23
|
+
│ ├── MainLayout.vue # Main layout (sidebar + top bar + content area)
|
|
24
|
+
│ ├── AuthLayout.vue # Login/registration page layout
|
|
25
|
+
│ └── BlankLayout.vue # Blank layout (error page, etc.)
|
|
26
26
|
│
|
|
27
|
-
├── features/
|
|
27
|
+
├── features/ # Function modules (divided by business areas)
|
|
28
28
|
│ ├── auth/
|
|
29
|
-
│
|
|
30
|
-
│
|
|
31
|
-
│
|
|
32
|
-
│
|
|
33
|
-
│
|
|
34
|
-
│
|
|
29
|
+
│ │ ├── components/ # Module components
|
|
30
|
+
│ │ ├── composables/ # module composables
|
|
31
|
+
│ │ ├── api.ts # Module API call
|
|
32
|
+
│ │ ├── types.ts # Module type definition
|
|
33
|
+
│ │ ├── constants.ts # Module constants
|
|
34
|
+
│ │ └── index.ts # Module publicly exported
|
|
35
35
|
│ └── order/
|
|
36
36
|
│
|
|
37
|
-
├── components/
|
|
37
|
+
├── components/ # Globally shared UI components
|
|
38
38
|
│ ├── AppButton/
|
|
39
39
|
│ │ ├── AppButton.vue
|
|
40
40
|
│ │ └── __tests__/
|
|
@@ -42,113 +42,113 @@ src/
|
|
|
42
42
|
│ ├── AppForm/
|
|
43
43
|
│ └── AppErrorBoundary/
|
|
44
44
|
│
|
|
45
|
-
├── composables/
|
|
45
|
+
├── composables/ # Global shared composables
|
|
46
46
|
│ ├── useAuth.ts
|
|
47
47
|
│ ├── useDebounce.ts
|
|
48
48
|
│ └── useMediaQuery.ts
|
|
49
49
|
│
|
|
50
|
-
├── services/
|
|
51
|
-
│
|
|
52
|
-
│
|
|
50
|
+
├── services/ # API base layer
|
|
51
|
+
│ ├── request.ts # Axios/fetch instance and interceptor
|
|
52
|
+
│ └── endpoints/ # API endpoint definition (such as split by field)
|
|
53
53
|
│
|
|
54
|
-
├── stores/
|
|
54
|
+
├── stores/ # Pinia status management
|
|
55
55
|
│ ├── authStore.ts
|
|
56
56
|
│ └── uiStore.ts
|
|
57
57
|
│
|
|
58
|
-
├── locales/
|
|
59
|
-
│
|
|
60
|
-
│
|
|
61
|
-
│
|
|
62
|
-
│
|
|
63
|
-
├── assets/
|
|
64
|
-
│
|
|
65
|
-
│
|
|
66
|
-
│
|
|
67
|
-
│
|
|
68
|
-
├── config/
|
|
69
|
-
│
|
|
70
|
-
│
|
|
71
|
-
│
|
|
72
|
-
├── types/
|
|
73
|
-
│
|
|
74
|
-
│
|
|
75
|
-
│
|
|
76
|
-
│
|
|
77
|
-
├── utils/
|
|
78
|
-
│
|
|
79
|
-
│
|
|
80
|
-
│
|
|
81
|
-
│
|
|
82
|
-
├── directives/
|
|
83
|
-
│
|
|
84
|
-
│
|
|
85
|
-
│
|
|
86
|
-
├── plugins/
|
|
87
|
-
│
|
|
88
|
-
│
|
|
89
|
-
│
|
|
90
|
-
├── styles/
|
|
91
|
-
│
|
|
92
|
-
│
|
|
93
|
-
│
|
|
94
|
-
│
|
|
95
|
-
│
|
|
96
|
-
│
|
|
97
|
-
│
|
|
98
|
-
│
|
|
99
|
-
└── constants/
|
|
100
|
-
├── routes.ts
|
|
101
|
-
└── config.ts
|
|
58
|
+
├── locales/ # International language pack
|
|
59
|
+
│ ├── zh-CN.json # Simplified Chinese
|
|
60
|
+
│ ├── en-US.json # English
|
|
61
|
+
│ └── index.ts # i18n instance initialization (vue-i18n)
|
|
62
|
+
│
|
|
63
|
+
├── assets/ # Static resources
|
|
64
|
+
│ ├── images/ # Pictures (PNG, JPG, WebP)
|
|
65
|
+
│ ├── icons/ # SVG icon
|
|
66
|
+
│ └── fonts/ # Custom fonts
|
|
67
|
+
│
|
|
68
|
+
├── config/ # Application configuration
|
|
69
|
+
│ ├── env.ts # Typed encapsulation of environment variables
|
|
70
|
+
│ └── features.ts # Feature Flags Management
|
|
71
|
+
│
|
|
72
|
+
├── types/ # Global shared types
|
|
73
|
+
│ ├── api.ts # API response/request common type
|
|
74
|
+
│ ├── models.ts #Business entity type
|
|
75
|
+
│ └── global.d.ts # Global type extension (component type, module declaration, etc.)
|
|
76
|
+
│
|
|
77
|
+
├── utils/ # Pure utility function
|
|
78
|
+
│ ├── format.ts # Date, number, currency formatting
|
|
79
|
+
│ ├── validators.ts # Form validation rules
|
|
80
|
+
│ └── storage.ts # LocalStorage / SessionStorage package
|
|
81
|
+
│
|
|
82
|
+
├── directives/ # Custom directives
|
|
83
|
+
│ ├── vPermission.ts # Permission command
|
|
84
|
+
│ └── vClickOutside.ts # Click outside to close
|
|
85
|
+
│
|
|
86
|
+
├── plugins/ # Vue plug-in registration
|
|
87
|
+
│ ├── i18n.ts # vue-i18n plug-in configuration
|
|
88
|
+
│ └── index.ts # Plug-in unified registration entrance
|
|
89
|
+
│
|
|
90
|
+
├── styles/ # Global styles and themes
|
|
91
|
+
│ ├── global.css # Global basic style (reset/normalize)
|
|
92
|
+
│ ├── variables.css # CSS variables (color, spacing, font size)
|
|
93
|
+
│ ├── breakpoints.ts # Responsive breakpoint constants
|
|
94
|
+
│ └── themes/ # theme definition
|
|
95
|
+
│ ├── light.css # Light theme variable
|
|
96
|
+
│ ├── dark.css # Dark theme variable
|
|
97
|
+
│ └── index.ts # theme switching logic
|
|
98
|
+
│
|
|
99
|
+
└── constants/ # Global constants
|
|
100
|
+
├── routes.ts #Routing path constants
|
|
101
|
+
└── config.ts #Business constants (paging size, timeout, etc.)
|
|
102
102
|
```
|
|
103
103
|
|
|
104
|
-
###
|
|
105
|
-
|
|
106
|
-
- `pages/`
|
|
107
|
-
- `layouts/`
|
|
108
|
-
- `features/`
|
|
109
|
-
- `components/`
|
|
110
|
-
- `composables/`
|
|
111
|
-
- `locales/`
|
|
112
|
-
- `assets/`
|
|
113
|
-
- `config/`
|
|
114
|
-
- `styles/themes/`
|
|
115
|
-
-
|
|
116
|
-
|
|
117
|
-
##
|
|
118
|
-
|
|
119
|
-
-
|
|
120
|
-
-
|
|
121
|
-
-
|
|
122
|
-
-
|
|
123
|
-
-
|
|
124
|
-
-
|
|
125
|
-
-
|
|
126
|
-
-
|
|
127
|
-
-
|
|
128
|
-
|
|
129
|
-
###
|
|
104
|
+
### Key Principles
|
|
105
|
+
|
|
106
|
+
- `pages/` does route mapping and layout combination without putting business logic
|
|
107
|
+
- `layouts/` defines the page skeleton (sidebar, top bar, breadcrumbs), referenced by the `component` of the routing configuration
|
|
108
|
+
- `features/` is divided by business areas, self-contained within the module (components + composables + api + types)
|
|
109
|
+
- `components/` only contains common components without business coupling and can be reused across projects
|
|
110
|
+
- `composables/` only places common logic (anti-shake, media query, etc.), and business composables are placed in the corresponding feature
|
|
111
|
+
- `locales/` stores language pack JSON files, use `$t('key')` in the template instead of hard-coded copy
|
|
112
|
+
- `assets/` stores static resources, SVG is preferred for icons, and WebP/AVIF is preferred for images.
|
|
113
|
+
- `config/` encapsulates environment variables and Feature Flags, prohibiting direct reading of `import.meta.env` in components
|
|
114
|
+
- `styles/themes/` implements theme switching through CSS variables. Variables are referenced in components instead of hard-coded colors.
|
|
115
|
+
- Each module controls the public API through `index.ts` to avoid deep path imports
|
|
116
|
+
|
|
117
|
+
## Component design specifications
|
|
118
|
+
|
|
119
|
+
- Use `<script setup lang="ts">`
|
|
120
|
+
- Explicitly use `defineProps` / `defineEmits` with accompanying types
|
|
121
|
+
- Reusable logic is first extracted to composables
|
|
122
|
+
- Keep the template readable and avoid too deep nesting of conditions
|
|
123
|
+
- Prefer using computed properties instead of repeatedly maintaining state
|
|
124
|
+
- Avoid building large single components; **single file size** see `templates/shared/rules/fec-vue.md` "**component file size**" (approximately 300 lines or less, more than 500 lines or too complex to separate sub-components and Composables)
|
|
125
|
+
- Prioritize the use of strongly typed props, emits and exposed methods
|
|
126
|
+
- Follow the file and directory naming conventions of the warehouse
|
|
127
|
+
- Prioritize reuse of existing UI components and tokens
|
|
128
|
+
|
|
129
|
+
### Component layering
|
|
130
130
|
|
|
131
131
|
```
|
|
132
|
-
|
|
133
|
-
└──
|
|
134
|
-
└──
|
|
135
|
-
└──
|
|
132
|
+
Pages → Route mapping, layout combination
|
|
133
|
+
└── Container components (Containers) → Data acquisition, status orchestration
|
|
134
|
+
└── Business components (Features) → Domain logic display
|
|
135
|
+
└── Universal Component (UI) → Pure display, no business coupling
|
|
136
136
|
```
|
|
137
137
|
|
|
138
|
-
##
|
|
138
|
+
## Comment specifications
|
|
139
139
|
|
|
140
|
-
-
|
|
141
|
-
-
|
|
142
|
-
-
|
|
143
|
-
-
|
|
140
|
+
- **Prefer using Chinese**: When explaining "why this is done", business constraints, boundary conditions, and non-obvious trade-offs, give priority to writing comments in Chinese to make it easier for the team and business parties to read.
|
|
141
|
+
- **Exception when consistent with the code language**: When connecting third-party protocol field names, HTTP headers, and English terms in specifications, English proper nouns can be retained in the comments, and Chinese and English descriptions can be given when necessary.
|
|
142
|
+
- **Less but more precise**: Can express clear logic through clear naming and types without writing nonsense comments; complex branches, temporary compatibility, and performance trade-offs must be clearly stated.
|
|
143
|
+
- **Public API**: Composable or module external contracts can use JSDoc (`@param` / `@returns` / `@example`). The instructions can be in Chinese, unless the warehouse requires English.
|
|
144
144
|
|
|
145
|
-
## TypeScript
|
|
145
|
+
## TypeScript Specification
|
|
146
146
|
|
|
147
|
-
|
|
147
|
+
Common TypeScript project rules are taken care of by `fec-typescript-project-standard`, including `tsconfig`, strictness, DTO / view model boundaries, `unknown` narrowing, public API types, declared artifacts, and type tests.
|
|
148
148
|
|
|
149
|
-
Vue
|
|
149
|
+
The Vue specification only supplements SFC, Props / Emits, exposed methods, Provide / Inject and composable reactive types; complex type modeling or cross-framework type contracts are first offloaded to `fec-typescript-project-standard`.
|
|
150
150
|
|
|
151
|
-
### Vue 3
|
|
151
|
+
### Vue 3 project supplementary conventions
|
|
152
152
|
|
|
153
153
|
```vue
|
|
154
154
|
<script setup lang="ts">
|
|
@@ -171,7 +171,7 @@ const emit = defineEmits<Emits>();
|
|
|
171
171
|
</script>
|
|
172
172
|
```
|
|
173
173
|
|
|
174
|
-
- Props
|
|
175
|
-
-
|
|
176
|
-
- `defineExpose`
|
|
174
|
+
- Props and Emits are defined using the TypeScript interface
|
|
175
|
+
- Use `withDefaults` to set default values
|
|
176
|
+
- `defineExpose` exposed methods must have type constraints
|
|
177
177
|
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
# Vue 3 state, API, and quality patterns
|
|
2
2
|
|
|
3
|
-
##
|
|
3
|
+
## Status Management (Pinia)
|
|
4
4
|
|
|
5
|
-
|
|
|
5
|
+
| Status type | Recommended solution |
|
|
6
6
|
| ------------------ | ----------------------------- |
|
|
7
|
-
|
|
|
8
|
-
|
|
|
9
|
-
|
|
|
10
|
-
| URL
|
|
11
|
-
|
|
|
7
|
+
| Temporary UI state within the component | `ref` / `reactive` |
|
|
8
|
+
| Sharing business status across components | Pinia store |
|
|
9
|
+
| Server-side data cache | VueQuery / Custom composable |
|
|
10
|
+
| URL driver status | Route parameters / `useRoute().query` |
|
|
11
|
+
| Form Status | VeeValidate / FormKit |
|
|
12
12
|
|
|
13
|
-
### Pinia Store
|
|
13
|
+
### Pinia Store Specifications
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
Using Composition API style (`setup store`):
|
|
16
16
|
|
|
17
17
|
```typescript
|
|
18
18
|
// stores/authStore.ts
|
|
@@ -39,16 +39,16 @@ export const useAuthStore = defineStore("auth", () => {
|
|
|
39
39
|
});
|
|
40
40
|
```
|
|
41
41
|
|
|
42
|
-
### Store
|
|
42
|
+
### Store Principles
|
|
43
43
|
|
|
44
|
-
-
|
|
45
|
-
-
|
|
46
|
-
-
|
|
47
|
-
-
|
|
44
|
+
- Each store has a single responsibility and is split by area.
|
|
45
|
+
- Expose the status of `readonly` to the outside world and modify it through action
|
|
46
|
+
- Do not store UI temporary states (modal switches, form inputs, etc.) in the store
|
|
47
|
+
- Server-side data is first managed by the request library rather than manually stored in the store
|
|
48
48
|
|
|
49
|
-
## API
|
|
49
|
+
## API layer specification
|
|
50
50
|
|
|
51
|
-
###
|
|
51
|
+
### Request instance
|
|
52
52
|
|
|
53
53
|
```typescript
|
|
54
54
|
// services/request.ts
|
|
@@ -78,7 +78,7 @@ request.interceptors.response.use(
|
|
|
78
78
|
);
|
|
79
79
|
```
|
|
80
80
|
|
|
81
|
-
### API
|
|
81
|
+
### API functions
|
|
82
82
|
|
|
83
83
|
```typescript
|
|
84
84
|
// features/user/api.ts
|
|
@@ -93,13 +93,13 @@ export function updateUser(id: string, data: UpdateUserDTO): Promise<User> {
|
|
|
93
93
|
}
|
|
94
94
|
```
|
|
95
95
|
|
|
96
|
-
- API
|
|
97
|
-
-
|
|
98
|
-
-
|
|
96
|
+
- API functions are organized by feature instead of all being piled in one file
|
|
97
|
+
- Request parameters and responses have type constraints
|
|
98
|
+
- The interceptor handles authentication and error formatting uniformly
|
|
99
99
|
|
|
100
|
-
##
|
|
100
|
+
## Error handling
|
|
101
101
|
|
|
102
|
-
###
|
|
102
|
+
### Global error capture
|
|
103
103
|
|
|
104
104
|
```typescript
|
|
105
105
|
// main.ts
|
|
@@ -108,13 +108,13 @@ app.config.errorHandler = (err, instance, info) => {
|
|
|
108
108
|
};
|
|
109
109
|
```
|
|
110
110
|
|
|
111
|
-
###
|
|
111
|
+
### Component level errors
|
|
112
112
|
|
|
113
|
-
-
|
|
114
|
-
-
|
|
115
|
-
-
|
|
113
|
+
- Use `onErrorCaptured` to capture child component errors in the parent component
|
|
114
|
+
- Failed data requests must have user-visible prompts and retry mechanisms
|
|
115
|
+
- Don't swallow errors (empty catch block)
|
|
116
116
|
|
|
117
|
-
##
|
|
117
|
+
## Custom directive
|
|
118
118
|
|
|
119
119
|
```typescript
|
|
120
120
|
// directives/vPermission.ts
|
|
@@ -128,30 +128,30 @@ export const vPermission: Directive<HTMLElement, string> = {
|
|
|
128
128
|
};
|
|
129
129
|
```
|
|
130
130
|
|
|
131
|
-
-
|
|
132
|
-
-
|
|
133
|
-
-
|
|
131
|
+
- The directive only handles operations at the DOM level
|
|
132
|
+
- Do not put business logic in instructions
|
|
133
|
+
- Implement the `updated` hook when responsive updates are required
|
|
134
134
|
|
|
135
|
-
##
|
|
135
|
+
## Style specification
|
|
136
136
|
|
|
137
|
-
-
|
|
138
|
-
-
|
|
139
|
-
-
|
|
140
|
-
-
|
|
141
|
-
-
|
|
142
|
-
-
|
|
137
|
+
- Use `<style scoped>` to isolate styles
|
|
138
|
+
- Depth selector uses `:deep()` instead of the deprecated `::v-deep`
|
|
139
|
+
- Be consistent with the existing style system of the project
|
|
140
|
+
- Dynamic styles preferentially use `:class` / `:style` binding
|
|
141
|
+
- Complex theme switching using CSS variables
|
|
142
|
+
- Theme/global variables are managed through CSS variables or Token
|
|
143
143
|
|
|
144
|
-
##
|
|
144
|
+
## Test specifications
|
|
145
145
|
|
|
146
|
-
###
|
|
146
|
+
### Must be tested
|
|
147
147
|
|
|
148
|
-
-
|
|
149
|
-
-
|
|
150
|
-
- Emits
|
|
151
|
-
-
|
|
152
|
-
- Pinia store
|
|
148
|
+
- Core interaction behaviors (click, input, submit)
|
|
149
|
+
- Conditional rendering (loading/error/empty/data)
|
|
150
|
+
- Emits trigger and payload
|
|
151
|
+
- Return value of key composables
|
|
152
|
+
- Pinia store actions and getters
|
|
153
153
|
|
|
154
|
-
###
|
|
154
|
+
### Test style
|
|
155
155
|
|
|
156
156
|
```typescript
|
|
157
157
|
describe("UserForm", () => {
|
|
@@ -167,12 +167,12 @@ describe("UserForm", () => {
|
|
|
167
167
|
it("should show validation error on empty submit", async () => {
|
|
168
168
|
const wrapper = mount(UserForm);
|
|
169
169
|
await wrapper.find("form").trigger("submit");
|
|
170
|
-
expect(wrapper.text()).toContain("
|
|
170
|
+
expect(wrapper.text()).toContain("Username cannot be empty");
|
|
171
171
|
});
|
|
172
172
|
});
|
|
173
173
|
```
|
|
174
174
|
|
|
175
|
-
### Store
|
|
175
|
+
### Store Test
|
|
176
176
|
|
|
177
177
|
```typescript
|
|
178
178
|
describe("authStore", () => {
|
|
@@ -187,30 +187,30 @@ describe("authStore", () => {
|
|
|
187
187
|
```
|
|
188
188
|
|
|
189
189
|
|
|
190
|
-
##
|
|
191
|
-
|
|
192
|
-
-
|
|
193
|
-
-
|
|
194
|
-
-
|
|
195
|
-
-
|
|
196
|
-
- ref
|
|
197
|
-
-
|
|
198
|
-
-
|
|
199
|
-
-
|
|
200
|
-
-
|
|
201
|
-
-
|
|
202
|
-
-
|
|
203
|
-
|
|
204
|
-
##
|
|
205
|
-
|
|
206
|
-
- [ ]
|
|
207
|
-
- [ ]
|
|
208
|
-
- [ ] Props / Emits
|
|
209
|
-
- [ ]
|
|
210
|
-
- [ ]
|
|
211
|
-
- [ ] Loading / Error / Empty
|
|
212
|
-
- [ ]
|
|
213
|
-
- [ ]
|
|
214
|
-
- [ ] API
|
|
215
|
-
- [ ]
|
|
216
|
-
- [ ]
|
|
190
|
+
## Anti-pattern
|
|
191
|
+
|
|
192
|
+
- Inline large sections of business logic in template-driven components
|
|
193
|
+
- Used wide range watcher instead of computed
|
|
194
|
+
- The event payload is unclear
|
|
195
|
+
- Mix raw API calls directly into pure presentation components
|
|
196
|
+
- ref and props have no type constraints
|
|
197
|
+
- Use `watch` + manual assignment to simulate computed
|
|
198
|
+
- Mixing unrelated responsibilities into a component
|
|
199
|
+
- Use large-scale global style coverage to solve local UI problems
|
|
200
|
+
- Push all status to Pinia store instead of managing it nearby
|
|
201
|
+
- Put business coupling components in `components/`
|
|
202
|
+
- Import directly from the deep path inside the feature, bypassing `index.ts`
|
|
203
|
+
|
|
204
|
+
## Output checklist
|
|
205
|
+
|
|
206
|
+
- [ ] The file structure is consistent with the project convention (pages/features/components are separated)
|
|
207
|
+
- [ ] Use `<script setup lang="ts">`
|
|
208
|
+
- [ ] Props / Emits type complete
|
|
209
|
+
- [ ] Whether explanatory comments should be given priority in Chinese and to the point
|
|
210
|
+
- [ ] Reusable logic has been extracted to composable
|
|
211
|
+
- [ ] Loading / Error / Empty status have been processed
|
|
212
|
+
- [ ] Routing components are loaded using dynamic import
|
|
213
|
+
- [ ] Reasonable status management plan (proximity principle)
|
|
214
|
+
- [ ] API calls have type constraints and unified error handling
|
|
215
|
+
- [ ] styles use scoped isolation
|
|
216
|
+
- [ ] Key behaviors are covered by tests
|
|
@@ -1,61 +1,61 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: fec-web-video-presentation
|
|
3
|
-
description: Use when turning an article, talk script, lesson, product demo, or narrated explanation into a recordable 16:9 web presentation with step-driven scenes, optional narration alignment, theme tokens, and screen-recording guidance; Chinese triggers include
|
|
3
|
+
description: Use when turning an article, talk script, lesson, product demo, or narrated explanation into a recordable 16:9 web presentation with step-driven scenes, optional narration alignment, theme tokens, and screen-recording guidance; Chinese triggers include web video, dynamic demonstration, spoken script to video, screen-recordable demonstration, 16:9 demonstration.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
#
|
|
6
|
+
# Web video demonstration
|
|
7
7
|
|
|
8
8
|
## Purpose
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
Convert articles, oral presentations, courses, product explanations or technology sharing into screen-recordable 16:9 web presentations. The product should be like a clickable video stage: each step carries a spoken rhythm, the visual design serves the content rhythm, and can be stably recorded using the browser.
|
|
11
11
|
|
|
12
12
|
## Procedure
|
|
13
13
|
|
|
14
|
-
1.
|
|
15
|
-
-
|
|
16
|
-
-
|
|
17
|
-
-
|
|
14
|
+
1. Determine the input form
|
|
15
|
+
- When the user submits an article or long text, it is first split into a spoken draft and an outline.
|
|
16
|
+
- When the user broadcasts the manuscript to the ready-made script, the original order is retained and only the outline, chapters and steps are added.
|
|
17
|
+
- When the user only provides a topic but no content, first ask for materials, outlines or key points; do not make up the entire content for the user.
|
|
18
18
|
|
|
19
|
-
2.
|
|
20
|
-
-
|
|
21
|
-
- script
|
|
22
|
-
- outline
|
|
19
|
+
2. Generate a content plan
|
|
20
|
+
- Press [content-plan.md](references/content-plan.md) to output script and outline.
|
|
21
|
+
- The script determines the order of telling and each beat; the outline determines the chapters, steps, time estimates, screen information and material list.
|
|
22
|
+
- The outline only describes the content density and screen tasks, and does not write down the specific animation implementation in advance.
|
|
23
23
|
|
|
24
|
-
3.
|
|
25
|
-
-
|
|
26
|
-
-
|
|
24
|
+
3. Align the demo system
|
|
25
|
+
- Choose a starter theme from [theme-system.md](references/theme-system.md) or [starter-themes.json](data/starter-themes.json), or redefine the token by project brand.
|
|
26
|
+
- Create a minimal Vite + React + TypeScript presentation skeleton using [create-video-presentation.mjs](scripts/create-video-presentation.mjs):
|
|
27
27
|
```bash
|
|
28
28
|
node skills/fec-web-video-presentation/scripts/create-video-presentation.mjs ./presentation --theme editorial-slate
|
|
29
29
|
```
|
|
30
|
-
-
|
|
30
|
+
- If you just want to preview optional themes or plan to write content:
|
|
31
31
|
```bash
|
|
32
32
|
node skills/fec-web-video-presentation/scripts/create-video-presentation.mjs --list-themes
|
|
33
33
|
node skills/fec-web-video-presentation/scripts/create-video-presentation.mjs --dry-run ./presentation --theme editorial-slate
|
|
34
34
|
```
|
|
35
35
|
|
|
36
|
-
4.
|
|
37
|
-
-
|
|
38
|
-
-
|
|
39
|
-
-
|
|
40
|
-
-
|
|
36
|
+
4. Implementation Chapter
|
|
37
|
+
- Each chapter is implemented as [chapter-craft.md](references/chapter-craft.md).
|
|
38
|
+
- Each step occupies the stage exclusively, and the screen only carries the core content that the user needs to understand for the current spoken beat.
|
|
39
|
+
- Chapters must have visible visual presentation, graphics, layout changes, status progression, or data/media presentation; do not deliver text-only slides.
|
|
40
|
+
- The first chapter should be completed and accepted first as the style anchor before continuing with other chapters.
|
|
41
41
|
|
|
42
|
-
5.
|
|
43
|
-
-
|
|
44
|
-
-
|
|
42
|
+
5. Screen recording and audio
|
|
43
|
+
- Use [recording-and-audio.md](references/recording-and-audio.md) to check stage scale, navigation, recording mode and optional audio synchronization.
|
|
44
|
+
- Audio can come from the user's existing files, host tools, or the project's own TTS process; this skill is not bound to a specific TTS provider.
|
|
45
45
|
|
|
46
|
-
6.
|
|
47
|
-
-
|
|
48
|
-
-
|
|
46
|
+
6. Pre-delivery verification
|
|
47
|
+
- Open the demo in a browser to check 16:9 zoom, keyboard/click advancement, step count, text overflow, hidden controls, console errors, and screen recording path.
|
|
48
|
+
- If the number, order or step number of chapters changes, reset the local persistence key or clear the old progress to avoid reverting to a non-existent step.
|
|
49
49
|
|
|
50
50
|
## Constraints
|
|
51
51
|
|
|
52
|
-
-
|
|
53
|
-
-
|
|
54
|
-
-
|
|
55
|
-
-
|
|
56
|
-
-
|
|
57
|
-
-
|
|
52
|
+
- Do not turn web videos into ordinary marketing landing pages, static PPT or long scrolling articles.
|
|
53
|
+
- Do not copy the reference project's themes, template chapters, long prompts, or scaffolding implementations; generate an original skeleton based on the current project.
|
|
54
|
+
- Do not lock each animation name in the outline stage; animations should be driven by chapter content relationships.
|
|
55
|
+
- Do not use fake data, fake quotes, fake product screenshots or uncheckable media to fill the screen.
|
|
56
|
+
- Do not let controls, page numbers, explanatory text or debugging panels pollute the screen recording; necessary controls are hidden or weakened by default.
|
|
57
|
+
- No outside-project vendor conventions are introduced for audio synthesis; TTS is an optional adaptation layer.
|
|
58
58
|
|
|
59
59
|
## Expected Output
|
|
60
60
|
|
|
61
|
-
|
|
61
|
+
Output script, outline, runnable 16:9 web page demonstration skeleton or chapter implementation, and describe the theme, number of chapters/steps, screen recording method, optional audio path and verification results. The final presentation should be able to be progressed steadily through clicks or keyboards, the visual rhythm should fit the spoken content, and it should be suitable for browser screen recording.
|