create-dwy 0.26.0 → 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 +10 -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 +7 -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/{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` 注明「无后端,不涉及库表」
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
/package/templates/ai-tools/{rules/Vue → skills/Vue/dwy-vue-development/references}/dwy-vue-core.md
RENAMED
|
File without changes
|
/package/templates/ai-tools/{rules/Vue → skills/Vue/dwy-vue-development/references}/dwy-vue-pinia.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|