@teamix-evo/skills 0.4.0 → 0.5.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.
Files changed (48) hide show
  1. package/README.md +7 -3
  2. package/manifest.json +3 -2
  3. package/package.json +2 -2
  4. package/src/teamix-evo-code-opentrek/SKILL.md +12 -10
  5. package/src/teamix-evo-code-opentrek/api-layering.md +8 -5
  6. package/src/teamix-evo-code-opentrek/checklist.md +2 -0
  7. package/src/teamix-evo-code-opentrek/error-and-loading.md +38 -25
  8. package/src/teamix-evo-code-opentrek/file-structure.md +63 -54
  9. package/src/teamix-evo-code-opentrek/forms-and-validation.md +14 -12
  10. package/src/teamix-evo-code-opentrek/reuse-first.md +2 -0
  11. package/src/teamix-evo-code-opentrek/routing-and-codesplit.md +23 -21
  12. package/src/teamix-evo-code-opentrek/testing.md +32 -28
  13. package/src/teamix-evo-code-uni-manager/SKILL.md +12 -10
  14. package/src/teamix-evo-code-uni-manager/api-layering.md +2 -0
  15. package/src/teamix-evo-code-uni-manager/checklist.md +2 -0
  16. package/src/teamix-evo-code-uni-manager/error-and-loading.md +3 -1
  17. package/src/teamix-evo-code-uni-manager/file-structure.md +2 -0
  18. package/src/teamix-evo-code-uni-manager/forms-and-validation.md +2 -0
  19. package/src/teamix-evo-code-uni-manager/reuse-first.md +3 -1
  20. package/src/teamix-evo-code-uni-manager/routing-and-codesplit.md +3 -1
  21. package/src/teamix-evo-code-uni-manager/testing.md +2 -0
  22. package/src/teamix-evo-design-opentrek/SKILL.md +34 -41
  23. package/src/teamix-evo-design-opentrek/boundaries.md +22 -2
  24. package/src/teamix-evo-design-opentrek/brand.md +7 -7
  25. package/src/teamix-evo-design-opentrek/checklist.md +15 -13
  26. package/src/teamix-evo-design-opentrek/components.md +60 -11
  27. package/src/teamix-evo-design-opentrek/foundations.md +3 -0
  28. package/src/teamix-evo-design-opentrek/generation-flow.md +70 -12
  29. package/src/teamix-evo-design-opentrek/patterns/color-mapping.md +96 -0
  30. package/src/teamix-evo-design-opentrek/patterns/dashboard.md +2 -0
  31. package/src/teamix-evo-design-opentrek/patterns/detail-page.md +10 -9
  32. package/src/teamix-evo-design-opentrek/patterns/form-page.md +35 -32
  33. package/src/teamix-evo-design-opentrek/patterns/list-page.md +80 -47
  34. package/src/teamix-evo-design-opentrek/patterns/page-types.md +17 -12
  35. package/src/teamix-evo-design-opentrek/patterns/sidebar.md +122 -0
  36. package/src/teamix-evo-design-opentrek/philosophy.md +7 -5
  37. package/src/teamix-evo-design-uni-manager/SKILL.md +17 -26
  38. package/src/teamix-evo-design-uni-manager/boundaries.md +4 -1
  39. package/src/teamix-evo-design-uni-manager/components.md +3 -0
  40. package/src/teamix-evo-design-uni-manager/foundations.md +3 -0
  41. package/src/teamix-evo-design-uni-manager/generation-flow.md +43 -7
  42. package/src/teamix-evo-design-uni-manager/patterns/dashboard.md +3 -1
  43. package/src/teamix-evo-design-uni-manager/patterns/detail-page.md +41 -12
  44. package/src/teamix-evo-design-uni-manager/patterns/form-page.md +49 -12
  45. package/src/teamix-evo-design-uni-manager/patterns/list-page.md +44 -11
  46. package/src/teamix-evo-design-uni-manager/patterns/page-types.md +3 -1
  47. package/src/teamix-evo-design-uni-manager/philosophy.md +3 -1
  48. package/src/teamix-evo-manage/SKILL.md +74 -66
@@ -1,5 +1,7 @@
1
1
  # Page Types — 5 种标准页面类型
2
2
 
3
+ > ⚠️ **Prerequisites**: 你必须由 [generation-flow.md](../generation-flow.md) Step 2 引导到这里。若未完成 Step 1(需求确认),请先返回。
4
+
3
5
  > AI 生成页面前**必须先识别页面类型**,再选择对应模式。本文档是 generation-flow.md Step 2 的核心输入。
4
6
 
5
7
  ---
@@ -66,7 +68,7 @@
66
68
 
67
69
  ## 5. Dashboard
68
70
 
