@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
|
@@ -1,122 +1,129 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: fec-implement-from-design
|
|
3
|
-
description: Use when implementing UI from Figma, Sketch, MasterGo, Pixso, Modao, MockingBot, screenshots, design selections, design tokens, or design-to-code tasks for production frontend components/pages; Chinese triggers include
|
|
3
|
+
description: Use when implementing UI from Figma, Sketch, MasterGo, Pixso, Modao, MockingBot, screenshots, design selections, design tokens, or design-to-code tasks for production frontend components/pages; Chinese triggers include design draft, implementation by design.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
#
|
|
6
|
+
# Implement according to design draft
|
|
7
7
|
|
|
8
8
|
## Purpose
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
Based on the design context of design tools (Figma, Sketch, MasterGo, Pixso, Mokou, Mock), high-fidelity implementation of pages or components emphasizes component reuse, design token mapping, accessibility, and production-oriented front-end implementation.
|
|
11
11
|
|
|
12
|
-
##
|
|
12
|
+
## Supported design tools
|
|
13
13
|
|
|
14
|
-
|
|
|
14
|
+
| Tools | MCP Integration | How to obtain design data |
|
|
15
15
|
| -------- | ------------------------- | ----------------------------------------- |
|
|
16
|
-
| Figma
|
|
17
|
-
| Sketch
|
|
18
|
-
| MasterGo | `mastergo`
|
|
19
|
-
| Pixso
|
|
20
|
-
|
|
|
21
|
-
|
|
|
16
|
+
| Figma | `figma` / `figma-desktop` | API to obtain design structure and variable definitions |
|
|
17
|
+
| Sketch | `sketch` | MCP Get screenshot of design selection |
|
|
18
|
+
| MasterGo | `mastergo` | API to get DSL structure data |
|
|
19
|
+
| Pixso | `pixso` | Local MCP gets frame data and code |
|
|
20
|
+
| Mo Dao | `modao` | MCP obtains prototype data and generates design descriptions |
|
|
21
|
+
| Mocke | No MCP | Acquired via user-provided screenshots, annotations, or exported CSS |
|
|
22
22
|
|
|
23
|
-
##
|
|
23
|
+
## Target
|
|
24
24
|
|
|
25
|
-
-
|
|
26
|
-
-
|
|
27
|
-
-
|
|
28
|
-
-
|
|
29
|
-
-
|
|
25
|
+
- Realize the design draft as accurately as possible
|
|
26
|
+
- Prioritize reusing existing project components before creating new ones
|
|
27
|
+
- Map design variables to existing Tokens as much as possible
|
|
28
|
+
- Keep implementations maintainable, well-typed, testable, and accessible
|
|
29
|
+
- Avoid introducing duplication of basic components or parallel design systems
|
|
30
30
|
|
|
31
31
|
## Procedure
|
|
32
32
|
|
|
33
|
-
### 1.
|
|
33
|
+
### 1. Identify design sources
|
|
34
34
|
|
|
35
|
-
|
|
35
|
+
Select the design data acquisition method according to priority:
|
|
36
36
|
|
|
37
|
-
- `figma` — Figma API
|
|
38
|
-
- `figma-desktop` — Figma
|
|
39
|
-
- `mastergo` — MasterGo DSL
|
|
40
|
-
- `pixso` — Pixso
|
|
41
|
-
- `modao` —
|
|
42
|
-
- `sketch` — Sketch
|
|
43
|
-
-
|
|
37
|
+
- `figma` — Figma API integration
|
|
38
|
+
- `figma-desktop` — Figma desktop integration
|
|
39
|
+
- `mastergo` — MasterGo DSL data
|
|
40
|
+
- `pixso` — Pixso local MCP
|
|
41
|
+
- `modao` — Ink knife prototype data
|
|
42
|
+
- `sketch` — Sketch selection screenshot
|
|
43
|
+
- If none of the above MCPs are available, ask the user to provide design screenshots or annotations (applicable to tools without MCP such as Mocke)
|
|
44
|
+
- If there is no authoritative design draft, but the task clearly requires a visual website, brand page, portfolio or high-aesthetic redesign, user-provided or locally generated section-level reference images can be used as a temporary source of visual truth; this source must be analyzed first and then implemented, and marked in the plan as not an authoritative design system.
|
|
44
45
|
|
|
45
|
-
### 2.
|
|
46
|
+
### 2. Read the design context
|
|
46
47
|
|
|
47
|
-
|
|
48
|
+
Read the design context from the MCP or user-supplied design data:
|
|
48
49
|
|
|
49
|
-
-
|
|
50
|
-
-
|
|
51
|
-
-
|
|
52
|
-
-
|
|
53
|
-
-
|
|
50
|
+
- Check layout structure
|
|
51
|
+
- Check spacing, fonts, colors, variables, states, icons and component hierarchy
|
|
52
|
+
- If MCP provides resource files or SVG/image sources, use them directly
|
|
53
|
+
- If MCP has provided real resources, do not create placeholder resources by yourself
|
|
54
|
+
- If the user provides screenshots instead of MCP data, infer visual information such as layout, color, font, etc. from the screenshots
|
|
55
|
+
- If using images/screenshots for reference, first extract block structure, visual hierarchy, main and functional colors, font temperament, spacing rhythm, media position, interaction status hints and responsive risks before writing code.
|
|
56
|
+
- Prioritize the use of clear section-level reference images or local detail images for multi-section pages; do not guess buttons, font sizes, spacing and component status from compressed long images.
|
|
57
|
+
- Unreadable text, fake screenshots, uninspectable materials or conflict status in visual references cannot be copied directly; they need to be translated into the real content, real status or clear placeholder description of the project.
|
|
54
58
|
|
|
55
|
-
### 3.
|
|
59
|
+
### 3. Search for reusable components
|
|
56
60
|
|
|
57
|
-
|
|
61
|
+
Before creating a new component, search the code base for reusable components, focusing on:
|
|
58
62
|
|
|
59
63
|
- Button
|
|
60
64
|
- Input / Select / Checkbox / Radio / Switch
|
|
61
65
|
- Modal / Drawer / Dialog
|
|
62
66
|
- Table / List / Card
|
|
63
67
|
- Tabs / Breadcrumb / Pagination
|
|
64
|
-
-
|
|
68
|
+
- Page Container/Block Container/Empty State/Loading State
|
|
65
69
|
|
|
66
|
-
### 4.
|
|
70
|
+
### 4. Output realization plan
|
|
67
71
|
|
|
68
|
-
|
|
72
|
+
Before revising the document, produce a short implementation plan. The plan must include:
|
|
69
73
|
|
|
70
|
-
-
|
|
71
|
-
-
|
|
72
|
-
-
|
|
73
|
-
-
|
|
74
|
-
-
|
|
75
|
-
-
|
|
74
|
+
- List of files that need to be changed
|
|
75
|
+
- Component splitting plan
|
|
76
|
+
- Status/data flow
|
|
77
|
+
- Responsive behavior
|
|
78
|
+
- The decision to reuse or create a new one
|
|
79
|
+
- Design gaps or points of ambiguity
|
|
80
|
+
- The authenticity of the source of the image/screenshot, and what visual details are covered by project tokens, component conventions, or accessibility requirements
|
|
76
81
|
|
|
77
|
-
### 5.
|
|
82
|
+
### 5. Implementation by framework
|
|
78
83
|
|
|
79
|
-
|
|
84
|
+
Implement according to the front-end framework currently used by the warehouse:
|
|
80
85
|
|
|
81
|
-
-
|
|
82
|
-
-
|
|
83
|
-
-
|
|
84
|
-
-
|
|
86
|
+
- Strictly follow the existing agreements in the warehouse
|
|
87
|
+
- Prefer explicitly typed props and interfaces/types
|
|
88
|
+
- Keep components small and composable
|
|
89
|
+
- Extract duplicate logic into hooks/composables/utilities
|
|
85
90
|
|
|
86
|
-
### 6.
|
|
91
|
+
### 6. Design Token Mapping
|
|
87
92
|
|
|
88
|
-
-
|
|
89
|
-
-
|
|
90
|
-
-
|
|
93
|
+
- Prefer using existing design tokens, CSS variables, theme variables or tool classes
|
|
94
|
+
- Do not hardcode colors, rounded corners and spacing unless there is no corresponding token
|
|
95
|
+
- If the design uses a new Token, make it clear and don’t quietly hardcode it everywhere
|
|
91
96
|
|
|
92
|
-
### 7.
|
|
97
|
+
### 7. Accessibility guarantee
|
|
93
98
|
|
|
94
|
-
-
|
|
95
|
-
-
|
|
96
|
-
-
|
|
97
|
-
-
|
|
99
|
+
- Prioritize the use of semantic HTML
|
|
100
|
+
- Make sure interactive controls have accessible names
|
|
101
|
+
- Preserve visible focus styles
|
|
102
|
+
- Check the keyboard operability of dialog boxes, menus, tabs, and form controls
|
|
98
103
|
|
|
99
|
-
### 8.
|
|
104
|
+
### 8. Verify after encoding
|
|
100
105
|
|
|
101
|
-
-
|
|
102
|
-
-
|
|
103
|
-
-
|
|
106
|
+
- If there is lint, execute lint
|
|
107
|
+
- If there are tests, execute them
|
|
108
|
+
- If testing is missing, indicate the recommended minimum testing range
|
|
104
109
|
|
|
105
|
-
##
|
|
110
|
+
## Detailed reference
|
|
106
111
|
|
|
107
|
-
|
|
112
|
+
When writing the implementation plan report, load [references/design-plan-template.md](references/design-plan-template.md).
|
|
108
113
|
|
|
109
114
|
## Constraints
|
|
110
115
|
|
|
111
|
-
-
|
|
112
|
-
-
|
|
113
|
-
-
|
|
114
|
-
-
|
|
115
|
-
-
|
|
116
|
+
- If you already have a design context (MCP or screenshots), don’t rely on guesswork to implement the UI
|
|
117
|
+
- If the project already has a UI system, do not introduce a new UI Kit
|
|
118
|
+
- Do not replace tokenized styles with hard-coding unless there is a valid reason
|
|
119
|
+
- Don't ignore statuses such as hover, active, disabled, loading, empty, error, etc.
|
|
120
|
+
- In scenarios where MCP tools are not available, such as Mocke, proactively ask users for key screenshots and annotation information, and do not make up visual data out of thin air.
|
|
121
|
+
- Do not treat the generated image as a directly reproducible code specification; it only provides visual evidence, and the final implementation must obey the current project components, tokens, accessibility and performance boundaries
|
|
122
|
+
- Do not replace section analysis with an unreadable full-page image; key sections, CTAs, forms, navigation and status must be inspectable
|
|
116
123
|
|
|
117
124
|
## Expected Output
|
|
118
125
|
|
|
119
|
-
-
|
|
120
|
-
-
|
|
121
|
-
-
|
|
122
|
-
-
|
|
126
|
+
- The design implementation plan report is saved as `reports/design-plan-YYYY-MM-DD-HHmmss.md`, including implementation summary, component splitting plan, status/data flow, and change file list
|
|
127
|
+
- The code realizes high-fidelity restoration of the design draft, maximizing component reuse rate
|
|
128
|
+
- Design variables map to existing Tokens, no hard-coded colors/spacing/rounded corners
|
|
129
|
+
- Interactive elements have accessible names and keyboard support, and focus styles are visible
|
|
@@ -1,36 +1,36 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Design implementation plan template
|
|
2
2
|
|
|
3
3
|
```markdown
|
|
4
|
-
#
|
|
4
|
+
# Design implementation plan
|
|
5
5
|
|
|
6
|
-
>
|
|
7
|
-
>
|
|
8
|
-
>
|
|
6
|
+
> Generation time: YYYY-MM-DD HH:mm
|
|
7
|
+
> Review tool: frontend-craft
|
|
8
|
+
> Design tools: Figma / Sketch / MasterGo / Pixso / Ink Knife / Mockup
|
|
9
9
|
|
|
10
|
-
##
|
|
11
|
-
-
|
|
12
|
-
-
|
|
10
|
+
## Implementation Summary
|
|
11
|
+
- Source of design draft: ...
|
|
12
|
+
- Target page/component: ...
|
|
13
13
|
|
|
14
|
-
##
|
|
14
|
+
## Reused components
|
|
15
15
|
- ...
|
|
16
16
|
|
|
17
|
-
##
|
|
17
|
+
## New component
|
|
18
18
|
- ...
|
|
19
19
|
|
|
20
|
-
##
|
|
20
|
+
## Component splitting plan
|
|
21
21
|
- ...
|
|
22
22
|
|
|
23
|
-
##
|
|
23
|
+
## Status/data flow
|
|
24
24
|
- ...
|
|
25
25
|
|
|
26
|
-
##
|
|
26
|
+
## Deviation from the design draft
|
|
27
27
|
- ...
|
|
28
28
|
|
|
29
|
-
##
|
|
29
|
+
## Missing resources/Token/Interaction details
|
|
30
30
|
- ...
|
|
31
31
|
|
|
32
|
-
##
|
|
32
|
+
## Change file list
|
|
33
33
|
- ...
|
|
34
34
|
```
|
|
35
35
|
|
|
36
|
-
|
|
36
|
+
After the implementation plan is determined, save the report to `reports/design-plan-YYYY-MM-DD-HHmmss.md` and inform the user of the report path.
|
|
@@ -1,190 +1,46 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: fec-legacy-to-modern-migration
|
|
3
|
-
description: Use when planning or implementing an intentional migration from JavaScript, jQuery, HTML/CSS, server-rendered templates, MPA legacy frontend code, or older framework code toward a modern frontend stack while preserving behavior. Do not use for routine legacy bug fixes that stay in the old stack; Chinese triggers include
|
|
3
|
+
description: Use when planning or implementing an intentional migration from JavaScript, jQuery, HTML/CSS, server-rendered templates, MPA legacy frontend code, or older framework code toward a modern frontend stack while preserving behavior. Do not use for routine legacy bug fixes that stay in the old stack; Chinese triggers include legacy projects, technology stack upgrades, jQuery migration.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
#
|
|
6
|
+
# Migration from traditional front-end to modern framework
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
Suitable for scenarios where you are gradually migrating JavaScript + jQuery + HTML/CSS multi-page applications (MPA), server-side template rendering projects, or legacy framework code to React, Vue, Next.js, Nuxt, TypeScript, or retaining MPA form but modernizing modules, builds, types, and tests.
|
|
9
9
|
|
|
10
10
|
## Purpose
|
|
11
11
|
|
|
12
|
-
|
|
12
|
+
Guide the gradual migration of traditional front-end projects to the target modern stack, provide migration strategies, concept mapping, phased steps and implementation constraints to ensure functional equivalence and controllable risks.
|
|
13
13
|
|
|
14
14
|
## Procedure
|
|
15
15
|
|
|
16
|
-
1.
|
|
17
|
-
2.
|
|
18
|
-
3.
|
|
19
|
-
4.
|
|
20
|
-
5.
|
|
21
|
-
|
|
22
|
-
## 迁移策略选择
|
|
23
|
-
|
|
24
|
-
| 策略 | 适用情况 | 优点 | 风险 |
|
|
25
|
-
| --------------------------- | ------------------------------------ | ---------------------------- | ---------------------------- |
|
|
26
|
-
| **渐进式(Strangler Fig)** | 大型项目、需持续交付、团队熟悉度不足 | 风险可控、可分批上线、可回滚 | 新旧并存期长、需维护两套代码 |
|
|
27
|
-
| **一次性重写** | 中小型项目、业务稳定、有充足时间窗口 | 目标架构清晰、无历史包袱 | 周期长、上线压力大、回滚困难 |
|
|
28
|
-
|
|
29
|
-
**推荐**:优先考虑渐进式,除非项目规模小且业务简单。
|
|
30
|
-
|
|
31
|
-
## 概念映射
|
|
32
|
-
|
|
33
|
-
### jQuery → React
|
|
34
|
-
|
|
35
|
-
| 遗留模式 | React 对应 |
|
|
36
|
-
| ------------------------------------------ | -------------------------------------- |
|
|
37
|
-
| `$(selector).html(content)` | 声明式 JSX + state 驱动渲染 |
|
|
38
|
-
| `$(document).on('click', '.btn', handler)` | `onClick` + 事件委托由 React 处理 |
|
|
39
|
-
| `$.ajax()` / `$.get()` | 项目请求层、`fetch` / `axios`,可按需接 TanStack Query 或 SWR |
|
|
40
|
-
| 全局变量 / 命名空间存储状态 | 局部 state、Context 或项目既有 store,可按需使用 Zustand/Redux |
|
|
41
|
-
| `$(el).show()` / `$(el).hide()` | 条件渲染 `{visible && <Component />}` |
|
|
42
|
-
| 手动 DOM 操作 `append` / `remove` | 数据驱动,通过 setState 触发重渲染 |
|
|
43
|
-
| 模板字符串拼接 HTML | JSX 组件 + props |
|
|
44
|
-
| 多页面 + 服务端路由 | React Router 客户端路由 |
|
|
45
|
-
|
|
46
|
-
### jQuery → Vue 3
|
|
47
|
-
|
|
48
|
-
| 遗留模式 | Vue 3 对应 |
|
|
49
|
-
| ------------------------------------------ | -------------------------------------------------- |
|
|
50
|
-
| `$(selector).html(content)` | 模板 + `ref` / `reactive` 驱动渲染 |
|
|
51
|
-
| `$(document).on('click', '.btn', handler)` | `@click` + 事件修饰符 |
|
|
52
|
-
| `$.ajax()` / `$.get()` | 项目请求层、`fetch` / `axios`,可按需接 VueUse、Nuxt `useFetch` 或 TanStack Query Vue adapter |
|
|
53
|
-
| 全局变量 / 命名空间存储状态 | `ref` / `reactive` / Pinia |
|
|
54
|
-
| `$(el).show()` / `$(el).hide()` | `v-show` / `v-if` |
|
|
55
|
-
| 手动 DOM 操作 | 数据驱动,通过响应式更新视图 |
|
|
56
|
-
| 模板字符串拼接 HTML | 单文件组件 `<template>` + props |
|
|
57
|
-
| 多页面 + 服务端路由 | Vue Router 客户端路由 |
|
|
58
|
-
|
|
59
|
-
### 通用映射
|
|
60
|
-
|
|
61
|
-
| 遗留概念 | 现代对应 |
|
|
62
|
-
| --------------------------------- | ------------------------------------------ |
|
|
63
|
-
| 页面级 JS 入口(每页一个 script) | 路由/页面入口 + 懒加载模块,或保留 MPA 入口并现代化打包 |
|
|
64
|
-
| 公共 JS 模块(utils、ajax 封装) | `services/`、`utils/`、类型化 API 层 |
|
|
65
|
-
| 内联样式 / 页面级 CSS | 目标项目样式体系,如 CSS Modules、Tailwind、全局样式分层或组件库样式 |
|
|
66
|
-
| 服务端模板变量 | 通过 API 获取、SSR/loader 注入,或保留服务端模板边界并类型化数据 |
|
|
67
|
-
| 表单提交 + 整页刷新 | 表单库 + 客户端校验 + API 调用 |
|
|
68
|
-
|
|
69
|
-
## 迁移前分析
|
|
70
|
-
|
|
71
|
-
在动手迁移前,必须完成以下分析并输出**迁移分析报告**:
|
|
72
|
-
|
|
73
|
-
1. **存量盘点**
|
|
74
|
-
- 页面数量、功能模块数量
|
|
75
|
-
- 依赖的 jQuery 插件及替代方案(如 DataTables → TanStack Table)
|
|
76
|
-
- 现有 API 调用方式、是否有统一封装
|
|
77
|
-
- 是否有服务端模板(JSP/Thymeleaf/EJS 等)需要保留、局部替换或改为纯前端渲染
|
|
78
|
-
- 目标栈是 React/Vue/Next/Nuxt、现代 MPA,还是只做局部 TypeScript/构建/测试现代化
|
|
79
|
-
|
|
80
|
-
2. **依赖关系**
|
|
81
|
-
- 页面间共享的 JS/CSS 模块
|
|
82
|
-
- 跨页面复用的业务逻辑
|
|
83
|
-
- 与后端的接口契约(是否需调整)
|
|
84
|
-
|
|
85
|
-
3. **迁移优先级**
|
|
86
|
-
- 按业务价值、复杂度、耦合度排序
|
|
87
|
-
- 优先迁移独立模块、低耦合页面
|
|
88
|
-
- 识别可复用的工具函数、常量、类型定义
|
|
89
|
-
|
|
90
|
-
## 分阶段迁移流程
|
|
91
|
-
|
|
92
|
-
### 阶段 0:准备
|
|
93
|
-
|
|
94
|
-
- 搭建或识别目标项目骨架:React/Vue/Next/Nuxt、现代 MPA,或现有项目内的渐进式 TypeScript/构建入口
|
|
95
|
-
- 配置 ESLint、Prettier、测试框架
|
|
96
|
-
- 建立 `services/request.ts` 统一请求层,与现有 API 兼容
|
|
97
|
-
- 将遗留项目中的 `utils`、`constants` 逐步迁移并补充类型
|
|
98
|
-
|
|
99
|
-
### 阶段 1:基础层
|
|
100
|
-
|
|
101
|
-
- 迁移并类型化 API 调用(`$.ajax` → `axios`/`fetch`)
|
|
102
|
-
- 迁移工具函数(日期、格式化、校验等)
|
|
103
|
-
- 迁移常量、枚举、类型定义
|
|
104
|
-
- 建立目标导航/页面入口骨架;未迁移页面可继续走旧路由、重定向、iframe 或微前端嵌入
|
|
105
|
-
|
|
106
|
-
### 阶段 2:按模块/页面迁移
|
|
107
|
-
|
|
108
|
-
- 每次迁移一个完整功能或页面
|
|
109
|
-
- 从简单到复杂:静态页 → 列表页 → 表单页 → 复杂交互页
|
|
110
|
-
- 迁移时提取可复用组件,遵循目标 React 或 Vue 项目的目录结构
|
|
111
|
-
- 每完成一个模块,补充单元测试和 E2E 关键路径
|
|
112
|
-
|
|
113
|
-
### 阶段 3:收尾
|
|
114
|
-
|
|
115
|
-
- 按迁移策略移除或冻结旧代码入口;若保留 MPA,则收敛旧入口并完成现代化边界
|
|
116
|
-
- 配置 404、错误边界、全局错误处理
|
|
117
|
-
- 性能优化(懒加载、代码分割、缓存策略)
|
|
118
|
-
- 文档更新、部署流程调整
|
|
119
|
-
|
|
120
|
-
## 重构实施要求
|
|
121
|
-
|
|
122
|
-
迁移时需遵循以下实施约束,确保视觉与交互一致、代码更简洁易维护。
|
|
123
|
-
|
|
124
|
-
### 图片与图标
|
|
125
|
-
|
|
126
|
-
- 直接使用原项目的图片资源路径,不重新托管或替换
|
|
127
|
-
- 可使用 SVG 图片(`<img src="*.svg" />` 或 CSS `background-image`);图标组件或可访问交互确需内联 SVG 时,应遵循目标项目图标规范并说明理由。
|
|
128
|
-
- 若原项目使用了 iconfont 或 IcoMoon 图标,重构时优先继续使用,保持图标体系一致;替换为其他图标方案前需评估视觉一致性、包体和维护成本。
|
|
129
|
-
- 图标优先使用原项目已有的图标文件(iconfont / IcoMoon / 已有 SVG),必要时可引入 SVG 文件作为独立资源
|
|
130
|
-
|
|
131
|
-
### 国际化(i18n)
|
|
132
|
-
|
|
133
|
-
- 新栈代码(React / Vue 等)中的用户可见文案须走项目 i18n,不在新代码里硬编码中/英文案
|
|
134
|
-
- 遗留 HTML/JS 中**不要新增**用户可见硬编码文案,除非纯静态且仓库尚无可用 i18n 接入点;改动文案前先查 locales 是否已有条目,并同步主要语言文件
|
|
135
|
-
- key 按页面/模块/语义组织,复用既有 key;仅当旧 key 为对外契约时才做映射过渡,详见项目规则中的 **国际化 (i18n)**(`templates/shared/rules/fec-i18n.md` 内「遗留代码与迁移场景」)
|
|
136
|
-
|
|
137
|
-
### 样式
|
|
138
|
-
|
|
139
|
-
- 布局样式对齐原项目视觉效果,但**只参考原项目效果,不照搬其 CSS**
|
|
140
|
-
- 优先使用 **flex 弹性布局**,避免 `float`、复杂 `position`、冗余嵌套
|
|
141
|
-
- 避免不合理写法:如 `!important` 滥用、过深选择器、重复定义
|
|
142
|
-
- 组件中优先避免内联样式(`style={{ ... }}` / `style="..."`);确需使用运行时动态值、第三方组件 API 或 CSS 变量桥接时,应保持局部、可解释,并优先放入目标项目样式体系。
|
|
143
|
-
|
|
144
|
-
### 目标
|
|
145
|
-
|
|
146
|
-
- **视觉和交互**:与原项目一致,用户无感知差异
|
|
147
|
-
- **代码质量**:更简洁、易维护,符合目标框架规范
|
|
148
|
-
- **业务功能**:与原项目保持一致,**不得缺失功能**;迁移前后行为等价
|
|
149
|
-
|
|
150
|
-
## 迁移检查清单
|
|
151
|
-
|
|
152
|
-
每个迁移单元完成后,确认:
|
|
153
|
-
|
|
154
|
-
- [ ] 业务逻辑与旧实现一致,无功能遗漏,功能完整等价
|
|
155
|
-
- [ ] 类型定义完整,无 `any` 滥用
|
|
156
|
-
- [ ] API 调用使用统一 request 层,错误处理完整
|
|
157
|
-
- [ ] 表单校验、loading、空状态、错误状态已实现
|
|
158
|
-
- [ ] 可访问性:表单有 label、交互可键盘操作
|
|
159
|
-
- [ ] 无 XSS 风险(用户输入已转义或使用安全 API)
|
|
160
|
-
- [ ] 关键路径有测试覆盖
|
|
161
|
-
- [ ] 符合目标栈的项目规范(React / Vue / Next / Nuxt / MPA 现代化等)
|
|
162
|
-
- [ ] 图片使用原项目资源;图标体系优先沿用原项目或目标项目规范,例外已说明
|
|
163
|
-
- [ ] 样式参考原项目效果但不照搬 CSS,优先使用目标项目样式体系,内联样式例外已说明
|
|
164
|
-
- [ ] 视觉与交互与原项目一致,代码更简洁易维护
|
|
165
|
-
- [ ] 新代码路径文案已 i18n;遗留层未扩大硬编码;locales 检索与多语言同步已完成(参见 i18n 规则迁移补充清单)
|
|
16
|
+
1. First identify the target stack, migration boundaries and whether to retain the MPA/server template form.
|
|
17
|
+
2. Load [references/migration-strategy-and-mapping.md](references/migration-strategy-and-mapping.md), select a progressive or one-time rewrite strategy, and clarify the mapping of legacy patterns to the target stack.
|
|
18
|
+
3. Load [references/migration-execution-checklist.md](references/migration-execution-checklist.md) to complete inventory inventory, dependency analysis, prioritization and phased migration plan.
|
|
19
|
+
4. When writing a migration analysis or migration plan report, load [references/migration-report-template.md](references/migration-report-template.md).
|
|
20
|
+
5. Advance in the order of preparation, base layer, module/page migration, and closing, migrating one verifiable unit at a time.
|
|
21
|
+
6. Each migration unit verifies functional equivalence, visual consistency, type safety, accessibility, i18n, resource and style boundaries.
|
|
166
22
|
|
|
167
23
|
## Constraints
|
|
168
24
|
|
|
169
|
-
-
|
|
170
|
-
-
|
|
171
|
-
-
|
|
172
|
-
-
|
|
173
|
-
-
|
|
174
|
-
-
|
|
175
|
-
-
|
|
176
|
-
-
|
|
177
|
-
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
25
|
+
- Before migration, a migration analysis report must be output to clarify strategies, priorities and risks.
|
|
26
|
+
- Do not change the architecture, UI, and interfaces at the same time in one migration.
|
|
27
|
+
- Prioritize functional equivalence before considering optimization and modernization.
|
|
28
|
+
- Keep the old system operational during the migration process to avoid a big bang rollout.
|
|
29
|
+
- When there is no ready replacement for the jQuery plug-in, you can temporarily embed it using iframe or micro-front-end and wait for subsequent replacement.
|
|
30
|
+
- The target stack first identifies React/Vue/Next/Nuxt, modern MPA or partial modernization targets, and does not force the change to SPA by default.
|
|
31
|
+
- Images use original project resources; the icon system prefers to use the original project or target project specifications; inline SVG exceptions must have accessibility, componentization or maintenance reasons.
|
|
32
|
+
- The style refers to the original project effect but does not copy CSS. The target project style system is preferred; inline style exceptions must be local and interpretable.
|
|
33
|
+
- The goal is to have consistent visuals and interactions, make the code simpler and easier to maintain, and business functions must not be missing.
|
|
34
|
+
- For migrations involving pages, components, routing, forms, pop-ups, navigation or key user processes, a list of behaviors before and after refactoring must be established, and the critical paths must be compared and verified using Playwright or an equivalent real browser verification method.
|
|
35
|
+
- For visually sensitive pages, screenshot comparison or manual screenshot acceptance should be supplemented; dynamic content, animation, fonts and environmental differences need to be clearly blocked, stabilized or explained.
|
|
36
|
+
- For pure logic, type, build or UI-less migrations, Playwright is not forced and a validation layer closer to risk should be chosen: type-check, unit test, component test, build or lint.
|
|
37
|
+
- The verification goal is not to be completely consistent at the pixel level, but to confirm that there are no missing business functions, key interactions are equivalent, there are no unexpected deviations in the main visual layout, and the code is clearer and maintainable than the old implementation.
|
|
182
38
|
|
|
183
39
|
## Expected Output
|
|
184
40
|
|
|
185
|
-
-
|
|
186
|
-
-
|
|
187
|
-
-
|
|
188
|
-
-
|
|
189
|
-
-
|
|
190
|
-
-
|
|
41
|
+
- The migration analysis report is saved as `reports/migration-plan-YYYY-MM-DD-HHmmss.md`, including strategy selection, inventory inventory, dependencies, phased steps, risks and rollback plans.
|
|
42
|
+
- The migrated business functions are completely equivalent to those of the original project, with no missing functions.
|
|
43
|
+
- The visuals and interactions are consistent with the original project, and there is no perceived difference for users.
|
|
44
|
+
- Complete type definition, no `any` abuse, unified API calls and type safety.
|
|
45
|
+
- Images use original project resources, and styles enter the target project style system. Exceptions for icons and inline styles have clear reasons.
|
|
46
|
+
- The new code copy has been i18n, and the critical path is covered by tests.
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
# Migration execution and checklist
|
|
2
|
+
|
|
3
|
+
## Pre-migration analysis
|
|
4
|
+
|
|
5
|
+
Before starting the migration, the following analysis must be completed and a **migration analysis report** must be output:
|
|
6
|
+
|
|
7
|
+
1. **Inventory Count**
|
|
8
|
+
- Number of pages and number of functional modules
|
|
9
|
+
- Dependent jQuery plugins and alternatives (such as DataTables → TanStack Table)
|
|
10
|
+
- Existing API calling methods and whether there is unified encapsulation
|
|
11
|
+
- Are there any server-side templates (JSP/Thymeleaf/EJS, etc.) that need to be retained, partially replaced, or changed to pure front-end rendering?
|
|
12
|
+
- Is the target stack React/Vue/Next/Nuxt, modern MPA, or just partial TypeScript/build/test modernization?
|
|
13
|
+
|
|
14
|
+
2. **Dependencies**
|
|
15
|
+
- JS/CSS modules shared between pages
|
|
16
|
+
- Business logic reused across pages
|
|
17
|
+
- Interface contract with the backend (whether it needs to be adjusted)
|
|
18
|
+
|
|
19
|
+
3. **Migration Priority**
|
|
20
|
+
- Sort by business value, complexity, coupling degree
|
|
21
|
+
- Prioritize migrating independent modules and low-coupling pages
|
|
22
|
+
- Identify reusable utility functions, constants, and type definitions
|
|
23
|
+
|
|
24
|
+
## Phased migration process
|
|
25
|
+
|
|
26
|
+
### Phase 0: Preparation
|
|
27
|
+
|
|
28
|
+
- Build or identify target project skeleton: React/Vue/Next/Nuxt, modern MPA, or progressive TypeScript/build entry within existing projects
|
|
29
|
+
- Configure ESLint, Prettier, and test framework
|
|
30
|
+
- Establish `services/request.ts` unified request layer, compatible with existing API
|
|
31
|
+
- Gradually migrate `utils` and `constants` in legacy projects and add types
|
|
32
|
+
|
|
33
|
+
### Phase 1: Base Layer
|
|
34
|
+
|
|
35
|
+
- Migrate and type API calls (`$.ajax` → `axios`/`fetch`)
|
|
36
|
+
- Migration tool functions (date, formatting, verification, etc.)
|
|
37
|
+
- Migrate constants, enumerations, and type definitions
|
|
38
|
+
- Establish target navigation/page entry skeleton; unmigrated pages can continue to use old routing, redirection, iframe or micro-front-end embedding
|
|
39
|
+
|
|
40
|
+
### Phase 2: Migration by module/page
|
|
41
|
+
|
|
42
|
+
- Migrate one complete feature or page at a time
|
|
43
|
+
- From simple to complex: static page → list page → form page → complex interactive page
|
|
44
|
+
- Extract reusable components during migration, following the directory structure of the target React or Vue project
|
|
45
|
+
- Supplementary unit testing and E2E critical path for each completed module
|
|
46
|
+
|
|
47
|
+
### Phase 3: Closing
|
|
48
|
+
|
|
49
|
+
- Remove or freeze old code entries according to the migration strategy; if MPA is retained, the old entries will be converged and the modernization boundary will be completed
|
|
50
|
+
- Configure 404, error boundaries, and global error handling
|
|
51
|
+
- Performance optimization (lazy loading, code splitting, caching strategy)
|
|
52
|
+
- Document updates and deployment process adjustments
|
|
53
|
+
|
|
54
|
+
## Refactoring implementation requirements
|
|
55
|
+
|
|
56
|
+
The following implementation constraints need to be followed when migrating to ensure consistent vision and interaction, and the code is simpler and easier to maintain.
|
|
57
|
+
|
|
58
|
+
### Pictures and Icons
|
|
59
|
+
|
|
60
|
+
- Directly use the image resource path of the original project without rehosting or replacing it.
|
|
61
|
+
- SVG images (`<img src="*.svg" />` or CSS `background-image`) can be used; when icon components or accessible interactions require inline SVG, the target project icon specifications should be followed and the reasons should be explained.
|
|
62
|
+
- If the original project uses iconfont or IcoMoon icons, priority should be given to continuing to use them during reconstruction to keep the icon system consistent; visual consistency, packaging, and maintenance costs need to be evaluated before replacing with other icon schemes.
|
|
63
|
+
- For icons, priority is given to using existing icon files in the original project (iconfont / IcoMoon / existing SVG). If necessary, SVG files can be introduced as independent resources
|
|
64
|
+
|
|
65
|
+
### Internationalization (i18n)
|
|
66
|
+
|
|
67
|
+
- User-visible copy in the new stack code (React/Vue, etc.) must follow the project i18n, and do not hardcode Chinese/English copy in the new code
|
|
68
|
+
- **Do not add** user-visible hard-coded copy in legacy HTML/JS, unless it is purely static and the warehouse does not yet have an available i18n access point; before changing the copy, check whether locales already has an entry, and synchronize the main language files
|
|
69
|
+
- Keys are organized by page/module/semantics, and existing keys are reused; mapping transition is only done when the old key is an external contract. For details, see **Internationalization (i18n)** in the project rules ("Legacy Code and Migration Scenarios" in `templates/shared/rules/fec-i18n.md`)
|
|
70
|
+
|
|
71
|
+
### Style
|
|
72
|
+
|
|
73
|
+
- The layout style aligns with the visual effects of the original project, but **only refers to the original project effects and does not copy its CSS**
|
|
74
|
+
- Prioritize the use of **flex elastic layout** to avoid `float`, complex `position`, and redundant nesting
|
|
75
|
+
- Avoid unreasonable writing methods: such as `!important` abuse, excessively deep selectors, and repeated definitions
|
|
76
|
+
- Prioritize to avoid inline styles (`style={{ ... }}` / `style="..."`) in components; when it is necessary to use runtime dynamic values, third-party component APIs or CSS variable bridging, they should be kept local and interpretable and put into the target project style system first.
|
|
77
|
+
|
|
78
|
+
### Target
|
|
79
|
+
|
|
80
|
+
- **Visual and interactive**: consistent with the original project, no perceived difference by users
|
|
81
|
+
- **Code Quality**: more concise, easier to maintain, and in line with the target framework specifications
|
|
82
|
+
- **Business functions**: consistent with the original project, **no missing functions**; behaviors before and after migration are equivalent
|
|
83
|
+
|
|
84
|
+
### Verification layering
|
|
85
|
+
|
|
86
|
+
- If it involves the migration of pages, components, routing, forms, pop-ups, navigation or key user processes, first establish a list of behaviors before and after refactoring, and then use Playwright or an equivalent real browser verification method to compare and verify the critical paths.
|
|
87
|
+
- For visually sensitive pages, supplement screenshot comparison or manual screenshot acceptance; dynamic content, animation, fonts and environmental differences need to be clearly blocked, stabilized or explained.
|
|
88
|
+
- For pure logic, type, build or UI-less migrations, Playwright is not forced and a validation layer closer to risk should be chosen: type-check, unit test, component test, build or lint.
|
|
89
|
+
- The verification goal is not to be completely consistent at the pixel level, but to confirm that there are no missing business functions, key interactions are equivalent, there are no unexpected deviations in the main visual layout, and the code is clearer and maintainable than the old implementation.
|
|
90
|
+
|
|
91
|
+
## Migration Checklist
|
|
92
|
+
|
|
93
|
+
After each migration unit is completed, confirm:
|
|
94
|
+
|
|
95
|
+
- [ ] A behavioral list before and after refactoring has been established, covering public APIs, routing, forms, permissions, error status, cache, hidden points and key interactions
|
|
96
|
+
- [ ] The business logic is consistent with the old implementation, no functions are missing, and the functions are completely equivalent.
|
|
97
|
+
- [ ] Migration involving UI, interaction or critical processes has completed critical path comparison using Playwright or equivalent real browser verification
|
|
98
|
+
- [ ] For visually sensitive pages, screenshot comparison or manual screenshot acceptance has been completed, and the method of handling differences in dynamic content, animation, fonts and environment has been explained.
|
|
99
|
+
- [ ] Pure logic, type, build or no UI migrations have selected a validation layer that is closer to the risk and do not force the application of Playwright
|
|
100
|
+
- [ ] Type definition is complete, no `any` abuse
|
|
101
|
+
- [ ] API calls use a unified request layer, with complete error handling
|
|
102
|
+
- [ ] Form verification, loading, empty state, and error state have been implemented
|
|
103
|
+
- [ ] Accessibility: The form has a label and can be interacted with via the keyboard.
|
|
104
|
+
- [ ] No XSS risk (user input is escaped or secure API is used)
|
|
105
|
+
- [ ] Critical path has test coverage
|
|
106
|
+
- [ ] Comply with the project specifications of the target stack (React / Vue / Next / Nuxt / MPA modernization, etc.)
|
|
107
|
+
- [ ] Pictures use original project resources; icon systems give priority to the original project or target project specifications, exceptions have been explained
|
|
108
|
+
- [ ] The style refers to the original project effect but does not copy the CSS. The target project style system is used first. The inline style exception has been explained.
|
|
109
|
+
- [ ] The visual and interaction are consistent with the original project, and the code is simpler and easier to maintain.
|
|
110
|
+
- [ ] The new code path copy has been i18n; the legacy layer has not been expanded and hardcoded; locales retrieval and multi-language synchronization have been completed (see i18n rule migration supplementary list)
|