@bovinphang/frontend-craft 2.6.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 +3 -3
- package/.claude-plugin/plugin.json +1 -1
- package/CHANGELOG.md +72 -1
- package/CHANGELOG.zh-CN.md +71 -1
- package/README.md +10 -6
- package/README.openclaw.md +100 -42
- package/README.openclaw.zh-CN.md +100 -42
- package/README.zh-CN.md +10 -6
- 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 +88 -88
- 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 +84 -69
- package/docs/ja-JP/README.md +56 -52
- package/docs/ko-KR/README.md +45 -41
- package/docs/project-structure.md +19 -7
- package/docs/superpowers/plans/2026-05-29-fec-debug.md +491 -0
- package/docs/superpowers/specs/2026-05-29-fec-debug-design.md +340 -0
- package/docs/zh-CN/example-prompts.md +84 -69
- package/docs/zh-CN/project-structure.md +14 -5
- package/docs/zh-TW/README.md +33 -29
- 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/{skills/fec-typescript-type-safety → localized/zh-CN/skills/fec-typescript-project-standard}/references/type-safety-patterns.md +1 -1
- package/{skills/fec-typescript-type-safety/SKILL.md → localized/zh-CN/skills/fec-typescript-project-standard/references/type-safety.md} +5 -14
- 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 +4 -3
- package/skills/TEMPLATE.md +74 -74
- package/skills/eval_queries.json +717 -619
- 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 +45 -0
- 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 +73 -0
- package/skills/fec-drawio-studio/data/THIRD_PARTY_NOTICES.md +10 -0
- package/skills/fec-drawio-studio/data/brand-icons.json +878 -0
- package/skills/fec-drawio-studio/data/shape-index.json +83570 -0
- package/skills/fec-drawio-studio/references/data-residency.md +27 -0
- package/skills/fec-drawio-studio/references/diagram-patterns.md +60 -0
- package/skills/fec-drawio-studio/references/flowchart-quality.md +49 -0
- package/skills/fec-drawio-studio/references/layout-and-export.md +72 -0
- package/skills/fec-drawio-studio/references/troubleshooting.md +29 -0
- package/skills/fec-drawio-studio/references/xml-and-mermaid.md +58 -0
- package/skills/fec-drawio-studio/scripts/brand-symbols.mjs +99 -0
- package/skills/fec-drawio-studio/scripts/diagram-lint.mjs +205 -0
- package/skills/fec-drawio-studio/scripts/diagram-url.mjs +102 -0
- package/skills/fec-drawio-studio/scripts/drawio-export.mjs +134 -0
- package/skills/fec-drawio-studio/scripts/layout-graph.mjs +107 -0
- package/skills/fec-drawio-studio/scripts/png-embed-fix.mjs +26 -0
- package/skills/fec-drawio-studio/scripts/scan-go-packages.mjs +36 -0
- package/skills/fec-drawio-studio/scripts/scan-js-modules.mjs +52 -0
- package/skills/fec-drawio-studio/scripts/scan-python-classes.mjs +30 -0
- package/skills/fec-drawio-studio/scripts/scan-python-modules.mjs +55 -0
- package/skills/fec-drawio-studio/scripts/scan-rust-modules.mjs +35 -0
- package/skills/fec-drawio-studio/scripts/scan-ts-modules.mjs +7 -0
- package/skills/fec-drawio-studio/scripts/shape-query.mjs +121 -0
- package/skills/fec-drawio-studio/scripts/studio-core.mjs +139 -0
- package/skills/fec-drawio-studio/styles/built-in/corporate.json +49 -0
- package/skills/fec-drawio-studio/styles/built-in/default.json +49 -0
- package/skills/fec-drawio-studio/styles/built-in/handdrawn.json +49 -0
- package/skills/fec-drawio-studio/styles/schema.json +112 -0
- package/skills/fec-e2e-testing/SKILL.md +24 -22
- package/skills/fec-e2e-testing/references/e2e-ci-reporting.md +62 -0
- package/skills/fec-e2e-testing/references/e2e-special-scenarios.md +52 -0
- package/skills/fec-e2e-testing/references/e2e-visual-regression.md +60 -0
- 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 +81 -0
- package/skills/fec-image-generation/assets/interactive-diagram.html +371 -0
- package/skills/fec-image-generation/references/artifact-routing.md +80 -0
- package/skills/fec-image-generation/references/diagram-workflows.md +74 -0
- package/skills/fec-image-generation/references/html-technical-diagrams.md +236 -0
- package/skills/fec-image-generation/references/png-qa-autofix.md +30 -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/png-qa.mjs +431 -0
- package/skills/fec-image-generation/scripts/tech-diagram-render.mjs +1397 -0
- package/skills/fec-implement-from-design/SKILL.md +81 -74
- package/skills/fec-implement-from-design/references/design-plan-template.md +16 -16
- package/skills/fec-legacy-to-modern-migration/SKILL.md +29 -173
- package/skills/fec-legacy-to-modern-migration/references/migration-execution-checklist.md +110 -0
- 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 +48 -0
- 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 -44
- package/skills/fec-motion-interaction/references/motion-patterns.md +11 -11
- package/skills/fec-nextjs-project-standard/SKILL.md +64 -58
- package/skills/fec-nuxt-project-standard/SKILL.md +57 -57
- package/skills/fec-performance-optimization/SKILL.md +54 -50
- package/skills/fec-performance-optimization/references/framework-performance-patterns.md +38 -0
- package/skills/fec-performance-optimization/references/report-template.md +34 -28
- 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 -64
- package/skills/fec-react-project-standard/references/react-performance-patterns.md +35 -0
- package/skills/fec-react-project-standard/references/react-project-structure.md +197 -0
- package/skills/fec-react-project-standard/references/react-quality-patterns.md +131 -0
- package/skills/fec-react-project-standard/references/react-runtime-patterns.md +293 -0
- 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 +39 -28
- 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 +66 -40
- 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 -32
- 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 +54 -0
- package/skills/fec-typescript-project-standard/references/type-safety-patterns.md +102 -0
- package/skills/fec-typescript-project-standard/references/type-safety.md +148 -0
- package/skills/fec-ui-design/SKILL.md +90 -72
- package/skills/fec-ui-design/data/style-archetypes.json +40 -0
- package/skills/fec-ui-design/data/ux-quality-rules.json +35 -0
- package/skills/fec-ui-design/references/design-intelligence.md +81 -21
- package/skills/fec-ui-design/references/master-page-overrides.md +15 -15
- package/skills/fec-ui-design/references/pre-delivery-checklist.md +38 -32
- package/skills/fec-ui-design/scripts/design-system.mjs +119 -1
- 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 +39 -30
- package/skills/fec-vue3-project-standard/references/vue3-composables-routing.md +163 -0
- package/skills/fec-vue3-project-standard/references/vue3-performance-patterns.md +13 -0
- package/skills/fec-vue3-project-standard/references/vue3-project-structure.md +177 -0
- package/skills/fec-vue3-project-standard/references/vue3-state-api-quality.md +216 -0
- package/skills/fec-web-video-presentation/SKILL.md +61 -0
- package/skills/fec-web-video-presentation/data/starter-themes.json +59 -0
- package/skills/fec-web-video-presentation/references/chapter-craft.md +37 -0
- package/skills/fec-web-video-presentation/references/content-plan.md +38 -0
- package/skills/fec-web-video-presentation/references/recording-and-audio.md +33 -0
- package/skills/fec-web-video-presentation/references/theme-system.md +36 -0
- package/skills/fec-web-video-presentation/scripts/create-video-presentation.mjs +430 -0
- 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 +402 -220
- package/skills/relations.json +120 -25
- 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 -117
- package/templates/shared/rules/fec-code-comments.md +22 -22
- package/templates/shared/rules/fec-design-system.md +65 -241
- package/templates/shared/rules/fec-error-handling.md +41 -185
- package/templates/shared/rules/fec-git-conventions.md +42 -42
- package/templates/shared/rules/fec-i18n.md +48 -96
- 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 -30
- package/templates/shared/rules/fec-rendering-patterns.md +40 -183
- package/templates/shared/rules/fec-responsive-design.md +37 -214
- package/templates/shared/rules/fec-source-driven-development.md +22 -22
- package/templates/shared/rules/fec-state-management.md +45 -148
- package/templates/shared/rules/fec-testing.md +64 -64
- package/templates/shared/rules/fec-typescript.md +98 -341
- package/templates/shared/rules/fec-vue.md +42 -42
- package/templates/shared/rules/fec-working-modes.md +34 -34
- package/skills/fec-e2e-testing/references/e2e-advanced.md +0 -176
- package/skills/fec-react-project-standard/references/react-project-details.md +0 -642
- package/skills/fec-vue3-project-standard/references/vue3-project-details.md +0 -547
|
@@ -67,6 +67,14 @@ import { fileURLToPath } from "node:url";
|
|
|
67
67
|
* project: string;
|
|
68
68
|
* page: string;
|
|
69
69
|
* query: string;
|
|
70
|
+
* designRead: string;
|
|
71
|
+
* designDials: {
|
|
72
|
+
* visualTension: number;
|
|
73
|
+
* motionIntensity: number;
|
|
74
|
+
* informationDensity: number;
|
|
75
|
+
* mediaAuthenticity: number;
|
|
76
|
+
* contentPersuasion: number;
|
|
77
|
+
* };
|
|
70
78
|
* product: { id: string; label: string; pattern: string; risks: string[] };
|
|
71
79
|
* style: { id: string; label: string; usage: string | undefined; risks: string[] };
|
|
72
80
|
* tokens: { color: string; typography: string; space: string; components: string[] };
|
|
@@ -230,6 +238,7 @@ function buildRecommendation(args) {
|
|
|
230
238
|
const tokens = tokenize([query, args.project, args.page, args.stack].filter(Boolean).join(" "));
|
|
231
239
|
const product = chooseProduct(tokens);
|
|
232
240
|
const style = chooseStyle(tokens, product);
|
|
241
|
+
const designDials = deriveDesignDials(tokens, product, style);
|
|
233
242
|
const checklist = chooseChecklist(tokens, product);
|
|
234
243
|
const stackGuidance = chooseStack(args.stack, tokens);
|
|
235
244
|
const pattern = product.pattern ?? product.patterns?.[0] ?? "Task-first interface with explicit states and durable visual hierarchy";
|
|
@@ -238,6 +247,8 @@ function buildRecommendation(args) {
|
|
|
238
247
|
project: args.project || titleCase(query),
|
|
239
248
|
page: args.page || "",
|
|
240
249
|
query,
|
|
250
|
+
designRead: renderDesignRead(product, style, designDials),
|
|
251
|
+
designDials,
|
|
241
252
|
product: {
|
|
242
253
|
id: product.id,
|
|
243
254
|
label: product.label ?? labelFromId(product.id),
|
|
@@ -312,11 +323,17 @@ function chooseStyle(tokens, product) {
|
|
|
312
323
|
* @returns {ChecklistGroup[]}
|
|
313
324
|
*/
|
|
314
325
|
function chooseChecklist(tokens, product) {
|
|
315
|
-
const priority = new Set(["accessibility", "interaction", "layout", "typography", "animation"]);
|
|
326
|
+
const priority = new Set(["accessibility", "interaction", "layout", "typography", "animation", "state-completeness"]);
|
|
316
327
|
if (product.id === "data-dashboard" || tokens.has("dashboard") || tokens.has("chart")) priority.add("charts");
|
|
317
328
|
if (tokens.has("form") || tokens.has("booking") || tokens.has("checkout")) priority.add("forms");
|
|
318
329
|
if (tokens.has("mobile") || tokens.has("app")) priority.add("navigation");
|
|
319
330
|
if (tokens.has("performance") || tokens.has("canvas") || tokens.has("three")) priority.add("performance");
|
|
331
|
+
if (isPromotional(tokens, product)) {
|
|
332
|
+
priority.add("first-viewport");
|
|
333
|
+
priority.add("cta-quality");
|
|
334
|
+
priority.add("section-variety");
|
|
335
|
+
priority.add("media-authenticity");
|
|
336
|
+
}
|
|
320
337
|
|
|
321
338
|
return uxQualityRules
|
|
322
339
|
.filter((rule) => {
|
|
@@ -333,6 +350,96 @@ function chooseChecklist(tokens, product) {
|
|
|
333
350
|
});
|
|
334
351
|
}
|
|
335
352
|
|
|
353
|
+
/**
|
|
354
|
+
* @param {Set<string>} tokens
|
|
355
|
+
* @param {ProductRule} product
|
|
356
|
+
* @param {StyleArchetype} style
|
|
357
|
+
* @returns {Recommendation["designDials"]}
|
|
358
|
+
*/
|
|
359
|
+
function deriveDesignDials(tokens, product, style) {
|
|
360
|
+
/** @type {Recommendation["designDials"]} */
|
|
361
|
+
const dials = {
|
|
362
|
+
visualTension: 5,
|
|
363
|
+
motionIntensity: 3,
|
|
364
|
+
informationDensity: 5,
|
|
365
|
+
mediaAuthenticity: 5,
|
|
366
|
+
contentPersuasion: 5,
|
|
367
|
+
};
|
|
368
|
+
|
|
369
|
+
if (["data-dashboard", "saas", "fintech", "healthcare"].includes(product.id)) {
|
|
370
|
+
dials.visualTension = 3;
|
|
371
|
+
dials.motionIntensity = product.id === "saas" ? 3 : 2;
|
|
372
|
+
dials.informationDensity = product.id === "data-dashboard" ? 8 : 6;
|
|
373
|
+
dials.mediaAuthenticity = 4;
|
|
374
|
+
dials.contentPersuasion = 4;
|
|
375
|
+
}
|
|
376
|
+
|
|
377
|
+
if (["ecommerce", "creative", "wellness"].includes(product.id) || isPromotional(tokens, product)) {
|
|
378
|
+
dials.visualTension = product.id === "creative" ? 8 : 7;
|
|
379
|
+
dials.motionIntensity = product.id === "creative" ? 6 : 5;
|
|
380
|
+
dials.informationDensity = 4;
|
|
381
|
+
dials.mediaAuthenticity = 8;
|
|
382
|
+
dials.contentPersuasion = 8;
|
|
383
|
+
}
|
|
384
|
+
|
|
385
|
+
if (product.id === "gaming" || style.id === "immersive") {
|
|
386
|
+
dials.visualTension = 8;
|
|
387
|
+
dials.motionIntensity = 7;
|
|
388
|
+
dials.informationDensity = 6;
|
|
389
|
+
dials.mediaAuthenticity = 7;
|
|
390
|
+
dials.contentPersuasion = 5;
|
|
391
|
+
}
|
|
392
|
+
|
|
393
|
+
if (["minimal", "minimal-utilitarian"].includes(style.id)) {
|
|
394
|
+
dials.visualTension = Math.min(dials.visualTension, 4);
|
|
395
|
+
dials.motionIntensity = Math.min(dials.motionIntensity, 3);
|
|
396
|
+
}
|
|
397
|
+
|
|
398
|
+
if (["editorial-premium", "image-led-landing", "brand-system-board"].includes(style.id)) {
|
|
399
|
+
dials.visualTension = Math.max(dials.visualTension, 7);
|
|
400
|
+
dials.mediaAuthenticity = Math.max(dials.mediaAuthenticity, 8);
|
|
401
|
+
dials.contentPersuasion = Math.max(dials.contentPersuasion, 7);
|
|
402
|
+
}
|
|
403
|
+
|
|
404
|
+
if (tokens.has("regulated") || tokens.has("public") || tokens.has("government") || tokens.has("accessibility")) {
|
|
405
|
+
dials.visualTension = Math.min(dials.visualTension, 3);
|
|
406
|
+
dials.motionIntensity = Math.min(dials.motionIntensity, 2);
|
|
407
|
+
dials.informationDensity = Math.max(dials.informationDensity, 5);
|
|
408
|
+
}
|
|
409
|
+
|
|
410
|
+
return dials;
|
|
411
|
+
}
|
|
412
|
+
|
|
413
|
+
/**
|
|
414
|
+
* @param {ProductRule} product
|
|
415
|
+
* @param {StyleArchetype} style
|
|
416
|
+
* @param {Recommendation["designDials"]} dials
|
|
417
|
+
* @returns {string}
|
|
418
|
+
*/
|
|
419
|
+
function renderDesignRead(product, style, dials) {
|
|
420
|
+
return [
|
|
421
|
+
`Reading this as ${product.label ?? labelFromId(product.id)} work`,
|
|
422
|
+
`with a ${style.label ?? labelFromId(style.id)} visual direction`,
|
|
423
|
+
`and dial targets ${dials.visualTension}/${dials.motionIntensity}/${dials.informationDensity}/${dials.mediaAuthenticity}/${dials.contentPersuasion}`,
|
|
424
|
+
].join(", ");
|
|
425
|
+
}
|
|
426
|
+
|
|
427
|
+
/**
|
|
428
|
+
* @param {Set<string>} tokens
|
|
429
|
+
* @param {ProductRule} product
|
|
430
|
+
* @returns {boolean}
|
|
431
|
+
*/
|
|
432
|
+
function isPromotional(tokens, product) {
|
|
433
|
+
return product.id === "creative"
|
|
434
|
+
|| product.id === "ecommerce"
|
|
435
|
+
|| tokens.has("landing")
|
|
436
|
+
|| tokens.has("marketing")
|
|
437
|
+
|| tokens.has("portfolio")
|
|
438
|
+
|| tokens.has("brand")
|
|
439
|
+
|| tokens.has("website")
|
|
440
|
+
|| tokens.has("hero");
|
|
441
|
+
}
|
|
442
|
+
|
|
336
443
|
/**
|
|
337
444
|
* @param {string} stack
|
|
338
445
|
* @param {Set<string>} tokens
|
|
@@ -364,10 +471,19 @@ function renderMarkdown(model) {
|
|
|
364
471
|
const lines = [
|
|
365
472
|
`# Design System Recommendation: ${model.project}`,
|
|
366
473
|
"",
|
|
474
|
+
`- Design read: ${model.designRead}`,
|
|
367
475
|
`- Product category: ${model.product.label} (${model.product.id})`,
|
|
368
476
|
`- Recommended pattern: ${model.product.pattern}`,
|
|
369
477
|
`- Style archetype: ${model.style.label} (${model.style.id})`,
|
|
370
478
|
"",
|
|
479
|
+
"## Design Dials",
|
|
480
|
+
"",
|
|
481
|
+
`- Visual tension: ${model.designDials.visualTension}/10`,
|
|
482
|
+
`- Motion intensity: ${model.designDials.motionIntensity}/10`,
|
|
483
|
+
`- Information density: ${model.designDials.informationDensity}/10`,
|
|
484
|
+
`- Media authenticity: ${model.designDials.mediaAuthenticity}/10`,
|
|
485
|
+
`- Content persuasion: ${model.designDials.contentPersuasion}/10`,
|
|
486
|
+
"",
|
|
371
487
|
"## Token Direction",
|
|
372
488
|
"",
|
|
373
489
|
`- Color: ${model.tokens.color}`,
|
|
@@ -416,10 +532,12 @@ function renderPageOverride(model) {
|
|
|
416
532
|
"## Page Intent",
|
|
417
533
|
"",
|
|
418
534
|
`Use the Master direction, then adapt layout and component density for ${pageName}. Keep overrides narrow and delete any rule that merely repeats the Master.`,
|
|
535
|
+
`Design read: ${model.designRead}.`,
|
|
419
536
|
"",
|
|
420
537
|
"## Override Strategy",
|
|
421
538
|
"",
|
|
422
539
|
`- Primary pattern: ${model.product.pattern}`,
|
|
540
|
+
`- Dials: visual ${model.designDials.visualTension}/10, motion ${model.designDials.motionIntensity}/10, density ${model.designDials.informationDensity}/10, media ${model.designDials.mediaAuthenticity}/10, persuasion ${model.designDials.contentPersuasion}/10`,
|
|
423
541
|
`- Visual emphasis: ${model.style.usage}`,
|
|
424
542
|
`- Chart behavior: ${model.chart}`,
|
|
425
543
|
"",
|
|
@@ -1,51 +1,51 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: fec-validation-fix
|
|
3
|
-
description: Use when running existing project validation commands and fixing failures after code changes, including lint, type-check, unit/integration test, build, CI, or local script failures. Do not use when the task is to design or author new component/E2E tests; Chinese triggers include
|
|
3
|
+
description: Use when running existing project validation commands and fixing failures after code changes, including lint, type-check, unit/integration test, build, CI, or local script failures. Do not use when the task is to design or author new component/E2E tests; Chinese triggers include validation, check failures, fix failures, CI failures.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
#
|
|
6
|
+
# Verify and fix
|
|
7
7
|
|
|
8
8
|
## Purpose
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
Automatically execute existing verification commands, analyze the reasons for failure and safely repair them to ensure that quality access control meets standards.
|
|
11
11
|
|
|
12
12
|
## Procedure
|
|
13
13
|
|
|
14
|
-
1.
|
|
15
|
-
2.
|
|
14
|
+
1. Identify available commands from package.json or repository documentation.
|
|
15
|
+
2. Prioritize execution in the following order:
|
|
16
16
|
- lint
|
|
17
17
|
- type-check
|
|
18
18
|
- unit/integration tests
|
|
19
19
|
- build
|
|
20
|
-
3.
|
|
21
|
-
4.
|
|
22
|
-
5.
|
|
23
|
-
6.
|
|
24
|
-
7.
|
|
25
|
-
8.
|
|
20
|
+
3. Read the failure output carefully.
|
|
21
|
+
4. Group errors by file, error type and dependency, prioritizing root causes that block subsequent diagnosis.
|
|
22
|
+
5. Fix one type of problem at a time and display or log critical error context.
|
|
23
|
+
6. After each critical repair, re-execute the affected command to confirm whether the error is reduced.
|
|
24
|
+
7. If the same error still fails to be repaired three times in a row, stop expanding changes and report blocking.
|
|
25
|
+
8. Finally, press `Expected Output` to summarize the execution results, repair content and remaining risks.
|
|
26
26
|
|
|
27
27
|
## Failure Triage
|
|
28
28
|
|
|
29
|
-
-
|
|
30
|
-
-
|
|
31
|
-
-
|
|
32
|
-
-
|
|
29
|
+
- Fix the earliest errors that will cascade first, such as missing types, import failures, and configuration parsing failures.
|
|
30
|
+
- Differentiate between real product bugs, test environment issues, snapshot drift, dependency version changes and flaky.
|
|
31
|
+
- Log Node version, package manager, environment variables, path case, and working directory differences for CI-specific failures.
|
|
32
|
+
- When fixing tests, give priority to fixing product code or testing waiting methods, instead of deleting assertions to cover up real regressions.
|
|
33
33
|
|
|
34
34
|
## Constraints
|
|
35
35
|
|
|
36
|
-
-
|
|
37
|
-
-
|
|
38
|
-
-
|
|
39
|
-
-
|
|
40
|
-
-
|
|
41
|
-
-
|
|
36
|
+
- Do not blindly turn off rules to eliminate errors
|
|
37
|
+
- Don't compromise type safety to pass checks unless there is a clear reason to do so
|
|
38
|
+
- Don’t rewrite irrelevant modules just because a nearby test fails
|
|
39
|
+
- Do not modify multiple irrelevant root causes at once
|
|
40
|
+
- Don't remove failing tests to make validation pass
|
|
41
|
+
- Don't just run a fragment of the failed command and claim that the overall validation passed
|
|
42
42
|
|
|
43
|
-
##
|
|
43
|
+
## Detailed reference
|
|
44
44
|
|
|
45
|
-
|
|
45
|
+
When writing a verification fix report, load [references/report-template.md](references/report-template.md).
|
|
46
46
|
|
|
47
47
|
## Expected Output
|
|
48
48
|
|
|
49
|
-
- lint
|
|
50
|
-
-
|
|
51
|
-
-
|
|
49
|
+
- All verification commands such as lint/type-check/test/build passed
|
|
50
|
+
- Failed items have been fixed or given clear reasons and follow-up actions
|
|
51
|
+
- The fix report is saved as `reports/validation-fix-YYYY-MM-DD-HHmmss.md`
|
|
@@ -1,43 +1,43 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Verify repair report template
|
|
2
2
|
|
|
3
3
|
```markdown
|
|
4
|
-
#
|
|
4
|
+
# Verify repair report
|
|
5
5
|
|
|
6
|
-
>
|
|
7
|
-
>
|
|
6
|
+
> Generation time: YYYY-MM-DD HH:mm
|
|
7
|
+
> Verification scope: lint/type-check/test/build/CI
|
|
8
8
|
|
|
9
|
-
##
|
|
9
|
+
## Command status table
|
|
10
10
|
|
|
11
|
-
|
|
|
11
|
+
| Command | Initial state | Repaired state | Remarks |
|
|
12
12
|
| --- | --- | --- | --- |
|
|
13
|
-
| `npm run type-check` |
|
|
13
|
+
| `npm run type-check` | failed/passed/didn’t run | failed/passed/didn’t run | ... |
|
|
14
14
|
|
|
15
|
-
##
|
|
15
|
+
## Failure summary
|
|
16
16
|
|
|
17
|
-
-
|
|
18
|
-
-
|
|
19
|
-
-
|
|
17
|
+
- Errors that occur earliest and cascade
|
|
18
|
+
- Affected files, error types and critical logs
|
|
19
|
+
- Whether it is CI exclusive, test environment, dependent version or flaky issue
|
|
20
20
|
|
|
21
|
-
##
|
|
21
|
+
## Root cause
|
|
22
22
|
|
|
23
|
-
-
|
|
24
|
-
-
|
|
23
|
+
- Confirmed root cause
|
|
24
|
+
- Output, logs, or reproduction evidence to support the conclusion
|
|
25
25
|
|
|
26
|
-
##
|
|
26
|
+
## Fix content
|
|
27
27
|
|
|
28
|
-
-
|
|
29
|
-
-
|
|
28
|
+
- Modified files and behavior
|
|
29
|
+
- Why the failure was not circumvented by turning off rules, removing assertions, or reducing type safety
|
|
30
30
|
|
|
31
|
-
##
|
|
31
|
+
## Verification results
|
|
32
32
|
|
|
33
|
-
-
|
|
34
|
-
-
|
|
35
|
-
-
|
|
33
|
+
- Command to re-execute
|
|
34
|
+
- Summary of command output
|
|
35
|
+
- Are there still failed items?
|
|
36
36
|
|
|
37
|
-
##
|
|
37
|
+
## Residual risk
|
|
38
38
|
|
|
39
|
-
-
|
|
40
|
-
-
|
|
39
|
+
- Uncovered verification commands
|
|
40
|
+
- Issues that still require user decision-making or external environment confirmation
|
|
41
41
|
```
|
|
42
42
|
|
|
43
|
-
|
|
43
|
+
After the verification fix is completed, save the report to `reports/validation-fix-YYYY-MM-DD-HHmmss.md` and inform the user of the report path.
|
|
@@ -1,44 +1,44 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: fec-vite-project-standard
|
|
3
|
-
description: Use when creating, configuring, reviewing, or debugging Vite-based frontend projects, vite.config.ts, env variables, dev server proxy, HMR, plugin ordering, library mode, dependency pre-bundling, bundle splitting, or Vite build performance. Use framework-specific skills for React/Vue component architecture; Chinese triggers include Vite
|
|
3
|
+
description: Use when creating, configuring, reviewing, or debugging Vite-based frontend projects, vite.config.ts, env variables, dev server proxy, HMR, plugin ordering, library mode, dependency pre-bundling, bundle splitting, or Vite build performance. Use framework-specific skills for React/Vue component architecture; Chinese triggers include Vite configuration, vite.config, Vite build, Vite performance.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
# Vite
|
|
6
|
+
# Vite Project Specifications
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
Design and review of Vite applications, component libraries, development servers, and build configurations.
|
|
9
9
|
|
|
10
10
|
## Purpose
|
|
11
11
|
|
|
12
|
-
|
|
12
|
+
Standardize Vite configurations, security boundaries, and build performance to avoid common pitfalls of development environments and production builds.
|
|
13
13
|
|
|
14
14
|
## Procedure
|
|
15
15
|
|
|
16
|
-
1.
|
|
17
|
-
-
|
|
18
|
-
-
|
|
19
|
-
- Monorepo
|
|
20
|
-
|
|
21
|
-
2.
|
|
22
|
-
- React
|
|
23
|
-
- Vue
|
|
24
|
-
- TypeScript
|
|
25
|
-
|
|
26
|
-
3.
|
|
27
|
-
-
|
|
28
|
-
- `loadEnv`
|
|
29
|
-
-
|
|
30
|
-
|
|
31
|
-
4.
|
|
32
|
-
-
|
|
33
|
-
-
|
|
34
|
-
-
|
|
35
|
-
|
|
36
|
-
5.
|
|
37
|
-
-
|
|
38
|
-
-
|
|
39
|
-
-
|
|
40
|
-
-
|
|
41
|
-
-
|
|
16
|
+
1. Identify the project type
|
|
17
|
+
- Application projects check `root`, `base`, `server.proxy`, `envPrefix`, `build` and framework plugins first.
|
|
18
|
+
- Component library projects check `build.lib`, type products, peer dependencies external and export entries first.
|
|
19
|
+
- Monorepo additional checks for `server.fs.allow`, path aliases and package dependency boundaries.
|
|
20
|
+
|
|
21
|
+
2. Select plugin
|
|
22
|
+
- React gives priority to `@vitejs/plugin-react-swc` by default; use `@vitejs/plugin-react` only when the Babel plug-in is required.
|
|
23
|
+
- The Vue project uses `@vitejs/plugin-vue`, and path aliases are given priority to `vite-tsconfig-paths`.
|
|
24
|
+
- TypeScript projects must complete type checking via `tsc --noEmit`, CI or `vite-plugin-checker`.
|
|
25
|
+
|
|
26
|
+
3. Manage environment variables
|
|
27
|
+
- Clients only read explicitly exposed prefixes, such as `VITE_`.
|
|
28
|
+
- The third parameter of `loadEnv` uses an explicit prefix array and does not use an empty string to load all variables.
|
|
29
|
+
- Keys, database addresses, and private tokens must stay on the server or build system and not enter the client bundle.
|
|
30
|
+
|
|
31
|
+
4. Optimize development experience
|
|
32
|
+
- Use `vite --profile` to locate plug-in, parsing or pre-built bottlenecks before slow start.
|
|
33
|
+
- Use `optimizeDeps.include` for CJS/UMD dependencies to handle interop issues.
|
|
34
|
+
- Large projects can use `server.warmup.clientFiles` to warm up the core entrance.
|
|
35
|
+
|
|
36
|
+
5. Optimize production builds
|
|
37
|
+
- Run `vite build` before release and use `vite preview` to do local build smoke testing.
|
|
38
|
+
- Prioritize manual subcontracting by using stable object forms to avoid splitting each dependency into independent small chunks.
|
|
39
|
+
- The production sourcemap is turned off by default; if uploaded to the error tracking platform, it will not be published with the site after uploading.
|
|
40
|
+
- Motion effects, 3D, charts, editors, maps, and audio and video processing libraries are prioritized for isolation through dynamic import or route-level unpacking.
|
|
41
|
+
- Check whether static resources go into the correct directory, have been hashed/cache, have placeholder URLs, or are too large uncompressed media.
|
|
42
42
|
|
|
43
43
|
## Minimal Config
|
|
44
44
|
|
|
@@ -69,15 +69,15 @@ export default defineConfig(({ mode }) => {
|
|
|
69
69
|
|
|
70
70
|
## Constraints
|
|
71
71
|
|
|
72
|
-
- `vite build`
|
|
73
|
-
- `VITE_`
|
|
74
|
-
-
|
|
75
|
-
-
|
|
76
|
-
-
|
|
77
|
-
-
|
|
78
|
-
-
|
|
79
|
-
-
|
|
72
|
+
- `vite build` only translates and packages, not type checking; CI must run typecheck separately.
|
|
73
|
+
- `VITE_` is not a security boundary; any `VITE_` variable goes into the client package.
|
|
74
|
+
- Do not set `envPrefix: ""`, do not use `loadEnv(mode, root, "")` and then `define` at will.
|
|
75
|
+
- Legacy plugins are not introduced by default; only enable them when needed for real user data.
|
|
76
|
+
- Don't use `vite preview` as a production server.
|
|
77
|
+
- Component libraries must externalize peer dependencies and produce `.d.ts` separately.
|
|
78
|
+
- Do not inject server keys into clients via `define`, `import.meta.env` or empty prefix `loadEnv`.
|
|
79
|
+
- Do not put heavy libraries such as GSAP, Three.js, Lottie, Monaco, and Map SDK into all page sharing entries; first evaluate the impact of async chunk and first screen.
|
|
80
80
|
|
|
81
81
|
## Expected Output
|
|
82
82
|
|
|
83
|
-
|
|
83
|
+
The output should include project type judgment, key configuration changes, environment variable security instructions, and build/development performance verification methods. When completed, the Vite configuration should be type-checked, buildable, secret-secure, and explain the differences between dev and build.
|
|
@@ -1,49 +1,58 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: fec-vue3-project-standard
|
|
3
|
-
description: Use when designing or reviewing Vue 3 + TypeScript project structure, SFC/component boundaries, composables organization, route composition, Pinia ownership, API/error/styling defaults, directives, or repository-wide Vue conventions. Prefer narrower skills for forms, data fetching, tests, accessibility, virtualization, animation, or security deep dives; Chinese triggers include Vue 3
|
|
3
|
+
description: Use when designing or reviewing Vue 3 + TypeScript project structure, SFC/component boundaries, composables organization, route composition, Pinia ownership, API/error/styling defaults, directives, or repository-wide Vue conventions. Prefer narrower skills for forms, data fetching, tests, accessibility, virtualization, animation, or security deep dives; Chinese triggers include Vue 3 project specification, Vue component architecture.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
# Vue 3
|
|
6
|
+
# Vue 3 project specifications
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
For repositories using Vue 3 + TypeScript.
|
|
9
9
|
|
|
10
10
|
## Purpose
|
|
11
11
|
|
|
12
|
-
|
|
12
|
+
Provides project structure, component boundaries, Composables, and default implementation conventions for Vue 3 + TypeScript projects to ensure conventional development and type safety.
|
|
13
13
|
|
|
14
14
|
## Procedure
|
|
15
15
|
|
|
16
|
-
1.
|
|
17
|
-
2.
|
|
18
|
-
3.
|
|
19
|
-
4.
|
|
20
|
-
5.
|
|
21
|
-
6. Tailwind token/variant
|
|
22
|
-
|
|
16
|
+
1. Identify the existing Vue conventions in the warehouse: directory, routing, Pinia, request layer, style system, component library and test framework.
|
|
17
|
+
2. Demarcate the boundaries between pages, business components, common components, composables, stores, services and utils.
|
|
18
|
+
3. Prioritize the existing automatic import/module export conventions of `<script setup lang="ts">`, composite API and warehouse.
|
|
19
|
+
4. Complete state ownership, API layer, error handling, style isolation and special skill offloading when outputting.
|
|
20
|
+
5. Pages and modules must have recoverable error UI; global `errorHandler`, `onErrorCaptured`, request error mapping and routing error page have clear division of labor.
|
|
21
|
+
6. Tailwind token/variant or responsive layout requirements should be diverted to corresponding special skills to avoid stuffing style system rules into Vue component specifications.
|
|
22
|
+
7. When the state ownership is complex, first make a state list; when the boundaries of DTO, public props, generic composable or `tsconfig` are complex, first use the TypeScript project specification process to converge cross-framework type contracts.
|
|
23
|
+
8. When designing reusable composables, clarify whether the input supports plain value, ref, computed or getter; when testing Vue components, cover the common boundaries of Pinia, Router, Teleport, Suspense and async setup.
|
|
23
24
|
|
|
24
|
-
##
|
|
25
|
+
## Detailed reference
|
|
25
26
|
|
|
26
|
-
|
|
27
|
+
Load more detailed reference files as needed:
|
|
28
|
+
|
|
29
|
+
- Project directory, component layering, component specifications, annotations, and TypeScript: Load [references/vue3-project-structure.md](references/vue3-project-structure.md).
|
|
30
|
+
- Composables, slots, Provide/Inject and routing organizations: Load [references/vue3-composables-routing.md](references/vue3-composables-routing.md).
|
|
31
|
+
- Pinia, API layer, error handling, directives, styles, tests, anti-patterns and output checklist: Loading [references/vue3-state-api-quality.md](references/vue3-state-api-quality.md).
|
|
32
|
+
- Lightweight performance conventions at the Vue project specification level: Load [references/vue3-performance-patterns.md](references/vue3-performance-patterns.md).
|
|
27
33
|
|
|
28
34
|
## Constraints
|
|
29
35
|
|
|
30
|
-
-
|
|
31
|
-
-
|
|
32
|
-
- Props / Emits
|
|
33
|
-
- Composable
|
|
34
|
-
-
|
|
35
|
-
-
|
|
36
|
-
-
|
|
37
|
-
-
|
|
38
|
-
-
|
|
36
|
+
- Use `<script setup lang="ts">` to disable using Options API to add new components
|
|
37
|
+
- The size of the component file should be approximately **300 lines**; if it exceeds **500 lines** or is too complex, sub-components and Composables must be separated
|
|
38
|
+
- Props / Emits must be defined using the TypeScript interface, and `any` is prohibited
|
|
39
|
+
- Composable returns a `readonly` reference to prevent accidental external modifications
|
|
40
|
+
- Do not store UI temporary states (modal switches, form inputs, etc.) in the store
|
|
41
|
+
- Server-side data is first managed by the request library rather than manually stored in Pinia
|
|
42
|
+
- Avoid using `v-if` in `v-for` (extract to computed filtering)
|
|
43
|
+
- It is forbidden to import directly from the deep path inside the feature, bypassing `index.ts`
|
|
44
|
+
- No need for global error handling to swallow recoverable API, form or permission errors within components.
|
|
45
|
+
- Do not mistake function parameters for getter automatic calls; if composable parameters may be callbacks, avoid using getter input conventions.
|
|
46
|
+
- Do not rely on snapshots as the only assertions for Vue components; asynchronous components, Teleport and Pinia scenes must have user-visible behavior assertions.
|
|
39
47
|
|
|
40
48
|
## Expected Output
|
|
41
49
|
|
|
42
|
-
-
|
|
43
|
-
-
|
|
44
|
-
- Loading / Error / Empty / Data
|
|
45
|
-
-
|
|
46
|
-
- URL
|
|
47
|
-
- API
|
|
48
|
-
-
|
|
49
|
-
-
|
|
50
|
+
- The component uses `<script setup lang="ts">`, and the Props/Emits type is complete
|
|
51
|
+
- Reusable logic has been extracted to composable, returning `readonly` reference
|
|
52
|
+
- Loading / Error / Empty / Data status have been processed
|
|
53
|
+
- Routing components are loaded using dynamic import, and state management conforms to the proximity principle
|
|
54
|
+
- URL status, server status, form status and Pinia global status have clear boundaries
|
|
55
|
+
- API calls have type constraints and unified error handling
|
|
56
|
+
- Styles are isolated using scoped, and key behaviors are covered by tests
|
|
57
|
+
- The file structure is consistent with the project convention (pages/features/components are separated)
|
|
58
|
+
- Input responsiveness, Pinia/Router boundaries and asynchronous component testing strategies for reusable composables explained
|