69
- > **完整规范见 [`dashboard.md`](./dashboard.md)** — 标准结构 + 设计要点(关键指标字号、StatCard 数量、chart-* 色彩消费顺序)。
71
+ > **完整规范见 [`dashboard.md`](./dashboard.md)** — 标准结构 + 设计要点(关键指标字号、StatCard 数量、chart-\* 色彩消费顺序)。
70
72
 
71
73
  ---
72
74
 
@@ -118,22 +120,25 @@
118
120
 
119
121
  ### 6.4 CRUD 流转速查
120
122
 
121
- | 意图 | 关键词 | 目标页 | 完成后 |
122
- | -------- | -------------- | ------------------------- | -------------- |
123
- | 查看列表 | 列表/查询/检索 | ListPage | — |
124
- | 查看详情 | 详情/查看/信息 | DetailPage | 可返回列表 |
125
- | 新建 | 新建/创建/新增 | FormPage(新建) | 保存后返回列表 |
126
- | 编辑 | 编辑/修改 | FormPage(编辑)或 Drawer | 保存后返回原页 |
127
- | 删除 | 删除/移除 | Dialog(输入确认) | 确认后刷新列表 |
128
- | 复制 | 复制/克隆 | FormPage(复制新建) | 保存后返回列表 |
123
+ | 意图 | 关键词 | 目标页 | 完成后 |
124
+ | -------- | -------------- | ----------------------- | -------------- |
125
+ | 查看列表 | 列表/查询/检索 | ListPage | — |
126
+ | 查看详情 | 详情/查看/信息 | DetailPage | 可返回列表 |
127
+ | 新建 | 新建/创建/新增 | FormPage(新建) | 保存后返回列表 |
128
+ | 编辑 | 编辑/修改 | FormPage(编辑)或 Drawer | 保存后返回原页 |
129
+ | 删除 | 删除/移除 | Dialog(输入确认) | 确认后刷新列表 |
130
+ | 复制 | 复制/克隆 | FormPage(复制新建) | 保存后返回列表 |
129
131
 
130
132
  ---
131
133
 
132
134
  ## 7. 通用结构铁律(所有页面类型共享)
133
135
 
134
- 1. **PageContainer ContentWrapperCard(白卡容器)业务组件**
135
- - 业务组件**必须**经白卡容器包裹,禁止直接放在 ContentWrapper
136
- 2. **Card(白卡容器) 不可嵌套** 白卡是单例
136
+ 1. **`<PageShell background="muted" sidebar={<OpSidebar/>}><OpPageContainer header={<PageHeader/>}> 业务组件`**
137
+ - PageShell 来自 `@/components/ui/page-shell`(三明治壳;opentrek 主区背景用 `muted` 灰底,无 header slot)
138
+ - OpPageContainer 来自 `@/components/business/op-page-container`(padding `py-5 pr-5`,**内置无边框大白卡** `bg-card rounded-2xl`)
139
+ - PageHeader 来自 `@/components/ui/page-header`(本身无 padding,由 OpPageContainer 内白卡统一管)
140
+ - 业务组件(ListCard 网格 / DataTable / Form 等)直接作为 OpPageContainer children,**不要再手动包 `<Card>`** — 容器已经是白卡
141
+ 2. **主区白卡单例** — OpPageContainer 已内置 `bg-card rounded-2xl` 大白卡,主区内**不要再手写 `<Card>`** 包整个 PageHeader / DataTable / Form / FieldGroup(嵌套违反白卡单例)。卡片网格内的 ItemCard / 表单分区的子 Card 是局部容器,不算"嵌套主区白卡"
137
142
  3. **页头不可重复** — 子页面禁止自建 header,PageHeader 由框架管控
138
143
  4. **不在内容区直接放 Form 整体** — 必须用 FieldGroup + Field(详见 boundaries.md C7)
139
144
  5. **不在 ListPage / DetailPage 内嵌 Chart 整体** — 图表归属 Dashboard
