create-dwy 0.25.3 → 0.27.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/CHANGELOG.md +20 -0
- package/package.json +1 -1
- package/src/sync-all.js +46 -2
- package/src/sync-plan.js +9 -1
- package/templates/ai-tools/CHANGELOG.md +17 -0
- package/templates/ai-tools/VERSION +1 -1
- package/templates/ai-tools/skills/Apple/dwy-apple-appkit/SKILL.md +17 -0
- package/templates/ai-tools/skills/Apple/dwy-apple-architecture/SKILL.md +12 -0
- package/templates/ai-tools/skills/Apple/dwy-apple-architecture/references/extraction.md +9 -0
- package/templates/ai-tools/{rules/iOS/dwy-apple-layering.md → skills/Apple/dwy-apple-architecture/references/layering.md} +2 -10
- package/templates/ai-tools/skills/Apple/dwy-apple-architecture/references/pitfalls.md +3 -0
- package/templates/ai-tools/skills/Apple/dwy-ios-development/SKILL.md +14 -0
- package/templates/ai-tools/skills/Apple/dwy-ios-development/references/appearance.md +6 -0
- package/templates/ai-tools/{rules/iOS/dwy-ios-layout-adaptation.md → skills/Apple/dwy-ios-development/references/layout.md} +0 -6
- package/templates/ai-tools/{rules/iOS/dwy-ios-pitfalls.md → skills/Apple/dwy-ios-development/references/pitfalls.md} +1 -9
- package/templates/ai-tools/skills/Apple/dwy-ios-development/references/presentations.md +11 -0
- package/templates/ai-tools/skills/Apple/dwy-macos-development/SKILL.md +14 -0
- package/templates/ai-tools/skills/Apple/dwy-macos-development/references/pitfalls.md +9 -0
- package/templates/ai-tools/skills/Apple/dwy-macos-development/references/presentations.md +5 -0
- package/templates/ai-tools/skills/Apple/dwy-macos-development/references/ui-adaptation.md +6 -0
- package/templates/ai-tools/skills/Apple/dwy-swift-development/SKILL.md +16 -0
- package/templates/ai-tools/{rules/iOS/dwy-swift-core.md → skills/Apple/dwy-swift-development/references/conventions.md} +2 -8
- package/templates/ai-tools/skills/Apple/dwy-swift-development/references/pitfalls.md +5 -0
- package/templates/ai-tools/skills/Apple/dwy-swift-development/references/presentations.md +8 -0
- package/templates/ai-tools/skills/Python/dwy-apple-notify/SKILL.md +24 -0
- package/templates/ai-tools/skills/Python/dwy-apple-notify/references/v0/0.1.6.md +81 -0
- package/templates/ai-tools/skills/Python/dwy-auth/SKILL.md +24 -0
- package/templates/ai-tools/skills/Python/dwy-auth/references/v0/0.2.0.md +163 -0
- package/templates/ai-tools/skills/Python/dwy-device-fingerprint/SKILL.md +19 -0
- package/templates/ai-tools/skills/Python/dwy-device-fingerprint/references/v0/0.1.1.md +90 -0
- package/templates/ai-tools/skills/Python/dwy-eapi/SKILL.md +1 -1
- package/templates/ai-tools/skills/Python/dwy-eapi/versions.yml +3 -3
- package/templates/ai-tools/skills/Python/dwy-email-notify/SKILL.md +19 -0
- package/templates/ai-tools/skills/Python/dwy-email-notify/references/v0/0.1.0.md +31 -0
- package/templates/ai-tools/skills/Python/dwy-notify/SKILL.md +24 -0
- package/templates/ai-tools/skills/Python/dwy-notify/references/v0/0.3.2.md +128 -0
- package/templates/ai-tools/skills/Python/dwy-payment/SKILL.md +19 -0
- package/templates/ai-tools/skills/Python/dwy-payment/references/v0/0.3.0.md +90 -0
- package/templates/ai-tools/skills/Python/dwy-python-api/SKILL.md +8 -0
- package/templates/ai-tools/skills/Python/dwy-python-architecture/SKILL.md +8 -0
- package/templates/ai-tools/skills/Python/dwy-python-development/SKILL.md +17 -0
- package/templates/ai-tools/{rules/Python → skills/Python/dwy-python-development/references}/dwy-python-base-lib.md +3 -3
- package/templates/ai-tools/skills/Python/dwy-webhooks/SKILL.md +24 -0
- package/templates/ai-tools/skills/Python/dwy-webhooks/references/v0/0.6.2.md +238 -0
- package/templates/ai-tools/skills/Python/dwy-wechatpay-notify/SKILL.md +19 -0
- package/templates/ai-tools/skills/Python/dwy-wechatpay-notify/references/v0/0.1.1.md +101 -0
- package/templates/ai-tools/skills/Vue/dwy-admin-kit/SKILL.md +12 -0
- package/templates/ai-tools/skills/Vue/dwy-admin-kit/references/v0/0.3.0.md +176 -0
- package/templates/ai-tools/skills/Vue/dwy-auth-web/SKILL.md +10 -0
- package/templates/ai-tools/skills/Vue/dwy-ekit/SKILL.md +2 -3
- package/templates/ai-tools/skills/Vue/dwy-eui/SKILL.md +1 -1
- package/templates/ai-tools/skills/Vue/dwy-eui/versions.yml +2 -2
- package/templates/ai-tools/skills/Vue/dwy-vue-architecture/SKILL.md +8 -0
- package/templates/ai-tools/skills/Vue/dwy-vue-development/SKILL.md +16 -0
- package/templates/ai-tools/{rules/Vue → skills/Vue/dwy-vue-development/references}/dwy-vue-base-lib.md +3 -3
- package/templates/ai-tools/skills//344/272/247/345/223/2010/345/210/2601/dwy-architecture/SKILL.md +6 -6
- package/templates/ai-tools/skills//345/217/221/345/270/203/345/217/221/347/211/210/dwy-commercial-sdk/SKILL.md +20 -0
- package/templates/ai-tools/skills//345/217/221/345/270/203/345/217/221/347/211/210/dwy-github-action-publish/SKILL.md +1 -1
- package/templates/ai-tools/skills//345/217/221/345/270/203/345/217/221/347/211/210/dwy-publish/SKILL.md +6 -2
- package/templates/ai-tools/skills//345/217/221/345/270/203/345/217/221/347/211/210/dwy-publish/references/android.md +2 -2
- package/templates/ai-tools/skills//345/217/221/345/270/203/345/217/221/347/211/210/dwy-publish/references/backend-deploy.md +1 -1
- package/templates/ai-tools/skills//345/217/221/345/270/203/345/217/221/347/211/210/dwy-publish/references/frontend-deploy.md +1 -1
- package/templates/ai-tools/skills//345/217/221/345/270/203/345/217/221/347/211/210/dwy-publish/references/generic-release.md +2 -2
- package/templates/ai-tools/skills//345/217/221/345/270/203/345/217/221/347/211/210/dwy-publish/references/harmony.md +2 -2
- package/templates/ai-tools/skills//345/217/221/345/270/203/345/217/221/347/211/210/dwy-publish/references/ios.md +2 -2
- package/templates/ai-tools/skills//351/200/232/347/224/250/dwy-dependency-choice/SKILL.md +2 -2
- package/templates/ai-tools/skills//345/217/221/345/270/203/345/217/221/347/211/210/dwy-sdk-spec/SKILL.md +0 -244
- package/templates/ai-tools/skills//345/217/221/345/270/203/345/217/221/347/211/210/dwy-sdk-spec/assets/files-whitelist-snippet.json +0 -22
- package/templates/ai-tools/skills//345/217/221/345/270/203/345/217/221/347/211/210/dwy-sdk-spec/assets/js-commercial.npmignore +0 -76
- package/templates/ai-tools/skills//345/217/221/345/270/203/345/217/221/347/211/210/dwy-sdk-spec/assets/python-commercial-MANIFEST.in +0 -37
- package/templates/ai-tools/skills//345/217/221/345/270/203/345/217/221/347/211/210/dwy-sdk-spec/assets/python-commercial.gitignore +0 -62
- package/templates/ai-tools/skills//345/217/221/345/270/203/345/217/221/347/211/210/dwy-sdk-spec/references/js-commercial-guide.md +0 -133
- package/templates/ai-tools/skills//345/217/221/345/270/203/345/217/221/347/211/210/dwy-sdk-spec/references/publish-blacklist.md +0 -106
- package/templates/ai-tools/skills//345/217/221/345/270/203/345/217/221/347/211/210/dwy-sdk-spec/references/python-commercial-guide.md +0 -147
- package/templates/ai-tools/skills//345/217/221/345/270/203/345/217/221/347/211/210/dwy-sdk-spec/references/sensitive-patterns.md +0 -112
- package/templates/ai-tools/skills//345/217/221/345/270/203/345/217/221/347/211/210/dwy-sdk-spec/scripts/check_comments.py +0 -260
- package/templates/ai-tools/skills//345/217/221/345/270/203/345/217/221/347/211/210/dwy-sdk-spec/scripts/check_js_publish.sh +0 -110
- package/templates/ai-tools/skills//345/217/221/345/270/203/345/217/221/347/211/210/dwy-sdk-spec/scripts/check_python_publish.sh +0 -171
- package/templates/ai-tools/skills//345/217/221/345/270/203/345/217/221/347/211/210/dwy-sdk-spec/scripts/detect_sdk.sh +0 -71
- package/templates/ai-tools/skills//345/217/221/345/270/203/345/217/221/347/211/210/dwy-sdk-spec/scripts/init_config.sh +0 -91
- package/templates/ai-tools/skills//345/217/221/345/270/203/345/217/221/347/211/210/dwy-semver/SKILL.md +0 -136
- package/templates/ai-tools/skills//345/217/221/345/270/203/345/217/221/347/211/210/dwy-semver/references/semver-spec.md +0 -70
- package/templates/ai-tools/skills//345/217/221/345/270/203/345/217/221/347/211/210/dwy-semver/scripts/bump.py +0 -137
- /package/templates/ai-tools/{rules/Python → skills/Python/dwy-python-api/references}/dwy-python-backend.md +0 -0
- /package/templates/ai-tools/{rules/Python → skills/Python/dwy-python-architecture/references}/dwy-python-layering.md +0 -0
- /package/templates/ai-tools/{rules/Python → skills/Python/dwy-python-development/references}/dwy-python-core.md +0 -0
- /package/templates/ai-tools/{rules/Python → skills/Python/dwy-python-development/references}/dwy-python-pitfalls.md +0 -0
- /package/templates/ai-tools/{rules/Python → skills/Python/dwy-python-development/references}/dwy-python-testing.md +0 -0
- /package/templates/ai-tools/{rules/Vue → skills/Vue/dwy-vue-architecture/references}/dwy-vue-layering.md +0 -0
- /package/templates/ai-tools/{rules/Vue → skills/Vue/dwy-vue-development/references}/dwy-vue-core.md +0 -0
- /package/templates/ai-tools/{rules/Vue → skills/Vue/dwy-vue-development/references}/dwy-vue-pinia.md +0 -0
- /package/templates/ai-tools/{rules/Vue → skills/Vue/dwy-vue-development/references}/dwy-vue-pitfalls.md +0 -0
- /package/templates/ai-tools/{rules/Vue → skills/Vue/dwy-vue-development/references}/dwy-vue-testing.md +0 -0
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
<!-- 来源:@dwydev/admin-kit@0.3.0 的 frontend/admin-shell/README.md;相对链接以原仓库为准。 -->
|
|
2
|
+
|
|
3
|
+
# @dwydev/admin-kit
|
|
4
|
+
|
|
5
|
+
Vue 3 **管理框架与通用组合组件**:模块装配菜单与路由,统一壳布局、页头、面包屑、列表状态和管理页面展示。不读取产品 API、store 或领域模型。
|
|
6
|
+
|
|
7
|
+
视觉底座用 [`@dwydev/eui`](https://www.npmjs.com/package/@dwydev/eui) 的 `EAdminLayout`,**不并入 eui**(eui 只提供 UI 原语)。
|
|
8
|
+
|
|
9
|
+
## 安装
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
pnpm add @dwydev/admin-kit
|
|
13
|
+
# peers
|
|
14
|
+
pnpm add vue vue-router @dwydev/eui @dwydev/ekit lucide-vue-next
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
宿主需接入 eui theme(`@dwydev/eui/theme`)与 Tailwind。若 shell 类名未生效,把 content 扫到:
|
|
18
|
+
|
|
19
|
+
```txt
|
|
20
|
+
./node_modules/@dwydev/admin-kit/dist/**/*.{js,mjs}
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
### Vite 跨仓联调注意(file: / 源码 alias)
|
|
24
|
+
|
|
25
|
+
若用 `file:` 或 alias 指 monorepo **源码**(而非已发布 dist),宿主 `vite.config` 必须 **dedupe 并钉死 `vue` / `vue-router`** 到应用自身 `node_modules`,否则会出现两份 vue-router,`useRoute()` inject 为 `undefined`,控制台页读 `.meta` 白屏:
|
|
26
|
+
|
|
27
|
+
```ts
|
|
28
|
+
resolve: {
|
|
29
|
+
dedupe: ['vue', 'vue-router'],
|
|
30
|
+
alias: {
|
|
31
|
+
vue: fileURLToPath(new URL('./node_modules/vue', import.meta.url)),
|
|
32
|
+
'vue-router': fileURLToPath(new URL('./node_modules/vue-router', import.meta.url)),
|
|
33
|
+
},
|
|
34
|
+
}
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
发 npm 后消费 dist、peer 由宿主安装时通常无此问题。
|
|
38
|
+
## 快速接入(壳组件模式,适合营销 + 控制台共存)
|
|
39
|
+
|
|
40
|
+
```ts
|
|
41
|
+
import { createAdminShell, defineAdminModule, asMenuIcon, AdminShell } from '@dwydev/admin-kit'
|
|
42
|
+
import { LayoutDashboard } from 'lucide-vue-next'
|
|
43
|
+
|
|
44
|
+
export const appShell = createAdminShell({
|
|
45
|
+
title: 'My App',
|
|
46
|
+
logo: '/logo.png',
|
|
47
|
+
collapsedStorageKey: 'myapp:admin:sidebar:collapsed',
|
|
48
|
+
routeMetaDefaults: { requiresAuth: true, layout: 'admin' },
|
|
49
|
+
modules: [
|
|
50
|
+
defineAdminModule({
|
|
51
|
+
id: 'dashboard',
|
|
52
|
+
order: 10,
|
|
53
|
+
menu: { key: '/dashboard', label: '概览', icon: asMenuIcon(LayoutDashboard) },
|
|
54
|
+
routes: [{
|
|
55
|
+
path: '/dashboard',
|
|
56
|
+
name: 'dashboard',
|
|
57
|
+
component: () => import('./pages/Dashboard.vue'),
|
|
58
|
+
meta: { title: '概览' },
|
|
59
|
+
}],
|
|
60
|
+
}),
|
|
61
|
+
// 隐藏菜单、仅保留直访路由
|
|
62
|
+
defineAdminModule({
|
|
63
|
+
id: 'hidden-page',
|
|
64
|
+
showInMenu: false,
|
|
65
|
+
routes: [{ path: '/internal', name: 'internal', component: () => import('./pages/Internal.vue'), meta: { title: '内部' } }],
|
|
66
|
+
}),
|
|
67
|
+
],
|
|
68
|
+
})
|
|
69
|
+
|
|
70
|
+
// router: [...publicRoutes, ...appShell.routes]
|
|
71
|
+
// layout:
|
|
72
|
+
// <AdminShell v-bind="appShell.shellProps">
|
|
73
|
+
// <template #header-extra>…用户菜单…</template>
|
|
74
|
+
// </AdminShell>
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
## 纯后台父子路由
|
|
78
|
+
|
|
79
|
+
首版以**扁平绝对 path + 宿主渲染 AdminShell** 为主(与 quant-cloud 一致)。
|
|
80
|
+
`path: '/'` + `children` 形态可在后续版本用 `createAdminShellRoute` 增强。
|
|
81
|
+
|
|
82
|
+
## 导出
|
|
83
|
+
|
|
84
|
+
| API | 说明 |
|
|
85
|
+
|-----|------|
|
|
86
|
+
| `createAdminShell` / `defineAdminModule` | 菜单 + 路由装配 |
|
|
87
|
+
| `AdminShell` | 布局组件 |
|
|
88
|
+
| `AdminPageHero` / `AdminBreadcrumb` / `AdminPageHeader` | 页头与面包屑 |
|
|
89
|
+
| `asMenuIcon` / `useAdminActiveKey` / `useAdminBreadcrumb` | 工具 |
|
|
90
|
+
|
|
91
|
+
## meta 约定
|
|
92
|
+
|
|
93
|
+
| 字段 | 说明 |
|
|
94
|
+
|------|------|
|
|
95
|
+
| `title` | 页头标题 |
|
|
96
|
+
| `description` | 页头副标题 |
|
|
97
|
+
| `menuKey` | 侧栏高亮(嵌套子页) |
|
|
98
|
+
| `pageHero` | 默认 true;false 时页面自管页头 |
|
|
99
|
+
| `breadcrumb` | 覆盖自动面包屑 |
|
|
100
|
+
|
|
101
|
+
## 不负责
|
|
102
|
+
|
|
103
|
+
鉴权守卫、角色模型、业务 header 内容、HTTP / Pinia。
|
|
104
|
+
|
|
105
|
+
## 0.3 通用管理组件
|
|
106
|
+
|
|
107
|
+
0.3 保留原根入口,新增以下显式子路径。EUI peer 下限为已修复标签关联与键盘输入操作的 2.7.2。
|
|
108
|
+
|
|
109
|
+
```ts
|
|
110
|
+
import { PagedTable, RecordSearch, RequestFeedback, ConfigFieldControl } from '@dwydev/admin-kit/components'
|
|
111
|
+
import { usePagedList } from '@dwydev/admin-kit/composables'
|
|
112
|
+
import { STATUS_TONE } from '@dwydev/admin-kit/status/tone'
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
`components` 还提供总览/统计卡、记录详情/代码/省略/日期展示、状态徽章、筛选器、图表容器及确认执行。`OverviewCard` 与 `WindowToggle` 旧名保持兼容;图表容器不引入 Plotly。密码字段和产品领域页面不在本包内。
|
|
116
|
+
|
|
117
|
+
加载样式并让 Tailwind 扫描实际安装的构建产物:
|
|
118
|
+
|
|
119
|
+
```css
|
|
120
|
+
@import '@dwydev/eui/theme';
|
|
121
|
+
@import '@dwydev/admin-kit/style.css';
|
|
122
|
+
@source '../node_modules/@dwydev/eui/dist/**/*.js';
|
|
123
|
+
@source '../node_modules/@dwydev/admin-kit/dist/**/*.js';
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
扫描路径以宿主 CSS 文件为基准。产品已有相应配置时只调整路径,不重复加载主题。
|
|
127
|
+
|
|
128
|
+
### 分页状态
|
|
129
|
+
|
|
130
|
+
`RecordSearch` 的 `label` 提供持久、视觉隐藏的输入标签;省略时沿用 `placeholder`。输入法合成回车不提交。用户手动删空或点击清空按钮时会先更新 `modelValue`,再各发一次 `clear` 与 `search`;`clear` 只用于通知,宿主统一在 `search` 中请求,避免重复加载。外部直接清空 `modelValue` 不触发搜索。
|
|
131
|
+
|
|
132
|
+
`PagedTable` 在实际横向溢出时显示滑动提示,并使滚动区可键盘聚焦。需要常驻的行操作列直接使用既有列属性 `{ key: 'actions', title: '操作', width: 80, fixed: 'right' }`;仅固定较窄的操作列,避免占满窄屏。列定义及 `#cell-*` 插槽仍原样转交 EUI。
|
|
133
|
+
|
|
134
|
+
`RecordEllipsis` 仅在文本实际截断时开启全文提示与键盘停靠,完整文本与占位符不增加 Tab 次数。
|
|
135
|
+
|
|
136
|
+
```ts
|
|
137
|
+
const list = usePagedList({
|
|
138
|
+
fetcher: async ({ page, pageSize, keyword }, request) => {
|
|
139
|
+
const result = await hostApi.list({ page, pageSize, keyword })
|
|
140
|
+
if (request.isCurrent()) hostSummary.value = result.summary
|
|
141
|
+
return { items: result.items, total: result.total }
|
|
142
|
+
},
|
|
143
|
+
})
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
`hostApi` 与 `hostSummary` 由产品提供。单参数 fetcher 继续兼容;`paged-list` 子路径与 `composables` 导出同一实现。
|
|
147
|
+
|
|
148
|
+
- `error` 保留原始失败对象;当前失败清空数据但不向调用方抛出,便于页面区分失败和零条记录。
|
|
149
|
+
- 每次 `load` 开始清旧错误,旧请求成功/失败/finally 不得覆盖新请求。
|
|
150
|
+
- `invalidate()` 停止 loading 并淘汰在途请求,保留数据、错误与筛选,允许之后再次加载。
|
|
151
|
+
- `reset()` 另清空数据/错误/关键词,恢复初始每页条数和排序。
|
|
152
|
+
- Vue 作用域销毁时自动 invalidate;底层 HTTP 不会被取消。
|
|
153
|
+
|
|
154
|
+
### 构建与实际制品验收
|
|
155
|
+
|
|
156
|
+
在仓库根执行:
|
|
157
|
+
|
|
158
|
+
```sh
|
|
159
|
+
pnpm --dir frontend/eui build
|
|
160
|
+
pnpm --dir frontend/ekit build
|
|
161
|
+
pnpm --dir frontend/admin-shell test
|
|
162
|
+
pnpm --dir frontend/admin-shell build
|
|
163
|
+
pnpm --dir frontend/admin-shell smoke:pack
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
smoke 将本轮实际 admin-kit/EUI/ekit tgz 安装到干净目录,检查根/子入口、类型、分页生命周期和 Vite 打包后的真实 EUI SSR;不依赖源码 alias 或共享仓库外的私有产物。它验证 Vue/Vite 消费模式,不承诺现有 ekit 可由原生 Node 无打包直接加载。其他固定依赖从官方 npm registry 安装,冷缓存需要网络。
|
|
167
|
+
|
|
168
|
+
两产品可暂保留 `@dwy/components` 转出口;本地准备脚本将本包 tgz 复制到各自 `.shared-packages`,不把临时绝对路径写进 package/lock。正式 registry 接入在另行发行后切换,制品验收通过不表示已经发布。
|
|
169
|
+
|
|
170
|
+
## 开发
|
|
171
|
+
|
|
172
|
+
```bash
|
|
173
|
+
cd frontend/admin-shell
|
|
174
|
+
pnpm test
|
|
175
|
+
pnpm build
|
|
176
|
+
```
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: dwy-auth-web
|
|
3
|
+
description: 使用或排查 @dwydev/auth-web 的接入和现有功能时使用,核实消费项目实际版本。
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# @dwydev/auth-web
|
|
7
|
+
|
|
8
|
+
管理员 Cookie 登录表单与会话;宿主提供 EConfigProvider、样式和成功导航。
|
|
9
|
+
|
|
10
|
+
先查项目实际依赖、锁文件与已安装包的声明文件和现有调用;版本范围不是安装版本。核实组件 props、初始化和生命周期后再使用。当前仓库清单是 0.1.0,但尚未核实对应发布标签;不能仅凭清单推断已发布包的内容。源码与接入文档在仓库 `frontend/auth-web`;先确认实际来源与版本一致。缺少证据时说明,不猜接口。项目未安装时不自行添加依赖。
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: dwy-ekit
|
|
3
|
-
description:
|
|
4
|
-
ekit_baseline_version: "0.8.0"
|
|
3
|
+
description: 使用或排查 @dwydev/ekit 的请求、存储、日期、校验、文件和 Vue 工具时使用;按项目实际版本查证能力。
|
|
5
4
|
---
|
|
6
5
|
|
|
7
6
|
# @dwydev/ekit 工具库使用指南
|
|
@@ -20,7 +19,7 @@ ekit 共 82 个对外导出。**本文档不再镜像函数签名** —— 因
|
|
|
20
19
|
|
|
21
20
|
### 第一步:定位 ekit 真实版本
|
|
22
21
|
|
|
23
|
-
|
|
22
|
+
先读消费方项目的实际安装包和锁文件确定版本,再核对 `package.json` 的依赖范围;范围不等于实际安装版本。未安装时不要假设该库已可用或自行增加依赖。
|
|
24
23
|
|
|
25
24
|
### 第二步:读 module-manifest.json(一次拿导出索引)
|
|
26
25
|
|
|
@@ -16,7 +16,7 @@ Vue 3 组件库(Reka-ui + shadcn 视觉 + Element Plus 式 API + Tailwind 4)
|
|
|
16
16
|
node -p "require('@dwydev/eui/package.json').version"
|
|
17
17
|
```
|
|
18
18
|
失败则读 `pnpm-workspace.yaml` catalog `'@dwydev/eui'`,再读 `package.json` 的 `dependencies` / `peerDependencies`。
|
|
19
|
-
|
|
19
|
+
声明的依赖范围不代表实际安装版本。仍无法确定时说明缺口,不按任一版本猜测 API。
|
|
20
20
|
|
|
21
21
|
2. **选线**:读同目录 `versions.yml`。`2.y.z` → `v2/`,`1.y.z` → `v1/`。目录不存在(例如装了 3.x 但还没有 `v3/`)→ 不要用 `v2` 冒充;按下面「读源码」拿该版本代码,并说明文档线未建。
|
|
22
22
|
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: dwy-vue-development
|
|
3
|
+
description: 开发、修改、测试或排查 Vue 应用、组件及组合式函数时使用;覆盖团队写法、常见踩坑和自有基础库发现。
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Vue 开发
|
|
7
|
+
|
|
8
|
+
先确认 Vue、TypeScript、构建工具及项目已有依赖。优先复用项目现有组件和工具,不自动新增自有依赖。涉及模块边界时使用可用的 dwy-vue-architecture。
|
|
9
|
+
|
|
10
|
+
- [Vue 规范](references/dwy-vue-core.md):组件、路由、样式及配置。
|
|
11
|
+
- [Pinia](references/dwy-vue-pinia.md):项目使用 Pinia 时参考。
|
|
12
|
+
- [测试](references/dwy-vue-testing.md):组件和业务测试。
|
|
13
|
+
- [踩坑](references/dwy-vue-pitfalls.md):响应式、路由和构建排查。
|
|
14
|
+
- [自有基础库](references/dwy-vue-base-lib.md):项目已使用时查 dwy-eui、dwy-ekit;管理后台和认证分别查 dwy-admin-kit、dwy-auth-web。
|
|
15
|
+
|
|
16
|
+
资料中的强制选型仅适用于已采用该栈或用户明确选择的新项目,现有项目遵循现有依赖和用户要求。
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
---
|
|
2
|
-
description:
|
|
2
|
+
description: 已使用 eui 和 ekit 的项目如何查找和复用基础能力
|
|
3
3
|
paths:
|
|
4
4
|
- "**/*.vue"
|
|
5
5
|
- "**/*.ts"
|
|
6
6
|
---
|
|
7
7
|
|
|
8
|
-
# Vue
|
|
8
|
+
# Vue 团队基础能力
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
本资料适用于已采用 eui 或 ekit 的项目;版本及公开接口以实际安装包和对应 Skill 为准。项目未采用时此处仅用于了解能力,不要求引入或替换现有实现。
|
|
11
11
|
|
|
12
12
|
`@dwydev/eui` 与 `@dwydev/ekit` 是团队内部 npm 基础库,分别覆盖 UI 组件层与通用工具层。
|
|
13
13
|
|
package/templates/ai-tools/skills//344/272/247/345/223/2010/345/210/2601/dwy-architecture/SKILL.md
CHANGED
|
@@ -39,19 +39,19 @@ description: "【dwy·技术架构】产品 0 到 1 设计与架构阶段。触
|
|
|
39
39
|
|
|
40
40
|
### 四层架构
|
|
41
41
|
|
|
42
|
-
|
|
42
|
+
层名、依赖边、分包树以对应技术栈的架构指引为准,本 skill **不另定义目录**:
|
|
43
43
|
|
|
44
|
-
- Python → `dwy-python-
|
|
45
|
-
- Vue → `dwy-vue-
|
|
44
|
+
- Python → `dwy-python-architecture`
|
|
45
|
+
- Vue → `dwy-vue-architecture`
|
|
46
46
|
- Android → `dwy-android-layering`
|
|
47
|
-
- iOS / macOS → `dwy-apple-
|
|
47
|
+
- iOS / macOS → `dwy-apple-architecture`
|
|
48
48
|
|
|
49
|
-
|
|
49
|
+
团队新项目参考对应架构指引;既有项目先核实当前依赖边和模块组织,避免擅自重构。
|
|
50
50
|
|
|
51
51
|
## 实现
|
|
52
52
|
[自写型]
|
|
53
53
|
1. 读项目 `.claude/rules/`,结合上方架构约束产出架构(项目 rules 优先,本约束兜底)
|
|
54
|
-
2.
|
|
54
|
+
2. 技术架构:先读可用的对应栈架构 Skill 或 Android layering 规则,再写分层、模块边界和选型理由;选型不确定处走 `AskUserQuestion`
|
|
55
55
|
3. **判有无后端**(读选型/PRD:有 API / 持久化 / 账户体系 → 有后端):
|
|
56
56
|
- **有后端** → 必出数据库设计,且**建模到位**:库表清单 / 字段(类型·约束·默认·可空) / 主外键关系 / 索引 / 必要的范式或反范式说明,与接口契约 schema 对齐
|
|
57
57
|
- **纯前端**(无后端)→ 跳过数据库设计,在 `技术架构.md` 注明「无后端,不涉及库表」
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: dwy-commercial-sdk
|
|
3
|
+
description: 商业 SDK 的接口、源码保护和交付产物检查。用户要求检查商业 SDK、商业 SDK 打包或检查其源码泄露风险时使用;不执行发布。
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# 商业 SDK 发布前检查
|
|
7
|
+
|
|
8
|
+
本 skill 适用于有商业保密或源码保护要求的 SDK,覆盖公开仓库、私有源和直接交付等分发方式。发版编排按项目约定执行;本检查不自行发布。
|
|
9
|
+
|
|
10
|
+
## 确定范围
|
|
11
|
+
|
|
12
|
+
1. 根据用户要求、项目文档、许可证、仓库公开状态、包配置和实际分发渠道识别 SDK、公开内容和需要保护的部分。不能根据“商业”二字推断源码必须保密;证据不足时询问用户。保护要求和交付范围存在歧义时先确认,再进行依赖该判断的检查。
|
|
13
|
+
2. 每次依据当前项目上下文判断,不创建或读取 `.dwy/sdk-spec/config.json`,也不修改用户的全局配置或凭据。
|
|
14
|
+
|
|
15
|
+
## 检查
|
|
16
|
+
|
|
17
|
+
- 检查公开接口、文档、注释及示例是否包含不应公开的内部地址、凭据、个人信息或实现细节;结合上下文判断误报,不输出完整秘密。
|
|
18
|
+
- 按确认的保护目标检查源码仓库、构建配置和分发渠道是否一致。编译、混淆和压缩只能提高还原成本,不能保证源码或算法无法恢复;公开仓库中的代码无法靠发布包配置保密。不要固定要求 Cython、minify 或排除所有源码。
|
|
19
|
+
- 检查实际拟交付的包或文件清单,核对源码、source map、调试文件、环境配置、凭据、许可证和运行必需资源是否符合交付范围。使用项目现有构建和检查工具;明确区分已有产物检查与实际发布产物验证。构建或打包前检查脚本副作用,不执行发布。
|
|
20
|
+
- 对发现的问题给出位置、风险、依据和修复建议;区分已验证、未验证和受环境限制的项目。按用户授权修复并重新检查,不把检查通过表述为绝对安全。
|
|
@@ -7,7 +7,7 @@ description: "GitHub Actions 打包分发避坑指南。先判断场景,再读
|
|
|
7
7
|
|
|
8
8
|
定位:使用 GitHub Actions 做跨平台构建、打包、发布时,先判定产物类型,再查对应配置避坑。
|
|
9
9
|
|
|
10
|
-
本 skill 只处理 CI 打包分发链路。通用发版流程(测试 / bump / changelog / tag)走 `dwy-publish
|
|
10
|
+
本 skill 只处理 CI 打包分发链路。通用发版流程(测试 / bump / changelog / tag)走 `dwy-publish`;纯 Python 包不需要 cibuildwheel。
|
|
11
11
|
|
|
12
12
|
实战来源:
|
|
13
13
|
|
|
@@ -11,9 +11,9 @@ description: "Use when 用户要求整理工程版本、更新 changelog、打
|
|
|
11
11
|
|
|
12
12
|
1. 读取仓库指令、结构、构建配置、版本来源、changelog、Git 状态和历史 tag,识别独立工程及共享版本边界。依据实际依赖判断共享代码影响;不要把每个子目录当成独立工程。优先遵循用户指定范围,分不清边界时询问。
|
|
13
13
|
2. 逐工程列出变更、版本来源、changelog 路径、tag 命名、版本类型、是否需要发布和 tag 触发器。检查上次对应 tag 后的提交及本次相关的未提交变更;不要把不属于本次的改动纳入提交。
|
|
14
|
-
3.
|
|
14
|
+
3. 对本次需要更新的工程,按版本决策规则确定版本级别、beta/rc 或正式版,按 `references/version-sync.md` 同步版本;按 `references/changelog.md` 更新该工程 changelog,每个版本条目必须包含明确版本号和日期,禁止使用 `Unreleased` 或“未发布”等占位标题,与是否发布无关;再按 `references/git-tag.md` 提交和打 tag。无变更工程不创建空版本。已覆盖本次代码的现有版本可复用,不重复升版或打 tag。
|
|
15
15
|
4. 确定是否发布:仅版本管理时结束;需要发布或部署时,读取项目约定及现有 CI、构建和部署配置,判断渠道和命令。遵守仓库的发布和授权规则,不套用固定发布方式;证据不足时询问。不根据分支判断版本类型或发布流程。
|
|
16
|
-
5. **部署上线闸门**:有新代码要上线,AI 自动检查并补齐对应工程的版本更新、changelog 和 tag,不逐项要求用户确认。自动校验 tag 指向包含全部拟部署代码、版本和 changelog
|
|
16
|
+
5. **部署上线闸门**:有新代码要上线,AI 自动检查并补齐对应工程的版本更新、changelog 和 tag,不逐项要求用户确认。自动校验 tag 指向包含全部拟部署代码、版本和 changelog 的提交,构建或部署使用该提交或其已验证产物。补齐并校验通过后继续部署;无法补齐或校验失败时停止部署并说明原因,不能以赶时间或已有构建替代。先完成项目要求的测试和适用的安全检查。
|
|
17
17
|
6. 推送 tag 前检查远端工作流及其他自动触发器:若推送会发布,先完成所有发布闸门并确认本次已获发布授权。仅要求版本管理而推送会触发未经授权的发布时,保留本地 tag 并报告,不能推送或擅自更改 workflow。
|
|
18
18
|
7. 已获授权且满足闸门时,按项目实际配置执行发布;需要 GitHub Actions 打包时读取 `../dwy-github-action-publish` 和相应平台参考文件。按 `references/monitor-notify.md` 监控并验证实际结果。
|
|
19
19
|
|
|
@@ -26,3 +26,7 @@ description: "Use when 用户要求整理工程版本、更新 changelog、打
|
|
|
26
26
|
- 平台:`references/frontend-deploy.md`、`references/backend-deploy.md`、`references/ios.md`、`references/android.md`、`references/harmony.md`、`references/generic-release.md`。
|
|
27
27
|
|
|
28
28
|
版本、tag 或发布目标存在歧义时先核实;不可识别时询问。删除或覆盖远端 tag / release 前必须获得用户明确授权。输出各工程的版本、changelog、tag、是否推送和实际发布验证结果。
|
|
29
|
+
|
|
30
|
+
## 版本决策
|
|
31
|
+
|
|
32
|
+
按项目版本约定和公开接口兼容性确定版本:不兼容变更升 major,向后兼容的新功能升 minor,向后兼容的问题修复升 patch;同时包含多类变更时取最高级别。升级某一位时将其右侧数字归零。0.x 阶段及预发布版本按项目已有约定处理;约定不明时与用户确认。根据发布用途选择正式版或预发布版,不依据分支判断。
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
|
|
10
10
|
## 版本(通用步,固化)
|
|
11
11
|
|
|
12
|
-
- `versionName` =
|
|
12
|
+
- `versionName` = 语义版本号,按发布 skill 的版本决策规则确定。
|
|
13
13
|
- 新上传构建的 `versionCode` 遵循渠道及项目的递增要求。
|
|
14
14
|
- 多文件同步见 `version-sync.md`。
|
|
15
15
|
|
|
@@ -28,5 +28,5 @@
|
|
|
28
28
|
|
|
29
29
|
- changelog → `changelog.md`(使用该工程既有路径和格式)
|
|
30
30
|
- tag → `git-tag.md`(每次 bump 必打;版本串与 changelog 标题一致)
|
|
31
|
-
-
|
|
31
|
+
- 按项目要求检查发布产物和敏感信息。
|
|
32
32
|
- 监控 + 结果 → `monitor-notify.md`
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
## 版本(通用步,固化)
|
|
6
6
|
|
|
7
|
-
-
|
|
7
|
+
- 按发布 skill 的版本决策规则确定版本;多文件同步见 `version-sync.md`(前端改 `package.json` 的 `version`)。
|
|
8
8
|
- 部署新代码必须先完成入口规定的版本、changelog 和 tag 闸门;仅重发或回滚相同已记录产物可复用原版本。
|
|
9
9
|
|
|
10
10
|
## build / deploy(项目步,不写死命令)
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
## 版本(通用步,固化)
|
|
6
6
|
|
|
7
|
-
-
|
|
7
|
+
- 按发布 skill 的版本决策规则确定版本;按 `version-sync.md` 同步工程实际维护的版本来源。
|
|
8
8
|
- 发布新代码必须先完成入口规定的版本、changelog 和 tag 闸门;仅重发或回滚相同已记录产物可复用原版本。
|
|
9
9
|
|
|
10
10
|
## build / publish(项目步,不写死命令)
|
|
@@ -24,5 +24,5 @@
|
|
|
24
24
|
|
|
25
25
|
- changelog → `changelog.md`(使用该工程既有路径和格式)
|
|
26
26
|
- tag → `git-tag.md`(每次 bump 必打;版本串与 changelog 标题一致;monorepo 例:`@dwydev/eui@2.2.3`、`create-dwy@0.16.1`)
|
|
27
|
-
-
|
|
27
|
+
- 按项目要求检查发布产物和敏感信息。
|
|
28
28
|
- 监控 + verify → `monitor-notify.md`(包仓库版本查询 / GitHub Release)
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
## 版本(通用步,固化)
|
|
6
6
|
|
|
7
|
-
- `oh-package.json5` 的 `version` =
|
|
7
|
+
- `oh-package.json5` 的 `version` = 语义版本号,按发布 skill 的版本决策规则确定。
|
|
8
8
|
- 多文件同步见 `version-sync.md`。
|
|
9
9
|
|
|
10
10
|
## build / publish(项目步,不写死命令)
|
|
@@ -22,5 +22,5 @@
|
|
|
22
22
|
|
|
23
23
|
- changelog → `changelog.md`(使用该工程既有路径和格式)
|
|
24
24
|
- tag → `git-tag.md`(每次 bump 必打;版本串与 changelog 标题一致)
|
|
25
|
-
-
|
|
25
|
+
- 按项目要求检查发布产物和敏感信息。
|
|
26
26
|
- 监控 + 结果 → `monitor-notify.md`
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
|
|
10
10
|
## 版本(通用步,固化)
|
|
11
11
|
|
|
12
|
-
- 语义版本号 `CFBundleShortVersionString
|
|
12
|
+
- 语义版本号 `CFBundleShortVersionString`,按发布 skill 的版本决策规则确定。
|
|
13
13
|
- 构建号 `CFBundleVersion` 遵循项目及发布渠道约定;重新上传构建时满足渠道的递增要求。
|
|
14
14
|
- 多文件同步见 `version-sync.md`。
|
|
15
15
|
|
|
@@ -29,5 +29,5 @@
|
|
|
29
29
|
|
|
30
30
|
- changelog → `changelog.md`(使用该工程既有路径和格式)
|
|
31
31
|
- tag → `git-tag.md`(每次 bump 必打;版本串与 changelog 标题一致)
|
|
32
|
-
-
|
|
32
|
+
- 按项目要求检查发布产物和敏感信息。
|
|
33
33
|
- 监控 + 结果 → `monitor-notify.md`
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: dwy-dependency-choice
|
|
3
|
-
description: "新增或升级运行时依赖、选版本、选基础镜像 / SDK、检查开源许可证时必须使用(即使用户没说 skill 名)。只选发布满 7 天的正式版;闭源商用禁止 GPL / AGPL / SSPL / 非商业许可。各栈查发布时间和隐私协议附录模板在本 skill。不负责本包自己的 SemVer
|
|
3
|
+
description: "新增或升级运行时依赖、选版本、选基础镜像 / SDK、检查开源许可证时必须使用(即使用户没说 skill 名)。只选发布满 7 天的正式版;闭源商用禁止 GPL / AGPL / SSPL / 非商业许可。各栈查发布时间和隐私协议附录模板在本 skill。不负责本包自己的 SemVer。已安装的旧版本不用为此升级。"
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# 依赖选型(版本 + 许可)
|
|
7
7
|
|
|
8
|
-
新装或新选依赖、base 镜像、SDK、字体、图标、素材、模型权重时读本 skill
|
|
8
|
+
新装或新选依赖、base 镜像、SDK、字体、图标、素材、模型权重时读本 skill。已安装的旧版本不用为此升级。本包自己的发版版本号按 `dwy-publish` 决策。
|
|
9
9
|
|
|
10
10
|
没有 skill 的工具只看这两份短 rule,和本 skill 冲突时以本 skill 为准:`rules/开发流程/dwy-dependency-freshness.md`、`rules/开发流程/dwy-oss-commercial-license.md`。
|
|
11
11
|
|