pandax 0.0.1

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.
Files changed (90) hide show
  1. package/README.md +83 -0
  2. package/bin/pandax.js +592 -0
  3. package/package.json +33 -0
  4. package/skills/pandax-frontend-api-mock/SKILL.md +62 -0
  5. package/skills/pandax-frontend-architecture/SKILL.md +1239 -0
  6. package/skills/pandax-frontend-component-review/SKILL.md +114 -0
  7. package/skills/pandax-frontend-requirement/SKILL.md +142 -0
  8. package/skills/pandax-frontend-standards/SKILL.md +468 -0
  9. package/skills/pandax-frontend-use-modal/SKILL.md +621 -0
  10. package/templates/pandax-monorepo/.editorconfig +16 -0
  11. package/templates/pandax-monorepo/.husky/commit-msg +2 -0
  12. package/templates/pandax-monorepo/.husky/pre-commit +2 -0
  13. package/templates/pandax-monorepo/.prettierrc.json +28 -0
  14. package/templates/pandax-monorepo/apps/base/env.d.ts +1 -0
  15. package/templates/pandax-monorepo/apps/base/index.html +13 -0
  16. package/templates/pandax-monorepo/apps/base/package.json +30 -0
  17. package/templates/pandax-monorepo/apps/base/src/App.vue +15 -0
  18. package/templates/pandax-monorepo/apps/base/src/layouts/default-layout/index.vue +23 -0
  19. package/templates/pandax-monorepo/apps/base/src/main.ts +31 -0
  20. package/templates/pandax-monorepo/apps/base/src/router/index.ts +22 -0
  21. package/templates/pandax-monorepo/apps/base/src/stores/index.ts +15 -0
  22. package/templates/pandax-monorepo/apps/base/src/styles/global.scss +19 -0
  23. package/templates/pandax-monorepo/apps/base/src/styles/variables.scss +4 -0
  24. package/templates/pandax-monorepo/apps/base/src/types/wujie.d.ts +16 -0
  25. package/templates/pandax-monorepo/apps/base/src/views/home/index.vue +21 -0
  26. package/templates/pandax-monorepo/apps/base/tsconfig.json +25 -0
  27. package/templates/pandax-monorepo/apps/base/tsconfig.node.json +11 -0
  28. package/templates/pandax-monorepo/apps/base/vite.config.ts +26 -0
  29. package/templates/pandax-monorepo/apps/main/env.d.ts +1 -0
  30. package/templates/pandax-monorepo/apps/main/index.html +13 -0
  31. package/templates/pandax-monorepo/apps/main/package.json +32 -0
  32. package/templates/pandax-monorepo/apps/main/src/App.vue +15 -0
  33. package/templates/pandax-monorepo/apps/main/src/layouts/MicroApp.vue +29 -0
  34. package/templates/pandax-monorepo/apps/main/src/layouts/default-layout/index.vue +48 -0
  35. package/templates/pandax-monorepo/apps/main/src/main.ts +27 -0
  36. package/templates/pandax-monorepo/apps/main/src/router/index.ts +22 -0
  37. package/templates/pandax-monorepo/apps/main/src/stores/index.ts +23 -0
  38. package/templates/pandax-monorepo/apps/main/src/styles/global.scss +23 -0
  39. package/templates/pandax-monorepo/apps/main/src/styles/variables.scss +8 -0
  40. package/templates/pandax-monorepo/apps/main/src/views/home/index.vue +25 -0
  41. package/templates/pandax-monorepo/apps/main/tsconfig.json +25 -0
  42. package/templates/pandax-monorepo/apps/main/tsconfig.node.json +11 -0
  43. package/templates/pandax-monorepo/apps/main/vite.config.ts +24 -0
  44. package/templates/pandax-monorepo/commitlint.config.js +38 -0
  45. package/templates/pandax-monorepo/eslint.config.js +61 -0
  46. package/templates/pandax-monorepo/package.json +50 -0
  47. package/templates/pandax-monorepo/packages/components/package.json +20 -0
  48. package/templates/pandax-monorepo/packages/components/src/PandaButton.vue +15 -0
  49. package/templates/pandax-monorepo/packages/components/src/PandaCard.vue +16 -0
  50. package/templates/pandax-monorepo/packages/components/src/index.ts +2 -0
  51. package/templates/pandax-monorepo/packages/core/package.json +20 -0
  52. package/templates/pandax-monorepo/packages/core/src/index.ts +2 -0
  53. package/templates/pandax-monorepo/packages/core/src/request.ts +24 -0
  54. package/templates/pandax-monorepo/packages/core/src/utils.ts +7 -0
  55. package/templates/pandax-monorepo/packages/hooks/package.json +19 -0
  56. package/templates/pandax-monorepo/packages/hooks/src/index.ts +2 -0
  57. package/templates/pandax-monorepo/packages/hooks/src/useCounter.ts +27 -0
  58. package/templates/pandax-monorepo/packages/hooks/src/useToggle.ts +19 -0
  59. package/templates/pandax-monorepo/packages/styles/package.json +19 -0
  60. package/templates/pandax-monorepo/packages/styles/src/index.ts +1 -0
  61. package/templates/pandax-monorepo/packages/styles/src/uno.ts +19 -0
  62. package/templates/pandax-monorepo/packages/styles/src/variables.scss +14 -0
  63. package/templates/pandax-monorepo/pnpm-workspace.yaml +32 -0
  64. package/templates/pandax-monorepo/turbo.json +23 -0
  65. package/templates/vue3/.eslintrc.cjs +16 -0
  66. package/templates/vue3/.prettierrc +7 -0
  67. package/templates/vue3/env.d.ts +1 -0
  68. package/templates/vue3/index.html +13 -0
  69. package/templates/vue3/package.json +34 -0
  70. package/templates/vue3/src/App.vue +14 -0
  71. package/templates/vue3/src/api/index.ts +27 -0
  72. package/templates/vue3/src/assets/.gitkeep +1 -0
  73. package/templates/vue3/src/components/.gitkeep +1 -0
  74. package/templates/vue3/src/composables/.gitkeep +1 -0
  75. package/templates/vue3/src/constants/.gitkeep +1 -0
  76. package/templates/vue3/src/directives/.gitkeep +1 -0
  77. package/templates/vue3/src/layouts/default-layout/index.vue +33 -0
  78. package/templates/vue3/src/locales/.gitkeep +1 -0
  79. package/templates/vue3/src/main.ts +17 -0
  80. package/templates/vue3/src/router/index.ts +17 -0
  81. package/templates/vue3/src/services/.gitkeep +1 -0
  82. package/templates/vue3/src/stores/index.ts +12 -0
  83. package/templates/vue3/src/styles/global.scss +18 -0
  84. package/templates/vue3/src/styles/variables.scss +17 -0
  85. package/templates/vue3/src/types/global.d.ts +9 -0
  86. package/templates/vue3/src/utils/format.ts +11 -0
  87. package/templates/vue3/src/views/home/index.vue +19 -0
  88. package/templates/vue3/tsconfig.json +25 -0
  89. package/templates/vue3/tsconfig.node.json +10 -0
  90. package/templates/vue3/vite.config.ts +20 -0