@@ -0,0 +1,122 @@
1
+ # Sidebar Pattern — OpenTrek 侧边栏统一规范
2
+
3
+ > ⚠️ **Prerequisites**: 你必须已在 [generation-flow.md](../generation-flow.md) Step 3 确认布局包含侧边栏,或由翻新/验证路径引导到这里。
4
+
5
+ > AI 生成或翻新页面时必须引用本规则。所有色值与尺寸通过 token 引用,禁止硬编码。Token 真值见 `tokens/tokens.theme.css`。
6
+
7
+ ---
8
+
9
+ ## 1. 宽度与定位
10
+
11
+ | 状态 | Token | 业务含义 |
12
+ | ------ | --------------------------- | ------------------------------- |
13
+ | 展开态 | `--layout-sidebar-width` | 侧边栏展开宽度 |
14
+ | 收起态 | `--sidebar-collapsed-width` | 仅图标,居中对齐于中轴线 |
15
+ | 顶部条 | `--topbar-height` | 与 Sidebar 顶部对齐,区分品牌区 |
16
+
17
+ **布局规则**:
18
+
19
+ - Sidebar 走 `position: fixed; top: 0; left: 0; bottom: 0; z-index: 100`
20
+ - 主内容区通过 `margin-left: var(--layout-sidebar-width)` 补偿
21
+ - **禁止**:把 Sidebar + 主内容区放进一个 flex 容器(不可预期的滚动行为)
22
+
23
+ ---
24
+
25
+ ## 2. 结构变体(2 选 1,按信息架构层级)
26
+
27
+ ### 2.1 三级结构(默认)
28
+
29
+ 适用:信息架构需要 3 层归类(顶层业务域 / 中层主导航 / 底层细分)。
30
+
31
+ ```
32
+ aside.sidebar
33
+ ├─ div.sidebar-header ← 品牌区
34
+ ├─ div.sidebar-content ← 滚动容器
35
+ │ ├─ div.sidebar-group-label ← 分组标题(可重复)
36
+ │ ├─ ul.sidebar-menu
37
+ │ │ └─ li > a.sidebar-menu-item
38
+ │ └─ ul.sidebar-sub-menu ← 主菜单展开后显示
39
+ │ └─ li > a.sidebar-menu-item
40
+ ├─ div.sidebar-divider
41
+ └─ div.sidebar-footer
42
+ ```
43
+
44
+ ### 2.2 二级结构(v4.1 新增)
45
+
46
+ 适用:主菜单项语义对等,无需分组标题归类。
47
+
48
+ - **禁止** `div.sidebar-group-label`
49
+ - 所有主菜单项放进同一个 `ul.sidebar-menu`
50
+ - 子菜单项与主菜单项**文字 x 坐标对齐**(同列),层级关系由展开箭头 + 字号 + 背景色表现,**不**通过左缩进
51
+ - 子菜单项不带 `.item-icon`,只有文字
52
+
53
+ ### 2.3 选型决策
54
+
55
+ | 信息架构层级深度 | 选用 |
56
+ | ---------------- | ---------- |
57
+ | 3 层归类 | threeLevel |
58
+ | 2 层归类 | twoLevel |
59
+
60
+ > 与菜单项**个数无关**,只看信息架构。
61
+
62
+ ---
63
+
64
+ ## 3. 颜色映射(v4.1 品牌化)
65
+
66
+ | 槽位 | 用途 |
67
+ | ----------------------------------- | ------------------------------------------- |
68
+ | `--color-sidebar` | 侧边栏背景 |
69
+ | `--color-sidebar-foreground` | 默认文字 |
70
+ | `--color-sidebar-active` | 选中项背景(v4.1 走灰色,区别 hover) |
71
+ | `--color-sidebar-active-foreground` | 选中项文字(OpenTrek 蓝) |
72
+ | `--color-sidebar-hover` | hover 态背景 |
73
+ | `--color-sidebar-title` | sidebar-group-label 文字 |
74
+ | `--color-sidebar-item-muted` | 二级文字 / 次要项 |
75
+ | `--color-sidebar-primary` | 品牌强调(`#0055EE`)— 高亮 logo / 选中态等 |
76
+ | `--color-sidebar-border` | 分隔线 |
77
+ | `--color-sidebar-ring` | 焦点圈 |
78
+
79
+ **禁止**:
80
+
81
+ - 直接用 `bg-blue-600` / `text-gray-500` 这类原始 Tailwind 色
82
+ - 在 sidebar 内消费 `--color-primary` / `--color-foreground`(应走 sidebar 命名空间)
83
+
84
+ ---
85
+
86
+ ## 4. 收起态行为
87
+
88
+ - 宽度 `--sidebar-collapsed-width`,`overflow: visible`(支持 flyout 浮层溢出)
89
+ - 滚动能力下移到 `.sidebar-content`(`overflow-y: auto; overflow-x: hidden`)
90
+ - 仅显示图标,隐藏所有文字(label / group title / count / expand-icon)
91
+ - 选中态用 `--color-sidebar-active` 灰色背景,**不**显示左侧高亮条
92
+ - 过渡走 `width var(--duration-normal) var(--easing-ease)`
93
+ - 菜单项 40×40px,`border-radius: var(--radius-md)`,`li { display: flex; justify-content: center }` 保证居中于中轴线
94
+
95
+ ---
96
+
97
+ ## 5. Footer / Header 槽位
98
+
99
+ | 槽位 | 内容 |
100
+ | ---------------- | ----------------------------------------------------- |
101
+ | sidebar-header | 展开态:品牌 logo;收起态:方形 logo +hover 展开 icon |
102
+ | sidebar-avatar | 用户头像 |
103
+ | sidebar-username | 用户名(收起态隐藏) |
104
+ | sidebar-more | 更多操作触发器 |
105
+
106
+ ---
107
+
108
+ ## 6. 禁止清单(硬约束)
109
+
110
+ - [ERROR] 扁平化结构(直接 `<a>` 挂在 `nav`/`div` 下,无 `ul > li` 包裹)
111
+ - [ERROR] Sidebar 整体使用 flex 布局(必须 `fixed` 定位)
112
+ - [ERROR] 省略 `sidebar-content` 滚动容器
113
+ - [ERROR] twoLevel 变体出现 `sidebar-group-label`
114
+ - [ERROR] 无子菜单的菜单项出现 expand-icon 或 `data-toggle`(expand-icon 仅出现在有 `sidebar-sub-menu` 的主菜单项)
115
+ - [WARN] 在 sidebar 里直接消费 `--color-primary`(应走 `--color-sidebar-primary`)
116
+ - [WARN] 二级结构子菜单文字起点低于主菜单文字 x(隐藏层级关系)
117
+
118
+ ---
119
+
120
+ ## 7. 引用关系
121
+
122
+ 本规则是 OpenTrek sidebar 的 **single source of truth**。其他 skill 文件(page-frame / common-components / 子技能)须 `$ref` 本文件,禁止重复定义或冲突覆写。
@@ -1,5 +1,7 @@
1
1
  # 设计哲学 · OpenTrek
