ワンクリックで
generate-component
基于 `wux-weapp` 源码生成或重构 `packages/miniprogram.*` 组件,优先对齐 `packages/miniprogram.button` 的目录结构、代码风格、类型定义、文档、测试和 playground。
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
基于 `wux-weapp` 源码生成或重构 `packages/miniprogram.*` 组件,优先对齐 `packages/miniprogram.button` 的目录结构、代码风格、类型定义、文档、测试和 playground。
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
为 miniprogram 组件补充或生成单元测试。适用于 `packages/$COMPONENT` 下基于 `miniprogram-simulate` 的组件测试编写、补测、回归修复和快照维护,尤其适合需要 mock 小程序运行时、校验 props/watcher、以及通过真实 DOM 事件触发交互的场景。
自动生成 miniprogram 组件的 README.md,包括
为 Doraemon UI 小程序组件补充 rootClassName/rootStyle 与语义化 classNames/styles 自定义能力。适用于需要扫描 packages 组件,并同步更新 index.ts、types.ts 与 WXML 模板的任务,让组件暴露根节点快捷 props 和 classNames/styles props,根据 classes key 推导 SemanticName,并接入 useCSSVarCls、useSemanticClassNames、useSemanticStylesString。
扫描 packages 下的所有 LESS 文件,将 rpx 单位转换为 px,值除以 2。
根据组件实际定义重构小程序组件,严格按照优先级处理 @Prop/@Component.props、_renderProxy、theme 字段及 LESS 样式
| name | generate-component |
| description | 基于 `wux-weapp` 源码生成或重构 `packages/miniprogram.*` 组件,优先对齐 `packages/miniprogram.button` 的目录结构、代码风格、类型定义、文档、测试和 playground。 |
| allowed-tools | Bash(npm *), Read, Grep, Write |
packages/miniprogram.buttonpackages/miniprogram.$COMPONENTwux-weapp 对应组件wux-weapp 迁移一个新组件到 packages/miniprogram.$COMPONENT先读取这些文件:
packages/miniprogram.button/package.jsonpackages/miniprogram.button/src/index.tspackages/miniprogram.button/src/index.wxmlpackages/miniprogram.button/assets/index.lesspackages/miniprogram.button/assets/variables.lesspackages/miniprogram.button/src/types.tspackages/miniprogram.button/__tests__/index.spec.tspackages/miniprogram.button/README.mdpackages/miniprogram.$COMPONENT/src/*packages/miniprogram.$COMPONENT/assets/*packages/miniprogram.$COMPONENT/__tests__/*packages/miniprogram.$COMPONENT/README.md同时确认:
wux-weapp 中是基础组件、复合组件还是依赖 relation / popup / shared API 的组件wux-weapp/src/$COMPONENT 存在真实源码,后续实现默认以它为唯一行为来源;除 Doraemon UI 命名、类型和必要运行时适配外,不要自行发明 props、方法、事件、状态字段、helper 层或样式结构src、assets、types、README、__tests__、playgroundpackages/miniprogram.button 的结构补齐:
src/index.tssrc/index.wxmlsrc/index.lesssrc/index.jsonsrc/types.tsassets/index.lessassets/variables.less__tests__/index.spec.tsREADME.mdpackage.jsonindex.d.tsjest.config.jsdora.config.jsplayground/pages/index/*defineComponentHOC@Component@Prop@Watch@Event / @Emit(当事件转发逻辑清晰时)packages/miniprogram.filterbar/src/index.ts -> class Filterbar extends Doraemonpackages/miniprogram.floating-panel/src/index.ts -> class FloatingPanel extends Doraemon@PropprefixCls 保留在 @Component.props@Propdisabled / hoverClass / wrapStyle 的通用空壳,除非源码确实只需要这些字段src/types.ts 必须导出:
XxxPropsXxxExposeXxxInstancewux-weapp 原始 API 过于宽泛,不要直接给 string | any@doraemon-ui/miniprogram.shared 复用的类型优先复用wux-weapp 组件的真实行为,再决定哪些保留为内部状态watcher 只保留真实需要的联动逻辑wxml / wxs / less 中直接消费的组件内部字段,统一加 _ 前缀,例如 _closeTimer、_touchingonClick / onClose / onClosed 等实例方法show() / hide() 方案src/$component.ts 或 src/index.ts 邻近 helper 文件中normalizeRenderProps、setXxx 之类的额外映射层wux-weapp 行为为准,但命名体系必须切到 dora-*<view class="dora-class {{ classes.wrap }}">
wux-weapp 有明确扩展点的,保留 slotdialog、gallery、notification 一样同时支持声明式和函数式,函数式 helper 默认采用固定结构:
mergeOptionsclearmountComponentshowmountComponent 内优先通过 usePopupStateHOC(...) 控制 visible@Component 里声明 exposeXxxExpose 的函数属性定义XxxShowProps 优先写成:type XxxShowProps = Omit<XxxProps, 'visible'> & XxxExpose
packages/miniprogram.button/assets/index.less 的组织方式wux-weapp 的 class 前缀和品牌命名,但结构、选择器关系、状态分支和视觉逻辑应尽量保持一致--background-color、--text-color、--activated-text-color 等@doraemon-ui/style/lib/index.less / theme.default.less 里的现成 tokencolor: PresetColorimport type { PresetColor } from '@doraemon-ui/miniprogram.shared'
positive['dora-color']: color,
[`dora-color--${color}`]: color,
"@doraemon-ui/miniprogram.shared": "workspace:*"
wux-weapp 原始 API 使用 theme:
colortheme 引用都替换成 colorPresetColor 类型断言dora-color 体系,而不是维护旧的 --light / --balanced / ... 组件私有类分支xxx-color(...),不要保留 xxx-style(...)assets/index.less 文件底部.tab-color(#get-color(positive)[]);
&.@{dora-prefix}-color {
.tab-color(#current-color(base)[]);
}
prefix-cls 外,LESS 变量只有在同一组件中被使用超过 2 个地方时才允许定义--button-background-color、--icon-color 这类与仓库既有模式不一致的私有变量名wux-weapp 的 rpxconvert-rpx-to-px skill,但不要机械批量替换后不校验视觉含义packages/miniprogram.button/package.json@doraemon-ui/miniprogram.$COMPONENT@doraemon-ui/miniprogram.core-js@doraemon-ui/style@doraemon-ui/miniprogram.sharedREADME 不是占位页,至少要包含:
文档写法对齐 packages/miniprogram.button/README.md
如果组件来自 wux-weapp,文档内容也要改写成 Doraemon UI 口径,不要保留 wux 品牌或路径
但 API 表、事件、slot、示例代码必须优先反映来源组件的真实输入输出,不要把旧占位实现或你自定义的能力写进 README
测试文件位置:packages/miniprogram.$COMPONENT/__tests__/index.spec.ts
优先复用 .claude/skills/generate-test/SKILL.md 的规则
最少覆盖:
不要只补快照
不要只测占位 props
优先通过真实节点事件触发行为
每个生成组件都要有最小可演示 playground
如果 wux-weapp/example/pages/$COMPONENT 存在:
dora-* 组件和 Doraemon UI 口径,但不要丢掉原示例的核心行为至少包含:
playground/pages/index/index.jsonplayground/pages/index/index.wxmlplayground/pages/index/index.jsplayground/pages/index/index.wxss示例要覆盖该组件最核心的 1 到 3 个场景
对于 form、picker、popup、selector 这类复合组件,playground 不能只放 1 个静态块,必须包含来源示例中的核心交互链
不要保留“disabled + hover + wrapStyle”式的空壳 demo
推荐严格按这个顺序推进:
wux-weapp 对应组件源码src/index.tssrc/index.wxmlassets/variables.lessassets/index.lesssrc/types.tsREADME.md__tests__/index.spec.ts优先在组件包目录做最小范围验证,不要直接跑全仓:
cd packages/miniprogram.$COMPONENT
pnpm test -- --runInBand __tests__/index.spec.ts
pnpm build
若需要再补:
pnpm serve
packages/miniprogram.button 为结构标杆,而不是按 wux-weapp 原仓库布局迁移srctypesassetsREADME__tests__playgroundwux-weapp 组件button 风格约定