@@ -0,0 +1,114 @@
1
+ ---
2
+ name: "pandax-frontend-component-review"
3
+ category: "frontend"
4
+ description: "审查 Vue/React 组件代码。Invoke when 用户要求审查组件、review component、或组件代码涉及命名、Props、样式隔离、可访问性等场景。"
5
+ ---
6
+
7
+ # Pandax 组件规范审查
8
+
9
+ 本 skill 用于审查前端组件是否符合 Pandax 前端团队的组件开发约定。
10
+
11
+ ## 触发条件
12
+
13
+ - 用户说"帮我 review 这个组件"
14
+ - 用户要求"检查组件规范"
15
+ - 新增、修改或重构 Vue/React 组件时
16
+ - 组件涉及 props 设计、事件命名、样式隔离、可访问性等议题
17
+
18
+ ## 审查前置
19
+
20
+ 审查前先读取 `.trae/skills/pandax-frontend-standards/SKILL.md` 中的组件规范,特别是 Vue3 组件结构约定。
21
+
22
+ ## 审查维度
23
+
24
+ ### 1. 文件与命名
25
+
26
+ - 组件文件名使用大驼峰(PascalCase),如 `UserProfile.vue`
27
+ - 目录结构按功能模块组织,避免扁平堆砌
28
+ - 单一组件文件行数不宜超过 300 行,复杂组件应拆分
29
+
30
+ #### Vue3 组件结构审查
31
+
32
+ 如果项目是 Vue3,组件目录必须采用以下结构:
33
+
34
+ ```text
35
+ app-register/ # 目录名:全小写 + 短横线
36
+ ├── index.vue # 默认入口
37
+ ├── Prop.ts # Props 定义
38
+ ├── Type.ts # TS 类型定义
39
+ └── index.module.scss # CSS Modules 样式
40
+ ```
41
+
42
+ 检查点:
43
+
44
+ - 组件目录名是否全小写 + 短横线?
45
+ - 是否存在 `index.vue` 作为默认入口?
46
+ - Props 是否抽离到 `Prop.ts`?
47
+ - 类型是否抽离到 `Type.ts`?
48
+ - 样式文件是否为 `index.module.scss`?
49
+ - 子组件是否放在 `components/` 下并遵循同样结构?
50
+ - 组件是否足够原子化?可复用片段是否已拆分为子组件?
51
+
52
+ #### Vue3 代码组织审查
53
+
54
+ 如果是 Vue3 组件,检查 `index.vue` 内部:
55
+
56
+ - 是否使用 `<script setup lang="ts">`?
57
+ - `import` 语句是否放在顶部,没有包 region?
58
+ - 是否按 `Props → Types → State → Computed → Watch → Lifecycle → Methods → Expose` 顺序组织?
59
+ - 从 `Props` 开始是否使用 `// #region` 和 `// #endregion` 包裹每个区域?
60
+ - 每个生命周期钩子(`onBeforeMount`、`onMounted`、`onBeforeUpdate`、`onUpdated`、`onBeforeUnmount`、`onUnmounted`)是否都有对应的 region?
61
+ - 未使用的生命周期 region 是否用 `// 当前组件未使用` 占位,而不是空函数调用?
62
+ - 已使用的生命周期是否有一句话用途说明?
63
+ - 生命周期是否按执行顺序排列?
64
+
65
+ #### Vue3 页面结构审查
66
+
67
+ 如果审查对象是 `views/` 下的页面组件,检查:
68
+
69
+ - 页面模块目录是否全小写 + 短横线,如 `user-management/`?
70
+ - 列表页是否有 `index.vue` 作为默认入口?
71
+ - 子页面是否放在 `pages/` 目录下?
72
+ - `pages/` 下的子页面命名是否简洁(如 `create/`、`edit/`、`detail/`)?
73
+ - 新增/编辑 UI 相似时,是否合并为 `pages/form/` 共用页?
74
+ - 页面内私有组件是否放在当前页面目录的 `components/` 下?
75
+ - 新增/编辑复用页是否通过路由参数 `id` 判断模式?
76
+
77
+ ### 2. Props 设计
78
+
79
+ - Props 必须声明类型与默认值(TypeScript 优先使用 interface/type)
80
+ - 避免过多的 props(>7 个)导致组件职责不清
81
+ - boolean 类型 props 命名应为形容词,如 `disabled`、`visible`
82
+ - 事件名使用 `onXxx` 或 `xxxChange`,保持语义清晰
83
+
84
+ ### 3. 样式隔离
85
+
86
+ - Vue 单文件组件使用 `scoped` 或 CSS Modules
87
+ - React 优先使用 CSS Modules / styled-components,避免全局污染
88
+ - 禁止使用 `!important` 覆盖样式,除非有明确注释说明原因
89
+
90
+ ### 4. 可访问性(a11y)
91
+
92
+ - 图片必须有有意义的 `alt` 属性
93
+ - 表单控件必须关联 `<label>`
94
+ - 交互元素必须可通过键盘访问
95
+
96
+ ### 5. 性能
97
+
98
+ - 避免在渲染函数中创建新的对象/数组/函数引用
99
+ - 大数据列表使用虚拟滚动或分页
100
+ - 合理使用 `memo` / `computed` 避免不必要的重渲染
101
+
102
+ ## 输出格式
103
+
104
+ 审查结果按三级标注:
105
+
106
+ - **必须修复**:阻塞性问题,必须修改
107
+ - **建议修改**:影响可维护性或体验,建议修改
108
+ - **仅供参考**:风格或偏好问题,可讨论
109
+
110
+ 每个问题需给出:
111
+ 1. 具体问题描述
112
+ 2. 所在文件与行号(如适用)
113
+ 3. 修改建议或示例代码
114
+ 4. 依据的 Pandax 规范条目
@@ -0,0 +1,142 @@
1
+ ---
2
+ name: "pandax-frontend-requirement"
3
+ category: "frontend"
4
+ description: "梳理前端需求并输出可执行方案。Invoke when 用户提出新前端需求、接需求任务、或需要判断有/无设计图时如何推进。"
5
+ ---
6
+
7
+ # Pandax 前端需求梳理
8
+
9
+ 本 skill 用于规范前端工程师接到需求后的梳理流程,确保在有设计图或无设计图两种情况下都能对齐需求、明确范围,再进入执行阶段。
10
+
11
+ ## 触发条件
12
+
13
+ - 用户提出新的前端需求
14
+ - 用户说"帮我做个页面/组件/功能"
15
+ - 用户给出设计图或原型,需要开始开发
16
+ - 用户没有设计图,只有一个想法或一句话需求
17
+ - 需求边界不清,需要先分析再动手
18
+
19
+ ## 执行流程
20
+
21
+ ### 步骤 1:调用 superpowers-zh 的 brainstorming skill 做需求分析
22
+
23
+ 在动手实现之前,必须先调用 `.trae/skills/brainstorming/SKILL.md`(或当前工具对应的 brainstorming skill),按照其流程:
24
+
25
+ 1. 检查项目当前状态(技术栈、目录结构、相关已有代码)
26
+ 2. 向用户提问,一次只问一个关键问题
27
+ 3. 探索 2-3 种可行方案并说明优劣
28
+ 4. 输出一份经过用户确认的设计文档
29
+
30
+ ### 步骤 2:判断是否有设计图
31
+
32
+ 在 brainstorming 过程中或结束后,明确以下问题:
33
+
34
+ - 是否有 UI 设计稿(Figma / Sketch / PSD / 图片)?
35
+ - 是否有交互原型(Axure / 墨刀 / 手绘稿)?
36
+ - 是否有参考页面或竞品链接?
37
+ - 是否只有文字描述?
38
+
39
+ ### 步骤 3:有设计图时的梳理
40
+
41
+ 如果有设计图或原型,执行以下子步骤:
42
+
43
+ 1. **设计图分析**
44
+ - 页面结构:Header / Content / Footer / Sidebar 等
45
+ - 视觉层次:主次信息、颜色、字体、间距
46
+ - 响应式要求:是否需要适配多端?断点如何定义?
47
+ 2. **组件拆分**
48
+ - 识别哪些组件是已有组件可复用
49
+ - 识别哪些组件需要新建
50
+ - 公共样式、主题变量是否需要调整
51
+ 3. **交互梳理**
52
+ - 用户操作路径(点击、输入、提交等)
53
+ - 状态变化(加载、空态、错误、成功)
54
+ - 动画/过渡效果要求
55
+ 4. **输出设计还原检查清单**
56
+ - 标注需要特别注意的像素、间距、颜色值
57
+ - 记录设计师未明确但开发中会遇到的问题
58
+
59
+ ### 步骤 4:无设计图时的梳理
60
+
61
+ 如果没有设计图,执行以下子步骤:
62
+
63
+ 1. **明确目标用户和使用场景**
64
+ - 这个功能给谁用?在什么场景下用?
65
+ 2. **确认核心信息结构**
66
+ - 页面上必须展示哪些信息?
67
+ - 用户需要完成什么操作?
68
+ 3. **提供 2-3 种低保真方案**
69
+ - 可用文字描述或 ASCII / Markdown 表格示意布局
70
+ - 说明每种方案的适用场景和取舍
71
+ 4. **与用户确认后再细化**
72
+ - 不要直接开始写代码
73
+ - 先得到用户对方向和大致布局的认可
74
+
75
+ ### 步骤 5:调用 pandax-frontend-standards 检查规范
76
+
77
+ 在制定执行计划之前,先判断本次需求是否涉及前端规范问题:
78
+
79
+ - 是否需要新建组件?→ 检查组件目录、命名、Vue3 结构规范
80
+ - 是否需要新建页面?→ 检查 `views/` 目录组织、路由规范
81
+ - 是否需要对接 API?→ 检查 `services/`、`api/`、`types/` 分层规范
82
+ - 是否需要弹窗/抽屉?→ 检查容器选择规则
83
+ - 是否涉及中文文案?→ 检查文案排版规范
84
+
85
+ 如果涉及以上任何一项,先读取 `.trae/skills/pandax-frontend-standards/SKILL.md`,并依据其中的默认约定或项目 `docs/standards/` 文档,在后续执行计划中体现规范要求。
86
+
87
+ ### 步骤 6:调用 writing-plans 制定执行计划
88
+
89
+ 需求梳理和规范明确后,调用 `.trae/skills/writing-plans/SKILL.md`,将设计文档拆解为可执行的小任务:
90
+
91
+ - 每个任务 2-5 分钟可完成
92
+ - 明确文件路径
93
+ - 明确验证方式
94
+ - 明确需要遵循的 Pandax 规范条目
95
+
96
+ ### 步骤 7:用户确认后再执行
97
+
98
+ - 将需求梳理结果、规范依据和执行计划展示给用户
99
+ - 等待用户确认或调整
100
+ - 确认后再调用 executing-plans / subagent-driven-development / test-driven-development 等 skill 进入实现阶段
101
+
102
+ ## 输出模板
103
+
104
+ 建议将需求梳理结果保存到 `docs/requirements/` 或项目约定的位置:
105
+
106
+ ```markdown
107
+ # 需求名称
108
+
109
+ ## 背景与目标
110
+
111
+ ## 用户场景
112
+
113
+ ## 设计图状态
114
+ - [ ] 有设计图(附链接/文件路径)
115
+ - [ ] 无设计图,已确认低保真方案
116
+
117
+ ## 信息结构与交互
118
+
119
+ ## 组件拆分
120
+
121
+ ## 规范依据
122
+
123
+ 列出本次需求需要遵循的 Pandax 规范:
124
+
125
+ - 组件规范:`pandax-frontend-standards` 中 Vue3 组件结构约定
126
+ - 页面规范:`pandax-frontend-standards` 中 `views/` 目录组织约定
127
+ - API 规范:`pandax-frontend-standards` 中 `api/` + `services/` 分层约定
128
+ - 弹窗/抽屉规范:`pandax-frontend-standards` 中容器选择规则
129
+ - 文案规范:`pandax-frontend-chinese-copywriting`
130
+
131
+ (按实际需求勾选)
132
+
133
+ ## 待确认问题
134
+
135
+ ## 执行计划
136
+ ```
137
+
138
+ ## 禁止事项
139
+
140
+ - 不要在需求边界不清时直接写代码
141
+ - 不要假设设计图中的细节,不确定的要问设计师或用户
142
+ - 不要在没有用户确认的情况下,替用户决定交互方案