2
2
 
3
+ > ⚠️ **何时读本文件**: [generation-flow.md](./generation-flow.md) Step 1 强制要求读取。本文件建立"为什么这么做"的认知基础,是后续所有决策的裁判依据。
4
+
3
5
  > 回答**"为什么这么做"**。具体规则见 [boundaries.md](./boundaries.md) / [foundations.md](./foundations.md)。
4
6
 
5
7
  ---
@@ -70,11 +72,11 @@ OpenTrek 是面向**云资源管理 / 企业级控制台**的设计语言。用
70
72
 
71
73
  ## 3. 原则冲突示例
72
74
 
73
- | 场景 | 候选 | 选 | 理由 |
74
- | ------------------------ | ----------------------------------------------------- | -- | --------------------------------- |
75
- | 删除按钮要不要二次确认? | A. 直接删除(效率)<br>B. AlertDialog 确认(安全) | B | Safety > Efficiency |
76
- | 创建按钮浮动还是固定? | A. 跟随滚动浮动(醒目)<br>B. 固定右下角(一致) | B | Predictability > Clarity |
77
- | 状态用什么表达? | A. 仅颜色(简洁)<br>B. 颜色 + 图标 + 文字 | B | Clarity > Efficiency(视觉简洁) |
75
+ | 场景 | 候选 | 选 | 理由 |
76
+ | ------------------------ | -------------------------------------------------- | --- | -------------------------------- |
77
+ | 删除按钮要不要二次确认? | A. 直接删除(效率)<br>B. AlertDialog 确认(安全) | B | Safety > Efficiency |
78
+ | 创建按钮浮动还是固定? | A. 跟随滚动浮动(醒目)<br>B. 固定右下角(一致) | B | Predictability > Clarity |
79
+ | 状态用什么表达? | A. 仅颜色(简洁)<br>B. 颜色 + 图标 + 文字 | B | Clarity > Efficiency(视觉简洁) |
78
80
 
79
81
  ---
80
82
 
@@ -17,38 +17,29 @@ description: |
17
17
 
18
18
  <!-- teamix-evo:managed:start id="core" -->
19
19
 
20
- ## 意图路由
20
+ ## ⚠️ 执行协议(MANDATORY — 跳步即失败)
21
21
 
22
- 收到页面相关请求时,按意图分流:
22
+ 收到页面相关请求时,**必须先识别意图,再进入对应的唯一执行路径**。不允许跳过路径中的任何步骤。
23
23
 
24
- | 意图 | 识别关键词 | 执行路径 |
25
- | -------- | ----------------------------------------------------------------- | ------------------------------------------- |
26
- | **生成** | "生成" / "创建" / "新建" / "设计一个" / "做一个" / "起一个控制台" | → generation-flow.md 六步流程 |
27
- | **翻新** | "改造" / "升级" / "翻新" / "对齐规范" / "重新生成" | → generation-flow.md §翻新路径 |
28
- | **验证** | "检查" / "验证" / "评估" / "是否符合规范" | → checklist.md 逐项对照 |
29
- | **查询** | "token" / "色值" / "间距" / "组件尺寸" / "圆角" | → foundations.md(MCP `tokens_*` 工具规划中) |
24
+ ### 意图路由
30
25
 
