@skyroc/scripts 2.5.0 → 2.5.2
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/README.md +6 -3
- package/dist/cli.mjs +2 -2
- package/dist/{config-BKkdncJS.mjs → config-Cj9IzlRz.mjs} +105 -5
- package/dist/index.mjs +1 -1
- package/package.json +1 -1
- package/templates/admin/package.json +5 -3
- package/templates/admin/src/assets/svg-icon/logo.svg +2 -14
- package/templates/admin/src/features/router/routeTree.gen.ts +71 -1
- package/templates/admin/src/pages/(auth)/login/code-login.tsx +79 -0
- package/templates/admin/src/pages/(auth)/login/index.tsx +22 -1
- package/templates/admin/src/pages/(auth)/login/layout.tsx +25 -23
- package/templates/admin/src/pages/(auth)/login/modules/Header.tsx +25 -0
- package/templates/admin/src/pages/(auth)/login/register.tsx +86 -0
- package/templates/admin/src/pages/(auth)/login/reset-pwd.tsx +73 -0
- package/templates/admin/uno.config.ts +1 -1
- package/templates/admin-root/.agents/skills/component-doc/SKILL.md +304 -0
- package/templates/admin-root/.agents/skills/component-refactoring/SKILL.md +483 -0
- package/templates/admin-root/.agents/skills/component-refactoring/references/complexity-patterns.md +493 -0
- package/templates/admin-root/.agents/skills/component-refactoring/references/component-splitting.md +477 -0
- package/templates/admin-root/.agents/skills/component-refactoring/references/hook-extraction.md +317 -0
- package/templates/admin-root/.agents/skills/doc-coauthoring/SKILL.md +375 -0
- package/templates/admin-root/.agents/skills/feature-dev/SKILL.md +78 -0
- package/templates/admin-root/.agents/skills/frontend-code-review/SKILL.md +73 -0
- package/templates/admin-root/.agents/skills/frontend-code-review/references/business-logic.md +15 -0
- package/templates/admin-root/.agents/skills/frontend-code-review/references/code-quality.md +44 -0
- package/templates/admin-root/.agents/skills/frontend-code-review/references/performance.md +45 -0
- package/templates/admin-root/.agents/skills/frontend-design/LICENSE.txt +177 -0
- package/templates/admin-root/.agents/skills/frontend-design/SKILL.md +42 -0
- package/templates/admin-root/.agents/skills/frontend-testing/SKILL.md +325 -0
- package/templates/admin-root/.agents/skills/frontend-testing/assets/component-test.template.tsx +293 -0
- package/templates/admin-root/.agents/skills/frontend-testing/assets/hook-test.template.ts +207 -0
- package/templates/admin-root/.agents/skills/frontend-testing/assets/utility-test.template.ts +154 -0
- package/templates/admin-root/.agents/skills/frontend-testing/references/async-testing.md +345 -0
- package/templates/admin-root/.agents/skills/frontend-testing/references/checklist.md +205 -0
- package/templates/admin-root/.agents/skills/frontend-testing/references/common-patterns.md +449 -0
- package/templates/admin-root/.agents/skills/frontend-testing/references/domain-components.md +523 -0
- package/templates/admin-root/.agents/skills/frontend-testing/references/mocking.md +512 -0
- package/templates/admin-root/.agents/skills/frontend-testing/references/workflow.md +269 -0
- package/templates/admin-root/.agents/skills/migrate-nativewind-to-uniwind/SKILL.md +734 -0
- package/templates/admin-root/.agents/skills/migrate-oxfmt/SKILL.md +202 -0
- package/templates/admin-root/.agents/skills/migrate-oxlint/SKILL.md +196 -0
- package/templates/admin-root/.agents/skills/native-component-doc/SKILL.md +245 -0
- package/templates/admin-root/.agents/skills/senior-frontend/SKILL.md +209 -0
- package/templates/admin-root/.agents/skills/senior-frontend/references/frontend_best_practices.md +103 -0
- package/templates/admin-root/.agents/skills/senior-frontend/references/nextjs_optimization_guide.md +103 -0
- package/templates/admin-root/.agents/skills/senior-frontend/references/react_patterns.md +103 -0
- package/templates/admin-root/.agents/skills/senior-frontend/scripts/bundle_analyzer.py +114 -0
- package/templates/admin-root/.agents/skills/senior-frontend/scripts/component_generator.py +114 -0
- package/templates/admin-root/.agents/skills/senior-frontend/scripts/frontend_scaffolder.py +114 -0
- package/templates/admin-root/.agents/skills/skill-creator/SKILL.md +355 -0
- package/templates/admin-root/.agents/skills/skill-creator/references/output-patterns.md +86 -0
- package/templates/admin-root/.agents/skills/skill-creator/references/workflows.md +28 -0
- package/templates/admin-root/.agents/skills/skill-creator/scripts/init_skill.py +300 -0
- package/templates/admin-root/.agents/skills/skill-creator/scripts/package_skill.py +110 -0
- package/templates/admin-root/.agents/skills/skill-creator/scripts/quick_validate.py +97 -0
- package/templates/admin-root/.agents/skills/skyroc-admin-prd-prototype/SKILL.md +163 -0
- package/templates/admin-root/.agents/skills/skyroc-admin-prd-prototype/references/acceptance-checklist.md +75 -0
- package/templates/admin-root/.agents/skills/skyroc-admin-prd-prototype/references/evidence-order.md +109 -0
- package/templates/admin-root/.agents/skills/skyroc-admin-prd-prototype/references/prd-rules.md +103 -0
- package/templates/admin-root/.agents/skills/skyroc-admin-prd-prototype/references/prototype-rules.md +85 -0
- package/templates/admin-root/.agents/skills/skyroc-admin-prd-prototype/scripts/verify-prototypes.mjs +144 -0
- package/templates/admin-root/.agents/skills/skyroc-admin-prd-prototype/templates/admin-page.html +771 -0
- package/templates/admin-root/.agents/skills/skyroc-admin-prd-prototype/templates/prd.md +182 -0
- package/templates/admin-root/.agents/skills/ui-ux-pro-max/SKILL.md +292 -0
- package/templates/admin-root/.agents/skills/ui-ux-pro-max/data/charts.csv +26 -0
- package/templates/admin-root/.agents/skills/ui-ux-pro-max/data/colors.csv +97 -0
- package/templates/admin-root/.agents/skills/ui-ux-pro-max/data/icons.csv +101 -0
- package/templates/admin-root/.agents/skills/ui-ux-pro-max/data/landing.csv +31 -0
- package/templates/admin-root/.agents/skills/ui-ux-pro-max/data/products.csv +97 -0
- package/templates/admin-root/.agents/skills/ui-ux-pro-max/data/react-performance.csv +45 -0
- package/templates/admin-root/.agents/skills/ui-ux-pro-max/data/stacks/astro.csv +54 -0
- package/templates/admin-root/.agents/skills/ui-ux-pro-max/data/stacks/flutter.csv +53 -0
- package/templates/admin-root/.agents/skills/ui-ux-pro-max/data/stacks/html-tailwind.csv +56 -0
- package/templates/admin-root/.agents/skills/ui-ux-pro-max/data/stacks/jetpack-compose.csv +53 -0
- package/templates/admin-root/.agents/skills/ui-ux-pro-max/data/stacks/nextjs.csv +53 -0
- package/templates/admin-root/.agents/skills/ui-ux-pro-max/data/stacks/nuxt-ui.csv +51 -0
- package/templates/admin-root/.agents/skills/ui-ux-pro-max/data/stacks/nuxtjs.csv +59 -0
- package/templates/admin-root/.agents/skills/ui-ux-pro-max/data/stacks/react-native.csv +52 -0
- package/templates/admin-root/.agents/skills/ui-ux-pro-max/data/stacks/react.csv +54 -0
- package/templates/admin-root/.agents/skills/ui-ux-pro-max/data/stacks/shadcn.csv +61 -0
- package/templates/admin-root/.agents/skills/ui-ux-pro-max/data/stacks/svelte.csv +54 -0
- package/templates/admin-root/.agents/skills/ui-ux-pro-max/data/stacks/swiftui.csv +51 -0
- package/templates/admin-root/.agents/skills/ui-ux-pro-max/data/stacks/vue.csv +50 -0
- package/templates/admin-root/.agents/skills/ui-ux-pro-max/data/styles.csv +68 -0
- package/templates/admin-root/.agents/skills/ui-ux-pro-max/data/typography.csv +58 -0
- package/templates/admin-root/.agents/skills/ui-ux-pro-max/data/ui-reasoning.csv +101 -0
- package/templates/admin-root/.agents/skills/ui-ux-pro-max/data/ux-guidelines.csv +100 -0
- package/templates/admin-root/.agents/skills/ui-ux-pro-max/data/web-interface.csv +31 -0
- package/templates/admin-root/.agents/skills/ui-ux-pro-max/scripts/core.py +253 -0
- package/templates/admin-root/.agents/skills/ui-ux-pro-max/scripts/design_system.py +1067 -0
- package/templates/admin-root/.agents/skills/ui-ux-pro-max/scripts/search.py +114 -0
- package/templates/admin-root/.agents/skills/uniwind/SKILL.md +64 -0
- package/templates/admin-root/.agents/skills/uniwind/references/component-bindings.md +338 -0
- package/templates/admin-root/.agents/skills/uniwind/references/css-and-utilities.md +325 -0
- package/templates/admin-root/.agents/skills/uniwind/references/integrations.md +75 -0
- package/templates/admin-root/.agents/skills/uniwind/references/pro.md +354 -0
- package/templates/admin-root/.agents/skills/uniwind/references/setup.md +144 -0
- package/templates/admin-root/.agents/skills/uniwind/references/styling-patterns.md +237 -0
- package/templates/admin-root/.agents/skills/uniwind/references/theming.md +309 -0
- package/templates/admin-root/.agents/skills/uniwind/references/troubleshooting.md +179 -0
- package/templates/admin-root/.agents/skills/uniwind/references/variants-and-selectors.md +224 -0
- package/templates/admin-root/.agents/skills/vercel-react-best-practices/AGENTS.md +2934 -0
- package/templates/admin-root/.agents/skills/vercel-react-best-practices/SKILL.md +136 -0
- package/templates/admin-root/.agents/skills/vercel-react-best-practices/rules/advanced-event-handler-refs.md +55 -0
- package/templates/admin-root/.agents/skills/vercel-react-best-practices/rules/advanced-init-once.md +42 -0
- package/templates/admin-root/.agents/skills/vercel-react-best-practices/rules/advanced-use-latest.md +39 -0
- package/templates/admin-root/.agents/skills/vercel-react-best-practices/rules/async-api-routes.md +38 -0
- package/templates/admin-root/.agents/skills/vercel-react-best-practices/rules/async-defer-await.md +80 -0
- package/templates/admin-root/.agents/skills/vercel-react-best-practices/rules/async-dependencies.md +51 -0
- package/templates/admin-root/.agents/skills/vercel-react-best-practices/rules/async-parallel.md +28 -0
- package/templates/admin-root/.agents/skills/vercel-react-best-practices/rules/async-suspense-boundaries.md +99 -0
- package/templates/admin-root/.agents/skills/vercel-react-best-practices/rules/bundle-barrel-imports.md +59 -0
- package/templates/admin-root/.agents/skills/vercel-react-best-practices/rules/bundle-conditional.md +31 -0
- package/templates/admin-root/.agents/skills/vercel-react-best-practices/rules/bundle-defer-third-party.md +49 -0
- package/templates/admin-root/.agents/skills/vercel-react-best-practices/rules/bundle-dynamic-imports.md +35 -0
- package/templates/admin-root/.agents/skills/vercel-react-best-practices/rules/bundle-preload.md +50 -0
- package/templates/admin-root/.agents/skills/vercel-react-best-practices/rules/client-event-listeners.md +74 -0
- package/templates/admin-root/.agents/skills/vercel-react-best-practices/rules/client-localstorage-schema.md +71 -0
- package/templates/admin-root/.agents/skills/vercel-react-best-practices/rules/client-passive-event-listeners.md +48 -0
- package/templates/admin-root/.agents/skills/vercel-react-best-practices/rules/client-swr-dedup.md +56 -0
- package/templates/admin-root/.agents/skills/vercel-react-best-practices/rules/js-batch-dom-css.md +107 -0
- package/templates/admin-root/.agents/skills/vercel-react-best-practices/rules/js-cache-function-results.md +80 -0
- package/templates/admin-root/.agents/skills/vercel-react-best-practices/rules/js-cache-property-access.md +28 -0
- package/templates/admin-root/.agents/skills/vercel-react-best-practices/rules/js-cache-storage.md +70 -0
- package/templates/admin-root/.agents/skills/vercel-react-best-practices/rules/js-combine-iterations.md +32 -0
- package/templates/admin-root/.agents/skills/vercel-react-best-practices/rules/js-early-exit.md +50 -0
- package/templates/admin-root/.agents/skills/vercel-react-best-practices/rules/js-hoist-regexp.md +45 -0
- package/templates/admin-root/.agents/skills/vercel-react-best-practices/rules/js-index-maps.md +37 -0
- package/templates/admin-root/.agents/skills/vercel-react-best-practices/rules/js-length-check-first.md +49 -0
- package/templates/admin-root/.agents/skills/vercel-react-best-practices/rules/js-min-max-loop.md +82 -0
- package/templates/admin-root/.agents/skills/vercel-react-best-practices/rules/js-set-map-lookups.md +24 -0
- package/templates/admin-root/.agents/skills/vercel-react-best-practices/rules/js-tosorted-immutable.md +57 -0
- package/templates/admin-root/.agents/skills/vercel-react-best-practices/rules/rendering-activity.md +26 -0
- package/templates/admin-root/.agents/skills/vercel-react-best-practices/rules/rendering-animate-svg-wrapper.md +47 -0
- package/templates/admin-root/.agents/skills/vercel-react-best-practices/rules/rendering-conditional-render.md +40 -0
- package/templates/admin-root/.agents/skills/vercel-react-best-practices/rules/rendering-content-visibility.md +38 -0
- package/templates/admin-root/.agents/skills/vercel-react-best-practices/rules/rendering-hoist-jsx.md +46 -0
- package/templates/admin-root/.agents/skills/vercel-react-best-practices/rules/rendering-hydration-no-flicker.md +82 -0
- package/templates/admin-root/.agents/skills/vercel-react-best-practices/rules/rendering-hydration-suppress-warning.md +30 -0
- package/templates/admin-root/.agents/skills/vercel-react-best-practices/rules/rendering-svg-precision.md +28 -0
- package/templates/admin-root/.agents/skills/vercel-react-best-practices/rules/rendering-usetransition-loading.md +75 -0
- package/templates/admin-root/.agents/skills/vercel-react-best-practices/rules/rerender-defer-reads.md +39 -0
- package/templates/admin-root/.agents/skills/vercel-react-best-practices/rules/rerender-dependencies.md +45 -0
- package/templates/admin-root/.agents/skills/vercel-react-best-practices/rules/rerender-derived-state-no-effect.md +40 -0
- package/templates/admin-root/.agents/skills/vercel-react-best-practices/rules/rerender-derived-state.md +29 -0
- package/templates/admin-root/.agents/skills/vercel-react-best-practices/rules/rerender-functional-setstate.md +74 -0
- package/templates/admin-root/.agents/skills/vercel-react-best-practices/rules/rerender-lazy-state-init.md +58 -0
- package/templates/admin-root/.agents/skills/vercel-react-best-practices/rules/rerender-memo-with-default-value.md +38 -0
- package/templates/admin-root/.agents/skills/vercel-react-best-practices/rules/rerender-memo.md +44 -0
- package/templates/admin-root/.agents/skills/vercel-react-best-practices/rules/rerender-move-effect-to-event.md +45 -0
- package/templates/admin-root/.agents/skills/vercel-react-best-practices/rules/rerender-simple-expression-in-memo.md +35 -0
- package/templates/admin-root/.agents/skills/vercel-react-best-practices/rules/rerender-transitions.md +40 -0
- package/templates/admin-root/.agents/skills/vercel-react-best-practices/rules/rerender-use-ref-transient-values.md +73 -0
- package/templates/admin-root/.agents/skills/vercel-react-best-practices/rules/server-after-nonblocking.md +73 -0
- package/templates/admin-root/.agents/skills/vercel-react-best-practices/rules/server-auth-actions.md +96 -0
- package/templates/admin-root/.agents/skills/vercel-react-best-practices/rules/server-cache-lru.md +41 -0
- package/templates/admin-root/.agents/skills/vercel-react-best-practices/rules/server-cache-react.md +76 -0
- package/templates/admin-root/.agents/skills/vercel-react-best-practices/rules/server-dedup-props.md +65 -0
- package/templates/admin-root/.agents/skills/vercel-react-best-practices/rules/server-parallel-fetching.md +83 -0
- package/templates/admin-root/.agents/skills/vercel-react-best-practices/rules/server-serialization.md +38 -0
- package/templates/admin-root/.claude/settings.json +5 -0
- package/templates/admin-root/.claude/skills/component-doc/SKILL.md +304 -0
- package/templates/admin-root/.claude/skills/component-refactoring/SKILL.md +483 -0
- package/templates/admin-root/.claude/skills/component-refactoring/references/complexity-patterns.md +493 -0
- package/templates/admin-root/.claude/skills/component-refactoring/references/component-splitting.md +477 -0
- package/templates/admin-root/.claude/skills/component-refactoring/references/hook-extraction.md +317 -0
- package/templates/admin-root/.claude/skills/doc-coauthoring/SKILL.md +375 -0
- package/templates/admin-root/.claude/skills/feature-dev/SKILL.md +78 -0
- package/templates/admin-root/.claude/skills/frontend-code-review/SKILL.md +73 -0
- package/templates/admin-root/.claude/skills/frontend-code-review/references/business-logic.md +15 -0
- package/templates/admin-root/.claude/skills/frontend-code-review/references/code-quality.md +44 -0
- package/templates/admin-root/.claude/skills/frontend-code-review/references/performance.md +45 -0
- package/templates/admin-root/.claude/skills/frontend-design/LICENSE.txt +177 -0
- package/templates/admin-root/.claude/skills/frontend-design/SKILL.md +42 -0
- package/templates/admin-root/.claude/skills/frontend-testing/SKILL.md +325 -0
- package/templates/admin-root/.claude/skills/frontend-testing/assets/component-test.template.tsx +293 -0
- package/templates/admin-root/.claude/skills/frontend-testing/assets/hook-test.template.ts +207 -0
- package/templates/admin-root/.claude/skills/frontend-testing/assets/utility-test.template.ts +154 -0
- package/templates/admin-root/.claude/skills/frontend-testing/references/async-testing.md +345 -0
- package/templates/admin-root/.claude/skills/frontend-testing/references/checklist.md +205 -0
- package/templates/admin-root/.claude/skills/frontend-testing/references/common-patterns.md +449 -0
- package/templates/admin-root/.claude/skills/frontend-testing/references/domain-components.md +523 -0
- package/templates/admin-root/.claude/skills/frontend-testing/references/mocking.md +512 -0
- package/templates/admin-root/.claude/skills/frontend-testing/references/workflow.md +269 -0
- package/templates/admin-root/.claude/skills/migrate-nativewind-to-uniwind +1 -0
- package/templates/admin-root/.claude/skills/native-component-doc/SKILL.md +245 -0
- package/templates/admin-root/.claude/skills/senior-frontend/SKILL.md +209 -0
- package/templates/admin-root/.claude/skills/senior-frontend/references/frontend_best_practices.md +103 -0
- package/templates/admin-root/.claude/skills/senior-frontend/references/nextjs_optimization_guide.md +103 -0
- package/templates/admin-root/.claude/skills/senior-frontend/references/react_patterns.md +103 -0
- package/templates/admin-root/.claude/skills/senior-frontend/scripts/bundle_analyzer.py +114 -0
- package/templates/admin-root/.claude/skills/senior-frontend/scripts/component_generator.py +114 -0
- package/templates/admin-root/.claude/skills/senior-frontend/scripts/frontend_scaffolder.py +114 -0
- package/templates/admin-root/.claude/skills/skill-creator/SKILL.md +355 -0
- package/templates/admin-root/.claude/skills/skill-creator/references/output-patterns.md +86 -0
- package/templates/admin-root/.claude/skills/skill-creator/references/workflows.md +28 -0
- package/templates/admin-root/.claude/skills/skill-creator/scripts/init_skill.py +300 -0
- package/templates/admin-root/.claude/skills/skill-creator/scripts/package_skill.py +110 -0
- package/templates/admin-root/.claude/skills/skill-creator/scripts/quick_validate.py +97 -0
- package/templates/admin-root/.claude/skills/ui-ux-pro-max/SKILL.md +386 -0
- package/templates/admin-root/.claude/skills/ui-ux-pro-max/data +1 -0
- package/templates/admin-root/.claude/skills/ui-ux-pro-max/scripts +1 -0
- package/templates/admin-root/.claude/skills/uniwind +1 -0
- package/templates/admin-root/.claude/skills/vercel-react-best-practices/AGENTS.md +2934 -0
- package/templates/admin-root/.claude/skills/vercel-react-best-practices/SKILL.md +136 -0
- package/templates/admin-root/.claude/skills/vercel-react-best-practices/rules/advanced-event-handler-refs.md +55 -0
- package/templates/admin-root/.claude/skills/vercel-react-best-practices/rules/advanced-init-once.md +42 -0
- package/templates/admin-root/.claude/skills/vercel-react-best-practices/rules/advanced-use-latest.md +39 -0
- package/templates/admin-root/.claude/skills/vercel-react-best-practices/rules/async-api-routes.md +38 -0
- package/templates/admin-root/.claude/skills/vercel-react-best-practices/rules/async-defer-await.md +80 -0
- package/templates/admin-root/.claude/skills/vercel-react-best-practices/rules/async-dependencies.md +51 -0
- package/templates/admin-root/.claude/skills/vercel-react-best-practices/rules/async-parallel.md +28 -0
- package/templates/admin-root/.claude/skills/vercel-react-best-practices/rules/async-suspense-boundaries.md +99 -0
- package/templates/admin-root/.claude/skills/vercel-react-best-practices/rules/bundle-barrel-imports.md +59 -0
- package/templates/admin-root/.claude/skills/vercel-react-best-practices/rules/bundle-conditional.md +31 -0
- package/templates/admin-root/.claude/skills/vercel-react-best-practices/rules/bundle-defer-third-party.md +49 -0
- package/templates/admin-root/.claude/skills/vercel-react-best-practices/rules/bundle-dynamic-imports.md +35 -0
- package/templates/admin-root/.claude/skills/vercel-react-best-practices/rules/bundle-preload.md +50 -0
- package/templates/admin-root/.claude/skills/vercel-react-best-practices/rules/client-event-listeners.md +74 -0
- package/templates/admin-root/.claude/skills/vercel-react-best-practices/rules/client-localstorage-schema.md +71 -0
- package/templates/admin-root/.claude/skills/vercel-react-best-practices/rules/client-passive-event-listeners.md +48 -0
- package/templates/admin-root/.claude/skills/vercel-react-best-practices/rules/client-swr-dedup.md +56 -0
- package/templates/admin-root/.claude/skills/vercel-react-best-practices/rules/js-batch-dom-css.md +107 -0
- package/templates/admin-root/.claude/skills/vercel-react-best-practices/rules/js-cache-function-results.md +80 -0
- package/templates/admin-root/.claude/skills/vercel-react-best-practices/rules/js-cache-property-access.md +28 -0
- package/templates/admin-root/.claude/skills/vercel-react-best-practices/rules/js-cache-storage.md +70 -0
- package/templates/admin-root/.claude/skills/vercel-react-best-practices/rules/js-combine-iterations.md +32 -0
- package/templates/admin-root/.claude/skills/vercel-react-best-practices/rules/js-early-exit.md +50 -0
- package/templates/admin-root/.claude/skills/vercel-react-best-practices/rules/js-hoist-regexp.md +45 -0
- package/templates/admin-root/.claude/skills/vercel-react-best-practices/rules/js-index-maps.md +37 -0
- package/templates/admin-root/.claude/skills/vercel-react-best-practices/rules/js-length-check-first.md +49 -0
- package/templates/admin-root/.claude/skills/vercel-react-best-practices/rules/js-min-max-loop.md +82 -0
- package/templates/admin-root/.claude/skills/vercel-react-best-practices/rules/js-set-map-lookups.md +24 -0
- package/templates/admin-root/.claude/skills/vercel-react-best-practices/rules/js-tosorted-immutable.md +57 -0
- package/templates/admin-root/.claude/skills/vercel-react-best-practices/rules/rendering-activity.md +26 -0
- package/templates/admin-root/.claude/skills/vercel-react-best-practices/rules/rendering-animate-svg-wrapper.md +47 -0
- package/templates/admin-root/.claude/skills/vercel-react-best-practices/rules/rendering-conditional-render.md +40 -0
- package/templates/admin-root/.claude/skills/vercel-react-best-practices/rules/rendering-content-visibility.md +38 -0
- package/templates/admin-root/.claude/skills/vercel-react-best-practices/rules/rendering-hoist-jsx.md +46 -0
- package/templates/admin-root/.claude/skills/vercel-react-best-practices/rules/rendering-hydration-no-flicker.md +82 -0
- package/templates/admin-root/.claude/skills/vercel-react-best-practices/rules/rendering-hydration-suppress-warning.md +30 -0
- package/templates/admin-root/.claude/skills/vercel-react-best-practices/rules/rendering-svg-precision.md +28 -0
- package/templates/admin-root/.claude/skills/vercel-react-best-practices/rules/rendering-usetransition-loading.md +75 -0
- package/templates/admin-root/.claude/skills/vercel-react-best-practices/rules/rerender-defer-reads.md +39 -0
- package/templates/admin-root/.claude/skills/vercel-react-best-practices/rules/rerender-dependencies.md +45 -0
- package/templates/admin-root/.claude/skills/vercel-react-best-practices/rules/rerender-derived-state-no-effect.md +40 -0
- package/templates/admin-root/.claude/skills/vercel-react-best-practices/rules/rerender-derived-state.md +29 -0
- package/templates/admin-root/.claude/skills/vercel-react-best-practices/rules/rerender-functional-setstate.md +74 -0
- package/templates/admin-root/.claude/skills/vercel-react-best-practices/rules/rerender-lazy-state-init.md +58 -0
- package/templates/admin-root/.claude/skills/vercel-react-best-practices/rules/rerender-memo-with-default-value.md +38 -0
- package/templates/admin-root/.claude/skills/vercel-react-best-practices/rules/rerender-memo.md +44 -0
- package/templates/admin-root/.claude/skills/vercel-react-best-practices/rules/rerender-move-effect-to-event.md +45 -0
- package/templates/admin-root/.claude/skills/vercel-react-best-practices/rules/rerender-simple-expression-in-memo.md +35 -0
- package/templates/admin-root/.claude/skills/vercel-react-best-practices/rules/rerender-transitions.md +40 -0
- package/templates/admin-root/.claude/skills/vercel-react-best-practices/rules/rerender-use-ref-transient-values.md +73 -0
- package/templates/admin-root/.claude/skills/vercel-react-best-practices/rules/server-after-nonblocking.md +73 -0
- package/templates/admin-root/.claude/skills/vercel-react-best-practices/rules/server-auth-actions.md +96 -0
- package/templates/admin-root/.claude/skills/vercel-react-best-practices/rules/server-cache-lru.md +41 -0
- package/templates/admin-root/.claude/skills/vercel-react-best-practices/rules/server-cache-react.md +76 -0
- package/templates/admin-root/.claude/skills/vercel-react-best-practices/rules/server-dedup-props.md +65 -0
- package/templates/admin-root/.claude/skills/vercel-react-best-practices/rules/server-parallel-fetching.md +83 -0
- package/templates/admin-root/.claude/skills/vercel-react-best-practices/rules/server-serialization.md +38 -0
- package/templates/admin-root/.cursor/settings.json +10 -0
- package/templates/admin-root/.editorconfig +19 -0
- package/templates/admin-root/.gitattributes +16 -0
- package/templates/admin-root/.oxfmtrc.json +35 -0
- package/templates/admin-root/AGENTS.md +297 -0
- package/templates/admin-root/CLAUDE.md +1 -0
- package/templates/admin-root/skills-lock.json +27 -0
- package/templates/admin-root.manifest.json +1317 -0
- package/templates/admin-shell/theme/antd/AntdProvider.tsx +1 -0
- package/templates/admin-shell/theme/antd/shared.ts +3 -3
- package/templates/admin-shell/theme/antd-algorithm/algorithm/dark/colors.ts +3 -3
- package/templates/admin-shell/theme/antd-algorithm/algorithm/default/colors.ts +1 -1
- package/templates/admin-shell/theme/presets/default.json +1 -1
- package/templates/admin.meta.json +10 -6
- package/LICENSE +0 -21
|
@@ -0,0 +1,297 @@
|
|
|
1
|
+
# AGENTS.md
|
|
2
|
+
|
|
3
|
+
本文件为编码智能体(Claude Code、Codex 等)在本仓库工作时提供指导。
|
|
4
|
+
|
|
5
|
+
> `CLAUDE.md` 是指向本文件的符号链接,全仓库只有一份事实来源。
|
|
6
|
+
> 修改本文件,永远不要直接编辑 `CLAUDE.md`。
|
|
7
|
+
|
|
8
|
+
## 规范索引
|
|
9
|
+
|
|
10
|
+
本文件只包含**跨端通用、随时可能被违反**的规则。平台专属规范放在对应子树,
|
|
11
|
+
工作涉及该子树时才需要阅读:
|
|
12
|
+
|
|
13
|
+
| 范围 | 文件 |
|
|
14
|
+
| ---------------------------------------- | --------------------------- |
|
|
15
|
+
| Native 样式(Uniwind / 语义色 / 安全区) | `packages/native/AGENTS.md` |
|
|
16
|
+
| Web 样式(UnoCSS / 色阶 / antd) | `packages/web/AGENTS.md` |
|
|
17
|
+
| 包布局与命名(平台优先分层) | `packages/ARCHITECTURE.md` |
|
|
18
|
+
|
|
19
|
+
## Skills 调用规则(关键)
|
|
20
|
+
|
|
21
|
+
技能位于 `.agents/skills/`(`.claude/skills/` 为镜像)。
|
|
22
|
+
**权威清单以该目录为准**,此处不做枚举——手工维护的列表必然过期。
|
|
23
|
+
|
|
24
|
+
## 思考顺序
|
|
25
|
+
|
|
26
|
+
你是一位经验丰富的软件架构师与工程师。回应任何任务时,严格遵循以下顺序:
|
|
27
|
+
|
|
28
|
+
1. **功能开发**:先分析架构 → 描述系统结构、职责与交互 → 架构明确后才动手实现。
|
|
29
|
+
2. **代码重构**:先定义代码的理想终态 → 描述目标结构、抽象与边界 → 朝终态增量重构。
|
|
30
|
+
3. **调试修复**:先梳理已知信息 → 明确区分「事实 vs 假设」「症状 vs 根因」 → 问题空间厘清前不提修复方案。
|
|
31
|
+
|
|
32
|
+
信息不完整时请求澄清。不要急于写代码。行动前审慎且透明地推理。
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
## React 组件规范
|
|
37
|
+
|
|
38
|
+
以下规则定义的是**强制开发工作流**,不是建议、不是偏好、不是「最佳实践」。
|
|
39
|
+
违反这些规则的代码即视为**缺陷**,即使功能正常也必须修正。
|
|
40
|
+
|
|
41
|
+
## 组件定义
|
|
42
|
+
|
|
43
|
+
### 必须使用箭头函数
|
|
44
|
+
|
|
45
|
+
```tsx
|
|
46
|
+
// ✅ 正确
|
|
47
|
+
const Portal = (props: PortalProps) => { ... };
|
|
48
|
+
|
|
49
|
+
// ❌ 禁止 function 声明式组件
|
|
50
|
+
function Portal(props: PortalProps) { ... }
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
### 必须有独立的 Props 接口
|
|
54
|
+
|
|
55
|
+
用 `interface`,禁止在函数签名里内联。每个字段必须有 JSDoc 注释说明**意图**(不是重复类型):
|
|
56
|
+
|
|
57
|
+
```tsx
|
|
58
|
+
interface PortalProps {
|
|
59
|
+
/** 是否在容器不存在时自动创建 */
|
|
60
|
+
autoCreate?: boolean;
|
|
61
|
+
/** 传送门内容 */
|
|
62
|
+
children: ReactNode;
|
|
63
|
+
}
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
### Props 在函数体内解构
|
|
67
|
+
|
|
68
|
+
**禁止**在参数位置解构,解构必须是函数体第一行:
|
|
69
|
+
|
|
70
|
+
```tsx
|
|
71
|
+
// ✅ 正确
|
|
72
|
+
const Portal = (props: PortalProps) => {
|
|
73
|
+
const { autoCreate = false, children, container } = props;
|
|
74
|
+
...
|
|
75
|
+
};
|
|
76
|
+
|
|
77
|
+
// ❌ 禁止
|
|
78
|
+
const Portal = ({ autoCreate, children }: PortalProps) => { ... };
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
理由:保持单一可预测的入口、便于调试重构、防止 prop 意外遮蔽。
|
|
82
|
+
|
|
83
|
+
## Hooks 规则
|
|
84
|
+
|
|
85
|
+
### `useCallback` — 禁止使用
|
|
86
|
+
|
|
87
|
+
`useCallback` **不得**出现在组件代码中。以下用法一律禁止:
|
|
88
|
+
|
|
89
|
+
- 为传给子组件的函数「稳定」引用
|
|
90
|
+
- 配合 `React.memo` 阻止子组件重渲染
|
|
91
|
+
- 用来消除 `exhaustive-deps` 告警
|
|
92
|
+
- 任何预防性 / 防御性优化
|
|
93
|
+
|
|
94
|
+
若某处看起来「必须」用它,说明**设计有问题**,改设计而不是加 hook:
|
|
95
|
+
|
|
96
|
+
- 函数不闭包任何东西 → 提到组件外
|
|
97
|
+
- 命令式且不应影响渲染 → 改用 `ref`
|
|
98
|
+
- 其余 → 重划组件边界,让该函数不再跨界
|
|
99
|
+
|
|
100
|
+
> Web 端另有一层理由:`packages/web/admin-vite` 默认启用 React Compiler,
|
|
101
|
+
> 手动 memo 不仅多余,还可能干扰编译器优化。Native 端(Expo)未启用编译器,
|
|
102
|
+
> 但禁令同样成立——理由见文末「核心理念」。
|
|
103
|
+
|
|
104
|
+
### `useMemo` — 仅限两种场景
|
|
105
|
+
|
|
106
|
+
1. **从逻辑派生值**:memo 结果是一个**值**(不是函数),且逻辑非平凡
|
|
107
|
+
2. **高开销计算**:可证明的高开销,非预防性优化
|
|
108
|
+
|
|
109
|
+
其余场景**禁止**使用。
|
|
110
|
+
|
|
111
|
+
### `react-hooks/exhaustive-deps`
|
|
112
|
+
|
|
113
|
+
默认**不允许**禁用。仅当确认理解依赖模型、且行为是有意为之时可禁用,
|
|
114
|
+
且必须写在**文件顶部**,禁止行内禁用:
|
|
115
|
+
|
|
116
|
+
```ts
|
|
117
|
+
/* eslint-disable react-hooks/exhaustive-deps */
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
## 组件内部排列顺序
|
|
121
|
+
|
|
122
|
+
组件内部声明必须按以下顺序排列,不得随意穿插:
|
|
123
|
+
|
|
124
|
+
| 顺序 | 内容 | 说明 |
|
|
125
|
+
| ---- | -------------------------- | --------------------------------- |
|
|
126
|
+
| 0 | 常量 | 组件**外部**,与实例无关的纯值 |
|
|
127
|
+
| 1 | 路由 / 安全区 / 环境 hooks | 环境上下文,最先获取 |
|
|
128
|
+
| 2 | `useState` | 组件自有状态 |
|
|
129
|
+
| 3 | `useRef` | 命令式引用 |
|
|
130
|
+
| 4 | 自定义 hooks | 业务逻辑封装 |
|
|
131
|
+
| 5 | 网络 hooks | query / mutation |
|
|
132
|
+
| 6 | 计算变量 | 由以上状态派生 |
|
|
133
|
+
| 7 | 函数声明 | 事件处理、辅助逻辑 |
|
|
134
|
+
| 8 | `useEffect` | 副作用,放在函数之后、return 之前 |
|
|
135
|
+
| 9 | `return` | JSX 渲染 |
|
|
136
|
+
|
|
137
|
+
```tsx
|
|
138
|
+
const CODE_LENGTH = 6; // 0. 常量在组件外
|
|
139
|
+
|
|
140
|
+
const MyScreen = (props: MyScreenProps) => {
|
|
141
|
+
const { title } = props;
|
|
142
|
+
|
|
143
|
+
const router = useRouter(); // 1. 环境
|
|
144
|
+
const insets = useSafeAreaInsets();
|
|
145
|
+
|
|
146
|
+
const [value, setValue] = useState(''); // 2. state
|
|
147
|
+
const inputRef = useRef<TextInput>(null); // 3. ref
|
|
148
|
+
|
|
149
|
+
const { count, start } = useCountDownTimer(60); // 4. 自定义 hooks
|
|
150
|
+
const { data: profile } = useMyProfileQuery(); // 5. 网络 hooks
|
|
151
|
+
const { mutate: submit, isPending } = useSubmitMutation();
|
|
152
|
+
|
|
153
|
+
const canSubmit = value.length > 0 && !isPending; // 6. 计算变量
|
|
154
|
+
|
|
155
|
+
function handleSubmit() { ... } // 7. 函数声明
|
|
156
|
+
|
|
157
|
+
useEffect(() => { ... }, []); // 8. 副作用
|
|
158
|
+
|
|
159
|
+
return ( ... ); // 9. JSX
|
|
160
|
+
};
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
> **原则**:数据流自上而下——先声明数据源,再派生,再处理,最后渲染。
|
|
164
|
+
> 后面的可以引用前面的,前面的不应依赖后面的。
|
|
165
|
+
|
|
166
|
+
### 例外:初始值依赖上游数据
|
|
167
|
+
|
|
168
|
+
当 `useState` 的初始值需要由 hook / 网络接口的返回值决定时,允许把该 `useState`
|
|
169
|
+
下移到数据源之后:
|
|
170
|
+
|
|
171
|
+
```tsx
|
|
172
|
+
const { data: profile } = useMyProfileQuery();
|
|
173
|
+
const profilePhone = profile?.phone_number ?? '';
|
|
174
|
+
|
|
175
|
+
// ✅ 初始值依赖 profilePhone,放在数据源之后
|
|
176
|
+
const [phone, setPhone] = useState(phoneParam ?? profilePhone);
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
**判断标准**:初始值表达式引用了前面的 hook 返回值或派生变量,则该 state
|
|
180
|
+
跟随其依赖的位置,而非固定在第 2 层。
|
|
181
|
+
|
|
182
|
+
## 内部函数
|
|
183
|
+
|
|
184
|
+
组件内的辅助函数必须使用 **function 声明**(不是箭头函数);可复用的应提到组件外:
|
|
185
|
+
|
|
186
|
+
```tsx
|
|
187
|
+
// ✅ function 声明
|
|
188
|
+
function findTargetElement() { ... }
|
|
189
|
+
|
|
190
|
+
// ❌ 禁止箭头函数
|
|
191
|
+
const findTargetElement = () => { ... };
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
理由:执行意图清晰、栈追踪更好。
|
|
195
|
+
|
|
196
|
+
## State vs Ref
|
|
197
|
+
|
|
198
|
+
| 用途 | Hook |
|
|
199
|
+
| --------------------------- | ---------- |
|
|
200
|
+
| 影响渲染的状态 | `useState` |
|
|
201
|
+
| 命令式 / 不触发渲染的可变值 | `useRef` |
|
|
202
|
+
|
|
203
|
+
绝不混淆职责。
|
|
204
|
+
|
|
205
|
+
## useEffect
|
|
206
|
+
|
|
207
|
+
仅用于:生命周期绑定、外部系统同步、DOM / 命令式集成。
|
|
208
|
+
|
|
209
|
+
目的必须一读即明;副作用必须局部化;**创建了资源必须有 cleanup**。
|
|
210
|
+
|
|
211
|
+
## Boolean 条件规则
|
|
212
|
+
|
|
213
|
+
- 只需判断真值时,一律写 `Boolean(value)`
|
|
214
|
+
- 不要仅为得到布尔条件而写 `value !== undefined`、`value != null`
|
|
215
|
+
- 仅当 `undefined` 必须与 `0`、空字符串、`false`、`null` 区分开时,才允许显式空值比较
|
|
216
|
+
|
|
217
|
+
---
|
|
218
|
+
|
|
219
|
+
## 命名规范
|
|
220
|
+
|
|
221
|
+
### 文件命名
|
|
222
|
+
|
|
223
|
+
| 类型 | 格式 | 示例 |
|
|
224
|
+
| --- | --- | --- |
|
|
225
|
+
| 组件文件 | **PascalCase** | `TreeRoot.tsx`, `CheckboxGroup.tsx` |
|
|
226
|
+
| 测试文件 | kebab-case + `.test` | `button-group.test.tsx` |
|
|
227
|
+
| Hook 文件 | kebab-case,`use-` 前缀 | `use-auth.ts` |
|
|
228
|
+
| 类型文件 | kebab-case | `types.ts`, `types.d.ts` |
|
|
229
|
+
| 常量 / 工具文件 | kebab-case | `service-config.ts`, `atom-with-storage.ts` |
|
|
230
|
+
|
|
231
|
+
> 组件文件是 PascalCase,**与文件内导出的组件名一致**;只有测试和非组件模块用 kebab-case。
|
|
232
|
+
|
|
233
|
+
### 导出命名
|
|
234
|
+
|
|
235
|
+
| 类型 | 格式 | 示例 |
|
|
236
|
+
| --- | --- | --- |
|
|
237
|
+
| 组件 | PascalCase | `Button`, `PasswordInput` |
|
|
238
|
+
| Hook | camelCase,`use` 前缀 | `useAuth`, `useLoginMutation` |
|
|
239
|
+
| 常量 | UPPER_SNAKE_CASE | `AUTH_URLS`, `SERVICE_CODES` |
|
|
240
|
+
| 类型 / 接口 | PascalCase | `AuthTokens`, `LoginParams` |
|
|
241
|
+
| 工具函数 | camelCase | `createAppRequest`, `getAtomValue` |
|
|
242
|
+
|
|
243
|
+
### API 相关命名
|
|
244
|
+
|
|
245
|
+
| 类型 | 规则 | 示例 |
|
|
246
|
+
| --- | --- | --- |
|
|
247
|
+
| URL 常量 | `MODULE_URLS` | `AUTH_URLS`, `MONITOR_CACHE_URLS` |
|
|
248
|
+
| Query Keys | `MODULE_QUERY_KEYS` | `AUTH_QUERY_KEYS` |
|
|
249
|
+
| Mutation Keys | `MODULE_MUTATION_KEYS` | `AUTH_MUTATION_KEYS` |
|
|
250
|
+
| Fetch 函数 | `fetchXxx` | `fetchLogin`, `fetchCaptcha` |
|
|
251
|
+
| Query Hook | `useXxxQuery` | `useCacheInfoQuery` |
|
|
252
|
+
| Mutation Hook | `useXxxMutation` | `useAssignRoleMembersMutation` |
|
|
253
|
+
|
|
254
|
+
### API 类型
|
|
255
|
+
|
|
256
|
+
定义在 `packages/@core/types/src/api/*.d.ts`,写在 `declare global` 内、用**点号分段**的
|
|
257
|
+
namespace,字段一律 **camelCase**,每个字段必须有注释:
|
|
258
|
+
|
|
259
|
+
```ts
|
|
260
|
+
declare global {
|
|
261
|
+
namespace Api.Auth {
|
|
262
|
+
/** 账号密码登录 */
|
|
263
|
+
type PwdLoginParams = LoginContext & {
|
|
264
|
+
/** 图形验证码内容 */
|
|
265
|
+
code?: string;
|
|
266
|
+
/** 密码 */
|
|
267
|
+
password: string;
|
|
268
|
+
/** 用户名 */
|
|
269
|
+
userName: string;
|
|
270
|
+
};
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
```
|
|
274
|
+
|
|
275
|
+
后端返回 snake_case 时在 service 层转换,**不要把 snake_case 带进类型定义**。
|
|
276
|
+
|
|
277
|
+
### Feature 模块结构
|
|
278
|
+
|
|
279
|
+
```
|
|
280
|
+
features/<name>/
|
|
281
|
+
├── components/ # 该 feature 私有的组件
|
|
282
|
+
├── use-xxx.ts # hooks 平铺,不套 hooks/ 目录
|
|
283
|
+
└── types.ts # 需要时才建
|
|
284
|
+
```
|
|
285
|
+
|
|
286
|
+
不使用 `core/` 子目录;hooks 直接平铺在模块根下。
|
|
287
|
+
|
|
288
|
+
---
|
|
289
|
+
|
|
290
|
+
## 核心理念
|
|
291
|
+
|
|
292
|
+
- React **不是**关于「防止 re-render」
|
|
293
|
+
- Hooks 是**语义工具**,不是性能 hack
|
|
294
|
+
- 可读性 > 过早优化
|
|
295
|
+
- **架构错误不能用 hooks 来打补丁**
|
|
296
|
+
|
|
297
|
+
如果某个 hook 让你觉得「必须要用」,先质疑设计。
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
AGENTS.md
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 1,
|
|
3
|
+
"skills": {
|
|
4
|
+
"migrate-nativewind-to-uniwind": {
|
|
5
|
+
"source": "uni-stack/uniwind",
|
|
6
|
+
"sourceType": "github",
|
|
7
|
+
"skillPath": "skills/migrate-nativewind-to-uniwind/SKILL.md",
|
|
8
|
+
"computedHash": "095066623a369bccadd62065ac44e7b4addce4cd1f9317b08fc2f8ea2d9ad4bd"
|
|
9
|
+
},
|
|
10
|
+
"migrate-oxfmt": {
|
|
11
|
+
"source": "oxc-project/oxc",
|
|
12
|
+
"sourceType": "github",
|
|
13
|
+
"computedHash": "b313a891bc4173aac0bd948d5e8c40f5dd921fe67eb5f51184c364e2b869f0e7"
|
|
14
|
+
},
|
|
15
|
+
"migrate-oxlint": {
|
|
16
|
+
"source": "oxc-project/oxc",
|
|
17
|
+
"sourceType": "github",
|
|
18
|
+
"computedHash": "80ce5201b1ef52d6cabe553a4cacfd6e1db97bad99618216b9cf9318d11d7e64"
|
|
19
|
+
},
|
|
20
|
+
"uniwind": {
|
|
21
|
+
"source": "uni-stack/uniwind",
|
|
22
|
+
"sourceType": "github",
|
|
23
|
+
"skillPath": "skills/uniwind/SKILL.md",
|
|
24
|
+
"computedHash": "ecdc81b7f18b46ca48843bdf052c0f9796d9da42578471ca725c38faf74673fd"
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
}
|