@bovinphang/frontend-craft 2.7.0 → 2.9.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 +3 -3
- package/.claude-plugin/plugin.json +1 -1
- package/CHANGELOG.md +378 -305
- package/CHANGELOG.zh-CN.md +377 -304
- package/CONTRIBUTING.md +371 -361
- package/CONTRIBUTING.zh-CN.md +371 -361
- package/README.md +545 -493
- package/README.openclaw.md +359 -264
- package/README.openclaw.zh-CN.md +359 -264
- package/README.zh-CN.md +545 -493
- package/agents/fec-architect.md +70 -70
- package/agents/fec-code-reviewer.md +103 -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 +17 -14
- package/agents/fec-refactoring-expert.md +81 -0
- package/agents/fec-security-reviewer.md +82 -67
- package/agents/fec-test-planner.md +27 -27
- package/agents/fec-typescript-reviewer.md +103 -87
- package/agents/fec-ui-checker.md +64 -64
- 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-refactor-plan.md +17 -0
- package/commands/fec-refactor.md +18 -0
- package/commands/fec-review.md +71 -41
- package/commands/fec-scaffold.md +41 -41
- package/commands/fec-smell.md +17 -0
- package/commands/fec-tdd.md +17 -13
- package/dist/bin/frontend-craft.js +190 -36
- package/dist/hooks/fec-run-tests.js +5 -1
- package/dist/hooks/fec-session-start.js +1 -1
- package/docs/example-prompts.md +157 -137
- package/docs/ja-JP/README.md +534 -493
- package/docs/ko-KR/README.md +534 -493
- package/docs/project-structure.md +151 -123
- package/docs/refactoring/README.md +50 -0
- package/docs/refactoring/catalog.md +105 -0
- package/docs/refactoring/smell-refactoring-matrix.md +41 -0
- package/docs/review-and-diagram-workflows.md +39 -0
- package/docs/runtimes/antigravity.md +18 -10
- package/docs/runtimes/augment.md +18 -10
- package/docs/runtimes/claude.md +191 -177
- package/docs/runtimes/claude.zh-CN.md +189 -175
- package/docs/runtimes/cline.md +18 -10
- package/docs/runtimes/codebuddy.md +18 -10
- package/docs/runtimes/codex.md +18 -10
- package/docs/runtimes/compatibility.md +27 -0
- package/docs/runtimes/copilot.md +18 -10
- package/docs/runtimes/cursor.md +18 -10
- package/docs/runtimes/gemini.md +18 -10
- package/docs/runtimes/kilo.md +18 -10
- package/docs/runtimes/openclaw.md +18 -10
- package/docs/runtimes/opencode.md +18 -10
- package/docs/runtimes/qoder.md +18 -19
- package/docs/runtimes/trae.md +18 -10
- package/docs/runtimes/windsurf.md +18 -10
- package/docs/superpowers/plans/2026-09-26-content-integrity.md +145 -0
- package/docs/superpowers/plans/2026-09-26-diagram-quality.md +170 -0
- package/docs/superpowers/specs/2026-09-26-diagram-quality-design.md +77 -0
- package/docs/superpowers/specs/2026-09-26-project-optimization-design.md +95 -0
- package/docs/zh-CN/example-prompts.md +157 -137
- package/docs/zh-CN/project-structure.md +148 -123
- package/docs/zh-CN/review-and-diagram-workflows.md +39 -0
- package/docs/zh-TW/README.md +534 -493
- package/localized/zh-CN/agents/fec-architect.md +125 -0
- package/localized/zh-CN/agents/fec-code-reviewer.md +171 -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 +35 -0
- package/localized/zh-CN/agents/fec-refactoring-expert.md +53 -0
- package/localized/zh-CN/agents/fec-security-reviewer.md +132 -0
- package/localized/zh-CN/agents/fec-test-planner.md +50 -0
- package/localized/zh-CN/agents/fec-typescript-reviewer.md +158 -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-refactor-plan.md +15 -0
- package/localized/zh-CN/commands/fec-refactor.md +14 -0
- package/localized/zh-CN/commands/fec-review.md +97 -0
- package/localized/zh-CN/commands/fec-scaffold.md +205 -0
- package/localized/zh-CN/commands/fec-smell.md +13 -0
- package/localized/zh-CN/commands/fec-tdd.md +25 -0
- package/localized/zh-CN/skills/TEMPLATE.md +155 -0
- package/localized/zh-CN/skills/eval_queries.json +1257 -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 +162 -0
- package/localized/zh-CN/skills/fec-code-review/references/report-template.md +39 -0
- package/localized/zh-CN/skills/fec-code-smells/SKILL.md +33 -0
- package/localized/zh-CN/skills/fec-code-smells/references/detection-guide.md +25 -0
- package/localized/zh-CN/skills/fec-code-smells/references/smell-catalog.md +817 -0
- package/localized/zh-CN/skills/fec-code-smells/references/smell-to-refactoring-map.md +265 -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 +110 -0
- package/localized/zh-CN/skills/fec-image-generation/assets/interactive-diagram.html +371 -0
- package/localized/zh-CN/skills/fec-image-generation/assets/quality-examples/README.md +14 -0
- package/localized/zh-CN/skills/fec-image-generation/assets/quality-examples/architecture.json +121 -0
- package/localized/zh-CN/skills/fec-image-generation/assets/quality-examples/invalid-explicit.json +41 -0
- package/localized/zh-CN/skills/fec-image-generation/assets/quality-examples/sequence.json +53 -0
- package/localized/zh-CN/skills/fec-image-generation/assets/quality-examples/sequence.mmd +21 -0
- package/localized/zh-CN/skills/fec-image-generation/assets/quality-examples/workflow.json +98 -0
- package/localized/zh-CN/skills/fec-image-generation/assets/quality-examples/workflow.mmd +7 -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 +81 -0
- package/localized/zh-CN/skills/fec-image-generation/references/html-technical-diagrams.md +243 -0
- package/localized/zh-CN/skills/fec-image-generation/references/png-qa-autofix.md +37 -0
- package/localized/zh-CN/skills/fec-image-generation/scripts/diagram-browser.mjs +90 -0
- package/localized/zh-CN/skills/fec-image-generation/scripts/diagram-layout.mjs +176 -0
- package/localized/zh-CN/skills/fec-image-generation/scripts/export-diagram.mjs +332 -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/mermaid-render.mjs +64 -0
- package/localized/zh-CN/skills/fec-image-generation/scripts/png-qa.mjs +462 -0
- package/localized/zh-CN/skills/fec-image-generation/scripts/tech-diagram-render.mjs +1537 -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 +54 -0
- package/localized/zh-CN/skills/fec-refactor-clean/references/report-template.md +42 -0
- package/localized/zh-CN/skills/fec-refactoring/SKILL.md +83 -0
- package/localized/zh-CN/skills/fec-refactoring/references/principles.md +43 -0
- package/localized/zh-CN/skills/fec-refactoring/references/refactoring-vs-feature-change.md +25 -0
- package/localized/zh-CN/skills/fec-refactoring/references/when-to-refactor.md +17 -0
- package/localized/zh-CN/skills/fec-refactoring/references/workflow.md +59 -0
- package/localized/zh-CN/skills/fec-refactoring-api/SKILL.md +25 -0
- package/localized/zh-CN/skills/fec-refactoring-api/references/api-refactorings.md +496 -0
- package/localized/zh-CN/skills/fec-refactoring-catalog/SKILL.md +21 -0
- package/localized/zh-CN/skills/fec-refactoring-catalog/references/catalog-index.md +99 -0
- package/localized/zh-CN/skills/fec-refactoring-catalog/references/composition-guide.md +49 -0
- package/localized/zh-CN/skills/fec-refactoring-catalog/references/selection-guide.md +41 -0
- package/localized/zh-CN/skills/fec-refactoring-control/SKILL.md +25 -0
- package/localized/zh-CN/skills/fec-refactoring-control/references/conditional-refactorings.md +299 -0
- package/localized/zh-CN/skills/fec-refactoring-data/SKILL.md +25 -0
- package/localized/zh-CN/skills/fec-refactoring-data/references/data-refactorings.md +248 -0
- package/localized/zh-CN/skills/fec-refactoring-encapsulation/SKILL.md +25 -0
- package/localized/zh-CN/skills/fec-refactoring-encapsulation/references/encapsulation-refactorings.md +452 -0
- package/localized/zh-CN/skills/fec-refactoring-functions/SKILL.md +25 -0
- package/localized/zh-CN/skills/fec-refactoring-functions/references/function-refactorings.md +567 -0
- package/localized/zh-CN/skills/fec-refactoring-inheritance/SKILL.md +25 -0
- package/localized/zh-CN/skills/fec-refactoring-inheritance/references/inheritance-refactorings.md +550 -0
- package/localized/zh-CN/skills/fec-refactoring-move-features/SKILL.md +25 -0
- package/localized/zh-CN/skills/fec-refactoring-move-features/references/moving-refactorings.md +453 -0
- package/localized/zh-CN/skills/fec-refactoring-validation/SKILL.md +52 -0
- package/localized/zh-CN/skills/fec-refactoring-validation/references/behavior-preservation.md +15 -0
- package/localized/zh-CN/skills/fec-refactoring-validation/references/refactoring-test-checklist.md +25 -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 +54 -0
- package/localized/zh-CN/skills/fec-security-review/references/report-template.md +37 -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 +55 -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 +2004 -0
- package/localized/zh-CN/skills/relations.json +1023 -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 +55 -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 +2 -3
- package/package.json +28 -17
- package/skills/TEMPLATE.md +74 -74
- package/skills/eval_queries.json +922 -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 +113 -94
- package/skills/fec-code-review/references/report-template.md +23 -13
- package/skills/fec-code-smells/SKILL.md +33 -0
- package/skills/fec-code-smells/references/detection-guide.md +25 -0
- package/skills/fec-code-smells/references/smell-catalog.md +861 -0
- package/skills/fec-code-smells/references/smell-to-refactoring-map.md +265 -0
- 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 +84 -29
- package/skills/fec-image-generation/assets/interactive-diagram.html +371 -0
- package/skills/fec-image-generation/assets/quality-examples/README.md +14 -0
- package/skills/fec-image-generation/assets/quality-examples/architecture.json +121 -0
- package/skills/fec-image-generation/assets/quality-examples/invalid-explicit.json +41 -0
- package/skills/fec-image-generation/assets/quality-examples/sequence.json +53 -0
- package/skills/fec-image-generation/assets/quality-examples/sequence.mmd +21 -0
- package/skills/fec-image-generation/assets/quality-examples/workflow.json +98 -0
- package/skills/fec-image-generation/assets/quality-examples/workflow.mmd +7 -0
- package/skills/fec-image-generation/references/diagram-workflows.md +41 -3
- package/skills/fec-image-generation/references/html-technical-diagrams.md +243 -0
- package/skills/fec-image-generation/references/png-qa-autofix.md +9 -2
- package/skills/fec-image-generation/scripts/diagram-browser.mjs +90 -0
- package/skills/fec-image-generation/scripts/diagram-layout.mjs +176 -0
- package/skills/fec-image-generation/scripts/export-diagram.mjs +332 -0
- package/skills/fec-image-generation/scripts/interactive-diagram-server.mjs +654 -0
- package/skills/fec-image-generation/scripts/mermaid-render.mjs +64 -0
- package/skills/fec-image-generation/scripts/png-qa.mjs +35 -4
- package/skills/fec-image-generation/scripts/tech-diagram-render.mjs +1537 -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 +33 -30
- package/skills/fec-refactor-clean/references/report-template.md +23 -23
- package/skills/fec-refactoring/SKILL.md +83 -0
- package/skills/fec-refactoring/references/principles.md +60 -0
- package/skills/fec-refactoring/references/refactoring-vs-feature-change.md +27 -0
- package/skills/fec-refactoring/references/when-to-refactor.md +31 -0
- package/skills/fec-refactoring/references/workflow.md +90 -0
- package/skills/fec-refactoring-api/SKILL.md +25 -0
- package/skills/fec-refactoring-api/references/api-refactorings.md +496 -0
- package/skills/fec-refactoring-catalog/SKILL.md +28 -0
- package/skills/fec-refactoring-catalog/references/catalog-index.md +99 -0
- package/skills/fec-refactoring-catalog/references/composition-guide.md +49 -0
- package/skills/fec-refactoring-catalog/references/selection-guide.md +47 -0
- package/skills/fec-refactoring-control/SKILL.md +25 -0
- package/skills/fec-refactoring-control/references/conditional-refactorings.md +299 -0
- package/skills/fec-refactoring-data/SKILL.md +25 -0
- package/skills/fec-refactoring-data/references/data-refactorings.md +248 -0
- package/skills/fec-refactoring-encapsulation/SKILL.md +25 -0
- package/skills/fec-refactoring-encapsulation/references/encapsulation-refactorings.md +452 -0
- package/skills/fec-refactoring-functions/SKILL.md +25 -0
- package/skills/fec-refactoring-functions/references/function-refactorings.md +567 -0
- package/skills/fec-refactoring-inheritance/SKILL.md +25 -0
- package/skills/fec-refactoring-inheritance/references/inheritance-refactorings.md +550 -0
- package/skills/fec-refactoring-move-features/SKILL.md +25 -0
- package/skills/fec-refactoring-move-features/references/moving-refactorings.md +453 -0
- package/skills/fec-refactoring-validation/SKILL.md +59 -0
- package/skills/fec-refactoring-validation/references/behavior-preservation.md +53 -0
- package/skills/fec-refactoring-validation/references/refactoring-test-checklist.md +42 -0
- 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 +36 -20
- package/skills/fec-security-review/references/report-template.md +22 -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 +32 -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 +485 -116
- package/skills/relations.json +268 -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 +41 -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/docs/superpowers/plans/2026-05-29-fec-debug.md +0 -491
- package/docs/superpowers/specs/2026-05-29-fec-debug-design.md +0 -340
- package/skills/fec-drawio-studio/data/shape-index.json.gz +0 -0
|
@@ -0,0 +1,216 @@
|
|
|
1
|
+
# Vue 3 状态、API 与质量模式
|
|
2
|
+
|
|
3
|
+
## 状态管理(Pinia)
|
|
4
|
+
|
|
5
|
+
| 状态类型 | 推荐方案 |
|
|
6
|
+
| ------------------ | ----------------------------- |
|
|
7
|
+
| 组件内临时 UI 状态 | `ref` / `reactive` |
|
|
8
|
+
| 跨组件共享业务状态 | Pinia store |
|
|
9
|
+
| 服务端数据缓存 | VueQuery / 自定义 composable |
|
|
10
|
+
| URL 驱动状态 | 路由参数 / `useRoute().query` |
|
|
11
|
+
| 表单状态 | VeeValidate / FormKit |
|
|
12
|
+
|
|
13
|
+
### Pinia Store 规范
|
|
14
|
+
|
|
15
|
+
使用 Composition API 风格(`setup store`):
|
|
16
|
+
|
|
17
|
+
```typescript
|
|
18
|
+
// stores/authStore.ts
|
|
19
|
+
export const useAuthStore = defineStore("auth", () => {
|
|
20
|
+
const user = ref<User | null>(null);
|
|
21
|
+
const token = ref<string | null>(localStorage.getItem("token"));
|
|
22
|
+
|
|
23
|
+
const isLoggedIn = computed(() => !!token.value);
|
|
24
|
+
|
|
25
|
+
async function login(credentials: LoginParams) {
|
|
26
|
+
const res = await authApi.login(credentials);
|
|
27
|
+
user.value = res.user;
|
|
28
|
+
token.value = res.token;
|
|
29
|
+
localStorage.setItem("token", res.token);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
function logout() {
|
|
33
|
+
user.value = null;
|
|
34
|
+
token.value = null;
|
|
35
|
+
localStorage.removeItem("token");
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
return { user: readonly(user), isLoggedIn, login, logout };
|
|
39
|
+
});
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
### Store 原则
|
|
43
|
+
|
|
44
|
+
- 每个 store 职责单一,按领域拆分
|
|
45
|
+
- 对外暴露 `readonly` 的状态,通过 action 修改
|
|
46
|
+
- 不要在 store 中存放 UI 临时状态(modal 开关、表单输入等)
|
|
47
|
+
- 服务端数据优先用请求库管理,而非手动存入 store
|
|
48
|
+
|
|
49
|
+
## API 层规范
|
|
50
|
+
|
|
51
|
+
### 请求实例
|
|
52
|
+
|
|
53
|
+
```typescript
|
|
54
|
+
// services/request.ts
|
|
55
|
+
const request = axios.create({
|
|
56
|
+
baseURL: import.meta.env.VITE_API_BASE_URL,
|
|
57
|
+
timeout: 10000,
|
|
58
|
+
});
|
|
59
|
+
|
|
60
|
+
request.interceptors.request.use((config) => {
|
|
61
|
+
const authStore = useAuthStore();
|
|
62
|
+
if (authStore.token) {
|
|
63
|
+
config.headers.Authorization = `Bearer ${authStore.token}`;
|
|
64
|
+
}
|
|
65
|
+
return config;
|
|
66
|
+
});
|
|
67
|
+
|
|
68
|
+
request.interceptors.response.use(
|
|
69
|
+
(res) => res.data,
|
|
70
|
+
(error) => {
|
|
71
|
+
if (error.response?.status === 401) {
|
|
72
|
+
const authStore = useAuthStore();
|
|
73
|
+
authStore.logout();
|
|
74
|
+
router.push({ name: "Login" });
|
|
75
|
+
}
|
|
76
|
+
return Promise.reject(normalizeError(error));
|
|
77
|
+
},
|
|
78
|
+
);
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
### API 函数
|
|
82
|
+
|
|
83
|
+
```typescript
|
|
84
|
+
// features/user/api.ts
|
|
85
|
+
export function getUserList(
|
|
86
|
+
params: UserQueryParams,
|
|
87
|
+
): Promise<PageResult<User>> {
|
|
88
|
+
return request.get("/users", { params });
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
export function updateUser(id: string, data: UpdateUserDTO): Promise<User> {
|
|
92
|
+
return request.put(`/users/${id}`, data);
|
|
93
|
+
}
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
- API 函数按 feature 组织,而非全部堆在一个文件
|
|
97
|
+
- 请求参数和响应都有类型约束
|
|
98
|
+
- 拦截器统一处理认证、错误格式化
|
|
99
|
+
|
|
100
|
+
## 错误处理
|
|
101
|
+
|
|
102
|
+
### 全局错误捕获
|
|
103
|
+
|
|
104
|
+
```typescript
|
|
105
|
+
// main.ts
|
|
106
|
+
app.config.errorHandler = (err, instance, info) => {
|
|
107
|
+
reportError(err, { component: instance?.$options.name, info });
|
|
108
|
+
};
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
### 组件级错误
|
|
112
|
+
|
|
113
|
+
- 使用 `onErrorCaptured` 在父组件中捕获子组件错误
|
|
114
|
+
- 数据请求失败需有用户可见的提示和重试机制
|
|
115
|
+
- 不要吞掉错误(空 catch 块)
|
|
116
|
+
|
|
117
|
+
## 自定义指令
|
|
118
|
+
|
|
119
|
+
```typescript
|
|
120
|
+
// directives/vPermission.ts
|
|
121
|
+
export const vPermission: Directive<HTMLElement, string> = {
|
|
122
|
+
mounted(el, binding) {
|
|
123
|
+
const authStore = useAuthStore();
|
|
124
|
+
if (!authStore.hasPermission(binding.value)) {
|
|
125
|
+
el.parentNode?.removeChild(el);
|
|
126
|
+
}
|
|
127
|
+
},
|
|
128
|
+
};
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
- 指令只处理 DOM 层面的操作
|
|
132
|
+
- 业务逻辑不要放在指令中
|
|
133
|
+
- 需要响应式更新时实现 `updated` 钩子
|
|
134
|
+
|
|
135
|
+
## 样式规范
|
|
136
|
+
|
|
137
|
+
- 使用 `<style scoped>` 隔离样式
|
|
138
|
+
- 深度选择器使用 `:deep()` 而非已废弃的 `::v-deep`
|
|
139
|
+
- 与项目现有样式体系保持一致
|
|
140
|
+
- 动态样式优先使用 `:class` / `:style` 绑定
|
|
141
|
+
- 复杂主题切换使用 CSS 变量
|
|
142
|
+
- 主题/全局变量通过 CSS 变量或 Token 管理
|
|
143
|
+
|
|
144
|
+
## 测试规范
|
|
145
|
+
|
|
146
|
+
### 必须测试
|
|
147
|
+
|
|
148
|
+
- 核心交互行为(点击、输入、提交)
|
|
149
|
+
- 条件渲染(loading / error / empty / data)
|
|
150
|
+
- Emits 的触发和 payload
|
|
151
|
+
- 关键 composables 的返回值
|
|
152
|
+
- Pinia store 的 action 和 getter
|
|
153
|
+
|
|
154
|
+
### 测试风格
|
|
155
|
+
|
|
156
|
+
```typescript
|
|
157
|
+
describe("UserForm", () => {
|
|
158
|
+
it("should emit submit with valid data", async () => {
|
|
159
|
+
const wrapper = mount(UserForm);
|
|
160
|
+
|
|
161
|
+
await wrapper.find('[data-testid="username"]').setValue("test");
|
|
162
|
+
await wrapper.find("form").trigger("submit");
|
|
163
|
+
|
|
164
|
+
expect(wrapper.emitted("submit")?.[0]).toEqual([{ username: "test" }]);
|
|
165
|
+
});
|
|
166
|
+
|
|
167
|
+
it("should show validation error on empty submit", async () => {
|
|
168
|
+
const wrapper = mount(UserForm);
|
|
169
|
+
await wrapper.find("form").trigger("submit");
|
|
170
|
+
expect(wrapper.text()).toContain("用户名不能为空");
|
|
171
|
+
});
|
|
172
|
+
});
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
### Store 测试
|
|
176
|
+
|
|
177
|
+
```typescript
|
|
178
|
+
describe("authStore", () => {
|
|
179
|
+
beforeEach(() => setActivePinia(createPinia()));
|
|
180
|
+
|
|
181
|
+
it("should login and set user", async () => {
|
|
182
|
+
const store = useAuthStore();
|
|
183
|
+
await store.login({ username: "admin", password: "pass" });
|
|
184
|
+
expect(store.isLoggedIn).toBe(true);
|
|
185
|
+
});
|
|
186
|
+
});
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
|
|
190
|
+
## 反模式
|
|
191
|
+
|
|
192
|
+
- 在模板驱动组件中内联大段业务逻辑
|
|
193
|
+
- 本该用 computed 却使用大范围 watcher
|
|
194
|
+
- 事件 payload 不明确
|
|
195
|
+
- 在纯展示组件中直接混入原始 API 调用
|
|
196
|
+
- ref 和 props 没有类型约束
|
|
197
|
+
- 用 `watch` + 手动赋值模拟 computed
|
|
198
|
+
- 在一个组件中混入无关职责
|
|
199
|
+
- 用大范围全局样式覆盖去解决局部 UI 问题
|
|
200
|
+
- 将所有状态推入 Pinia store,而非就近管理
|
|
201
|
+
- 在 `components/` 中放业务耦合组件
|
|
202
|
+
- 直接从 feature 内部深层路径导入,绕过 `index.ts`
|
|
203
|
+
|
|
204
|
+
## 输出检查清单
|
|
205
|
+
|
|
206
|
+
- [ ] 文件结构与项目约定一致(pages / features / components 分离)
|
|
207
|
+
- [ ] 使用 `<script setup lang="ts">`
|
|
208
|
+
- [ ] Props / Emits 类型完整
|
|
209
|
+
- [ ] 解释性注释是否优先使用中文且点到要害
|
|
210
|
+
- [ ] 可复用逻辑已提取到 composable
|
|
211
|
+
- [ ] Loading / Error / Empty 状态均已处理
|
|
212
|
+
- [ ] 路由组件使用动态 import 加载
|
|
213
|
+
- [ ] 状态管理方案合理(就近原则)
|
|
214
|
+
- [ ] API 调用有类型约束和统一错误处理
|
|
215
|
+
- [ ] 样式使用 scoped 隔离
|
|
216
|
+
- [ ] 关键行为有测试覆盖
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: fec-web-video-presentation
|
|
3
|
+
description: 用于将文章、演讲稿、课程、产品演示或口播解释转成可录制的 16:9 网页演示,包含步骤驱动场景、可选口播对齐、主题 Token 与录屏指导;中文触发词包括 网页视频、动态演示、口播稿转视频、可录屏演示、16:9 演示。
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# 网页视频演示
|
|
7
|
+
|
|
8
|
+
## 用途
|
|
9
|
+
|
|
10
|
+
把文章、口播稿、课程、产品讲解或技术分享转成可录屏的 16:9 网页演示。产物应像一个可点击推进的视频舞台:每一步承载一个口播节拍,视觉设计服务内容节奏,并能用浏览器稳定录制。
|
|
11
|
+
|
|
12
|
+
## 流程
|
|
13
|
+
|
|
14
|
+
1. 判断输入形态
|
|
15
|
+
- 用户给文章或长文时,先拆成口播稿和 outline。
|
|
16
|
+
- 用户给现成口播稿时,保留原顺序,只补 outline、章节和 step。
|
|
17
|
+
- 用户只给主题但没有内容时,先要求素材、大纲或目标要点;不要替用户虚构整篇内容。
|
|
18
|
+
|
|
19
|
+
2. 生成内容计划
|
|
20
|
+
- 按 [content-plan.md](references/content-plan.md) 输出 script 与 outline。
|
|
21
|
+
- script 决定讲述顺序和每个节拍;outline 决定章节、step、估时、屏幕信息和素材清单。
|
|
22
|
+
- outline 只描述内容密度和画面任务,不提前写死具体动画实现。
|
|
23
|
+
|
|
24
|
+
3. 对齐演示系统
|
|
25
|
+
- 从 [theme-system.md](references/theme-system.md) 或 [starter-themes.json](data/starter-themes.json) 选择一个 starter theme,也可以按项目品牌重新定义 token。
|
|
26
|
+
- 使用 [create-video-presentation.mjs](scripts/create-video-presentation.mjs) 创建最小 Vite + React + TypeScript 演示骨架:
|
|
27
|
+
```bash
|
|
28
|
+
node skills/fec-web-video-presentation/scripts/create-video-presentation.mjs ./presentation --theme editorial-slate
|
|
29
|
+
```
|
|
30
|
+
- 如只想预览可选主题或计划写入内容:
|
|
31
|
+
```bash
|
|
32
|
+
node skills/fec-web-video-presentation/scripts/create-video-presentation.mjs --list-themes
|
|
33
|
+
node skills/fec-web-video-presentation/scripts/create-video-presentation.mjs --dry-run ./presentation --theme editorial-slate
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
4. 实现章节
|
|
37
|
+
- 每章按 [chapter-craft.md](references/chapter-craft.md) 实现。
|
|
38
|
+
- 每个 step 独占舞台,屏幕只承载当前口播节拍需要用户理解的核心内容。
|
|
39
|
+
- 章节必须有可见的视觉演示、图形、布局变化、状态推进或数据/媒体呈现;不要交付纯文本幻灯片。
|
|
40
|
+
- 第一章应作为风格锚点优先完成并验收,再继续其它章节。
|
|
41
|
+
|
|
42
|
+
5. 录屏和音频
|
|
43
|
+
- 使用 [recording-and-audio.md](references/recording-and-audio.md) 检查舞台比例、导航、录制模式和可选音频同步。
|
|
44
|
+
- 音频可以来自用户已有文件、宿主工具或项目自己的 TTS 流程;本技能不绑定特定 TTS 供应商。
|
|
45
|
+
|
|
46
|
+
6. 交付前验证
|
|
47
|
+
- 浏览器打开演示,检查 16:9 缩放、键盘/点击推进、step 数、文本溢出、隐藏控件、控制台错误和录屏路径。
|
|
48
|
+
- 若章节数量、顺序或 step 数变化,重置本地持久化 key 或清理旧进度,避免恢复到不存在的 step。
|
|
49
|
+
|
|
50
|
+
## 约束
|
|
51
|
+
|
|
52
|
+
- 不把网页视频做成普通营销落地页、静态 PPT 或长滚动文章。
|
|
53
|
+
- 不复制参考项目的主题、模板章节、长提示词或脚手架实现;按当前项目生成原创骨架。
|
|
54
|
+
- 不在 outline 阶段锁死每个动画名称;动画应由章节内容关系驱动。
|
|
55
|
+
- 不使用假数据、假引用、假产品截图或不可检查媒体填充画面。
|
|
56
|
+
- 不让控件、页码、说明文字或调试面板污染录屏画面;必要控件默认隐藏或弱化。
|
|
57
|
+
- 不为音频合成引入项目外供应商约定;TTS 属于可选适配层。
|
|
58
|
+
|
|
59
|
+
## 预期输出
|
|
60
|
+
|
|
61
|
+
输出 script、outline、可运行的 16:9 网页演示骨架或章节实现,并说明主题、章节/step 数、录屏方式、可选音频路径和验证结果。最终演示应可通过点击或键盘稳定推进,视觉节奏贴合口播内容,且适合浏览器录屏。
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"id": "editorial-slate",
|
|
4
|
+
"name": "Editorial Slate",
|
|
5
|
+
"bestFor": "technical explainers, product narratives, engineering talks",
|
|
6
|
+
"tokens": {
|
|
7
|
+
"stageBg": "#f6f1e8",
|
|
8
|
+
"stageFg": "#17201b",
|
|
9
|
+
"mutedFg": "#69736d",
|
|
10
|
+
"accent": "#a83d2d",
|
|
11
|
+
"accent2": "#2b6b72",
|
|
12
|
+
"panel": "#fffaf0",
|
|
13
|
+
"line": "#d9cab8",
|
|
14
|
+
"shadow": "0 24px 80px rgba(23, 32, 27, 0.12)",
|
|
15
|
+
"fontDisplay": "Georgia, 'Times New Roman', serif",
|
|
16
|
+
"fontBody": "Inter, ui-sans-serif, system-ui, sans-serif",
|
|
17
|
+
"radius": "10px",
|
|
18
|
+
"stepDuration": "4200ms"
|
|
19
|
+
}
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
"id": "console-amber",
|
|
23
|
+
"name": "Console Amber",
|
|
24
|
+
"bestFor": "debug stories, infrastructure demos, security walkthroughs",
|
|
25
|
+
"tokens": {
|
|
26
|
+
"stageBg": "#10110f",
|
|
27
|
+
"stageFg": "#f5ead2",
|
|
28
|
+
"mutedFg": "#a99b80",
|
|
29
|
+
"accent": "#ffb84d",
|
|
30
|
+
"accent2": "#6bd5c8",
|
|
31
|
+
"panel": "#191a16",
|
|
32
|
+
"line": "#3c3529",
|
|
33
|
+
"shadow": "0 28px 90px rgba(0, 0, 0, 0.38)",
|
|
34
|
+
"fontDisplay": "ui-monospace, SFMono-Regular, Consolas, monospace",
|
|
35
|
+
"fontBody": "Inter, ui-sans-serif, system-ui, sans-serif",
|
|
36
|
+
"radius": "6px",
|
|
37
|
+
"stepDuration": "3800ms"
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
"id": "studio-paper",
|
|
42
|
+
"name": "Studio Paper",
|
|
43
|
+
"bestFor": "design reviews, lessons, product tours, calm keynote chapters",
|
|
44
|
+
"tokens": {
|
|
45
|
+
"stageBg": "#fbfbf7",
|
|
46
|
+
"stageFg": "#24211d",
|
|
47
|
+
"mutedFg": "#6f6a62",
|
|
48
|
+
"accent": "#2457a6",
|
|
49
|
+
"accent2": "#d95f37",
|
|
50
|
+
"panel": "#ffffff",
|
|
51
|
+
"line": "#dedbd2",
|
|
52
|
+
"shadow": "0 18px 64px rgba(36, 33, 29, 0.1)",
|
|
53
|
+
"fontDisplay": "Aptos Display, Avenir Next, ui-sans-serif, system-ui, sans-serif",
|
|
54
|
+
"fontBody": "Aptos, Avenir Next, ui-sans-serif, system-ui, sans-serif",
|
|
55
|
+
"radius": "14px",
|
|
56
|
+
"stepDuration": "4000ms"
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
]
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# 章节编排
|
|
2
|
+
|
|
3
|
+
## 阶段规则
|
|
4
|
+
|
|
5
|
+
- 使用固定 16:9 舞台,通常为 1920 x 1080,并按视口缩放。
|
|
6
|
+
- 章节是当前 step 的纯函数。
|
|
7
|
+
- 一个 step 只聚焦一个视觉想法。
|
|
8
|
+
- 列表每次只揭示一个有意义的条目。
|
|
9
|
+
- 使用隐藏或低强调控件,让录制画面保持干净。
|
|
10
|
+
- 大号文字在录屏和压缩后仍需保持可读。
|
|
11
|
+
|
|
12
|
+
## 视觉决策
|
|
13
|
+
|
|
14
|
+
实现章节前,先回答:
|
|
15
|
+
|
|
16
|
+
- 当前 step 与上一个 step 的关系是什么:对比、揭示、缩放、序列、证明、结果,还是回顾?
|
|
17
|
+
- 观众在这个 step 后应该记住什么?
|
|
18
|
+
- 哪个源材料细节让画面比通用幻灯片更具体?
|
|
19
|
+
- 这是图表、对象、引用、指标、时间线、界面状态,还是空间隐喻?
|
|
20
|
+
- 哪些内容可以因为自身变化而运动,而不是因为所有元素都需要入场动画?
|
|
21
|
+
|
|
22
|
+
## 反模式
|
|
23
|
+
|
|
24
|
+
- 旁白逐条讲解时,却让大量 bullet 同步 stagger。
|
|
25
|
+
- 无法解释内容的紫色渐变背景、漂浮装饰或通用卡片。
|
|
26
|
+
- 伪造仪表盘、伪造截图、伪造引用或编造指标。
|
|
27
|
+
- 浏览器中看似正常、但录制视频中不可读的小号正文。
|
|
28
|
+
- 录制画面中持续可见的 chrome、大页码或操作说明。
|
|
29
|
+
|
|
30
|
+
## 完成检查
|
|
31
|
+
|
|
32
|
+
- 每个 step 都渲染完整画面。
|
|
33
|
+
- 文本适配目标舞台尺寸。
|
|
34
|
+
- 录制在任意 step 暂停时,章节仍然说得通。
|
|
35
|
+
- 视觉状态遵循旁白顺序。
|
|
36
|
+
- 使用的任何媒体都是本地、真实、为任务生成,或明确标记为占位。
|
|
37
|
+
- 章节注册后,键盘和点击导航仍可正常工作。
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# 内容计划
|
|
2
|
+
|
|
3
|
+
## 脚本
|
|
4
|
+
|
|
5
|
+
除非用户另有要求,否则使用与源材料相同的语言。将书面文字改成适合口播的表达,但保留作者的主张、顺序、名称和重要数字。
|
|
6
|
+
|
|
7
|
+
每份脚本都应:
|
|
8
|
+
|
|
9
|
+
- 每个节拍只保留一个观点。
|
|
10
|
+
- 移除脚注式支线,除非它们是叙事核心。
|
|
11
|
+
- 标记不确定事实,不要把它们润色成确定断言。
|
|
12
|
+
- 技术名称保持准确。
|
|
13
|
+
- 优先使用无需回读即可口播的短句。
|
|
14
|
+
|
|
15
|
+
## 大纲
|
|
16
|
+
|
|
17
|
+
大纲是网页演示的实现契约。
|
|
18
|
+
|
|
19
|
+
包含:
|
|
20
|
+
|
|
21
|
+
- 标题和目标受众。
|
|
22
|
+
- 总目标时长。
|
|
23
|
+
- 带稳定 id 的章节。
|
|
24
|
+
- 每章步骤数。
|
|
25
|
+
- 每步一个屏幕任务。
|
|
26
|
+
- 每章内容池:可用于视觉呈现的事实、数字、引用、示例、媒体、图表或 UI 状态。
|
|
27
|
+
- 资产清单,包含负责人、路径、缺失状态和替代策略。
|
|
28
|
+
|
|
29
|
+
避免:
|
|
30
|
+
|
|
31
|
+
- 过早指定具体动画。
|
|
32
|
+
- 指定 CSS 实现细节。
|
|
33
|
+
- 将需要分别关注的多个列表项塞进同一个 step。
|
|
34
|
+
- 为了让场景显得充实而加入无依据的主张。
|
|
35
|
+
|
|
36
|
+
## 验收标准
|
|
37
|
+
|
|
38
|
+
当另一位实现者无需再决定每章讲什么、每个 step 揭示什么、哪些源事实可用于视觉呈现,就能构建演示时,内容计划才算就绪。
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# 录制与音频
|
|
2
|
+
|
|
3
|
+
## 录制模式
|
|
4
|
+
|
|
5
|
+
手动模式:
|
|
6
|
+
|
|
7
|
+
- Click、Space、ArrowRight 或 PageDown 前进一个 step。
|
|
8
|
+
- ArrowLeft 或 PageUp 返回。
|
|
9
|
+
- 适合真人旁白现场录制。
|
|
10
|
+
|
|
11
|
+
自动模式:
|
|
12
|
+
|
|
13
|
+
- 使用项目数据中的每步时长。
|
|
14
|
+
- 适合旁白音频已对齐,或需要干净录屏的场景。
|
|
15
|
+
|
|
16
|
+
## 录制检查清单
|
|
17
|
+
|
|
18
|
+
- 浏览器控制台无错误。
|
|
19
|
+
- 舞台居中且缩放无变形。
|
|
20
|
+
- 捕获画面中没有水平或垂直滚动条。
|
|
21
|
+
- 控件仅在 hover 或 focus 时显示。
|
|
22
|
+
- 仅在有帮助时持久化当前 step;章节顺序或 step 数变化后重置。
|
|
23
|
+
- 完整录制前先录制 10 秒样片。
|
|
24
|
+
|
|
25
|
+
## 音频策略
|
|
26
|
+
|
|
27
|
+
音频是可选项。项目可以使用:
|
|
28
|
+
|
|
29
|
+
- 用户提供的现有旁白文件。
|
|
30
|
+
- 宿主原生 TTS 或配音工具。
|
|
31
|
+
- 项目自有 TTS 管线。
|
|
32
|
+
|
|
33
|
+
音频对齐保持供应商中立。将片段文本和文件路径存入项目数据,但不要把供应商专属 API 契约写进 skill。
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# 主题系统
|
|
2
|
+
|
|
3
|
+
主题是起点,不是模板。主题定义录制画布的视觉气候,同时让各章节可以自由创建贴合内容的布局。
|
|
4
|
+
|
|
5
|
+
## Token 角色
|
|
6
|
+
|
|
7
|
+
使用语义化 CSS 变量:
|
|
8
|
+
|
|
9
|
+
- `--stage-bg`
|
|
10
|
+
- `--stage-fg`
|
|
11
|
+
- `--muted-fg`
|
|
12
|
+
- `--accent`
|
|
13
|
+
- `--accent-2`
|
|
14
|
+
- `--panel`
|
|
15
|
+
- `--line`
|
|
16
|
+
- `--shadow`
|
|
17
|
+
- `--font-display`
|
|
18
|
+
- `--font-body`
|
|
19
|
+
- `--radius`
|
|
20
|
+
- `--step-duration`
|
|
21
|
+
|
|
22
|
+
## 起始主题策略
|
|
23
|
+
|
|
24
|
+
内置起始主题刻意保持少量:
|
|
25
|
+
|
|
26
|
+
- 用它们创建可运行骨架。
|
|
27
|
+
- 当存在真实品牌或产品语境时,替换颜色和字体选择。
|
|
28
|
+
- 不要让所有章节变得一模一样;保持字体和颜色一致,同时让每章的布局与视觉手法有所变化。
|
|
29
|
+
|
|
30
|
+
## 自定义主题检查清单
|
|
31
|
+
|
|
32
|
+
- 录制文本的对比度达标。
|
|
33
|
+
- 强调色有清晰且不同的语义职责。
|
|
34
|
+
- 背景在视频压缩后不会出现浑浊渐变。
|
|
35
|
+
- 字体在 1080p 和较低分辨率二次上传中仍可读。
|
|
36
|
+
- 动效可以降低强度且不破坏含义。
|