31
- ## 三阶段 Dispatch
26
+ | 意图 | 识别关键词 | 唯一执行路径 |
27
+ | -------- | ----------------------------------------------------------------- | ----------------------------------------------------------------------- |
28
+ | **生成** | "生成" / "创建" / "新建" / "设计一个" / "做一个" / "起一个控制台" | **必须完整执行** [generation-flow.md](./generation-flow.md) §1 六步门控 |
29
+ | **翻新** | "改造" / "升级" / "翻新" / "对齐规范" / "重新生成" | **必须完整执行** [generation-flow.md](./generation-flow.md) §2 翻新路径 |
30
+ | **验证** | "检查" / "验证" / "评估" / "是否符合规范" | **必须完整执行** [generation-flow.md](./generation-flow.md) §3 验证路径 |
31
+ | **查询** | "token" / "色值" / "间距" / "组件尺寸" / "圆角" | → [foundations.md](./foundations.md)(MCP `tokens_*` 工具规划中) |
32
32
 
33
- ```
34
- 阶段 ① 确定页面类型
35
- → 读 patterns/page-types.md 决策树(含 Console Home / 一致性三件套)
36
- → 读 components.md 确认组件集(含 um-topbar 实物归属)
33
+ ### 不可跳过的前置读取
37
34
 
38
- 阶段 匹配子类型 + 布局
39
- - List / Detail / Form → patterns/{list|detail|form}-page.md
40
- - Dashboard / Console → patterns/dashboard.md
41
- - Dialog/Sheet/Drawer → 视为复合组件(非页面);走 components.md §3.1 选型
42
- + boundaries.md F8 / F9 / S7 / C2 / FF1-FF4 + UM1-UM3
43
- → 读 patterns/page-types.md §6 确认页间流转
44
- → 涉及租户/项目/区域切换、跨云资源旅程时读 flows.md(A 资源查找 / B 创建 / C 异常 / D 批量 / E 上下文切换)
35
+ 无论哪种意图,进入 generation-flow.md 后**每个 Step 都有明确的 MUST READ 文件清单**。AI 不得凭"已有知识"跳过任何文件读取 — 每次任务必须重新读取,因为文件内容可能已更新。
45
36
 
46
- 阶段 ③ 生成代码
47
- → 读 foundations.md (hybridcloud Token 约束 — 锐利圆角 / B50 / 8 档间距)
48
- boundaries.md (硬规则 38 + UM1~UM3 专有云增量)
49
- MCP get_component_meta(id) 查组件 Props
50
- 对照 checklist.md 自检(含 doc 15/16/20 一致性自检)
51
- ```
37
+ ### 禁止行为
38
+
39
+ - 跳过 generation-flow.md 直接写代码
40
+ - 只读 patterns/\*.md 不读 philosophy.md / boundaries.md / foundations.md
41
+ - 选择性读取("这个文件我已经知道内容了")
42
+ - ❌ 把 SKILL.md 文件索引当作"我可以只挑一个读"的菜单
52
43
 
53
44
  ## 文件索引
54
45
 
@@ -1,6 +1,9 @@
1
1
  # 硬约束 · Boundaries
2
2
 
3
- > 本文件列出所有"AI 生成页面 / 组件代码时**不能做什么**"的硬规则。共 41 条规则分 6 组:
3
+ > ⚠️ **何时读本文件**: [generation-flow.md](./generation-flow.md) Step 6(自检)、翻新路径、验证路径均强制要求完整读取本文件。
4
+ > 本文件是硬规则的**唯一真值**,不得跳过。
5
+
6
+ > 本文件列出所有“AI 生成页面 / 组件代码时**不能做什么**”的硬规则。共 41 条规则分 6 组:
4
7
  >
5
8
  > - **F1-F10**:禁止项(视觉与 token 层面)
6
9
  > - **FF1-FF4**:表单专属硬约束(错误信息、必填、状态色块、Card 嵌套)
@@ -1,5 +1,8 @@
1
1
  # Components — 选型决策与组合规则
2
2
 
3
+ > ⚠️ **Prerequisites**: 你必须已完成 [generation-flow.md](./generation-flow.md) Step 1–3(已确定页面类型 + 子类型 + 区域骨架)后才能读本文件。
4
+ > 若未完成前置步骤,请先返回 [generation-flow.md](./generation-flow.md) 从 Step 1 开始。
5
+
3
6
  > **本文档只回答"用什么组件、怎么搭配",不写具体 Props / Examples / import 路径。**
4
7
  > 组件 API、Props、示例代码通过 MCP `get_component_meta` 实时查询;可用列表通过 `list_components` / `find_components` 查询。
5
8
 
@@ -1,5 +1,8 @@
1
1
  # Foundations — Uni-Manager 视觉地基
2
2
 
3
+ > ⚠️ **何时读本文件**: [generation-flow.md](./generation-flow.md) Step 5(视觉填充)强制要求完整读取。
4
+ > 任何色彩、间距、字号、圆角、阴影、动效必须基于本文件的 Token 定义,不得凭记忆生成。
5
+
3
6
  > 排版 / 色彩 / 间距 / 圆角 / 阴影 / 动效 在 Uni-Manager 下的系统化使用规范。
4
7
  > 价值锚:**hybridcloud 锐利风 · 高密度信息可读性 · token-first**。
5
8
  > 真值源:`@teamix-evo/tokens/variants/uni-manager/theme.css`(Tailwind v4 `@theme` + `[data-theme='uni-manager']` scoped CSS)。
@@ -1,6 +1,6 @@
1
1
  # 生成 / 翻新 / 验证流程
2
2
 
3
- > AI 在执行页面级任务时,按本文件的门控顺序执行。每一步都有明确的输入输出,跳步会导致结果不可控。
3
+ > ⚠️ **本文件是页面级任务的唯一执行路径。每一步都有 GATE 门禁和 MUST READ 文件清单。** > **跳步 = 产出不合规。AI 不得凭"已有知识"省略任何文件读取。**
4
4
 
5
5
  ---
6
6
 
@@ -14,7 +14,11 @@ Step 1 需求确认 → Step 2 类型识别 → Step 3 子类型 + 布局
14
14
  Step 6 自检 ← Step 5 视觉填充 ← Step 4 组件挑选
15
15
  ```
16
16
 
17
- ### Step 1 · 最小 quorum + 默认值
17
+ > **每步必须产出明确输出后才能进入下一步(GATE 条件)。**
18
+
19
+ ## Step 1 · 最小 quorum + 默认值
20
+
21
+ 📖 **MUST READ**: [philosophy.md](./philosophy.md)(理解"为什么这么做" — 四大原则优先级)+ [brand.md](./brand.md)(视觉调性 + 文案语气基调)
18
22
 
19
23
  **只有两个信息缺一不可**(最小 quorum,缺则反问):
20
24
 
@@ -39,7 +43,11 @@ Step 6 自检 ← Step 5 视觉填充 ← Step 4 组件挑选
39
43
 
40
44
  **输出**:页面类型 + 资源实体 + 一句话场景假设("假设是平台管理员的实例 CRUD 列表,多云资源默认显示 cloud Badge,如有偏差请指正")。
41
45
 
42
- ### Step 2 · 页面类型识别
46
+ ## Step 2 · 页面类型识别
47
+
48
+ 🚧 **GATE**: Step 1 必须已产出"页面类型 + 资源实体 + 场景假设"
49
+
50
+ 📖 **MUST READ**: [patterns/page-types.md](./patterns/page-types.md) §决策树 + §Zone Map
43
51
 
44
52
  根据 [patterns/page-types.md](./patterns/page-types.md) §决策树匹配类型:
45
53
 
@@ -55,7 +63,11 @@ Step 6 自检 ← Step 5 视觉填充 ← Step 4 组件挑选
55
63
 
56
64
  **输出**:页面类型 ID(`ListPage` / `DetailPage` / `Console` / ...)。
57
65
 
58
- ### Step 3 · 子类型识别 + 布局选择
66
+ ## Step 3 · 子类型识别 + 布局选择
67
+
68
+ 🚧 **GATE**: Step 2 必须已产出"页面类型 ID"
69
+
70
+ 📖 **MUST READ**: 对应的 `patterns/{type}-page.md` + [flows.md](./flows.md)(涉及租户/区域切换时)
59
71
 
60
72
  读对应 `patterns/{type}-page.md`:
61
73
 
@@ -66,7 +78,11 @@ Step 6 自检 ← Step 5 视觉填充 ← Step 4 组件挑选
66
78
 
67
79
  **输出**:子类型 ID + 区域骨架(参照 [patterns/page-types.md](./patterns/page-types.md) §Zone Map)。
68
80
 
69
- ### Step 4 · 组件挑选
81
+ ## Step 4 · 组件挑选
82
+
83
+ 🚧 **GATE**: Step 3 必须已产出"子类型 ID + 区域骨架"
84
+
85
+ 📖 **MUST READ**: [components.md](./components.md) §0 兜底铁律 + §1 双层架构 + §3 决策树 + §5 拼装配方
70
86
 
71
87
  读 [components.md](./components.md) §选型决策树:
72
88
 
@@ -78,7 +94,11 @@ Step 6 自检 ← Step 5 视觉填充 ← Step 4 组件挑选
78
94
 
79
95
  **输出**:组件清单 + 每个组件的关键 Props。
80
96
 
81
- ### Step 5 · 视觉填充(Token 绑定)
97
+ ## Step 5 · 视觉填充(Token 绑定)
98
+
99
+ 🚧 **GATE**: Step 4 必须已产出"组件清单 + 每个组件的关键 Props"
100
+
101
+ 📖 **MUST READ**: [foundations.md](./foundations.md) 全文(§1 Token 优先级 + §4 色彩 + §5 圆角 + §6 阴影 + §7 动效)+ [brand.md](./brand.md) §1 视觉五维(圆角/配色/密度/阴影/焦点风格对齐)
82
102
 
83
103
  读 [foundations.md](./foundations.md),所有色彩、间距、字号、圆角、阴影、动效**必须**使用 Token:
84
104
 
@@ -95,7 +115,11 @@ Step 6 自检 ← Step 5 视觉填充 ← Step 4 组件挑选
95
115
 
96
116
  **输出**:含 Token 引用的可执行代码 / HTML。
97
117
 
98
- ### Step 6 · 自检
118
+ ## Step 6 · 自检
119
+
120
+ 🚧 **GATE**: Step 5 必须已产出"含 Token 引用的可执行代码"
121
+
122
+ 📖 **MUST READ**: [boundaries.md](./boundaries.md) 全文(41+ 条硬规则)+ [checklist.md](./checklist.md) 全文
99
123
 
100
124
  对照 [checklist.md](./checklist.md) 12+ 项逐项验证:
101
125
 
@@ -110,6 +134,12 @@ Step 6 自检 ← Step 5 视觉填充 ← Step 4 组件挑选
110
134
 
111
135
  适用关键词:**"改造 / 升级 / 翻新 / 对齐规范 / 重新生成"**。
112
136
 
137
+ 📖 **MUST READ** (全部必读,不得省略):
138
+
139
+ 1. [boundaries.md](./boundaries.md) — 硬规则真值
140
+ 2. [foundations.md](./foundations.md) — Token 真值
141
+ 3. [components.md](./components.md) — 组件选型
142
+
113
143
  ```
114
144
  1. 读取目标页面源码
115
145
  2. 扫描违规项(按 boundaries.md F1-F10 + S1-S8 + UM1-UM3)
@@ -132,6 +162,12 @@ Step 6 自检 ← Step 5 视觉填充 ← Step 4 组件挑选
132
162
 
133
163
  适用关键词:**"检查 / 验证 / 评估 / 是否符合规范"**。
134
164
 
165
+ 📖 **MUST READ** (全部必读,不得省略):
166
+
167
+ 1. [boundaries.md](./boundaries.md) — 41+ 条硬规则
168
+ 2. [checklist.md](./checklist.md) — 13 强制项 + 5 一致性 + 7 建议项
169
+ 3. [foundations.md](./foundations.md) — Token 真值(用于校验是否符合)
170
+
135
171
  ```
136
172
  1. 读取目标页面源码
137
173
  2. 逐条对照 boundaries.md
@@ -1,8 +1,10 @@
1
1
  # Dashboard — 控制台首页 / 数据概览页
2
2
 
3
+ > ⚠️ **Prerequisites**: 你必须已在 [generation-flow.md](../generation-flow.md) Step 2 确认页面类型为 **Dashboard**,并由 Step 3 引导到这里。
4
+
3
5
  > AI 实操路径:Step 2(页面类型识别)判定为 Dashboard 后,本文档接管。
4
6
  >
5
- > uni-manager 中 Dashboard **同时承担"控制台 Home"** 角色(资源总览 / 待办 / 跨云态势),是用户登录后第一屏。
7
+ > uni-manager 中 Dashboard **同时承担“控制台 Home”** 角色(资源总览 / 待办 / 跨云态势),是用户登录后第一屏。
6
8
 
7
9
  ---
8
10
 
@@ -1,6 +1,8 @@
1
1
  # Detail Page — 详情页模式(uni-manager)
2
2
 
3
- > **触发**:用户描述含"详情/查看/信息/概览(单资源)"。
3
+ > ⚠️ **Prerequisites**: 你必须已在 [generation-flow.md](../generation-flow.md) Step 2 确认页面类型为 **DetailPage**,并由 Step 3 引导到这里。
4
+
5
+ > **触发**:用户描述含“详情/查看/信息/概览(单资源)”。
4
6
  > **核心特征**:单条记录的只读展示 + DescriptionList + 操作按钮。
5
7
  > **页面级别**:L2(面包屑模式 PageHeader,自动继承 um-topbar + Sidebar)。
6
8
 
@@ -20,7 +22,34 @@
20
22
 
21
23
  ---
22
24
 
23
- ## 2. 标准结构(资源详情 — uni-manager 跨云增强)
25
+ ## 2. Template 组件拼装
26
+
27
+ > 源自 `packages/create/variants/uni-manager/src/templates/detail-page.tsx`
28
+
29
+ ```tsx
30
+ <PageShell header={<UmTopbar />} sidebar={<Sidebar />}>
31
+ <UmPageContainer header={<PageHeader breadcrumb={...} title="XX 详情" actions={...} />}>
32
+ {children} {/* InfoCard / Tabs / DescriptionList / Timeline */}
33
+ </UmPageContainer>
34
+ </PageShell>
35
+ ```
36
+
37
+ | Slot | 注入内容 | 说明 |
38
+ | ------------ | ---------------------------------------------------- | ---------- |
39
+ | `topbar` | UmTopbar | 框架级吃顶 |
40
+ | `sidebar` | Sidebar + 业务菜单 | 左导 |
41
+ | `pageHeader` | PageHeader(面包屑 + 标题 + actions + 可选数据概览) | L2 页面 |
42
+ | `children` | InfoCard / Tabs / DescriptionList / Timeline 等 | 详情主区 |
43
+
44
+ **壳层特征**:
45
+
46
+ - 结构最简洁 — 只有 4 个 slot,业务组件全部走 children
47
+ - InfoCard 是局部信息卡(业务子区域级),不算“主区白卡”
48
+ - Tabs 用于多维度信息分类(基本信息 / 监控 / 关联资源 / 操作日志)
49
+
50
+ ---
51
+
52
+ ## 3. 标准结构(资源详情 — uni-manager 跨云增强)
24
53
 
25
54
  ```
26
55
  ┌─────────────────────────────────────────────┐
@@ -65,7 +94,7 @@
65
94
 
66
95
  ---
67
96
 
68
- ## 3. 必需组件
97
+ ## 4. 必需组件
69
98
 
70
99
  | 组件 | 位置 | 说明 |
71
100
  | ------------------- | ---- | ------------------------------- |
@@ -87,7 +116,7 @@
87
116
 
88
117
  ---
89
118
 
90
- ## 4. DescriptionItem 字段交互
119
+ ## 5. DescriptionItem 字段交互
91
120
 
92
121
  | 类型 | 触发 | 反馈 |
93
122
  | -------------- | ---------- | --------------------------------- |
@@ -102,7 +131,7 @@
102
131
 
103
132
  ---
104
133
 
105
- ## 5. 操作按钮规则
134
+ ## 6. 操作按钮规则
106
135
 
107
136
  ### 5.1 位置
108
137
 
@@ -129,7 +158,7 @@
129
158
 
130
159
  ---
131
160
 
132
- ## 6. Tab 切换交互
161
+ ## 7. Tab 切换交互
133
162
 
134
163
  | 场景 | 行为 |
135
164
  | ---------- | ----------------------------- |
@@ -143,7 +172,7 @@
143
172
 
144
173
  ---
145
174
 
146
- ## 7. 信息分组
175
+ ## 8. 信息分组
147
176
 
148
177
  - DescriptionList 按 ListSection 分组(基本信息 / 配置信息 / 网络信息)
149
178
  - 每组可独立展开/收起(可选)
@@ -153,7 +182,7 @@
153
182
 
154
183
  ---
155
184
 
156
- ## 8. 嵌套约束
185
+ ## 9. 嵌套约束
157
186
 
158
187
  | 父子关系 | 状态 |
159
188
  | -------------------------------------------------------------------------------------------------------- | ----------------------------------- |
@@ -168,7 +197,7 @@
168
197
 
169
198
  ---
170
199
 
171
- ## 9. 禁止项
200
+ ## 10. 禁止项
172
201
 
173
202
  | 禁项 | 原因 |
174
203
  | -------------------------- | ------------------------------------- |
@@ -182,7 +211,7 @@
182
211
 
183
212
  ---
184
213
 
185
- ## 10. 边界情况
214
+ ## 11. 边界情况
186
215
 
187
216
  | 场景 | 处理 |
188
217
  | ---------- | ----------------------- |
@@ -197,7 +226,7 @@
197
226
 
198
227
  ---
199
228
 
200
- ## 11. 详情 → 列表返回约定
229
+ ## 12. 详情 → 列表返回约定
201
230
 
202
231
  - 面包屑父级项点击返回 ListPage
203
232
  - PageHeader 右侧可选 × 关闭按钮
@@ -208,7 +237,7 @@
208
237
 
209
238
  ---
210
239
 
211
- ## 12. 详情页特有自检
240
+ ## 13. 详情页特有自检
212
241
 
213
242
  - [ ] PageHeader 用面包屑模式(L2 页面)
214
243
  - [ ] um-topbar 在框架层就位(UM1)